@agents-inc/cli 0.75.1 → 0.76.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 (183) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{chunk-SXGBPQY6.js → chunk-2I5SXGXR.js} +2 -2
  3. package/dist/{chunk-CUCF5LM4.js → chunk-36YW5E7G.js} +5 -5
  4. package/dist/{chunk-T5DJCIUP.js → chunk-3REKTRAN.js} +2 -2
  5. package/dist/{chunk-UQKCYLOA.js → chunk-6F3CZLD6.js} +9 -9
  6. package/dist/chunk-6F3CZLD6.js.map +1 -0
  7. package/dist/{chunk-JOTAIMTC.js → chunk-7NACNRFG.js} +4 -4
  8. package/dist/{chunk-SPATQKH6.js → chunk-7PMFIL5L.js} +3 -3
  9. package/dist/{chunk-GMUOEQOY.js → chunk-7PZFDI46.js} +4 -4
  10. package/dist/{chunk-PSU42CXK.js → chunk-7XUKTYVD.js} +182 -294
  11. package/dist/chunk-7XUKTYVD.js.map +1 -0
  12. package/dist/{chunk-WXC2Y5TF.js → chunk-AE2QHAFO.js} +7 -7
  13. package/dist/{chunk-ZZJ6H6VB.js → chunk-CBJTSEI2.js} +5 -5
  14. package/dist/{chunk-AOZBHMYL.js → chunk-CCSU4R65.js} +3 -3
  15. package/dist/{chunk-XZ57QYVI.js → chunk-CKU7FJNV.js} +4 -4
  16. package/dist/{chunk-QN3V3ES7.js → chunk-EEZSCHS2.js} +9 -9
  17. package/dist/{chunk-CBXMOWQY.js → chunk-ERHTXNIF.js} +3 -3
  18. package/dist/{chunk-GCT7LSYW.js → chunk-EWBNSS5Y.js} +6 -6
  19. package/dist/{chunk-TQLDQ3XZ.js → chunk-EYFBODHL.js} +2 -2
  20. package/dist/{chunk-AUNBGZS4.js → chunk-FFMWFEUH.js} +2 -2
  21. package/dist/{chunk-EGMQ3SXN.js → chunk-FMYAYX6W.js} +1 -1
  22. package/dist/chunk-FMYAYX6W.js.map +1 -0
  23. package/dist/{chunk-W22IYRZV.js → chunk-I2SUTL7S.js} +5 -5
  24. package/dist/{chunk-XHTN56UT.js → chunk-I534EWJQ.js} +3 -3
  25. package/dist/{chunk-2PZ7LBFT.js → chunk-IDN2OZJY.js} +2 -2
  26. package/dist/{chunk-HKIQA4F6.js → chunk-JWMYAJHD.js} +637 -2179
  27. package/dist/chunk-JWMYAJHD.js.map +1 -0
  28. package/dist/{chunk-MWGDG4QN.js → chunk-K63OEZW7.js} +2 -2
  29. package/dist/{chunk-Q72ZBA4X.js → chunk-KPRCP3MZ.js} +3 -3
  30. package/dist/{chunk-FYYIRFYT.js → chunk-LO5QGAP2.js} +5 -5
  31. package/dist/{chunk-TYM4D3OF.js → chunk-M4ZDKHJV.js} +3 -3
  32. package/dist/{chunk-TYM4D3OF.js.map → chunk-M4ZDKHJV.js.map} +1 -1
  33. package/dist/{chunk-CXRVM7BA.js → chunk-M76LNKMY.js} +2 -2
  34. package/dist/{chunk-WF5PMBIR.js → chunk-MLXAZODL.js} +2 -2
  35. package/dist/{chunk-UFKDY45I.js → chunk-NWW3OJH5.js} +3 -3
  36. package/dist/{chunk-U5R4M7MA.js → chunk-O5CPXIC4.js} +5 -5
  37. package/dist/{chunk-7QAVO7VN.js → chunk-ODVQXXEO.js} +14 -14
  38. package/dist/{chunk-BVSWWBPE.js → chunk-PRG7PKZM.js} +5 -5
  39. package/dist/{chunk-SYGXJBG6.js → chunk-Q4PJSAMP.js} +20 -11
  40. package/dist/chunk-Q4PJSAMP.js.map +1 -0
  41. package/dist/{chunk-Q3F36QZZ.js → chunk-R7F5YQMI.js} +2 -2
  42. package/dist/{chunk-FHHTDPMW.js → chunk-S6DKM6MJ.js} +6 -6
  43. package/dist/{chunk-XMLCXRTS.js → chunk-SQ7WINEU.js} +3 -3
  44. package/dist/{chunk-U6A4YFOF.js → chunk-UBNHVBSV.js} +4 -4
  45. package/dist/{chunk-VU4ZCRZS.js → chunk-VQV3DSHD.js} +6 -6
  46. package/dist/{chunk-JGSPESM3.js → chunk-WMMU5FOO.js} +15 -12
  47. package/dist/chunk-WMMU5FOO.js.map +1 -0
  48. package/dist/{chunk-6C66NL4X.js → chunk-WN2TUP4M.js} +4 -4
  49. package/dist/chunk-WN2TUP4M.js.map +1 -0
  50. package/dist/{chunk-5BGBH3KD.js → chunk-WS3TL2AO.js} +8 -8
  51. package/dist/{chunk-DFKNFZI2.js → chunk-WZ5S4LGX.js} +6 -6
  52. package/dist/{chunk-KDYE3AGL.js → chunk-XYZ7B5BY.js} +2 -2
  53. package/dist/commands/build/marketplace.js +5 -5
  54. package/dist/commands/build/plugins.js +9 -9
  55. package/dist/commands/build/stack.js +9 -9
  56. package/dist/commands/compile.js +10 -10
  57. package/dist/commands/config/index.js +9 -9
  58. package/dist/commands/config/path.js +8 -8
  59. package/dist/commands/config/show.js +9 -9
  60. package/dist/commands/diff.js +8 -8
  61. package/dist/commands/doctor.js +8 -8
  62. package/dist/commands/edit.js +33 -33
  63. package/dist/commands/eject.js +8 -8
  64. package/dist/commands/import/skill.js +9 -9
  65. package/dist/commands/info.js +9 -9
  66. package/dist/commands/init.js +33 -33
  67. package/dist/commands/list.js +8 -8
  68. package/dist/commands/new/agent.js +9 -9
  69. package/dist/commands/new/marketplace.js +10 -10
  70. package/dist/commands/new/skill.js +9 -9
  71. package/dist/commands/outdated.js +8 -8
  72. package/dist/commands/search.js +11 -11
  73. package/dist/commands/uninstall.js +9 -9
  74. package/dist/commands/update.js +10 -10
  75. package/dist/commands/validate.js +9 -9
  76. package/dist/components/common/select-list.js +2 -2
  77. package/dist/components/skill-search/skill-search.js +3 -3
  78. package/dist/components/wizard/category-grid.js +4 -4
  79. package/dist/components/wizard/category-grid.test.js +13 -13
  80. package/dist/components/wizard/checkbox-grid.js +4 -4
  81. package/dist/components/wizard/checkbox-grid.test.js +4 -4
  82. package/dist/components/wizard/domain-selection.js +13 -13
  83. package/dist/components/wizard/help-modal.js +2 -2
  84. package/dist/components/wizard/menu-item.js +1 -1
  85. package/dist/components/wizard/search-modal.js +3 -3
  86. package/dist/components/wizard/search-modal.test.js +3 -3
  87. package/dist/components/wizard/section-progress.js +2 -2
  88. package/dist/components/wizard/section-progress.test.js +2 -2
  89. package/dist/components/wizard/selection-card.js +2 -2
  90. package/dist/components/wizard/source-grid.js +6 -6
  91. package/dist/components/wizard/source-grid.test.js +15 -15
  92. package/dist/components/wizard/stack-selection.js +11 -11
  93. package/dist/components/wizard/step-agents.js +12 -12
  94. package/dist/components/wizard/step-agents.test.js +15 -15
  95. package/dist/components/wizard/step-build.js +12 -12
  96. package/dist/components/wizard/step-build.test.js +14 -14
  97. package/dist/components/wizard/step-confirm.js +5 -5
  98. package/dist/components/wizard/step-confirm.test.js +11 -11
  99. package/dist/components/wizard/step-refine.js +2 -2
  100. package/dist/components/wizard/step-refine.test.js +2 -2
  101. package/dist/components/wizard/step-settings.js +10 -10
  102. package/dist/components/wizard/step-settings.test.js +13 -13
  103. package/dist/components/wizard/step-sources.js +14 -14
  104. package/dist/components/wizard/step-sources.test.js +17 -17
  105. package/dist/components/wizard/step-stack.js +16 -16
  106. package/dist/components/wizard/step-stack.test.js +17 -17
  107. package/dist/components/wizard/wizard-layout.js +11 -11
  108. package/dist/components/wizard/wizard-tabs.js +2 -2
  109. package/dist/components/wizard/wizard-tabs.test.js +2 -2
  110. package/dist/components/wizard/wizard.js +30 -30
  111. package/dist/config-exports.js +1 -1
  112. package/dist/hooks/init.js +33 -33
  113. package/dist/{loader-TK7YS2I5.js → loader-7RQ4G4TH.js} +5 -5
  114. package/dist/{source-loader-UQXJVVSO.js → source-loader-CXCIDGWV.js} +8 -8
  115. package/dist/source-manager-TPLO2DVS.js +19 -0
  116. package/dist/src/agents/_templates/agent.liquid +24 -0
  117. package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
  118. package/dist/src/agents/_templates/methodologies/context-management.liquid +162 -0
  119. package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
  120. package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
  121. package/dist/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
  122. package/dist/src/agents/_templates/methodologies/write-verification.liquid +43 -0
  123. package/dist/src/agents/meta/agent-summoner/workflow.md +2 -2
  124. package/dist/src/agents/meta/skill-summoner/workflow.md +48 -3
  125. package/dist/stores/wizard-store.js +8 -8
  126. package/dist/stores/wizard-store.test.js +36 -36
  127. package/dist/stores/wizard-store.test.js.map +1 -1
  128. package/package.json +1 -1
  129. package/src/agents/_templates/agent.liquid +24 -0
  130. package/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
  131. package/src/agents/_templates/methodologies/context-management.liquid +162 -0
  132. package/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
  133. package/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
  134. package/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
  135. package/src/agents/_templates/methodologies/write-verification.liquid +43 -0
  136. package/src/agents/meta/agent-summoner/workflow.md +2 -2
  137. package/src/agents/meta/skill-summoner/workflow.md +48 -3
  138. package/dist/chunk-6C66NL4X.js.map +0 -1
  139. package/dist/chunk-EGMQ3SXN.js.map +0 -1
  140. package/dist/chunk-HKIQA4F6.js.map +0 -1
  141. package/dist/chunk-JGSPESM3.js.map +0 -1
  142. package/dist/chunk-PSU42CXK.js.map +0 -1
  143. package/dist/chunk-SYGXJBG6.js.map +0 -1
  144. package/dist/chunk-UQKCYLOA.js.map +0 -1
  145. package/dist/source-manager-HS2ZT4XE.js +0 -19
  146. /package/dist/{chunk-SXGBPQY6.js.map → chunk-2I5SXGXR.js.map} +0 -0
  147. /package/dist/{chunk-CUCF5LM4.js.map → chunk-36YW5E7G.js.map} +0 -0
  148. /package/dist/{chunk-T5DJCIUP.js.map → chunk-3REKTRAN.js.map} +0 -0
  149. /package/dist/{chunk-JOTAIMTC.js.map → chunk-7NACNRFG.js.map} +0 -0
  150. /package/dist/{chunk-SPATQKH6.js.map → chunk-7PMFIL5L.js.map} +0 -0
  151. /package/dist/{chunk-GMUOEQOY.js.map → chunk-7PZFDI46.js.map} +0 -0
  152. /package/dist/{chunk-WXC2Y5TF.js.map → chunk-AE2QHAFO.js.map} +0 -0
  153. /package/dist/{chunk-ZZJ6H6VB.js.map → chunk-CBJTSEI2.js.map} +0 -0
  154. /package/dist/{chunk-AOZBHMYL.js.map → chunk-CCSU4R65.js.map} +0 -0
  155. /package/dist/{chunk-XZ57QYVI.js.map → chunk-CKU7FJNV.js.map} +0 -0
  156. /package/dist/{chunk-QN3V3ES7.js.map → chunk-EEZSCHS2.js.map} +0 -0
  157. /package/dist/{chunk-CBXMOWQY.js.map → chunk-ERHTXNIF.js.map} +0 -0
  158. /package/dist/{chunk-GCT7LSYW.js.map → chunk-EWBNSS5Y.js.map} +0 -0
  159. /package/dist/{chunk-TQLDQ3XZ.js.map → chunk-EYFBODHL.js.map} +0 -0
  160. /package/dist/{chunk-AUNBGZS4.js.map → chunk-FFMWFEUH.js.map} +0 -0
  161. /package/dist/{chunk-W22IYRZV.js.map → chunk-I2SUTL7S.js.map} +0 -0
  162. /package/dist/{chunk-XHTN56UT.js.map → chunk-I534EWJQ.js.map} +0 -0
  163. /package/dist/{chunk-2PZ7LBFT.js.map → chunk-IDN2OZJY.js.map} +0 -0
  164. /package/dist/{chunk-MWGDG4QN.js.map → chunk-K63OEZW7.js.map} +0 -0
  165. /package/dist/{chunk-Q72ZBA4X.js.map → chunk-KPRCP3MZ.js.map} +0 -0
  166. /package/dist/{chunk-FYYIRFYT.js.map → chunk-LO5QGAP2.js.map} +0 -0
  167. /package/dist/{chunk-CXRVM7BA.js.map → chunk-M76LNKMY.js.map} +0 -0
  168. /package/dist/{chunk-WF5PMBIR.js.map → chunk-MLXAZODL.js.map} +0 -0
  169. /package/dist/{chunk-UFKDY45I.js.map → chunk-NWW3OJH5.js.map} +0 -0
  170. /package/dist/{chunk-U5R4M7MA.js.map → chunk-O5CPXIC4.js.map} +0 -0
  171. /package/dist/{chunk-7QAVO7VN.js.map → chunk-ODVQXXEO.js.map} +0 -0
  172. /package/dist/{chunk-BVSWWBPE.js.map → chunk-PRG7PKZM.js.map} +0 -0
  173. /package/dist/{chunk-Q3F36QZZ.js.map → chunk-R7F5YQMI.js.map} +0 -0
  174. /package/dist/{chunk-FHHTDPMW.js.map → chunk-S6DKM6MJ.js.map} +0 -0
  175. /package/dist/{chunk-XMLCXRTS.js.map → chunk-SQ7WINEU.js.map} +0 -0
  176. /package/dist/{chunk-U6A4YFOF.js.map → chunk-UBNHVBSV.js.map} +0 -0
  177. /package/dist/{chunk-VU4ZCRZS.js.map → chunk-VQV3DSHD.js.map} +0 -0
  178. /package/dist/{chunk-5BGBH3KD.js.map → chunk-WS3TL2AO.js.map} +0 -0
  179. /package/dist/{chunk-DFKNFZI2.js.map → chunk-WZ5S4LGX.js.map} +0 -0
  180. /package/dist/{chunk-KDYE3AGL.js.map → chunk-XYZ7B5BY.js.map} +0 -0
  181. /package/dist/{loader-TK7YS2I5.js.map → loader-7RQ4G4TH.js.map} +0 -0
  182. /package/dist/{source-loader-UQXJVVSO.js.map → source-loader-CXCIDGWV.js.map} +0 -0
  183. /package/dist/{source-manager-HS2ZT4XE.js.map → source-manager-TPLO2DVS.js.map} +0 -0
