@su-record/vibe 2.9.32 → 2.9.34
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/.env.example +37 -37
- package/CLAUDE.md +109 -109
- package/LICENSE +21 -21
- package/README.en.md +220 -220
- package/README.md +171 -171
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -294
- package/agents/event/event-comms.md +78 -78
- package/agents/event/event-content.md +68 -68
- package/agents/event/event-image.md +95 -95
- package/agents/event/event-ops.md +84 -84
- package/agents/event/event-scheduler.md +69 -69
- package/agents/event/event-speaker.md +86 -86
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/qa/qa-coordinator.md +131 -131
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/teams/debug-team.md +70 -70
- package/agents/teams/dev-team.md +88 -88
- package/agents/teams/docs-team.md +80 -80
- package/agents/teams/figma/figma-analyst.md +52 -52
- package/agents/teams/figma/figma-architect.md +112 -112
- package/agents/teams/figma/figma-auditor.md +82 -82
- package/agents/teams/figma/figma-builder.md +100 -100
- package/agents/teams/figma-team.md +85 -85
- package/agents/teams/fullstack-team.md +83 -83
- package/agents/teams/lite-team.md +69 -69
- package/agents/teams/migration-team.md +78 -78
- package/agents/teams/refactor-team.md +94 -94
- package/agents/teams/research-team.md +86 -86
- package/agents/teams/review-debate-team.md +125 -125
- package/agents/teams/security-team.md +81 -81
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +102 -102
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -258
- package/commands/vibe.analyze.md +533 -533
- package/commands/vibe.contract.md +105 -105
- package/commands/vibe.docs.md +33 -33
- package/commands/vibe.event.md +163 -163
- package/commands/vibe.figma.md +600 -600
- package/commands/vibe.harness.md +177 -177
- package/commands/vibe.regress.md +73 -73
- package/commands/vibe.review.md +624 -624
- package/commands/vibe.run.md +1946 -1946
- package/commands/vibe.scaffold.md +195 -195
- package/commands/vibe.spec.md +577 -577
- package/commands/vibe.test.md +49 -49
- package/commands/vibe.trace.md +276 -276
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +572 -572
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/codex-proxy.js +15 -15
- package/dist/cli/commands/config.js +9 -9
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/figma.js +20 -20
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +48 -46
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts +6 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +60 -30
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/stats.js +6 -6
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +29 -11
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +40 -34
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +18 -18
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +15 -1
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts +25 -6
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +132 -80
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +1 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/ParityTester.js +57 -57
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +134 -134
- package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +409 -409
- package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
- package/hooks/scripts/auto-commit.js +97 -97
- package/hooks/scripts/auto-format.js +64 -64
- package/hooks/scripts/auto-test.js +81 -81
- package/hooks/scripts/code-check.js +271 -271
- package/hooks/scripts/codex-detect.js +46 -46
- package/hooks/scripts/codex-review-gate.js +80 -80
- package/hooks/scripts/command-log.js +32 -32
- package/hooks/scripts/context-save.js +353 -353
- package/hooks/scripts/evolution-engine.js +91 -91
- package/hooks/scripts/figma-extract.js +768 -768
- package/hooks/scripts/figma-guard.js +219 -219
- package/hooks/scripts/figma-refine.js +315 -315
- package/hooks/scripts/figma-to-scss.js +394 -394
- package/hooks/scripts/figma-validate.js +353 -353
- package/hooks/scripts/hud-status.js +321 -321
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/lib/dispatcher.js +95 -87
- package/hooks/scripts/lib/scope-from-spec.js +276 -276
- package/hooks/scripts/llm-orchestrate.js +645 -645
- package/hooks/scripts/post-edit-dispatcher.js +9 -6
- package/hooks/scripts/post-edit.js +35 -35
- package/hooks/scripts/pr-test-gate.js +52 -52
- package/hooks/scripts/pre-tool-dispatcher.js +9 -1
- package/hooks/scripts/pre-tool-guard.js +259 -259
- package/hooks/scripts/prompt-dispatcher.js +200 -192
- package/hooks/scripts/scope-guard.js +145 -145
- package/hooks/scripts/sentinel-guard.js +130 -130
- package/hooks/scripts/session-start.js +186 -186
- package/hooks/scripts/skill-injector.js +83 -83
- package/hooks/scripts/step-counter.js +45 -45
- package/hooks/scripts/stop-dispatcher.js +9 -6
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +315 -315
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +106 -106
- package/skills/agents-md/SKILL.md +121 -121
- package/skills/agents-md/rubrics/what-to-keep.md +49 -49
- package/skills/agents-md/templates/agents-md.md +36 -36
- package/skills/arch-guard/SKILL.md +181 -181
- package/skills/arch-guard/agents/detector.md +48 -48
- package/skills/arch-guard/agents/reporter.md +48 -48
- package/skills/arch-guard/agents/rule-generator.md +49 -49
- package/skills/arch-guard/agents/violation-checker.md +51 -51
- package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
- package/skills/arch-guard/frameworks/solid.md +102 -102
- package/skills/arch-guard/scripts/check-boundaries.js +90 -90
- package/skills/arch-guard/templates/arch-rules.json +47 -47
- package/skills/arch-guard/templates/violation-report.md +53 -53
- package/skills/brand-assets/SKILL.md +147 -147
- package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
- package/skills/brand-assets/templates/brand-guide.md +161 -161
- package/skills/capability-loop/SKILL.md +272 -272
- package/skills/capability-loop/agents/capability-designer.md +61 -61
- package/skills/capability-loop/agents/failure-analyst.md +55 -55
- package/skills/capability-loop/agents/implementer.md +50 -50
- package/skills/capability-loop/agents/tester.md +53 -53
- package/skills/capability-loop/templates/capability-spec.md +118 -118
- package/skills/capability-loop/templates/failure-analysis.md +118 -118
- package/skills/characterization-test/SKILL.md +207 -207
- package/skills/characterization-test/agents/behavior-capturer.md +50 -50
- package/skills/characterization-test/agents/coverage-checker.md +54 -54
- package/skills/characterization-test/agents/reporter.md +50 -50
- package/skills/characterization-test/agents/test-writer.md +49 -49
- package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
- package/skills/characterization-test/templates/test-template.ts +101 -101
- package/skills/chub-usage/SKILL.md +139 -139
- package/skills/claude-md-guide/SKILL.md +351 -351
- package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
- package/skills/claude-md-guide/templates/claude-md.md +54 -54
- package/skills/commerce-patterns/SKILL.md +64 -64
- package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
- package/skills/commerce-patterns/templates/product-schema.md +85 -85
- package/skills/commit-push-pr/SKILL.md +77 -77
- package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
- package/skills/commit-push-pr/agents/message-writer.md +50 -50
- package/skills/commit-push-pr/agents/pr-writer.md +58 -58
- package/skills/commit-push-pr/agents/reviewer.md +52 -52
- package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
- package/skills/commit-push-pr/templates/pr-body.md +63 -63
- package/skills/context7-usage/SKILL.md +106 -106
- package/skills/context7-usage/rubrics/when-to-use.md +50 -50
- package/skills/create-prd/SKILL.md +90 -90
- package/skills/create-prd/agents/edge-case-finder.md +48 -48
- package/skills/create-prd/agents/prioritizer.md +60 -60
- package/skills/create-prd/agents/requirements-writer.md +48 -48
- package/skills/create-prd/agents/researcher.md +55 -55
- package/skills/create-prd/agents/reviewer.md +54 -54
- package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
- package/skills/create-prd/frameworks/rice-scoring.md +97 -97
- package/skills/create-prd/orchestrator.md +70 -70
- package/skills/create-prd/rubrics/completeness.md +58 -58
- package/skills/create-prd/templates/prd.md +139 -139
- package/skills/design-audit/SKILL.md +152 -152
- package/skills/design-audit/agents/a11y-auditor.md +43 -43
- package/skills/design-audit/agents/performance-auditor.md +46 -46
- package/skills/design-audit/agents/responsive-auditor.md +46 -46
- package/skills/design-audit/agents/scorer.md +47 -47
- package/skills/design-audit/agents/slop-detector.md +47 -47
- package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
- package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
- package/skills/design-audit/orchestrator.md +64 -64
- package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
- package/skills/design-audit/rubrics/scoring.md +63 -63
- package/skills/design-audit/templates/report.md +88 -88
- package/skills/design-critique/SKILL.md +139 -139
- package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
- package/skills/design-critique/templates/critique-report.md +86 -86
- package/skills/design-distill/SKILL.md +130 -130
- package/skills/design-distill/templates/design-system.md +132 -132
- package/skills/design-normalize/SKILL.md +133 -133
- package/skills/design-normalize/rubrics/token-naming.md +117 -117
- package/skills/design-normalize/templates/token-audit.md +89 -89
- package/skills/design-polish/SKILL.md +131 -131
- package/skills/design-polish/rubrics/polish-checklist.md +68 -68
- package/skills/design-polish/templates/polish-report.md +64 -64
- package/skills/design-teach/SKILL.md +182 -182
- package/skills/design-teach/rubrics/brand-personality.md +73 -73
- package/skills/design-teach/templates/design-context.json +36 -36
- package/skills/devlog/SKILL.md +143 -143
- package/skills/e2e-commerce/SKILL.md +62 -62
- package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
- package/skills/event-comms/SKILL.md +172 -172
- package/skills/event-comms/templates/email-invite.md +99 -99
- package/skills/event-comms/templates/sns-post.md +133 -133
- package/skills/event-ops/SKILL.md +207 -207
- package/skills/event-ops/rubrics/contingency.md +85 -85
- package/skills/event-ops/templates/d-day-checklist.md +65 -65
- package/skills/event-planning/SKILL.md +144 -144
- package/skills/event-planning/rubrics/timeline.md +70 -70
- package/skills/event-planning/templates/event-plan.md +91 -91
- package/skills/exec-plan/SKILL.md +149 -149
- package/skills/exec-plan/agents/decomposer.md +47 -47
- package/skills/exec-plan/agents/dependency-mapper.md +44 -44
- package/skills/exec-plan/agents/estimator.md +43 -43
- package/skills/exec-plan/agents/validator.md +55 -55
- package/skills/exec-plan/orchestrator.md +70 -70
- package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
- package/skills/exec-plan/templates/plan.md +147 -147
- package/skills/git-worktree/SKILL.md +73 -73
- package/skills/git-worktree/rubrics/when-to-use.md +55 -55
- package/skills/handoff/SKILL.md +110 -110
- package/skills/handoff/agents/context-summarizer.md +51 -51
- package/skills/handoff/agents/document-writer.md +63 -63
- package/skills/handoff/agents/state-collector.md +53 -53
- package/skills/handoff/agents/verifier.md +48 -48
- package/skills/handoff/rubrics/completeness.md +62 -62
- package/skills/handoff/templates/handoff.md +107 -107
- package/skills/parallel-research/SKILL.md +104 -104
- package/skills/parallel-research/agents/best-practices.md +43 -43
- package/skills/parallel-research/agents/codebase-patterns.md +46 -46
- package/skills/parallel-research/agents/framework-docs.md +45 -45
- package/skills/parallel-research/agents/security-advisory.md +46 -46
- package/skills/parallel-research/agents/synthesizer.md +57 -57
- package/skills/parallel-research/experts/best-practices.md +50 -50
- package/skills/parallel-research/experts/codebase-patterns.md +70 -70
- package/skills/parallel-research/experts/framework-docs.md +65 -65
- package/skills/parallel-research/experts/security-advisory.md +69 -69
- package/skills/parallel-research/orchestrator.md +79 -79
- package/skills/parallel-research/templates/awesome-list.md +32 -32
- package/skills/parallel-research/templates/paper.md +88 -88
- package/skills/parallel-research/templates/synthesis.md +101 -101
- package/skills/prioritization-frameworks/SKILL.md +87 -87
- package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
- package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
- package/skills/priority-todos/SKILL.md +64 -64
- package/skills/priority-todos/rubrics/prioritization.md +70 -70
- package/skills/priority-todos/templates/todo-board.md +59 -59
- package/skills/seo-checklist/SKILL.md +58 -58
- package/skills/seo-checklist/frameworks/structured-data.md +153 -153
- package/skills/seo-checklist/rubrics/content-seo.md +42 -42
- package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
- package/skills/techdebt/SKILL.md +124 -124
- package/skills/techdebt/agents/analyzer.md +50 -50
- package/skills/techdebt/agents/fixer.md +41 -41
- package/skills/techdebt/agents/reviewer.md +47 -47
- package/skills/techdebt/agents/scanner.md +44 -44
- package/skills/techdebt/orchestrator.md +70 -70
- package/skills/techdebt/rubrics/severity.md +51 -51
- package/skills/techdebt/scripts/scan.js +90 -90
- package/skills/techdebt/templates/report.md +86 -86
- package/skills/tool-fallback/SKILL.md +104 -104
- package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
- package/skills/typescript-advanced-types/SKILL.md +67 -67
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
- package/skills/ui-ux-pro-max/SKILL.md +236 -236
- package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
- package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
- package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
- package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
- package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
- package/skills/ui-ux-pro-max/reference/typography.md +455 -455
- package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
- package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
- package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
- package/skills/user-personas/SKILL.md +75 -75
- package/skills/user-personas/rubrics/research-methods.md +56 -56
- package/skills/user-personas/templates/persona.md +89 -89
- package/skills/vercel-react-best-practices/SKILL.md +60 -60
- package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
- package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
- package/skills/vibe-contract/SKILL.md +166 -166
- package/skills/vibe-docs/templates/architecture.md +80 -80
- package/skills/vibe-docs/templates/readme.md +84 -84
- package/skills/vibe-docs/templates/release-notes.md +74 -74
- package/skills/vibe-figma/SKILL.md +363 -363
- package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
- package/skills/vibe-figma/templates/component-index.md +126 -126
- package/skills/vibe-figma/templates/component-spec.md +168 -168
- package/skills/vibe-figma/templates/figma-handoff.md +100 -100
- package/skills/vibe-figma/templates/remapped-tree.md +277 -277
- package/skills/vibe-figma-convert/SKILL.md +235 -235
- package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
- package/skills/vibe-figma-convert/templates/component.md +140 -140
- package/skills/vibe-figma-extract/SKILL.md +241 -241
- package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
- package/skills/vibe-interview/SKILL.md +358 -358
- package/skills/vibe-interview/checklists/api.md +101 -101
- package/skills/vibe-interview/checklists/feature.md +88 -88
- package/skills/vibe-interview/checklists/library.md +95 -95
- package/skills/vibe-interview/checklists/mobile.md +89 -89
- package/skills/vibe-interview/checklists/webapp.md +97 -97
- package/skills/vibe-interview/checklists/website.md +99 -99
- package/skills/vibe-plan/SKILL.md +254 -254
- package/skills/vibe-regress/SKILL.md +174 -174
- package/skills/vibe-regress/templates/bug.md +44 -44
- package/skills/vibe-regress/templates/test-jest.md +29 -29
- package/skills/vibe-regress/templates/test-vitest.md +30 -30
- package/skills/vibe-spec/SKILL.md +1195 -1195
- package/skills/vibe-spec-review/SKILL.md +726 -726
- package/skills/vibe-test/SKILL.md +140 -140
- package/skills/video-production/SKILL.md +52 -52
- package/skills/video-production/rubrics/quality-checklist.md +58 -58
- package/skills/video-production/templates/production-plan.md +104 -104
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/claudemd-template.md +74 -74
- package/vibe/templates/constitution-template.md +267 -267
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/plan-template.md +194 -194
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: vibe-regress
|
|
3
|
-
tier: core
|
|
4
|
-
description: "Regression test auto-evolution. Registers bugs (auto from /vibe.verify failures or manual), generates preventive vitest/jest files from bug records, clusters repeated patterns (3+ same root-cause-tag) into shared tests, and imports historical `fix:` commits from git log. Storage: .claude/vibe/regressions/<slug>.md. Must use this skill when user runs /vibe.regress, when /vibe.verify produces a failure, or when the user says 'don't let this happen again' / 'regression test' / '회귀 테스트'."
|
|
5
|
-
triggers: [regress, regression, "회귀", "다시는", "반복 버그", "fix commit"]
|
|
6
|
-
priority: 70
|
|
7
|
-
chain-next: []
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# vibe.regress — Regression Auto-Evolution
|
|
11
|
-
|
|
12
|
-
**Purpose**: never fix the same bug twice. Each fix grows a preventive test.
|
|
13
|
-
|
|
14
|
-
## Why this exists
|
|
15
|
-
|
|
16
|
-
A classic vibe-coding weakness: LLMs reintroduce bugs of the same class. Regression tests are the only mechanical defense. But if the human has to write the test every time, it gets skipped — so automate.
|
|
17
|
-
|
|
18
|
-
## Storage Contract
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
.claude/vibe/regressions/
|
|
22
|
-
<bug-slug>.md # one file per bug
|
|
23
|
-
_cluster-<tag>.md # shared-test design produced by `cluster`
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Frontmatter schema (strict)
|
|
27
|
-
|
|
28
|
-
```yaml
|
|
29
|
-
slug: string # kebab-case, globally unique
|
|
30
|
-
symptom: string # one line, user-facing
|
|
31
|
-
root-cause-tag: enum # only the allowed tags below
|
|
32
|
-
fix-commit: string # git hash (or "pending")
|
|
33
|
-
test-path: string # generated test file path (or "pending")
|
|
34
|
-
status: open | test-generated | resolved
|
|
35
|
-
registered: YYYY-MM-DD
|
|
36
|
-
feature: string # related feature name (matches SPEC)
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Allowed `root-cause-tag` values
|
|
40
|
-
|
|
41
|
-
Clustering depends on this, so use **only the predefined set**:
|
|
42
|
-
|
|
43
|
-
- `timezone` — timezone / DST / off-by-one in time
|
|
44
|
-
- `nullability` — null / undefined / empty handling
|
|
45
|
-
- `concurrency` — race conditions
|
|
46
|
-
- `boundary` — off-by-one, edge values
|
|
47
|
-
- `encoding` — charset, URL encoding, escaping
|
|
48
|
-
- `validation` — missing input validation
|
|
49
|
-
- `auth` — authn/authz logic
|
|
50
|
-
- `state-sync` — client/server state mismatch
|
|
51
|
-
- `integration` — external API call failure
|
|
52
|
-
- `type-narrow` — TypeScript type narrowing mistake
|
|
53
|
-
- `other` — when nothing fits (add new tags later)
|
|
54
|
-
|
|
55
|
-
**Rule**: if a new tag is needed, do not force-fit into an existing one — register as `other`. Once `other` reaches 3 entries, propose adding a new tag.
|
|
56
|
-
|
|
57
|
-
## Subcommands
|
|
58
|
-
|
|
59
|
-
### 1. `register "<symptom>"` — manual registration
|
|
60
|
-
|
|
61
|
-
Most calls are automatic; manual use is rare (bugs found outside `/vibe.verify`, or production incidents).
|
|
62
|
-
|
|
63
|
-
**Steps**:
|
|
64
|
-
1. `getCurrentTime` for today's date
|
|
65
|
-
2. `git log -1 --format=%H` for current commit hash (fix-commit candidate)
|
|
66
|
-
3. Conversation extracts:
|
|
67
|
-
- Reproduction steps (Given/When/Then)
|
|
68
|
-
- Root-cause paragraph
|
|
69
|
-
- Fix description
|
|
70
|
-
4. `root-cause-tag` is **inferred from the allowed set, then confirmed with the user**. If unclear → `other`.
|
|
71
|
-
5. Generate slug: kebab-case keywords from the symptom; on collision append `-2`
|
|
72
|
-
6. Write `.claude/vibe/regressions/<slug>.md` (status: `open`)
|
|
73
|
-
|
|
74
|
-
### 2. `generate <slug>` — generate preventive test
|
|
75
|
-
|
|
76
|
-
**Steps**:
|
|
77
|
-
1. Read bug file
|
|
78
|
-
2. Detect test stack:
|
|
79
|
-
- From `package.json` `devDependencies`: prefer `vitest` over `jest`
|
|
80
|
-
- If neither → **ask user, then stop**
|
|
81
|
-
3. Decide test location:
|
|
82
|
-
- Sibling `__tests__/` next to the implementation file, OR
|
|
83
|
-
- The project's existing test dir (vitest config `test.include`)
|
|
84
|
-
4. File name: `<original-file>.regression.test.ts`
|
|
85
|
-
5. Body: render `templates/test-vitest.md` or `templates/test-jest.md`
|
|
86
|
-
6. Update bug frontmatter: `test-path`, `status: test-generated`
|
|
87
|
-
7. **Run the test immediately** — should fail (if not yet fixed) or pass (if fixed). Record outcome in frontmatter.
|
|
88
|
-
|
|
89
|
-
### 3. `list` — open items
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
/vibe.regress list # status != resolved
|
|
93
|
-
/vibe.regress list --feature login # filter by feature
|
|
94
|
-
/vibe.regress list --tag timezone # filter by tag
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Terminal table:
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
SLUG FEATURE TAG STATUS AGE
|
|
101
|
-
login-jwt-expiry-off-by-one login timezone test-generated 3d
|
|
102
|
-
cart-stock-race-double-deduct cart concurrency open 1d
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### 4. `import` — backfill from git log
|
|
106
|
-
|
|
107
|
-
**Steps**:
|
|
108
|
-
1. `git log --grep='^fix:' --format='%H|%s|%ci' --since=<last-import-date>`
|
|
109
|
-
- `last-import-date` lives in `.claude/vibe/regressions/.import-cursor` (defaults to 90 days ago)
|
|
110
|
-
2. For each commit:
|
|
111
|
-
- If a bug file with the same `fix-commit` already exists → **skip**
|
|
112
|
-
- Otherwise infer symptom + root-cause-tag from message/diff (LLM call)
|
|
113
|
-
- Write a new bug file (status: `resolved` — already fixed)
|
|
114
|
-
3. Update `.import-cursor`
|
|
115
|
-
4. Suggest `generate` for newly imported entries
|
|
116
|
-
|
|
117
|
-
**Note**: only `fix:` commits are considered. Projects not using Conventional Commits can override with `--grep-pattern`.
|
|
118
|
-
|
|
119
|
-
### 5. `cluster` — promote recurring patterns
|
|
120
|
-
|
|
121
|
-
**Steps**:
|
|
122
|
-
1. Aggregate `root-cause-tag` across all bug files
|
|
123
|
-
2. **A tag with ≥3 entries** becomes a cluster candidate
|
|
124
|
-
3. For each candidate:
|
|
125
|
-
- Feed the 3 reproductions to an LLM to extract the common cause and shared test cases
|
|
126
|
-
- Write `_cluster-<tag>.md` (links to the original bug slugs)
|
|
127
|
-
- Propose a shared test skeleton at `<project-test-dir>/_cluster-<tag>.regression.test.ts` (create only with user approval)
|
|
128
|
-
4. Original bug files are **not deleted** — history preserved
|
|
129
|
-
|
|
130
|
-
**Important**: `cluster` is never automatic. Users invoke it explicitly to avoid premature abstraction.
|
|
131
|
-
|
|
132
|
-
## Integration with /vibe.verify
|
|
133
|
-
|
|
134
|
-
When `/vibe.verify` fails it calls:
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
Load skill `vibe-regress` with: register --from-verify
|
|
138
|
-
<feature>: {feature-name}
|
|
139
|
-
<scenario>: {failed-scenario}
|
|
140
|
-
<error>: {error-message}
|
|
141
|
-
<location>: {file:line}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
`--from-verify` behavior:
|
|
145
|
-
- symptom = scenario name + error summary
|
|
146
|
-
- feature = forwarded feature name
|
|
147
|
-
- root-cause-tag = inferred from error pattern (default `other` if unclear)
|
|
148
|
-
- status = `open`
|
|
149
|
-
- **Skip user confirmation** — the user is already attentive in a verify-failure context, and friction must be minimized
|
|
150
|
-
|
|
151
|
-
## Integration with /vibe.run
|
|
152
|
-
|
|
153
|
-
At the start of `/vibe.run "<feature>"`:
|
|
154
|
-
|
|
155
|
-
1. Filter `.claude/vibe/regressions/*.md` for `feature: <feature-name>` + `status != resolved`
|
|
156
|
-
2. If any open items:
|
|
157
|
-
```
|
|
158
|
-
⚠️ Open regressions for this feature:
|
|
159
|
-
- login-jwt-expiry-off-by-one (timezone, 3d old)
|
|
160
|
-
- login-session-leak (auth, 1w old)
|
|
161
|
-
|
|
162
|
-
Fix these before adding new behavior? [y/N]
|
|
163
|
-
```
|
|
164
|
-
3. `y` → chain to `/vibe.regress generate` for items not yet test-generated
|
|
165
|
-
4. `N` → continue (ultrawork mode auto-`N`, records TODO)
|
|
166
|
-
|
|
167
|
-
## Done Criteria
|
|
168
|
-
|
|
169
|
-
- [ ] Subcommand-less invocation prints usage
|
|
170
|
-
- [ ] Frontmatter schema strictly enforced (missing fields rejected)
|
|
171
|
-
- [ ] `root-cause-tag` outside the allowed set → warn + force `other`
|
|
172
|
-
- [ ] After `generate`, the test is **actually run** to verify
|
|
173
|
-
- [ ] `import` deduplicates by `fix-commit` hash
|
|
174
|
-
- [ ] `cluster` does nothing under 3 entries (false-positive guard)
|
|
1
|
+
---
|
|
2
|
+
name: vibe-regress
|
|
3
|
+
tier: core
|
|
4
|
+
description: "Regression test auto-evolution. Registers bugs (auto from /vibe.verify failures or manual), generates preventive vitest/jest files from bug records, clusters repeated patterns (3+ same root-cause-tag) into shared tests, and imports historical `fix:` commits from git log. Storage: .claude/vibe/regressions/<slug>.md. Must use this skill when user runs /vibe.regress, when /vibe.verify produces a failure, or when the user says 'don't let this happen again' / 'regression test' / '회귀 테스트'."
|
|
5
|
+
triggers: [regress, regression, "회귀", "다시는", "반복 버그", "fix commit"]
|
|
6
|
+
priority: 70
|
|
7
|
+
chain-next: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# vibe.regress — Regression Auto-Evolution
|
|
11
|
+
|
|
12
|
+
**Purpose**: never fix the same bug twice. Each fix grows a preventive test.
|
|
13
|
+
|
|
14
|
+
## Why this exists
|
|
15
|
+
|
|
16
|
+
A classic vibe-coding weakness: LLMs reintroduce bugs of the same class. Regression tests are the only mechanical defense. But if the human has to write the test every time, it gets skipped — so automate.
|
|
17
|
+
|
|
18
|
+
## Storage Contract
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
.claude/vibe/regressions/
|
|
22
|
+
<bug-slug>.md # one file per bug
|
|
23
|
+
_cluster-<tag>.md # shared-test design produced by `cluster`
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Frontmatter schema (strict)
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
slug: string # kebab-case, globally unique
|
|
30
|
+
symptom: string # one line, user-facing
|
|
31
|
+
root-cause-tag: enum # only the allowed tags below
|
|
32
|
+
fix-commit: string # git hash (or "pending")
|
|
33
|
+
test-path: string # generated test file path (or "pending")
|
|
34
|
+
status: open | test-generated | resolved
|
|
35
|
+
registered: YYYY-MM-DD
|
|
36
|
+
feature: string # related feature name (matches SPEC)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Allowed `root-cause-tag` values
|
|
40
|
+
|
|
41
|
+
Clustering depends on this, so use **only the predefined set**:
|
|
42
|
+
|
|
43
|
+
- `timezone` — timezone / DST / off-by-one in time
|
|
44
|
+
- `nullability` — null / undefined / empty handling
|
|
45
|
+
- `concurrency` — race conditions
|
|
46
|
+
- `boundary` — off-by-one, edge values
|
|
47
|
+
- `encoding` — charset, URL encoding, escaping
|
|
48
|
+
- `validation` — missing input validation
|
|
49
|
+
- `auth` — authn/authz logic
|
|
50
|
+
- `state-sync` — client/server state mismatch
|
|
51
|
+
- `integration` — external API call failure
|
|
52
|
+
- `type-narrow` — TypeScript type narrowing mistake
|
|
53
|
+
- `other` — when nothing fits (add new tags later)
|
|
54
|
+
|
|
55
|
+
**Rule**: if a new tag is needed, do not force-fit into an existing one — register as `other`. Once `other` reaches 3 entries, propose adding a new tag.
|
|
56
|
+
|
|
57
|
+
## Subcommands
|
|
58
|
+
|
|
59
|
+
### 1. `register "<symptom>"` — manual registration
|
|
60
|
+
|
|
61
|
+
Most calls are automatic; manual use is rare (bugs found outside `/vibe.verify`, or production incidents).
|
|
62
|
+
|
|
63
|
+
**Steps**:
|
|
64
|
+
1. `getCurrentTime` for today's date
|
|
65
|
+
2. `git log -1 --format=%H` for current commit hash (fix-commit candidate)
|
|
66
|
+
3. Conversation extracts:
|
|
67
|
+
- Reproduction steps (Given/When/Then)
|
|
68
|
+
- Root-cause paragraph
|
|
69
|
+
- Fix description
|
|
70
|
+
4. `root-cause-tag` is **inferred from the allowed set, then confirmed with the user**. If unclear → `other`.
|
|
71
|
+
5. Generate slug: kebab-case keywords from the symptom; on collision append `-2`
|
|
72
|
+
6. Write `.claude/vibe/regressions/<slug>.md` (status: `open`)
|
|
73
|
+
|
|
74
|
+
### 2. `generate <slug>` — generate preventive test
|
|
75
|
+
|
|
76
|
+
**Steps**:
|
|
77
|
+
1. Read bug file
|
|
78
|
+
2. Detect test stack:
|
|
79
|
+
- From `package.json` `devDependencies`: prefer `vitest` over `jest`
|
|
80
|
+
- If neither → **ask user, then stop**
|
|
81
|
+
3. Decide test location:
|
|
82
|
+
- Sibling `__tests__/` next to the implementation file, OR
|
|
83
|
+
- The project's existing test dir (vitest config `test.include`)
|
|
84
|
+
4. File name: `<original-file>.regression.test.ts`
|
|
85
|
+
5. Body: render `templates/test-vitest.md` or `templates/test-jest.md`
|
|
86
|
+
6. Update bug frontmatter: `test-path`, `status: test-generated`
|
|
87
|
+
7. **Run the test immediately** — should fail (if not yet fixed) or pass (if fixed). Record outcome in frontmatter.
|
|
88
|
+
|
|
89
|
+
### 3. `list` — open items
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
/vibe.regress list # status != resolved
|
|
93
|
+
/vibe.regress list --feature login # filter by feature
|
|
94
|
+
/vibe.regress list --tag timezone # filter by tag
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Terminal table:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
SLUG FEATURE TAG STATUS AGE
|
|
101
|
+
login-jwt-expiry-off-by-one login timezone test-generated 3d
|
|
102
|
+
cart-stock-race-double-deduct cart concurrency open 1d
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 4. `import` — backfill from git log
|
|
106
|
+
|
|
107
|
+
**Steps**:
|
|
108
|
+
1. `git log --grep='^fix:' --format='%H|%s|%ci' --since=<last-import-date>`
|
|
109
|
+
- `last-import-date` lives in `.claude/vibe/regressions/.import-cursor` (defaults to 90 days ago)
|
|
110
|
+
2. For each commit:
|
|
111
|
+
- If a bug file with the same `fix-commit` already exists → **skip**
|
|
112
|
+
- Otherwise infer symptom + root-cause-tag from message/diff (LLM call)
|
|
113
|
+
- Write a new bug file (status: `resolved` — already fixed)
|
|
114
|
+
3. Update `.import-cursor`
|
|
115
|
+
4. Suggest `generate` for newly imported entries
|
|
116
|
+
|
|
117
|
+
**Note**: only `fix:` commits are considered. Projects not using Conventional Commits can override with `--grep-pattern`.
|
|
118
|
+
|
|
119
|
+
### 5. `cluster` — promote recurring patterns
|
|
120
|
+
|
|
121
|
+
**Steps**:
|
|
122
|
+
1. Aggregate `root-cause-tag` across all bug files
|
|
123
|
+
2. **A tag with ≥3 entries** becomes a cluster candidate
|
|
124
|
+
3. For each candidate:
|
|
125
|
+
- Feed the 3 reproductions to an LLM to extract the common cause and shared test cases
|
|
126
|
+
- Write `_cluster-<tag>.md` (links to the original bug slugs)
|
|
127
|
+
- Propose a shared test skeleton at `<project-test-dir>/_cluster-<tag>.regression.test.ts` (create only with user approval)
|
|
128
|
+
4. Original bug files are **not deleted** — history preserved
|
|
129
|
+
|
|
130
|
+
**Important**: `cluster` is never automatic. Users invoke it explicitly to avoid premature abstraction.
|
|
131
|
+
|
|
132
|
+
## Integration with /vibe.verify
|
|
133
|
+
|
|
134
|
+
When `/vibe.verify` fails it calls:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Load skill `vibe-regress` with: register --from-verify
|
|
138
|
+
<feature>: {feature-name}
|
|
139
|
+
<scenario>: {failed-scenario}
|
|
140
|
+
<error>: {error-message}
|
|
141
|
+
<location>: {file:line}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
`--from-verify` behavior:
|
|
145
|
+
- symptom = scenario name + error summary
|
|
146
|
+
- feature = forwarded feature name
|
|
147
|
+
- root-cause-tag = inferred from error pattern (default `other` if unclear)
|
|
148
|
+
- status = `open`
|
|
149
|
+
- **Skip user confirmation** — the user is already attentive in a verify-failure context, and friction must be minimized
|
|
150
|
+
|
|
151
|
+
## Integration with /vibe.run
|
|
152
|
+
|
|
153
|
+
At the start of `/vibe.run "<feature>"`:
|
|
154
|
+
|
|
155
|
+
1. Filter `.claude/vibe/regressions/*.md` for `feature: <feature-name>` + `status != resolved`
|
|
156
|
+
2. If any open items:
|
|
157
|
+
```
|
|
158
|
+
⚠️ Open regressions for this feature:
|
|
159
|
+
- login-jwt-expiry-off-by-one (timezone, 3d old)
|
|
160
|
+
- login-session-leak (auth, 1w old)
|
|
161
|
+
|
|
162
|
+
Fix these before adding new behavior? [y/N]
|
|
163
|
+
```
|
|
164
|
+
3. `y` → chain to `/vibe.regress generate` for items not yet test-generated
|
|
165
|
+
4. `N` → continue (ultrawork mode auto-`N`, records TODO)
|
|
166
|
+
|
|
167
|
+
## Done Criteria
|
|
168
|
+
|
|
169
|
+
- [ ] Subcommand-less invocation prints usage
|
|
170
|
+
- [ ] Frontmatter schema strictly enforced (missing fields rejected)
|
|
171
|
+
- [ ] `root-cause-tag` outside the allowed set → warn + force `other`
|
|
172
|
+
- [ ] After `generate`, the test is **actually run** to verify
|
|
173
|
+
- [ ] `import` deduplicates by `fix-commit` hash
|
|
174
|
+
- [ ] `cluster` does nothing under 3 entries (false-positive guard)
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
---
|
|
2
|
-
slug: {{SLUG}}
|
|
3
|
-
symptom: "{{SYMPTOM}}"
|
|
4
|
-
root-cause-tag: {{ROOT_CAUSE_TAG}}
|
|
5
|
-
fix-commit: {{FIX_COMMIT}}
|
|
6
|
-
test-path: {{TEST_PATH}}
|
|
7
|
-
status: {{STATUS}}
|
|
8
|
-
registered: {{DATE}}
|
|
9
|
-
feature: {{FEATURE}}
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# {{SLUG}}
|
|
13
|
-
|
|
14
|
-
## Symptom
|
|
15
|
-
|
|
16
|
-
{{SYMPTOM_DETAIL}}
|
|
17
|
-
|
|
18
|
-
## Reproduction
|
|
19
|
-
|
|
20
|
-
**Given**: {{GIVEN}}
|
|
21
|
-
|
|
22
|
-
**When**: {{WHEN}}
|
|
23
|
-
|
|
24
|
-
**Then** (broken behavior): {{THEN_BROKEN}}
|
|
25
|
-
|
|
26
|
-
**Expected**: {{THEN_EXPECTED}}
|
|
27
|
-
|
|
28
|
-
## Root cause
|
|
29
|
-
|
|
30
|
-
{{ROOT_CAUSE_EXPLANATION}}
|
|
31
|
-
|
|
32
|
-
## Fix
|
|
33
|
-
|
|
34
|
-
{{FIX_EXPLANATION}}
|
|
35
|
-
|
|
36
|
-
## Related
|
|
37
|
-
|
|
38
|
-
- Feature: [.claude/vibe/features/{{FEATURE}}.feature](../../features/{{FEATURE}}.feature)
|
|
39
|
-
- Fix commit: `{{FIX_COMMIT}}`
|
|
40
|
-
- Regression test: `{{TEST_PATH}}`
|
|
41
|
-
|
|
42
|
-
## Notes
|
|
43
|
-
|
|
44
|
-
{{NOTES}}
|
|
1
|
+
---
|
|
2
|
+
slug: {{SLUG}}
|
|
3
|
+
symptom: "{{SYMPTOM}}"
|
|
4
|
+
root-cause-tag: {{ROOT_CAUSE_TAG}}
|
|
5
|
+
fix-commit: {{FIX_COMMIT}}
|
|
6
|
+
test-path: {{TEST_PATH}}
|
|
7
|
+
status: {{STATUS}}
|
|
8
|
+
registered: {{DATE}}
|
|
9
|
+
feature: {{FEATURE}}
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# {{SLUG}}
|
|
13
|
+
|
|
14
|
+
## Symptom
|
|
15
|
+
|
|
16
|
+
{{SYMPTOM_DETAIL}}
|
|
17
|
+
|
|
18
|
+
## Reproduction
|
|
19
|
+
|
|
20
|
+
**Given**: {{GIVEN}}
|
|
21
|
+
|
|
22
|
+
**When**: {{WHEN}}
|
|
23
|
+
|
|
24
|
+
**Then** (broken behavior): {{THEN_BROKEN}}
|
|
25
|
+
|
|
26
|
+
**Expected**: {{THEN_EXPECTED}}
|
|
27
|
+
|
|
28
|
+
## Root cause
|
|
29
|
+
|
|
30
|
+
{{ROOT_CAUSE_EXPLANATION}}
|
|
31
|
+
|
|
32
|
+
## Fix
|
|
33
|
+
|
|
34
|
+
{{FIX_EXPLANATION}}
|
|
35
|
+
|
|
36
|
+
## Related
|
|
37
|
+
|
|
38
|
+
- Feature: [.claude/vibe/features/{{FEATURE}}.feature](../../features/{{FEATURE}}.feature)
|
|
39
|
+
- Fix commit: `{{FIX_COMMIT}}`
|
|
40
|
+
- Regression test: `{{TEST_PATH}}`
|
|
41
|
+
|
|
42
|
+
## Notes
|
|
43
|
+
|
|
44
|
+
{{NOTES}}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Regression test — {{SLUG}}
|
|
3
|
-
*
|
|
4
|
-
* Symptom: {{SYMPTOM}}
|
|
5
|
-
* Root cause tag: {{ROOT_CAUSE_TAG}}
|
|
6
|
-
* Fix commit: {{FIX_COMMIT}}
|
|
7
|
-
* Source record: .claude/vibe/regressions/{{SLUG}}.md
|
|
8
|
-
*
|
|
9
|
-
* DO NOT delete this test when the bug is fixed — it exists to prevent the
|
|
10
|
-
* same bug from being reintroduced. Update only if the reproduction steps
|
|
11
|
-
* in the source record change.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
{{IMPORTS_FROM_SUT}}
|
|
15
|
-
|
|
16
|
-
describe('regression: {{SYMPTOM_SHORT}}', () => {
|
|
17
|
-
it('{{TEST_NAME}}', {{ASYNC}}() => {
|
|
18
|
-
// Given: {{GIVEN}}
|
|
19
|
-
{{GIVEN_CODE}}
|
|
20
|
-
|
|
21
|
-
// When: {{WHEN}}
|
|
22
|
-
{{WHEN_CODE}}
|
|
23
|
-
|
|
24
|
-
// Then: {{THEN}}
|
|
25
|
-
{{THEN_ASSERTIONS}}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
{{EXTRA_IT_BLOCKS}}
|
|
29
|
-
});
|
|
1
|
+
/**
|
|
2
|
+
* Regression test — {{SLUG}}
|
|
3
|
+
*
|
|
4
|
+
* Symptom: {{SYMPTOM}}
|
|
5
|
+
* Root cause tag: {{ROOT_CAUSE_TAG}}
|
|
6
|
+
* Fix commit: {{FIX_COMMIT}}
|
|
7
|
+
* Source record: .claude/vibe/regressions/{{SLUG}}.md
|
|
8
|
+
*
|
|
9
|
+
* DO NOT delete this test when the bug is fixed — it exists to prevent the
|
|
10
|
+
* same bug from being reintroduced. Update only if the reproduction steps
|
|
11
|
+
* in the source record change.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
{{IMPORTS_FROM_SUT}}
|
|
15
|
+
|
|
16
|
+
describe('regression: {{SYMPTOM_SHORT}}', () => {
|
|
17
|
+
it('{{TEST_NAME}}', {{ASYNC}}() => {
|
|
18
|
+
// Given: {{GIVEN}}
|
|
19
|
+
{{GIVEN_CODE}}
|
|
20
|
+
|
|
21
|
+
// When: {{WHEN}}
|
|
22
|
+
{{WHEN_CODE}}
|
|
23
|
+
|
|
24
|
+
// Then: {{THEN}}
|
|
25
|
+
{{THEN_ASSERTIONS}}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
{{EXTRA_IT_BLOCKS}}
|
|
29
|
+
});
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Regression test — {{SLUG}}
|
|
3
|
-
*
|
|
4
|
-
* Symptom: {{SYMPTOM}}
|
|
5
|
-
* Root cause tag: {{ROOT_CAUSE_TAG}}
|
|
6
|
-
* Fix commit: {{FIX_COMMIT}}
|
|
7
|
-
* Source record: .claude/vibe/regressions/{{SLUG}}.md
|
|
8
|
-
*
|
|
9
|
-
* DO NOT delete this test when the bug is fixed — it exists to prevent the
|
|
10
|
-
* same bug from being reintroduced. Update only if the reproduction steps
|
|
11
|
-
* in the source record change.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { describe, it, expect{{EXTRA_IMPORTS}} } from 'vitest';
|
|
15
|
-
{{IMPORTS_FROM_SUT}}
|
|
16
|
-
|
|
17
|
-
describe('regression: {{SYMPTOM_SHORT}}', () => {
|
|
18
|
-
it('{{TEST_NAME}}', {{ASYNC}}() => {
|
|
19
|
-
// Given: {{GIVEN}}
|
|
20
|
-
{{GIVEN_CODE}}
|
|
21
|
-
|
|
22
|
-
// When: {{WHEN}}
|
|
23
|
-
{{WHEN_CODE}}
|
|
24
|
-
|
|
25
|
-
// Then: {{THEN}}
|
|
26
|
-
{{THEN_ASSERTIONS}}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
{{EXTRA_IT_BLOCKS}}
|
|
30
|
-
});
|
|
1
|
+
/**
|
|
2
|
+
* Regression test — {{SLUG}}
|
|
3
|
+
*
|
|
4
|
+
* Symptom: {{SYMPTOM}}
|
|
5
|
+
* Root cause tag: {{ROOT_CAUSE_TAG}}
|
|
6
|
+
* Fix commit: {{FIX_COMMIT}}
|
|
7
|
+
* Source record: .claude/vibe/regressions/{{SLUG}}.md
|
|
8
|
+
*
|
|
9
|
+
* DO NOT delete this test when the bug is fixed — it exists to prevent the
|
|
10
|
+
* same bug from being reintroduced. Update only if the reproduction steps
|
|
11
|
+
* in the source record change.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { describe, it, expect{{EXTRA_IMPORTS}} } from 'vitest';
|
|
15
|
+
{{IMPORTS_FROM_SUT}}
|
|
16
|
+
|
|
17
|
+
describe('regression: {{SYMPTOM_SHORT}}', () => {
|
|
18
|
+
it('{{TEST_NAME}}', {{ASYNC}}() => {
|
|
19
|
+
// Given: {{GIVEN}}
|
|
20
|
+
{{GIVEN_CODE}}
|
|
21
|
+
|
|
22
|
+
// When: {{WHEN}}
|
|
23
|
+
{{WHEN_CODE}}
|
|
24
|
+
|
|
25
|
+
// Then: {{THEN}}
|
|
26
|
+
{{THEN_ASSERTIONS}}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
{{EXTRA_IT_BLOCKS}}
|
|
30
|
+
});
|