# Canonical State Comments Gitea is the durable system of record for workflow continuation. When a comment changes issue, PR, or discussion state, it should leave enough information for the next role to continue without private chat history. Canonical comments answer: - what state the object is in - who acts next - what the next actor should do - the exact prompt the next actor should run - which proof, blocker, or dependency matters Non-workflow discussion comments do not need this template. ## Issue State Use this when an issue becomes ready, blocked, in progress, PR-open, superseded, merged, or otherwise changes workflow direction. ```text ## Canonical Issue State STATE: WHO_IS_NEXT: NEXT_ACTION: NEXT_PROMPT: WHAT_HAPPENED: WHY: RELATED_DISCUSSION: RELATED_PRS: - #... BRANCH: HEAD_SHA: <40-character SHA or none> VALIDATION: BLOCKERS: LAST_UPDATED_BY: ``` ## PR State Use this when a PR needs review, receives changes requested, is approved, is stale, is superseded, or becomes ready for merge. ```text ## Canonical PR State STATE: WHO_IS_NEXT: NEXT_ACTION: NEXT_PROMPT: WHAT_HAPPENED: WHY: ISSUE: #... BASE: HEAD: HEAD_SHA: <40-character SHA> REVIEW_STATUS: VALIDATION: BLOCKERS: SUPERSEDES: SUPERSEDED_BY: MERGE_READY: LAST_UPDATED_BY: ``` ## Discussion Summary Discussions should normally have at least five substantive comments before conversion into issues. A controller may waive that only for tiny mechanical, urgent, or explicitly trivial work. ```text ## Canonical Discussion Summary STATE: WHO_IS_NEXT: DECISION: WHY: SUBSTANTIVE_COMMENTS: ISSUES_TO_CREATE_OR_CREATED: - #... DEPENDENCY_ORDER: NON_GOALS: OPEN_QUESTIONS: NEXT_ACTION: NEXT_PROMPT: LAST_UPDATED_BY: ``` ## Validation Rules The final-report validator rejects canonical state update claims when the report omits the canonical block or when the block lacks: - `STATE` - `WHO_IS_NEXT` - `NEXT_ACTION` - `NEXT_PROMPT` It also rejects vague next actions such as `continue`, ready-to-merge states without approval/head-SHA proof, superseded states without canonical item proof, and blocked states without an unblock condition.