@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.
- package/CLAUDE.md +1 -1
- package/README.en.md +4 -4
- package/README.md +4 -4
- package/dist/__tests__/skill-namespace.test.d.ts +2 -0
- package/dist/__tests__/skill-namespace.test.d.ts.map +1 -0
- package/dist/__tests__/skill-namespace.test.js +60 -0
- package/dist/__tests__/skill-namespace.test.js.map +1 -0
- package/dist/__tests__/stakes-contract.test.d.ts +2 -0
- package/dist/__tests__/stakes-contract.test.d.ts.map +1 -0
- package/dist/__tests__/stakes-contract.test.js +110 -0
- package/dist/__tests__/stakes-contract.test.js.map +1 -0
- package/dist/__tests__/wiring-integrity.test.js +5 -5
- package/dist/__tests__/wiring-integrity.test.js.map +1 -1
- package/dist/cli/generate-release-notes.d.ts +3 -0
- package/dist/cli/generate-release-notes.d.ts.map +1 -0
- package/dist/cli/generate-release-notes.js +47 -0
- package/dist/cli/generate-release-notes.js.map +1 -0
- package/dist/cli/postinstall/constants.d.ts +6 -6
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +114 -46
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/fs-utils.d.ts +1 -0
- package/dist/cli/postinstall/fs-utils.d.ts.map +1 -1
- package/dist/cli/postinstall/fs-utils.js +25 -0
- package/dist/cli/postinstall/fs-utils.js.map +1 -1
- package/dist/cli/postinstall/fs-utils.test.js +46 -11
- package/dist/cli/postinstall/fs-utils.test.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +3 -2
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/tests/curated-release-notes.test.d.ts +2 -0
- package/dist/tests/curated-release-notes.test.d.ts.map +1 -0
- package/dist/tests/curated-release-notes.test.js +106 -0
- package/dist/tests/curated-release-notes.test.js.map +1 -0
- package/dist/tools/release/releaseNotes.d.ts +21 -0
- package/dist/tools/release/releaseNotes.d.ts.map +1 -0
- package/dist/tools/release/releaseNotes.js +105 -0
- package/dist/tools/release/releaseNotes.js.map +1 -0
- package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -3
- package/package.json +2 -2
- package/skills/vibe/SKILL.md +14 -0
- package/skills/{agents-md → vibe.agents-md}/SKILL.md +1 -1
- package/skills/{brand-assets → vibe.brand-assets}/SKILL.md +1 -1
- package/skills/{capability-loop → vibe.capability-loop}/SKILL.md +1 -1
- package/skills/{chub-usage → vibe.chub-usage}/SKILL.md +1 -1
- package/skills/vibe.clone/SKILL.md +295 -3
- package/skills/{commerce-patterns → vibe.commerce-patterns}/SKILL.md +1 -1
- package/skills/{commit-push-pr → vibe.commit-push-pr}/SKILL.md +2 -2
- package/skills/{context7-usage → vibe.context7-usage}/SKILL.md +1 -1
- package/skills/vibe.contract/SKILL.md +162 -1
- package/skills/{create-prd → vibe.create-prd}/SKILL.md +2 -2
- package/skills/{design-refine → vibe.design-refine}/SKILL.md +1 -1
- package/skills/{design-review → vibe.design-review}/SKILL.md +1 -1
- package/skills/{design-teach → vibe.design-teach}/SKILL.md +1 -1
- package/skills/{devlog → vibe.devlog}/SKILL.md +1 -1
- package/skills/vibe.docs/SKILL.md +256 -1
- package/skills/{e2e-commerce → vibe.e2e-commerce}/SKILL.md +1 -1
- package/skills/vibe.educational-content/SKILL.md +157 -0
- package/skills/vibe.educational-content/references/learning-design.md +81 -0
- package/skills/vibe.educational-content/references/output-patterns.md +109 -0
- package/skills/vibe.educational-content/references/source-method.md +40 -0
- package/skills/{event-comms → vibe.event-comms}/SKILL.md +1 -1
- package/skills/{event-ops → vibe.event-ops}/SKILL.md +1 -1
- package/skills/{event-planning → vibe.event-planning}/SKILL.md +1 -1
- package/skills/vibe.figma/SKILL.md +473 -21
- package/skills/vibe.figma/references/branch-phases.md +1 -1
- package/skills/{git-worktree → vibe.git-worktree}/SKILL.md +1 -1
- package/skills/{handoff → vibe.handoff}/SKILL.md +1 -1
- package/skills/{parallel-research → vibe.parallel-research}/SKILL.md +2 -2
- package/skills/{presentation → vibe.presentation}/SKILL.md +1 -1
- package/skills/{prioritization-frameworks → vibe.prioritization}/SKILL.md +2 -2
- package/skills/{priority-todos → vibe.priority-todos}/SKILL.md +1 -1
- package/skills/{vercel-react-best-practices → vibe.react-best-practices}/SKILL.md +1 -1
- package/skills/vibe.regress/SKILL.md +182 -2
- package/skills/vibe.review/SKILL.md +8 -0
- package/skills/vibe.run/SKILL.md +392 -1
- package/skills/{arch-guard → vibe.run/internal/arch-guard}/templates/violation-report.md +1 -1
- package/skills/{seo-checklist → vibe.seo-checklist}/SKILL.md +1 -1
- package/skills/vibe.spec/SKILL.md +123 -1
- package/skills/vibe.test/SKILL.md +138 -2
- package/skills/{tool-fallback → vibe.tool-fallback}/SKILL.md +1 -1
- package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/SKILL.md +6 -6
- package/skills/{user-personas → vibe.user-personas}/SKILL.md +2 -2
- package/skills/vibe.verify/SKILL.md +2 -2
- package/skills/{video-production → vibe.video-production}/SKILL.md +1 -1
- package/vibe/rules/loop-contract.md +18 -0
- package/skills/arch-guard/SKILL.md +0 -183
- package/skills/clone/SKILL.md +0 -296
- package/skills/contract/SKILL.md +0 -165
- package/skills/docs/SKILL.md +0 -259
- package/skills/exec-plan/SKILL.md +0 -151
- package/skills/figma/SKILL.md +0 -456
- package/skills/regress/SKILL.md +0 -184
- package/skills/restraint/SKILL.md +0 -72
- package/skills/spec/SKILL.md +0 -125
- package/skills/test/SKILL.md +0 -140
- /package/skills/{agents-md → vibe.agents-md}/rubrics/what-to-keep.md +0 -0
- /package/skills/{agents-md → vibe.agents-md}/templates/agents-md.md +0 -0
- /package/skills/{agents-md → vibe.agents-md}/templates/claude-md.md +0 -0
- /package/skills/{brand-assets → vibe.brand-assets}/rubrics/asset-checklist.md +0 -0
- /package/skills/{brand-assets → vibe.brand-assets}/templates/brand-guide.md +0 -0
- /package/skills/{capability-loop → vibe.capability-loop}/agents/capability-designer.md +0 -0
- /package/skills/{capability-loop → vibe.capability-loop}/agents/failure-analyst.md +0 -0
- /package/skills/{capability-loop → vibe.capability-loop}/agents/implementer.md +0 -0
- /package/skills/{capability-loop → vibe.capability-loop}/agents/tester.md +0 -0
- /package/skills/{capability-loop → vibe.capability-loop}/templates/capability-spec.md +0 -0
- /package/skills/{capability-loop → vibe.capability-loop}/templates/failure-analysis.md +0 -0
- /package/skills/{clone → vibe.clone}/references/capture-rules.md +0 -0
- /package/skills/{clone → vibe.clone}/references/legal-and-error-recovery.md +0 -0
- /package/skills/{clone → vibe.clone}/references/refine-rules.md +0 -0
- /package/skills/{clone → vibe.clone}/references/scaffold-phases.md +0 -0
- /package/skills/{clone → vibe.clone}/references/setup-and-layout.md +0 -0
- /package/skills/{commerce-patterns → vibe.commerce-patterns}/rubrics/checkout-flow.md +0 -0
- /package/skills/{commerce-patterns → vibe.commerce-patterns}/templates/product-schema.md +0 -0
- /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/change-analyzer.md +0 -0
- /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/message-writer.md +0 -0
- /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/pr-writer.md +0 -0
- /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/reviewer.md +0 -0
- /package/skills/{commit-push-pr → vibe.commit-push-pr}/rubrics/commit-message.md +0 -0
- /package/skills/{commit-push-pr → vibe.commit-push-pr}/templates/pr-body.md +0 -0
- /package/skills/{context7-usage → vibe.context7-usage}/rubrics/when-to-use.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/agents/edge-case-finder.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/agents/prioritizer.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/agents/requirements-writer.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/agents/researcher.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/agents/reviewer.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/frameworks/jobs-to-be-done.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/frameworks/rice-scoring.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/orchestrator.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/rubrics/completeness.md +0 -0
- /package/skills/{create-prd → vibe.create-prd}/templates/prd.md +0 -0
- /package/skills/{design-refine → vibe.design-refine}/rubrics/polish-checklist.md +0 -0
- /package/skills/{design-refine → vibe.design-refine}/rubrics/token-naming.md +0 -0
- /package/skills/{design-refine → vibe.design-refine}/templates/design-system.md +0 -0
- /package/skills/{design-refine → vibe.design-refine}/templates/polish-report.md +0 -0
- /package/skills/{design-refine → vibe.design-refine}/templates/token-audit.md +0 -0
- /package/skills/{design-review → vibe.design-review}/agents/a11y-auditor.md +0 -0
- /package/skills/{design-review → vibe.design-review}/agents/performance-auditor.md +0 -0
- /package/skills/{design-review → vibe.design-review}/agents/responsive-auditor.md +0 -0
- /package/skills/{design-review → vibe.design-review}/agents/scorer.md +0 -0
- /package/skills/{design-review → vibe.design-review}/agents/slop-detector.md +0 -0
- /package/skills/{design-review → vibe.design-review}/frameworks/core-web-vitals.md +0 -0
- /package/skills/{design-review → vibe.design-review}/frameworks/wcag-checklist.md +0 -0
- /package/skills/{design-review → vibe.design-review}/orchestrator.md +0 -0
- /package/skills/{design-review → vibe.design-review}/rubrics/ai-slop-patterns.md +0 -0
- /package/skills/{design-review → vibe.design-review}/rubrics/scoring.md +0 -0
- /package/skills/{design-review → vibe.design-review}/rubrics/ux-heuristics.md +0 -0
- /package/skills/{design-review → vibe.design-review}/templates/critique-report.md +0 -0
- /package/skills/{design-review → vibe.design-review}/templates/report.md +0 -0
- /package/skills/{design-teach → vibe.design-teach}/rubrics/brand-personality.md +0 -0
- /package/skills/{design-teach → vibe.design-teach}/templates/design-context.json +0 -0
- /package/skills/{docs → vibe.docs}/references/api-docs-changelog.md +0 -0
- /package/skills/{docs → vibe.docs}/references/codemaps-output.md +0 -0
- /package/skills/{docs → vibe.docs}/references/diagram-spec.md +0 -0
- /package/skills/{docs → vibe.docs}/templates/architecture.md +0 -0
- /package/skills/{docs → vibe.docs}/templates/behavioral-principles.md +0 -0
- /package/skills/{docs → vibe.docs}/templates/readme.md +0 -0
- /package/skills/{docs → vibe.docs}/templates/release-notes.md +0 -0
- /package/skills/{e2e-commerce → vibe.e2e-commerce}/templates/test-scenarios.md +0 -0
- /package/skills/{event-comms → vibe.event-comms}/templates/email-invite.md +0 -0
- /package/skills/{event-comms → vibe.event-comms}/templates/sns-post.md +0 -0
- /package/skills/{event-ops → vibe.event-ops}/rubrics/contingency.md +0 -0
- /package/skills/{event-ops → vibe.event-ops}/templates/d-day-checklist.md +0 -0
- /package/skills/{event-planning → vibe.event-planning}/rubrics/timeline.md +0 -0
- /package/skills/{event-planning → vibe.event-planning}/templates/event-plan.md +0 -0
- /package/skills/{figma → vibe.figma}/rubrics/conversion-rules.md +0 -0
- /package/skills/{figma → vibe.figma}/rubrics/css-mapping.md +0 -0
- /package/skills/{figma → vibe.figma}/rubrics/extraction-checklist.md +0 -0
- /package/skills/{figma → vibe.figma}/rubrics/image-rules.md +0 -0
- /package/skills/{figma → vibe.figma}/templates/component-index.md +0 -0
- /package/skills/{figma → vibe.figma}/templates/component-spec.md +0 -0
- /package/skills/{figma → vibe.figma}/templates/component.md +0 -0
- /package/skills/{figma → vibe.figma}/templates/figma-handoff.md +0 -0
- /package/skills/{figma → vibe.figma}/templates/remapped-tree.md +0 -0
- /package/skills/{git-worktree → vibe.git-worktree}/rubrics/when-to-use.md +0 -0
- /package/skills/{handoff → vibe.handoff}/agents/context-summarizer.md +0 -0
- /package/skills/{handoff → vibe.handoff}/agents/document-writer.md +0 -0
- /package/skills/{handoff → vibe.handoff}/agents/state-collector.md +0 -0
- /package/skills/{handoff → vibe.handoff}/agents/verifier.md +0 -0
- /package/skills/{handoff → vibe.handoff}/rubrics/completeness.md +0 -0
- /package/skills/{handoff → vibe.handoff}/templates/handoff.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/agents/best-practices.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/agents/codebase-patterns.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/agents/framework-docs.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/agents/security-advisory.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/agents/synthesizer.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/experts/best-practices.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/experts/codebase-patterns.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/experts/framework-docs.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/experts/security-advisory.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/orchestrator.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/templates/awesome-list.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/templates/paper.md +0 -0
- /package/skills/{parallel-research → vibe.parallel-research}/templates/synthesis.md +0 -0
- /package/skills/{presentation → vibe.presentation}/references/style-presets.md +0 -0
- /package/skills/{prioritization-frameworks → vibe.prioritization}/rubrics/frameworks.md +0 -0
- /package/skills/{prioritization-frameworks → vibe.prioritization}/templates/scoring-matrix.md +0 -0
- /package/skills/{priority-todos → vibe.priority-todos}/rubrics/prioritization.md +0 -0
- /package/skills/{priority-todos → vibe.priority-todos}/templates/todo-board.md +0 -0
- /package/skills/{vercel-react-best-practices → vibe.react-best-practices}/rubrics/performance.md +0 -0
- /package/skills/{vercel-react-best-practices → vibe.react-best-practices}/rubrics/server-components.md +0 -0
- /package/skills/{regress → vibe.regress}/templates/bug.md +0 -0
- /package/skills/{regress → vibe.regress}/templates/test-jest.md +0 -0
- /package/skills/{regress → vibe.regress}/templates/test-vitest.md +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/detector.md +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/reporter.md +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/rule-generator.md +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/violation-checker.md +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/frameworks/clean-architecture.md +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/frameworks/solid.md +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/scripts/check-boundaries.js +0 -0
- /package/skills/{arch-guard → vibe.run/internal/arch-guard}/templates/arch-rules.json +0 -0
- /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/decomposer.md +0 -0
- /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/dependency-mapper.md +0 -0
- /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/estimator.md +0 -0
- /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/validator.md +0 -0
- /package/skills/{exec-plan → vibe.run/internal/exec-plan}/orchestrator.md +0 -0
- /package/skills/{exec-plan → vibe.run/internal/exec-plan}/rubrics/complexity-scoring.md +0 -0
- /package/skills/{exec-plan → vibe.run/internal/exec-plan}/templates/plan.md +0 -0
- /package/skills/{seo-checklist → vibe.seo-checklist}/frameworks/structured-data.md +0 -0
- /package/skills/{seo-checklist → vibe.seo-checklist}/rubrics/content-seo.md +0 -0
- /package/skills/{seo-checklist → vibe.seo-checklist}/rubrics/technical-seo.md +0 -0
- /package/skills/{tool-fallback → vibe.tool-fallback}/rubrics/fallback-chain.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/color-and-contrast.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/interaction-design.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/motion-design.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/responsive-design.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/spatial-design.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/typography.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/ux-writing.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/rubrics/interaction-states.md +0 -0
- /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/rubrics/responsive-breakpoints.md +0 -0
- /package/skills/{user-personas → vibe.user-personas}/rubrics/research-methods.md +0 -0
- /package/skills/{user-personas → vibe.user-personas}/templates/persona.md +0 -0
- /package/skills/{video-production → vibe.video-production}/rubrics/quality-checklist.md +0 -0
- /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
|
|
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
|
-
|
|
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
|
|
8
|
+
chain-next: [vibe.user-personas, vibe.prioritization]
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Create a Product Requirements Document
|
|
@@ -32,6 +32,261 @@ Generate or update project documentation by analyzing the actual codebase.
|
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
|
|
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.
|