@@ -0,0 +1,111 @@
1
+ <success_criteria_template>
2
+
3
+ Every task needs explicit, measurable criteria that define "done." This prevents agents from stopping too early or continuing unnecessarily.
4
+
5
+ Success criteria must be:
6
+
7
+ 1. **Specific** - No ambiguity about what "done" means
8
+ 2. **Measurable** - Can verify with tests, checks, or observations
9
+ 3. **Achievable** - Within scope of the task
10
+ 4. **Verifiable** - Can provide evidence of completion
11
+
12
+ ## Template Structure
13
+
14
+ Use this structure when defining success criteria:
15
+
16
+ ```xml
17
+ <success_criteria>
18
+ Your implementation must meet these criteria:
19
+
20
+ **Functional Requirements:**
21
+ 1. [Specific behavior that must work]
22
+ 2. [Another specific behavior]
23
+
24
+ **Technical Requirements:**
25
+ 3. All existing tests continue to pass
26
+ 4. New functionality is covered by tests with >80% coverage
27
+ 5. Code follows existing patterns in [specific files]
28
+
29
+ **Constraints:**
30
+ 6. No new dependencies are introduced
31
+ 7. Changes are limited to [specific files/modules]
32
+ 8. Performance is equivalent to or better than [baseline]
33
+
34
+ **After Implementation:**
35
+ - Run the test suite and report results
36
+ - Verify each criterion is met
37
+ - Report any criteria that aren't met and explain why
38
+ </success_criteria>
39
+ ```
40
+
41
+ </success_criteria_template>
42
+
43
+ ### Good vs. Bad Success Criteria
44
+
45
+ **Bad (vague, unmeasurable):**
46
+
47
+ ```
48
+ - Feature works well
49
+ - Code is clean
50
+ - No bugs
51
+ - Good user experience
52
+ ```
53
+
54
+ **Problem:** No specific, measurable targets. What does "works" mean? Which tests? How do you know it's "clean"?
55
+
56
+ **Good (specific, measurable):**
57
+
58
+ ```
59
+ 1. User can click "Edit Profile" button and modal appears
60
+ 2. Modal displays current values (name, email, bio)
61
+ 3. Email validation prevents invalid formats (test@test passes, test fails)
62
+ 4. Form submission updates user record in database
63
+ 5. Success message displays after save
64
+ 6. All tests in profile-editor.test.ts pass
65
+ 7. New tests cover: happy path, validation errors, network errors
66
+ 8. No modifications to authentication system (auth.py unchanged)
67
+ 9. Follows form pattern from SettingsForm.tsx (lines 45-89)
68
+ ```
69
+
70
+ **Why better:** Each criterion can be verified with a simple yes/no check.
71
+
72
+ ---
73
+
74
+ <verification_process>
75
+
76
+ ### Verification Process
77
+
78
+ After completing work, systematically verify:
79
+
80
+ ```xml
81
+ <verification_checklist>
82
+ For each success criterion:
83
+ 1. State the criterion
84
+ 2. Describe how you verified it
85
+ 3. Provide evidence (test output, behavior observed, file comparison)
86
+ 4. Mark as PASS (met) or FAIL (not met)
87
+
88
+ If any criterion is FAIL:
89
+ - Explain why it's not met
90
+ - Indicate if it's a blocker or acceptable deviation
91
+ - Suggest what's needed to meet it
92
+ </verification_checklist>
93
+ ```
94
+
95
+ **Example Verification:**
96
+
97
+ ```
98
+ Criterion 1: User can click "Edit Profile" and see modal with current values
99
+ PASS Verified: Tested in browser, modal opens with user's current name, email, bio
100
+ Evidence: Screenshot attached, manual test passed
101
+
102
+ Criterion 5: All tests in profile-editor.test.ts pass
103
+ PASS Verified: Ran `npm test profile-editor.test.ts`
104
+ Evidence: All 12 tests passing, 0 failures
105
+
106
+ Criterion 7: No modifications to authentication system
107
+ PASS Verified: git diff shows no changes to auth.py or related files
108
+ Evidence: `git diff main...feature-branch -- auth.py` returns empty
109
+ ```
110
+
111
+ </verification_process>
@@ -0,0 +1,43 @@
1
+ <write_verification_protocol>
2
+
3
+ **CRITICAL: Never report success without verifying your work was actually saved.**
4
+
5
+ ### Why This Exists
6
+
7
+ Agents can:
8
+
9
+ 1. Analyze what needs to change
10
+ 2. Generate correct content
11
+ 3. Plan the edits
12
+ 4. **Fail to actually execute the Write/Edit operations**
13
+ 5. **Report success based on the plan, not reality**
14
+
15
+ This causes downstream failures that are hard to debug because the agent reported success.
16
+
17
+ ### Mandatory Verification Steps
18
+
19
+ **After completing ANY file edits, you MUST:**
20
+
21
+ 1. **Re-read the file(s) you just edited** using the Read tool
22
+ 2. **Verify your changes exist in the file:**
23
+ - For new content: Confirm the new text/code is present
24
+ - For edits: Confirm the old content was replaced
25
+ - For structural changes: Confirm the structure is correct
26
+ 3. **If verification fails:**
27
+ - Report: "VERIFICATION FAILED: [what was expected] not found in [file]"
28
+ - Do NOT report success
29
+ - Re-attempt the edit operation
30
+ 4. **Only report success AFTER verification passes**
31
+
32
+ ### Verification Checklist
33
+
34
+ Include this in your final validation:
35
+
36
+ ```
37
+ **Write Verification:**
38
+ - [ ] Re-read file(s) after completing edits
39
+ - [ ] Verified expected changes exist in file
40
+ - [ ] Only reporting success after verification passed
41
+ ```
42
+
43
+ </write_verification_protocol>
@@ -356,8 +356,8 @@ Skills use a three-file structure in domain-based directories:
356
356
 
