Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
日本語の概要は準備中です。原文の説明を表示しています。
Use when you write the `plan` section of an analiz report - steps that pin files, signatures, tests and verify commands, nothing more
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
From the design sections, write the plan section of the ONE analysis report (analiz-html-report) — the same HTML document attached with add_task_document, format: "html", titled analiz: <YYYY-MM-DD> <topic>. Never a separate plan: … document and never a file in the repo (you do not write or commit files during analysis). Write for a skilled developer who knows NOTHING about this codebase or problem domain and has questionable taste: document every file to touch, every interface, every command. DRY. YAGNI. TDD. Frequent commits — those commits are the implementer's, made later against the plan; the plan itself is never committed.
Before defining tasks, map every file the plan creates or modifies and what each is responsible for — this locks in the decomposition:
A task is the smallest unit that carries its own test cycle and an independently testable deliverable. Fold setup/scaffolding into the task whose deliverable needs it. Split only where a reviewer could reject one task while approving its neighbor.
The plan section opens with the goal, architecture and constraints before its first step:
<section id="plan">
<h2>Implementation plan</h2>
<p><strong>Goal:</strong> one sentence. <strong>Architecture:</strong> 2–3 sentences. <strong>Tech stack:</strong> key technologies.</p>
<h3 id="plan-constraints">Global constraints</h3>
<ul><li>Project-wide rules copied VERBATIM from the design — version floors, locale/copy rules, layer boundaries — one line each. Every step implicitly includes this list.</li></ul>
<h3 id="plan-review-focus">Review Focus</h3>
<ul><li>Up to 5 inputs or conditions a real user will hit that no step's test covers — empty list, duplicate submit, a zero/negative amount, missing permission, a timeout — each assigned to the step whose test should cover it.</li></ul>
<ol class="steps"> … </ol>
</section>
Review Focus exists because the spec implies inputs the steps don't always test for. List the ones a reviewer should check for explicitly; an empty list here is a claim that every edge case the spec implies is already tested somewhere in the plan.
Each task is one step — <li id="step-N"> in <ol class="steps"> — and lists:
A step is unambiguous, not complete — the implementer writes exactly one reasonable thing from it, nothing is invented, but it is not a transcript of the program:
These are plan failures — never write them:
<li id="step-2">
<h3>TaskExporter service <span class="tag">backend-api</span></h3>
<p><strong>Files:</strong> create <code>internal/application/export/service.go</code>; test <code>internal/application/export/service_test.go</code></p>
<p><strong>Consumes:</strong> <code>TaskRepository.ListByProject(ctx, id) ([]Task, error)</code> (step 1) · <strong>Produces:</strong> <code>Export(ctx, projectID uuid.UUID) ([]byte, error)</code></p>
<ol>
<li>Failing test:
<pre><code>func (s *ExportSuite) TestExport_encodesHeaderAndRows() {
s.repo.EXPECT().ListByProject(mock.Anything, s.pid).Return([]Task{{Title:"A"}}, nil)
csv, err := s.svc.Export(s.ctx, s.pid)
s.NoError(err); s.Contains(string(csv), "id,title,status,created_at"); s.Contains(string(csv), "A")
}</code></pre></li>
<li>Run <code>go test ./internal/application/export/... -run TestExport</code> → FAIL (Export undefined)</li>
<li>Minimal implementation (constructor + Export encoding header+rows)</li>
<li>Run → PASS</li>
<li>Commit: <code>feat: add TaskExporter service</code></li>
</ol>
</li>
The test is code, the signature is exact, and the body is omitted because "encode header + rows" is exactly what the test already pins — nothing left for the implementer to invent.
Contrast the ❌ version of the same step: "Steps: write tests for TaskExporter; implement it similar to the existing ProjectExporter; add appropriate error handling; run tests." No test code, no signature, no file, "similar to" points at code the implementer has to go find themselves, and "appropriate error handling" is a guess — four plan failures in one step.
Verify commands (the command inside any "Run …" step) come from list_component_checks for the repository (the repo's own CI-equivalent local commands) or, failing that, get_project_brief — never invented from memory. An invented command is a plan failure the same as a placeholder: the implementer runs it, it doesn't exist, and the step is useless.
clearLayers() in Task 3 but clearFullLayers() in Task 7 is a bug).Fix issues inline, make the split section match the steps, then the report is ready for the human; task-decomposition comes only after approval.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
日本語の概要は準備中です。原文の説明を表示しています。
Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping
日本語の概要は準備中です。原文の説明を表示しています。
Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal
日本語の概要は準備中です。原文の説明を表示しています。
Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
日本語の概要は準備中です。原文の説明を表示しています。
How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.
日本語の概要は準備中です。原文の説明を表示しています。
Use when deciding whether a request needs an analiz task before implementation - the conditions that require the architect's analysis versus going straight to implementation
日本語の概要は準備中です。原文の説明を表示しています。