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 the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.