ai-team-library/claude/skills/deploy/SKILL.md
# Skill: Deploy ## Description Creates a release from the current `main` branch. Runs quality gates (tests, lint), reviews documentation, builds release notes from bean commits since the last tag, optionally tags the release, and cleans up merged feature branches. One approval, no extra prompts. With trunk-based development, feature branches merge directly to `main` via `/merge-bean`. The deploy skill validates the accumulated work on `main` and produces a tagged release. ## Trigger - Invok
npx skillsauth add beekeeper-lab/foundry ai-team-library/claude/skills/deployInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Creates a release from the current main branch. Runs quality gates (tests, lint), reviews documentation, builds release notes from bean commits since the last tag, optionally tags the release, and cleans up merged feature branches. One approval, no extra prompts.
With trunk-based development, feature branches merge directly to main via /merge-bean. The deploy skill validates the accumulated work on main and produces a tagged release.
/deploy slash command.main branch.main must have commits ahead of the last release tag (or ahead of the initial commit if no tags exist).| Input | Type | Required | Description |
|-------|------|----------|-------------|
| tag | String | No | Version tag for the release (e.g., v1.2.0). If not provided, a date-based tag deploy/YYYY-MM-DD is used (appending -2, -3, etc. on collision). |
git status --porcelain.
git stash --include-untracked -m "deploy-auto-stash". Restore at the end.main — If not on main, checkout main.git pull origin main to ensure we have the latest.git describe --tags --abbrev=0 2>/dev/null to get the most recent tag.git log <last-tag>..HEAD --oneline. If empty, report "Nothing to deploy — main has no new commits since last release", restore stash, return. Exit.5a. Identify what changed — Review git log <last-tag>..HEAD --oneline and git diff <last-tag>..HEAD --stat to understand the scope of changes being deployed.
5b. Check documentation checklist — For each change, review the documentation checklist in MEMORY.md (section "Documentation Checklist") and verify that all applicable docs have been updated to reflect the changes. At minimum, always check:
CLAUDE.md, README.md, ai/context/bean-workflow.md, ai/context/project.md.claude/agents/.claude/skills/ and .claude/commands/CHANGELOG.mddocs/ for any project documentation5c. Search broadly — Don't just grep for exact strings. Search for related concepts, synonyms, and soft references that may have become stale. For example, if the change modifies the team wave model, search for "wave", "BA", "Architect", "persona", "team", "decompose", etc.
5d. Update stale docs — If any documentation is stale, update it now on main. Commit the documentation updates before proceeding.
5e. Check if the checklist itself needs updating — If the change introduces a new document or removes an existing one, update the Documentation Checklist in MEMORY.md.
5f. Skip conditions — This phase may be skipped if the deploy contains only documentation changes (no code or workflow changes) or if the user explicitly requests a fast deploy.
Run tests — uv run pytest on main.
Run ruff — uv run ruff check. Record result.
Identify beans — Parse git log <last-tag>..HEAD --oneline for BEAN-NNN: messages. Cross-reference with ai/beans/_index.md for titles.
Count branches to clean — List all bean/* branches (local + remote). Count how many are merged into main.
Present summary and ask once:
===================================================
DEPLOY: main @ <short-sha> (tag: <tag>)
===================================================
Beans: <list>
Tests: N passed, 0 failed
Ruff: clean / N violations
Post-deploy: N feature branches will be deleted
On "go": tag release, push tag, delete branches,
restore working tree. No further prompts.
===================================================
Single approval: go / abort
CRITICAL: This is the ONLY user prompt. Everything after "go" runs without stopping.
Create tag — Determine the tag name:
--tag <version> was provided, use that (e.g., v1.2.0).deploy/YYYY-MM-DD (appending -2, -3, etc. on collision).git tag -a <tag> -m "Deploy: <date> — <bean list>".git push origin --tags.Delete local feature branches — All bean/* branches merged into main: git branch -d. Stale/orphaned ones for Done beans: git branch -D.
Delete remote feature branches — Any remotes/origin/bean/* that are merged: git push origin --delete.
Return to original branch — git checkout <original-branch>.
Restore stash — If the user chose "Stash" in step 2: git stash pop. On conflict, prefer HEAD. (No action needed if the user chose "Commit".)
Report success — Tag name, commit hash, beans deployed, branches deleted.
| Error | Resolution | |-------|------------| | Nothing to deploy | No new commits since last tag — report and exit | | Tests fail | Report failures, restore stash, return. Fix first. | | Tag already exists | Append suffix or prompt for a different tag name | | Tag push fails | Report error. Check permissions. | | User aborts | Restore stash, return to original branch | | Command blocked | Print command for manual execution, continue |
development
# Skill: VDD (Verification-Driven Development) Gate ## Description Runs the programmatic VDD gate for a bean: parses the bean's `## Acceptance Criteria` section, dispatches each criterion's evidence type to the matching runner (test, lint, file, file-contains, or manual), aggregates the results into a pass/fail verdict, and writes a structured markdown report at `ai/outputs/tech-qa/vdd-<NNN>.md` (zero-padded NNN). This is the machine-checkable counterpart to the prose VDD policy in `ai/contex
tools
# Skill: Spawn Task ## Description Dispatches a single specialist persona to execute a single task with only that task's context. Auto-detects the runtime environment and chooses one of two execution paths: - **In tmux** (`$TMUX` set): spawn a worker in a git worktree using a child tmux window. Process-isolated, parallelizable, durable across the calling session's lifetime. Same pattern as `/spawn-bean` but at task granularity. - **Not in tmux**: invoke the `Agent` tool with `subagent_typ
development
# Skill: Orchestration Report ## Description Aggregates the per-bean **Orchestration Telemetry** blocks (BEAN-278) across recent Done beans and produces a markdown report that answers the architecture-aware-evaluation question: **is the orchestration paying for itself?** Distinct from `/telemetry-report` (which aggregates raw cost, duration, and tokens); this skill aggregates the orchestration-quality metrics layered on top — bounces, persona activations, contract violations, escape-hatch usag
development
# Skill: Health Check ## Description Runs all health checks defined in `ai/context/health-checks.md` and produces a table-format report. Can be called standalone or by other skills (e.g., `/long-run`). ## Trigger - Invoked by the `/health-check` slash command. - Called programmatically by `/long-run` at the start of each cycle. ## Inputs | Input | Type | Required | Description | |-------|------|----------|-------------| | health_checks | Markdown file | Yes | `ai/context/health-checks.md`