Skip to content
Agentmart
Submit a tool

implement-spec

User-invoked.

Skill by fderuiter

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/fderuiter-implement-spec

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

User-invoked. Orchestrate concurrent subagents to implement a full specification across its ticket task graph. Use when a spec and its dependency-linked tickets are ready to build in code.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/implement-spec

What's inside

Skill name
implement-spec
Description
User-invoked. Orchestrate concurrent subagents to implement a full specification across its ticket task graph. Use when a spec and its dependency-linked tickets are ready to build in code.
License
MIT
Instructions
129 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Implement Spec

You have been provided a spec. This spec has a set of tickets associated with it (typically produced by `/to-tickets`), describing how to implement the spec in code.

The goal is a completed pull request that implements the entire specification on a single target branch.

The tickets are not a linear list of steps. They form a **task graph** (a directed acyclic graph) with blocking relationships between them. At any moment, there is a **frontier** of unblocked tickets ready to be worked on concurrently.

Communication between the orchestrator and subagents should be sparse and efficient. Communicate primarily through **context pointers**: references to the spec file, ticket identifiers, ADRs, research notes, and commit hashes. Do not duplicate information already accessible via pointers.

**Implementer subagents** run in isolated Git worktrees and branches for maximum concurrency and safety.

## Lifecycle

```
       ┌──────────────────────────────────────────────┐
       │               Read Spec & DAG                │
       └──────────────────────┬───────────────────────┘
                              │
                              ▼
       ┌──────────────────────────────────────────────┐
       │   Identify Unblocked Frontier Tickets        │
       └──────────────────────┬───────────────────────┘
                              │
               ┌──────────────┴──────────────┐
               ▼                             ▼
       ┌──────────────┐              ┌──────────────┐
       │ Implementer  │              │ Implementer  │
       │ Subagent A   │              │ Subagent B   │
       │ (Worktree A) │              │ (Worktree B) │
       └───────┬──────┘              └───────┬──────┘
               │                             │
               └──────────────┬──────────────┘
                              │
                              ▼
       ┌──────────────────────────────────────────────┐
       │        Merge Completed Work into PR          │
       └──────────────────────┬───────────────────────┘
                              │
                              ▼
       ┌──────────────────────────────────────────────┐
       │       Advance Frontier & Repeat              │
       └──────────────────────┬───────────────────────┘
                              │
                              ▼
       ┌──────────────────────────────────────────────┐
       │  Run /code-review & Clean Up Worktrees       │
       └──────────────────────────────────────────────┘
```

## Steps

### 1. Read the Spec and Build the Task Graph

Read the spec document and all linked tickets. Map the blocking dependencies:
- Which tickets have zero dependencies? These form the initial **frontier**.
- Which tickets depend on earlier tickets completing first?
- Note any shared resources, schemas, or seams that multiple tickets will touch. Pin literal names or shared interfaces before dispatching parallel implementers.

### 2. Optional: Pre-Implementation Exploration Subagent

If tickets require deep exploration of third-party APIs, legacy codebase seams, or external docs:
- Dispatch an exploration subagent with read-only tools.
- Have the subagent record its findings in a designated notes directory (e.g. `.notes/` or an artifact) rather than cluttering conversation context.
- All implementer subagents can then read those notes directly via context pointers.

### 3. Create the PR Branch

Create the target feature branch for the entire spec (e.g. `feat/spec-name`), and create a draft pull request on GitHub:
- Mark the PR as closing the spec issue and all child tickets (e.g., `Closes #101, Closes #102`).

### 4. Dispatch Implementer Subagents on the Frontier

For each unblocked ticket on the frontier:
1. Declare a domain-specialized worker via `define_subagent` tailored to the ticket boundary (e.g. `name: "worker-database"`, `description: "Database and schema implementer"`, `system_prompt: "...", `enable_write_tools: true`, `enable_subagent_tools: false`). If generic implementation suffices, use `TypeName: "self"`.
2. Apply the **Scoped Worktree Strategy**:
   - Default to `Workspace: "share"` (shared worktree) when tickets touch disjoint subdirectories or non-conflicting modules, avoiding unnecessary disk duplication.
   - Use `Workspace: "branch"` only when the ticket executes full-tree refactors or risky build mutations.
3. Launch the worker using `invoke_subagent` (`Model: "inherit"` or `"pro"`).
4. Send the initial task assignment via `send_message` formatted using the **Structured Envelope**:
   ```json
   {
     "type": "task_assignment",
     "taskId": "<ticket-id>",
     "status": "in_progress",
     "payload": {
       "specPath": "docs/specs/feature-spec.md",
       "ticketId": "<ticket-id>",
       "requirements": "...",
       "adrPointers": ["docs/adr/0008-antigravity-multi-agent-swarms-and-sdk-evals.md"]
     },
     "nextAction": "Implement test-first using /tdd and notify orchestrator upon completion."
   }
   ```
5. Optionally attach a **timer guard** via the `schedule` tool (e.g. `DurationSeconds: 900`, `TimerCondition: "<subagent-id>"`) to supervise long-running tasks and recover from hangs without active polling loops.
6. The worker communicates progress, blockers, or completion using matching structured envelopes (`type: "checkpoint"`, `type: "blocker"`, `type: "task_completion"`).
7. Stop calling tools and let Antigravity's reactive wakeup notify you when the worker finishes, sends a message, or the timer guard triggers. Do not poll in a loop.

### 5. Merge Completed Tickets into the PR Branch

When an implementer subagent reports `task_completion`:
1. If using `Workspace: "branch"`, switch to the PR branch and merge the ticket branch:
   ```bash
   git checkout feat/spec-name
   git merge --no-ff "ticket/<ticket-id>" -m "feat: implement ticket <ticket-id>"
   ```
2. If using `Workspace: "share"`, verify that all modified files pass the test suite on the shared branch.
3. Run the test suite to verify integration on the PR branch.
4. If conflicts arise, use `/resolving-merge-conflicts` to resolve them cleanly preserving intent.
5. Clean up any temporary branches or workspaces.

### 6. Advance the Frontier

Check the task graph:
- Mark the completed ticket as resolved.
- Identify newly unblocked tickets whose dependencies are now all satisfied.
- Spawn new implementer subagents for the new frontier using the **Dynamic Worker Mesh**.
- Repeat steps 4 through 6 until all tickets in the graph are complete.

From fderuiter/agy-skills, MIT.

More from fderuiter/agy-skills

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Aug 28, 2026 (2 months ago)
Last release
Aug 28, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from fderuiter

Cite this page

implement-spec skill. Agent Mart. https://agentmart.dev/skills/fderuiter-implement-spec (last updated 2026-10-24)