@homericintelligence/athena-opencode 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/README.md +30 -17
  2. package/package.json +2 -2
  3. package/plugin.js +20 -5
  4. package/skills/TECHNICAL_ENGLISH.md +78 -0
  5. package/skills/_cli.py +33 -22
  6. package/skills/_plugin.json +1 -0
  7. package/skills/_support/docs/dependency-resolution.md +203 -0
  8. package/skills/_support/docs/policies/development.md +131 -0
  9. package/skills/_support/docs/policies/evidence-integrity.md +40 -0
  10. package/skills/_support/docs/principles/README.md +565 -0
  11. package/skills/_support/docs/principles/details/p001-kiss.md +114 -0
  12. package/skills/_support/docs/principles/details/p002-yagni.md +109 -0
  13. package/skills/_support/docs/principles/details/p003-dry.md +126 -0
  14. package/skills/_support/docs/principles/details/p004-solid.md +165 -0
  15. package/skills/_support/docs/principles/details/p005-modularity.md +123 -0
  16. package/skills/_support/docs/principles/details/p006-principle-of-least-astonishment.md +115 -0
  17. package/skills/_support/docs/principles/details/p007-subtraction-over-addition.md +113 -0
  18. package/skills/_support/docs/principles/details/p008-understand-before-subtracting.md +115 -0
  19. package/skills/_support/docs/principles/details/p009-general-mechanisms-over-special-cases.md +108 -0
  20. package/skills/_support/docs/principles/details/p010-scope-fidelity.md +117 -0
  21. package/skills/_support/docs/principles/details/p011-minimal-coherent-change.md +128 -0
  22. package/skills/_support/docs/principles/details/p012-evidence-before-modification.md +115 -0
  23. package/skills/_support/docs/principles/details/p013-avoid-hasty-abstractions.md +112 -0
  24. package/skills/_support/docs/principles/details/p014-preserve-unrequested-behavior.md +110 -0
  25. package/skills/_support/docs/principles/details/p015-architecture-conformance.md +124 -0
  26. package/skills/_support/docs/principles/details/p016-separation-of-concerns.md +125 -0
  27. package/skills/_support/docs/principles/details/p017-high-cohesion-low-coupling.md +130 -0
  28. package/skills/_support/docs/principles/details/p018-information-hiding.md +128 -0
  29. package/skills/_support/docs/principles/details/p019-explicit-contracts.md +134 -0
  30. package/skills/_support/docs/principles/details/p020-executable-architecture.md +130 -0
  31. package/skills/_support/docs/principles/details/p021-evolutionary-and-reversible-design.md +126 -0
  32. package/skills/_support/docs/principles/details/p022-test-behavior-not-implementation.md +129 -0
  33. package/skills/_support/docs/principles/details/p023-parameterized-table-driven-testing.md +129 -0
  34. package/skills/_support/docs/principles/details/p024-boundary-value-testing.md +128 -0
  35. package/skills/_support/docs/principles/details/p025-property-based-testing-for-invariants.md +133 -0
  36. package/skills/_support/docs/principles/details/p026-regression-before-repair.md +134 -0
  37. package/skills/_support/docs/principles/details/p027-deterministic-and-hermetic-tests.md +128 -0
  38. package/skills/_support/docs/principles/details/p028-test-failure-paths.md +133 -0
  39. package/skills/_support/docs/principles/details/p029-generalize-error-policy-preserve-specific-cause.md +131 -0
  40. package/skills/_support/docs/principles/details/p030-nearest-responsible-error-boundary.md +133 -0
  41. package/skills/_support/docs/principles/details/p031-propagate-rather-than-swallow.md +131 -0
  42. package/skills/_support/docs/principles/details/p032-handle-once-preserve-causality.md +137 -0
  43. package/skills/_support/docs/principles/details/p033-state-safe-failure-semantics.md +140 -0
  44. package/skills/_support/docs/principles/details/p034-fail-fast.md +132 -0
  45. package/skills/_support/docs/principles/details/p035-fail-secure-fail-closed.md +137 -0
  46. package/skills/_support/docs/principles/details/p036-graceful-degradation.md +137 -0
  47. package/skills/_support/docs/principles/details/p037-idempotency-before-retry.md +139 -0
  48. package/skills/_support/docs/principles/details/p038-bounded-retry.md +145 -0
  49. package/skills/_support/docs/principles/details/p039-bounded-waiting.md +151 -0
  50. package/skills/_support/docs/principles/details/p040-bounded-resources.md +138 -0
  51. package/skills/_support/docs/principles/details/p041-backpressure-and-load-shedding.md +141 -0
  52. package/skills/_support/docs/principles/details/p042-fault-isolation-bulkheads.md +140 -0
  53. package/skills/_support/docs/principles/details/p043-circuit-breakers.md +148 -0
  54. package/skills/_support/docs/principles/details/p044-atomicity-where-possible.md +141 -0
  55. package/skills/_support/docs/principles/details/p045-compensation-where-atomicity-is-impossible.md +163 -0
  56. package/skills/_support/docs/principles/details/p046-resumability.md +138 -0
  57. package/skills/_support/docs/principles/details/p047-observability-is-part-of-correctness.md +134 -0
  58. package/skills/_support/docs/principles/details/p048-secure-by-design.md +132 -0
  59. package/skills/_support/docs/principles/details/p049-secure-by-default.md +126 -0
  60. package/skills/_support/docs/principles/details/p050-least-privilege.md +123 -0
  61. package/skills/_support/docs/principles/details/p051-complete-mediation.md +124 -0
  62. package/skills/_support/docs/principles/details/p052-separation-of-duties.md +129 -0
  63. package/skills/_support/docs/principles/details/p053-validate-at-trust-boundaries.md +126 -0
  64. package/skills/_support/docs/principles/details/p054-defense-in-depth.md +135 -0
  65. package/skills/_support/docs/principles/details/p055-minimize-attack-surface.md +133 -0
  66. package/skills/_support/docs/principles/details/p056-secrets-stay-out-of-code-and-context.md +137 -0
  67. package/skills/_support/docs/principles/details/p057-supply-chain-integrity.md +135 -0
  68. package/skills/_support/docs/principles/details/p058-bounded-agent-authority.md +137 -0
  69. package/skills/_support/docs/principles/details/p059-data-is-not-instruction.md +130 -0
  70. package/skills/_support/docs/principles/details/p060-constrain-sub-agents.md +136 -0
  71. package/skills/_support/docs/principles/details/p061-separate-decision-from-high-impact-execution.md +131 -0
  72. package/skills/_support/docs/principles/details/p062-human-approval-for-irreversible-or-high-risk-actions.md +129 -0
  73. package/skills/_support/docs/principles/details/p063-requirement-to-code-traceability.md +116 -0
  74. package/skills/_support/docs/principles/details/p064-requirement-to-test-traceability.md +116 -0
  75. package/skills/_support/docs/principles/details/p065-verify-before-claiming-completion.md +131 -0
  76. package/skills/_support/docs/principles/details/p066-preserve-existing-work.md +114 -0
  77. package/skills/_support/docs/principles/details/p067-no-test-cheating.md +126 -0
  78. package/skills/_support/docs/principles/details/p068-no-validation-bypass.md +119 -0
  79. package/skills/_support/docs/principles/details/p069-independent-review-for-high-risk-changes.md +129 -0
  80. package/skills/_support/docs/principles/details/p070-code-health-must-not-regress.md +116 -0
  81. package/skills/_support/docs/principles/details/p071-consistency-over-personal-preference.md +117 -0
  82. package/skills/_support/docs/principles/details/p072-technical-evidence-over-preference.md +122 -0
  83. package/skills/_support/docs/principles/details/p073-optimize-only-with-evidence.md +123 -0
  84. package/skills/_support/docs/principles/details/p074-prefer-existing-mechanisms.md +121 -0
  85. package/skills/_support/docs/principles/details/p075-make-invalid-states-hard-to-represent.md +128 -0
  86. package/skills/_support/docs/principles/details/p076-parse-then-validate-then-operate.md +133 -0
  87. package/skills/_support/docs/principles/details/p077-separate-policy-from-mechanism.md +112 -0
  88. package/skills/_support/docs/principles/details/p078-single-source-of-truth.md +131 -0
  89. package/skills/_support/docs/principles/details/p079-explicit-ownership-and-lifetimes.md +124 -0
  90. package/skills/_support/docs/principles/details/p080-make-concurrency-deliberate.md +122 -0
  91. package/skills/_support/docs/principles/details/p081-forward-progress-with-safety.md +125 -0
  92. package/skills/_support/docs/principles/details/p082-design-for-cancellation.md +133 -0
  93. package/skills/_support/docs/principles/details/p083-irreversible-actions-last.md +124 -0
  94. package/skills/_support/docs/principles/details/p084-prefer-local-reasoning.md +131 -0
  95. package/skills/_support/docs/principles/details/p085-explicit-is-better-than-implicit.md +123 -0
  96. package/skills/_support/docs/principles/details/p086-readability-counts.md +113 -0
  97. package/skills/_support/docs/principles/details/p087-comments-explain-why-code-explains-what.md +120 -0
  98. package/skills/_support/docs/principles/details/p088-delete-dead-code.md +125 -0
  99. package/skills/_support/docs/principles/details/p089-delete-obsolete-configuration-and-dependencies.md +125 -0
  100. package/skills/_support/docs/principles/details/p090-prefer-negative-code.md +134 -0
  101. package/skills/_support/docs/principles/details/p091-test-driven-development.md +149 -0
  102. package/skills/_support/docs/review/README.md +63 -0
  103. package/skills/_support/docs/review/behavior-first-testing.md +78 -0
  104. package/skills/_support/docs/review/common.md +400 -0
  105. package/skills/_support/docs/review/design-docs.md +74 -0
  106. package/skills/_support/docs/review/issue-planning.md +247 -0
  107. package/skills/_support/docs/review/language-routing.md +141 -0
  108. package/skills/_support/docs/review/repository-scorecard.md +170 -0
  109. package/skills/advise/SKILL.md +108 -74
  110. package/skills/advise/scripts/list_retrievable_skills.py +20 -8
  111. package/skills/advise/scripts/resolve_knowledge_checkout.py +533 -0
  112. package/skills/brainstorm/SKILL.md +163 -127
  113. package/skills/change-review/SKILL.md +91 -71
  114. package/skills/change-review/references/scope-resolution.md +69 -46
  115. package/skills/change-review/scripts/resolve_scope.py +144 -84
  116. package/skills/finalize-plan/SKILL.md +205 -139
  117. package/skills/git-worktrees/SKILL.md +100 -80
  118. package/skills/git-worktrees/scripts/prepare_worktree.py +34 -15
  119. package/skills/issue-review/SKILL.md +136 -79
  120. package/skills/learn/SKILL.md +359 -192
  121. package/skills/myrmidon-swarm/SKILL.md +126 -86
  122. package/skills/plan-issue/SKILL.md +122 -81
  123. package/skills/pr-review/SKILL.md +184 -116
  124. package/skills/pr-review/references/criteria.md +61 -37
  125. package/skills/pr-review/references/delivery.md +277 -101
  126. package/skills/pr-review/references/evidence.md +346 -149
  127. package/skills/pr-review/references/prevalidated.md +93 -61
  128. package/skills/pr-review/scripts/collect_evidence.py +312 -162
  129. package/skills/pr-review/scripts/deliver_go.py +701 -0
  130. package/skills/pr-review/scripts/diff_context.py +34 -15
  131. package/skills/pr-review/scripts/materialize_snapshot.py +141 -130
  132. package/skills/pr-review/scripts/pr_identity.py +27 -15
  133. package/skills/pr-review/scripts/resolve_pr.py +77 -41
  134. package/skills/realign/SKILL.md +516 -0
  135. package/skills/realign/references/aislop-integration.md +215 -0
  136. package/skills/realign/references/architecture-and-structure.md +271 -0
  137. package/skills/realign/references/control-flow-and-errors.md +344 -0
  138. package/skills/realign/references/tests-dependencies-and-security.md +261 -0
  139. package/skills/realign/scripts/resolve_assessment.py +1525 -0
  140. package/skills/repo-review/SKILL.md +202 -131
  141. package/skills/simplify/SKILL.md +174 -0
  142. package/skills/systematic-debugging/SKILL.md +212 -192
  143. package/skills/systematic-debugging/scripts/repository_evidence.py +26 -8
  144. package/skills/test-driven-development/SKILL.md +126 -96
  145. package/skills/tidy/SKILL.md +104 -59
  146. package/skills/tidy/scripts/run_tidy.py +54 -6
