@homericintelligence/athena-opencode 0.4.4 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +30 -17
  2. package/package.json +2 -2
  3. package/plugin.js +20 -5
  4. package/skills/TECHNICAL_ENGLISH.md +78 -0
  5. package/skills/_cli.py +26 -18
  6. package/skills/_support/docs/dependency-resolution.md +192 -0
  7. package/skills/_support/docs/policies/development.md +117 -0
  8. package/skills/_support/docs/policies/evidence-integrity.md +40 -0
  9. package/skills/_support/docs/principles/README.md +542 -0
  10. package/skills/_support/docs/principles/details/p001-kiss.md +114 -0
  11. package/skills/_support/docs/principles/details/p002-yagni.md +109 -0
  12. package/skills/_support/docs/principles/details/p003-dry.md +126 -0
  13. package/skills/_support/docs/principles/details/p004-solid.md +165 -0
  14. package/skills/_support/docs/principles/details/p005-modularity.md +123 -0
  15. package/skills/_support/docs/principles/details/p006-principle-of-least-astonishment.md +115 -0
  16. package/skills/_support/docs/principles/details/p007-subtraction-over-addition.md +113 -0
  17. package/skills/_support/docs/principles/details/p008-understand-before-subtracting.md +115 -0
  18. package/skills/_support/docs/principles/details/p009-general-mechanisms-over-special-cases.md +108 -0
  19. package/skills/_support/docs/principles/details/p010-scope-fidelity.md +117 -0
  20. package/skills/_support/docs/principles/details/p011-minimal-coherent-change.md +128 -0
  21. package/skills/_support/docs/principles/details/p012-evidence-before-modification.md +115 -0
  22. package/skills/_support/docs/principles/details/p013-avoid-hasty-abstractions.md +112 -0
  23. package/skills/_support/docs/principles/details/p014-preserve-unrequested-behavior.md +110 -0
  24. package/skills/_support/docs/principles/details/p015-architecture-conformance.md +124 -0
  25. package/skills/_support/docs/principles/details/p016-separation-of-concerns.md +125 -0
  26. package/skills/_support/docs/principles/details/p017-high-cohesion-low-coupling.md +130 -0
  27. package/skills/_support/docs/principles/details/p018-information-hiding.md +128 -0
  28. package/skills/_support/docs/principles/details/p019-explicit-contracts.md +134 -0
  29. package/skills/_support/docs/principles/details/p020-executable-architecture.md +130 -0
  30. package/skills/_support/docs/principles/details/p021-evolutionary-and-reversible-design.md +126 -0
  31. package/skills/_support/docs/principles/details/p022-test-behavior-not-implementation.md +129 -0
  32. package/skills/_support/docs/principles/details/p023-parameterized-table-driven-testing.md +129 -0
  33. package/skills/_support/docs/principles/details/p024-boundary-value-testing.md +128 -0
  34. package/skills/_support/docs/principles/details/p025-property-based-testing-for-invariants.md +133 -0
  35. package/skills/_support/docs/principles/details/p026-regression-before-repair.md +134 -0
  36. package/skills/_support/docs/principles/details/p027-deterministic-and-hermetic-tests.md +128 -0
  37. package/skills/_support/docs/principles/details/p028-test-failure-paths.md +133 -0
  38. package/skills/_support/docs/principles/details/p029-generalize-error-policy-preserve-specific-cause.md +131 -0
  39. package/skills/_support/docs/principles/details/p030-nearest-responsible-error-boundary.md +133 -0
  40. package/skills/_support/docs/principles/details/p031-propagate-rather-than-swallow.md +131 -0
  41. package/skills/_support/docs/principles/details/p032-handle-once-preserve-causality.md +137 -0
  42. package/skills/_support/docs/principles/details/p033-state-safe-failure-semantics.md +140 -0
  43. package/skills/_support/docs/principles/details/p034-fail-fast.md +132 -0
  44. package/skills/_support/docs/principles/details/p035-fail-secure-fail-closed.md +137 -0
  45. package/skills/_support/docs/principles/details/p036-graceful-degradation.md +137 -0
  46. package/skills/_support/docs/principles/details/p037-idempotency-before-retry.md +139 -0
  47. package/skills/_support/docs/principles/details/p038-bounded-retry.md +145 -0
  48. package/skills/_support/docs/principles/details/p039-bounded-waiting.md +151 -0
  49. package/skills/_support/docs/principles/details/p040-bounded-resources.md +138 -0
  50. package/skills/_support/docs/principles/details/p041-backpressure-and-load-shedding.md +141 -0
  51. package/skills/_support/docs/principles/details/p042-fault-isolation-bulkheads.md +140 -0
  52. package/skills/_support/docs/principles/details/p043-circuit-breakers.md +148 -0
  53. package/skills/_support/docs/principles/details/p044-atomicity-where-possible.md +141 -0
  54. package/skills/_support/docs/principles/details/p045-compensation-where-atomicity-is-impossible.md +163 -0
  55. package/skills/_support/docs/principles/details/p046-resumability.md +138 -0
  56. package/skills/_support/docs/principles/details/p047-observability-is-part-of-correctness.md +134 -0
  57. package/skills/_support/docs/principles/details/p048-secure-by-design.md +132 -0
  58. package/skills/_support/docs/principles/details/p049-secure-by-default.md +126 -0
  59. package/skills/_support/docs/principles/details/p050-least-privilege.md +123 -0
  60. package/skills/_support/docs/principles/details/p051-complete-mediation.md +124 -0
  61. package/skills/_support/docs/principles/details/p052-separation-of-duties.md +129 -0
  62. package/skills/_support/docs/principles/details/p053-validate-at-trust-boundaries.md +126 -0
  63. package/skills/_support/docs/principles/details/p054-defense-in-depth.md +135 -0
  64. package/skills/_support/docs/principles/details/p055-minimize-attack-surface.md +133 -0
  65. package/skills/_support/docs/principles/details/p056-secrets-stay-out-of-code-and-context.md +137 -0
  66. package/skills/_support/docs/principles/details/p057-supply-chain-integrity.md +135 -0
  67. package/skills/_support/docs/principles/details/p058-bounded-agent-authority.md +137 -0
  68. package/skills/_support/docs/principles/details/p059-data-is-not-instruction.md +130 -0
  69. package/skills/_support/docs/principles/details/p060-constrain-sub-agents.md +136 -0
  70. package/skills/_support/docs/principles/details/p061-separate-decision-from-high-impact-execution.md +131 -0
  71. package/skills/_support/docs/principles/details/p062-human-approval-for-irreversible-or-high-risk-actions.md +129 -0
  72. package/skills/_support/docs/principles/details/p063-requirement-to-code-traceability.md +116 -0
  73. package/skills/_support/docs/principles/details/p064-requirement-to-test-traceability.md +116 -0
  74. package/skills/_support/docs/principles/details/p065-verify-before-claiming-completion.md +129 -0
  75. package/skills/_support/docs/principles/details/p066-preserve-existing-work.md +114 -0
  76. package/skills/_support/docs/principles/details/p067-no-test-cheating.md +126 -0
  77. package/skills/_support/docs/principles/details/p068-no-validation-bypass.md +119 -0
  78. package/skills/_support/docs/principles/details/p069-independent-review-for-high-risk-changes.md +129 -0
  79. package/skills/_support/docs/principles/details/p070-code-health-must-not-regress.md +116 -0
  80. package/skills/_support/docs/principles/details/p071-consistency-over-personal-preference.md +117 -0
  81. package/skills/_support/docs/principles/details/p072-technical-evidence-over-preference.md +122 -0
  82. package/skills/_support/docs/principles/details/p073-optimize-only-with-evidence.md +123 -0
  83. package/skills/_support/docs/principles/details/p074-prefer-existing-mechanisms.md +121 -0
  84. package/skills/_support/docs/principles/details/p075-make-invalid-states-hard-to-represent.md +128 -0
  85. package/skills/_support/docs/principles/details/p076-parse-then-validate-then-operate.md +133 -0
  86. package/skills/_support/docs/principles/details/p077-separate-policy-from-mechanism.md +112 -0
  87. package/skills/_support/docs/principles/details/p078-single-source-of-truth.md +131 -0
  88. package/skills/_support/docs/principles/details/p079-explicit-ownership-and-lifetimes.md +124 -0
  89. package/skills/_support/docs/principles/details/p080-make-concurrency-deliberate.md +122 -0
  90. package/skills/_support/docs/principles/details/p081-forward-progress-with-safety.md +125 -0
  91. package/skills/_support/docs/principles/details/p082-design-for-cancellation.md +133 -0
  92. package/skills/_support/docs/principles/details/p083-irreversible-actions-last.md +124 -0
  93. package/skills/_support/docs/principles/details/p084-prefer-local-reasoning.md +131 -0
  94. package/skills/_support/docs/principles/details/p085-explicit-is-better-than-implicit.md +123 -0
  95. package/skills/_support/docs/principles/details/p086-readability-counts.md +113 -0
  96. package/skills/_support/docs/principles/details/p087-comments-explain-why-code-explains-what.md +120 -0
  97. package/skills/_support/docs/principles/details/p088-delete-dead-code.md +125 -0
  98. package/skills/_support/docs/principles/details/p089-delete-obsolete-configuration-and-dependencies.md +125 -0
  99. package/skills/_support/docs/principles/details/p090-prefer-negative-code.md +134 -0
  100. package/skills/_support/docs/principles/details/p091-test-driven-development.md +149 -0
  101. package/skills/_support/docs/review/README.md +59 -0
  102. package/skills/_support/docs/review/behavior-first-testing.md +73 -0
  103. package/skills/_support/docs/review/common.md +365 -0
  104. package/skills/_support/docs/review/design-docs.md +74 -0
  105. package/skills/_support/docs/review/issue-planning.md +220 -0
  106. package/skills/_support/docs/review/language-routing.md +141 -0
  107. package/skills/_support/docs/review/repository-scorecard.md +170 -0
  108. package/skills/advise/SKILL.md +102 -40
  109. package/skills/advise/scripts/list_retrievable_skills.py +3 -3
  110. package/skills/brainstorm/SKILL.md +167 -76
  111. package/skills/change-review/SKILL.md +99 -43
  112. package/skills/change-review/references/scope-resolution.md +70 -41
  113. package/skills/change-review/scripts/resolve_scope.py +119 -73
  114. package/skills/finalize-plan/SKILL.md +208 -100
  115. package/skills/git-worktrees/SKILL.md +108 -59
  116. package/skills/git-worktrees/scripts/prepare_worktree.py +16 -10
  117. package/skills/issue-review/SKILL.md +143 -47
  118. package/skills/learn/SKILL.md +284 -162
  119. package/skills/myrmidon-swarm/SKILL.md +136 -61
  120. package/skills/plan-issue/SKILL.md +129 -47
  121. package/skills/pr-review/SKILL.md +170 -71
  122. package/skills/pr-review/references/criteria.md +61 -14
  123. package/skills/pr-review/references/delivery.md +159 -80
  124. package/skills/pr-review/references/evidence.md +268 -139
  125. package/skills/pr-review/references/prevalidated.md +91 -48
  126. package/skills/pr-review/scripts/collect_evidence.py +211 -140
  127. package/skills/pr-review/scripts/diff_context.py +6 -4
  128. package/skills/pr-review/scripts/materialize_snapshot.py +112 -120
  129. package/skills/pr-review/scripts/pr_identity.py +27 -15
  130. package/skills/pr-review/scripts/resolve_pr.py +53 -31
  131. package/skills/repo-review/SKILL.md +209 -87
  132. package/skills/systematic-debugging/SKILL.md +195 -131
  133. package/skills/systematic-debugging/scripts/repository_evidence.py +9 -4
  134. package/skills/test-driven-development/SKILL.md +134 -53
  135. package/skills/tidy/SKILL.md +97 -33
  136. package/skills/tidy/scripts/run_tidy.py +3 -3
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python3
2
- """Select, validate, and optionally create an isolated Git worktree."""
2
+ """Prepare an isolated Git worktree."""
3
3
 
