AgentSkillsCN

sayt-lifecycle

统一的开发生命周期工具。适用于用户询问如何构建、测试、设置、部署或配置开发环境时使用。它会教你如何编写和修复每个动词背后的配置文件,以及如何配置 sayt 本身。

SKILL.md
--- frontmatter
name: sayt-lifecycle
description: >
  Unified development lifecycle tool. Use when the user asks about building,
  testing, setting up, deploying, or configuring a development environment.
  Teaches how to write and fix the configuration files behind each verb
  and how to configure sayt itself.
allowed-tools: Bash(sayt:*)

sayt-lifecycle — Unified Development Lifecycle

sayt is a small CLI that provides consistent verbs for the entire software development lifecycle. It reuses configuration you already have (.vscode/tasks.json, .mise.toml, compose.yaml, skaffold.yaml) so there is zero drift between your IDE, CI, and terminal.

The 5 Verb Pairs

Verb pairWhat it doesUnderlying toolConfig file
sayt setup / sayt doctorInstall and verify toolchainsmise.mise.toml
sayt build / sayt testCompile and run unit testsvscode-task-runner.vscode/tasks.json
sayt generate / sayt lintGenerate code, lint configCUE + gomplate.say.cue / .say.yaml
sayt launch / sayt integrateContainerize and integration-testdocker composeDockerfile + compose.yaml
sayt release / sayt verifyDeploy and validate in productionskaffoldskaffold.yaml

Seven-Environment Model

sayt organizes the development lifecycle into seven environments, each adding a layer of confidence:

  1. pkg — Package manager (mise). Tools are installed and available.
  2. cli — CLI tools (cue, gomplate). Code generation and validation work.
  3. ide — IDE integration (vscode-task-runner). Build and test tasks run from your editor.
  4. cnt — Container (docker). Code runs identically across machines.
  5. k8s — Kubernetes (kind, skaffold). Full-stack preview deployments work.
  6. cld — Cloud (gcloud). Staging deployment is live.
  7. xpl — Crossplane. Production infrastructure is managed as code.

Run sayt doctor to check which environments are ready.

How sayt Reuses Existing Config

sayt does not invent new configuration formats. It delegates to tools you already configure:

  • .mise.toml — You probably already specify tool versions. sayt setup runs mise install.
  • .vscode/tasks.json — Your IDE already knows how to build/test. sayt build and sayt test run those same tasks via vscode-task-runner.
  • compose.yaml — Your containers already define services. sayt launch runs docker compose run --build develop. sayt integrate runs docker compose up integrate.
  • skaffold.yaml — Your deploy pipeline already has profiles. sayt release runs skaffold run.

The TDD Loop

The core inner loop when developing with sayt:

code
edit code → sayt build → sayt test → fix → repeat

Once green, widen the loop:

code
sayt integrate → fix → (back to inner loop if needed)

When ready to ship:

code
sayt release → sayt verify

When to Use Which Verb

I want to...Run
Install project dependenciessayt setup
Check if my environment is readysayt doctor
Generate code from templates/schemassayt generate
Validate generated codesayt lint
Compile the projectsayt build
Run unit testssayt test
Start the app in a containersayt launch
Run integration tests in containerssayt integrate
Deploy to staging/productionsayt release
Run E2E tests against a deploymentsayt verify

Per-Verb Skill Reference

For detailed guidance on writing the configuration file for each verb, see reference.md or ask about a specific verb pair.

Current sayt help

!sayt help 2>&1 || echo "sayt not installed — see https://github.com/bonisoft3/sayt"