agentleFS
cpiprintcpiprint/skills/build/SKILL.md

build

Skill1 starsChanged 10 months agoMITView on GitHub

Feature development pipeline - research, plan, track, and implement major features.

156 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use backprop, finances and 9 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • JuliusBrusseeSkill

    backprop

    Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch recurrence, append to §B. This is the one non-obvious thing SDD does that plan-then-execute doesn't. Triggers on test failure, bug report, post-mortem, or explicit user ask.

    Also in 4 projects that use this

  • GerardoRdz96Skill

    finances

    Use when Gera talks about his money — logging an expense ("I spent X on Y"), checking where he stands this pay-period, closing a period, planning debt payoff, onboarding his financial picture, or asking for budgeting/finance opinions. Servy's financial brain. Triggers — "I spent", "log this expense", "where am I this period", "close the period", "how's my budget", "debt plan", "should I pay off", "finances onboard", "/finances".

    Also in 3 projects that use this

  • madeehahassanSkill

    Go-Live

    Pre-launch checklist. Use before making any app public, sharing a link externally, or announcing a product launch. Adapts to Claude Code, claude.ai, and Cowork.

    Also in 3 projects that use this

  • JuliusBrusseeSkill

    deepen

    Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec touches, researches a deeper design, and proposes refactors that shrink interfaces and hide decisions — behavior held constant, tests green before and after. Proposes §I/§V/§T edits, never silent rewrites. Triggers when the user says "deepen this", "improve the design", "this module feels shallow", "pull complexity down", "use spare budget on the codebase", or invokes /ck:deepen. Leans on the codebase-design skill's deep-module vocabulary when present.

    Also in 3 projects that use this

  • synaptiaiSkill

    gate

    Create a BDSK review_gate artifact. Defines a checkpoint that controls whether generated output may proceed toward acceptance. Use when defining quality, security, or scope gates for execution plans.

    Also in 5 projects that use this

  • TrevokeSkill

    define

    Use when a new feature request, bug report, or work request needs requirements defined before implementation

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

