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 finish an analiz report - the human must approve the analysis before any implementation task is created, via the analiz_review column
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Your analysis output — the ONE analysis report, with the spec and the implementation plan as its sections — is not self-approved. A human reviews it BEFORE any implementation task exists. This is the only human gate in the system: the human does not review individual dev tasks, but they DO review your plan, because a wrong plan multiplies into wrong tasks across every project.
The human reviews the report passage by passage: they select text in it, comment on it, and send all their comments back at once. Each comment is anchored to the words it is about, so it is precise — and every one of them needs an answer.
Core principle: No implementation task is created from an unapproved plan. You stop, the task waits at analiz_review, and you create nothing until the human approves.
This reverses the old flow. You no longer create tasks and then close the analiz. You present the plan, wait for approval, and only THEN create tasks.
digraph gate {
"Report written\n& self-reviewed" [shape=box];
"Summary comment, STOP\n(system moves -> analiz_review)" [shape=box];
"Human decision" [shape=diamond];
"Human moves -> done\n(approved)" [shape=box];
"Human sends comments\n-> need_revision (rejected)" [shape=box];
"Create per-project impl tasks\n+ list them" [shape=box];
"Move analiz -> released" [shape=doublecircle];
"Fix every comment at root\nin the SAME report, resolve each\n(system moves -> analiz_review)" [shape=box];
"Report written\n& self-reviewed" -> "Summary comment, STOP\n(system moves -> analiz_review)";
"Summary comment, STOP\n(system moves -> analiz_review)" -> "Human decision";
"Human decision" -> "Human moves -> done\n(approved)" [label="approve"];
"Human decision" -> "Human sends comments\n-> need_revision (rejected)" [label="request changes"];
"Human moves -> done\n(approved)" -> "Create per-project impl tasks\n+ list them";
"Create per-project impl tasks\n+ list them" -> "Move analiz -> released";
"Human sends comments\n-> need_revision (rejected)" -> "Fix every comment at root\nin the SAME report, resolve each\n(system moves -> analiz_review)";
"Fix every comment at root\nin the SAME report, resolve each\n(system moves -> analiz_review)" -> "Human decision";
}
When the report is written, self-reviewed, and attached via add_task_document (format: "html", analiz-html-report):
add_task_comment — a review-ready summary for the human:
analiz: …).You are re-dispatched (as the analiz task's assignee) when the human decides. The task's current column tells you which path:
Column is done → APPROVED.
list_open_questions if the context block doesn't already show them). An unanswered non-blocking question means its recommended_answer stands. If a human's answer contradicts the approved split or plan in a way this decomposition cannot absorb, do NOT decompose — add_task_comment naming the conflict and stop (open-questions-protocol).derived_from: ["<this analiz task's key>"]. Your report — spec and plan — is a document on THIS task and exists nowhere else — the reference is what puts it in front of the developer and what makes list_task_documents able to return it. A task without it is a task whose specification cannot be found.blocked_by (who codes first) and deploy_depends_on (who ships first), not in the description.add_task_comment listing every created task: title, assignee, project, and its order.move_board_task the analiz task to released. You are finished.The run is a revision (the task came back through need_revision) → REJECTED.
list_document_annotations with status submitted returns every one. Also read the task comments: the review's covering note is there.list_task_documents on this task with the report's document_id and raw: true; follow next_offset until you have all of it.list_open_questions if you need the full list): fold the answer into the report and withdraw or replace any question it made moot. An unanswered non-blocking question means its recommended_answer stands — do not re-ask it (open-questions-protocol).update_task_document on its document_id — edits (each old_text copied exactly from the source) for targeted passages, content for a rewrite. Keep its sections and ids, and keep its TITLE unchanged (a new date creates a second document instead of revising this one). Never attach a second document. Leave split as the human approved unless a comment or a code re-read gives you a concrete reason to change it.resolve_document_annotations ONCE, with {id, reply} for every comment you were sent: the reply is one line saying what changed and where ("Replaced the queue with a cron job — see #design and #step-2"), or why you deliberately kept it.add_task_comment with a short summary of what changed. Then STOP: when the run ends with the report revised, the system moves the task back to analiz_review — do not move it yourself.analiz_review, done or need_revision — the system moves it to analiz_review, and done / need_revision are the human's decisions. You move it only to released, after approval.update_task_document.analiz_review → you are creating tasks before approval.derived_from → they point at no analysis, and the report you spent the run writing is unreachable from the work it specifies.move_board_task to analiz_review or done → that is the system's move or the human's, not yours.add_task_document during a revision → revise the existing report with update_task_document instead.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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
日本語の概要は準備中です。原文の説明を表示しています。