@su-record/vibe 3.2.1 → 3.2.3

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 (236) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.en.md +4 -4
  3. package/README.md +4 -4
  4. package/dist/__tests__/skill-namespace.test.d.ts +2 -0
  5. package/dist/__tests__/skill-namespace.test.d.ts.map +1 -0
  6. package/dist/__tests__/skill-namespace.test.js +60 -0
  7. package/dist/__tests__/skill-namespace.test.js.map +1 -0
  8. package/dist/__tests__/stakes-contract.test.d.ts +2 -0
  9. package/dist/__tests__/stakes-contract.test.d.ts.map +1 -0
  10. package/dist/__tests__/stakes-contract.test.js +110 -0
  11. package/dist/__tests__/stakes-contract.test.js.map +1 -0
  12. package/dist/__tests__/wiring-integrity.test.js +5 -5
  13. package/dist/__tests__/wiring-integrity.test.js.map +1 -1
  14. package/dist/cli/generate-release-notes.d.ts +3 -0
  15. package/dist/cli/generate-release-notes.d.ts.map +1 -0
  16. package/dist/cli/generate-release-notes.js +47 -0
  17. package/dist/cli/generate-release-notes.js.map +1 -0
  18. package/dist/cli/postinstall/constants.d.ts +6 -6
  19. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  20. package/dist/cli/postinstall/constants.js +114 -46
  21. package/dist/cli/postinstall/constants.js.map +1 -1
  22. package/dist/cli/postinstall/fs-utils.d.ts +1 -0
  23. package/dist/cli/postinstall/fs-utils.d.ts.map +1 -1
  24. package/dist/cli/postinstall/fs-utils.js +25 -0
  25. package/dist/cli/postinstall/fs-utils.js.map +1 -1
  26. package/dist/cli/postinstall/fs-utils.test.js +46 -11
  27. package/dist/cli/postinstall/fs-utils.test.js.map +1 -1
  28. package/dist/cli/postinstall/main.d.ts.map +1 -1
  29. package/dist/cli/postinstall/main.js +3 -2
  30. package/dist/cli/postinstall/main.js.map +1 -1
  31. package/dist/tests/curated-release-notes.test.d.ts +2 -0
  32. package/dist/tests/curated-release-notes.test.d.ts.map +1 -0
  33. package/dist/tests/curated-release-notes.test.js +106 -0
  34. package/dist/tests/curated-release-notes.test.js.map +1 -0
  35. package/dist/tools/release/releaseNotes.d.ts +21 -0
  36. package/dist/tools/release/releaseNotes.d.ts.map +1 -0
  37. package/dist/tools/release/releaseNotes.js +105 -0
  38. package/dist/tools/release/releaseNotes.js.map +1 -0
  39. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -3
  40. package/package.json +2 -2
  41. package/skills/vibe/SKILL.md +14 -0
  42. package/skills/{agents-md → vibe.agents-md}/SKILL.md +1 -1
  43. package/skills/{brand-assets → vibe.brand-assets}/SKILL.md +1 -1
  44. package/skills/{capability-loop → vibe.capability-loop}/SKILL.md +1 -1
  45. package/skills/{chub-usage → vibe.chub-usage}/SKILL.md +1 -1
  46. package/skills/vibe.clone/SKILL.md +295 -3
  47. package/skills/{commerce-patterns → vibe.commerce-patterns}/SKILL.md +1 -1
  48. package/skills/{commit-push-pr → vibe.commit-push-pr}/SKILL.md +2 -2
  49. package/skills/{context7-usage → vibe.context7-usage}/SKILL.md +1 -1
  50. package/skills/vibe.contract/SKILL.md +162 -1
  51. package/skills/{create-prd → vibe.create-prd}/SKILL.md +2 -2
  52. package/skills/{design-refine → vibe.design-refine}/SKILL.md +1 -1
  53. package/skills/{design-review → vibe.design-review}/SKILL.md +1 -1
  54. package/skills/{design-teach → vibe.design-teach}/SKILL.md +1 -1
  55. package/skills/{devlog → vibe.devlog}/SKILL.md +1 -1
  56. package/skills/vibe.docs/SKILL.md +256 -1
  57. package/skills/{e2e-commerce → vibe.e2e-commerce}/SKILL.md +1 -1
  58. package/skills/vibe.educational-content/SKILL.md +157 -0
  59. package/skills/vibe.educational-content/references/learning-design.md +81 -0
  60. package/skills/vibe.educational-content/references/output-patterns.md +109 -0
  61. package/skills/vibe.educational-content/references/source-method.md +40 -0
  62. package/skills/{event-comms → vibe.event-comms}/SKILL.md +1 -1
  63. package/skills/{event-ops → vibe.event-ops}/SKILL.md +1 -1
  64. package/skills/{event-planning → vibe.event-planning}/SKILL.md +1 -1
  65. package/skills/vibe.figma/SKILL.md +473 -21
  66. package/skills/vibe.figma/references/branch-phases.md +1 -1
  67. package/skills/{git-worktree → vibe.git-worktree}/SKILL.md +1 -1
  68. package/skills/{handoff → vibe.handoff}/SKILL.md +1 -1
  69. package/skills/{parallel-research → vibe.parallel-research}/SKILL.md +2 -2
  70. package/skills/{presentation → vibe.presentation}/SKILL.md +1 -1
  71. package/skills/{prioritization-frameworks → vibe.prioritization}/SKILL.md +2 -2
  72. package/skills/{priority-todos → vibe.priority-todos}/SKILL.md +1 -1
  73. package/skills/{vercel-react-best-practices → vibe.react-best-practices}/SKILL.md +1 -1
  74. package/skills/vibe.regress/SKILL.md +182 -2
  75. package/skills/vibe.review/SKILL.md +8 -0
  76. package/skills/vibe.run/SKILL.md +392 -1
  77. package/skills/{arch-guard → vibe.run/internal/arch-guard}/templates/violation-report.md +1 -1
  78. package/skills/{seo-checklist → vibe.seo-checklist}/SKILL.md +1 -1
  79. package/skills/vibe.spec/SKILL.md +123 -1
  80. package/skills/vibe.test/SKILL.md +138 -2
  81. package/skills/{tool-fallback → vibe.tool-fallback}/SKILL.md +1 -1
  82. package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/SKILL.md +6 -6
  83. package/skills/{user-personas → vibe.user-personas}/SKILL.md +2 -2
  84. package/skills/vibe.verify/SKILL.md +2 -2
  85. package/skills/{video-production → vibe.video-production}/SKILL.md +1 -1
  86. package/vibe/rules/loop-contract.md +18 -0
  87. package/skills/arch-guard/SKILL.md +0 -183
  88. package/skills/clone/SKILL.md +0 -296
  89. package/skills/contract/SKILL.md +0 -165
  90. package/skills/docs/SKILL.md +0 -259
  91. package/skills/exec-plan/SKILL.md +0 -151
  92. package/skills/figma/SKILL.md +0 -456
  93. package/skills/regress/SKILL.md +0 -184
  94. package/skills/restraint/SKILL.md +0 -72
  95. package/skills/spec/SKILL.md +0 -125
  96. package/skills/test/SKILL.md +0 -140
  97. /package/skills/{agents-md → vibe.agents-md}/rubrics/what-to-keep.md +0 -0
  98. /package/skills/{agents-md → vibe.agents-md}/templates/agents-md.md +0 -0
  99. /package/skills/{agents-md → vibe.agents-md}/templates/claude-md.md +0 -0
  100. /package/skills/{brand-assets → vibe.brand-assets}/rubrics/asset-checklist.md +0 -0
  101. /package/skills/{brand-assets → vibe.brand-assets}/templates/brand-guide.md +0 -0
  102. /package/skills/{capability-loop → vibe.capability-loop}/agents/capability-designer.md +0 -0
  103. /package/skills/{capability-loop → vibe.capability-loop}/agents/failure-analyst.md +0 -0
  104. /package/skills/{capability-loop → vibe.capability-loop}/agents/implementer.md +0 -0
  105. /package/skills/{capability-loop → vibe.capability-loop}/agents/tester.md +0 -0
  106. /package/skills/{capability-loop → vibe.capability-loop}/templates/capability-spec.md +0 -0
  107. /package/skills/{capability-loop → vibe.capability-loop}/templates/failure-analysis.md +0 -0
  108. /package/skills/{clone → vibe.clone}/references/capture-rules.md +0 -0
  109. /package/skills/{clone → vibe.clone}/references/legal-and-error-recovery.md +0 -0
  110. /package/skills/{clone → vibe.clone}/references/refine-rules.md +0 -0
  111. /package/skills/{clone → vibe.clone}/references/scaffold-phases.md +0 -0
  112. /package/skills/{clone → vibe.clone}/references/setup-and-layout.md +0 -0
  113. /package/skills/{commerce-patterns → vibe.commerce-patterns}/rubrics/checkout-flow.md +0 -0
  114. /package/skills/{commerce-patterns → vibe.commerce-patterns}/templates/product-schema.md +0 -0
  115. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/change-analyzer.md +0 -0
  116. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/message-writer.md +0 -0
  117. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/pr-writer.md +0 -0
  118. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/reviewer.md +0 -0
  119. /package/skills/{commit-push-pr → vibe.commit-push-pr}/rubrics/commit-message.md +0 -0
  120. /package/skills/{commit-push-pr → vibe.commit-push-pr}/templates/pr-body.md +0 -0
  121. /package/skills/{context7-usage → vibe.context7-usage}/rubrics/when-to-use.md +0 -0
  122. /package/skills/{create-prd → vibe.create-prd}/agents/edge-case-finder.md +0 -0
  123. /package/skills/{create-prd → vibe.create-prd}/agents/prioritizer.md +0 -0
  124. /package/skills/{create-prd → vibe.create-prd}/agents/requirements-writer.md +0 -0
  125. /package/skills/{create-prd → vibe.create-prd}/agents/researcher.md +0 -0
  126. /package/skills/{create-prd → vibe.create-prd}/agents/reviewer.md +0 -0
  127. /package/skills/{create-prd → vibe.create-prd}/frameworks/jobs-to-be-done.md +0 -0
  128. /package/skills/{create-prd → vibe.create-prd}/frameworks/rice-scoring.md +0 -0
  129. /package/skills/{create-prd → vibe.create-prd}/orchestrator.md +0 -0
  130. /package/skills/{create-prd → vibe.create-prd}/rubrics/completeness.md +0 -0
  131. /package/skills/{create-prd → vibe.create-prd}/templates/prd.md +0 -0
  132. /package/skills/{design-refine → vibe.design-refine}/rubrics/polish-checklist.md +0 -0
  133. /package/skills/{design-refine → vibe.design-refine}/rubrics/token-naming.md +0 -0
  134. /package/skills/{design-refine → vibe.design-refine}/templates/design-system.md +0 -0
  135. /package/skills/{design-refine → vibe.design-refine}/templates/polish-report.md +0 -0
  136. /package/skills/{design-refine → vibe.design-refine}/templates/token-audit.md +0 -0
  137. /package/skills/{design-review → vibe.design-review}/agents/a11y-auditor.md +0 -0
  138. /package/skills/{design-review → vibe.design-review}/agents/performance-auditor.md +0 -0
  139. /package/skills/{design-review → vibe.design-review}/agents/responsive-auditor.md +0 -0
  140. /package/skills/{design-review → vibe.design-review}/agents/scorer.md +0 -0
  141. /package/skills/{design-review → vibe.design-review}/agents/slop-detector.md +0 -0
  142. /package/skills/{design-review → vibe.design-review}/frameworks/core-web-vitals.md +0 -0
  143. /package/skills/{design-review → vibe.design-review}/frameworks/wcag-checklist.md +0 -0
  144. /package/skills/{design-review → vibe.design-review}/orchestrator.md +0 -0
  145. /package/skills/{design-review → vibe.design-review}/rubrics/ai-slop-patterns.md +0 -0
  146. /package/skills/{design-review → vibe.design-review}/rubrics/scoring.md +0 -0
  147. /package/skills/{design-review → vibe.design-review}/rubrics/ux-heuristics.md +0 -0
  148. /package/skills/{design-review → vibe.design-review}/templates/critique-report.md +0 -0
  149. /package/skills/{design-review → vibe.design-review}/templates/report.md +0 -0
  150. /package/skills/{design-teach → vibe.design-teach}/rubrics/brand-personality.md +0 -0
  151. /package/skills/{design-teach → vibe.design-teach}/templates/design-context.json +0 -0
  152. /package/skills/{docs → vibe.docs}/references/api-docs-changelog.md +0 -0
  153. /package/skills/{docs → vibe.docs}/references/codemaps-output.md +0 -0
  154. /package/skills/{docs → vibe.docs}/references/diagram-spec.md +0 -0
  155. /package/skills/{docs → vibe.docs}/templates/architecture.md +0 -0
  156. /package/skills/{docs → vibe.docs}/templates/behavioral-principles.md +0 -0
  157. /package/skills/{docs → vibe.docs}/templates/readme.md +0 -0
  158. /package/skills/{docs → vibe.docs}/templates/release-notes.md +0 -0
  159. /package/skills/{e2e-commerce → vibe.e2e-commerce}/templates/test-scenarios.md +0 -0
  160. /package/skills/{event-comms → vibe.event-comms}/templates/email-invite.md +0 -0
  161. /package/skills/{event-comms → vibe.event-comms}/templates/sns-post.md +0 -0
  162. /package/skills/{event-ops → vibe.event-ops}/rubrics/contingency.md +0 -0
  163. /package/skills/{event-ops → vibe.event-ops}/templates/d-day-checklist.md +0 -0
  164. /package/skills/{event-planning → vibe.event-planning}/rubrics/timeline.md +0 -0
  165. /package/skills/{event-planning → vibe.event-planning}/templates/event-plan.md +0 -0
  166. /package/skills/{figma → vibe.figma}/rubrics/conversion-rules.md +0 -0
  167. /package/skills/{figma → vibe.figma}/rubrics/css-mapping.md +0 -0
  168. /package/skills/{figma → vibe.figma}/rubrics/extraction-checklist.md +0 -0
  169. /package/skills/{figma → vibe.figma}/rubrics/image-rules.md +0 -0
  170. /package/skills/{figma → vibe.figma}/templates/component-index.md +0 -0
  171. /package/skills/{figma → vibe.figma}/templates/component-spec.md +0 -0
  172. /package/skills/{figma → vibe.figma}/templates/component.md +0 -0
  173. /package/skills/{figma → vibe.figma}/templates/figma-handoff.md +0 -0
  174. /package/skills/{figma → vibe.figma}/templates/remapped-tree.md +0 -0
  175. /package/skills/{git-worktree → vibe.git-worktree}/rubrics/when-to-use.md +0 -0
  176. /package/skills/{handoff → vibe.handoff}/agents/context-summarizer.md +0 -0
  177. /package/skills/{handoff → vibe.handoff}/agents/document-writer.md +0 -0
  178. /package/skills/{handoff → vibe.handoff}/agents/state-collector.md +0 -0
  179. /package/skills/{handoff → vibe.handoff}/agents/verifier.md +0 -0
  180. /package/skills/{handoff → vibe.handoff}/rubrics/completeness.md +0 -0
  181. /package/skills/{handoff → vibe.handoff}/templates/handoff.md +0 -0
  182. /package/skills/{parallel-research → vibe.parallel-research}/agents/best-practices.md +0 -0
  183. /package/skills/{parallel-research → vibe.parallel-research}/agents/codebase-patterns.md +0 -0
  184. /package/skills/{parallel-research → vibe.parallel-research}/agents/framework-docs.md +0 -0
  185. /package/skills/{parallel-research → vibe.parallel-research}/agents/security-advisory.md +0 -0
  186. /package/skills/{parallel-research → vibe.parallel-research}/agents/synthesizer.md +0 -0
  187. /package/skills/{parallel-research → vibe.parallel-research}/experts/best-practices.md +0 -0
  188. /package/skills/{parallel-research → vibe.parallel-research}/experts/codebase-patterns.md +0 -0
  189. /package/skills/{parallel-research → vibe.parallel-research}/experts/framework-docs.md +0 -0
  190. /package/skills/{parallel-research → vibe.parallel-research}/experts/security-advisory.md +0 -0
  191. /package/skills/{parallel-research → vibe.parallel-research}/orchestrator.md +0 -0
  192. /package/skills/{parallel-research → vibe.parallel-research}/templates/awesome-list.md +0 -0
  193. /package/skills/{parallel-research → vibe.parallel-research}/templates/paper.md +0 -0
  194. /package/skills/{parallel-research → vibe.parallel-research}/templates/synthesis.md +0 -0
  195. /package/skills/{presentation → vibe.presentation}/references/style-presets.md +0 -0
  196. /package/skills/{prioritization-frameworks → vibe.prioritization}/rubrics/frameworks.md +0 -0
  197. /package/skills/{prioritization-frameworks → vibe.prioritization}/templates/scoring-matrix.md +0 -0
  198. /package/skills/{priority-todos → vibe.priority-todos}/rubrics/prioritization.md +0 -0
  199. /package/skills/{priority-todos → vibe.priority-todos}/templates/todo-board.md +0 -0
  200. /package/skills/{vercel-react-best-practices → vibe.react-best-practices}/rubrics/performance.md +0 -0
  201. /package/skills/{vercel-react-best-practices → vibe.react-best-practices}/rubrics/server-components.md +0 -0
  202. /package/skills/{regress → vibe.regress}/templates/bug.md +0 -0
  203. /package/skills/{regress → vibe.regress}/templates/test-jest.md +0 -0
  204. /package/skills/{regress → vibe.regress}/templates/test-vitest.md +0 -0
  205. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/detector.md +0 -0
  206. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/reporter.md +0 -0
  207. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/rule-generator.md +0 -0
  208. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/violation-checker.md +0 -0
  209. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/frameworks/clean-architecture.md +0 -0
  210. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/frameworks/solid.md +0 -0
  211. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/scripts/check-boundaries.js +0 -0
  212. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/templates/arch-rules.json +0 -0
  213. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/decomposer.md +0 -0
  214. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/dependency-mapper.md +0 -0
  215. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/estimator.md +0 -0
  216. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/validator.md +0 -0
  217. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/orchestrator.md +0 -0
  218. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/rubrics/complexity-scoring.md +0 -0
  219. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/templates/plan.md +0 -0
  220. /package/skills/{seo-checklist → vibe.seo-checklist}/frameworks/structured-data.md +0 -0
  221. /package/skills/{seo-checklist → vibe.seo-checklist}/rubrics/content-seo.md +0 -0
  222. /package/skills/{seo-checklist → vibe.seo-checklist}/rubrics/technical-seo.md +0 -0
  223. /package/skills/{tool-fallback → vibe.tool-fallback}/rubrics/fallback-chain.md +0 -0
  224. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/color-and-contrast.md +0 -0
  225. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/interaction-design.md +0 -0
  226. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/motion-design.md +0 -0
  227. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/responsive-design.md +0 -0
  228. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/spatial-design.md +0 -0
  229. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/typography.md +0 -0
  230. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/ux-writing.md +0 -0
  231. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/rubrics/interaction-states.md +0 -0
  232. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/rubrics/responsive-breakpoints.md +0 -0
  233. /package/skills/{user-personas → vibe.user-personas}/rubrics/research-methods.md +0 -0
  234. /package/skills/{user-personas → vibe.user-personas}/templates/persona.md +0 -0
  235. /package/skills/{video-production → vibe.video-production}/rubrics/quality-checklist.md +0 -0
  236. /package/skills/{video-production → vibe.video-production}/templates/production-plan.md +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: commit-push-pr