56 rules. 0 are common, 39 are distinctive, and 17 are very specific to this project.

  • 0

    Common

    Most of the 142 edited versions we read keep these.

  • 39

    Distinctive

    This author's own choices. Worth a look.

  • 17

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If the feature name is not provided in arguments, you MUST use AskUserQuestion to prompt for it.

    line 28
  2. Distinctive:

    If no arguments provided, display this help:

    line 34
  3. Distinctive:

    If feature name not in arguments, use AskUserQuestion:

    line 72
  4. Very specific:

    Check if docs/{name}/RESEARCH.md already exists.

    line 83
  5. Distinctive:

    If it exists, use AskUserQuestion:

    line 85
  6. Very specific:

    If "Skip" selected, suggest running /build implementation {name} and exit.

    line 98
  7. Distinctive:

    Use AskUserQuestion to understand the feature:

    line 102
  8. Very specific:

    Create the directory if needed: docs/{name}/

    line 148
  9. Very specific:

    Write findings to docs/{name}/RESEARCH.md with this structure:

    line 150
  10. Distinctive:

    After writing the research doc, inform the user:

    line 196
  11. Very specific:

    Next step: Run /build implementation {name} to create a phased implementation plan."

    line 200
  12. Distinctive:

    If feature name not in arguments, use AskUserQuestion to prompt for it (same as research phase).

    line 208
  13. Very specific:

    Check if docs/{name}/RESEARCH.md exists.

    line 212
  14. Distinctive:

    If it does NOT exist:

    line 214
  15. Very specific:

    Read docs/{name}/RESEARCH.md to understand:

    line 240
  16. Distinctive:

    Use AskUserQuestion to validate phase breakdown:

    line 255
  17. Distinctive:

    Use AskUserQuestion for any uncertainties about phase ordering or scope.

    line 275
  18. Very specific:

    Write to docs/{name}/IMPLEMENTATION.md with this structure:

    line 279
  19. Distinctive:

    After writing the implementation doc, inform the user:

    line 337
  20. Very specific:

    Next step: Run /build progress {name} to set up progress tracking."

    line 341
  21. Distinctive:

    If feature name not in arguments, use AskUserQuestion to prompt for it.

    line 349
  22. Distinctive:

    If "Keep existing" selected, read the progress doc and suggest the next incomplete phase.

    line 375
  23. Very specific:

    Read docs/{name}/IMPLEMENTATION.md to extract:

    line 379
  24. Distinctive:

    After creating progress doc:

    line 447
  25. Very specific:

    Next step: Run /build phase 1 {name} to begin implementation."

    line 451
  26. Distinctive:

    If neither provided, prompt for both using AskUserQuestion.

    line 463
  27. Distinctive:

    If feature name not determined, use AskUserQuestion to prompt for it.

    line 467
  28. Distinctive:

    Check that all three docs exist:

    line 471
  29. Very specific:

    If any missing, inform user which doc is missing and suggest the appropriate /build command to create it.

    line 476
  30. Distinctive:

    If phase number not in arguments:

    line 480
  31. Very specific:

    Read docs/{name}/IMPLEMENTATION.md to extract available phases.

    line 482
  32. Distinctive:

    Use AskUserQuestion to let user select:

    line 484
  33. Distinctive:

    Read all three documents to fully understand:

    line 493
  34. Distinctive:

    Use AskUserQuestion frequently for implementation decisions

    line 511
  35. Distinctive:

    Follow the "Always Works" philosophy - test as you go

    line 512
  36. Distinctive:

    Document decisions in PROGRESS.md as you make them

    line 513
  37. Distinctive:

    Update the session log with today's work

    line 524
  38. Distinctive:

    Update the phase status:

    line 526
  39. Distinctive:

    After completing the phase:

    line 532
  40. Distinctive:

    Read PROGRESS.md to determine next incomplete phase

    line 534
  41. Very specific:

    Next step: Run /build phase {n+1} {name} to continue with [next phase title]."

    line 539
  42. Distinctive:

    Check for existence of:

    line 560
  43. Very specific:

    Next step: Run /build research {name} to start."

    line 571
  44. Very specific:

    Next step: Run /build implementation {name} to create implementation plan."

    line 575
  45. Distinctive:

    Read PROGRESS.md to find current phase status.

    line 582
  46. Very specific:

    Next step: Run /build phase {next incomplete phase} {name} to continue."

    line 585
  47. Distinctive:

    If all phases complete: "Feature '{name}' implementation is complete!"

    line 587
  48. Distinctive:

    Don't rush through research - it's the foundation for good implementation.

    line 612
  49. Distinctive:

    Keep PROGRESS.md updated in real-time during phase work:

    line 616
  50. Distinctive:

    Don't wait until the end to update

    line 617
  51. Distinctive:

    If new requirements emerge, note them for future phases

    line 626
  52. Distinctive:

    Don't expand the current phase's scope mid-implementation

    line 627
  53. Distinctive:

    Use AskUserQuestion to validate if something is in/out of scope

    line 628
  54. Distinctive:

    Test changes as you make them

    line 633
  55. Distinctive:

    Don't assume code works - verify it

    line 634
  56. Distinctive:

    If something doesn't work, fix it before moving on

    line 635

“Common” is measured: kept by at least 6 in 10 of the 142 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Feature development pipeline - research, plan, track, and implement major features.

Instructions

This command manages a 4-phase feature development workflow for building major features. Parse $ARGUMENTS to determine which subcommand to run.

Arguments provided: $ARGUMENTS

Argument Parsing

Parse the first word of $ARGUMENTS to determine the subcommand:

  • research [name] → Run the Research phase
  • implementation [name] → Run the Implementation phase
  • progress [name] → Run the Progress phase
  • phase [n] [name] → Run Phase n of the implementation
  • status [name] → Show current status and suggest next step
  • (empty or unrecognized) → Show usage help

If the feature name is not provided in arguments, you MUST use AskUserQuestion to prompt for it.


Subcommand: Help (empty args)

If no arguments provided, display this help:

/build - Feature Development Pipeline

Subcommands:
  /build research [name]        Deep research on a feature idea
  /build implementation [name]  Create phased implementation plan
  /build progress [name]        Set up progress tracking
  /build phase [n] [name]       Execute implementation phase n
  /build status [name]          Show status and next steps

Example workflow:
  /build research chat-interface
  /build implementation chat-interface
  /build progress chat-interface
  /build phase 1 chat-interface

Then use AskUserQuestion to ask what they'd like to do:

  • question: "What would you like to do?"
  • header: "Action"
  • multiSelect: false
  • options:
    • label: "Start new feature research" description: "Begin deep research on a new feature idea"
    • label: "Continue existing feature" description: "Work on a feature already in progress"
    • label: "Check status" description: "See what step to do next for a feature"

Subcommand: research

Step 1: Get Feature Name

