@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.
- package/README.md +30 -17
- package/package.json +2 -2
- package/plugin.js +20 -5
- package/skills/TECHNICAL_ENGLISH.md +78 -0
- package/skills/_cli.py +26 -18
- package/skills/_support/docs/dependency-resolution.md +192 -0
- package/skills/_support/docs/policies/development.md +117 -0
- package/skills/_support/docs/policies/evidence-integrity.md +40 -0
- package/skills/_support/docs/principles/README.md +542 -0
- package/skills/_support/docs/principles/details/p001-kiss.md +114 -0
- package/skills/_support/docs/principles/details/p002-yagni.md +109 -0
- package/skills/_support/docs/principles/details/p003-dry.md +126 -0
- package/skills/_support/docs/principles/details/p004-solid.md +165 -0
- package/skills/_support/docs/principles/details/p005-modularity.md +123 -0
- package/skills/_support/docs/principles/details/p006-principle-of-least-astonishment.md +115 -0
- package/skills/_support/docs/principles/details/p007-subtraction-over-addition.md +113 -0
- package/skills/_support/docs/principles/details/p008-understand-before-subtracting.md +115 -0
- package/skills/_support/docs/principles/details/p009-general-mechanisms-over-special-cases.md +108 -0
- package/skills/_support/docs/principles/details/p010-scope-fidelity.md +117 -0
- package/skills/_support/docs/principles/details/p011-minimal-coherent-change.md +128 -0
- package/skills/_support/docs/principles/details/p012-evidence-before-modification.md +115 -0
- package/skills/_support/docs/principles/details/p013-avoid-hasty-abstractions.md +112 -0
- package/skills/_support/docs/principles/details/p014-preserve-unrequested-behavior.md +110 -0
- package/skills/_support/docs/principles/details/p015-architecture-conformance.md +124 -0
- package/skills/_support/docs/principles/details/p016-separation-of-concerns.md +125 -0
- package/skills/_support/docs/principles/details/p017-high-cohesion-low-coupling.md +130 -0
- package/skills/_support/docs/principles/details/p018-information-hiding.md +128 -0
- package/skills/_support/docs/principles/details/p019-explicit-contracts.md +134 -0
- package/skills/_support/docs/principles/details/p020-executable-architecture.md +130 -0
- package/skills/_support/docs/principles/details/p021-evolutionary-and-reversible-design.md +126 -0
- package/skills/_support/docs/principles/details/p022-test-behavior-not-implementation.md +129 -0
- package/skills/_support/docs/principles/details/p023-parameterized-table-driven-testing.md +129 -0
- package/skills/_support/docs/principles/details/p024-boundary-value-testing.md +128 -0
- package/skills/_support/docs/principles/details/p025-property-based-testing-for-invariants.md +133 -0
- package/skills/_support/docs/principles/details/p026-regression-before-repair.md +134 -0
- package/skills/_support/docs/principles/details/p027-deterministic-and-hermetic-tests.md +128 -0
- package/skills/_support/docs/principles/details/p028-test-failure-paths.md +133 -0
- package/skills/_support/docs/principles/details/p029-generalize-error-policy-preserve-specific-cause.md +131 -0
- package/skills/_support/docs/principles/details/p030-nearest-responsible-error-boundary.md +133 -0
- package/skills/_support/docs/principles/details/p031-propagate-rather-than-swallow.md +131 -0
- package/skills/_support/docs/principles/details/p032-handle-once-preserve-causality.md +137 -0
- package/skills/_support/docs/principles/details/p033-state-safe-failure-semantics.md +140 -0
- package/skills/_support/docs/principles/details/p034-fail-fast.md +132 -0
- package/skills/_support/docs/principles/details/p035-fail-secure-fail-closed.md +137 -0
- package/skills/_support/docs/principles/details/p036-graceful-degradation.md +137 -0
- package/skills/_support/docs/principles/details/p037-idempotency-before-retry.md +139 -0
- package/skills/_support/docs/principles/details/p038-bounded-retry.md +145 -0
- package/skills/_support/docs/principles/details/p039-bounded-waiting.md +151 -0
- package/skills/_support/docs/principles/details/p040-bounded-resources.md +138 -0
- package/skills/_support/docs/principles/details/p041-backpressure-and-load-shedding.md +141 -0
- package/skills/_support/docs/principles/details/p042-fault-isolation-bulkheads.md +140 -0
- package/skills/_support/docs/principles/details/p043-circuit-breakers.md +148 -0
- package/skills/_support/docs/principles/details/p044-atomicity-where-possible.md +141 -0
- package/skills/_support/docs/principles/details/p045-compensation-where-atomicity-is-impossible.md +163 -0
- package/skills/_support/docs/principles/details/p046-resumability.md +138 -0
- package/skills/_support/docs/principles/details/p047-observability-is-part-of-correctness.md +134 -0
- package/skills/_support/docs/principles/details/p048-secure-by-design.md +132 -0
- package/skills/_support/docs/principles/details/p049-secure-by-default.md +126 -0
- package/skills/_support/docs/principles/details/p050-least-privilege.md +123 -0
- package/skills/_support/docs/principles/details/p051-complete-mediation.md +124 -0
- package/skills/_support/docs/principles/details/p052-separation-of-duties.md +129 -0
- package/skills/_support/docs/principles/details/p053-validate-at-trust-boundaries.md +126 -0
- package/skills/_support/docs/principles/details/p054-defense-in-depth.md +135 -0
- package/skills/_support/docs/principles/details/p055-minimize-attack-surface.md +133 -0
- package/skills/_support/docs/principles/details/p056-secrets-stay-out-of-code-and-context.md +137 -0
- package/skills/_support/docs/principles/details/p057-supply-chain-integrity.md +135 -0
- package/skills/_support/docs/principles/details/p058-bounded-agent-authority.md +137 -0
- package/skills/_support/docs/principles/details/p059-data-is-not-instruction.md +130 -0
- package/skills/_support/docs/principles/details/p060-constrain-sub-agents.md +136 -0
- package/skills/_support/docs/principles/details/p061-separate-decision-from-high-impact-execution.md +131 -0
- package/skills/_support/docs/principles/details/p062-human-approval-for-irreversible-or-high-risk-actions.md +129 -0
- package/skills/_support/docs/principles/details/p063-requirement-to-code-traceability.md +116 -0
- package/skills/_support/docs/principles/details/p064-requirement-to-test-traceability.md +116 -0
- package/skills/_support/docs/principles/details/p065-verify-before-claiming-completion.md +129 -0
- package/skills/_support/docs/principles/details/p066-preserve-existing-work.md +114 -0
- package/skills/_support/docs/principles/details/p067-no-test-cheating.md +126 -0
- package/skills/_support/docs/principles/details/p068-no-validation-bypass.md +119 -0
- package/skills/_support/docs/principles/details/p069-independent-review-for-high-risk-changes.md +129 -0
- package/skills/_support/docs/principles/details/p070-code-health-must-not-regress.md +116 -0
- package/skills/_support/docs/principles/details/p071-consistency-over-personal-preference.md +117 -0
- package/skills/_support/docs/principles/details/p072-technical-evidence-over-preference.md +122 -0
- package/skills/_support/docs/principles/details/p073-optimize-only-with-evidence.md +123 -0
- package/skills/_support/docs/principles/details/p074-prefer-existing-mechanisms.md +121 -0
- package/skills/_support/docs/principles/details/p075-make-invalid-states-hard-to-represent.md +128 -0
- package/skills/_support/docs/principles/details/p076-parse-then-validate-then-operate.md +133 -0
- package/skills/_support/docs/principles/details/p077-separate-policy-from-mechanism.md +112 -0
- package/skills/_support/docs/principles/details/p078-single-source-of-truth.md +131 -0
- package/skills/_support/docs/principles/details/p079-explicit-ownership-and-lifetimes.md +124 -0
- package/skills/_support/docs/principles/details/p080-make-concurrency-deliberate.md +122 -0
- package/skills/_support/docs/principles/details/p081-forward-progress-with-safety.md +125 -0
- package/skills/_support/docs/principles/details/p082-design-for-cancellation.md +133 -0
- package/skills/_support/docs/principles/details/p083-irreversible-actions-last.md +124 -0
- package/skills/_support/docs/principles/details/p084-prefer-local-reasoning.md +131 -0
- package/skills/_support/docs/principles/details/p085-explicit-is-better-than-implicit.md +123 -0
- package/skills/_support/docs/principles/details/p086-readability-counts.md +113 -0
- package/skills/_support/docs/principles/details/p087-comments-explain-why-code-explains-what.md +120 -0
- package/skills/_support/docs/principles/details/p088-delete-dead-code.md +125 -0
- package/skills/_support/docs/principles/details/p089-delete-obsolete-configuration-and-dependencies.md +125 -0
- package/skills/_support/docs/principles/details/p090-prefer-negative-code.md +134 -0
- package/skills/_support/docs/principles/details/p091-test-driven-development.md +149 -0
- package/skills/_support/docs/review/README.md +59 -0
- package/skills/_support/docs/review/behavior-first-testing.md +73 -0
- package/skills/_support/docs/review/common.md +365 -0
- package/skills/_support/docs/review/design-docs.md +74 -0
- package/skills/_support/docs/review/issue-planning.md +220 -0
- package/skills/_support/docs/review/language-routing.md +141 -0
- package/skills/_support/docs/review/repository-scorecard.md +170 -0
- package/skills/advise/SKILL.md +102 -40
- package/skills/advise/scripts/list_retrievable_skills.py +3 -3
- package/skills/brainstorm/SKILL.md +167 -76
- package/skills/change-review/SKILL.md +99 -43
- package/skills/change-review/references/scope-resolution.md +70 -41
- package/skills/change-review/scripts/resolve_scope.py +119 -73
- package/skills/finalize-plan/SKILL.md +208 -100
- package/skills/git-worktrees/SKILL.md +108 -59
- package/skills/git-worktrees/scripts/prepare_worktree.py +16 -10
- package/skills/issue-review/SKILL.md +143 -47
- package/skills/learn/SKILL.md +284 -162
- package/skills/myrmidon-swarm/SKILL.md +136 -61
- package/skills/plan-issue/SKILL.md +129 -47
- package/skills/pr-review/SKILL.md +170 -71
- package/skills/pr-review/references/criteria.md +61 -14
- package/skills/pr-review/references/delivery.md +159 -80
- package/skills/pr-review/references/evidence.md +268 -139
- package/skills/pr-review/references/prevalidated.md +91 -48
- package/skills/pr-review/scripts/collect_evidence.py +211 -140
- package/skills/pr-review/scripts/diff_context.py +6 -4
- package/skills/pr-review/scripts/materialize_snapshot.py +112 -120
- package/skills/pr-review/scripts/pr_identity.py +27 -15
- package/skills/pr-review/scripts/resolve_pr.py +53 -31
- package/skills/repo-review/SKILL.md +209 -87
- package/skills/systematic-debugging/SKILL.md +195 -131
- package/skills/systematic-debugging/scripts/repository_evidence.py +9 -4
- package/skills/test-driven-development/SKILL.md +134 -53
- package/skills/tidy/SKILL.md +97 -33
- package/skills/tidy/scripts/run_tidy.py +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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"
|
|
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
|
|
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:
|
|
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
|
-
|
|
12
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
[
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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,
|
|
34
|
-
|
|
35
|
-
2.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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.
|