357
357
  - **Location:** `.claude/skills/{domain}-{category}-{technology}/`
358
358
  - **Files:** `SKILL.md`, `metadata.yaml`, `reference.md` (optional)
359
- - **Domains:** `web-`, `api-`, `cli-`, `meta-`
360
- - **Examples:** `web-framework-react/`, `api-database-drizzle/`, `meta-methodology-investigation-requirements/`
359
+ - **Domains:** `web-`, `api-`, `cli-`, `shared-`, `mobile-`
360
+ - **Examples:** `web-framework-react/`, `api-database-drizzle/`, `shared-meta-reviewing/`
361
361
 
362
362
  ---
363
363
 
@@ -762,8 +762,8 @@ For complex skill creation/improvement tasks spanning multiple conversation turn
762
762
  - [ ] Has `<patterns>` section with Core Patterns with embedded good/bad examples
763
763
  - [ ] Has `<performance>` section for optimization patterns (OPTIONAL - include if relevant)
764
764
  - [ ] Has `<decision_framework>` section
765
- - [ ] Has `<integration>` section for stack integration guidance (OPTIONAL - include if meaningful)
766
- - [ ] Has `<red_flags>` section with "Gotchas & Edge Cases" subsection
765
+ - [ ] Has `<integration>` section ONLY if skill has its own ecosystem packages to list (OPTIONAL must NOT name external tools from other domains per atomicity bible)
766
+ - [ ] Has `<red_flags>` section with "Gotchas & Edge Cases" subsection (REQUIRED in SKILL.md, not just reference.md)
767
767
 
