agentleFS
PackmindHubPackmindHub/packmind/.claude/skills/feature-sprint/SKILL.md

feature-sprint

Skill321 starsChanged 54 days agoApache-2.0View on GitHub

Execute the implementation plan produced by /feature-spec. Loads tasks from tmp/feature-specs/{slug}/implementation-plan.md, hydrates them as Claude Tasks, runs parallel groups via subagents in the correct repo (OSS sibling at ../packmind or the proprietary repo in cwd), syncs progress back to checkboxes, commits per group, and runs Nx quality gates. Resumable across sessions via checkbox state.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 4 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If missing or DRAFT: tell the user to run /feature-spec {source} first.

    line 30
  2. Very specific:

    Read implementation-plan.md → extract tasks with checkbox state ([ ] pending, [x] done)

    line 68
  3. Very specific:

    Read context.md → extract parallel_groups, target_repo, quality_gates

    line 69
  4. Very specific:

    Use TaskCreate for each pending task (visual tracking)

    line 70
  5. Distinctive:

    Every group runs in a Task subagent — parallel or sequential.

    line 74
  6. Distinctive:

    After each group's subagent completes:

    line 77
  7. Very specific:

    Update implementation-plan.md checkboxes: [ ] → [x]

    line 79
  8. Distinctive:

    Update Claude Tasks status

    line 80
  9. Distinctive:

    After all OSS work is committed and merged upstream, remind the user to git pull here so the proprietary fork picks up the auto-merge …

    line 112
  10. Very specific:

    Each parallel group gets its own commit: when its subagent reports success (one commit per group, not per task).

    line 116
  11. Very specific:

    If {task_slug} is omitted, the skill lists available specs in tmp/feature-specs/ and asks the user to pick one.

    line 128

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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 Sprint Skill

Execute a Packmind feature implementation plan via subagents with automatic parallel execution and sync-back. Companion to /feature-spec.

When to Use

ScenarioUse feature-sprintUse plan + architect-executor
Fast execution of an already-specified feature✅❌
Parallel group execution✅partial
Multi-repo (OSS + proprietary) execution✅❌
Heavy TDD enforcement, per-task escalation❌✅
Specs in tmp/feature-specs/ (this flow)✅❌
Specs in .claude/specs/ and .claude/plans/❌✅

Rule of thumb: /feature-sprint is the executor for /feature-spec. For more careful, single-task-at-a-time execution with the global plan skill, use architect-executor instead.

Prerequisites

A completed feature spec at tmp/feature-specs/{slug}/:

  • {slug}.md with status: COMPLETE in frontmatter
  • context.md with YAML frontmatter (version 1.0+)
  • implementation-plan.md with task checkboxes

If missing or DRAFT: tell the user to run /feature-spec {source} first.

Architecture: Orchestration + Subagents + Sync-Back

Core Principle: The main session orchestrates only. All implementation happens in Task subagents — that keeps the main context clean and lets agents do heavy reading without poisoning your conversation.

┌─────────────────────────────────────────────────────────────────┐
│  Persistent Layer (tmp/, git-ignored)                            │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │ implementation-plan.md                                      │ │
│  │ Source of truth: task checkboxes [ ] / [x]                  │ │
│  └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
         │                              ▲
         │ Hydrate (session start)      │ Sync-back (per group)
         ▼                              │
┌─────────────────────────────────────────────────────────────────┐
│  Main Session (ORCHESTRATION ONLY)                               │
│  • Load spec & state         • Spawn subagents (one per group)  │
│  • Parse agent output        • Sync checkboxes                  │
│  • Run Nx quality gates      • Commit per group                 │
│  • NEVER implement tasks directly                                │
└─────────────────────────────────────────────────────────────────┘
                              │
                              │ Spawn (parallel or sequential)
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│  Subagent Layer (IMPLEMENTATION)                                 │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────┐ │
│  │ Group A agent  │  │ Group B agent  │  │ Group C agent      │ │
│  │ Backend tasks  │  │ Frontend tasks │  │ Tests / integration│ │
│  │ cwd: OSS repo  │  │ cwd: OSS repo  │  │ cwd: depends       │ │
│  └────────────────┘  └────────────────┘  └────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Hydration (session start)

  1. Read implementation-plan.md → extract tasks with checkbox state ([ ] pending, [x] done)
  2. Read context.md → extract parallel_groups, target_repo, quality_gates
  3. Use TaskCreate for each pending task (visual tracking)
  4. Wire addBlockedBy from parallel_groups[*].blocked_by

Subagent delegation

Every group runs in a Task subagent — parallel or sequential. The main session never touches code, never reads source files, never runs Nx commands itself.

Sync-back (automatic)

After each group's subagent completes:

  1. Parse output for TASK_COMPLETE: {id} markers
  2. Update implementation-plan.md checkboxes: [ ] → [x]
  3. Update Claude Tasks status

Progress is durable: kill the session, restart /feature-sprint {slug}, and it resumes from where checkboxes left off.

Workflow Phases

PhaseFilePurpose
1phase-1-init.mdLoad spec, hydrate tasks, get approval
2phase-2-execute.mdParallel execution via subagents with auto sync-back + per-group commits
3phase-3-finalize.mdRun Nx quality gates, final report, optional archive

State Management

tmp/feature-specs/{slug}/
├── {slug}.md              # status: COMPLETE
├── context.md             # parallel_groups, target_repo, quality_gates
├── implementation-plan.md # tasks with checkboxes — SOURCE OF TRUTH for progress
├── discovery.md           # reference patterns
└── functional-spec.md     # acceptance criteria

Progress is tracked entirely through implementation-plan.md checkboxes — no separate state file.

OSS / Proprietary Routing

context.md declares target_repo and each parallel group declares its repo field. The main session sets cwd for each subagent accordingly:

  • repo: oss → cwd: ../packmind (the OSS sibling cloned next to the proprietary repo)
  • repo: proprietary → cwd: . (this repo)

After all OSS work is committed and merged upstream, remind the user to git pull here so the proprietary fork picks up the auto-merge before any proprietary tasks run.

Commit Strategy

Each parallel group gets its own commit when its subagent reports success (one commit per group, not per task). This matches the Packmind CLAUDE.md rule "Each sub-task should have its own commit" — we treat a parallel group as a coherent sub-task unit.

Commits follow the git-commit-guidelines skill format (gitmoji + Conventional Commits, never auto-closing issues). The main session always shows the proposed message and asks for approval before running git commit.

Invocation

New sprint

/feature-sprint {task_slug}

If {task_slug} is omitted, the skill lists available specs in tmp/feature-specs/ and asks the user to pick one.

Resume

Same command. The skill detects existing checkbox state and offers to continue.

Status

Show progress across active sprints:

/feature-sprint status

(Implemented by listing tmp/feature-specs/*/implementation-plan.md and counting checkbox state in each.)

Error Handling

SituationAction
Spec not foundError: "Run /feature-spec first"
Spec DRAFTError: "Complete the spec first — status is DRAFT"
No parallel groupsFall back to single-group sequential execution
repo: oss but ../packmind missingAsk user — switch to proprietary or abort
Agent failsSync completed tasks, pause sprint, report error
Quality gate failsSync progress, report failures, prompt for fix-and-retry

Integration with /feature-spec

/feature-spec #123              # produces tmp/feature-specs/{slug}/
/feature-sprint {slug}          # executes the plan

Sprint reads:

  • context.md → parallel_groups, target_repo, quality_gates
  • implementation-plan.md → task list with checkboxes (source of truth)
  • {slug}.md → verify status: COMPLETE

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.