arcane-cli 0.39.0 → 1.0.0

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 (176) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/.agents/skills/spell-address-review/SKILL.md +1 -1
  3. package/dist/assets/.agents/skills/spell-adopt-docs/SKILL.md +1 -1
  4. package/dist/assets/.agents/skills/spell-arcane-version/SKILL.md +1 -1
  5. package/dist/assets/.agents/skills/spell-architect/SKILL.md +1 -1
  6. package/dist/assets/.agents/skills/spell-brainstorm/SKILL.md +1 -1
  7. package/dist/assets/.agents/skills/spell-bug/SKILL.md +1 -1
  8. package/dist/assets/.agents/skills/spell-bump/SKILL.md +1 -1
  9. package/dist/assets/.agents/skills/spell-check-drift/SKILL.md +1 -1
  10. package/dist/assets/.agents/skills/spell-close-session/SKILL.md +1 -1
  11. package/dist/assets/.agents/skills/spell-commit-work/SKILL.md +1 -1
  12. package/dist/assets/.agents/skills/spell-compliance/SKILL.md +1 -1
  13. package/dist/assets/.agents/skills/spell-create-pull-request/SKILL.md +1 -1
  14. package/dist/assets/.agents/skills/spell-document/SKILL.md +1 -1
  15. package/dist/assets/.agents/skills/spell-dotnet-expert/SKILL.md +1 -1
  16. package/dist/assets/.agents/skills/spell-eas-store-deploy/SKILL.md +1 -1
  17. package/dist/assets/.agents/skills/spell-enchant/SKILL.md +1 -1
  18. package/dist/assets/.agents/skills/spell-explain-concept/SKILL.md +1 -1
  19. package/dist/assets/.agents/skills/spell-feedback/SKILL.md +1 -1
  20. package/dist/assets/.agents/skills/spell-full-cycle/SKILL.md +1 -1
  21. package/dist/assets/.agents/skills/spell-generate-bot-icons/SKILL.md +1 -1
  22. package/dist/assets/.agents/skills/spell-implement/SKILL.md +1 -1
  23. package/dist/assets/.agents/skills/spell-make-discoverable/SKILL.md +1 -1
  24. package/dist/assets/.agents/skills/spell-manifest/SKILL.md +1 -1
  25. package/dist/assets/.agents/skills/spell-open-session/SKILL.md +1 -1
  26. package/dist/assets/.agents/skills/spell-plan/SKILL.md +1 -1
  27. package/dist/assets/.agents/skills/spell-present-arcane/SKILL.md +1 -1
  28. package/dist/assets/.agents/skills/spell-product-review/SKILL.md +1 -1
  29. package/dist/assets/.agents/skills/spell-review/SKILL.md +1 -1
  30. package/dist/assets/.agents/skills/spell-review-batch/SKILL.md +1 -1
  31. package/dist/assets/.agents/skills/spell-save-idea/SKILL.md +1 -1
  32. package/dist/assets/.agents/skills/spell-scope/SKILL.md +1 -1
  33. package/dist/assets/.agents/skills/spell-scry/SKILL.md +1 -1
  34. package/dist/assets/.agents/skills/spell-security-review/SKILL.md +1 -1
  35. package/dist/assets/.agents/skills/spell-ship/SKILL.md +1 -1
  36. package/dist/assets/.agents/skills/spell-status/SKILL.md +1 -1
  37. package/dist/assets/.agents/skills/spell-suggest-feature/SKILL.md +1 -1
  38. package/dist/assets/.agents/skills/spell-summon-venture/SKILL.md +1 -1
  39. package/dist/assets/.agents/skills/spell-sync-pull-request/SKILL.md +1 -1
  40. package/dist/assets/.agents/skills/spell-test/SKILL.md +1 -1
  41. package/dist/assets/.agents/skills/spell-todo/SKILL.md +1 -1
  42. package/dist/assets/.agents/skills/spell-verification-ledger/SKILL.md +1 -1
  43. package/dist/assets/.arcane/governance/development-methodology.md +6 -6
  44. package/dist/assets/.arcane/governance/git-conventions.md +2 -2
  45. package/dist/assets/.arcane/governance/portable-bootstrap.md +1 -0
  46. package/dist/assets/.arcane/governance/product-excellence-standards.md +1 -1
  47. package/dist/assets/.arcane/governance/spell-authoring-standards.md +9 -1
  48. package/dist/assets/.arcane/governance/universal-agent-rules.md +5 -3
  49. package/dist/assets/.arcane/spells/spell-address-review.md +115 -0
  50. package/dist/assets/.arcane/spells/spell-adopt-docs.md +158 -0
  51. package/dist/assets/.arcane/spells/spell-arcane-version.md +87 -0
  52. package/dist/assets/.arcane/spells/spell-architect.md +117 -0
  53. package/dist/assets/.arcane/spells/spell-brainstorm.md +125 -0
  54. package/dist/assets/.arcane/spells/spell-bug.md +123 -0
  55. package/dist/assets/.arcane/spells/spell-bump.md +82 -0
  56. package/dist/assets/.arcane/spells/spell-check-drift.md +118 -0
  57. package/dist/assets/.arcane/spells/spell-close-session.md +266 -0
  58. package/dist/assets/.arcane/spells/spell-commit-work.md +279 -0
  59. package/dist/assets/.arcane/spells/spell-compliance.md +130 -0
  60. package/dist/assets/.arcane/spells/spell-create-pull-request.md +224 -0
  61. package/dist/assets/.arcane/spells/spell-document.md +84 -0
  62. package/dist/assets/.arcane/spells/spell-dotnet-expert.md +118 -0
  63. package/dist/assets/.arcane/spells/spell-eas-store-deploy.md +254 -0
  64. package/dist/assets/.arcane/spells/spell-enchant.md +386 -0
  65. package/dist/assets/.arcane/spells/spell-explain-concept.md +70 -0
  66. package/dist/assets/.arcane/spells/spell-feedback.md +138 -0
  67. package/dist/assets/.arcane/spells/spell-full-cycle.md +253 -0
  68. package/dist/assets/.arcane/spells/spell-generate-bot-icons.md +85 -0
  69. package/dist/assets/.arcane/spells/spell-implement.md +109 -0
  70. package/dist/assets/.arcane/spells/spell-make-discoverable.md +293 -0
  71. package/dist/assets/.arcane/spells/spell-manifest.md +148 -0
  72. package/dist/assets/.arcane/spells/spell-open-session.md +154 -0
  73. package/dist/assets/.arcane/spells/spell-plan.md +160 -0
  74. package/dist/assets/.arcane/spells/spell-present-arcane.md +189 -0
  75. package/dist/assets/.arcane/spells/spell-product-review.md +98 -0
  76. package/dist/assets/.arcane/spells/spell-review-batch.md +113 -0
  77. package/dist/assets/.arcane/spells/spell-review.md +142 -0
  78. package/dist/assets/.arcane/spells/spell-save-idea.md +117 -0
  79. package/dist/assets/.arcane/spells/spell-scope.md +266 -0
  80. package/dist/assets/.arcane/spells/spell-scry.md +124 -0
  81. package/dist/assets/.arcane/spells/spell-security-review.md +152 -0
  82. package/dist/assets/.arcane/spells/spell-ship.md +106 -0
  83. package/dist/assets/.arcane/spells/spell-status.md +86 -0
  84. package/dist/assets/.arcane/spells/spell-suggest-feature.md +122 -0
  85. package/dist/assets/.arcane/spells/spell-summon-venture.md +110 -0
  86. package/dist/assets/.arcane/spells/spell-sync-pull-request.md +161 -0
  87. package/dist/assets/.arcane/spells/spell-test.md +88 -0
  88. package/dist/assets/.arcane/spells/spell-todo.md +166 -0
  89. package/dist/assets/.arcane/spells/spell-verification-ledger.md +102 -0
  90. package/dist/assets/.claude/commands/spell-address-review.md +2 -2
  91. package/dist/assets/.claude/commands/spell-adopt-docs.md +2 -2
  92. package/dist/assets/.claude/commands/spell-arcane-version.md +2 -2
  93. package/dist/assets/.claude/commands/spell-architect.md +2 -2
  94. package/dist/assets/.claude/commands/spell-brainstorm.md +2 -2
  95. package/dist/assets/.claude/commands/spell-bug.md +2 -2
  96. package/dist/assets/.claude/commands/spell-bump.md +2 -2
  97. package/dist/assets/.claude/commands/spell-check-drift.md +2 -2
  98. package/dist/assets/.claude/commands/spell-close-session.md +2 -2
  99. package/dist/assets/.claude/commands/spell-commit-work.md +2 -2
  100. package/dist/assets/.claude/commands/spell-compliance.md +2 -2
  101. package/dist/assets/.claude/commands/spell-create-pull-request.md +2 -2
  102. package/dist/assets/.claude/commands/spell-document.md +2 -2
  103. package/dist/assets/.claude/commands/spell-dotnet-expert.md +2 -2
  104. package/dist/assets/.claude/commands/spell-eas-store-deploy.md +2 -2
  105. package/dist/assets/.claude/commands/spell-enchant.md +2 -2
  106. package/dist/assets/.claude/commands/spell-explain-concept.md +2 -2
  107. package/dist/assets/.claude/commands/spell-feedback.md +2 -2
  108. package/dist/assets/.claude/commands/spell-full-cycle.md +2 -2
  109. package/dist/assets/.claude/commands/spell-generate-bot-icons.md +2 -2
  110. package/dist/assets/.claude/commands/spell-implement.md +2 -2
  111. package/dist/assets/.claude/commands/spell-make-discoverable.md +2 -2
  112. package/dist/assets/.claude/commands/spell-manifest.md +2 -2
  113. package/dist/assets/.claude/commands/spell-open-session.md +2 -2
  114. package/dist/assets/.claude/commands/spell-plan.md +2 -2
  115. package/dist/assets/.claude/commands/spell-present-arcane.md +2 -2
  116. package/dist/assets/.claude/commands/spell-product-review.md +2 -2
  117. package/dist/assets/.claude/commands/spell-review-batch.md +2 -2
  118. package/dist/assets/.claude/commands/spell-review.md +2 -2
  119. package/dist/assets/.claude/commands/spell-save-idea.md +2 -2
  120. package/dist/assets/.claude/commands/spell-scope.md +2 -2
  121. package/dist/assets/.claude/commands/spell-scry.md +2 -2
  122. package/dist/assets/.claude/commands/spell-security-review.md +2 -2
  123. package/dist/assets/.claude/commands/spell-ship.md +2 -2
  124. package/dist/assets/.claude/commands/spell-status.md +2 -2
  125. package/dist/assets/.claude/commands/spell-suggest-feature.md +2 -2
  126. package/dist/assets/.claude/commands/spell-summon-venture.md +2 -2
  127. package/dist/assets/.claude/commands/spell-sync-pull-request.md +2 -2
  128. package/dist/assets/.claude/commands/spell-test.md +2 -2
  129. package/dist/assets/.claude/commands/spell-todo.md +2 -2
  130. package/dist/assets/.claude/commands/spell-verification-ledger.md +2 -2
  131. package/dist/assets/.github/instructions/agent-output.instructions.md +14 -13
  132. package/dist/assets/.github/prompts/spell-address-review.prompt.md +1 -107
  133. package/dist/assets/.github/prompts/spell-adopt-docs.prompt.md +1 -150
  134. package/dist/assets/.github/prompts/spell-arcane-version.prompt.md +1 -79
  135. package/dist/assets/.github/prompts/spell-architect.prompt.md +1 -109
  136. package/dist/assets/.github/prompts/spell-brainstorm.prompt.md +1 -117
  137. package/dist/assets/.github/prompts/spell-bug.prompt.md +1 -115
  138. package/dist/assets/.github/prompts/spell-bump.prompt.md +1 -74
  139. package/dist/assets/.github/prompts/spell-check-drift.prompt.md +1 -110
  140. package/dist/assets/.github/prompts/spell-close-session.prompt.md +1 -258
  141. package/dist/assets/.github/prompts/spell-commit-work.prompt.md +1 -270
  142. package/dist/assets/.github/prompts/spell-compliance.prompt.md +1 -122
  143. package/dist/assets/.github/prompts/spell-create-pull-request.prompt.md +1 -215
  144. package/dist/assets/.github/prompts/spell-document.prompt.md +1 -76
  145. package/dist/assets/.github/prompts/spell-dotnet-expert.prompt.md +1 -110
  146. package/dist/assets/.github/prompts/spell-eas-store-deploy.prompt.md +1 -246
  147. package/dist/assets/.github/prompts/spell-enchant.prompt.md +1 -378
  148. package/dist/assets/.github/prompts/spell-explain-concept.prompt.md +1 -62
  149. package/dist/assets/.github/prompts/spell-feedback.prompt.md +1 -130
  150. package/dist/assets/.github/prompts/spell-full-cycle.prompt.md +1 -245
  151. package/dist/assets/.github/prompts/spell-generate-bot-icons.prompt.md +1 -77
  152. package/dist/assets/.github/prompts/spell-implement.prompt.md +1 -101
  153. package/dist/assets/.github/prompts/spell-make-discoverable.prompt.md +1 -285
  154. package/dist/assets/.github/prompts/spell-manifest.prompt.md +1 -140
  155. package/dist/assets/.github/prompts/spell-open-session.prompt.md +1 -146
  156. package/dist/assets/.github/prompts/spell-plan.prompt.md +1 -152
  157. package/dist/assets/.github/prompts/spell-present-arcane.prompt.md +1 -181
  158. package/dist/assets/.github/prompts/spell-product-review.prompt.md +1 -90
  159. package/dist/assets/.github/prompts/spell-review-batch.prompt.md +1 -105
  160. package/dist/assets/.github/prompts/spell-review.prompt.md +1 -134
  161. package/dist/assets/.github/prompts/spell-save-idea.prompt.md +1 -109
  162. package/dist/assets/.github/prompts/spell-scope.prompt.md +1 -258
  163. package/dist/assets/.github/prompts/spell-scry.prompt.md +1 -116
  164. package/dist/assets/.github/prompts/spell-security-review.prompt.md +1 -144
  165. package/dist/assets/.github/prompts/spell-ship.prompt.md +1 -98
  166. package/dist/assets/.github/prompts/spell-status.prompt.md +1 -78
  167. package/dist/assets/.github/prompts/spell-suggest-feature.prompt.md +1 -114
  168. package/dist/assets/.github/prompts/spell-summon-venture.prompt.md +1 -102
  169. package/dist/assets/.github/prompts/spell-sync-pull-request.prompt.md +1 -152
  170. package/dist/assets/.github/prompts/spell-test.prompt.md +1 -80
  171. package/dist/assets/.github/prompts/spell-todo.prompt.md +1 -158
  172. package/dist/assets/.github/prompts/spell-verification-ledger.prompt.md +1 -94
  173. package/dist/index.js +143 -39
  174. package/dist/index.js.map +1 -1
  175. package/package.json +4 -4
  176. /package/dist/assets/{.github/prompts → .arcane/spells}/_fragments/tracking-mode-declaration.md +0 -0