768
768
  **Example Quality:**
769
769
  - [ ] Good/Bad pairs embedded in each Core Pattern
@@ -774,6 +774,26 @@ For complex skill creation/improvement tasks spanning multiple conversation turn
774
774
  - [ ] Named exports used (no default exports)
775
775
  - [ ] Patterns use `#### SubsectionName` headers as needed
776
776
 
777
+ **Atomicity (REQUIRED — most common source of skill defects):**
778
+ - [ ] Grep for `NEXT_PUBLIC_`, `@repo/`, `@/lib/` — replace with generic names
779
+ - [ ] Grep for external tool names from other domains (React Query, Zustand, SCSS, MSW, Vitest, lucide-react, Hono, Drizzle)
780
+ - [ ] `<integration>` section (if present) names ONLY the skill's own ecosystem packages, not external tools
781
+ - [ ] "When NOT to use" does NOT name specific competing tools by name
782
+ - [ ] Decision trees end within this skill's domain (no "→ Use React Query" exits)
783
+ - [ ] Critical requirements actually relate to THIS technology (no template contamination — e.g. `runInAction()` in a non-MobX skill)
784
+
785
+ **File Structure:**
786
+ - [ ] `examples/core.md` exists (ALWAYS required — rename the most fundamental file if needed)
787
+ - [ ] `<red_flags>` section exists in SKILL.md (not just in reference.md)
788
+ - [ ] SKILL.md is the decision layer (~500 lines max): brief 3-10 line snippets + links to example files, NOT full implementations
789
+ - [ ] No content duplicated between SKILL.md and example files
790
+ - [ ] No content duplicated between SKILL.md and reference.md
791
+
792
+ **API Accuracy:**
793
+ - [ ] For each code example's main API call, verified the function signature against official docs
794
+ - [ ] Verified which package an import comes from (not just the function name)
795
+ - [ ] Checked npm for the latest stable version — updated version claims if stale
796
+
777
797
  **Write Verification:**