4
4
  from __future__ import annotations
5
5
 
@@ -22,23 +22,27 @@ def git(
22
22
  ["git", *arguments], cwd=cwd, capture_output=True, text=True, check=False
23
23
  )
24
24
  if check and result.returncode != 0:
25
- raise RuntimeError(result.stderr.strip() or f"git {' '.join(arguments)} failed")
25
+ raise RuntimeError(
26
+ result.stderr.strip() or f"The git {' '.join(arguments)} command failed."
27
+ )
26
28
  return result
27
29
 
28
30
 
29
31
  def reject_symlinks_below(trust_root: Path, target: Path) -> None:
30
- """Reject symlinks in the caller-controlled path below a trusted root."""
32
+ """Reject symbolic links in a caller-controlled path below a trusted root."""
31
33
  lexical_root = trust_root.absolute()
32
34
  lexical_target = target.absolute()
33
35
  try:
34
36
  lexical_target.relative_to(lexical_root)
35
37
  except ValueError as error:
36
38
  raise RuntimeError(
37
- f"worktree path escapes trusted root {lexical_root}"
39
+ f"The worktree path is outside the trusted root: '{lexical_root}'."
38
40
  ) from error
39
41
  for component in (*reversed(lexical_target.parents), lexical_target):
40
42
  if component.is_symlink():