package/README.md CHANGED
@@ -109,7 +109,7 @@ Plus session and operational spells — `/spell-open-session`, `/spell-close-ses
109
109
 
110
110
  ## What's in the box
111
111
 
112
- Arcane isn't a prompt snippet — it's a full framework. Everything installs into your repo as plain, reviewable markdown.
112
+ Arcane isn't a prompt snippet — it's a full framework. Everything installs into your repo as plain, reviewable markdown. Each spell is authored once, in `.arcane/spells/`, and reaches Copilot, Claude Code and Codex through thin generated shims — one source of truth, no per-client copies to drift apart.
113
113
 
114
114
  | Layer | What you get |
115
115
  | --- | --- |
@@ -3,4 +3,4 @@ name: spell-address-review
3
3
  description: Use PROACTIVELY whenever responding to PR review comments — fetch threads, triage, fix or reply, resolve.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-address-review` spell. Read `.github/prompts/spell-address-review.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-address-review` spell. Read `.arcane/spells/spell-address-review.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-adopt-docs
3
3
  description: Use PROACTIVELY when bringing an existing, ungoverned doc tree under Arcane governance.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-adopt-docs` spell. Read `.github/prompts/spell-adopt-docs.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-adopt-docs` spell. Read `.arcane/spells/spell-adopt-docs.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-arcane-version
3
3
  description: Use PROACTIVELY when asked about the installed Arcane version, profile, or whether an update is available.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-arcane-version` spell. Read `.github/prompts/spell-arcane-version.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-arcane-version` spell. Read `.arcane/spells/spell-arcane-version.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-architect
3
3
  description: Use PROACTIVELY once a PRD exists and needs architecture decisions and a story breakdown before implementation starts.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-architect` spell. Read `.github/prompts/spell-architect.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-architect` spell. Read `.arcane/spells/spell-architect.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-brainstorm
3
3
  description: Use PROACTIVELY when exploring multiple solutions to a problem before committing to one.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-brainstorm` spell. Read `.github/prompts/spell-brainstorm.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-brainstorm` spell. Read `.arcane/spells/spell-brainstorm.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-bug
3
3
  description: Use PROACTIVELY whenever diagnosing and fixing a bug, even if the user just describes broken behavior.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-bug` spell. Read `.github/prompts/spell-bug.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-bug` spell. Read `.arcane/spells/spell-bug.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-bump
3
3
  description: Use PROACTIVELY before shipping any change that touches distributable content, to determine and apply the correct version bump.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-bump` spell. Read `.github/prompts/spell-bump.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-bump` spell. Read `.arcane/spells/spell-bump.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-check-drift
3
3
  description: Use PROACTIVELY to detect contradictions and stale statements across core docs, periodically or after major changes.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-check-drift` spell. Read `.github/prompts/spell-check-drift.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-check-drift` spell. Read `.arcane/spells/spell-check-drift.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-close-session
3
3
  description: Use PROACTIVELY at the end of any significant work session, even if the user just says 'wrap up' or 'done for now'.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-close-session` spell. Read `.github/prompts/spell-close-session.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-close-session` spell. Read `.arcane/spells/spell-close-session.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-commit-work
3
3
  description: Use PROACTIVELY whenever committing work during a session, even if the user just says 'commit this'.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-commit-work` spell. Read `.github/prompts/spell-commit-work.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-commit-work` spell. Read `.arcane/spells/spell-commit-work.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-compliance
3
3
  description: Use PROACTIVELY before a launch, an enterprise sales cycle, or a security questionnaire that raises GDPR/CCPA/SOC 2/HIPAA questions.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-compliance` spell. Read `.github/prompts/spell-compliance.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-compliance` spell. Read `.arcane/spells/spell-compliance.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-create-pull-request
3
3
  description: Use PROACTIVELY whenever opening a pull request for the current branch, even if the user just says 'open a PR'.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-create-pull-request` spell. Read `.github/prompts/spell-create-pull-request.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-create-pull-request` spell. Read `.arcane/spells/spell-create-pull-request.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-document
3
3
  description: Use PROACTIVELY when conversation content (an analysis, a decision, an investigation) should become a permanent reference doc.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-document` spell. Read `.github/prompts/spell-document.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-document` spell. Read `.arcane/spells/spell-document.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-dotnet-expert
3
3
  description: Use PROACTIVELY when working on a .NET project and best-practice guidance is needed.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-dotnet-expert` spell. Read `.github/prompts/spell-dotnet-expert.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-dotnet-expert` spell. Read `.arcane/spells/spell-dotnet-expert.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-eas-store-deploy
3
3
  description: Use PROACTIVELY when deploying an Expo app to the App Store or Google Play via EAS.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-eas-store-deploy` spell. Read `.github/prompts/spell-eas-store-deploy.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-eas-store-deploy` spell. Read `.arcane/spells/spell-eas-store-deploy.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-enchant
3
3
  description: Use PROACTIVELY when a PRD should be enhanced — UX, accessibility, security, performance — before implementation.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-enchant` spell. Read `.github/prompts/spell-enchant.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-enchant` spell. Read `.arcane/spells/spell-enchant.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-explain-concept
3
3
  description: Use PROACTIVELY when the user needs a concept, architecture, or system behavior explained before deciding or building.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-explain-concept` spell. Read `.github/prompts/spell-explain-concept.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-explain-concept` spell. Read `.arcane/spells/spell-explain-concept.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-feedback
3
3
  description: Use PROACTIVELY when the user reports friction with AI assistance or the workflow itself, not the product being built.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-feedback` spell. Read `.github/prompts/spell-feedback.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-feedback` spell. Read `.arcane/spells/spell-feedback.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-full-cycle
3
3
  description: Use PROACTIVELY for an end-to-end feature request that should chain plan, architect, implement, test, review, and ship.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-full-cycle` spell. Read `.github/prompts/spell-full-cycle.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-full-cycle` spell. Read `.arcane/spells/spell-full-cycle.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-generate-bot-icons
3
3
  description: Use PROACTIVELY when a bot/agent needs a Teams-ready avatar and icon set generated.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-generate-bot-icons` spell. Read `.github/prompts/spell-generate-bot-icons.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-generate-bot-icons` spell. Read `.arcane/spells/spell-generate-bot-icons.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-implement
3
3
  description: Use PROACTIVELY to work through stories.json autonomously once architecture and stories exist.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-implement` spell. Read `.github/prompts/spell-implement.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-implement` spell. Read `.arcane/spells/spell-implement.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-make-discoverable
3
3
  description: Use PROACTIVELY when auditing a web property's search/AI-assistant discoverability (metadata, robots, sitemap, indexing).
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-make-discoverable` spell. Read `.github/prompts/spell-make-discoverable.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-make-discoverable` spell. Read `.arcane/spells/spell-make-discoverable.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-manifest
3
3
  description: Use PROACTIVELY in a hub repo to triage idea-book/todo-book entries downstream.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-manifest` spell. Read `.github/prompts/spell-manifest.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-manifest` spell. Read `.arcane/spells/spell-manifest.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-open-session
3
3
  description: Use PROACTIVELY at the start of any new session, even if the user just says 'let's start' or asks 'what's next'.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-open-session` spell. Read `.github/prompts/spell-open-session.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-open-session` spell. Read `.arcane/spells/spell-open-session.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-plan
3
3
  description: Use PROACTIVELY when a feature description needs to become a PRD before architecture or implementation.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-plan` spell. Read `.github/prompts/spell-plan.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-plan` spell. Read `.arcane/spells/spell-plan.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-present-arcane
3
3
  description: Use PROACTIVELY when asked to present, demo, or explain Arcane itself to an audience.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-present-arcane` spell. Read `.github/prompts/spell-present-arcane.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-present-arcane` spell. Read `.arcane/spells/spell-present-arcane.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-product-review
3
3
  description: Use PROACTIVELY when evaluating a shipped feature's real-world performance and deciding next actions.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-product-review` spell. Read `.github/prompts/spell-product-review.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-product-review` spell. Read `.arcane/spells/spell-product-review.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-review
3
3
  description: Use PROACTIVELY before merging any nontrivial change, even if the user doesn't explicitly ask for review.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-review` spell. Read `.github/prompts/spell-review.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-review` spell. Read `.arcane/spells/spell-review.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-review-batch
3
3
  description: Use PROACTIVELY when multiple open PRs need an adversarial review pass and a consolidated go/no-go verdict.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-review-batch` spell. Read `.github/prompts/spell-review-batch.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-review-batch` spell. Read `.arcane/spells/spell-review-batch.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-save-idea
3
3
  description: Use PROACTIVELY to capture a fleeting idea immediately, even if the user just says 'note that' or 'don't forget'.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-save-idea` spell. Read `.github/prompts/spell-save-idea.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-save-idea` spell. Read `.arcane/spells/spell-save-idea.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-scope
3
3
  description: Use PROACTIVELY when a PRD is too large for one Spell Loop cycle and needs epic-splitting before architecture.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-scope` spell. Read `.github/prompts/spell-scope.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-scope` spell. Read `.arcane/spells/spell-scope.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-scry
3
3
  description: Use PROACTIVELY when naming anything new (a spell, a field, a product, an internal concept) before committing to it — clears a candidate name against both the outside world and this repository itself.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-scry` spell. Read `.github/prompts/spell-scry.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-scry` spell. Read `.arcane/spells/spell-scry.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-security-review
3
3
  description: Use PROACTIVELY before shipping any change that introduces new attack surface, handles sensitive data, or changes trust boundaries.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-security-review` spell. Read `.github/prompts/spell-security-review.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-security-review` spell. Read `.arcane/spells/spell-security-review.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-ship
3
3
  description: Use PROACTIVELY before any deploy, even if the user just says 'ship it'.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-ship` spell. Read `.github/prompts/spell-ship.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-ship` spell. Read `.arcane/spells/spell-ship.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-status
3
3
  description: Use PROACTIVELY when asked for a quick snapshot of session/repo state — branch, TODOs, decisions, last journal.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-status` spell. Read `.github/prompts/spell-status.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-status` spell. Read `.arcane/spells/spell-status.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-suggest-feature
3
3
  description: Use PROACTIVELY when smoke testing or usage surfaces a feature gap worth tracking.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-suggest-feature` spell. Read `.github/prompts/spell-suggest-feature.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-suggest-feature` spell. Read `.arcane/spells/spell-suggest-feature.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-summon-venture
3
3
  description: Use PROACTIVELY in a hub repo when creating a new venture from scratch.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-summon-venture` spell. Read `.github/prompts/spell-summon-venture.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-summon-venture` spell. Read `.arcane/spells/spell-summon-venture.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-sync-pull-request
3
3
  description: Use PROACTIVELY whenever an open PR has fallen behind its target branch and needs a safe rebase/sync, or when spell-create-pull-request/spell-ship stop on a conflict they route here.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-sync-pull-request` spell. Read `.github/prompts/spell-sync-pull-request.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-sync-pull-request` spell. Read `.arcane/spells/spell-sync-pull-request.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-test
3
3
  description: Use PROACTIVELY to validate a completed story or feature against coverage thresholds before marking it done.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-test` spell. Read `.github/prompts/spell-test.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-test` spell. Read `.arcane/spells/spell-test.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-todo
3
3
  description: Use PROACTIVELY whenever a raw idea needs to become one or more well-scoped TODO items, even if the user just says 'add a todo'.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-todo` spell. Read `.github/prompts/spell-todo.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-todo` spell. Read `.arcane/spells/spell-todo.md` and follow it as the complete workflow.