778
798
  - [ ] Re-read the files after completing edits
779
799
  - [ ] Verified all required files exist
@@ -818,6 +838,25 @@ For complex skill creation/improvement tasks spanning multiple conversation turn
818
838
  - [ ] Any removed content was ONLY removed because it was redundant or violated conventions
819
839
  - [ ] Added prompt-bible structure AROUND existing content, not replacing it
820
840
 
841
+ **Atomicity (REQUIRED — most common source of skill defects):**
842
+ - [ ] Grep for `NEXT_PUBLIC_`, `@repo/`, `@/lib/` — replace with generic names
843
+ - [ ] Grep for external tool names from other domains (React Query, Zustand, SCSS, MSW, Vitest, lucide-react, Hono, Drizzle)
844
+ - [ ] `<integration>` section (if present) names ONLY the skill's own ecosystem packages, not external tools
845
+ - [ ] "When NOT to use" does NOT name specific competing tools by name
846
+ - [ ] Decision trees end within this skill's domain
847
+ - [ ] Critical requirements actually relate to THIS technology (no template contamination)
848
+
849
+ **File Structure:**
850
+ - [ ] `examples/core.md` exists (ALWAYS required)
851
+ - [ ] `<red_flags>` section exists in SKILL.md
852
+ - [ ] SKILL.md serves as decision layer (~500 lines max): brief snippets + links, NOT full implementations
853
+ - [ ] No content duplicated between SKILL.md, reference.md, and example files
854
+
855
+ **API Accuracy:**
856
+ - [ ] For each code example's main API call, verified the function signature against official docs
857
+ - [ ] Verified which package an import comes from (not just the function name)
858
+ - [ ] Checked npm for the latest stable version — updated version claims if stale
859
+
821
860
  **Write Verification:**
