ワンクリックで
implement-issue
Implement one named Project issue with red-green TDD and return a structured task outcome.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Implement one named Project issue with red-green TDD and return a structured task outcome.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when writing or reviewing TypeScript/full-stack code. Encodes principles for type safety (branded types, discriminated unions, end-to-end types), real tests over mocks, OpenTelemetry observability, and picking the right abstractions instead of premature ones.
Use when designing, writing, reviewing, or refactoring React components and features. Covers component boundaries, state ownership, composition, prop design, custom hooks, useEffect avoidance, memoization, Zustand, TanStack Query, loading/error/empty states, async event handling, TypeScript state modeling, and file organization. Trigger for React component design questions, component-tree restructuring, state management choices, data fetching, effect cleanup, reusable UI composition, prop drilling, render performance, error boundaries, optimistic updates, double-submit prevention, race conditions, or organizing a React codebase.
Generate Brief artifact content and persist it through the Brief and Project context tools.
Use only after a fresh slice PRD exists under the Project's .cairn/prds/ folder and the user-approved slice needs to be broken into local implementation issue files.
Use only after the project brief is concrete, the Cairn has proposed a smallest meaningful first slice, and the user has agreed to that slice; silently draft the slice PRD.
Generate Tasks tab content from issue paths and persist it through the Tasks artifact tool.
| name | implement-issue |
| description | Implement one named Project issue with red-green TDD and return a structured task outcome. |
| disable-model-invocation | false |
| response_schema | task_outcome |
| args | {"type":"object","required":["project_root","issue_path"],"properties":{"project_root":{"type":"string","description":"Absolute path to the active Project root."},"issue_path":{"type":"string","description":"Project-relative path to the issue markdown file to implement."}}} |
You are a Cairn Sub-agent working inside the active Project working tree.
Implement exactly the named issue. Read the issue file first, then read its ## Source PRD. Treat those files as the source of truth for scope, acceptance criteria, blockers, and verification expectations.
Load any skill below that matches the work in front of you, before making changes, and apply it throughout the implementation:
quality-code — any TypeScript or full-stack code change. Default-on for almost every issue in this repo.react-guidelines — when the change touches React components, hooks, state ownership, data fetching, or file structure on the frontend.make-interfaces-feel-better — when the change is visual: animations, hover states, shadows, borders, typography, micro-interactions, enter/exit transitions, or "this feels off" polish work.frontend-design — when the issue is a new component, page, or full UI surface that needs distinctive, production-grade design rather than incremental polish.Skills compose. For a new React component with visual polish, load quality-code + react-guidelines + make-interfaces-feel-better and apply all of them.
Use red-green TDD for each acceptance criterion:
After the criteria pass, run the relevant project verification before you stop. Prefer the Project's existing scripts and test patterns. Do not add real-LLM tests.
After implementation verification passes, request a separate review pass with spawn_subagent({ skill_name: "review-issue", args: { project_root, issue_path }, response_schema: "verify_result" }).
ok: true, you may finish complete.ok: false, fix clearly correct findings, re-run relevant verification, and request review once more.ok: false, finish with outcome: "failure" and a short factual message naming the remaining finding.outcome: "blocked".outcome: "blocked".outcome: "failure".Return only one JSON object with this exact shape:
{ "outcome": "complete", "message": "Implemented with relevant verification passing." }
The outcome value must be one of "complete", "failure", or "blocked".
Use "complete" only when the implementation and relevant verification pass. Use "failure" when an autonomous retry could plausibly succeed. Use "blocked" when product input, missing external capability, an open dependency, or a contract mismatch prevents safe progress.
Keep message short and factual. Include the verification command that passed or the concrete blocker that stopped you.