opencodekit 0.21.9 → 0.22.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 (165) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/AGENTS.md +116 -499
  3. package/dist/template/.opencode/README.md +1 -1
  4. package/dist/template/.opencode/agent/build.md +56 -396
  5. package/dist/template/.opencode/agent/explore.md +15 -16
  6. package/dist/template/.opencode/agent/general.md +2 -2
  7. package/dist/template/.opencode/agent/plan.md +3 -3
  8. package/dist/template/.opencode/agent/review.md +2 -3
  9. package/dist/template/.opencode/agent/scout.md +34 -16
  10. package/dist/template/.opencode/agent/vision.md +0 -1
  11. package/dist/template/.opencode/command/clarify.md +48 -0
  12. package/dist/template/.opencode/command/commit.md +53 -0
  13. package/dist/template/.opencode/command/design.md +4 -4
  14. package/dist/template/.opencode/command/fix.md +56 -0
  15. package/dist/template/.opencode/command/improve-architecture.md +55 -0
  16. package/dist/template/.opencode/command/init.md +88 -68
  17. package/dist/template/.opencode/command/refactor.md +66 -0
  18. package/dist/template/.opencode/command/review-codebase.md +1 -1
  19. package/dist/template/.opencode/command/ship.md +1 -1
  20. package/dist/template/.opencode/command/test.md +66 -0
  21. package/dist/template/.opencode/dcp.jsonc +29 -46
  22. package/dist/template/.opencode/memory/README.md +3 -5
  23. package/dist/template/.opencode/memory/_templates/adr.md +45 -0
  24. package/dist/template/.opencode/memory/project/gotchas.md +1 -1
  25. package/dist/template/.opencode/memory/project/user.md +1 -2
  26. package/dist/template/.opencode/memory/session-context.md +1 -1
  27. package/dist/template/.opencode/opencode.json +10 -332
  28. package/dist/template/.opencode/plugin/README.md +1 -1
  29. package/dist/template/.opencode/plugin/guard.ts +62 -0
  30. package/dist/template/.opencode/plugin/{lib/memory-admin-tools.ts → memory/admin.ts} +4 -4
  31. package/dist/template/.opencode/plugin/{lib → memory}/capture.ts +1 -1
  32. package/dist/template/.opencode/plugin/{lib → memory}/compile.ts +2 -2
  33. package/dist/template/.opencode/plugin/{lib → memory}/context.ts +1 -1
  34. package/dist/template/.opencode/plugin/{lib → memory}/curator.ts +1 -1
  35. package/dist/template/.opencode/plugin/{lib → memory}/db/observations.ts +102 -3
  36. package/dist/template/.opencode/plugin/{lib → memory}/db/schema.ts +43 -1
  37. package/dist/template/.opencode/plugin/{lib → memory}/db/types.ts +22 -0
  38. package/dist/template/.opencode/plugin/{lib/memory-db.ts → memory/db.ts} +1 -1
  39. package/dist/template/.opencode/plugin/{lib → memory}/distill.ts +1 -1
  40. package/dist/template/.opencode/plugin/{lib/memory-helpers.ts → memory/helpers.ts} +5 -1
  41. package/dist/template/.opencode/plugin/{lib/memory-hooks.ts → memory/hooks.ts} +1 -1
  42. package/dist/template/.opencode/plugin/{lib → memory}/index-generator.ts +2 -2
  43. package/dist/template/.opencode/plugin/{lib → memory}/inject.ts +1 -1
  44. package/dist/template/.opencode/plugin/{lib → memory}/lint.ts +2 -2
  45. package/dist/template/.opencode/plugin/memory/tools.ts +322 -0
  46. package/dist/template/.opencode/plugin/{lib → memory}/validate.ts +2 -2
  47. package/dist/template/.opencode/plugin/memory.ts +7 -17
  48. package/dist/template/.opencode/plugin/srcwalk.ts +721 -0
  49. package/dist/template/.opencode/skill/agent-code-quality-gate/SKILL.md +98 -0
  50. package/dist/template/.opencode/skill/behavioral-kernel/SKILL.md +52 -0
  51. package/dist/template/.opencode/skill/browser-testing-with-devtools/SKILL.md +85 -0
  52. package/dist/template/.opencode/skill/code-cleanup/SKILL.md +114 -0
  53. package/dist/template/.opencode/skill/code-navigation/SKILL.md +142 -0
  54. package/dist/template/.opencode/skill/code-review-and-quality/SKILL.md +131 -0
  55. package/dist/template/.opencode/skill/debugging-and-error-recovery/SKILL.md +109 -0
  56. package/dist/template/.opencode/skill/deep-module-design/SKILL.md +207 -0
  57. package/dist/template/.opencode/skill/git-workflow-and-versioning/SKILL.md +77 -0
  58. package/dist/template/.opencode/skill/grill-me/SKILL.md +140 -0
  59. package/dist/template/.opencode/skill/memory-system/SKILL.md +9 -10
  60. package/dist/template/.opencode/skill/planning-and-task-breakdown/SKILL.md +116 -0
  61. package/dist/template/.opencode/skill/shipping-and-launch/SKILL.md +95 -0
  62. package/dist/template/.opencode/skill/source-driven-development/SKILL.md +103 -0
  63. package/dist/template/.opencode/skill/spec-driven-development/SKILL.md +121 -0
  64. package/dist/template/.opencode/skill/srcwalk/SKILL.md +161 -0
  65. package/dist/template/.opencode/skill/ubiquitous-language/SKILL.md +184 -0
  66. package/dist/template/.opencode/tool/context7.ts +1 -1
  67. package/dist/template/.opencode/tool/grepsearch.ts +1 -1
  68. package/package.json +1 -1
  69. package/dist/template/.opencode/AGENT_ALIGNMENT.md +0 -564
  70. package/dist/template/.opencode/agent/painter.md +0 -83
  71. package/dist/template/.opencode/command/compound.md +0 -240
  72. package/dist/template/.opencode/command/curate.md +0 -299
  73. package/dist/template/.opencode/command/handoff.md +0 -149
  74. package/dist/template/.opencode/command/health.md +0 -356
  75. package/dist/template/.opencode/command/init-context.md +0 -297
  76. package/dist/template/.opencode/command/init-user.md +0 -125
  77. package/dist/template/.opencode/command/iterate.md +0 -200
  78. package/dist/template/.opencode/command/lfg.md +0 -173
  79. package/dist/template/.opencode/command/resume.md +0 -78
  80. package/dist/template/.opencode/command/status.md +0 -126
  81. package/dist/template/.opencode/command/ui-slop-check.md +0 -169
  82. package/dist/template/.opencode/plugin/lib/memory-tools.ts +0 -535
  83. package/dist/template/.opencode/skill/agent-evals/SKILL.md +0 -208
  84. package/dist/template/.opencode/skill/anti-ai-slop/SKILL.md +0 -76
  85. package/dist/template/.opencode/skill/augment-context-engine/SKILL.md +0 -122
  86. package/dist/template/.opencode/skill/augment-context-engine/mcp.json +0 -6
  87. package/dist/template/.opencode/skill/brand-asset-protocol/SKILL.md +0 -222
  88. package/dist/template/.opencode/skill/code-search-patterns/SKILL.md +0 -253
  89. package/dist/template/.opencode/skill/code-simplification/SKILL.md +0 -211
  90. package/dist/template/.opencode/skill/context-condensation/SKILL.md +0 -149
  91. package/dist/template/.opencode/skill/context-initialization/SKILL.md +0 -69
  92. package/dist/template/.opencode/skill/context-management/SKILL.md +0 -390
  93. package/dist/template/.opencode/skill/deep-research/SKILL.md +0 -384
  94. package/dist/template/.opencode/skill/design-direction-advisor/SKILL.md +0 -139
  95. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +0 -191
  96. package/dist/template/.opencode/skill/executing-plans/SKILL.md +0 -247
  97. package/dist/template/.opencode/skill/figma-go/SKILL.md +0 -65
  98. package/dist/template/.opencode/skill/finishing-a-development-branch/SKILL.md +0 -357
  99. package/dist/template/.opencode/skill/full-output-enforcement/SKILL.md +0 -62
  100. package/dist/template/.opencode/skill/gh-address-comments/SKILL.md +0 -29
  101. package/dist/template/.opencode/skill/gh-address-comments/scripts/fetch_comments.py +0 -237
  102. package/dist/template/.opencode/skill/gh-fix-ci/SKILL.md +0 -38
  103. package/dist/template/.opencode/skill/gh-fix-ci/scripts/inspect_pr_checks.py +0 -509
  104. package/dist/template/.opencode/skill/hi-fi-prototype-html/SKILL.md +0 -253
  105. package/dist/template/.opencode/skill/html-deck-export/SKILL.md +0 -189
  106. package/dist/template/.opencode/skill/index-knowledge/SKILL.md +0 -413
  107. package/dist/template/.opencode/skill/memory-grounding/SKILL.md +0 -68
  108. package/dist/template/.opencode/skill/playwriter/SKILL.md +0 -158
  109. package/dist/template/.opencode/skill/portless/SKILL.md +0 -109
  110. package/dist/template/.opencode/skill/prd/SKILL.md +0 -146
  111. package/dist/template/.opencode/skill/prd-task/SKILL.md +0 -182
  112. package/dist/template/.opencode/skill/prd-task/references/prd-schema.json +0 -124
  113. package/dist/template/.opencode/skill/prompt-leverage/SKILL.md +0 -90
  114. package/dist/template/.opencode/skill/prompt-leverage/references/framework.md +0 -91
  115. package/dist/template/.opencode/skill/prompt-leverage/scripts/augment_prompt.py +0 -157
  116. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +0 -263
  117. package/dist/template/.opencode/skill/reconcile/SKILL.md +0 -183
  118. package/dist/template/.opencode/skill/reflection-checkpoints/SKILL.md +0 -183
  119. package/dist/template/.opencode/skill/requesting-code-review/SKILL.md +0 -443
  120. package/dist/template/.opencode/skill/requesting-code-review/references/specialist-profiles.md +0 -108
  121. package/dist/template/.opencode/skill/requesting-code-review/review.md +0 -160
  122. package/dist/template/.opencode/skill/rtk-command-compression/SKILL.md +0 -134
  123. package/dist/template/.opencode/skill/screenshot/SKILL.md +0 -48
  124. package/dist/template/.opencode/skill/screenshot/scripts/ensure_macos_permissions.sh +0 -54
  125. package/dist/template/.opencode/skill/screenshot/scripts/macos_display_info.swift +0 -22
  126. package/dist/template/.opencode/skill/screenshot/scripts/macos_permissions.swift +0 -40
  127. package/dist/template/.opencode/skill/screenshot/scripts/macos_window_info.swift +0 -126
  128. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.ps1 +0 -163
  129. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.py +0 -585
  130. package/dist/template/.opencode/skill/security-threat-model/SKILL.md +0 -36
  131. package/dist/template/.opencode/skill/security-threat-model/references/prompt-template.md +0 -255
  132. package/dist/template/.opencode/skill/security-threat-model/references/security-controls-and-assets.md +0 -32
  133. package/dist/template/.opencode/skill/sharing-skills/SKILL.md +0 -214
  134. package/dist/template/.opencode/skill/skill-creator/SKILL.md +0 -181
  135. package/dist/template/.opencode/skill/skill-installer/SKILL.md +0 -58
  136. package/dist/template/.opencode/skill/skill-installer/scripts/github_utils.py +0 -21
  137. package/dist/template/.opencode/skill/skill-installer/scripts/install-skill-from-github.py +0 -313
  138. package/dist/template/.opencode/skill/skill-installer/scripts/list-skills.py +0 -106
  139. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +0 -244
  140. package/dist/template/.opencode/skill/swarm-coordination/references/architecture.md +0 -39
  141. package/dist/template/.opencode/skill/swarm-coordination/references/delegation-worker-protocol.md +0 -145
  142. package/dist/template/.opencode/skill/swarm-coordination/references/dependency-graph.md +0 -50
  143. package/dist/template/.opencode/skill/swarm-coordination/references/drift-check.md +0 -90
  144. package/dist/template/.opencode/skill/swarm-coordination/references/integration-beads.md +0 -20
  145. package/dist/template/.opencode/skill/swarm-coordination/references/launch-flow.md +0 -186
  146. package/dist/template/.opencode/skill/swarm-coordination/references/reconciler.md +0 -172
  147. package/dist/template/.opencode/skill/swarm-coordination/references/tier-enforcement.md +0 -78
  148. package/dist/template/.opencode/skill/swarm-coordination/references/tmux-integration.md +0 -134
  149. package/dist/template/.opencode/skill/systematic-debugging/SKILL.md +0 -402
  150. package/dist/template/.opencode/skill/terse-output-mode/SKILL.md +0 -95
  151. package/dist/template/.opencode/skill/think-in-code/SKILL.md +0 -136
  152. package/dist/template/.opencode/skill/ux-quality-gates/SKILL.md +0 -137
  153. package/dist/template/.opencode/skill/v1-run/SKILL.md +0 -175
  154. package/dist/template/.opencode/skill/v1-run/mcp.json +0 -6
  155. package/dist/template/.opencode/skill/verification-gates/SKILL.md +0 -63
  156. package/dist/template/.opencode/skill/visual-analysis/SKILL.md +0 -154
  157. package/dist/template/.opencode/skill/web-design-guidelines/SKILL.md +0 -46
  158. package/dist/template/.opencode/skill/workspace-setup/SKILL.md +0 -76
  159. package/dist/template/.opencode/skill/writing-plans/SKILL.md +0 -320
  160. /package/dist/template/.opencode/plugin/{lib → memory}/compact.ts +0 -0
  161. /package/dist/template/.opencode/plugin/{lib → memory}/db/graph.ts +0 -0
  162. /package/dist/template/.opencode/plugin/{lib → memory}/db/maintenance.ts +0 -0
  163. /package/dist/template/.opencode/plugin/{lib → memory}/db/pipeline.ts +0 -0
  164. /package/dist/template/.opencode/plugin/{lib → memory}/notify.ts +0 -0
  165. /package/dist/template/.opencode/plugin/{lib → memory}/operation-log.ts +0 -0