822
861
  - [ ] Re-read the files after completing edits
823
862
  - [ ] Verified changes were actually written
@@ -847,10 +886,16 @@ For complex skill creation/improvement tasks spanning multiple conversation turn
847
886
 
848
887
  **Completeness:**
849
888
  - [ ] All major patterns covered
850
- - [ ] Integration guidance provided (if meaningful)
889
+ - [ ] Integration guidance (if present) is generic — names only skill's own packages, not external tools
851
890
  - [ ] Testing approaches included (if applicable)
852
891
  - [ ] Performance section addresses optimization (if relevant)
853
892
 
893
+ **Content Ownership (no duplication):**
894
+ - [ ] SKILL.md owns: decisions, philosophy, red flags, brief pattern snippets
895
+ - [ ] Example files own: full code implementations (SKILL.md links to them, doesn't duplicate)
896
+ - [ ] reference.md owns: quick-lookup tables, checklists, API reference
897
+ - [ ] Anti-patterns appear in ONE location (SKILL.md red flags OR reference.md, not both)
898
+
854
899
  **Currency:**
855
900
  - [ ] No deprecated patterns recommended
856
901
  - [ ] Version-specific content accurate
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  useWizardStore
4
- } from "../chunk-BVSWWBPE.js";
5
- import "../chunk-5BGBH3KD.js";
6
- import "../chunk-XHTN56UT.js";
7
- import "../chunk-HKIQA4F6.js";
8
- import "../chunk-6C66NL4X.js";
9
- import "../chunk-SYGXJBG6.js";
10
- import "../chunk-EGMQ3SXN.js";
11
- import "../chunk-PSU42CXK.js";
4
+ } from "../chunk-PRG7PKZM.js";
5
+ import "../chunk-WS3TL2AO.js";
6
+ import "../chunk-I534EWJQ.js";
7
+ import "../chunk-JWMYAJHD.js";
8
+ import "../chunk-WN2TUP4M.js";
9
+ import "../chunk-Q4PJSAMP.js";
10
+ import "../chunk-FMYAYX6W.js";
11
+ import "../chunk-7XUKTYVD.js";
12
12
  import "../chunk-DHET7RCE.js";