@@ -1,167 +1,203 @@
1
1
  ---
2
2
  name: brainstorm
3
3
  license: BSD-3-Clause
4
- description: Use before complex creative work to explore intent and requirements. Requires the Mnemosyne knowledge backend through advise and fails closed when it cannot be prepared.
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
- # Brainstorming Ideas Into Designs
9
+ # Develop designs from ideas
10
10
 
11
- Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
11
+ Develop a complete design and specification through a dialog with the user.
12
12
 
13
- Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and proceed with the requested implementation unless a requirement remains unresolved.
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
- **DESIGN CHECKPOINT:** Present a scaled design before complex implementation. It is a shared understanding checkpoint, not a permission gate; pause only for unresolved requirements or a filesystem-destructive action.
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](../../docs/principles/README.md) as the
20
- definition source. Apply these principles to this workflow:
21
-
22
- - [P001 — KISS — Keep It Simple, Stupid](../../docs/principles/README.md#p001): scale the design to
23
- the demonstrated problem and choose the least complex complete approach.
24
- - [P002 — YAGNI — You Ain't Gonna Need It](../../docs/principles/README.md#p002): exclude speculative
25
- capabilities, extension points, and infrastructure from the design.
26
- - [P007 Subtraction Over Addition](../../docs/principles/README.md#p007): test whether removal,
27
- consolidation, or reuse solves the need before proposing a new moving part.
28
- - [P008 Understand Before Subtracting](../../docs/principles/README.md#p008): inspect purpose,
29
- consumers, and history before recommending deletion.
30
- - [P012Evidence Before Modification](../../docs/principles/README.md#p012): ground alternatives in
31
- repository code, contracts, tests, history, and guidance before selecting a design.
32
- - [P015Architecture Conformance](../../docs/principles/README.md#p015): follow established
33
- boundaries and dependency direction unless the requirement deliberately changes them.
34
- - [P071Consistency Over Personal Preference](../../docs/principles/README.md#p071): prefer repository
35
- conventions over stylistic preference when they satisfy the requirement.
36
- - [P074Prefer Existing Mechanisms](../../docs/principles/README.md#p074): reuse a suitable existing
37
- mechanism before inventing another one.
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
+ - [P008Understand Before Subtracting](../_support/docs/principles/README.md#p008): Before you recommend
38
+ deletion, examine the purpose, consumers, and history of the applicable component.
39
+ - [P012Evidence 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
+ - [P015Architecture Conformance](../_support/docs/principles/README.md#p015): If the requirement does
42
+ not change the architecture, obey the established boundaries and dependency direction.
43
+ - [P071Consistency 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
- Every feature goes through this process. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences), and should make assumptions and constraints visible before implementation.
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
- - Skipping `advise` retrieval before design proposes what already exists or was already debugged.
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`** with the feature description to check the required knowledge backend.
50
- 2. **Explore project context** — check files, docs, recent commits
51
- 3. **Ask clarifying questions** one at a time, understand purpose/constraints/success criteria
52
- 4. **Propose 2-3 approaches** with trade-offs and your recommendation
53
- 5. **Present design** — in sections scaled to their complexity; ask only to resolve material ambiguity
54
- 6. **Persist when needed** write `docs/specs/YYYY-MM-DD-<topic>-design.md` only when complexity,
55
- project policy, or a current downstream consumer requires a durable specification
56
- 7. **Design self-review** scan for placeholders, contradictions, ambiguity, and scope issues
57
- 8. **User confirms the design** request file review only when a specification was persisted
58
- 9. **Transition to implementation** invoke `myrmidon-swarm` for complex implementation. If an
59
- installed planning skill is available, it may track the approved design; otherwise write a short
60
- numbered implementation plan in the current conversation and proceed sequentially.
61
-
62
- ## The Process
63
-
64
- **Understanding the idea:**
65
-
66
- - Check out the current project state first (files, docs, `git log --oneline -10`)
67
- - Before asking detailed questions, assess scope: if the request describes multiple independent subsystems, flag this immediately. Help the user decompose into sub-projects first.
68
- - For appropriately-scoped projects, ask questions one at a time
69
- - Prefer multiple choice questions when possible
70
- - Only one question per message
71
- - Focus on: purpose, constraints, success criteria
72
-
73
- **Exploring approaches:**
74
-
75
- - Propose 2-3 different approaches with trade-offs
76
- - Lead with your recommended option and explain why
77
- - Reference existing patterns in the target codebase
78
-
79
- **Presenting the design:**
80
-
81
- - Present in sections, ask after each whether it looks right
82
- - Scale each section to its complexity
83
- - Cover: architecture, components, data flow, error handling, testing strategy
84
- - Define component responsibilities and boundaries using
85
- [P004 SOLID](../../docs/principles/README.md#p004),
86
- [P005 — Modularity](../../docs/principles/README.md#p005),
87
- [P016 Separation of Concerns](../../docs/principles/README.md#p016),
88
- [P017 High Cohesion, Low Coupling](../../docs/principles/README.md#p017), and
89
- [P018 Information Hiding](../../docs/principles/README.md#p018).
90
- - Make interfaces predictable by documenting observable inputs, outputs, errors, and invariants with
91
- [P006 — POLA — Principle of Least Astonishment](../../docs/principles/README.md#p006),
92
- and [P019 Explicit Contracts](../../docs/principles/README.md#p019).
93
- - Identify critical architecture rules that need automated enforcement under
94
- [P020 Executable Architecture](../../docs/principles/README.md#p020), and stage the design as
95
- reversible increments with explicit migration or rollback boundaries under
96
- [P021 Evolutionary and Reversible Design](../../docs/principles/README.md#p021).
97
- - Separate decisions from machinery and identify authoritative state and cleanup through
98
- [P077 Separate Policy from Mechanism](../../docs/principles/README.md#p077),
99
- [P078 Single Source of Truth](../../docs/principles/README.md#p078), and
100
- [P079Explicit Ownership and Lifetimes](../../docs/principles/README.md#p079).
101
- - Challenge additions with [P007](../../docs/principles/README.md#p007) and
102
- [P008](../../docs/principles/README.md#p008); remove verified dead code and obsolete scaffolding
103
- under [P088](../../docs/principles/README.md#p088) and
104
- [P089](../../docs/principles/README.md#p089), preferring
105
- [P090Prefer Negative Code](../../docs/principles/README.md#p090) only among equally correct
106
- designs.
107
- - Bound the proposal to the stated goal with
108
- [P010Scope Fidelity](../../docs/principles/README.md#p010), then select the smallest complete
109
- evidence-backed change with [P011 Minimal Coherent Change](../../docs/principles/README.md#p011)
110
- and [P012Evidence Before Modification](../../docs/principles/README.md#p012).
111
- - Prefer a reusable mechanism under
112
- [P009General Mechanisms Over Special Cases](../../docs/principles/README.md#p009) only when
113
- current repeated cases demonstrate it; use
114
- [P013AHA Avoid Hasty Abstractions](../../docs/principles/README.md#p013) to defer an unstable
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
+ - For each approach that adds code or structure, name one credible subtractive or reuse
103
+ alternative first.
104
+ - If no subtractive or reuse alternative can meet the requirement, say why with evidence.
105
+
106
+ ### Present the design
107
+
108
+ - Present the design in sections. Ask after each section if it is correct.
109
+ - Give each section sufficient detail for its complexity.
110
+ - Include architecture, components, data flow, error handling, and the test strategy.
111
+ - Use these principles to define component responsibilities and boundaries:
112
+ [P004SOLID](../_support/docs/principles/README.md#p004),
113
+ [P005 Modularity](../_support/docs/principles/README.md#p005),
114
+ [P016 — Separation of Concerns](../_support/docs/principles/README.md#p016),
115
+ [P017 — High Cohesion, Low Coupling](../_support/docs/principles/README.md#p017), and
116
+ [P018 — Information Hiding](../_support/docs/principles/README.md#p018).
117
+ - Use [P006POLA Principle of Least Astonishment](../_support/docs/principles/README.md#p006) and
118
+ [P019 — Explicit Contracts](../_support/docs/principles/README.md#p019) to make interfaces predictable.
119
+ Document observable inputs, outputs, errors, and invariants.
120
+ - Use [P020Executable Architecture](../_support/docs/principles/README.md#p020) to identify critical
121
+ architecture rules that need automated enforcement. Use
122
+ [P021Evolutionary and Reversible Design](../_support/docs/principles/README.md#p021) to divide the
123
+ design into reversible increments. Specify the migration and rollback boundaries.
124
+ - Use [P077Separate Policy from Mechanism](../_support/docs/principles/README.md#p077) to separate
125
+ decisions from machinery. Use
126
+ [P078Single Source of Truth](../_support/docs/principles/README.md#p078) to identify the authoritative
127
+ state. Use [P079 — Explicit Ownership and Lifetimes](../_support/docs/principles/README.md#p079) to
128
+ identify ownership and cleanup.
129
+ - Use [P007](../_support/docs/principles/README.md#p007) and
130
+ [P008](../_support/docs/principles/README.md#p008) to question additions. Use
131
+ [P088](../_support/docs/principles/README.md#p088) and
132
+ [P089](../_support/docs/principles/README.md#p089) to remove verified dead code and obsolete scaffolding.
133
+ If designs are equally correct, give preference to
134
+ [P090 — Prefer Negative Code](../_support/docs/principles/README.md#p090).
135
+ - Use [P010 — Scope Fidelity](../_support/docs/principles/README.md#p010) to keep the proposal in the stated
136
+ goal. Then use [P011 — Minimal Coherent Change](../_support/docs/principles/README.md#p011) and
137
+ [P012 — Evidence Before Modification](../_support/docs/principles/README.md#p012) to select the smallest
138
+ complete change that the evidence supports.
139
+ - Use [P009 — General Mechanisms Over Special Cases](../_support/docs/principles/README.md#p009) only if
140
+ current repeated cases show the need for a reusable mechanism. Use
141
+ [P013 — AHA — Avoid Hasty Abstractions](../_support/docs/principles/README.md#p013) to delay an unstable
115
142
  abstraction.
116
- - Enumerate behavior outside the requested change and preserve it under
117
- [P014 — Preserve Unrequested Behavior](../../docs/principles/README.md#p014).
143
+ - Identify behavior that is outside the requested change. Preserve it under
144
+ [P014 — Preserve Unrequested Behavior](../_support/docs/principles/README.md#p014).
118
145
 
119
- **Working in existing codebases:**
146
+ ### Work in existing codebases
120
147
 
121
- - Follow existing patterns in the target repository
122
- - Invoke the `advise` skill first to check for existing implementations
123
- - Don't propose unrelated refactoring stay focused on the current goal
148
+ - Follow existing patterns in the target repository.
149
+ - Invoke `advise` first to check for existing implementations.
150
+ - Do not propose unrelated refactoring. Keep the work in the current goal.
124
151
 
125
- ## After the Design
152
+ ## After the design
126
153
 
127
- **Persist a spec only when required:**
154
+ ### Save a specification only when necessary
128
155
 
129
- For small changes, keep the approved design in the conversation and proceed. When complexity,
130
- project policy, or a current downstream consumer requires a durable specification, save it to
131
- `docs/specs/YYYY-MM-DD-<topic>-design.md` and commit it as
156
+ For a small change, keep the design in the conversation. Then, continue with the requested
157
+ implementation. If complexity, project policy, or a current downstream consumer requires a durable
158
+ specification, save it to
159
+ `docs/specs/YYYY-MM-DD-<topic>-design.md`. Use this commit message:
132
160
  `docs(specs): add <topic> design document`.
133
161
 
134
- Before writing or committing a specification, read the target repository's mutation, signing, DCO,
135
- and review policy. A specification that is in scope may be written and committed without a separate
136
- approval prompt; retain it in the conversation when a durable artifact is not needed.
162
+ Before you write or commit a specification, read the target repository policies for mutation,
163
+ signing, the Developer Certificate of Origin (DCO), and review. If the specification is in scope,
164
+ you can write it without a separate approval prompt. After you write an in-scope specification, you
165
+ can commit it without a separate approval prompt. If a durable artifact is not necessary, keep the
166
+ specification in the conversation.
167
+
168
+ ### Review the specification
169
+
170
+ 1. **Find placeholders.** Search for `TBD`, `TODO`, and incomplete sections.
171
+ 2. **Correct placeholders.** Correct each item that the search finds.
172
+ 3. **Check consistency.** Correct each conflict between sections.
173
+ 4. **Check the scope.** Make sure that one plan can contain the work.
174
+ 5. **Select one meaning.** If a requirement has two possible meanings, select one meaning.
175
+ 6. **State the meaning.** State the selected meaning clearly.
137
176
 
138
- **Spec Self-Review:**
177
+ ### Report the specification
139
178
 
140
- 1. **Placeholder scan:** Any "TBD", "TODO", incomplete sections? Fix them.
141
- 2. **Internal consistency:** Do any sections contradict each other?
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.
179
+ After you review a saved specification, report its location. Continue with the requested
180
+ implementation unless the user requests changes. Use this message:
144
181
 
145
- **User Review:**
146
- After self-review of a persisted specification, report its location and proceed with the requested
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."
182
+ > I wrote and committed the specification at `docs/specs/<filename>`. Review it and tell me if you
183
+ > want changes.
149
184
 
150
- **Implementation:**
185
+ ### Implement the design
151
186
 
152
- - Use an installed planning skill for task tracking, or write the numbered plan inline when none is
153
- installed.
154
- - Invoke the `myrmidon-swarm` skill for complex multi-agent work.
187
+ - If a planning skill is installed, use it to track the task. Otherwise, write the numbered plan in
188
+ the conversation.
189
+ - For complex multi-agent work, invoke `myrmidon-swarm`.
155
190
 
156
- ## Working rules
191
+ ## Rules
157
192
 
158
- - **One question at a time** don't overwhelm with multiple questions
159
- - **Apply [P002 — YAGNI — You Ain't Gonna Need It](../../docs/principles/README.md#p002)** — remove
160
- unnecessary features from
161
- all designs
162
- - **Explore alternatives** always propose 2-3 approaches
163
- - **Incremental validation** — present design sections and resolve material ambiguity before moving on
164
- - **Invoke `advise` first** don't propose what's already been built or debugged
193
+ - **Ask one question at a time.** Do not put multiple questions in one message.
194
+ - **Apply [P002 — YAGNI — You Ain't Gonna Need It](../_support/docs/principles/README.md#p002).** Remove
195
+ unnecessary features from all designs.
196
+ - **Compare alternatives.** Always propose two or three approaches.
197
+ - **Validate in increments.** Present the design in sections. Resolve material ambiguity before you
198
+ continue.
199
+ - **Invoke `advise` first.** Do not duplicate an existing solution. Do not repeat a problem that prior
200
+ guidance already resolved.
165
201
 
166
202
  ---
167
203
 
@@ -1,104 +1,124 @@
1
1
  ---
2
2
  name: change-review
3
3
  license: BSD-3-Clause
4
- description: Review only the working-tree, staged, or explicit-range changes for architecture alignment, behavior, language practices, and evidence. Use before committing or opening a PR; it never edits source or posts forge comments. An ambiguous, unresolvable, or out-of-scope change set blocks the review with a reported reason instead of being silently widened.
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
- Why: bind the exact local change before review so findings apply to the bytes
12
- that will be committed.
11
+ Purpose: Bind the exact local change to the review. Findings must apply only to the selected
12
+ content.
13
13
 
14
- Use the shared [review contract](../../docs/review/common.md),
15
- [language routing](../../docs/review/language-routing.md), and
16
- [behavior-first testing](../../docs/review/behavior-first-testing.md).
14
+ Apply the [ASD-STE100 technical-English policy](../TECHNICAL_ENGLISH.md) to this skill and to all
15
+ prose that it produces.
16
+
17
+ Use the shared [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
- Apply the canonical [engineering-principles catalog](../../docs/principles/README.md) through these
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](../../docs/principles/README.md#p010) and
24
- [P066 Preserve Existing Work](../../docs/principles/README.md#p066) bind the review to the selected
25
- bytes without substituting another scope or disturbing unrelated work.
26
- - [P012 Evidence Before Modification](../../docs/principles/README.md#p012),
27
- [P063 Requirement-to-Code Traceability](../../docs/principles/README.md#p063), and
28
- [P072 Technical Evidence Over Preference](../../docs/principles/README.md#p072) require each
29
- finding to connect inspected evidence to a requirement, contract, or demonstrated risk rather than
30
- reviewer taste.
31
- - [P014 Preserve Unrequested Behavior](../../docs/principles/README.md#p014) and
32
- [P022 Test Behavior, Not Implementation](../../docs/principles/README.md#p022) make observable
33
- behavior the review target, while
34
- [P065 Verify Before Claiming Completion](../../docs/principles/README.md#p065) keeps validation and
35
- coverage claims bounded by evidence actually obtained.
36
-
37
- This skill is read-only. It never edits source, stages files, creates Git
38
- state, posts forge content, opens issues, or writes review notes into source.
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
- Choose exactly one scope:
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
- - `--worktree` (default): tracked differences from `HEAD` and non-ignored
45
- untracked files;
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
- Resolve the installed [`scripts/resolve_scope.py`](scripts/resolve_scope.py)
50
- from this skill directory before inspection. Read every eligible object in its
51
- manifest and follow the [scope-resolution safety contract](references/scope-resolution.md).
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
- For a range, report immutable base and head commits. For worktree or staged
56
- scope, report `HEAD`, selected paths, and the returned content-bound digest;
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 that boundary
62
- in the result. If resolution cannot safely cover the selected scope, report the
63
- coverage gap and narrow the paths or choose a safer scope; never sample it.
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 the shared review flow: establish architecture first, classify only
68
- applicable surfaces and language profiles, inspect changed behavior and tests,
69
- then de-duplicate severity-ranked evidence. Record each skipped check as N/A
70
- with its reason.
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
- Activate the shared profiles only when the selected change contains the relevant surface: use
73
- [P001 KISS Keep It Simple, Stupid](../../docs/principles/README.md#p001) for added complexity,
74
- [P015 Architecture Conformance](../../docs/principles/README.md#p015) for boundary or dependency
75
- changes, [P022 Test Behavior, Not Implementation](../../docs/principles/README.md#p022) for testable
76
- behavior, [P029 Generalize Error Policy; Preserve Specific Cause](../../docs/principles/README.md#p029)
77
- for error-path changes, and [P048 Secure by Design](../../docs/principles/README.md#p048) for security
78
- or trust-boundary changes.
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, ADR, or
81
- [design record](../../docs/review/design-docs.md). Missing architecture evidence
82
- is a blocker; do not invent it.
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
- Return in the console or host-native read-only annotation surface:
105
+ Include these items in the console or host-native read-only annotation surface:
85
106
 
86
- 1. scope identity, base/head or manifest digest, and files read;
87
- 2. architecture decision first, then applicable and N/A checks;
88
- 3. severity-ranked findings with exact `path:line`, impact, evidence, and a
89
- proportionate remediation direction;
90
- 4. behavior-first testing and validation coverage; and
91
- 5. residual risks and unverified assumptions.
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
- Use native source annotations only for changed locations when the host supports
94
- them. Otherwise use `path:line` in the console; never simulate annotations by
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
- - Reviewing uncommitted work as if it were committed, or inventing a head commit to bind a range.
100
- - Widening scope past the requested range, paths, or selected diff instead of reporting the
101
- boundary.
102
- - Editing source, staging files, posting forge comments, or simulating native annotations to deliver
103
- findings.
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.