@@ -1,91 +0,0 @@
1
- # Prompt Leverage Framework
2
-
3
- Reference for combining source ideas into a practical execution framework.
4
-
5
- ## Source Synthesis
6
-
7
- - **Agent Flywheel** contributes behavior controls: intensity, wider search, deeper analysis, fresh eyes, first-principles thinking, and future-self clarity.
8
- - **OpenAI prompt guidance** contributes execution controls: clear objectives, explicit output contracts, tool persistence, dependency checks, verification loops, and completion criteria.
9
-
10
- Treat the final framework as:
11
-
12
- `Objective -> Context -> Work Style -> Tool Rules -> Output Contract -> Verification -> Done`
13
-
14
- ## Block Definitions
15
-
16
- ### Objective
17
-
18
- State the task in one or two lines. Define success in observable terms.
19
-
20
- ### Context
21
-
22
- Specify relevant files, URLs, constraints, assumptions, and information boundaries. Say when the agent must retrieve facts instead of guessing.
23
-
24
- ### Work Style
25
-
26
- Control how the agent approaches the task.
27
-
28
- - Go broad first when system understanding matters.
29
- - Go deep where risk or complexity is highest.
30
- - Use first-principles reasoning before changing things.
31
- - Re-check with fresh eyes for non-trivial tasks.
32
-
33
- ### Tool Rules
34
-
35
- Define when browsing, file inspection, tests, or external tools are required. Prevent skipping prerequisite checks.
36
-
37
- ### Output Contract
38
-
39
- Define exact structure, tone, formatting, depth, and any required sections or schemas.
40
-
41
- ### Verification
42
-
43
- Require checks for correctness, grounding, completeness, side effects, and better alternatives.
44
-
45
- ### Done Criteria
46
-
47
- Define what must be true before the agent stops.
48
-
49
- ## Intensity Levels
50
-
51
- Use the minimum level that matches the task.
52
-
53
- - `Light`: simple edits, formatting, quick rewrites.
54
- - `Standard`: typical coding, research, and drafting tasks.
55
- - `Deep`: debugging, architecture, complex research, or high-stakes outputs.
56
-
57
- ## Task-Type Adjustments
58
-
59
- ### Coding
60
-
61
- - Emphasize repo context, file inspection, smallest correct change, validation, and edge cases.
62
-
63
- ### Research
64
-
65
- - Emphasize source quality, evidence gathering, synthesis, uncertainty, and citations.
66
-
67
- ### Writing
68
-
69
- - Emphasize audience, tone, structure, constraints, and revision criteria.
70
-
71
- ### Review
72
-
73
- - Emphasize fresh-eyes critique, failure modes, alternatives, and explicit severity.
74
-
75
- ## Prompt Upgrade Heuristics
76
-
77
- - Add missing blocks only when they materially improve execution.
78
- - Do not turn a one-line request into a giant spec unless the task is genuinely complex.
79
- - Preserve user language where possible so the upgraded prompt still feels native.
80
- - Prefer concrete completion criteria over vague quality adjectives.
81
-
82
- ## Upgrade Rubric
83
-
84
- An upgraded prompt is good when it:
85
-
86
- 1. preserves original intent
87
- 2. reduces ambiguity
88
- 3. sets the right depth and care level
89
- 4. defines the expected output clearly
90
- 5. includes an appropriate verification step
91
- 6. tells the agent when to stop
@@ -1,157 +0,0 @@
1
- #!/usr/bin/env python3
2
- """Automated prompt upgrader using the Prompt Leverage Framework."""
3
-
4
- from __future__ import annotations
5
-
6
- import argparse
7
- import re
8
- from textwrap import dedent
9
-
10
-
11
- TASK_KEYWORDS = {
12
- "coding": [
13
- "code",
14
- "bug",
15
- "repo",
16
- "refactor",
17
- "test",
18
- "implement",
19
- "fix",
20
- "function",
21
- "api",
22
- ],
23
- "research": [
24
- "research",
25
- "compare",
26
- "find",
27
- "latest",
28
- "sources",
29
- "analyze market",
30
- "look up",
31
- ],
32
- "writing": ["write", "rewrite", "draft", "email", "memo", "blog", "copy", "tone"],
33
- "review": ["review", "audit", "critique", "inspect", "evaluate", "assess"],
34
- "planning": ["plan", "roadmap", "strategy", "framework", "outline"],
35
- "analysis": ["analyze", "explain", "break down", "diagnose", "root cause"],
36
- }
37
-
38
-
39
- def detect_task(prompt: str) -> str:
40
- """Detect task type by keyword matching."""
41
- lowered = prompt.lower()
42
- scores = {
43
- task: sum(1 for keyword in keywords if keyword in lowered)
44
- for task, keywords in TASK_KEYWORDS.items()
45
- }
46
- best_task, best_score = max(scores.items(), key=lambda item: item[1])
47
- return best_task if best_score > 0 else "analysis"
48
-
49
-
50
- def infer_intensity(prompt: str, task: str) -> str:
51
- """Infer intensity level from prompt content."""
52
- lowered = prompt.lower()
53
- if any(
54
- token in lowered
55
- for token in [
56
- "careful",
57
- "deep",
58
- "thorough",
59
- "high stakes",
60
- "production",
61
- "critical",
62
- ]
63
- ):
64
- return "Deep"
65
- if task in {"coding", "research", "review"}:
66
- return "Standard"
67
- return "Light"
68
-
69
-
70
- def build_tool_rules(task: str) -> str:
71
- """Build task-specific tool rules."""
72
- rules = {
73
- "coding": "Inspect the relevant files and dependencies first. Validate the final change with the narrowest useful checks before broadening scope.",
74
- "research": "Retrieve evidence from reliable sources before concluding. Do not guess facts that can be checked.",
75
- "review": "Read enough surrounding context to understand intent before critiquing. Distinguish confirmed issues from plausible risks.",
76
- }
77
- return rules.get(
78
- task,
79
- "Use tools or extra context only when they materially improve correctness or completeness.",
80
- )
81
-
82
-
83
- def build_output_contract(task: str) -> str:
84
- """Build task-specific output contract."""
85
- contracts = {
86
- "coding": "Return the result in a practical execution format: concise summary, concrete changes or code, validation notes, and any remaining risks.",
87
- "research": "Return a structured synthesis with key findings, supporting evidence, uncertainty where relevant, and a concise bottom line.",
88
- "writing": "Return polished final copy in the requested tone and format. If useful, include a short rationale for major editorial choices.",
89
- "review": "Return findings grouped by severity or importance, explain why each matters, and suggest the smallest credible next step.",
90
- }
91
- return contracts.get(
92
- task,
93
- "Return a clear, well-structured response matched to the task, with no unnecessary verbosity.",
94
- )
95
-
96
-
97
- def upgrade_prompt(raw_prompt: str, task: str | None) -> str:
98
- """Upgrade a raw prompt using the framework."""
99
- normalized = re.sub(r"\s+", " ", raw_prompt).strip()
100
- detected_task = task or detect_task(normalized)
101
- intensity = infer_intensity(normalized, detected_task)
102
- tool_rules = build_tool_rules(detected_task)
103
- output_contract = build_output_contract(detected_task)
104
-
105
- return dedent(
106
- f"""
107
- Objective:
108
- - Complete this task: {normalized}
109
- - Optimize for a correct, useful result rather than a merely plausible one.
110
-
111
- Context:
112
- - Preserve the user's original intent and constraints.
113
- - Surface any key assumptions if required information is missing.
114
-
115
- Work Style:
116
- - Task type: {detected_task}
117
- - Effort level: {intensity}
118
- - Understand the problem broadly enough to avoid narrow mistakes, then go deep where the risk or complexity is highest.
119
- - Use first-principles reasoning before proposing changes.
120
- - For non-trivial work, review the result once with fresh eyes before finalizing.
121
-
122
- Tool Rules:
123
- - {tool_rules}
124
-
125
- Output Contract:
126
- - {output_contract}
127
-
128
- Verification:
129
- - Check correctness, completeness, and edge cases.
130
- - Improve obvious weaknesses if a better approach is available within scope.
131
-
132
- Done Criteria:
133
- - Stop only when the response satisfies the task, matches the requested format, and passes the verification step.
134
- """
135
- ).strip()
136
-
137
-
138
- def parse_args() -> argparse.Namespace:
139
- parser = argparse.ArgumentParser(
140
- description="Upgrade a raw prompt into a framework-backed execution prompt."
141
- )
142
- parser.add_argument("prompt", help="Raw prompt text to upgrade.")
143
- parser.add_argument(
144
- "--task",
145
- choices=sorted(TASK_KEYWORDS.keys()),
146
- help="Optional explicit task type (auto-detected if not provided).",
147
- )
148
- return parser.parse_args()
149
-
150
-
151
- def main() -> None:
152
- args = parse_args()
153
- print(upgrade_prompt(args.prompt, args.task))
154
-
155
-
156
- if __name__ == "__main__":
157
- main()
@@ -1,263 +0,0 @@
1
- ---
2
- name: receiving-code-review
3
- description: Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
4
- version: 1.0.0
5
- tags: [workflow, code-quality]
6
- dependencies: []
7
- ---
8
-
9
- # Code Review Reception
10
-
11
- > **Replaces** blind agreement with reviewer suggestions — requires technical verification and understanding before implementing any feedback
12
-
13
- ## When to Use
14
-
15
- - You received review feedback and need to evaluate it before implementing
16
- - Feedback seems unclear, questionable, or potentially wrong for this codebase
17
-
18
- ## When NOT to Use
19
-
20
- - You already verified and accepted the feedback and are ready to implement
21
- - You need to request a review (use requesting-code-review)
22
-
23
- ## Common Rationalizations
24
-
25
- | Rationalization | Rebuttal |
26
- | ------------------------------------------------- | -------------------------------------------------------------------------------------- |
27
- | "The reviewer is experienced, they must be right" | Experience doesn't mean they have YOUR codebase context. Verify against reality |
28
- | "It's faster to just implement it than to verify" | A wrong implementation costs more than the 2 minutes to check |
29
- | "Pushing back will create conflict" | Technical correctness > social comfort. Shipping wrong code creates bigger conflict |
30
- | "I'll fix it and verify later" | "Later" means after the wrong change is merged and depended upon |
31
- | "The suggestion is small, no need to verify" | Small changes break things too. One wrong import can crash a module |
32
- | "I understood the feedback, no need to restate" | Restating catches misunderstandings BEFORE you waste time implementing the wrong thing |
33
-
34
- ## Overview
35
-
36
- Code review requires technical evaluation, not emotional performance.
37
-
38
- **Core principle:** Verify before implementing. Ask before assuming. Technical correctness over social comfort.
39
-
40
- ## The Response Pattern
41
-
42
- ```
43
- WHEN receiving code review feedback:
44
-
45
- 1. READ: Complete feedback without reacting
46
- 2. UNDERSTAND: Restate requirement in own words (or ask)
47
- 3. VERIFY: Check against codebase reality
48
- 4. EVALUATE: Technically sound for THIS codebase?
49
- 5. RESPOND: Technical acknowledgment or reasoned pushback
50
- 6. IMPLEMENT: One item at a time, test each
51
- ```
52
-
53
- ## Review Intake Checklist
54
-
55
- - [ ] Read the full feedback without reacting
56
- - [ ] Restate requirements in your own words
57
- - [ ] Verify against codebase reality
58
- - [ ] Evaluate technical correctness for this stack
59
- - [ ] Respond with acknowledgment or reasoned pushback
60
- - [ ] Implement one item at a time with tests
61
-
62
- ## Forbidden Responses
63
-
64
- **NEVER:**
65
-
66
- - "You're absolutely right!" (explicit CLAUDE.md violation)
67
- - "Great point!" / "Excellent feedback!" (performative)
68
- - "Let me implement that now" (before verification)
69
-
70
- **INSTEAD:**
71
-
72
- - Restate the technical requirement
73
- - Ask clarifying questions
74
- - Push back with technical reasoning if wrong
75
- - Just start working (actions > words)
76
-
77
- ## Handling Unclear Feedback
78
-
79
- ```
80
- IF any item is unclear:
81
- STOP - do not implement anything yet
82
- ASK for clarification on unclear items
83
-
84
- WHY: Items may be related. Partial understanding = wrong implementation.
85
- ```
86
-
87
- **Example:**
88
-
89
- ```
90
- your human partner: "Fix 1-6"
91
- You understand 1,2,3,6. Unclear on 4,5.
92
-
93
- ❌ WRONG: Implement 1,2,3,6 now, ask about 4,5 later
94
- ✅ RIGHT: "I understand items 1,2,3,6. Need clarification on 4 and 5 before proceeding."
95
- ```
96
-
97
- ## Source-Specific Handling
98
-
99
- ### From your human partner
100
-
101
- - **Trusted** - implement after understanding
102
- - **Still ask** if scope unclear
103
- - **No performative agreement**
104
- - **Skip to action** or technical acknowledgment
105
-
106
- ### From External Reviewers
107
-
108
- ```
109
- BEFORE implementing:
110
- 1. Check: Technically correct for THIS codebase?
111
- 2. Check: Breaks existing functionality?
112
- 3. Check: Reason for current implementation?
113
- 4. Check: Works on all platforms/versions?
114
- 5. Check: Does reviewer understand full context?
115
-
116
- IF suggestion seems wrong:
117
- Push back with technical reasoning
118
-
119
- IF can't easily verify:
120
- Say so: "I can't verify this without [X]. Should I [investigate/ask/proceed]?"
121
-
122
- IF conflicts with your human partner's prior decisions:
123
- Stop and discuss with your human partner first
124
- ```
125
-
126
- **your human partner's rule:** "External feedback - be skeptical, but check carefully"
127
-
128
- ## YAGNI Check for "Professional" Features
129
-
130
- ```
131
- IF reviewer suggests "implementing properly":
132
- grep codebase for actual usage
133
-
134
- IF unused: "This endpoint isn't called. Remove it (YAGNI)?"
135
- IF used: Then implement properly
136
- ```
137
-
138
- **your human partner's rule:** "You and reviewer both report to me. If we don't need this feature, don't add it."
139
-
140
- ## Implementation Order
141
-
142
- ```
143
- FOR multi-item feedback:
144
- 1. Clarify anything unclear FIRST
145
- 2. Then implement in this order:
146
- - Blocking issues (breaks, security)
147
- - Simple fixes (typos, imports)
148
- - Complex fixes (refactoring, logic)
149
- 3. Test each fix individually
150
- 4. Verify no regressions
151
- ```
152
-
153
- ## When To Push Back
154
-
155
- Push back when:
156
-
157
- - Suggestion breaks existing functionality
158
- - Reviewer lacks full context
159
- - Violates YAGNI (unused feature)
160
- - Technically incorrect for this stack
161
- - Legacy/compatibility reasons exist
162
- - Conflicts with your human partner's architectural decisions
163
-
164
- **How to push back:**
165
-
166
- - Use technical reasoning, not defensiveness
167
- - Ask specific questions
168
- - Reference working tests/code
169
- - Involve your human partner if architectural
170
-
171
- **Signal if uncomfortable pushing back out loud:** "Strange things are afoot at the Circle K"
172
-
173
- ## Acknowledging Correct Feedback
174
-
175
- When feedback IS correct:
176
-
177
- ```
178
- ✅ "Fixed. [Brief description of what changed]"
179
- ✅ "Good catch - [specific issue]. Fixed in [location]."
180
- ✅ [Just fix it and show in the code]
181
-
182
- ❌ "You're absolutely right!"
183
- ❌ "Great point!"
184
- ❌ "Thanks for catching that!"
185
- ❌ "Thanks for [anything]"
186
- ❌ ANY gratitude expression
187
- ```
188
-
189
- **Why no thanks:** Actions speak. Just fix it. The code itself shows you heard the feedback.
190
-
191
- **If you catch yourself about to write "Thanks":** DELETE IT. State the fix instead.
192
-
193
- ## Gracefully Correcting Your Pushback
194
-
195
- If you pushed back and were wrong:
196
-
197
- ```
198
- ✅ "You were right - I checked [X] and it does [Y]. Implementing now."
199
- ✅ "Verified this and you're correct. My initial understanding was wrong because [reason]. Fixing."
200
-
201
- ❌ Long apology
202
- ❌ Defending why you pushed back
203
- ❌ Over-explaining
204
- ```
205
-
206
- State the correction factually and move on.
207
-
208
- ## Common Mistakes
209
-
210
- | Mistake | Fix |
211
- | ---------------------------- | ----------------------------------- |
212
- | Performative agreement | State requirement or just act |
213
- | Blind implementation | Verify against codebase first |
214
- | Batch without testing | One at a time, test each |
215
- | Assuming reviewer is right | Check if breaks things |
216
- | Avoiding pushback | Technical correctness > comfort |
217
- | Partial implementation | Clarify all items first |
218
- | Can't verify, proceed anyway | State limitation, ask for direction |
219
-
220
- ## Real Examples
221
-
222
- **Performative Agreement (Bad):**
223
-
224
- ```
225
- Reviewer: "Remove legacy code"
226
- ❌ "You're absolutely right! Let me remove that..."
227
- ```
228
-
229
- **Technical Verification (Good):**
230
-
231
- ```
232
- Reviewer: "Remove legacy code"
233
- ✅ "Checking... build target is 10.15+, this API needs 13+. Need legacy for backward compat. Current impl has wrong bundle ID - fix it or drop pre-13 support?"
234
- ```
235
-
236
- **YAGNI (Good):**
237
-
238
- ```
239
- Reviewer: "Implement proper metrics tracking with database, date filters, CSV export"
240
- ✅ "Grepped codebase - nothing calls this endpoint. Remove it (YAGNI)? Or is there usage I'm missing?"
241
- ```
242
-
243
- **Unclear Item (Good):**
244
-
245
- ```
246
- your human partner: "Fix items 1-6"
247
- You understand 1,2,3,6. Unclear on 4,5.
248
- ✅ "Understand 1,2,3,6. Need clarification on 4 and 5 before implementing."
249
- ```
250
-
251
- ## The Bottom Line
252
-
253
- **External feedback = suggestions to evaluate, not orders to follow.**
254
-
255
- Verify. Question. Then implement.
256
-
257
- No performative agreement. Technical rigor always.
258
-
259
- ## See Also
260
-
261
- - **requesting-code-review** — the complementary skill for dispatching reviews
262
- - **verification-before-completion** — verification after implementing review feedback
263
- - **systematic-debugging** — when review feedback reveals a deeper issue
@@ -1,183 +0,0 @@
1
- ---
2
- name: reconcile
3
- description: >
4
- Use when verifying implementation matches its specification — detects drift between PRD requirements
5
- and actual code, identifies missing features, extra features, and diverged behavior. Load after /ship
6
- or before closing a bead.
7
- version: 1.0.0
8
- tags: [workflow, verification, quality]
9
- dependencies: [verification-before-completion]
10
- ---
11
-
12
- # Reconcile — Spec↔Code Drift Detection
13
-
14
- ## When to Use
15
-
16
- - After `/ship` completes all tasks, before closing the bead
17
- - When you suspect implementation has drifted from the original spec
18
- - During `/review-codebase` to check spec adherence
19
- - Before creating a PR to verify completeness
20
-
21
- ## When NOT to Use
22
-
23
- - During active implementation (wait until tasks are done)
24
- - For code quality issues (use `requesting-code-review` instead)
25
- - For structural config audits (use `/health` instead)
26
-
27
- ## Overview
28
-
29
- Implementation drift is the silent killer of spec-driven development. Tasks can pass all verification gates while the overall feature drifts from its specification. This skill systematically compares PRD artifacts against code evidence.
30
-
31
- ## Reconciliation Process
32
-
33
- ### Step 1: Load Artifacts
34
-
35
- ```bash
36
- # Read the PRD
37
- cat .beads/artifacts/$BEAD_ID/prd.md
38
-
39
- # Read the plan (if exists)
40
- cat .beads/artifacts/$BEAD_ID/plan.md 2>/dev/null
41
-
42
- # Determine comparison base (works with main, master, or any default branch)
43
- BASE=$(git rev-parse origin/main 2>/dev/null || git rev-parse origin/master 2>/dev/null || git merge-base HEAD $(git rev-parse --abbrev-ref HEAD@{upstream} 2>/dev/null || echo HEAD~10))
44
-
45
- # Get the actual diff
46
- git diff $BASE --name-only
47
- git diff $BASE --stat
48
- ```
49
-
50
- ### Step 2: Extract Spec Claims
51
-
52
- From the PRD, extract these verifiable claims:
53
-
54
- | Claim Type | Source Section | Example |
55
- | --------------------------- | --------------------------------------- | ----------------------------------- |
56
- | **Success Criteria** | `## Success Criteria` | "User can see existing messages" |
57
- | **Functional Requirements** | `## Requirements` | "WHEN user clicks X THEN Y happens" |
58
- | **Affected Files** | `## Technical Context > Affected Files` | `src/api/users.ts` |
59
- | **Scope Boundaries** | `## Scope` | "In-scope: X, Out-of-scope: Y" |
60
- | **Task Deliverables** | `## Tasks` | Each task's end-state description |
61
-
62
- ### Step 3: Verify Each Claim
63
-
64
- For each extracted claim, gather evidence:
65
-
66
- #### Success Criteria Verification
67
-
68
- ```bash
69
- # For each success criterion, find code evidence
70
- # Example: "User can see existing messages"
71
- grep -r "messages" src/ --include="*.ts" --include="*.tsx" -l
72
- grep -r "fetchMessages\|getMessages\|listMessages" src/ -l
73
- ```
74
-
75
- Map each criterion to:
76
-
77
- - **VERIFIED**: Code evidence confirms the criterion is met
78
- - **PARTIAL**: Some evidence exists but incomplete
79
- - **MISSING**: No code evidence found
80
- - **UNTESTABLE**: Cannot be verified via code search (needs manual check)
81
-
82
- #### Affected Files Verification
83
-
84
- ```bash
85
- # Compare PRD affected files vs actual changed files
86
- # PRD claims these files would be modified:
87
- PRD_FILES=$(grep -A 50 "Affected Files" .beads/artifacts/$BEAD_ID/prd.md | grep "src/" | sed 's/.*`//' | sed 's/`.*//')
88
-
89
- # Actually modified files:
90
- ACTUAL_FILES=$(git diff $BASE --name-only)
91
-
92
- # Files in PRD but not modified (missing implementation):
93
- comm -23 <(echo "$PRD_FILES" | sort) <(echo "$ACTUAL_FILES" | sort)
94
-
95
- # Files modified but not in PRD (scope creep):
96
- comm -13 <(echo "$PRD_FILES" | sort) <(echo "$ACTUAL_FILES" | sort)
97
- ```
98
-
99
- #### Scope Boundary Check
100
-
101
- - **In-scope items**: Verify each has corresponding code changes
102
- - **Out-of-scope items**: Verify NO code touches those areas (scope creep detection)
103
-
104
- ### Step 4: Detect Drift Patterns
105
-
106
- | Drift Type | Detection Method | Severity |
107
- | -------------------------- | ------------------------------------------------------ | -------- |
108
- | **Missing Feature** | Success criterion with no code evidence | HIGH |
109
- | **Partial Implementation** | Criterion partially met (stub, TODO) | HIGH |
110
- | **Scope Creep** | Files modified that aren't in PRD affected files | MEDIUM |
111
- | **Spec Rot** | PRD sections that contradict actual implementation | MEDIUM |
112
- | **Over-Engineering** | Significant code not traceable to any PRD requirement | LOW |
113
- | **Diverged Behavior** | Code does something different from WHEN/THEN scenarios | HIGH |
114
-
115
- ### Step 5: Calculate Drift Score
116
-
117
- ```
118
- Drift Score Calculation:
119
- - Total claims: [N]
120
- - VERIFIED: [n] (×1.0)
121
- - PARTIAL: [n] (×0.5)
122
- - MISSING: [n] (×0.0)
123
- - UNTESTABLE: [n] (excluded from calculation)
124
-
125
- Adherence = (VERIFIED×1.0 + PARTIAL×0.5) / (Total - UNTESTABLE) × 100
126
-
127
- Scope Creep = Extra files modified / Total files modified × 100
128
- ```
129
-
130
- ## Drift Report Format
131
-
132
- ```markdown
133
- ## Reconciliation Report: <bead-id>
134
-
135
- **PRD:** `.beads/artifacts/<id>/prd.md`
136
- **Branch:** `<branch-name>`
137
- **Adherence Score:** [N]%
138
- **Scope Creep:** [N]%
139
-
140
- ### Success Criteria
141
-
142
- | # | Criterion | Status | Evidence |
143
- | --- | ---------------- | ----------- | ------------------------------------------ |
144
- | 1 | [criterion text] | ✅ VERIFIED | `src/file.ts:42` — [what confirms it] |
145
- | 2 | [criterion text] | ⚠️ PARTIAL | `src/file.ts` exists but handler is a stub |
146
- | 3 | [criterion text] | ❌ MISSING | No code evidence found |
147
-
148
- ### File Reconciliation
149
-
150
- | Category | Files | Count |
151
- | --------------------------- | -------------------------- | ----- |
152
- | ✅ Expected & Modified | `src/api/users.ts`, ... | [N] |
153
- | ❌ Expected but Untouched | `src/models/user.ts`, ... | [N] |
154
- | ⚠️ Unexpected Modifications | `src/utils/helper.ts`, ... | [N] |
155
-
156
- ### Drift Issues
157
-
158
- | # | Type | Severity | Description | Recommendation |
159
- | --- | --------------- | -------- | ---------------- | -------------------------------------------------------------- |
160
- | 1 | Missing Feature | HIGH | [what's missing] | Implement or use `/iterate --scope reduce` to remove from spec |
161
- | 2 | Scope Creep | MEDIUM | [what's extra] | Document in PRD or revert |
162
-
163
- ### Verdict
164
-
165
- | Score | Meaning | Action |
166
- | ----------- | -------------------- | ------------------------------------------------------ |
167
- | **90-100%** | Excellent adherence | Ready to close |
168
- | **70-89%** | Good with minor gaps | Fix gaps or document as intentional deviations |
169
- | **50-69%** | Significant drift | Use `/iterate` to reconcile spec and code |
170
- | **<50%** | Major drift | **BLOCK** — spec and code are fundamentally misaligned |
171
- ```
172
-
173
- ## Integration Points
174
-
175
- - **`/ship` Phase 5**: Run reconcile after review, before close decision
176
- - **`/compound`**: Include adherence score in retrospective observations
177
- - **`/pr`**: Include drift report in PR description
178
-
179
- ## Gotchas
180
-
181
- - Some criteria genuinely can't be verified by code search (UI behavior, UX feel) — mark as UNTESTABLE, don't count against score
182
- - Scope creep isn't always bad — sometimes good engineering requires touching adjacent files. Flag it, don't auto-block.
183
- - Run AFTER phantom completion detection — reconcile assumes code is substantive, not stubs