3
- invocation: [auto, chain]
2
+ name: vibe.commit-push-pr
3
+ invocation: [auto]
4
4
  tier: optional
5
5
  description: "Commit, push, and create PR in one go. Auto-activates on commit, PR, push keywords."
6
6
  triggers: [commit, push, PR, pull request, merge]
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: context7-usage
2
+ name: vibe.context7-usage
3
3
  invocation: [auto]
4
4
  tier: optional
5
5
  description: "Context7 plugin for latest library documentation. Auto-activates when docs, documentation, latest version, official docs, API reference, or library help is needed."
@@ -30,7 +30,7 @@ A contract = any **interface shape** that external consumers (clients, other ser
30
30
 
31
31
  ## Process
32
32
 
33
- Load skill `contract` with subcommand: `$ARGUMENTS`
33
+ Execute the bundled implementation below with subcommand: `$ARGUMENTS`
34
34
 
35
35
  **Core steps**:
36
36
 
@@ -105,3 +105,164 @@ Right after `/vibe.spec` finishes writing the SPEC, auto-invoke `/vibe.contract
105
105
  ---
106
106
 
107
107
  ARGUMENTS: $ARGUMENTS
108
+
109
+ ## Bundled implementation
110
+
111
+
112
+ # vibe.contract — API Contract Drift Detection
113
+
114
+ **Purpose**: catch divergence between the SPEC's external contract and the actual implementation. Passing tests ≠ contract preserved.
115
+
116
+ ## Why this exists
117
+
118
+ Hidden vibe-coding weakness: as the implementation grows, response shapes drift away from what the SPEC documents. Scenario tests still pass — but **external consumers break**. Manual SPEC-vs-code review is high-friction, so mechanize it.
119
+
120
+ ## Storage Contract
121
+
122
+ ```
123
+ .vibe/contracts/
124
+ <feature>.md # contract SSOT (extracted from SPEC)
125
+ <feature>.snapshot.md # implementation snapshot (last check)
126
+ ```
127
+
128
+ ### Contract frontmatter schema
129
+
130
+ ```yaml
131
+ ---
132
+ feature: string
133
+ extracted-from: .vibe/specs/<feature>.md
134
+ extracted-at: ISO-8601
135
+ source-spec-hash: sha256 # for change detection
136
+ endpoints:
137
+ - id: unique-kebab-id # e.g. get-user-by-id
138
+ kind: http | graphql | event | function
139
+ # http
140
+ method: GET | POST | PUT | DELETE | PATCH
141
+ path: /users/:id
142
+ request:
143
+ params: { name: type, ... }
144
+ query: { name: type, ... }
145
+ body: { field: type, ... } | null
146
+ required: [field, ...]
147
+ response:
148
+ statusCodes:
149
+ 200: { schema }
150
+ 404: { error: string }
151
+ required-fields:
152
+ 200: [id, email]
153
+ # graphql
154
+ operation: query | mutation
155
+ name: string
156
+ args: { ... }
157
+ returns: { ... }
158
+ # event
159
+ topic: string
160
+ payload: { ... }
161
+ # function
162
+ signature: "(a: string, b: number) => Promise<User>"
163
+ module: path/to/file.ts
164
+ ---
165
+ ```
166
+
167
+ ## Subcommands
168
+
169
+ ### 1. `extract <feature>` — pull contract out of the SPEC
170
+
171
+ **Steps**:
172
+ 1. Load SPEC file (single file or split folder)
173
+ 2. Search sections in this order:
174
+ - `## API` / `## Endpoints` / `## Interface` / `## Contract`
175
+ - Markdown tables (method/path/request/response headers)
176
+ - OpenAPI/JSON Schema snippets inside code blocks
177
+ 3. Extraction failure (no such section) → **exit cleanly with `no-contract` state**. Not every feature has an API.
178
+ 4. Success → convert to the frontmatter structure
179
+ 5. `source-spec-hash`: sha256 of SPEC content (for next extract to detect change)
180
+ 6. Save to `.vibe/contracts/<feature>.md` (no-op if file exists with the same hash)
181
+
182
+ **Caveat**: extraction is LLM-driven. Mark low-confidence fields with `# unconfirmed` so the user can review.
183
+
184
+ ### 2. `check <feature>` — contract vs implementation
185
+
186
+ **Steps**:
187
+ 1. Load `.vibe/contracts/<feature>.md`. If missing → **suggest extract first**.
188
+ 2. For each endpoint, find implementation:
189
+ - http: detect framework (Express, Fastify, Next.js API routes, Hono, ...)
190
+ - graphql: locate resolver files
191
+ - event: producer/consumer code
192
+ - function: module export
193
+ 3. Extract implementation signature/schema → compare against contract
194
+ 4. Classify drift (severity table in command file)
195
+ 5. Persist snapshot at `.vibe/contracts/<feature>.snapshot.md` (current implementation state)
196
+
197
+ ### 3. `diff <feature>` — changes since last snapshot
198
+
199
+ **Steps**:
200
+ 1. If `.snapshot.md` does not exist → say "first run" and exit
201
+ 2. Re-extract current implementation; compare to existing snapshot
202
+ 3. Output **only changed fields** in ASCII diff form:
203
+ ```
204
+ endpoints/get-user-by-id/response/200:
205
+ - email: string
206
+ + email: string | null ← nullability added (P1 breaking)
207
+ + phoneNumber: string ← new field (P3 safe)
208
+ ```
209
+ 4. On any drift, auto-call `/vibe.regress register --from-contract`
210
+
211
+ ## Drift Severity Matrix
212
+
213
+ (matches command file — keep both in sync on edits)
214
+
215
+ ## Integration Points
216
+
217
+ ### From /vibe.spec
218
+
219
+ Auto-invoke right after the SPEC is written:
220
+ ```
221
+ Load skill `vibe.contract` with: extract <feature>
222
+ ```
223
+ Failure does not stop `/vibe.spec` (extraction is optional). On success, `/vibe.run` references this contract.
224
+
225
+ ### From /vibe.verify
226
+
227
+ After all scenarios pass:
228
+ ```
229
+ Load skill `vibe.contract` with: check <feature>
230
+ ```
231
+ - no drift → verify still passes
232
+ - P1 drift → demote verify to fail; auto-register
233
+ - P2 / P3 drift → warning only; verify still passes
234
+
235
+ ### To /vibe.regress
236
+
237
+ On P1 drift:
238
+ ```
239
+ Load skill `vibe.regress` with:
240
+ subcommand: register --from-contract
241
+ feature: <feature>
242
+ symptom: "Contract drift: <endpoint-id> <drift-type>"
243
+ root-cause-tag: integration
244
+ ```
245
+
246
+ ## Framework Detection Rules
247
+
248
+ HTTP framework detection order:
249
+ 1. `package.json` dependencies: `next` → Next.js API routes
250
+ 2. `fastify` → Fastify
251
+ 3. `express` → Express
252
+ 4. `hono` → Hono
253
+ 5. `@nestjs/core` → NestJS
254
+ 6. None detected → ask user for manual mapping
255
+
256
+ After detection, grep for each framework's **route definition pattern** to map endpoints:
257
+ - Next.js: `pages/api/**` or `app/api/**/route.ts`
258
+ - Express: `app.get|post|put|delete|patch\(`
259
+ - Fastify: `fastify.get|post|...` or route configuration
260
+ - Hono: `app.get|post|...`
261
+
262
+ ## Done Criteria
263
+
264
+ - [ ] `extract` does not error on SPEC without an API section
265
+ - [ ] `source-spec-hash`-based re-extract is a no-op when unchanged
266
+ - [ ] `check` reports each drift with severity + location (file:line)
267
+ - [ ] P1 drift always invokes `/vibe.regress`
268
+ - [ ] On framework detection failure, ask the user — do not silently skip
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: create-prd
2
+ name: vibe.create-prd
3
3
  invocation: [auto, chain]
4
4
  tier: standard
5
5
  description: "Create a Product Requirements Document using a comprehensive 8-section template covering problem, objectives, segments, value propositions, solution, and release planning."
6
6
  triggers: [prd, product requirements, feature spec, requirements document]
7
7
  priority: 60
8
- chain-next: [user-personas, prioritization-frameworks]
8
+ chain-next: [vibe.user-personas, vibe.prioritization]
9
9
  ---
10
10
 
11
11
  # Create a Product Requirements Document
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: design-refine
2
+ name: vibe.design-refine
3
3
  user-invocable: true
4
4
  invocation: [command, auto]
5
5
  tier: standard
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: design-review
2
+ name: vibe.design-review
3
3
  user-invocable: true
4
4
  invocation: [command, auto]
5
5
  tier: standard
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: design-teach
2
+ name: vibe.design-teach
3
3
  user-invocable: false
4
4
  invocation: [auto]
5
5
  tier: standard
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: devlog
2
+ name: vibe.devlog
3
3
  invocation: [auto]
4
4
  tier: standard
5
5
  description: "Auto-generate devlog posts from git commit history. Triggers every N commits, writes markdown to configured target repo."
@@ -32,6 +32,261 @@ Generate or update project documentation by analyzing the actual codebase.
32
32
 
33
33
  ---
34
34
 
35
- Load skill `docs` — subcommand에 따라 해당 섹션 실행
35
+ Execute the bundled implementation below — subcommand에 따라 해당 섹션 실행
36
36
 
37
37
  ARGUMENTS: $ARGUMENTS
38
+
39
+ ## Bundled implementation
40
+
41
+
42
+ # vibe.docs — Project Documentation Generator
43
+
44
+ Generate or update project documentation by analyzing the actual codebase.
45
+
46
+ ## Subcommands
47
+
48
+ ### `/vibe.docs readme` — README Generation
49
+
50
+ Analyze the codebase and generate a complete README.md:
51
+
52
+ 1. **Detect project nature**: Read package.json, CLAUDE.md, existing README
53
+ 2. **Extract key info**: Tech stack, installation, usage, API surface
54
+ 3. **Generate sections**:
55
+
56
+ ```markdown
57
+ # Project Name
58
+ > One-line description from package.json
59
+
60
+ ## What is this?
61
+ [2-3 sentences explaining the problem and solution]
62
+
63
+ ## Quick Start
64
+ [Installation + minimal usage example]
65
+
66
+ ## Features
67
+ [Auto-detected from codebase — exported functions, CLI commands, API endpoints]
68
+
69
+ ## Architecture
70
+ [High-level module diagram if 5+ source directories]
71
+
72
+ ## Configuration
73
+ [Detected config files and their purposes]
74
+
75
+ ## Development
76
+ [Build, test, lint commands from package.json scripts]
77
+
78
+ ## License
79
+ ```
80
+
81
+ **Analysis approach:**
82
+ ```
83
+ Read: package.json → name, description, scripts, dependencies
84
+ Glob: src/**/*.ts → module structure
85
+ Grep: pattern="export (function|class|const)" → public API surface
86
+ Grep: pattern="(app|router)\.(get|post|put|delete)" → API endpoints
87
+ Read: CLAUDE.md → project conventions
88
+ ```
89
+
90
+ ### `/vibe.docs guide` — User Guide
91
+
92
+ Generate a step-by-step user guide:
93
+
94
+ 1. **Installation**: Detect package manager, prerequisites
95
+ 2. **Configuration**: Find all config files, document each option
96
+ 3. **Usage**: Extract CLI commands or API usage patterns
97
+ 4. **FAQ**: Common issues from error handling patterns
98
+ 5. **Troubleshooting**: Known edge cases from test files
99
+
100
+ Output: `docs/GUIDE.md`
101
+
102
+ **Analysis approach:**
103
+ ```
104
+ Read: package.json → bin, scripts, peerDependencies
105
+ Glob: src/cli/commands/*.ts → CLI command list
106
+ Grep: pattern="throw new|Error\(" → common error scenarios
107
+ Grep: pattern="(process\.env|config)\.\w+" → configuration options
108
+ ```
109
+
110
+ ### `/vibe.docs arch` — Architecture Documentation
111
+
112
+ Generate architecture overview with diagrams:
113
+
114
+ 1. **Module map**: Directory structure → responsibility mapping
115
+ 2. **Dependency graph**: Import analysis → Mermaid diagram
116
+ 3. **Data flow**: Entry points → processing → output
117
+ 4. **Key decisions**: Extract from CLAUDE.md and code comments
118
+
119
+ Output: `docs/ARCHITECTURE.md`
120
+
121
+ **Mermaid diagram generation:**
122
+ ```
123
+ Glob: src/**/ → module list
124
+ Grep: pattern="^import .+ from" → dependency edges
125
+ Read: CLAUDE.md → architecture notes
126
+
127
+ Generate:
128
+ graph TD
129
+ CLI[CLI Commands] --> Core[Core Logic]
130
+ Core --> Infra[Infrastructure]
131
+ Infra --> DB[(Database)]
132
+ Infra --> API[External APIs]
133
+ ```
134
+
135
+ ### `/vibe.docs agent` — Agent Instruction Files (CLAUDE.md / AGENTS.md)
136
+
137
+ **CLI ↔ file mapping:**
138
+
139
+ | CLI | File | Support |
140
+ |---|---|---|
141
+ | Claude Code | `CLAUDE.md` | 100% (Primary) |
142
+ | Codex | `AGENTS.md` | 100% (Primary) |
143
+ | Antigravity CLI | `GEMINI.md` | 100% |
144
+
145
+ Cursor is not supported — do not generate or check Cursor-specific context files.
146
+
147
+ **Source of truth:**
148
+ - **`CLAUDE.md` is the content SSOT.** Always edit it first; `AGENTS.md` is a regenerated derivative.
149
+ - Behavioral block: `skills/vibe.docs/templates/behavioral-principles.md` (4 Karpathy principles, wrapped in `<!-- VIBE-BEHAVIORAL:START/END -->` markers).
150
+
151
+ **Procedure (applies to both creation and modification):**
152
+
153
+ 1. **Detect state** — check which of `CLAUDE.md` / `AGENTS.md` / `GEMINI.md` exist in project root. **`CLAUDE.md` is always the SSOT**; if missing, create it first (never derive from AGENTS.md).
154
+ 2. **For `AGENTS.md`**:
155
+ - **If missing** → create by cloning `CLAUDE.md` + applying CLI substitution (below).
156
+ - **If exists** → regenerate from current `CLAUDE.md` + substitution, preserving user-specific additions outside the VIBE block.
157
+ 3. **For `GEMINI.md`**:
158
+ - **If missing** → create by cloning `CLAUDE.md` + applying Antigravity substitution.
159
+ - **If exists** → regenerate from current `CLAUDE.md` + substitution, preserving user-specific additions outside the VIBE block.
160
+ 4. **CLI substitution for `AGENTS.md`** (Codex): `Claude Code` → `Codex` · `~/.claude/` → `~/.codex/` · `.claude/` → `.codex/` · `CLAUDE.md` → `AGENTS.md`. `CLAUDE.md` itself gets no substitution.
161
+ 5. **CLI substitution for `GEMINI.md`** (Antigravity): `Claude Code` → `Antigravity CLI` · `~/.claude/` → `~/.gemini/` · `.claude/` → `.gemini/` · `CLAUDE.md` → `GEMINI.md`.
162
+ 6. **Validate every touched file (whether newly created or modified)** via the `agents-md` skill — see validation block below. **Never write or save without running this step.**
163
+ 7. Report per file: created / updated / skipped / validation warnings.
164
+
165
+ **Idempotent:** Re-running re-syncs the behavioral block and re-applies substitutions without duplication.
166
+
167
+ **Mandatory validation (every create & every update) — Load skill `vibe.agents-md`:**
168
+
169
+ - Size target 60–150 lines (Optimal). Warn at 200+, force split/trim at 300+.
170
+ - 4-question check per line (outside `VIBE-BEHAVIORAL` block):
171
+ - Would the agent make a mistake without this? (No → delete)
172
+ - Needed every session? (No → move to SPEC/plan)
173
+ - Can a linter/hook replace it? (Yes → move)
174
+ - Discoverable from code? (Yes → delete)
175
+ - Lost-in-the-Middle: critical rules at top, frequently-violated rules at bottom.
176
+ - Addy Osmani test: "Can the agent discover this by reading the code?" → Yes = delete.
177
+ - Strip tech-stack name-drops already stated in `package.json`.
178
+
179
+ Report line ranges to trim per file. Do not auto-delete; surface findings for user approval before finalizing.
180
+
181
+ **When to run:**
182
+ - After `vibe init` / `vibe update` if `CLAUDE.md` or `AGENTS.md` is missing or out of sync.
183
+ - After upgrading `@su-record/vibe` when the behavioral template changes.
184
+ - Whenever the SSOT file is edited — re-sync `AGENTS.md`.
185
+ - User explicitly asks to refresh agent instructions.
186
+
187
+ ### `/vibe.docs release` — Release Notes
188
+
189
+ Generate release notes from git history:
190
+
191
+ 1. **Collect**: `git log` since last tag
192
+ 2. **Classify**: feat/fix/refactor/docs/chore from commit messages
193
+ 3. **Group**: By category with breaking changes highlighted
194
+ 4. **Format**: Semantic versioning suggestion
195
+
196
+ Output: `RELEASE_NOTES.md` or append to `CHANGELOG.md`
197
+
198
+ **Output format:**
199
+ ```markdown
200
+ ## [x.y.z] - YYYY-MM-DD
201
+
202
+ ### Breaking Changes
203
+ - ...
204
+
205
+ ### Features
206
+ - feat: description (#PR)
207
+
208
+ ### Bug Fixes
209
+ - fix: description (#PR)
210
+
211
+ ### Other
212
+ - refactor/docs/chore items
213
+ ```
214
+
215
+ ### `/vibe.docs diagram` — Diagram Generation
216
+
217
+ Generate Mermaid diagrams for architecture, ERD, flowchart, or sequence
218
+ visualization directly (native capability — no dedicated agent). Ground the
219
+ diagram in sources first: folder structure and imports for architecture;
220
+ `models/`, `migrations/`, `schema.*`, ORM definitions for ERDs; the real
221
+ branch/return structure of the code for flowcharts.
222
+
223
+ **Options:**
224
+ - `/vibe.docs diagram` (default): Architecture overview
225
+ - `/vibe.docs diagram --er`: Entity-Relationship Diagram
226
+ - `/vibe.docs diagram --flow`: Flowchart
227
+ - `/vibe.docs diagram --seq`: Sequence Diagram
228
+
229
+ > Read `references/diagram-spec.md` for the full output conventions (Mermaid syntax per diagram type, save location, accuracy constraints).
230
+
231
+ **Example:**
232
+ ```
233
+ /vibe.docs diagram --er
234
+ ```
235
+
236
+ ### `/vibe.docs codemaps` — Codemaps Generation
237
+
238
+ Generate auto-documentation from codebase structure directly (native
239
+ capability — no dedicated agent).
240
+
241
+ **Output Location:** `docs/CODEMAPS/`
242
+
243
+ > Read `references/codemaps-output.md` for the full generated-files tree, per-file contents, and tools used.
244
+
245
+ **Example:**
246
+ ```
247
+ /vibe.docs codemaps
248
+ ```
249
+
250
+ ## Pipeline Integration
251
+
252
+ `/vibe.docs` completes the development pipeline:
253
+
254
+ ```
255
+ /vibe.spec → Design (what to build)
256
+ /vibe.run → Implement (build it)
257
+ /vibe.trace → Verify (prove it works)
258
+ /vibe.docs → Document (explain it)
259
+ ```
260
+
261
+ ### Auto-trigger after `/vibe.trace`
262
+
263
+ When `/vibe.trace` completes with all scenarios passing, suggest:
264
+ > "All scenarios verified. Run `/vibe.docs readme` to update documentation?"
265
+
266
+ ## Guidelines
267
+
268
+ ### DO
269
+ - Read the actual codebase before generating — never guess
270
+ - Preserve existing documentation that's still accurate
271
+ - Include concrete code examples from the actual project
272
+ - Keep language consistent with project (Korean/English based on CLAUDE.md)
273
+ - For `/vibe.docs release` (changelog mode), follow `references/api-docs-changelog.md` natively — no dedicated agent
274
+ - For API-heavy projects (api-docs mode), follow `references/api-docs-changelog.md` natively
275
+ - For `/vibe.docs arch` and `/vibe.docs diagram` Mermaid generation, follow `references/diagram-spec.md` natively
276
+ - Use the `agents-md` skill for `/vibe.docs agent` — applies equally to CLAUDE.md and AGENTS.md
277
+
278
+ ### DON'T
279
+ - Don't generate placeholder text ("Lorem ipsum", "TODO: fill in")
280
+ - Don't document internal implementation details in user-facing docs
281
+ - Don't create files without reading existing ones first
282
+ - Don't assume features — verify by reading code
283
+
284
+ ## Quality Checklist
285
+
286
+ Before finalizing any document:
287
+
288
+ - [ ] All code examples are runnable (copy-paste ready)
289
+ - [ ] Installation steps tested against package.json
290
+ - [ ] Links and paths are valid
291
+ - [ ] No placeholder text remaining
292
+ - [ ] Consistent with project language (Korean/English)
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: e2e-commerce
2
+ name: vibe.e2e-commerce
3
3
  invocation: [auto]
4
4
  tier: core
5
5
  description: "E2E test scenarios for commerce checkout and payment flows. Provides ready-made Playwright test templates for cart→checkout→payment→confirmation flows, including PG sandbox testing (Toss/Stripe), error scenarios (payment failure, timeout, stock exhaustion), and idempotency verification. Use when writing E2E tests for any e-commerce feature — checkout, payment, order status, or refund flows."
@@ -0,0 +1,157 @@
1
+ ---
2
+ name: vibe.educational-content
3
+ description: Create evidence-backed educational content from a subject, curriculum, source document, repository, product, expert interview, or demonstration. Use when Codex needs to research, design, script, verify, assess, or repurpose a lesson, course, tutorial, workshop, explainer, screencast, teaching article, presentation, worksheet, microlearning unit, or educational social content for any domain, including development and technical education. Especially useful when content needs observable learning outcomes, audience-appropriate scaffolding, practice and feedback, valid assessment, source traceability, or clear separation between verified facts and inference.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Create Educational Content
8
+
9
+ Turn a subject into a publishable learning experience whose outcome can be observed. Design the learning before polishing the presentation.
10
+
11
+ ## Set the contract
12
+
13
+ Infer missing low-risk details and state the assumptions. Ask only when audience, format, or publication constraints would materially change the result.
14
+
15
+ Capture:
16
+
17
+ - outcome: what the learner can do afterward
18
+ - audience: age or role, prior knowledge, motivation, language, accessibility needs
19
+ - context: self-study, classroom, onboarding, reference, campaign, or performance support
20
+ - format: lesson, article, workshop, video, course, worksheet, assessment, or short-form
21
+ - source: curriculum, document, URL, repository, expert input, dataset, or user notes
22
+ - constraints: duration, length, standards, platform, brand, deadline
23
+ - proof bar: demonstration, explanation, performance, artifact, quiz, rubric, or observation
24
+
25
+ Do not begin with a broad topic such as “teach climate change” or “teach Docker.” Rewrite it as an observable outcome such as “a learner distinguishes weather from climate using three examples” or “a frontend developer deploys a two-service Compose app and verifies health checks.”
26
+
27
+ Read [references/learning-design.md](references/learning-design.md) when selecting objectives, activities, scaffolding, or assessments.
28
+
29
+ ## Choose a teaching path
30
+
31
+ Prefer a progression from concrete experience to independent performance:
32
+
33
+ 1. Activate relevant prior knowledge or expose a meaningful problem.
34
+ 2. Model the target performance with a concrete example.
35
+ 3. Guide practice with prompts, hints, or worked steps.
36
+ 4. Give feedback against explicit criteria.
37
+ 5. Remove support and require independent application or transfer.
38
+
39
+ For technical tool education, the progression may be easy surface → inspectable implementation → power-user surface → automation. Use a different order when prerequisites, domain practice, or safety require it. Avoid fact or feature tours; organize around learner performance.
40
+
41
+ ## Research the claim surface
42
+
43
+ Build a claim ledger before drafting. For each consequential claim record:
44
+
45
+ | Claim | Evidence | Status | Content use |
46
+ |---|---|---|---|
47
+ | What the tool does | primary docs or observed run | verified | state directly |
48
+ | Why it behaved that way | code, docs, or controlled test | verified/inferred | label inference |
49
+ | What may vary | version, OS, account, UI, network | uncertain | add caveat |
50
+
51
+ Prefer primary, authoritative, and current sources. Use multiple credible perspectives for contested subjects. Inspect target materials in full before explaining them. Never invent quotations, citations, commands, settings, UI labels, research findings, statistics, benchmark numbers, or results.
52
+
53
+ For source-video-derived work, read [references/source-method.md](references/source-method.md) to preserve the method without copying the source presentation.
54
+
55
+ ## Build the learning evidence
56
+
57
+ Create the smallest realistic activity that elicits the promised outcome.
58
+
59
+ 1. Record environment and prerequisites.
60
+ 2. Establish the initial state.
61
+ 3. Model one successful performance or worked example.
62
+ 4. Give the learner a meaningful action, decision, explanation, or creation task.
63
+ 5. Capture evidence with a criterion-aligned check.
64
+ 6. Record one likely misconception and corrective feedback path.
65
+
66
+ For code, tools, experiments, or procedures, keep demonstrations reproducible where possible and verify actual results. For conceptual subjects, require explanation, classification, comparison, prediction, or application instead of relying only on recall. Separate paid, destructive, medical, legal, physical, or external actions from harmless learning checks and require appropriate authorization or supervision.
67
+
68
+ ## Design the narrative
69
+
70
+ Use this spine:
71
+
72
+ 1. **Promise** — show the concrete end state.
73
+ 2. **Mental model** — explain only the concepts needed for the next action.
74
+ 3. **Setup** — connect prior knowledge and define prerequisites.
75
+ 4. **Model** — demonstrate the target thinking or performance.
76
+ 5. **Practice** — progress through small, observable attempts.
77
+ 6. **Feedback** — address a realistic misconception or failure.
78
+ 7. **Assess** — elicit independent evidence of learning.
79
+ 8. **Extend** — transfer the idea to a new context.
80
+ 9. **Recap** — map the evidence back to the learning outcome.
81
+
82
+ Pair every explanation with evidence:
83
+
84
+ - explanation establishes what and why
85
+ - example or demonstration shows how
86
+ - learner activity elicits performance
87
+ - assessment shows whether the outcome was reached
88
+
89
+ Do not confuse exposure with learning. Watching, reading, or clicking is not sufficient evidence unless the stated objective only requires recognition. Explain decisions, relationships, constraints, and changes in understanding.
90
+
91
+ ## Draft the production package
92
+
93
+ Produce only artifacts the requested format needs. Use the schemas in [references/output-patterns.md](references/output-patterns.md).
94
+
95
+ At minimum include:
96
+
97
+ - title and one-sentence learner promise
98
+ - audience and prerequisites
99
+ - outline with estimated pacing
100
+ - model, guided practice, and independent practice
101
+ - assessment, answer guidance, or scoring rubric
102
+ - evidence or capture plan
103
+ - safety and uncertainty notes
104
+ - final quality checklist
105
+
106
+ For video, add scene intent, narration, visual action, learner prompt, and evidence shot. For articles, add reflection or practice prompts and expected reasoning; add runnable code and expected output when technical. For workshops, add checkpoints, facilitator moves, and misconception recovery.
107
+
108
+ ## Apply gates
109
+
110
+ Stop and repair the artifact when a gate fails.
111
+
112
+ ### Accuracy gate
113
+
114
+ - Every consequential claim is verified or explicitly labeled as inference.
115
+ - Version-sensitive facts are current and sourced.
116
+ - Commands and code match the stated environment.
117
+
118
+ ### Learning-evidence gate
119
+
120
+ - The activity elicits the behavior named in the objective.
121
+ - Practice includes timely, actionable feedback.
122
+ - Independent assessment does not give away the answer.
123
+ - Expected evidence and evaluation criteria are explicit.
124
+
125
+ ### Teaching gate
126
+
127
+ - Each section advances the learner toward the promise.
128
+ - New concepts appear immediately before use.
129
+ - Jargon is defined once and then used consistently.
130
+ - Cognitive load fits the audience and format.
131
+ - Examples are inclusive, relevant, and free of avoidable stereotypes.
132
+
133
+ ### Safety gate
134
+
135
+ - External writes, destructive actions, and high-stakes activities have an approval or supervision boundary.
136
+ - Secrets, personal data, and account details are absent from captures.
137
+ - Minor learners and sensitive subjects receive appropriate privacy and safeguarding treatment.
138
+
139
+ ### Production gate
140
+
141
+ - Claims, narration, captions, visuals, activities, and assessments agree.
142
+ - No placeholder, fabricated output, or unsupported superlative remains.
143
+ - The final artifact names limitations and the next useful action.
144
+
145
+ ## Handle failure
146
+
147
+ - If the source cannot be accessed, report the missing evidence and request an artifact or alternate source; do not fabricate an analysis.
148
+ - If a live tool is unavailable, use a recorded fixture and label it as simulated.
149
+ - If a technical demonstration fails, reproduce once, state one root-cause hypothesis, add a failing check, then fix.
150
+ - If learners cannot complete an activity, distinguish missing prerequisite knowledge, unclear instruction, excessive load, and a flawed assessment before adding more explanation.
151
+ - If behavior is nondeterministic, show the invariant acceptance criteria instead of promising identical output.
152
+ - If evidence is contested or culturally situated, present the source context and credible disagreement rather than manufacturing certainty.
153
+ - If the requested scope exceeds the format, preserve the core learning outcome and move depth into a follow-up resource.
154
+
155
+ ## Finish
156
+
157
+ Return the production-ready artifact, the verification evidence, and a short list of assumptions or unresolved uncertainties. Keep research notes out of the final content unless they help the learner judge a claim.