13
13
  export {
14
14
  useWizardStore
@@ -9,12 +9,12 @@ import {
9
9
  ALL_SKILLS_WEB_FRAMEWORK_MATRIX,
10
10
  ALL_SKILLS_WEB_PAIR_CATEGORIES_MATRIX,
11
11
  REACT_HONO_FRAMEWORK_API_MATRIX
12
- } from "../chunk-UQKCYLOA.js";
13
- import "../chunk-TYM4D3OF.js";
12
+ } from "../chunk-6F3CZLD6.js";
13
+ import "../chunk-M4ZDKHJV.js";
14
14
  import {
15
15
  SKILLS,
16
16
  createMockMatrix
17
- } from "../chunk-JGSPESM3.js";
17
+ } from "../chunk-WMMU5FOO.js";
18
18
  import {
19
19
  beforeEach,
20
20
  describe,
@@ -23,17 +23,17 @@ import {
23
23
  } from "../chunk-XY3XDVMI.js";
24
24
  import {
25
25
  useWizardStore
26
- } from "../chunk-BVSWWBPE.js";
27
- import "../chunk-5BGBH3KD.js";
28
- import "../chunk-XHTN56UT.js";
26
+ } from "../chunk-PRG7PKZM.js";
27
+ import "../chunk-WS3TL2AO.js";
28
+ import "../chunk-I534EWJQ.js";
29
29
  import {
30
30
  initializeMatrix,
31
31
  typedKeys
32
- } from "../chunk-HKIQA4F6.js";
33
- import "../chunk-6C66NL4X.js";
34
- import "../chunk-SYGXJBG6.js";
35
- import "../chunk-EGMQ3SXN.js";
36
- import "../chunk-PSU42CXK.js";
32
+ } from "../chunk-JWMYAJHD.js";
33
+ import "../chunk-WN2TUP4M.js";
34
+ import "../chunk-Q4PJSAMP.js";
35
+ import "../chunk-FMYAYX6W.js";
36
+ import "../chunk-7XUKTYVD.js";
37
37
  import {
38
38
  init_esm_shims
39
39
  } from "../chunk-DHET7RCE.js";