If feature name not in arguments, use AskUserQuestion:

  • question: "What's a short identifier for this feature? (lowercase, hyphens ok - e.g., 'chat-interface', 'user-auth', 'data-export'). Use 'Other' to type it."
  • header: "Feature name"
  • multiSelect: false
  • options:
    • label: "I'll type the name" description: "Enter a short, kebab-case identifier for the feature"

Step 2: Check for Existing Research

Check if docs/{name}/RESEARCH.md already exists.

If it exists, use AskUserQuestion:

  • question: "A RESEARCH.md already exists for this feature. What would you like to do?"
  • header: "Existing doc"
  • multiSelect: false
  • options:
    • label: "Overwrite" description: "Replace existing research with fresh exploration"
    • label: "Append" description: "Add new research below existing content"
    • label: "Skip" description: "Keep existing research, suggest next step"

If "Skip" selected, suggest running /build implementation {name} and exit.

Step 3: Gather Feature Context

Use AskUserQuestion to understand the feature:

  • question: "Describe the feature you want to build. What problem does it solve? What should it do? (Use 'Other' to describe)"
  • header: "Description"
  • multiSelect: false
  • options:
    • label: "I'll describe it" description: "Provide a detailed description of the feature"

Step 4: Research Scope

Use AskUserQuestion:

  • question: "What aspects should the research focus on?"
  • header: "Focus areas"
  • multiSelect: true
  • options:
    • label: "Technical implementation" description: "APIs, libraries, architecture patterns"
    • label: "UI/UX design" description: "Interface design, user flows, interactions"
    • label: "Data requirements" description: "What data to store, schemas, privacy"
    • label: "Platform capabilities" description: "OS APIs, system integrations, permissions"

Step 5: Conduct Deep Research

Now conduct DEEP research on the feature:

  1. Codebase exploration: Understand existing patterns, similar features, relevant code
  2. Web search: Research best practices, similar implementations, relevant APIs
  3. Technical deep-dive: Explore specific technologies, libraries, frameworks
  4. Use AskUserQuestion FREQUENTLY: Validate assumptions, clarify requirements, get input on decisions

Research should cover:

  • Problem definition and user needs
  • Technical approaches and trade-offs
  • Required data models and storage
  • UI/UX considerations
  • Integration points with existing code
  • Potential challenges and risks
  • Recommended approach with rationale

Step 6: Write Research Document

Create the directory if needed: docs/{name}/

Write findings to docs/{name}/RESEARCH.md with this structure:

# {Feature Name} Research

## Overview
[Brief description of the feature and its purpose]

## Problem Statement
[What problem this solves, why it matters]

## User Stories / Use Cases
[Concrete examples of how users will use this]

## Technical Research

### Approach Options
[Different ways to implement this, with pros/cons]

### Recommended Approach
[The approach you recommend and why]

### Required Technologies
[APIs, libraries, frameworks needed]

### Data Requirements
[What data needs to be stored/tracked]

## UI/UX Considerations
[Interface design thoughts, user flows]

## Integration Points
[How this connects to existing code/features]

## Risks and Challenges
[Potential issues and mitigation strategies]

## Open Questions
[Things that still need to be decided]

## References
[Links to relevant documentation, examples, articles]

Step 7: Next Step

After writing the research doc, inform the user:

"Research complete! Document saved to docs/{name}/RESEARCH.md

Next step: Run /build implementation {name} to create a phased implementation plan."


Subcommand: implementation

Step 1: Get Feature Name

If feature name not in arguments, use AskUserQuestion to prompt for it (same as research phase).

Step 2: Verify Research Exists

Check if docs/{name}/RESEARCH.md exists.

If it does NOT exist:

  • Inform user: "No research document found at docs/{name}/RESEARCH.md"
  • Suggest: "Run /build research {name} first to create the research document."
  • Exit

Step 3: Check for Existing Implementation Doc

Check if docs/{name}/IMPLEMENTATION.md already exists.

If it exists, use AskUserQuestion:

  • question: "An IMPLEMENTATION.md already exists. What would you like to do?"
  • header: "Existing doc"
  • multiSelect: false
  • options:
    • label: "Overwrite" description: "Create a fresh implementation plan"
    • label: "Append" description: "Add new phases below existing content"
    • label: "Skip" description: "Keep existing plan, suggest next step"

If "Skip" selected, suggest running /build progress {name} and exit.

Step 4: Read Research Document

Read docs/{name}/RESEARCH.md to understand:

  • The recommended approach
  • Technical requirements
  • Data models needed
  • UI/UX design
  • Integration points

