@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
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Why
|
|
4
4
|
|
|
5
|
-
A review verdict is evidence
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
A review verdict is evidence. It does not expand the forge scope. Immediately before one scoped
|
|
6
|
+
publication, bind the exact artifact again. This check prevents the review from adding a comment or
|
|
7
|
+
automation to a later artifact. It also prevents approval of a later artifact.
|
|
8
|
+
|
|
9
|
+
Use the [ASD-STE100 technical-English policy](../../TECHNICAL_ENGLISH.md) for all technical prose
|
|
10
|
+
and review output.
|
|
8
11
|
|
|
9
12
|
```text
|
|
10
13
|
[complete review] -> [verdict] -> [rebind exact artifact]
|
|
@@ -14,77 +17,141 @@ or automating a later artifact.
|
|
|
14
17
|
[optional separate auto-merge opt-in after GO]
|
|
15
18
|
```
|
|
16
19
|
|
|
20
|
+
## Engineering principle routes
|
|
21
|
+
|
|
22
|
+
- [P037 Idempotency Before Retry](../../_support/docs/principles/README.md#p037) and
|
|
23
|
+
[P044 Atomicity Where Possible](../../_support/docs/principles/README.md#p044) require one bound atomic
|
|
24
|
+
comment batch when the forge supports it. They prohibit a blind retry after a failed or indeterminate
|
|
25
|
+
write.
|
|
26
|
+
- [P050 Least Privilege](../../_support/docs/principles/README.md#p050),
|
|
27
|
+
[P051 Complete Mediation](../../_support/docs/principles/README.md#p051),
|
|
28
|
+
[P052 Separation of Duties](../../_support/docs/principles/README.md#p052), and
|
|
29
|
+
[P058 Bounded Agent Authority](../../_support/docs/principles/README.md#p058) keep the review, publication,
|
|
30
|
+
approval, and merge capabilities separate. They limit these capabilities to the selected profile and
|
|
31
|
+
requested task.
|
|
32
|
+
- [P061 Separate Decision from High-Impact Execution](../../_support/docs/principles/README.md#p061),
|
|
33
|
+
[P062 Human Approval for Irreversible or High-Risk Actions](../../_support/docs/principles/README.md#p062),
|
|
34
|
+
and [P083 Irreversible Actions Last](../../_support/docs/principles/README.md#p083) require a new authority
|
|
35
|
+
and identity check immediately before a requested write or guarded auto-merge opt-in. If the user
|
|
36
|
+
already gave specific authorization, do not request the same approval again.
|
|
37
|
+
- [P065 Verify Before Claiming Completion](../../_support/docs/principles/README.md#p065) and
|
|
38
|
+
[P068 No Validation Bypass](../../_support/docs/principles/README.md#p068) prohibit a favorable verdict,
|
|
39
|
+
successful-publication claim, or automation state from stale, incomplete, bypassed, or unverified
|
|
40
|
+
evidence.
|
|
41
|
+
|
|
17
42
|
## Decision
|
|
18
43
|
|
|
19
|
-
For default
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
44
|
+
For a default or continuous-integration-free (CI-free) normal report, calculate the findings. Then,
|
|
45
|
+
calculate the score. Emit exactly one terminal verdict. For the prevalidated profile, emit only its structured
|
|
46
|
+
audit. Do not emit a verdict, scorecard, or publication. The prevalidated profile has no auto-merge
|
|
47
|
+
workflow. GitLab can report a verdict. This skill must not enable GitLab auto-merge.
|
|
23
48
|
|
|
24
49
|
| Verdict | Required conditions |
|
|
25
50
|
| --- | --- |
|
|
26
|
-
| **GO** |
|
|
27
|
-
| **CONDITIONAL GO** |
|
|
28
|
-
| **NO-GO** |
|
|
51
|
+
| **GO** | Use only for the default profile. Require grade A (93–100). Require aligned architecture or an evidenced intentional change. Require zero `required` findings. Require complete applicable source, scope, requirements, language, and validation coverage. Require all host-selected local checks to pass on the reviewed head. |
|
|
52
|
+
| **CONDITIONAL GO** | Require architecture to pass. Require no open `required` source finding. Require a score of at least B. Use when a remediable review condition remains. Examples include incomplete source, scope, requirement, language, or validation coverage; a local validation gap; or deliberately limited CI-free evidence. State each condition. |
|
|
53
|
+
| **NO-GO** | Use for a score below B or a `required` finding. Also use it for a material or unexplained architecture violation or failed required local validation. Use it for an invalid, stale, or drifted identity, scope, requirement, path, or current-head binding. |
|
|
29
54
|
|
|
30
|
-
`--report-only`
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
55
|
+
`--report-only` can report `GO`. It records `auto_merge: withheld (read-only)`. Without
|
|
56
|
+
`--enable-auto-merge-on-go`, a `GO` records `auto_merge: withheld (not requested)`. For
|
|
57
|
+
`CONDITIONAL GO`, `NO-GO`, CI-free, prevalidated, and GitLab, record `auto_merge: not-eligible` with
|
|
58
|
+
the blocker.
|
|
34
59
|
|
|
35
60
|
## Guarded GitHub auto-merge
|
|
36
61
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
1.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
Enable auto-merge only when the user directly requests `--enable-auto-merge-on-go`. Apply this option
|
|
63
|
+
only to an exact eligible default-profile GitHub `GO`. Before you apply it, verify each requested
|
|
64
|
+
comment batch. This option does not permit a direct merge, retry, approval, label, bypass, or policy
|
|
65
|
+
change.
|
|
66
|
+
|
|
67
|
+
1. Resolve these values again:
|
|
68
|
+
- canonical host;
|
|
69
|
+
- repository;
|
|
70
|
+
- pull request (PR) number and node ID;
|
|
71
|
+
- `OPEN` and non-draft state;
|
|
72
|
+
- target;
|
|
73
|
+
- base and head object identifiers (OIDs);
|
|
74
|
+
- both lenses;
|
|
75
|
+
- scope digest;
|
|
76
|
+
- linked-requirements digest;
|
|
77
|
+
- path manifest;
|
|
78
|
+
- all effective pre-admission gates; and
|
|
79
|
+
- required queue route.
|
|
80
|
+
2. If a value changed or a binding is missing, withhold auto-merge.
|
|
81
|
+
3. If a gate failed or is pending, withhold auto-merge.
|
|
82
|
+
4. If the author or reviewer changed, withhold auto-merge.
|
|
83
|
+
5. If a required thread is unresolved, withhold auto-merge.
|
|
84
|
+
6. If comment publication failed or is indeterminate, withhold auto-merge.
|
|
85
|
+
7. Require an authenticated capability that binds the canonical target and can enable normal
|
|
86
|
+
auto-merge without administrator bypass.
|
|
87
|
+
8. Use the one repository-supported method that the capability returns.
|
|
88
|
+
9. Do not select the method.
|
|
89
|
+
10. Do not guess the method.
|
|
90
|
+
11. Do not change the method.
|
|
91
|
+
12. If the repository requires a merge queue, require a separate exact-head queue-admission capability.
|
|
92
|
+
13. Do not use normal auto-merge as a queue-admission proxy.
|
|
93
|
+
14. Invoke exactly one bound operation:
|
|
94
|
+
|
|
95
|
+
- Enable auto-merge with the retained PR node ID and `expectedHeadOid`; or
|
|
96
|
+
- Use queue admission with the same target and head.
|
|
97
|
+
|
|
98
|
+
15. Do not use ambient repository state, ambient branch state, or generic command-line interface
|
|
99
|
+
(CLI) defaults.
|
|
100
|
+
16. Do not use a direct merge command or fallback mutation.
|
|
101
|
+
17. Do not retry after a failed or indeterminate result.
|
|
102
|
+
18. Fetch the exact PR again.
|
|
103
|
+
19. Report `enabled` only if auto-merge uses the same node ID, head, and supported method.
|
|
104
|
+
20. Report `queue-enqueued` only if its entry binds the same PR, target, and reviewed head.
|
|
105
|
+
21. Do not report the PR as merged.
|
|
62
106
|
|
|
63
107
|
## Normal report
|
|
64
108
|
|
|
65
109
|
Return, in order:
|
|
66
110
|
|
|
67
|
-
1.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
111
|
+
1. Report the artifact identity, forge, base and head, immutable scope, and path bindings.
|
|
112
|
+
2. Report the behind count, files reviewed, linked issue, and acceptance criteria.
|
|
113
|
+
3. Report each unbound check as a coverage gap.
|
|
114
|
+
4. Report the architecture decision, language routes, surface routes, and not-applicable (N/A) reasons.
|
|
115
|
+
5. Report findings from `CRITICAL` through `FYI`.
|
|
116
|
+
6. For each finding, report these items:
|
|
117
|
+
- independent `required`, `suggestion`, `nit`, or `FYI` disposition;
|
|
118
|
+
- exact location;
|
|
119
|
+
- observed gap;
|
|
120
|
+
- impact and governing evidence; and
|
|
121
|
+
- proportionate fix.
|
|
122
|
+
7. Report the six-dimension scorecard, weighted grade, and terminal verdict.
|
|
123
|
+
8. Report commands and their pass or fail state.
|
|
124
|
+
9. Report coverage gaps, delivery state, and auto-merge state.
|
|
125
|
+
10. After the findings, report brief strengths.
|
|
77
126
|
|
|
78
127
|
## Comment-only publication
|
|
79
128
|
|
|
80
|
-
The requested review delivery boundary permits normal publication.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
129
|
+
The requested review delivery boundary permits normal publication. Publish comments only. Do not do
|
|
130
|
+
any of these actions:
|
|
131
|
+
|
|
132
|
+
- approve;
|
|
133
|
+
- request changes;
|
|
134
|
+
- change labels;
|
|
135
|
+
- edit an issue;
|
|
136
|
+
- resolve a thread;
|
|
137
|
+
- rebase;
|
|
138
|
+
- push;
|
|
139
|
+
- close;
|
|
140
|
+
- merge; or
|
|
141
|
+
- create a follow-up work item.
|
|
142
|
+
|
|
143
|
+
If any of these conditions applies, return the complete ready-to-publish batch without a write:
|
|
144
|
+
|
|
145
|
+
- The invocation is indirect.
|
|
146
|
+
- The invocation uses `--report-only`.
|
|
147
|
+
- A forge capability is absent.
|
|
148
|
+
- There are no findings.
|
|
149
|
+
- A bound value changed.
|
|
150
|
+
|
|
84
151
|
Do not post a clean review.
|
|
85
152
|
|
|
86
|
-
Before
|
|
87
|
-
|
|
153
|
+
Before each requested write, fetch the exact open artifact again. Derive the fully qualified write
|
|
154
|
+
target only from the retained identity. Revalidate these values:
|
|
88
155
|
|
|
89
156
|
| Forge/profile | Required rebind |
|
|
90
157
|
| --- | --- |
|
|
@@ -92,13 +159,12 @@ fully-qualified write target only from the retained identity. Revalidate:
|
|
|
92
159
|
| CI-free GitHub | Exact repository/PR/base/head plus the final non-CI source-scope binding. Never call `collect_evidence.py` or a CI endpoint. |
|
|
93
160
|
| GitLab | Exact identity, scope, linked requirements, changed paths, and complete base/start/head position tuple. |
|
|
94
161
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
several locations.
|
|
162
|
+
If a value changes, withhold the complete set. Start a new review. Use a general summary only for
|
|
163
|
+
architecture, scope, coverage, or another cross-cutting point that has no changed-line anchor. Do not
|
|
164
|
+
repeat an inline finding in the summary. Publish each independently actionable changed-line finding
|
|
165
|
+
exactly once. Put it in one inline comment or discussion on its causal changed line. Do not combine
|
|
166
|
+
separate fixes. Do not use a line range instead of the causal line. Do not duplicate the finding at
|
|
167
|
+
multiple locations.
|
|
102
168
|
|
|
103
169
|
### GitHub batch
|
|
104
170
|
|
|
@@ -112,24 +178,37 @@ body = non-empty (neutral transport body is valid)
|
|
|
112
178
|
comments = one entry per anchorable independent finding
|
|
113
179
|
```
|
|
114
180
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
181
|
+
Put only one verified changed `path`, `side`, causal `line`, and finding body in each comment entry.
|
|
182
|
+
Put `commit_id` at the top level. Do not put it in an individual comment. Verify that the returned
|
|
183
|
+
review and fetched comments identify these values:
|
|
184
|
+
|
|
185
|
+
- the target;
|
|
186
|
+
- the `COMMENT` or `COMMENTED` event or state;
|
|
187
|
+
- the reviewed commit; and
|
|
188
|
+
- each expected path, side, line, and body anchor.
|
|
189
|
+
|
|
190
|
+
If verification fails or is indeterminate, make no additional write. Do not retry. Do not substitute
|
|
191
|
+
`gh pr review --comment`.
|
|
121
192
|
|
|
122
193
|
### GitLab discussions
|
|
123
194
|
|
|
124
|
-
Create one actionable changed-line discussion for each anchorable independent
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
195
|
+
Create one actionable changed-line discussion for each anchorable independent finding. Put these
|
|
196
|
+
exact values in each text position:
|
|
197
|
+
|
|
198
|
+
- `base_sha`;
|
|
199
|
+
- `start_sha`;
|
|
200
|
+
- `head_sha`;
|
|
201
|
+
- `old_path`;
|
|
202
|
+
- `new_path`; and
|
|
203
|
+
- `position_type=text`.
|
|
204
|
+
|
|
205
|
+
For an added or right-side finding, use only `new_line`. For a deletion or left-side finding, use only
|
|
206
|
+
`old_line`. For an unchanged line, use both fields. Use an atomic draft or batch when it is available.
|
|
207
|
+
If it is not available, bind the artifact again before each ordered discussion. If a value changes,
|
|
208
|
+
stop. Retain the created uniform resource locators (URLs). Return the remaining batch. Verify each
|
|
209
|
+
returned target, tuple, path, and line field exactly. If the workflow requires an atomic batch and the
|
|
210
|
+
forge does not support it, withhold the complete set.
|
|
211
|
+
|
|
212
|
+
Report review or discussion URLs, publication failures, residual risks, and unverified assumptions
|
|
213
|
+
accurately. The forge and its approval policy control labels, acceptance, and merge. Review prose does
|
|
214
|
+
not control them.
|