@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,167 +1,200 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brainstorm
|
|
3
3
|
license: BSD-3-Clause
|
|
4
|
-
description: Use before complex creative work
|
|
4
|
+
description: Use before complex creative work. Examine intent and requirements. Stop if `advise` cannot prepare Mnemosyne.
|
|
5
5
|
argument-hint: <idea or feature description>
|
|
6
6
|
allowed-tools: [Read, Write, Bash, Grep, Glob, Agent]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# Develop designs from ideas
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Develop a complete design and specification through a dialog with the user.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Apply the [ASD-STE100 technical-English policy](../TECHNICAL_ENGLISH.md) to this skill and to all
|
|
14
|
+
prose that it produces.
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
First, inspect the current project. Ask one question in each message to clarify the idea. When the
|
|
17
|
+
requirements are clear, present the design. Continue with the requested implementation unless a
|
|
18
|
+
requirement remains unresolved.
|
|
19
|
+
|
|
20
|
+
**DESIGN CHECKPOINT:** Before a complex implementation, present a design that has sufficient detail
|
|
21
|
+
for the scope. Use this checkpoint to confirm shared understanding. It is not a permission gate.
|
|
22
|
+
Stop only for an unresolved requirement or a filesystem-destructive action.
|
|
16
23
|
|
|
17
24
|
## Engineering principles
|
|
18
25
|
|
|
19
|
-
Use Athena's [canonical engineering-principles catalog](
|
|
20
|
-
definition source.
|
|
21
|
-
|
|
22
|
-
- [P001 — KISS — Keep It Simple, Stupid](
|
|
23
|
-
the
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- [
|
|
31
|
-
|
|
32
|
-
- [
|
|
33
|
-
|
|
34
|
-
- [
|
|
35
|
-
|
|
36
|
-
- [
|
|
37
|
-
|
|
26
|
+
Use Athena's [canonical engineering-principles catalog](../_support/docs/principles/README.md) as the
|
|
27
|
+
definition source. Use these principles to make workflow decisions:
|
|
28
|
+
|
|
29
|
+
- [P001 — KISS — Keep It Simple, Stupid](../_support/docs/principles/README.md#p001): Make the design
|
|
30
|
+
sufficient for the problem that the evidence shows. Select the minimum solution that obeys
|
|
31
|
+
all requirements.
|
|
32
|
+
- [P002 — YAGNI — You Ain't Gonna Need It](../_support/docs/principles/README.md#p002): Do not include a
|
|
33
|
+
capability, extension point, or infrastructure that has no specified current requirement.
|
|
34
|
+
- [P007 — Subtraction Over Addition](../_support/docs/principles/README.md#p007): Before you recommend a new
|
|
35
|
+
component, find if removal, consolidation, or an existing mechanism can give the necessary
|
|
36
|
+
result.
|
|
37
|
+
- [P008 — Understand Before Subtracting](../_support/docs/principles/README.md#p008): Before you recommend
|
|
38
|
+
deletion, examine the purpose, consumers, and history of the applicable component.
|
|
39
|
+
- [P012 — Evidence Before Modification](../_support/docs/principles/README.md#p012): Before you select a
|
|
40
|
+
design, use repository code, contracts, tests, history, and guidance as evidence.
|
|
41
|
+
- [P015 — Architecture Conformance](../_support/docs/principles/README.md#p015): If the requirement does
|
|
42
|
+
not change the architecture, obey the established boundaries and dependency direction.
|
|
43
|
+
- [P071 — Consistency Over Personal Preference](../_support/docs/principles/README.md#p071): If repository
|
|
44
|
+
conventions obey the requirement, use them. Do not select a different style because of
|
|
45
|
+
personal preference.
|
|
46
|
+
- [P074 — Prefer Existing Mechanisms](../_support/docs/principles/README.md#p074): Before you make a
|
|
47
|
+
mechanism, find an applicable existing mechanism. If it obeys the requirement, use it.
|
|
38
48
|
|
|
39
49
|
## Failed approaches
|
|
40
50
|
|
|
41
|
-
|
|
51
|
+
Use this process for each feature. A short design can be sufficient for a simple change. Before
|
|
52
|
+
implementation, the design must show its assumptions and constraints.
|
|
42
53
|
|
|
43
|
-
-
|
|
54
|
+
- Do not skip `advise` retrieval. Without this retrieval, the design can duplicate an existing
|
|
55
|
+
solution or repeat a problem that prior guidance already resolved.
|
|
44
56
|
|
|
45
57
|
## Checklist
|
|
46
58
|
|
|
47
59
|
Complete in order:
|
|
48
60
|
|
|
49
|
-
1. **Run `advise
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
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
|
-
|
|
61
|
+
1. **Advise retrieval.** Run `advise` with the feature description to check the required knowledge
|
|
62
|
+
backend.
|
|
63
|
+
2. **Project evidence.** Read applicable files, documents, and recent commits.
|
|
64
|
+
3. **Clarification.** Ask one question in each message to identify the purpose, constraints, and
|
|
65
|
+
success criteria.
|
|
66
|
+
4. **Approach options.** Propose two or three approaches.
|
|
67
|
+
5. **Trade-offs.** State the trade-offs for each approach.
|
|
68
|
+
6. **Recommendation.** Identify your recommended approach.
|
|
69
|
+
7. **Design presentation.** Present sections that have sufficient detail for their complexity.
|
|
70
|
+
8. **Material ambiguity.** Ask a question only to resolve a material ambiguity.
|
|
71
|
+
9. **Durable specification.** Write `docs/specs/YYYY-MM-DD-<topic>-design.md` only if complexity,
|
|
72
|
+
project policy, or a current downstream consumer requires it.
|
|
73
|
+
10. **Design review.** Check the design for placeholders, contradictions, ambiguities, and scope
|
|
74
|
+
errors.
|
|
75
|
+
11. **Saved path.** If you saved a specification, report its path.
|
|
76
|
+
12. **User review.** Ask the user to review a saved specification.
|
|
77
|
+
13. **Continuation.** Do not stop unless a requirement remains unresolved.
|
|
78
|
+
14. **Implementation.** Start the requested implementation.
|
|
79
|
+
15. **Complex work.** For a complex implementation, invoke `myrmidon-swarm`.
|
|
80
|
+
16. **Planning skill.** If an installed planning skill is available, use it to track the design.
|
|
81
|
+
17. **Planning fallback.** Otherwise, write a short numbered plan in the current conversation.
|
|
82
|
+
18. **Sequential work.** Complete the fallback plan in sequence.
|
|
83
|
+
|
|
84
|
+
## Process
|
|
85
|
+
|
|
86
|
+
### Understand the idea
|
|
87
|
+
|
|
88
|
+
- First, inspect the current project files, documents, and `git log --oneline -10`.
|
|
89
|
+
- Before you ask detailed questions, assess the scope.
|
|
90
|
+
- If the request contains multiple independent subsystems, tell the user immediately. Help the user
|
|
91
|
+
divide the request into subprojects.
|
|
92
|
+
- If the project has a suitable scope, ask questions one at a time.
|
|
93
|
+
- Use multiple-choice questions when possible.
|
|
94
|
+
- Ask only one question in each message.
|
|
95
|
+
- Ask about the purpose, constraints, and success criteria.
|
|
96
|
+
|
|
97
|
+
### Compare approaches
|
|
98
|
+
|
|
99
|
+
- Propose two or three different approaches with trade-offs.
|
|
100
|
+
- Put your recommended option first. Explain the reason for the recommendation.
|
|
101
|
+
- Refer to existing patterns in the target codebase.
|
|
102
|
+
|
|
103
|
+
### Present the design
|
|
104
|
+
|
|
105
|
+
- Present the design in sections. Ask after each section if it is correct.
|
|
106
|
+
- Give each section sufficient detail for its complexity.
|
|
107
|
+
- Include architecture, components, data flow, error handling, and the test strategy.
|
|
108
|
+
- Use these principles to define component responsibilities and boundaries:
|
|
109
|
+
[P004 — SOLID](../_support/docs/principles/README.md#p004),
|
|
110
|
+
[P005 — Modularity](../_support/docs/principles/README.md#p005),
|
|
111
|
+
[P016 — Separation of Concerns](../_support/docs/principles/README.md#p016),
|
|
112
|
+
[P017 — High Cohesion, Low Coupling](../_support/docs/principles/README.md#p017), and
|
|
113
|
+
[P018 — Information Hiding](../_support/docs/principles/README.md#p018).
|
|
114
|
+
- Use [P006 — POLA — Principle of Least Astonishment](../_support/docs/principles/README.md#p006) and
|
|
115
|
+
[P019 — Explicit Contracts](../_support/docs/principles/README.md#p019) to make interfaces predictable.
|
|
116
|
+
Document observable inputs, outputs, errors, and invariants.
|
|
117
|
+
- Use [P020 — Executable Architecture](../_support/docs/principles/README.md#p020) to identify critical
|
|
118
|
+
architecture rules that need automated enforcement. Use
|
|
119
|
+
[P021 — Evolutionary and Reversible Design](../_support/docs/principles/README.md#p021) to divide the
|
|
120
|
+
design into reversible increments. Specify the migration and rollback boundaries.
|
|
121
|
+
- Use [P077 — Separate Policy from Mechanism](../_support/docs/principles/README.md#p077) to separate
|
|
122
|
+
decisions from machinery. Use
|
|
123
|
+
[P078 — Single Source of Truth](../_support/docs/principles/README.md#p078) to identify the authoritative
|
|
124
|
+
state. Use [P079 — Explicit Ownership and Lifetimes](../_support/docs/principles/README.md#p079) to
|
|
125
|
+
identify ownership and cleanup.
|
|
126
|
+
- Use [P007](../_support/docs/principles/README.md#p007) and
|
|
127
|
+
[P008](../_support/docs/principles/README.md#p008) to question additions. Use
|
|
128
|
+
[P088](../_support/docs/principles/README.md#p088) and
|
|
129
|
+
[P089](../_support/docs/principles/README.md#p089) to remove verified dead code and obsolete scaffolding.
|
|
130
|
+
If designs are equally correct, give preference to
|
|
131
|
+
[P090 — Prefer Negative Code](../_support/docs/principles/README.md#p090).
|
|
132
|
+
- Use [P010 — Scope Fidelity](../_support/docs/principles/README.md#p010) to keep the proposal in the stated
|
|
133
|
+
goal. Then use [P011 — Minimal Coherent Change](../_support/docs/principles/README.md#p011) and
|
|
134
|
+
[P012 — Evidence Before Modification](../_support/docs/principles/README.md#p012) to select the smallest
|
|
135
|
+
complete change that the evidence supports.
|
|
136
|
+
- Use [P009 — General Mechanisms Over Special Cases](../_support/docs/principles/README.md#p009) only if
|
|
137
|
+
current repeated cases show the need for a reusable mechanism. Use
|
|
138
|
+
[P013 — AHA — Avoid Hasty Abstractions](../_support/docs/principles/README.md#p013) to delay an unstable
|
|
115
139
|
abstraction.
|
|
116
|
-
-
|
|
117
|
-
[P014 — Preserve Unrequested Behavior](
|
|
140
|
+
- Identify behavior that is outside the requested change. Preserve it under
|
|
141
|
+
[P014 — Preserve Unrequested Behavior](../_support/docs/principles/README.md#p014).
|
|
118
142
|
|
|
119
|
-
|
|
143
|
+
### Work in existing codebases
|
|
120
144
|
|
|
121
|
-
- Follow existing patterns in the target repository
|
|
122
|
-
- Invoke
|
|
123
|
-
-
|
|
145
|
+
- Follow existing patterns in the target repository.
|
|
146
|
+
- Invoke `advise` first to check for existing implementations.
|
|
147
|
+
- Do not propose unrelated refactoring. Keep the work in the current goal.
|
|
124
148
|
|
|
125
|
-
## After the
|
|
149
|
+
## After the design
|
|
126
150
|
|
|
127
|
-
|
|
151
|
+
### Save a specification only when necessary
|
|
128
152
|
|
|
129
|
-
For small
|
|
130
|
-
project policy, or a current downstream consumer requires a durable
|
|
131
|
-
|
|
153
|
+
For a small change, keep the design in the conversation. Then, continue with the requested
|
|
154
|
+
implementation. If complexity, project policy, or a current downstream consumer requires a durable
|
|
155
|
+
specification, save it to
|
|
156
|
+
`docs/specs/YYYY-MM-DD-<topic>-design.md`. Use this commit message:
|
|
132
157
|
`docs(specs): add <topic> design document`.
|
|
133
158
|
|
|
134
|
-
Before
|
|
135
|
-
|
|
136
|
-
|
|
159
|
+
Before you write or commit a specification, read the target repository policies for mutation,
|
|
160
|
+
signing, the Developer Certificate of Origin (DCO), and review. If the specification is in scope,
|
|
161
|
+
you can write it without a separate approval prompt. After you write an in-scope specification, you
|
|
162
|
+
can commit it without a separate approval prompt. If a durable artifact is not necessary, keep the
|
|
163
|
+
specification in the conversation.
|
|
164
|
+
|
|
165
|
+
### Review the specification
|
|
166
|
+
|
|
167
|
+
1. **Find placeholders.** Search for `TBD`, `TODO`, and incomplete sections.
|
|
168
|
+
2. **Correct placeholders.** Correct each item that the search finds.
|
|
169
|
+
3. **Check consistency.** Correct each conflict between sections.
|
|
170
|
+
4. **Check the scope.** Make sure that one plan can contain the work.
|
|
171
|
+
5. **Select one meaning.** If a requirement has two possible meanings, select one meaning.
|
|
172
|
+
6. **State the meaning.** State the selected meaning clearly.
|
|
137
173
|
|
|
138
|
-
|
|
174
|
+
### Report the specification
|
|
139
175
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
3. **Scope check:** Is this focused enough for a single plan?
|
|
143
|
-
4. **Ambiguity check:** Can any requirement be interpreted two ways? Pick one and make it explicit.
|
|
176
|
+
After you review a saved specification, report its location. Continue with the requested
|
|
177
|
+
implementation unless the user requests changes. Use this message:
|
|
144
178
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
implementation unless the user requests changes:
|
|
148
|
-
> "Spec written and committed to `docs/specs/<filename>`. Please review and let me know if you want changes before we start planning implementation."
|
|
179
|
+
> I wrote and committed the specification at `docs/specs/<filename>`. Review it and tell me if you
|
|
180
|
+
> want changes.
|
|
149
181
|
|
|
150
|
-
|
|
182
|
+
### Implement the design
|
|
151
183
|
|
|
152
|
-
-
|
|
153
|
-
|
|
154
|
-
-
|
|
184
|
+
- If a planning skill is installed, use it to track the task. Otherwise, write the numbered plan in
|
|
185
|
+
the conversation.
|
|
186
|
+
- For complex multi-agent work, invoke `myrmidon-swarm`.
|
|
155
187
|
|
|
156
|
-
##
|
|
188
|
+
## Rules
|
|
157
189
|
|
|
158
|
-
- **
|
|
159
|
-
- **Apply [P002 — YAGNI — You Ain't Gonna Need It](
|
|
160
|
-
unnecessary features from
|
|
161
|
-
|
|
162
|
-
- **
|
|
163
|
-
|
|
164
|
-
- **Invoke `advise` first
|
|
190
|
+
- **Ask one question at a time.** Do not put multiple questions in one message.
|
|
191
|
+
- **Apply [P002 — YAGNI — You Ain't Gonna Need It](../_support/docs/principles/README.md#p002).** Remove
|
|
192
|
+
unnecessary features from all designs.
|
|
193
|
+
- **Compare alternatives.** Always propose two or three approaches.
|
|
194
|
+
- **Validate in increments.** Present the design in sections. Resolve material ambiguity before you
|
|
195
|
+
continue.
|
|
196
|
+
- **Invoke `advise` first.** Do not duplicate an existing solution. Do not repeat a problem that prior
|
|
197
|
+
guidance already resolved.
|
|
165
198
|
|
|
166
199
|
---
|
|
167
200
|
|
|
@@ -1,104 +1,124 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: change-review
|
|
3
3
|
license: BSD-3-Clause
|
|
4
|
-
description: Review only
|
|
4
|
+
description: Review only a worktree, staged, or explicit-range change for architecture, behavior, language, and evidence. Use before a commit or pull request. This skill is read-only. If the scope is ambiguous, unresolved, or out of scope, report the reason. In that case, stop.
|
|
5
5
|
argument-hint: "[--worktree | --staged | --range BASE..HEAD] [PATH ...]"
|
|
6
6
|
allowed-tools: [Read, Bash, Grep, Glob, Agent]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Change review
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Purpose: Bind the exact local change to the review. Findings must apply only to the selected
|
|
12
|
+
content.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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 [review contract](../_support/docs/review/common.md),
|
|
18
|
+
[language routing](../_support/docs/review/language-routing.md), and
|
|
19
|
+
[behavior-first testing](../_support/docs/review/behavior-first-testing.md).
|
|
17
20
|
|
|
18
21
|
## Engineering principles
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
Use the canonical [engineering-principles catalog](../_support/docs/principles/README.md) to make these
|
|
21
24
|
review decisions:
|
|
22
25
|
|
|
23
|
-
- [P010 Scope Fidelity](
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
26
|
+
- [P010 Scope Fidelity](../_support/docs/principles/README.md#p010): Examine only the selected bytes. Do not
|
|
27
|
+
use a different scope.
|
|
28
|
+
- [P066 Preserve Existing Work](../_support/docs/principles/README.md#p066): Do not change work outside the
|
|
29
|
+
selected scope.
|
|
30
|
+
- [P012 Evidence Before Modification](../_support/docs/principles/README.md#p012): Before you report a
|
|
31
|
+
finding, examine the applicable evidence.
|
|
32
|
+
- [P063 Requirement-to-Code Traceability](../_support/docs/principles/README.md#p063): For each finding,
|
|
33
|
+
find the applicable requirement or contract.
|
|
34
|
+
- [P072 Technical Evidence Over Preference](../_support/docs/principles/README.md#p072): Give evidence that
|
|
35
|
+
you examined for each finding. Find the risk that this evidence shows. Do not use reviewer
|
|
36
|
+
preference as evidence.
|
|
37
|
+
- [P014 Preserve Unrequested Behavior](../_support/docs/principles/README.md#p014): Do not recommend a
|
|
38
|
+
behavior change that the request does not include.
|
|
39
|
+
- [P022 Test Behavior, Not Implementation](../_support/docs/principles/README.md#p022): Examine observable
|
|
40
|
+
behavior. Do not make tests of private implementation details necessary.
|
|
41
|
+
- [P065 Verify Before Claiming Completion](../_support/docs/principles/README.md#p065): Make validation and
|
|
42
|
+
coverage claims only from evidence that you examined.
|
|
43
|
+
|
|
44
|
+
This skill is read-only. Do not edit source. Do not stage files. Do not make Git state.
|
|
45
|
+
|
|
46
|
+
Do not post forge content. Do not open issues. Do not write review notes into source.
|
|
39
47
|
|
|
40
48
|
## Bind the scope
|
|
41
49
|
|
|
42
|
-
|
|
50
|
+
Select exactly one scope:
|
|
51
|
+
|
|
52
|
+
- Use `--worktree` by default. It selects tracked differences from `HEAD` and non-ignored untracked
|
|
53
|
+
files.
|
|
54
|
+
- Use `--staged` to select index changes from `HEAD`.
|
|
55
|
+
- Use `--range BASE..HEAD` to select the explicit Git range.
|
|
56
|
+
|
|
57
|
+
Before you inspect content, resolve the installed
|
|
58
|
+
[`scripts/resolve_scope.py`](scripts/resolve_scope.py) from this skill directory. Read each eligible
|
|
59
|
+
object in its manifest. Follow the
|
|
60
|
+
[scope-resolution safety contract](references/scope-resolution.md). Use path arguments only to
|
|
61
|
+
reduce the selected diff. Make sure that each path remains inside the repository root.
|
|
43
62
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- `--staged`: index changes from `HEAD`; or
|
|
47
|
-
- `--range BASE..HEAD`: the explicit Git range.
|
|
63
|
+
For a range, report the immutable base and head commits. For worktree or staged scope, report these
|
|
64
|
+
items:
|
|
48
65
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Paths further restrict the selected diff and must remain inside the repository
|
|
53
|
-
root.
|
|
66
|
+
- `HEAD`;
|
|
67
|
+
- selected paths; and
|
|
68
|
+
- the returned content-bound digest.
|
|
54
69
|
|
|
55
|
-
|
|
56
|
-
scope, report
|
|
57
|
-
never create a commit, tree, stash, temporary index, or other Git state to
|
|
58
|
-
invent a head. Report an empty scope and never silently substitute a different
|
|
59
|
-
range.
|
|
70
|
+
Do not create a commit, tree, stash, temporary index, or other Git state to represent a nonexistent
|
|
71
|
+
head. If the scope is empty, report the empty scope. Do not substitute a different range.
|
|
60
72
|
|
|
61
|
-
`--staged` and `--range` exclude untracked worktree files. State
|
|
62
|
-
|
|
63
|
-
|
|
73
|
+
`--staged` and `--range` exclude untracked worktree files. State this boundary in the result. If
|
|
74
|
+
resolution cannot safely cover the selected scope, report the coverage gap. Reduce the paths.
|
|
75
|
+
Alternatively, select a safer scope. Do not inspect a sample of the scope.
|
|
64
76
|
|
|
65
77
|
## Review and deliver
|
|
66
78
|
|
|
67
|
-
Follow
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
79
|
+
Follow this shared review flow:
|
|
80
|
+
|
|
81
|
+
1. Establish the architecture.
|
|
82
|
+
2. Select only applicable surfaces and language profiles.
|
|
83
|
+
3. Inspect changed behavior and tests.
|
|
84
|
+
4. Prepare unique findings in severity order.
|
|
85
|
+
|
|
86
|
+
For each skipped check, record not applicable (`N/A`). Give the reason for that status.
|
|
87
|
+
|
|
88
|
+
Activate a shared profile only if the selected change contains its surface:
|
|
71
89
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
behavior
|
|
77
|
-
|
|
78
|
-
|
|
90
|
+
- Use [P001 KISS — Keep It Simple, Stupid](../_support/docs/principles/README.md#p001) for added complexity.
|
|
91
|
+
- Use [P015 Architecture Conformance](../_support/docs/principles/README.md#p015) for boundary or dependency
|
|
92
|
+
changes.
|
|
93
|
+
- Use [P022 Test Behavior, Not Implementation](../_support/docs/principles/README.md#p022) for testable
|
|
94
|
+
behavior.
|
|
95
|
+
- Use
|
|
96
|
+
[P029 Generalize Error Policy; Preserve Specific Cause](../_support/docs/principles/README.md#p029) for
|
|
97
|
+
error-path changes.
|
|
98
|
+
- Use [P048 Secure by Design](../_support/docs/principles/README.md#p048) for security or trust-boundary
|
|
99
|
+
changes.
|
|
79
100
|
|
|
80
|
-
For a material architecture change, require a stated design decision,
|
|
81
|
-
[design record](
|
|
82
|
-
|
|
101
|
+
For a material architecture change, require a stated design decision, architecture decision record
|
|
102
|
+
(ADR), or [design record](../_support/docs/review/design-docs.md). If architecture evidence is missing,
|
|
103
|
+
report a blocking finding. Do not invent evidence.
|
|
83
104
|
|
|
84
|
-
|
|
105
|
+
Include these items in the console or host-native read-only annotation surface:
|
|
85
106
|
|
|
86
|
-
1. scope
|
|
87
|
-
2. architecture decision first
|
|
88
|
-
3.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
107
|
+
1. Identify the scope, base and head or manifest digest, and files read.
|
|
108
|
+
2. Give the architecture decision first.
|
|
109
|
+
3. List applicable and `N/A` checks.
|
|
110
|
+
4. Give severity-ranked findings with the exact `path:line`, impact, and evidence.
|
|
111
|
+
5. For each finding, give a correction that is proportional to the impact.
|
|
112
|
+
6. Give behavior-first test and validation coverage.
|
|
113
|
+
7. Give residual risks and unverified assumptions.
|
|
92
114
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
editing source.
|
|
115
|
+
If the host supports native source annotations, use them only for changed locations. Otherwise, use
|
|
116
|
+
`path:line` in the console. Do not simulate annotations by editing source.
|
|
96
117
|
|
|
97
118
|
## Failed approaches
|
|
98
119
|
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
- Sampling an unsafe-to-cover scope instead of reporting the coverage gap and narrowing the paths.
|
|
120
|
+
- Do not review uncommitted work as if it is committed. Do not invent a head commit to bind a range.
|
|
121
|
+
- Do not increase the scope beyond the requested range, paths, or selected diff. Report the boundary.
|
|
122
|
+
- Do not edit source. Do not stage files. Do not publish forge comments. Do not simulate native
|
|
123
|
+
annotations to deliver findings.
|
|
124
|
+
- Do not sample a scope that you cannot cover safely. Report the coverage gap. Then, reduce the paths.
|