@@ -3,4 +3,4 @@ name: spell-verification-ledger
3
3
  description: Use PROACTIVELY when a session had real verification events worth a structured record — especially a claim that didn't survive a check.
4
4
  ---
5
5
 
6
- This skill is the Arcane `spell-verification-ledger` spell. Read `.github/prompts/spell-verification-ledger.prompt.md` and follow it as the complete workflow.
6
+ This skill is the Arcane `spell-verification-ledger` spell. Read `.arcane/spells/spell-verification-ledger.md` and follow it as the complete workflow.
@@ -196,7 +196,7 @@ Without this chain, agents make conflicting decisions across stories (e.g., one
196
196
  3. Check for missing test coverage, architecture violations, security issues
197
197
  4. Defer unrelated findings to a backlog (don't derail the current change)
198
198
 
199
- **Enforcement: explicitly advisory prose (ARC-023) — no script counts or verifies lens coverage; this text now matches `spell-review.prompt.md`'s own current Rules section (coverage of effort, not a count of findings) rather than the superseded "minimum of 3" framing an earlier version of this rule stated.**
199
+ **Enforcement: explicitly advisory prose (ARC-023) — no script counts or verifies lens coverage; this text now matches `spell-review.md`'s own current Rules section (coverage of effort, not a count of findings) rather than the superseded "minimum of 3" framing an earlier version of this rule stated.**
200
200
 
201
201
  ### Append-Only Progress
202
202
 
@@ -281,9 +281,9 @@ For features that should run end-to-end with minimal human intervention, use `sp
281
281
  spell-full-cycle = spell-plan → [spell-enchant] → spell-architect → [spell-implement → spell-test → spell-review]* → spell-ship
282
282
  ```
283
283
 
284
- The entire pipeline runs autonomously with a single human gate at PR approval. Includes optional PRD enchantment between Plan and Architect (runs automatically if any quality dimension scores Bronze, or if `--enchant` is specified). Requires three inputs: feature description, tracking configuration (`tracking_mode` and optional `external_provider`), and target repo. In ADO mode, include the ADO work item ID; in GitHub mode, include the issue number if one already exists. **Each phase has built-in quality gates that halt the pipeline on failure rather than producing garbage for downstream phases. Enforcement: structured spell gate (ARC-023) — `spell-full-cycle.prompt.md` encodes explicit per-phase `Gate:` steps (e.g., Phase 4: "If coverage is below threshold or any acceptance criterion lacks a test, loop back to Phase 3... Maximum 2 coverage-fix loops before halting"; Phase 5: "If any HIGH severity finding exists, loop back to Phase 3... Maximum 2 review-fix loops before halting") plus a human/authority gate before merge.**
284
+ The entire pipeline runs autonomously with a single human gate at PR approval. Includes optional PRD enchantment between Plan and Architect (runs automatically if any quality dimension scores Bronze, or if `--enchant` is specified). Requires three inputs: feature description, tracking configuration (`tracking_mode` and optional `external_provider`), and target repo. In ADO mode, include the ADO work item ID; in GitHub mode, include the issue number if one already exists. **Each phase has built-in quality gates that halt the pipeline on failure rather than producing garbage for downstream phases. Enforcement: structured spell gate (ARC-023) — `spell-full-cycle.md` encodes explicit per-phase `Gate:` steps (e.g., Phase 4: "If coverage is below threshold or any acceptance criterion lacks a test, loop back to Phase 3... Maximum 2 coverage-fix loops before halting"; Phase 5: "If any HIGH severity finding exists, loop back to Phase 3... Maximum 2 review-fix loops before halting") plus a human/authority gate before merge.**
285
285
 
286
- See [.github/prompts/spell-full-cycle.prompt.md](../.github/prompts/spell-full-cycle.prompt.md) for the complete prompt.
286
+ See [.arcane/spells/spell-full-cycle.md](../spells/spell-full-cycle.md) for the complete prompt.
287
287
 
288
288
  ---
289
289
 
@@ -305,9 +305,9 @@ spell-plan → [spell-enchant] → spell-scope → [spell-architect → spell-im
305
305
 
306
306
  Each epic then runs through its own Spell Loop cycle (architect → implement → test → review → ship).
307
307
 
308
- **Before starting the next epic after a major output checkpoint (execution plan, architecture + stories, full test evidence, or ship recommendation), run `spell-commit-work` to preserve progress and checkpoint branch state. Enforcement: explicitly advisory prose (ARC-023) — `spell-full-cycle.prompt.md`'s Rules section frames this as a recommendation ("recommend running `spell-commit-work` before starting the next epic"), and nothing blocks epic-start if it is skipped.**
308
+ **Before starting the next epic after a major output checkpoint (execution plan, architecture + stories, full test evidence, or ship recommendation), run `spell-commit-work` to preserve progress and checkpoint branch state. Enforcement: explicitly advisory prose (ARC-023) — `spell-full-cycle.md`'s Rules section frames this as a recommendation ("recommend running `spell-commit-work` before starting the next epic"), and nothing blocks epic-start if it is skipped.**
309
309
 
310
- See [.github/prompts/spell-scope.prompt.md](../.github/prompts/spell-scope.prompt.md) for the complete prompt.
310
+ See [.arcane/spells/spell-scope.md](../spells/spell-scope.md) for the complete prompt.
311
311
 
312
312
  ---
313
313
 
@@ -413,4 +413,4 @@ The Spell Loop is a candidate for open-source release as a productized automatio
413
413
  2. **Power-level governance** — agents have scoped autonomy per repo
414
414
  3. **Git attribution** — every commit traces back to the agent that produced it
415
415
  4. **Progressive context chain** — structured planning phases feed each successive phase with richer context
416
- 5. **Spell prompt packaging** — portable `.prompt.md` files that work across AI IDEs
416
+ 5. **Spell packaging** — one portable spell file per workflow (`.arcane/spells/*.md`), reaching Copilot, Claude Code and Codex through thin generated shims rather than per-client copies (ARC-045)
@@ -55,7 +55,7 @@ Scope indicates what part of the repo changed. Use singular, lowercase.
55
55
 
56
56
  | Scope | Area |
57
57
  | ---------------- | ------------------------------------------------- |
58
- | `prompts` | `.github/prompts/*.prompt.md` |
58
+ | `prompts` | `.arcane/spells/*.md` (canonical spells) and their generated client shims |
59
59
  | `agents` | `agents/` directory, agent config, policies |
60
60
  | `security` | `security/` directory, threat model, hardening |
61
61
  | `infrastructure` | `infrastructure/` directory, hardware, OS setup |
@@ -116,7 +116,7 @@ messages with proper type and scope.
116
116
  Implements ADR-019 spell- naming convention.
117
117
 
118
118
  Changes:
119
- - Created .github/prompts/spell-commit-work.prompt.md
119
+ - Created .arcane/spells/spell-commit-work.md
120
120
  - Created governance/git-conventions.md as reference doc
121
121
  - Updated TODO.md to mark git conventions doc complete
122
122
  ```
@@ -52,6 +52,7 @@ Paste this entire file into any AI client (Claude web, ChatGPT, etc.) to give it
52
52
  ## Where Documents Live
53
53
 
54
54
  - **Framework-managed standards:** `.arcane/governance/`. Spells reference this single installed layer; **do not create a duplicate root `governance/` tree. Enforcement: explicitly advisory prose (ARC-023) — no check scans a repo for a duplicate root-level `governance/` directory.**
55
+ - **Framework-managed spells:** `.arcane/spells/<id>.md` is each spell's one authored source (ARC-045). The files each AI client discovers — `.github/prompts/<id>.prompt.md` for Copilot, `.claude/commands/<id>.md` for Claude Code, `.agents/skills/<id>/SKILL.md` for Codex — are thin generated shims that point back at it; edit the canonical file, never a shim. **Enforcement: executable check (ARC-023) — `npm run check:self-host-parity` re-renders every shim from its canonical file and fails on any difference; `spell update` keeps a hand-edited shim untouched and names it rather than merging into it.**
55
56
  - **Project-owned orientation and continuity:** `README.md`, `project.md`, `TODO.md`, `DECISIONS.md`, `ai-context/`, and `journal/`. Arcane creates missing files once and preserves existing content.
56
57
  - **Project/domain documents:** use explicit descriptive paths such as `docs/`, `security/`, `infrastructure/`, or a configured business root. These add project context alongside framework standards.
57
58
  - **Overrides survive `arcane update`:** editing a managed `.arcane/governance/` standard no longer risks silent loss. Additive project documents were always safe; a hand-edit to a shipped standard now is too. **Enforcement: executable check (ARC-038, shipped BC-31)** — `spell update` compares each file's on-disk content against its recorded hash at install time: unchanged, it refreshes normally; edited, it fetches the exact previously-installed published version as a three-way merge base against your edit and the new vendor content, auto-merging non-overlapping changes and leaving standard conflict markers only on genuine collisions. If the prior published version can't be fetched, your edit is left untouched with a warning rather than replaced.
@@ -11,7 +11,7 @@ tags:
11
11
 
12
12
  ## Purpose
13
13
 
14
- Define what "the best version of an app" means across every dimension — UX, accessibility, performance, security, and polish. This document provides the **PRD Quality Scorecard** that [[.github/prompts/spell-enchant.prompt|spell-enchant]] evaluates against when enchanting a PRD from functional to exceptional.
14
+ Define what "the best version of an app" means across every dimension — UX, accessibility, performance, security, and polish. This document provides the **PRD Quality Scorecard** that [[.arcane/spells/spell-enchant|spell-enchant]] evaluates against when enchanting a PRD from functional to exceptional.
15
15
 
16
16
  ## Quality Dimensions
17
17
 
@@ -48,7 +48,7 @@ this broader ≥ Silver gate is not fully verified by any coded scorer or workfl
48
48
 
49
49
  | Tier | Bar |
50
50
  | --- | --- |
51
- | Bronze | No real organization, person, venture, or machine names. Org-specific values use `{UPPER_SNAKE}` placeholders. Enforcement: executable check (ARC-023) — `scripts/org-token-lint.ts` scans `.github/prompts/*.prompt.md` against the `ARCANE_ORG_TOKENS` denylist and runs automatically as part of `npm run build`, failing the build on a match; `spell ward --gate` (`src/commands/ward.ts`) runs the same denylist-scanning engine standalone but is not currently wired into CI as its own gate. |
51
+ | Bronze | No real organization, person, venture, or machine names. Org-specific values use `{UPPER_SNAKE}` placeholders. Enforcement: executable check (ARC-023) — `scripts/org-token-lint.ts` scans `.arcane/spells/*.md` (and every generated client shim) against the `ARCANE_ORG_TOKENS` denylist and runs automatically as part of `npm run build`, failing the build on a match; `spell ward --gate` (`src/commands/ward.ts`) runs the same denylist-scanning engine standalone but is not currently wired into CI as its own gate. |
52
52
  | Silver | + every placeholder has an inline resolution note: *"resolve from `.arcane.json` / frontmatter; ask if unset."* Enforcement: explicitly advisory prose (ARC-023) — part of the D2 hard gate by name, but this specific bar is self-graded; no check verifies a placeholder carries an inline resolution note. |
53
53
  | Gold | + no hard assumption of a specific tracker, CI/CD platform, cloud/deployment vendor, agent roster, or directory layout — the spell works in a vanilla consuming repo with no Arcane context files present. |
54
54
 
@@ -118,6 +118,14 @@ this broader ≥ Silver gate is not fully verified by any coded scorer or workfl
118
118
 
119
119
  Arcane spells ship to other repositories and, eventually, open source. Keep them portable:
120
120
 
121
+ - **Author in one place (ARC-045):** a spell's body lives only in `.arcane/spells/<id>.md`. The
122
+ Copilot prompt (`.github/prompts/<id>.prompt.md`), the Claude Code command
123
+ (`.claude/commands/<id>.md`) and the Codex skill (`.agents/skills/<id>/SKILL.md`) are generated
124
+ from it by `npm run fix:self-host-parity` and carry no prose of their own — never edit one by
125
+ hand. Relative links inside a spell resolve from `.arcane/spells/`, two levels below the repo
126
+ root (`../../.arcane/governance/…`, `../../README.md`); refer to a sibling spell as
127
+ `spell-x.md`. Enforcement: executable check (ARC-023) — `npm run check:self-host-parity`
128
+ re-renders every shim from its canonical file and fails CI on any byte of difference.
121
129
  - **Never hard-code** an org name, person, venture, product, or machine name. Use a documented
122
130
  `{UPPER_SNAKE}` placeholder: `{ADO_ORG}`, `{ADO_PROJECT}`, `{BUSINESS_NAME}`, `{OPERATOR_NAME}`.
123
131
  Enforcement: executable check (ARC-023) — same mechanism as D2 Bronze above: the `org-token-lint`
@@ -156,6 +156,8 @@ See also: [[README]], [[DECISIONS]], [[governance/git-conventions|Git Convention
156
156
  | Any new tool | This file | Read this, then follow links above |
157
157
 
158
158
  This table covers standing repository instructions only, not spell discovery. Spells reach each
159
- client through a separate mechanism: `.github/prompts/*.prompt.md` for Copilot,
160
- `.claude/commands/*.md` for Claude Code, and `.agents/skills/*/SKILL.md` for Codex (CS-01) — all
161
- three generated from one canonical source (ARC-039), never hand-authored per client.
159
+ client through a separate mechanism: one canonical source per spell at `.arcane/spells/<id>.md`
160
+ (ARC-045), from which three thin shims are generated — `.github/prompts/*.prompt.md` for Copilot,
161
+ `.claude/commands/*.md` for Claude Code, and `.agents/skills/*/SKILL.md` for Codex (CS-01) — never
162
+ hand-authored per client. A shim carries no workflow of its own: when a spell must be read in full,
163
+ read the canonical file.
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: Spell — Address Review
3
+ description: Respond to code-review feedback on a pull request — fetch comment threads, triage each, implement fixes or reply with rationale, and resolve every thread.
4
+ claude_description: Use PROACTIVELY whenever responding to PR review comments — fetch threads, triage, fix or reply, resolve.
5
+ argument-hint: --pr <number> (required) [--fix-all] — the PR to address; --fix-all treats all suggestions/nitpicks as fix-now
6
+ agent: agent
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ - This spell handles inbound code-review feedback: read comments, act on them, and resolve the threads.
12
+ - Each comment is triaged — must-fix / suggestion / question / nitpick — and given a disposition.
13
+ - Must-fix items are implemented, committed, and pushed; others are implemented or answered with rationale.
14
+ - Every thread is resolved at the end (many providers require all threads resolved before merge).
15
+ - This is the author-side counterpart to `spell-review` (the reviewer side). Provider-agnostic.
16
+
17
+ ---
18
+
19
+ Respond to review feedback for the specified pull request.
20
+
21
+ Context to consult:
22
+
23
+ - `.arcane/governance/git-conventions.md` — commit format, agent attribution trailers, PR policy, and the interactive-session commit gate.
24
+ - `.arcane/governance/development-methodology.md` — workflow phases.
25
+
26
+ Related spells:
27
+
28
+ - `spell-review` — the reviewer side. If review was run here, its findings carry stable IDs (`R1`, `R2`, …); reference those IDs when replying so each thread maps to the original finding.
29
+ - `spell-create-pull-request` — opens the PR this spell responds to. Run it first if no PR exists yet.
30
+
31
+ ## Arguments
32
+
33
+ - `--pr <number>` — **required.** The PR to address. If omitted, check the current branch for an associated PR or ask the user.
34
+ - `--fix-all` — optional. Treat all suggestions and nitpicks as fix-now (no deferrals).
35
+
36
+ ## Step 0 — Setup
37
+
38
+ 1. **Resolve the PR.** If `--pr` is given, use it. If omitted, look up the PR for the current branch (`gh pr view --json number` / `az repos pr list --source-branch <branch>`). If still none, **stop** and ask the user for the PR number — do not guess.
39
+ 2. **Working tree must be clean.** Run `git status`. If dirty, **stop** and ask the user to commit or stash first — never stash silently, since uncommitted work can get tangled into the review-fix commits below.
40
+ 3. **Detect the provider** from the git remote:
41
+
42
+ | Remote URL contains | Provider |
43
+ | --- | --- |
44
+ | `github.com` | GitHub (`gh`) |
45
+ | `dev.azure.com` / `visualstudio.com` | Azure DevOps (`az repos`) |
46
+ | anything else | unknown — **stop** and ask the user |
47
+
48
+ 4. **Fetch the PR plus all comment threads:**
49
+ - **GitHub:** `gh pr view <PR> --comments`
50
+ - **Azure DevOps:** `az repos pr thread list --id <PR>`
51
+
52
+ ## Step 1 — Parse threads
53
+
54
+ For each thread extract: thread ID, author, file + line (if inline), comment text, status, existing replies. Keep only **active** threads; ignore already-resolved ones. If a comment references a `spell-review` finding ID (`R1`, …), carry it through so the reply can cite it.
55
+
56
+ **If zero active threads remain:** report "No active review threads to address — nothing to do" and stop. Do not create commits or push.
57
+
58
+ ## Step 2 — Categorize each comment
59
+
60
+ | Category | Criteria | Action |
61
+ | --- | --- | --- |
62
+ | must-fix | bug, security issue, logic error, broken behavior, standards violation | implement, commit, push |
63
+ | suggestion | better approach, refactor, optional improvement | implement OR reply with rationale |
64
+ | question | clarification / "why did you…?" | answer in the thread |
65
+ | nitpick | minor style / naming preference | implement OR reply with rationale |
66
+
67
+ Heuristics: "must"/"should"/"required"/"blocking" → must-fix; ends with "?" or starts "why/how/what" → question; "nit"/"minor"/"optional"/"consider" → nitpick; alternative offered without requiring → suggestion. When unsure, escalate to suggestion (not nitpick).
68
+
69
+ ## Step 3 — Disposition
70
+
71
+ | Disposition | When |
72
+ | --- | --- |
73
+ | Fix Now | all must-fix; suggestions/nitpicks < ~30 min effort AND within files the PR already touches |
74
+ | Defer | scope-expanding items: new features, infra/tooling, cross-file refactors, > ~1 hr effort |
75
+ | Decline | the current approach is intentional — reply with rationale |
76
+
77
+ `--fix-all` forces all suggestions/nitpicks to Fix Now. Deferred items get a `TODO.md` entry with a `(PR #<n> feedback)` note **and** a reply on the thread pointing to that TODO before the thread is resolved — never resolve a deferred thread silently, or the reviewer cannot tell it was tracked vs. ignored.
78
+
79
+ ## Step 4 — Present the plan, then wait
80
+
81
+ Show a table (`# | category | disposition | author | file:line | summary | planned action`) plus counts. Wait for confirmation; let the user reclassify any item before proceeding.
82
+
83
+ ## Step 5 — Execute
84
+
85
+ Commits in this spell follow `.arcane/governance/git-conventions.md`: Conventional Commits format, agent attribution (`--author` + required `Agent`/`Model`/`Model-Source`/`Provider` trailers, plus `Persona`/`Role` when a roster exists and one was assigned) when an agent authors the change, and — because this is an **interactive session** — present each proposed commit message and **wait for the human's approval before committing** (the Step 4 plan approval covers *what* to do, not the commit itself). Never squash.
86
+
87
+ For **must-fix** (one thread at a time): read the code → implement → run the relevant tests.
88
+ - **If tests pass:** commit (e.g. `fix(scope): address review — <desc>`) → reply `Fixed in <hash>. <what changed>` (cite the `R#` finding ID if one exists) → resolve the thread immediately.
89
+ - **If tests fail:** do **not** commit. Either fix the regression and re-run, or — if the fix is wrong or larger than expected — revert the change, reply on the thread explaining what blocked it, and reclassify to Defer (TODO + thread note). A broken must-fix must never land.
90
+
91
+ For **suggestions/nitpicks**: if implementing, make the change, run tests, and batch into one commit; reply and resolve. If declining, reply with specific, respectful rationale (reference an ADR or convention if relevant) and resolve as won't-fix.
92
+
93
+ For **questions**: answer clearly in the thread; if the question reveals a real issue, reclassify and handle it; resolve after answering.
94
+
95
+ Resolve threads via the provider:
96
+ - **GitHub:** resolve the review thread (`gh` / GitHub MCP resolve-thread).
97
+ - **Azure DevOps:** update the thread status (`Fixed` or `WontFix`).
98
+ - **If a thread cannot be auto-resolved** (provider API error, insufficient permissions, or the reviewer must resolve it themselves): leave the reply in place, list the thread in the Step 6 report under "needs manual resolution," and do not treat the sweep as complete.
99
+
100
+ ## Step 6 — Sweep, push, report
101
+
102
+ 1. Re-fetch threads; resolve any still-active ones (this is the merge gate on many providers). Any thread that genuinely cannot be auto-resolved (see Step 5) is reported as "needs manual resolution," not silently left open.
103
+ 2. `git push` all commits.
104
+ 3. Print a summary table of actions taken (category, file, action, commit), thread status (resolved / deferred-with-TODO / needs manual resolution), commits pushed, and next steps (CI, notify reviewer, ready for re-review).
105
+ 4. Optionally post the summary back to the PR as a top-level comment for a durable record.
106
+
107
+ ## Rules
108
+
109
+ - Always present the plan and wait for confirmation before changing code.
110
+ - This is an interactive session: get human approval for each commit message before committing (per git-conventions Commit Governance).
111
+ - Never commit a change whose tests fail — fix, revert, or defer instead.
112
+ - Resolve each thread immediately after addressing it — do not batch resolution to the very end (except the final sweep).
113
+ - Never dismiss feedback without reasoning, and never resolve a deferred thread without leaving a TODO pointer on it.
114
+ - Follow `.arcane/governance/git-conventions.md` for commit format and attribution; do not squash.
115
+ - Never include secrets or tokens in replies or commits.