@@ -720,7 +720,7 @@ describe("WizardStore", () => {
720
720
  const store = useWizardStore.getState();
721
721
  const stack = {
722
722
  agents: {
723
- misc: { "shared-methodology": [sa("meta-methodology-vitest")] }
723
+ misc: { "shared-meta": [sa("meta-methodology-vitest")] }
724
724
  }
725
725
  };
726
726
  initializeMatrix(ALL_SKILLS_METHODOLOGY_BARE_MATRIX);
@@ -733,10 +733,10 @@ describe("WizardStore", () => {
733
733
  const stack = {
734
734
  agents: {
735
735
  "pattern-scout": {
736
- "shared-methodology": [
737
- sa("meta-methodology-investigation-requirements", true),
738
- sa("meta-methodology-anti-over-engineering", true),
739
- sa("meta-methodology-success-criteria", true)
736
+ "shared-meta": [
737
+ sa("shared-meta-research-methodology", true),
738
+ sa("shared-meta-reviewing", true),
739
+ sa("shared-meta-cli-reviewing", true)
740
740
  ]
741
741
  }
742
742
  }
@@ -744,10 +744,10 @@ describe("WizardStore", () => {
744
744
  initializeMatrix(ALL_SKILLS_METHODOLOGY_MATRIX);
745
745
  store.populateFromStack(stack);
746
746
  const { domainSelections } = useWizardStore.getState();
747
- globalExpect(domainSelections.shared["shared-methodology"]).toEqual([
748
- "meta-methodology-investigation-requirements",
749
- "meta-methodology-anti-over-engineering",
750
- "meta-methodology-success-criteria"
747
+ globalExpect(domainSelections.shared["shared-meta"]).toEqual([
748
+ "shared-meta-research-methodology",
749
+ "shared-meta-reviewing",
750
+ "shared-meta-cli-reviewing"
751
751
  ]);
752
752
  });
753
753
  it("should handle single-element and multi-element arrays across agents", () => {
@@ -756,9 +756,9 @@ describe("WizardStore", () => {
756
756
  agents: {
757
757
  web: {
758
758
  "web-framework": [sa("web-framework-react", true)],
759
- "shared-methodology": [
760
- sa("meta-methodology-investigation-requirements", true),
761
- sa("meta-methodology-anti-over-engineering", true)
759
+ "shared-meta": [
760
+ sa("shared-meta-research-methodology", true),
761
+ sa("shared-meta-reviewing", true)
762
762
  ]
763
763
  },
764
764
  api: { "api-api": [sa("api-framework-hono", true)] }
@@ -768,9 +768,9 @@ describe("WizardStore", () => {
768
768
  store.populateFromStack(stack);
769
769
  const { domainSelections } = useWizardStore.getState();
770
770
  globalExpect(domainSelections.web["web-framework"]).toEqual(["web-framework-react"]);
771
- globalExpect(domainSelections.shared["shared-methodology"]).toEqual([
772
- "meta-methodology-investigation-requirements",
773
- "meta-methodology-anti-over-engineering"
771
+ globalExpect(domainSelections.shared["shared-meta"]).toEqual([
772
+ "shared-meta-research-methodology",
773
+ "shared-meta-reviewing"
774
774
  ]);
775
775
  globalExpect(domainSelections.api["api-api"]).toEqual(["api-framework-hono"]);
776
776
  });
@@ -779,15 +779,15 @@ describe("WizardStore", () => {
779
779
  const stack = {
780
780
  agents: {
781
781
  agent1: {
782
- "shared-methodology": [
783
- sa("meta-methodology-investigation-requirements", true),
784
- sa("meta-methodology-anti-over-engineering", true)
782
+ "shared-meta": [
783
+ sa("shared-meta-research-methodology", true),
784
+ sa("shared-meta-reviewing", true)
785
785
  ]
786
786
  },
787
787
  agent2: {
788
- "shared-methodology": [
789
- sa("meta-methodology-anti-over-engineering", true),
790
- sa("meta-methodology-success-criteria", true)
788
+ "shared-meta": [
789
+ sa("shared-meta-reviewing", true),
790
+ sa("shared-meta-cli-reviewing", true)
791
791
  ]
792
792
  }
793
793
  }
@@ -795,10 +795,10 @@ describe("WizardStore", () => {
795
795
  initializeMatrix(ALL_SKILLS_METHODOLOGY_MATRIX);
796
796
  store.populateFromStack(stack);
797
797
  const { domainSelections } = useWizardStore.getState();
798
- globalExpect(domainSelections.shared["shared-methodology"]).toEqual([
799
- "meta-methodology-investigation-requirements",
800
- "meta-methodology-anti-over-engineering",
801
- "meta-methodology-success-criteria"
798
+ globalExpect(domainSelections.shared["shared-meta"]).toEqual([
799
+ "shared-meta-research-methodology",
800
+ "shared-meta-reviewing",
801
+ "shared-meta-cli-reviewing"
802
802
  ]);
803
803
  });
804
804
  });