41
- raise RuntimeError(f"worktree path component is a symlink: {component}")
43
+ raise RuntimeError(
44
+ f"A component of the worktree path is a symbolic link: '{component}'."
45
+ )
42
46
 
43
47
 
44
48
  def select_path(
@@ -66,7 +70,8 @@ def select_path(
66
70
  if directory.is_dir():
67
71
  if directory.is_symlink():
68
72
  raise RuntimeError(
69
- f"project-local worktree directory is a symlink: {directory}"
73
+ "The project-local worktree directory is a symbolic link: "
74
+ f"'{directory}'."
70
75
  )
71
76
  return (directory / branch).resolve(), True
72
77
  project = root.name
@@ -82,7 +87,8 @@ def verify_ignored(root: Path, path: Path) -> None:
82
87
  result = git(root, "check-ignore", "-q", "--", str(probe), check=False)
83
88
  if result.returncode != 0:
84
89
  raise RuntimeError(
85
- f"project-local worktree directory {relative.parent} is not ignored"
90
+ "Git did not confirm that it ignores the project-local worktree directory: "
91
+ f"'{relative.parent}'."
86
92
  )
87
93
 
88
94
 
@@ -102,9 +108,9 @@ def main() -> int:
102
108
  root, "check-ref-format", "--branch", arguments.branch, check=False
103
109
  )
104
110
  if branch_check.returncode != 0:
105
- raise RuntimeError(f"invalid branch name: {arguments.branch}")
111
+ raise RuntimeError(f"The branch name is not valid: '{arguments.branch}'.")
106
112
  if (arguments.path is None) != (arguments.path_root is None):
107
- raise RuntimeError("--path and --path-root must be provided together")
113
+ raise RuntimeError("Specify '--path' and '--path-root' together.")
108
114
  path, project_local = select_path(
109
115
  root,
110
116
  arguments.branch,
@@ -121,7 +127,7 @@ def main() -> int:
121
127
  if project_local:
122
128
  verify_ignored(root, path)
123
129
  if path.exists():
124
- raise RuntimeError(f"worktree path already exists: {path}")
130
+ raise RuntimeError(f"The worktree path already exists: '{path}'.")
125
131
  if not arguments.dry_run:
126
132
  git(
127
133
  root,
@@ -1,67 +1,163 @@
1
1
  ---
2
2
  name: issue-review
3
3
  license: BSD-3-Clause
4
- description: Review a GitHub or GitLab issue and its current plan-issue artifact for architecture alignment, scope, risks, and behavior-first verification. Use before implementation; `--report-only` is read-only.
4
+ description: Use before implementation to review a GitHub or GitLab issue and its current `plan-issue` artifact. Check architecture, scope, risk, and behavior-first verification. Use `--report-only` for read-only work.
5
5
  argument-hint: "[--report-only] ISSUE_NUMBER_OR_URL"
6
6
  allowed-tools: [Read, Bash, Grep, Glob, Agent, WebFetch]
7
7
  ---
8
8
 
9
9
  # Review an issue and plan
10
10
 
11
- Why: find architecture, scope, and verification gaps while changing the plan is
12
- still cheaper than changing code.
11
+ Purpose: Review the plan before implementation. Early review helps you find architecture, scope,
12
+ and verification gaps before code changes start.
13
13
 
14
- Use the shared [issue-planning contract](../../docs/review/issue-planning.md),
15
- [review contract](../../docs/review/common.md),
16
- [language routing](../../docs/review/language-routing.md), and
17
- [behavior-first testing](../../docs/review/behavior-first-testing.md).
14
+ Apply the [ASD-STE100 technical-English policy](../TECHNICAL_ENGLISH.md) to this skill and to all
15
+ prose that it produces.
16
+
17
+ Use the shared [issue-planning contract](../_support/docs/review/issue-planning.md),
18
+ [review contract](../_support/docs/review/common.md),
19
+ [language routing](../_support/docs/review/language-routing.md), and
20
+ [behavior-first testing](../_support/docs/review/behavior-first-testing.md).
21
+
22
+ ## Engineering principles
23
+
24
+ Use the canonical [engineering-principles catalog](../_support/docs/principles/README.md) for these review
25
+ decisions:
26
+
27
+ - [P010 Scope Fidelity](../_support/docs/principles/README.md#p010): Use the current issue and canonical
28
+ plan as the full review target.
29
+ - [P066 Preserve Existing Work](../_support/docs/principles/README.md#p066): Do not rewrite historical
30
+ artifacts or artifacts that a different actor owns.
31
+ - [P012 Evidence Before Modification](../_support/docs/principles/README.md#p012): Before you accept a
32
+ plan, examine current requirements and repository evidence.
33
+ - [P063 Requirement-to-Code Traceability](../_support/docs/principles/README.md#p063): For each gap,
34
+ find the related requirement or contract.
35
+ - [P072 Technical Evidence Over Preference](../_support/docs/principles/README.md#p072): Give technical
36
+ evidence for each gap. Do not use personal preference as evidence.
37
+ - [P015 Architecture Conformance](../_support/docs/principles/README.md#p015): If a boundary violation has
38
+ no explanation, do not accept the plan.
39
+ - [P071 Consistency Over Personal Preference](../_support/docs/principles/README.md#p071): If technical
40
+ evidence does not show a necessary change, obey repository conventions.
41
+ - [P008 Understand Before Subtracting](../_support/docs/principles/README.md#p008): Before you accept
42
+ deletion or consolidation, examine the consumers and purpose.
18
43
 
19
44
  ## Scope and delivery
20
45
 
21
- The issue is the requirements source; review only its current canonical plan.
22
- Resolve plan ownership, marker, absence, and identity under the issue-planning
23
- contract. Historical plans and reviews are bounded context, not the artifact
24
- under review.
46
+ Use the issue as the requirements source. Review only its current canonical plan. Use the
47
+ issue-planning contract to identify the plan owner, marker, presence or absence, and identity. Use
48
+ historical plans and reviews only as background information.
49
+
50
+ If the request includes `--report-only`, this skill is read-only. Do not publish a comment. If the
51
+ request does not include this option, first compare the required identities. Then, confirm a safe
52
+ forge capability. You can then publish exactly one actor-owned structured review comment. Do not
53
+ expand the scope to these items:
25
54
 
26
- `--report-only` is read-only. A requested review without it may publish exactly
27
- one actor-owned structured review comment after the required identity comparison
28
- and forge-capability check. It does not expand scope to labels, assignment,
29
- implementation, commit, push, pull request, merge, or issue closure.
55
+ - labels;
56
+ - assignment;
57
+ - implementation;
58
+ - commit;
59
+ - push;
60
+ - pull request;
61
+ - merge; or
62
+ - issue closure.
30
63
 
31
64
  ## Review
32
65
 
33
- 1. Read the issue, linked work, canonical plan, repository guidance, ADRs,
34
- relevant code, tests, and public contracts.
35
- 2. Decide architecture first: aligned, intentional and justified change, or an
36
- unexplained violation. A material violation blocks a positive assessment.
37
- 3. Map every acceptance criterion to a concrete plan step, affected boundary,
38
- and behavior-first validation step. For a material architecture change,
39
- verify that the plan includes or cites a
40
- [design record](../../docs/review/design-docs.md).
41
- 4. Verify cited paths, symbols, commands, dependencies, assumptions, risks,
42
- migration, and rollback claims against current repository evidence.
43
- 5. Apply only activated language and change-surface checks, recording N/A
44
- sections and reasons. Confirm that relevant prior findings are resolved,
45
- rather than merely acknowledged.
46
-
47
- Prioritize architecture violations, missing requirements, unsafe scope,
48
- unresolved dependencies, untestable outcomes, invalid references,
49
- non-deterministic tests, empty selections, and unsupported claims.
50
-
51
- When reviewing after a finalized epoch, do not reinterpret generated plan text
52
- or sealed provenance as new requirements. Review only a later material issue
53
- change and its current canonical plan; an unchanged finalized epoch is not a
54
- new review target.
55
-
56
- Immediately before a requested publication, re-resolve the canonical planning
57
- identity. On drift, foreign or multiple markers, verified absence changes, or
58
- missing safe forge capability, withhold the comment and return the review as
59
- stale. Otherwise publish exactly one actor-owned structured comment, including
60
- a clean result or verified absent-plan coverage gap.
66
+ 1. Read the issue, linked work, canonical plan, repository guidance, architecture decision records
67
+ (ADRs), applicable code, tests, and public contracts.
68
+ 2. Under [P015 Architecture Conformance](../_support/docs/principles/README.md#p015), select one architecture
69
+ result:
70
+
71
+ - aligned;
72
+ - intentional and justified change; or
73
+ - unexplained violation.
74
+
75
+ A material violation prevents a positive assessment.
76
+ 3. Under [P063 Requirement-to-Code Traceability](../_support/docs/principles/README.md#p063), map each
77
+ acceptance criterion to a concrete plan step, affected boundary, and behavior-first validation
78
+ step.
79
+ 4. If the plan contains a material architecture change, verify that it includes or cites a
80
+ [design record](../_support/docs/review/design-docs.md).
81
+ 5. Under [P012 Evidence Before Modification](../_support/docs/principles/README.md#p012), verify these claims
82
+ against current repository evidence:
83
+
84
+ - paths;
85
+ - symbols;
86
+ - commands;
87
+ - dependencies;
88
+ - assumptions;
89
+ - risks;
90
+ - migration; and
91
+ - rollback.
92
+
93
+ 6. Apply only the language and change-surface checks that the review scope activates.
94
+ 7. Record each not applicable (`N/A`) section and its reason.
95
+ 8. Activate these principle checks only for their specified surfaces:
96
+
97
+ - Use [P001 KISS — Keep It Simple, Stupid](../_support/docs/principles/README.md#p001) for added
98
+ complexity.
99
+ - Use [P022 Test Behavior, Not Implementation](../_support/docs/principles/README.md#p022) for testable
100
+ behavior.
101
+ - Use
102
+ [P029 Generalize Error Policy; Preserve Specific Cause](../_support/docs/principles/README.md#p029) for
103
+ error paths.
104
+ - Use [P048 Secure by Design](../_support/docs/principles/README.md#p048) for security or new trust
105
+ boundaries.
106
+
107
+ 9. Confirm that each applicable prior finding is resolved. Acknowledgment alone does not resolve a
108
+ finding.
109
+
110
+ Give priority to these findings:
111
+
112
+ - architecture violations;
113
+ - missing requirements;
114
+ - unsafe scope;
115
+ - unresolved dependencies;
116
+ - outcomes that cannot be tested;
117
+ - invalid references;
118
+ - nondeterministic tests;
119
+ - empty selections; and
120
+ - unsupported claims.
121
+
122
+ After a finalized epoch, do not treat generated plan text or sealed provenance as new requirements.
123
+ Review only a later material issue change and its current canonical plan. An unchanged finalized
124
+ epoch is not a new review target.
125
+
126
+ Immediately before you publish the requested comment, resolve the canonical planning identity again.
127
+ If one of these conditions is true, withhold the comment:
128
+
129
+ - identity drift;
130
+ - a foreign marker;
131
+ - multiple markers;
132
+ - a change to verified absence; or
133
+ - no safe forge capability.
134
+
135
+ If you withhold the comment, report the `stale` status.
136
+
137
+ Otherwise, publish exactly one actor-owned structured comment. Include a clean result or verified
138
+ absent-plan coverage gap.
139
+
140
+ ## Failed approaches
141
+
142
+ - Do not review issues or plans outside the requested scope. Do not treat historical plans as the
143
+ artifact under review.
144
+ - Do not edit the issue, labels, or assignment. If publication is authorized, report findings only in
145
+ the structured review comment. For `--report-only`, return the findings without publication.
146
+ - Do not invent acceptance criteria that the reporter did not state. Do not accept an unresolved
147
+ prior finding only because someone acknowledged it.
148
+ - After drift, do not publish the comment again. Withhold it. Report `stale`.
61
149
 
62
150
  ## Result
63
151
 
64
- Return issue and plan identities, architecture decision first, requirement
65
- mapping, severity-ranked findings, test-quality coverage, N/A sections,
66
- residual risks, and whether the comment was published or withheld. A review
67
- never expands scope to implementation or merge.
152
+ Return these items:
153
+
154
+ - issue and plan identities;
155
+ - the architecture decision first;
156
+ - the requirement map;
157
+ - severity-ranked findings;
158
+ - test-quality coverage;
159
+ - `N/A` sections;
160
+ - residual risks; and
161
+ - whether you published or withheld the comment.
162
+
163
+ Do not expand the review scope to implementation or merge.