tools/sage-claude-plugin/skills/build/SKILL.md
Brief (medium+ tasks), Spec, Implementation plan
npx skillsauth add xoai/sage buildInstall 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.
Feature development guided by Sage.
BEFORE ANYTHING: Scan .sage/work/ for existing artifacts.
This scan is MANDATORY — check the DISK.
Manifest-first path: If .sage/work/*/manifest.md exists, read it.
Resume at the phase indicated. Use context summary and handoff guidance
for judgment context. The manifest is the primary context source.
Fallback path: If no manifest.md but artifacts exist, use file-scan routing (below). Create manifest.md from inferred state before proceeding (backfill). This preserves backward compatibility with pre-v1.0.9 cycles.
File-scan routing (when no manifest):
You MUST follow this routing. Do not override it based on:
Multiple in-progress: Present list: [1] Continue [initiative A] — [phase] [2] Continue [initiative B] — [phase] [3] Start something new
Read .sage/decisions.md for recent context. Read the handoff
field in the most recent artifact's frontmatter if present.
Upstream context: Also scan .sage/docs/ for research and
analysis artifacts (jtbd-, ux-audit-, opportunity-, ux-evaluate-).
If found, announce: "Sage: Found research/analysis context — [list].
Using as build input."
Create manifest.md when the first artifact is saved (brief or spec).
Use the template from develop/templates/manifest-template.md.
Update manifest.md at EVERY checkpoint:
Context budget pressure: If the conversation is very long (many tool calls, approaching context limits), write a manifest update BEFORE suggesting a session break. This is the critical moment — capture the judgment that's about to be lost.
Session end ([N]): Manifest update is MANDATORY. Write handoff guidance and context summary before ending.
Completion: Set status: complete at Step 8.
Anti-lazy-manifest contract: Context summary MUST NOT be:
Classify by structural complexity — not time, not gut feeling.
Lightweight: One component, no design decisions, no behavior changes visible to other team members. The change is obvious from the request. → Skip to Step 6, implement directly.
Standard: Multiple components, OR any design decision, OR coordination between modules. Spec file REQUIRED. → spec.md MUST exist at .sage/work/ before implementation. → plan.md MUST exist at .sage/work/ before implementation. → If the task also needs scope definition, write brief first (Step 3).
Comprehensive: New subsystem, cross-cutting changes, or multiple stakeholder impact. → MUST write brief (Step 3) → spec (Step 4) → plan (Step 5) → implement.
Complexity signals (any ONE makes it Standard or above):
Anti-downgrade: When in doubt, classify as Standard, not Lightweight. Do NOT downgrade to Lightweight to avoid writing a spec. If you find yourself thinking "this is simple enough to skip the spec," that thought is the signal to NOT skip the spec.
Present your assessment:
Sage → build workflow. [Scope] — [what makes it this scope]. Starting with [first required step].
If the user explicitly asks to skip a required step, write a minimal 5-line spec anyway (WHAT, WHY, HOW, DONE-WHEN), present [A]/[R], and record the skip rationale in decisions.md.
If scope is unclear or the task is Comprehensive, elicit requirements before defining the brief.
For structured elicitation process, read
sage/core/capabilities/elicitation/quick-elicit/SKILL.md.
It provides 3 focused rounds (~2 minutes):
If quick-elicit cannot be loaded, ask these three questions directly and draft a brief from the answers.
Define: what to build, why, acceptance scenarios, and constraints.
Save to .sage/work/YYYYMMDD-slug/brief.md with frontmatter:
🔒 CHECKPOINT:
Sage: Brief saved to .sage/work/YYYYMMDD-slug/brief.md Decision: [key scope decisions]. (append to .sage/decisions.md)
[A] Approve — continue to spec in this session [R] Revise — tell me what to change [N] New session — type /build to continue with spec
Pick A/R/N, or tell me what to change.
On approval: update brief frontmatter to status: completed.
Append decision to decisions.md (Rule 7).
Define: components, data model, APIs, key decisions, edge cases. Resolve open questions from the brief.
For detailed spec writing process, read
sage/core/capabilities/planning/specify/SKILL.md.
Save to .sage/work/YYYYMMDD-slug/spec.md with frontmatter:
🔒 CHECKPOINT: Sage: Spec saved to .sage/work/YYYYMMDD-slug/spec.md Decision: [key technical decisions]. (append to .sage/decisions.md)
[A] Approve — continue to plan in this session [R] Revise — tell me what to change [N] New session — type /build to continue with planning
Pick A/R/N, or tell me what to change.
On approval: update spec frontmatter to status: completed.
Write handoff field in frontmatter:
handoff: |
Key decisions: [summary of choices made]
Open questions: [what's unresolved]
Risks: [what to watch for during implementation]
Next agent should: [specific guidance for planning phase]
Append decision to decisions.md (Rule 7).
Break into small, independently testable tasks. Each task: what to do, done criteria, files involved. Use checkboxes as a guide.
For detailed planning process, read
sage/core/capabilities/planning/plan/SKILL.md.
Save to .sage/work/YYYYMMDD-slug/plan.md with frontmatter:
🔒 CHECKPOINT:
Sage: Plan saved to .sage/work/YYYYMMDD-slug/plan.md
[A] Approve — start building in this session [R] Revise — tell me what to change [N] New session — type /build to start implementation
Pick A/R/N, or tell me what to change.
On approval: append plan approach to decisions.md (Rule 7).
Execute the plan task by task using the build loop.
Read and follow sage/core/capabilities/orchestration/build-loop/SKILL.md.
It provides:
sage/core/capabilities/execution/tdd/SKILL.md)sage/core/capabilities/context/scope-guard/SKILL.md)sage/core/workflows/sub-workflows/quality-gates.workflow.md)If the build-loop cannot be loaded, follow these minimum rules: implement one task at a time, write tests before code, run full suite after each task, stay in scope, commit after each task.
If relevant Sage skills exist in sage/skills/, read and follow them.
If stuck during implementation: Activate the problem-solving skill.
Match the stuck pattern to a technique — complexity spiral → Simplification,
forced solution → Inversion, works-locally-but-fails → Scale Testing,
can't isolate → Minimal Reproduction.
Run quality gates on the completed implementation.
Read and follow sage/core/workflows/sub-workflows/quality-gates.workflow.md.
It sequences 5 verification stages:
Each gate that fails triggers fix-and-retry (max 3 attempts) or escalation to the user.
If quality-gates cannot be loaded, follow these minimum rules: run full test suite, paste output, verify implementation matches spec, check for hallucinated imports or APIs.
Review against spec. Check for missed edge cases.
🔒 CHECKPOINT:
Sage: Build complete. [summary of what was built] Decision: [key implementation decisions]. (append to .sage/decisions.md)
[A] Approve — merge/ship [R] Revise — here's what needs fixing [V] Verify — type /review for independent verification
Pick A/R/V, or tell me what to change.
On approval — checkpoint state (Rule 7):
status: completed.sage/decisions.mdhandoff field in plan.md frontmatter with key decisions,
open questions, and risks for the next agentNext steps (Zone 3):
Next steps: /qa — browser-based functional testing /design-review — design quality audit /reflect — review the cycle, extract learnings /review — independent code evaluation
Type a command, or describe what you want to do next.
Communication style: Engineering precision. Emphasize trade-offs, edge cases, and implementation specifics. Reference file paths, function names, and test results concretely.
Good build output:
Before presenting completed work, check each criterion above. Also:
development
Branch-per-initiative git discipline for all delivery workflows. Defines branch naming by workflow, the propose-confirm creation protocol, dirty-tree and detached-HEAD handling, the always user-gated merge protocol, worktree support for parallel sessions, and abandonment cleanup. Activates only in git repositories — silently inactive everywhere else. Use when starting /build, /fix, /architect, or /build-x at Standard+ scope, when resuming an initiative, when offering a merge at a completion checkpoint, or when the user wants a second concurrent initiative.
development
Drives task-by-task execution from an approved plan with quality gates between each task. Reads the plan, finds the next incomplete task, dispatches implementation, validates, updates progress, and continues. Use after a plan is approved and the user says "go", "start building", "execute the plan", or "implement the feature".
testing
Preserves and restores context across agent sessions using plan file checkboxes as source of truth. Use when starting a new session, resuming previous work, ending a session, or when the user says "continue from last time", "what was I doing", or "save progress".
tools
Captures agent mistakes, corrections, and discovered gotchas so they are not repeated. Use when: (1) a command or operation fails unexpectedly, (2) the user corrects the agent, (3) the agent discovers non-obvious behavior through debugging, (4) an API or tool behaves differently than expected, (5) a better approach is found for a recurring task. Also searches past learnings before starting tasks to avoid known pitfalls. Activate alongside the sage-memory skill — they share the same MCP backend but serve different purposes (sage-memory = codebase knowledge, sage-self-learning = agent mistakes and gotchas).