Agent skill

Speckit Opsmill Implement

by opsmill in opsmill/infrahub

Run the speckit implementation phase chunk-by-chunk in clean-context subagents, then review, then produce a final report.

Apache-2.0Auto-check passedDevelopment

Install Speckit Opsmill Implement

skills CLI
$ npx skills add opsmill/infrahub --skill speckit-opsmill-implement -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install opsmill/infrahub speckit-opsmill-implement --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/speckit-opsmill-implement .claude/skills/speckit-opsmill-implement && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
speckit-opsmill-implement
GitHub stars
529
Token cost
~3.5k tokens
SKILL.md length
2,024 words
Files
1
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

Run the speckit implementation phase chunk-by-chunk in clean-context subagents, then review, then produce a final report.

  • Works in 4 steps: Preflight → Implement (looped, clean-context… → Review → …
  • Tasks that involve Spec-driven development
  • SKILL.md covers User Input, Outline and Completion
  • Calls go, cargo and npm

What it does

Speckit Opsmill Implement is an agent skill from opsmill/infrahub. Run the speckit implementation phase chunk-by-chunk in clean-context subagents, then review, then produce a final report. Picks up from an existing tasks.md.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires spec-kit project structure with .specify/ directory

It sits in Development, covering Spec-driven development and Subagents. The repository describes itself as: Infrahub is a graph-based data management platform with built-in version control, CI workflows, peer review, and API access. It’s purpose-built to power reliable infrastructure… The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Spec-driven development
  • Tasks that involve Subagents

Example prompts

  • “/speckit-opsmill-implement”

Requirements

  • Compatibility (from SKILL.md): Requires spec-kit project structure with .specify/ directory

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Preflight
  2. Implement (looped, clean-context subagents)
  3. Review
  4. Final Report

What it can do on your machine

Read from SKILL.md and the folder at commit af1c6c8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • cargo
    • npm
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires spec-kit project structure with .specify/ directory

    From compatibility in the SKILL.md frontmatter.

Context cost

Speckit Opsmill Implement loads about 3.5k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 2,024 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from opsmill/infrahub at commit af1c6c8, republished under its Apache-2.0 licence (© opsmill). 2,024 words, ~3,527 tokens.

Download SKILL.mdSave it as .claude/skills/speckit-opsmill-implement/SKILL.md (or your agent's skills folder).
name
speckit-opsmill-implement
description
Run the speckit implementation phase chunk-by-chunk in clean-context subagents, then review, then produce a final report. Picks up from an existing tasks.md.
compatibility
Requires spec-kit project structure with .specify/ directory
metadata.author
github-spec-kit
metadata.source
opsmill:commands/implement.md

User Input

text
$ARGUMENTS

You MUST consider the user input before proceeding (if not empty). $ARGUMENTS is optional and may name the spec directory to operate on (e.g. specs/008-foo). If empty, operate on the most recently modified spec directory under specs/ that has a tasks.md.

Outline

You are running the implementation + review tail of the speckit pipeline. This command picks up where speckit-opsmill-prep leaves off: it expects a feature directory under specs/ containing spec.md, plan.md, and tasks.md. It does not generate or modify those documents — it executes them.

The implementation phase runs as a loop over chunks of tasks.md, with each chunk implemented inside a clean-context subagent. The orchestrator (you) never edits feature code directly — it dispatches, integrates, and reports.

After all chunks are complete, you run a single review pass across the whole change set, fix any high-severity findings, and emit a final report.

Each phase below is executed by invoking the named skill (e.g. via the agent's Skill tool). Skills are agent-agnostic, so this workflow runs identically across any harness that supports skill discovery — not only those exposing speckit slash commands.

Phase 0 — Preflight

Invocation context. This command runs in one of two modes, and the stop-conditions below behave differently in each:

  • Interactive (a user invoked it directly). On a stop-condition you may pause and ask the user, as written.
  • Autonomous parent (invoked as Phase B of speckit-opsmill-auto). There is no user to resume a pause, so you MUST NOT pause or wait. Treat every stop-condition below as a hard abort: do not start the implement loop, and end your run with the STATUS: BLOCKED status line defined in Completion so the parent orchestrator can detect it and stop cleanly. Never proceed on a dirty tree or missing docs — doing so contaminates the HEAD@start..HEAD@now review diff. You can tell you are running under an autonomous parent because you were dispatched with a resolved spec-dir path and no interactive session.

Before any work begins:

  1. Resolve the target spec directory (from $ARGUMENTS or the most recently modified specs/<feature>/ with a tasks.md). Record the absolute path; you will pass this to every subagent.
  2. Verify spec.md, plan.md, and tasks.md all exist. If any are missing: interactive → abort with a clear error directing the user to run speckit.opsmill.prep first; autonomous parent → abort with STATUS: BLOCKED (reason: missing prep artifacts).
  3. Read tasks.md end-to-end and identify the chunking boundaries (see "Chunking strategy" below). Build a numbered list of chunks with their task IDs.
  4. Verify the working tree is clean (or only contains expected prep artifacts). If it is dirty in unrelated ways: interactive → surface that and pause; autonomous parent → abort with STATUS: BLOCKED (reason: unexpectedly dirty working tree). Do not attempt to stash or clean it yourself.
  5. Note the current HEAD commit — you will diff against it for the review and report.
Phase 5 — Implement (looped, clean-context subagents)

Phase numbering. This file is the implementation tail; phases jump 0 → 5 → 6 → 7 on purpose. Phases 1–4 (Specify → Plan → Critique → Tasks) run in speckit-opsmill-prep. They are not missing or skipped here.

Loop over the chunks identified in Phase 0. For each chunk:

  1. Dispatch a subagent with a clean context. Use your harness's subagent / Task tool (in Claude Code: the Agent tool with subagent_type=general-purpose). The subagent must not inherit the orchestrator's conversation history — every chunk starts fresh.

  2. Brief the subagent self-contained. The orchestrator has read context the subagent does not. The prompt to the subagent must include:

    • Absolute path to the spec directory.
    • Absolute path to the repository root.
    • Pointers to project context files the subagent should read first, when present at the repo root or in their conventional locations: AGENTS.md, CLAUDE.md, CONTEXT.md, and the project constitution (commonly .specify/memory/constitution.md, dev/constitution.md, or constitution.md). The orchestrator should resolve which of these actually exist before dispatch and pass the resolved absolute paths — do not ask the subagent to guess. If none exist, say so explicitly so the subagent does not waste a turn searching.
    • The exact chunk of tasks to implement, copied verbatim from tasks.md (task IDs, descriptions, and any [P] parallel markers).
    • An explicit instruction to invoke the speckit-implement skill scoped to only those task IDs — not the full tasks.md.
    • The commit policy: the subagent should run formatters/linters and commit its own work via the speckit-checkpoint-commit skill before returning.
    • The local-pass policy. Every test the chunk adds or modifies — unit, integration, and E2E when the project supports running them locally — MUST be observed to PASS locally at least once before the chunk is reported as done. Marker-clean / lint-clean / type-clean is NOT a substitute. If a test class cannot be executed locally in this project (e.g. an E2E suite that requires infrastructure the developer machine cannot provide), the subagent MUST state that explicitly and explain why, rather than silently skipping. For every test that was run, the subagent MUST return the evidence specified in the response contract below; if it cannot produce the evidence for a test it claims to have written, the chunk's outcome line for that task MUST be ⚠️ partial or ❌ blocked (not ✅ done) with the reason.
    • Discovering how tests run. Before executing tests, the subagent should determine the project's test conventions by reading AGENTS.md / CLAUDE.md, then the repo's standard locations (Makefile, package.json scripts, pyproject.toml, Cargo.toml, go.mod, CI config, tasks.md itself). Use whatever runner the project actually uses — pytest, go test, cargo test, npm test, vitest, make test, etc. Do not assume a specific framework.
    • A short response contract: return (a) a one-line outcome per task ID (✅ done / ⚠️ partial / ❌ blocked + reason), (b) the commit SHA(s) it produced, (c) any decisions worth flagging upward, (d) overall lint/format status, (e) for every new or modified test: the test identifier (node ID, function name, or file::test as the runner reports it), the exact command used to run it, an ISO 8601 wall-clock timestamp of the passing run, any environment context that matters for reproducibility (e.g. cluster id + kubeconfig path, container/compose service, browser version, DB fixture name) — or n/a if the runner needs none — and the verbatim pass line from the runner's output (e.g. PASSED ..., ok, --- PASS:, ✓ ...). If the chunk added or modified no tests, the subagent MUST say so explicitly so the orchestrator can record "n/a" rather than an omission. If an E2E test was added but not run locally because the project does not support local E2E execution, the subagent MUST state that as a separate line and include any CI-side runbook / command that will exercise it instead.
    • Length cap on the report (e.g. "under 250 words", excluding the test evidence block which has no cap) so the orchestrator's context does not balloon.
  3. Wait for the subagent to return, then:

    • Pull its outcome lines into your running ledger of chunk results.
    • Verify tasks.md checkboxes for that chunk are now [X] (re-read the file). If the subagent forgot to tick them, do it yourself and add a fresh fixup commit — do not --amend the subagent's commit. Its SHA is already recorded in the Phase 7 chunk ledger (§2) and may be referenced elsewhere; amending would rewrite it and make the final report cite a commit that no longer exists.
    • If the subagent reports ❌ blocked: do not auto-retry blindly. Decide between (i) re-dispatching with sharper instructions, (ii) splitting the chunk smaller and retrying, or (iii) recording the block and moving on. State which you chose and why.
    • Do not invoke speckit-checkpoint-commit again here — the subagent already committed. Only commit yourself if you applied a fixup (e.g. ticking missed checkboxes).
  4. Move to the next chunk. Never run two implementation subagents in parallel — chunks may share files and conflicting writes are far more expensive than the wall-clock savings.

Show full SKILL.md (753 more words)Show less
Chunking strategy

Prefer the natural phase headings already present in tasks.md (### Phase 3.1: Setup, ### Phase 3.2: Tests First (TDD), ### Phase 3.3: Core Implementation, etc.). Each phase becomes one chunk.

If a phase contains more than ~10 tasks or touches > ~15 files, split it further along cohesive seams (e.g. one chunk per module, one chunk per contract test). If two adjacent small phases together total < ~5 tasks, do not merge them — keep the boundary; small chunks help review and reduce blast radius if a subagent goes off the rails.

Respect explicit dependencies in tasks.md. Sequential [P]-free tasks must stay in their original order across chunks; [P] markers within a chunk are fine for the subagent to parallelise internally.

Phase 6 — Review

Once all chunks have completed (including any retries), invoke the speckit-review-run skill once across the full diff (HEAD-at-start..HEAD-now).

  • For findings rated high severity or above, fix them inline. Prefer fixing them yourself if the change is small and localised; dispatch a fresh clean-context subagent (same protocol as Phase 5) if the fix spans multiple files or needs significant code understanding.
  • For lower-severity findings, record them in the report (do not block).
  • Commit any review-driven fixes via speckit-checkpoint-commit.
Phase 7 — Final Report

Write a markdown report to <spec-dir>/opsmill-implement-report.md and also print it to the user. The report must contain:

  1. Header — feature name, spec dir, base commit, head commit, total wall-clock time if known.

  2. Chunk-by-chunk ledger — for each chunk dispatched, in order:

    • Chunk name (phase heading from tasks.md).
    • Number of tasks in the chunk.
    • Outcome counts (✅ / ⚠️ / ❌).
    • Commit SHA(s) produced by the subagent.
    • Any decisions or surprises the subagent flagged upward.
  3. Tasks not completed — task IDs still [ ] in tasks.md, with the reason from the relevant subagent's report. Empty section if everything is [X].

  4. Local-pass evidence (REQUIRED). A table of every test added or modified by this run — unit, integration, and E2E — with one row per test:

    Test idType (unit/integration/e2e)Run commandPassed at (ISO 8601)Environment contextVerbatim pass line

    Aggregate the rows from each chunk subagent's response. If a chunk added/modified a test but did not return evidence, the row's "Passed at" cell MUST be MISSING — see chunk <N> and the test MUST also appear in §3 "Tasks not completed" as a blocker — never silently elide it.

    If an E2E test was added but not executable locally in this project, record it as a separate row with Passed at = deferred — local E2E not supported and put the CI-side command in Run command. Call this out in §6 "Autonomous decisions" so the user can confirm the call.

    If no tests were added or modified by the whole run, write n/a — no new or modified tests in this implementation instead of the table and state it explicitly so reviewers can verify the claim against the diff.

  5. Review findings — table of severity / file / one-line summary. Mark which were fixed inline and which were deferred.

  6. Autonomous decisions — any judgment calls the orchestrator made that the user might want to revisit (chunk splits, blocked-task handling, review-finding triage choices).

  7. Suggested next steps — e.g. "open a PR", "rerun speckit.opsmill.implement to retry the 2 blocked tasks", "address the deferred review findings".

Blocking rule. If §4 contains any MISSING row, the report header MUST mark the run INCOMPLETE and §7 MUST list "produce local-pass evidence for the listed tests" as the first next step. Do not declare the spec done while local-pass evidence is missing. (deferred — local E2E not supported rows do NOT trigger this rule, but they MUST be flagged in §6.)

Commit the report via speckit-checkpoint-commit as the final action.

Completion

Print a 4-6 line summary mirroring the report header + outcome counts so the user does not need to open the file to know the result.

Machine-readable status line (REQUIRED). The final line of your output MUST be exactly:

STATUS: <DONE|INCOMPLETE|BLOCKED> | SPEC_DIR: <absolute spec-dir path> | REASON: <short reason or n/a>

  • STATUS: DONE — all chunks completed and §4 local-pass evidence has no MISSING rows.
  • STATUS: INCOMPLETE — the run finished but the report is marked INCOMPLETE (e.g. missing local-pass evidence, or blocked tasks recorded).
  • STATUS: BLOCKED — a Phase 0 stop-condition aborted the run before the implement loop (missing prep artifacts, unexpectedly dirty tree). In this case no report is written; emit only the summary explaining why, then this line.

The parent speckit-opsmill-auto parses this line; keep it as the literal last line, unwrapped.

Then stop — do not open a PR, do not push, do not start a new feature. The user will take it from there.

© opsmill, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/speckit-opsmill-implement of opsmill/infrahub.

Open the folder on GitHubat commit af1c6c8

Compare with similar skills

Speckit Opsmill Implement next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Speckit Opsmill Implement compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Speckit Opsmill Implement this skillopsmill/infrahub529—~3.5kAutomated safety check: PassApache-2.0
CCPM Project Managementautomazeio/ccpm8.4k—~1.1kAutomated safety check: PassMIT
MoAI Foundation Coremodu-ai/moai-adk1.2k—~5kAutomated safety check: PassApache-2.0
Spec-Driven Development v2LichAmnesia/lich-skills234—~3.1kAutomated safety check: PassMIT
Sagawarpdotdev/common-skills606—~4.1kAutomated safety check: PassMIT
Tapd Story ImplementTencentBlueKing/bk-bcs840—~1.2kAutomated safety check: PassCustom licence

Similar skills

  • Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.

    8.4k GitHub stars~1.1k tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • MoAI Foundation Core

    modu-ai/moai-adk

    Reference for MoAI-ADK's core development principles: TRUST 5 quality gates, SPEC-first domain-driven workflow, agent delegation and token budgeting.

    1.2k GitHub stars~5k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Spec-Driven Development v2

    LichAmnesia/lich-skills

    Organizes long-running agent work into a Project, Sprint and Task hierarchy with per-task state files, isolated worktrees, review loops and script-checked rules.

    234 GitHub stars~3.1k tokensUpdated 4 mo ago
    Agent WorkflowsAuto-check passed
  • Saga

    warpdotdev/common-skills

    Run an autonomous, spec-driven development "saga" for medium-to-large features using an orchestrator agent and a fleet of worker subagents.

    606 GitHub stars~4.1k tokensUpdated 7 days ago
    Agent WorkflowsAuto-check passed
  • Tapd Story Implement

    TencentBlueKing/bk-bcs

    迭代执行流水线代码实现阶段。基于 tasks.md 调用 /speckit.implement 以 TDD 模式完成全部任务。

    840 GitHub stars~1.2k tokensUpdated 13 days ago
    Testing & QAAuto-check passed
  • Tapd Story Plan

    TencentBlueKing/bk-bcs

    迭代执行流水线开发计划阶段。基于 spec.md 调用 /speckit.plan 以测试驱动开发模式构建 开发计划、技术调研与数据模型,并在同一 subagent 内就地做文档级合规自检,产出 plan-report.md。

    840 GitHub stars~886 tokensUpdated 13 days ago
    Agent WorkflowsAuto-check passed

More from opsmill/infrahub

All 32 skills in this repo
  • Analyzing CI Flakiness

    opsmill/infrahub

    Analyzes recent CI failures on pull requests to identify flaky tests, using retry outcomes (failed attempt → green re-run) and cross-PR recurrence as evidence, and maintains a local longitudinal…

    529 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Audit Docs

    opsmill/infrahub

    Audits internal (dev/) and external (docs/) documentation completeness for a feature, subject, or set of existing docs, maps changes indicated by the user, across Infrahub's documentation layers…

    529 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Commit

    opsmill/infrahub

    Stages and commits the current changes onto a safe working branch, enforcing branch discipline and optionally pushing upstream.

    529 GitHub stars~2.8k tokensUpdated today
    Auto-check: notes
  • A skill your agent uses when you've fixed a bug, added a feature, or made any user-facing change in a project that uses Towncrier and need to record it for the changelog — before committing or…

    529 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Creating Issues

    opsmill/infrahub

    Turns a single feature idea, improvement, or bug into ONE well-structured GitHub issue.

    529 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Creating Prd

    opsmill/infrahub

    Synthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue).

    529 GitHub stars~4k tokensUpdated today
    Auto-check passed

Questions about Speckit Opsmill Implement

What does Speckit Opsmill Implement do?

Run the speckit implementation phase chunk-by-chunk in clean-context subagents, then review, then produce a final report. Speckit Opsmill Implement is an agent skill from opsmill/infrahub. Run the speckit implementation phase chunk-by-chunk in clean-context subagents, then review, then produce a final report.

When should I use Speckit Opsmill Implement?

Speckit Opsmill Implement fits situations like: tasks that involve Spec-driven development; tasks that involve Subagents.

How do I install Speckit Opsmill Implement in Claude Code?

Run `npx skills add opsmill/infrahub --skill speckit-opsmill-implement -a claude-code`. Or copy the skill folder (.agents/skills/speckit-opsmill-implement in opsmill/infrahub) into .claude/skills/speckit-opsmill-implement in your project. Claude Code loads it when a task matches its description.

How do I install Speckit Opsmill Implement in Codex?

Run `npx skills add opsmill/infrahub --skill speckit-opsmill-implement -a codex`. Or copy the skill folder (.agents/skills/speckit-opsmill-implement in opsmill/infrahub) into .agents/skills/speckit-opsmill-implement in your project. Codex loads it when a task matches its description.

Can I use Speckit Opsmill Implement in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add opsmill/infrahub --skill speckit-opsmill-implement -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/speckit-opsmill-implement, .gemini/skills/speckit-opsmill-implement, .github/skills/speckit-opsmill-implement and .opencode/skills/speckit-opsmill-implement in your project.

What does Speckit Opsmill Implement need to run?

Going by SKILL.md and its folder, Speckit Opsmill Implement needs the command-line tools its instructions call (go, cargo, npm and make). Compatibility (from SKILL.md): Requires spec-kit project structure with .specify/ directory.

Does Speckit Opsmill Implement access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Speckit Opsmill Implement safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Speckit Opsmill Implement use?

Speckit Opsmill Implement is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Speckit Opsmill Implement use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Speckit Opsmill Implement?

Skills that share tags, products or a category with Speckit Opsmill Implement: CCPM Project Management (automazeio/ccpm, 8.4k stars), MoAI Foundation Core (modu-ai/moai-adk, 1.2k stars), Spec-Driven Development v2 (LichAmnesia/lich-skills, 234 stars) and Saga (warpdotdev/common-skills, 606 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Speckit Opsmill Implement?

opsmill (a GitHub organization) maintains it in opsmill/infrahub, which has 529 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 7, 2026.

Source: opsmill/infrahub on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.