Step 5: Design Implementation Phases

Break the research into practical implementation phases. Each phase should:

  • Be independently valuable (deliver something usable)
  • Be small enough to complete in a focused session
  • Build on previous phases
  • Have clear success criteria

Use AskUserQuestion to validate phase breakdown:

  • question: "How granular should the implementation phases be?"
  • header: "Phase size"
  • multiSelect: false
  • options:
    • label: "Small phases (1-2 hours)" description: "Many focused phases, easier to track progress"
    • label: "Medium phases (half day)" description: "Balanced approach, moderate number of phases"
    • label: "Large phases (full day)" description: "Fewer phases, each delivering significant functionality"

Step 6: Conduct Phase Research

For each phase you're planning, do targeted research:

  • Web search for implementation specifics
  • Review relevant code in the codebase
  • Identify dependencies between phases

Use AskUserQuestion for any uncertainties about phase ordering or scope.

Step 7: Write Implementation Document

Write to docs/{name}/IMPLEMENTATION.md with this structure:

# {Feature Name} Implementation Plan

## Overview
[Brief recap of what we're building and the approach from research]

## Prerequisites
[What needs to be in place before starting]

## Phase Summary
[Quick overview of all phases]

---

## Phase 1: [Phase Title]

### Objective
[What this phase accomplishes]

### Rationale
[Why this phase comes first, what it enables]

### Tasks
- [ ] Task 1
- [ ] Task 2
- [ ] Task 3

### Success Criteria
[How to verify this phase is complete]

### Files Likely Affected
[List of files that will probably need changes]

---

## Phase 2: [Phase Title]

[Same structure as Phase 1]

---

[Continue for all phases]

---

## Post-Implementation
- [ ] Documentation updates
- [ ] Testing strategy
- [ ] Performance validation

## Notes
[Any additional context or decisions made during planning]

Step 8: Next Step

After writing the implementation doc, inform the user:

"Implementation plan complete! Document saved to docs/{name}/IMPLEMENTATION.md

Next step: Run /build progress {name} to set up progress tracking."


Subcommand: progress

Step 1: Get Feature Name

If feature name not in arguments, use AskUserQuestion to prompt for it.

Step 2: Verify Implementation Doc Exists

Check if docs/{name}/IMPLEMENTATION.md exists.

If it does NOT exist:

  • Inform user: "No implementation document found at docs/{name}/IMPLEMENTATION.md"
  • Suggest: "Run /build implementation {name} first."
  • Exit

Step 3: Check for Existing Progress Doc

Check if docs/{name}/PROGRESS.md already exists.

If it exists, use AskUserQuestion:

  • question: "A PROGRESS.md already exists. What would you like to do?"
  • header: "Existing doc"
  • multiSelect: false
  • options:
    • label: "Overwrite" description: "Start fresh progress tracking"
    • label: "Keep existing" description: "Keep current progress, suggest next step"

If "Keep existing" selected, read the progress doc and suggest the next incomplete phase.

Step 4: Read Implementation Document

Read docs/{name}/IMPLEMENTATION.md to extract:

  • All phase titles
  • Tasks within each phase
  • Success criteria

Step 5: Create Progress Document

Write to docs/{name}/PROGRESS.md with this structure:

# {Feature Name} Progress

## Status: Phase 1 - Not Started

## Quick Reference
- Research: `docs/{name}/RESEARCH.md`
- Implementation: `docs/{name}/IMPLEMENTATION.md`

---

## Phase Progress

### Phase 1: [Title from Implementation]
**Status:** Not Started

#### Tasks Completed
- (none yet)

#### Decisions Made
- (none yet)

#### Blockers
- (none)

---

### Phase 2: [Title]
**Status:** Not Started

[Same structure]

---

[Continue for all phases]

---

## Session Log

### [Date will be added as work happens]
- Work completed
- Decisions made
- Notes for next session

---

## Files Changed
(Will be updated as implementation progresses)

## Architectural Decisions
(Major technical decisions and rationale)

## Lessons Learned
(What worked, what didn't, what to do differently)

Step 6: Next Step

After creating progress doc:

"Progress tracking set up! Document saved to docs/{name}/PROGRESS.md

Next step: Run /build phase 1 {name} to begin implementation."


Subcommand: phase

Step 1: Parse Arguments

Parse arguments to extract:

  • Phase number (if provided)
  • Feature name (if provided)

If neither provided, prompt for both using AskUserQuestion.

Step 2: Get Feature Name

If feature name not determined, use AskUserQuestion to prompt for it.

Step 3: Verify All Docs Exist

Check that all three docs exist:

  • docs/{name}/RESEARCH.md
  • docs/{name}/IMPLEMENTATION.md
  • docs/{name}/PROGRESS.md

If any missing, inform user which doc is missing and suggest the appropriate /build command to create it.

Step 4: Get Phase Number

If phase number not in arguments:

Read docs/{name}/IMPLEMENTATION.md to extract available phases.

Use AskUserQuestion to let user select:

  • question: "Which phase would you like to work on?"
  • header: "Phase"
  • multiSelect: false
  • options: [dynamically generated from phases found in IMPLEMENTATION.md, marking completed ones]

Step 5: Read All Context

Read all three documents to fully understand:

  • The research and rationale (RESEARCH.md)
  • The specific phase tasks and success criteria (IMPLEMENTATION.md)
  • Current progress and decisions made (PROGRESS.md)

Step 6: Deep Research on Phase

Before starting implementation:

  1. Web search for specific implementation details relevant to this phase
  2. Codebase exploration for relevant existing code
  3. Use AskUserQuestion to clarify any ambiguities about the phase requirements

Step 7: Execute Phase Work

Begin implementing the phase:

  1. Work through each task in the phase
  2. Use AskUserQuestion frequently for implementation decisions
  3. Follow the "Always Works" philosophy - test as you go
  4. Document decisions in PROGRESS.md as you make them

Step 8: Update Progress Document

As you work, update docs/{name}/PROGRESS.md:

  • Mark tasks as completed
  • Record decisions made and why
  • Note any blockers encountered
  • List files changed
  • Add architectural decisions
  • Update the session log with today's work

Update the phase status:

  • "In Progress" when starting
  • "Completed" when all tasks done and success criteria met

Step 9: Next Step

After completing the phase:

  1. Read PROGRESS.md to determine next incomplete phase
  2. Inform user of completion and suggest next action:

"Phase {n} complete! Progress updated in docs/{name}/PROGRESS.md

Next step: Run /build phase {n+1} {name} to continue with [next phase title]."

Or if all phases complete:

"All phases complete! The {feature name} feature implementation is done.

Consider:

  • Running tests to verify everything works
  • Updating documentation
  • Creating a PR for review"

Subcommand: status

Step 1: Get Feature Name

If feature name not in arguments, use AskUserQuestion to prompt for it.

Step 2: Check Which Docs Exist

Check for existence of:

  • docs/{name}/RESEARCH.md
  • docs/{name}/IMPLEMENTATION.md
  • docs/{name}/PROGRESS.md

Step 3: Determine Status and Next Step

Based on which docs exist:

No docs exist: "No documents found for feature '{name}'. Next step: Run /build research {name} to start."

Only RESEARCH.md exists: "Research complete for '{name}'. Next step: Run /build implementation {name} to create implementation plan."

RESEARCH.md and IMPLEMENTATION.md exist: "Research and implementation plan complete for '{name}'. Next step: Run /build progress {name} to set up progress tracking."

All three exist: Read PROGRESS.md to find current phase status. "Feature '{name}' is in progress. Current status: [Phase X - status] Next step: Run /build phase {next incomplete phase} {name} to continue."

If all phases complete: "Feature '{name}' implementation is complete!"


Important Guidelines

Use AskUserQuestion Liberally

Throughout all phases, use AskUserQuestion whenever:

  • There's ambiguity in requirements
  • Multiple approaches are possible
  • You need to validate an assumption
  • A decision will significantly impact the implementation
  • You're unsure about scope or priority

Deep Research Expectations

"Deep research" means:

  • Multiple web searches on different aspects
  • Thorough codebase exploration
  • Reading relevant documentation
  • Considering multiple approaches
  • Understanding trade-offs

Don't rush through research - it's the foundation for good implementation.

Progress Tracking

Keep PROGRESS.md updated in real-time during phase work:

  • Don't wait until the end to update
  • Record decisions as they're made
  • Note blockers immediately
  • This creates valuable context for future sessions

Scope Management

A key purpose of this workflow is preventing scope creep:

  • Each phase should have clear boundaries
  • If new requirements emerge, note them for future phases
  • Don't expand the current phase's scope mid-implementation
  • Use AskUserQuestion to validate if something is in/out of scope

Always Works Philosophy

When implementing phases:

  • Test changes as you make them
  • Don't assume code works - verify it
  • If something doesn't work, fix it before moving on
  • The goal is working software, not just written code

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.