@homericintelligence/athena-opencode 0.5.0 → 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 +93 -67
- package/skills/advise/scripts/list_retrievable_skills.py +3 -3
- package/skills/brainstorm/SKILL.md +160 -127
- package/skills/change-review/SKILL.md +91 -71
- package/skills/change-review/references/scope-resolution.md +69 -46
- package/skills/change-review/scripts/resolve_scope.py +119 -73
- package/skills/finalize-plan/SKILL.md +198 -139
- package/skills/git-worktrees/SKILL.md +100 -80
- package/skills/git-worktrees/scripts/prepare_worktree.py +16 -10
- package/skills/issue-review/SKILL.md +136 -79
- package/skills/learn/SKILL.md +276 -186
- package/skills/myrmidon-swarm/SKILL.md +126 -86
- package/skills/plan-issue/SKILL.md +122 -81
- package/skills/pr-review/SKILL.md +164 -114
- package/skills/pr-review/references/criteria.md +58 -37
- package/skills/pr-review/references/delivery.md +156 -98
- package/skills/pr-review/references/evidence.md +265 -148
- package/skills/pr-review/references/prevalidated.md +93 -61
- 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 +202 -131
- package/skills/systematic-debugging/SKILL.md +210 -192
- package/skills/systematic-debugging/scripts/repository_evidence.py +9 -4
- package/skills/test-driven-development/SKILL.md +126 -96
- package/skills/tidy/SKILL.md +92 -59
- package/skills/tidy/scripts/run_tidy.py +3 -3
|
@@ -1,178 +1,237 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: finalize-plan
|
|
3
3
|
license: BSD-3-Clause
|
|
4
|
-
description:
|
|
4
|
+
description: Create an issue body after `plan-issue` and `issue-review` approve one exact actor-owned epoch with `GO`. `--draft` is read-only. Stop if an input is missing, foreign, stale, ambiguous, or not verifiable.
|
|
5
5
|
argument-hint: "[--draft] ISSUE_NUMBER_OR_URL"
|
|
6
6
|
allowed-tools: [Read, Bash, Grep, Glob]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Finalize an approved issue plan
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Purpose: Make the approved plan the implementation entry point. Do not convert review history,
|
|
12
|
+
suggestions, or generated text into requirements.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
[
|
|
18
|
-
[
|
|
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
|
+
[design-document structure](../_support/docs/review/design-docs.md),
|
|
20
|
+
[language routing](../_support/docs/review/language-routing.md), and
|
|
21
|
+
[behavior-first testing](../_support/docs/review/behavior-first-testing.md).
|
|
19
22
|
|
|
20
23
|
## Engineering principles
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
Use the canonical [engineering-principles catalog](../_support/docs/principles/README.md) to make these
|
|
23
26
|
finalization decisions:
|
|
24
27
|
|
|
25
|
-
- [P010 Scope Fidelity](
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
- [P010 Scope Fidelity](../_support/docs/principles/README.md#p010): Change only the issue body and the two
|
|
29
|
+
sealed, actor-owned comments for the verified epoch.
|
|
30
|
+
- [P061 Separate Decision from High-Impact Execution](../_support/docs/principles/README.md#p061): Before a
|
|
31
|
+
write, make sure that the epoch and authority agree with this skill's delivery contract.
|
|
32
|
+
- [P062 Human Approval for Irreversible or High-Risk Actions](../_support/docs/principles/README.md#p062):
|
|
33
|
+
If the delivery contract gives authority for the write, continue without a second approval.
|
|
34
|
+
- [P063 Requirement-to-Code Traceability](../_support/docs/principles/README.md#p063): Map each source
|
|
35
|
+
requirement to the issue body without information loss.
|
|
36
|
+
- [P065 Verify Before Claiming Completion](../_support/docs/principles/README.md#p065): Before you report
|
|
37
|
+
that finalization is completed, read the issue body. Make sure that it is the same as the approved
|
|
38
|
+
body.
|
|
39
|
+
- [P044 Atomicity Where Possible](../_support/docs/principles/README.md#p044): Use one body update for the
|
|
40
|
+
replacement.
|
|
41
|
+
- [P083 Irreversible Actions Last](../_support/docs/principles/README.md#p083): Do not remove an applicable
|
|
42
|
+
comment before you verify the body update.
|
|
43
|
+
- [P031 Propagate Rather Than Swallow](../_support/docs/principles/README.md#p031): Report each partial or
|
|
44
|
+
unknown outcome. Do not report a different outcome. Do not automatically retry the update.
|
|
40
45
|
|
|
41
46
|
## Scope and delivery
|
|
42
47
|
|
|
43
|
-
`--draft` is read-only.
|
|
44
|
-
[P061 Separate Decision from High-Impact Execution](
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
`--draft` is read-only. If you do not use `--draft`, first revalidate the authority and target under
|
|
49
|
+
[P061 Separate Decision from High-Impact Execution](../_support/docs/principles/README.md#p061). This skill
|
|
50
|
+
can then replace the resolved issue body one time. Only after an exact body readback, it can delete
|
|
51
|
+
the two sealed, actor-owned plan and review comments. Do not update these items:
|
|
52
|
+
|
|
53
|
+
- title;
|
|
54
|
+
- labels;
|
|
55
|
+
- assignment;
|
|
56
|
+
- milestone;
|
|
57
|
+
- project fields;
|
|
58
|
+
- state;
|
|
59
|
+
- branches;
|
|
60
|
+
- pull requests; or
|
|
61
|
+
- repository files.
|
|
62
|
+
|
|
63
|
+
After the skill removes the intermediate comments, the finalized body must retain the required
|
|
64
|
+
provenance.
|
|
65
|
+
|
|
66
|
+
Use the forge's native issue-body mechanism. The host must have these capabilities:
|
|
67
|
+
|
|
68
|
+
- authenticate the actor;
|
|
69
|
+
- enumerate exact comments;
|
|
70
|
+
- delete exact comments;
|
|
71
|
+
- read the issue body;
|
|
72
|
+
- compare identities;
|
|
73
|
+
- make one exact body update; and
|
|
74
|
+
- read back that body update.
|
|
75
|
+
|
|
76
|
+
If one capability is not available, return a ready-to-publish draft. Identify the capability gap.
|
|
77
|
+
Do not create plan or review comments to make finalization possible. Do not adopt plan or review
|
|
78
|
+
comments for this purpose. Do not edit plan or review comments for this purpose. Do not replace plan
|
|
79
|
+
or review comments for this purpose.
|
|
57
80
|
|
|
58
81
|
## Finalized planning epoch
|
|
59
82
|
|
|
60
|
-
|
|
83
|
+
A planning epoch is one set of these sealed source identities:
|
|
61
84
|
|
|
62
|
-
- `R
|
|
63
|
-
title, body, and acceptance criteria before finalization
|
|
64
|
-
- `P
|
|
65
|
-
|
|
66
|
-
- `V
|
|
67
|
-
|
|
85
|
+
- `R` is the canonical digest of the original issue requirements. It contains the exact issue ID,
|
|
86
|
+
title, body, and acceptance criteria before finalization.
|
|
87
|
+
- `P` identifies one actor-owned `<!-- athena:plan-issue -->` comment ID and its canonical plan-content
|
|
88
|
+
digest.
|
|
89
|
+
- `V` identifies one actor-owned `<!-- athena:issue-review -->` comment ID and its review-content
|
|
90
|
+
digest.
|
|
68
91
|
|
|
69
|
-
The review must
|
|
70
|
-
|
|
71
|
-
`major`, or other `required` finding.
|
|
72
|
-
foreign, duplicated, absent, or
|
|
92
|
+
The review must contain the same issue, `R`, plan-comment ID, and `P`. These values must match
|
|
93
|
+
exactly. The review must have the exact `GO` disposition. It must not have an unresolved `critical`,
|
|
94
|
+
`major`, or other `required` finding. Do not write if an artifact is conditional, partial,
|
|
95
|
+
malformed, stale, foreign, duplicated, absent, or not verifiable.
|
|
73
96
|
|
|
74
|
-
|
|
75
|
-
`<!-- athena:finalize-plan R=<R> P=<P> V=<V> F=<F> -->`.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
97
|
+
Record exactly one marker in the rendered body:
|
|
98
|
+
`<!-- athena:finalize-plan R=<R> P=<P> V=<V> F=<F> -->`. Before you calculate `F`, use the literal
|
|
99
|
+
`<F>` placeholder as the marker's `F` value. Calculate `F` from the final body. Do not calculate a
|
|
100
|
+
digest from a marker that contains its own digest. The marker identifies the sealed source
|
|
101
|
+
identities separately from the generated body. It also permits later readback verification without
|
|
102
|
+
recursion.
|
|
80
103
|
|
|
81
104
|
## Finalize
|
|
82
105
|
|
|
83
|
-
1. Resolve one exact issue
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
106
|
+
1. Resolve one exact issue with its node or URL, title, body, state, and authenticated actor.
|
|
107
|
+
2. Before you interpret a marker, enumerate each current comment.
|
|
108
|
+
3. Resolve exactly one actor-owned plan marker.
|
|
109
|
+
4. Resolve exactly one actor-owned review marker.
|
|
110
|
+
5. Calculate `R/P/V`.
|
|
111
|
+
6. Verify the review bindings and the clean `GO` result.
|
|
112
|
+
7. If ownership, multiplicity, binding, disposition, or required-finding verification fails, do not
|
|
113
|
+
write.
|
|
114
|
+
8. Build a compact and lossless final body.
|
|
115
|
+
9. Apply [P001 KISS — Keep It Simple, Stupid](../_support/docs/principles/README.md#p001) only to the
|
|
116
|
+
sealed content.
|
|
117
|
+
10. Make the presentation simple.
|
|
118
|
+
11. Do not remove a requirement.
|
|
119
|
+
12. Do not change the meaning of the approved architecture.
|
|
120
|
+
13. Start the final body with **Why**.
|
|
121
|
+
14. Preserve the original problem, outcome, and requirements that cannot change.
|
|
122
|
+
15. If a system diagram makes at least three relationships, boundaries, or state transitions
|
|
123
|
+
clearer, include it.
|
|
124
|
+
16. Include the architecture description, implementation plan, operations, and provenance.
|
|
125
|
+
17. Preserve all items in this list:
|
|
126
|
+
|
|
127
|
+
- acceptance criteria;
|
|
128
|
+
- implementation boundaries;
|
|
129
|
+
- validation;
|
|
130
|
+
- migration or cutover steps;
|
|
131
|
+
- rollback conditions;
|
|
132
|
+
- dependencies;
|
|
133
|
+
- residual risks; and
|
|
134
|
+
- out-of-scope decisions.
|
|
135
|
+
|
|
136
|
+
18. Unless the reviewed canonical plan adopted a review suggestion, record the suggestion as optional
|
|
137
|
+
residual context.
|
|
138
|
+
19. Do not invent files, commands, requirements, architecture, implementation results, or validation
|
|
139
|
+
evidence.
|
|
140
|
+
20. If a smaller lossless result is sufficient, do not copy historical revision transcripts.
|
|
141
|
+
21. If a smaller lossless result is sufficient, do not duplicate the plan and review verbatim.
|
|
142
|
+
22. Add the finalized marker.
|
|
143
|
+
23. Calculate `F` from its canonical representation that does not contain its own value.
|
|
144
|
+
24. If the user selects `--draft`, return the complete body, `R`, `P`, `V`, `F`, and source links.
|
|
145
|
+
25. For `--draft`, return all reasons for withheld writes.
|
|
146
|
+
26. For `--draft`, do not make a forge write.
|
|
147
|
+
27. Immediately before publication, apply
|
|
148
|
+
[P061 Separate Decision from High-Impact Execution](../_support/docs/principles/README.md#p061).
|
|
149
|
+
28. For this check, resolve the issue, actor, each comment and marker, `R`, `P`, `V`, review
|
|
150
|
+
disposition, and target body again.
|
|
151
|
+
29. If an input changed, return the ready-to-publish body with the `stale` status.
|
|
152
|
+
30. After an input changes, do not write.
|
|
153
|
+
31. Under [P044 Atomicity Where Possible](../_support/docs/principles/README.md#p044), publish exactly one
|
|
154
|
+
issue-body replacement.
|
|
155
|
+
32. Immediately read the issue again.
|
|
156
|
+
33. Under [P065 Verify Before Claiming Completion](../_support/docs/principles/README.md#p065), verify the
|
|
157
|
+
exact body, marker, `R`, `P`, `V`, and `F`.
|
|
158
|
+
34. If a timeout, indeterminate response, or readback mismatch occurs, report `unknown-outcome`.
|
|
159
|
+
35. After a timeout, indeterminate response, or readback mismatch, do not retry.
|
|
160
|
+
36. After a timeout, indeterminate response, or readback mismatch, do not make another mutation.
|
|
161
|
+
37. Only after a successful body readback, use
|
|
162
|
+
[P083 Irreversible Actions Last](../_support/docs/principles/README.md#p083) to read each sealed comment
|
|
163
|
+
again.
|
|
164
|
+
38. Verify the exact ID, actor, marker, and digest of each sealed comment.
|
|
165
|
+
39. Delete the plan comment only after its exact verification.
|
|
166
|
+
40. Delete the review comment only after its exact verification.
|
|
167
|
+
41. Do not delete a foreign, replacement, or changed comment.
|
|
168
|
+
42. If deletion fails, times out, or has an indeterminate result, report `partial-cleanup`.
|
|
169
|
+
43. State that an indeterminate deletion result is unknown.
|
|
170
|
+
44. After a deletion failure, timeout, or indeterminate result, do not retry.
|
|
171
|
+
45. After a deletion failure, timeout, or indeterminate result, do not compensate.
|
|
172
|
+
46. After a deletion failure, timeout, or indeterminate result, do not remove the finalized body.
|
|
173
|
+
47. After a deletion failure, timeout, or indeterminate result, report the identities of the comments
|
|
174
|
+
that remain.
|
|
175
|
+
|
|
176
|
+
If the final material contains architecture, test, error, or security decisions, preserve the
|
|
177
|
+
reviewed use of these principles:
|
|
178
|
+
|
|
179
|
+
- [P015 Architecture Conformance](../_support/docs/principles/README.md#p015);
|
|
180
|
+
- [P022 Test Behavior, Not Implementation](../_support/docs/principles/README.md#p022);
|
|
181
|
+
- [P029 Generalize Error Policy; Preserve Specific Cause](../_support/docs/principles/README.md#p029); and
|
|
182
|
+
- [P048 Secure by Design](../_support/docs/principles/README.md#p048).
|
|
183
|
+
|
|
184
|
+
Finalization does not reopen these decisions. Do not make new decisions.
|
|
185
|
+
|
|
186
|
+
## Finalize again or restart
|
|
187
|
+
|
|
188
|
+
If the live body verifies its finalized marker exactly and both sealed comments are absent, a second
|
|
189
|
+
run returns a documented `no-change` result. If a sealed comment remains, report
|
|
190
|
+
`partial-cleanup`. Its presence does not authorize another deletion attempt. If the marker is absent,
|
|
191
|
+
malformed, foreign, or has a canonical `F` mismatch, do not use the epoch as evidence. A later
|
|
192
|
+
substantive edit by a person creates a new requirements state. Before another finalization, this new
|
|
193
|
+
state must pass a new `plan-issue` and `issue-review` cycle. Do not treat generated plan text or
|
|
194
|
+
provenance fields as new requirements from a person.
|
|
144
195
|
|
|
145
196
|
## Behavior-first verification
|
|
146
197
|
|
|
147
|
-
Use controlled issue, comment, actor, and forge fixtures to demonstrate:
|
|
198
|
+
Use controlled issue, comment, actor, and forge fixtures to demonstrate these behaviors:
|
|
148
199
|
|
|
149
|
-
-
|
|
150
|
-
- `--draft` returns the body without a forge mutation
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
|
|
156
|
-
|
|
200
|
+
- A clean `GO` plan and review epoch preserves requirements and operational details.
|
|
201
|
+
- `--draft` returns the body without a forge mutation.
|
|
202
|
+
- Publication makes one body update. It verifies the exact readback. Then it deletes only the two
|
|
203
|
+
sealed actor-owned comments.
|
|
204
|
+
- A sealed epoch that did not change is idempotent.
|
|
205
|
+
- Each absent, foreign, duplicate, mismatched, stale, `NO-GO`, required-finding, drift,
|
|
206
|
+
unsupported-write, timeout, readback-mismatch, or deletion-uncertainty case stops before an unsafe
|
|
207
|
+
mutation or retry.
|
|
157
208
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
paragraph counts, or an example issue body.
|
|
209
|
+
Verify the identities and order classes. Verify content preservation and the number and scope of
|
|
210
|
+
mutations. Verify that failures occur before a write. Do not make tests depend on editorial wording,
|
|
211
|
+
headings, paragraph counts, or an example issue body.
|
|
161
212
|
|
|
162
213
|
## Failed approaches
|
|
163
214
|
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
|
|
167
|
-
-
|
|
215
|
+
- Do not finalize an epoch again without a new request or a new requirements state.
|
|
216
|
+
- Do not treat generated plan text or sealed provenance fields as new executable requirements from
|
|
217
|
+
a person.
|
|
218
|
+
- Do not replace behavior-first verification with wording checks. Do not invent files, commands, or
|
|
168
219
|
validation evidence during synthesis.
|
|
169
|
-
-
|
|
170
|
-
|
|
220
|
+
- After a timeout or readback mismatch, do not retry. Report `unknown-outcome`.
|
|
221
|
+
- After an indeterminate deletion, do not retry. Report `partial-cleanup`. State that the deletion
|
|
222
|
+
result is unknown.
|
|
171
223
|
|
|
172
224
|
## Result
|
|
173
225
|
|
|
174
|
-
Return
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
226
|
+
Return these items:
|
|
227
|
+
|
|
228
|
+
- issue and actor identities;
|
|
229
|
+
- `R/P/V/F`;
|
|
230
|
+
- the `GO` decision and finding summary;
|
|
231
|
+
- the requirement-preservation map;
|
|
232
|
+
- the exact `draft`, `no-change`, `published`, `stale`, `partial-cleanup`, or `unknown-outcome`
|
|
233
|
+
status;
|
|
234
|
+
- the body-update receipt;
|
|
235
|
+
- readback evidence;
|
|
236
|
+
- deleted-comment receipts, if present; and
|
|
237
|
+
- each unresolved capability or residual risk.
|