@su-record/vibe 2.8.51 → 2.8.53
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 +169 -169
- package/LICENSE +21 -21
- package/README.ko.md +5 -5
- package/README.md +5 -5
- 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/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 +379 -379
- package/commands/vibe.docs.md +32 -32
- package/commands/vibe.event.md +163 -163
- package/commands/vibe.figma.md +69 -69
- package/commands/vibe.review.md +686 -686
- package/commands/vibe.run.md +2276 -2276
- package/commands/vibe.spec.md +1195 -1195
- package/commands/vibe.spec.review.md +609 -609
- package/commands/vibe.trace.md +259 -259
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +510 -510
- package/dist/cli/collaborator.js +52 -52
- 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.js +53 -53
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +82 -15
- 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/detect.js +32 -32
- package/dist/cli/index.js +51 -51
- 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/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +2 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- 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/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +12 -0
- package/dist/cli/types.d.ts.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/TokenBudgetTracker.d.ts +13 -0
- package/dist/infra/lib/TokenBudgetTracker.d.ts.map +1 -1
- package/dist/infra/lib/TokenBudgetTracker.js +44 -3
- package/dist/infra/lib/TokenBudgetTracker.js.map +1 -1
- 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 +174 -170
- package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
- package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
- 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 +268 -268
- 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/devlog-gen.js +230 -0
- package/hooks/scripts/evolution-engine.js +91 -91
- package/hooks/scripts/figma-extract.js +635 -477
- package/hooks/scripts/hud-status.js +321 -321
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +572 -572
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pr-test-gate.js +52 -52
- package/hooks/scripts/pre-tool-guard.js +214 -159
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +131 -131
- package/hooks/scripts/session-start.js +177 -177
- package/hooks/scripts/skill-injector.js +83 -83
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +243 -243
- 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 +101 -101
- 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 +168 -168
- 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 -0
- package/skills/e2e-commerce/SKILL.md +62 -62
- package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
- package/skills/event-comms/SKILL.md +162 -162
- 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 +198 -198
- 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 +132 -132
- 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 +89 -89
- 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 +52 -52
- 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 +65 -65
- 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.docs/SKILL.md +171 -171
- 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 +215 -982
- 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/figma-handoff.md +100 -100
- package/skills/vibe.figma/templates/remapped-tree.md +277 -277
- package/skills/vibe.figma.convert/SKILL.md +188 -511
- package/skills/vibe.figma.convert/rubrics/conversion-rules.md +129 -113
- package/skills/vibe.figma.convert/templates/component.md +140 -140
- package/skills/vibe.figma.extract/SKILL.md +179 -300
- package/skills/vibe.figma.extract/rubrics/image-rules.md +145 -137
- 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/constitution-template.md +252 -252
- 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/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,85 +1,85 @@
|
|
|
1
|
-
# Product Data Schema Template
|
|
2
|
-
|
|
3
|
-
## Core Product
|
|
4
|
-
|
|
5
|
-
```typescript
|
|
6
|
-
interface Product {
|
|
7
|
-
id: string; // UUID or slug — immutable after creation
|
|
8
|
-
sku: string; // Unique stock keeping unit
|
|
9
|
-
name: string;
|
|
10
|
-
description: string;
|
|
11
|
-
status: "ACTIVE" | "ARCHIVED" | "DRAFT";
|
|
12
|
-
|
|
13
|
-
pricing: ProductPricing;
|
|
14
|
-
inventory: ProductInventory;
|
|
15
|
-
media: ProductMedia[];
|
|
16
|
-
attributes: ProductAttribute[]; // color, size, material, etc.
|
|
17
|
-
variants: ProductVariant[]; // if applicable
|
|
18
|
-
|
|
19
|
-
createdAt: Date;
|
|
20
|
-
updatedAt: Date;
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Pricing
|
|
25
|
-
|
|
26
|
-
```typescript
|
|
27
|
-
interface ProductPricing {
|
|
28
|
-
currency: string; // ISO 4217 — "KRW", "USD"
|
|
29
|
-
basePrice: number; // In smallest currency unit (cents/원)
|
|
30
|
-
salePrice?: number; // null = no active sale
|
|
31
|
-
salePeriod?: { from: Date; to: Date };
|
|
32
|
-
taxRate: number; // 0.1 = 10%
|
|
33
|
-
taxIncluded: boolean; // Is tax included in basePrice?
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Inventory
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
interface ProductInventory {
|
|
41
|
-
trackInventory: boolean; // false = always in stock (digital goods)
|
|
42
|
-
stock: number; // Current available quantity
|
|
43
|
-
reservedStock: number; // Locked in active checkouts
|
|
44
|
-
lowStockThreshold: number; // Alert when stock <= this value
|
|
45
|
-
backorderAllowed: boolean;
|
|
46
|
-
reservationTtlMinutes: number; // How long to hold reserved stock (default: 15)
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Variant
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
interface ProductVariant {
|
|
54
|
-
id: string;
|
|
55
|
-
sku: string;
|
|
56
|
-
attributes: Record<string, string>; // { color: "red", size: "M" }
|
|
57
|
-
pricing?: Partial<ProductPricing>; // Override base pricing
|
|
58
|
-
inventory: ProductInventory;
|
|
59
|
-
active: boolean;
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Cart Line Item (Price Snapshot)
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
interface CartLineItem {
|
|
67
|
-
productId: string;
|
|
68
|
-
variantId?: string;
|
|
69
|
-
quantity: number;
|
|
70
|
-
// Snapshot at add-to-cart time — do not read live price from DB during checkout
|
|
71
|
-
snapshotPrice: number;
|
|
72
|
-
snapshotCurrency: string;
|
|
73
|
-
snapshotName: string;
|
|
74
|
-
addedAt: Date;
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Usage Notes
|
|
79
|
-
|
|
80
|
-
- Store `snapshotPrice` in cart to survive price changes — revalidate at checkout entry only
|
|
81
|
-
- `reservedStock + stock` = total physical stock on hand
|
|
82
|
-
- Use `FOR UPDATE` or atomic SQL when decrementing `stock`
|
|
83
|
-
- Archive products instead of deleting — orders reference them
|
|
84
|
-
- `{{CURRENCY}}` — replace with project's primary currency code
|
|
85
|
-
- `{{TAX_RATE}}` — replace with applicable tax rate (e.g., `0.1` for 10% VAT)
|
|
1
|
+
# Product Data Schema Template
|
|
2
|
+
|
|
3
|
+
## Core Product
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
interface Product {
|
|
7
|
+
id: string; // UUID or slug — immutable after creation
|
|
8
|
+
sku: string; // Unique stock keeping unit
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
status: "ACTIVE" | "ARCHIVED" | "DRAFT";
|
|
12
|
+
|
|
13
|
+
pricing: ProductPricing;
|
|
14
|
+
inventory: ProductInventory;
|
|
15
|
+
media: ProductMedia[];
|
|
16
|
+
attributes: ProductAttribute[]; // color, size, material, etc.
|
|
17
|
+
variants: ProductVariant[]; // if applicable
|
|
18
|
+
|
|
19
|
+
createdAt: Date;
|
|
20
|
+
updatedAt: Date;
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Pricing
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
interface ProductPricing {
|
|
28
|
+
currency: string; // ISO 4217 — "KRW", "USD"
|
|
29
|
+
basePrice: number; // In smallest currency unit (cents/원)
|
|
30
|
+
salePrice?: number; // null = no active sale
|
|
31
|
+
salePeriod?: { from: Date; to: Date };
|
|
32
|
+
taxRate: number; // 0.1 = 10%
|
|
33
|
+
taxIncluded: boolean; // Is tax included in basePrice?
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Inventory
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
interface ProductInventory {
|
|
41
|
+
trackInventory: boolean; // false = always in stock (digital goods)
|
|
42
|
+
stock: number; // Current available quantity
|
|
43
|
+
reservedStock: number; // Locked in active checkouts
|
|
44
|
+
lowStockThreshold: number; // Alert when stock <= this value
|
|
45
|
+
backorderAllowed: boolean;
|
|
46
|
+
reservationTtlMinutes: number; // How long to hold reserved stock (default: 15)
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Variant
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
interface ProductVariant {
|
|
54
|
+
id: string;
|
|
55
|
+
sku: string;
|
|
56
|
+
attributes: Record<string, string>; // { color: "red", size: "M" }
|
|
57
|
+
pricing?: Partial<ProductPricing>; // Override base pricing
|
|
58
|
+
inventory: ProductInventory;
|
|
59
|
+
active: boolean;
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Cart Line Item (Price Snapshot)
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
interface CartLineItem {
|
|
67
|
+
productId: string;
|
|
68
|
+
variantId?: string;
|
|
69
|
+
quantity: number;
|
|
70
|
+
// Snapshot at add-to-cart time — do not read live price from DB during checkout
|
|
71
|
+
snapshotPrice: number;
|
|
72
|
+
snapshotCurrency: string;
|
|
73
|
+
snapshotName: string;
|
|
74
|
+
addedAt: Date;
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Usage Notes
|
|
79
|
+
|
|
80
|
+
- Store `snapshotPrice` in cart to survive price changes — revalidate at checkout entry only
|
|
81
|
+
- `reservedStock + stock` = total physical stock on hand
|
|
82
|
+
- Use `FOR UPDATE` or atomic SQL when decrementing `stock`
|
|
83
|
+
- Archive products instead of deleting — orders reference them
|
|
84
|
+
- `{{CURRENCY}}` — replace with project's primary currency code
|
|
85
|
+
- `{{TAX_RATE}}` — replace with applicable tax rate (e.g., `0.1` for 10% VAT)
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commit-push-pr
|
|
3
|
-
tier: optional
|
|
4
|
-
description: "Commit, push, and create PR in one go. Auto-activates on commit, PR, push keywords."
|
|
5
|
-
triggers: [commit, push, PR, pull request, merge]
|
|
6
|
-
priority: 70
|
|
7
|
-
chain-next: [techdebt]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Commit-Push-PR
|
|
11
|
-
|
|
12
|
-
## Pre-checks
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
git status # What's changed
|
|
16
|
-
git diff --stat # Review changes
|
|
17
|
-
git log --oneline -5 # Recent commits for style
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Workflow
|
|
21
|
-
|
|
22
|
-
1. Review and stage changed files
|
|
23
|
-
2. Write commit message (Conventional Commits)
|
|
24
|
-
3. Push to remote branch
|
|
25
|
-
4. Create PR with `gh pr create`
|
|
26
|
-
|
|
27
|
-
## Commit Message Format
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
[type] title (under 50 chars)
|
|
31
|
-
|
|
32
|
-
body (optional, 72 char wrap)
|
|
33
|
-
|
|
34
|
-
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Types: `feat` | `fix` | `docs` | `style` | `refactor` | `test` | `chore` | `perf`
|
|
38
|
-
|
|
39
|
-
## Security Checks (CRITICAL)
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
# Before committing — detect sensitive files
|
|
43
|
-
git diff --cached --name-only | grep -E '\.(env|pem|key)$|credentials|secret'
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**Never commit:** `.env`, `.env.local`, `*.pem`, `*.key`, `credentials.json`, `service-account.json`
|
|
47
|
-
|
|
48
|
-
> If sensitive files are staged, **immediately warn and abort**.
|
|
49
|
-
|
|
50
|
-
## Branch Protection
|
|
51
|
-
|
|
52
|
-
- **No direct commits/pushes to main/master**
|
|
53
|
-
- If on main: create a new branch first
|
|
54
|
-
- **Never** `--force` push to main/master
|
|
55
|
-
|
|
56
|
-
## PR Format
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
gh pr create \
|
|
60
|
-
--title "[type] title" \
|
|
61
|
-
--body "## Changes
|
|
62
|
-
- Key changes
|
|
63
|
-
|
|
64
|
-
## Related Issues
|
|
65
|
-
- Closes #issue-number
|
|
66
|
-
|
|
67
|
-
## Testing
|
|
68
|
-
- Test methods and results"
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Done Criteria (K4)
|
|
72
|
-
|
|
73
|
-
- [ ] No sensitive files in commit
|
|
74
|
-
- [ ] Commit message follows Conventional Commits
|
|
75
|
-
- [ ] Co-Authored-By line included
|
|
76
|
-
- [ ] Not pushing directly to main/master
|
|
77
|
-
- [ ] PR created with clear description
|
|
1
|
+
---
|
|
2
|
+
name: commit-push-pr
|
|
3
|
+
tier: optional
|
|
4
|
+
description: "Commit, push, and create PR in one go. Auto-activates on commit, PR, push keywords."
|
|
5
|
+
triggers: [commit, push, PR, pull request, merge]
|
|
6
|
+
priority: 70
|
|
7
|
+
chain-next: [techdebt]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Commit-Push-PR
|
|
11
|
+
|
|
12
|
+
## Pre-checks
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
git status # What's changed
|
|
16
|
+
git diff --stat # Review changes
|
|
17
|
+
git log --oneline -5 # Recent commits for style
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
1. Review and stage changed files
|
|
23
|
+
2. Write commit message (Conventional Commits)
|
|
24
|
+
3. Push to remote branch
|
|
25
|
+
4. Create PR with `gh pr create`
|
|
26
|
+
|
|
27
|
+
## Commit Message Format
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
[type] title (under 50 chars)
|
|
31
|
+
|
|
32
|
+
body (optional, 72 char wrap)
|
|
33
|
+
|
|
34
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Types: `feat` | `fix` | `docs` | `style` | `refactor` | `test` | `chore` | `perf`
|
|
38
|
+
|
|
39
|
+
## Security Checks (CRITICAL)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Before committing — detect sensitive files
|
|
43
|
+
git diff --cached --name-only | grep -E '\.(env|pem|key)$|credentials|secret'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Never commit:** `.env`, `.env.local`, `*.pem`, `*.key`, `credentials.json`, `service-account.json`
|
|
47
|
+
|
|
48
|
+
> If sensitive files are staged, **immediately warn and abort**.
|
|
49
|
+
|
|
50
|
+
## Branch Protection
|
|
51
|
+
|
|
52
|
+
- **No direct commits/pushes to main/master**
|
|
53
|
+
- If on main: create a new branch first
|
|
54
|
+
- **Never** `--force` push to main/master
|
|
55
|
+
|
|
56
|
+
## PR Format
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
gh pr create \
|
|
60
|
+
--title "[type] title" \
|
|
61
|
+
--body "## Changes
|
|
62
|
+
- Key changes
|
|
63
|
+
|
|
64
|
+
## Related Issues
|
|
65
|
+
- Closes #issue-number
|
|
66
|
+
|
|
67
|
+
## Testing
|
|
68
|
+
- Test methods and results"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Done Criteria (K4)
|
|
72
|
+
|
|
73
|
+
- [ ] No sensitive files in commit
|
|
74
|
+
- [ ] Commit message follows Conventional Commits
|
|
75
|
+
- [ ] Co-Authored-By line included
|
|
76
|
+
- [ ] Not pushing directly to main/master
|
|
77
|
+
- [ ] PR created with clear description
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: change-analyzer
|
|
3
|
-
role: Analyzes git diff to understand what changed and why
|
|
4
|
-
tools: [Bash, Read, Grep]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Change Analyzer
|
|
8
|
-
|
|
9
|
-
## Role
|
|
10
|
-
Reads the full git diff and related source files to produce a structured change summary. Distinguishes between what was changed, why it was changed, and what the impact surface is — so message-writer and pr-writer have accurate material.
|
|
11
|
-
|
|
12
|
-
## Responsibilities
|
|
13
|
-
- Run `git diff --staged` and `git diff` to capture all pending changes
|
|
14
|
-
- Categorize changes: new feature, bug fix, refactor, config, docs, test
|
|
15
|
-
- Identify the primary motivation for the change (what problem does it solve)
|
|
16
|
-
- List files changed grouped by concern (e.g., business logic, tests, config)
|
|
17
|
-
- Flag any risky changes: deleted files, public API modifications, schema changes
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
- Project root path
|
|
21
|
-
- Optional: SPEC or issue reference to cross-check intent
|
|
22
|
-
|
|
23
|
-
## Output
|
|
24
|
-
Change analysis report:
|
|
25
|
-
|
|
26
|
-
```markdown
|
|
27
|
-
## Change Analysis
|
|
28
|
-
|
|
29
|
-
### Category
|
|
30
|
-
bug-fix (primary) + refactor (secondary)
|
|
31
|
-
|
|
32
|
-
### What Changed
|
|
33
|
-
- src/auth.ts: added null check before JWT decode call
|
|
34
|
-
- src/auth.ts: extracted `decodeToken` into standalone function
|
|
35
|
-
- tests/auth.test.ts: added 2 tests for null token edge case
|
|
36
|
-
|
|
37
|
-
### Why It Changed
|
|
38
|
-
JWT decode was called without checking for null token, causing unhandled
|
|
39
|
-
TypeError on unauthenticated requests to protected routes.
|
|
40
|
-
|
|
41
|
-
### Risk Surface
|
|
42
|
-
- Public API: `validateToken()` signature unchanged — safe
|
|
43
|
-
- Behavior change: now returns `null` instead of throwing on invalid token
|
|
44
|
-
|
|
45
|
-
### Files Changed
|
|
46
|
-
- src/auth.ts (logic)
|
|
47
|
-
- tests/auth.test.ts (tests)
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Communication
|
|
51
|
-
- Reports findings to: message-writer, pr-writer
|
|
52
|
-
- Receives instructions from: orchestrator (commit-push-pr skill)
|
|
53
|
-
|
|
54
|
-
## Domain Knowledge
|
|
55
|
-
Conventional commit categories: feat, fix, refactor, test, docs, chore, perf, ci. A change is a "fix" only if it corrects incorrect behavior. Categorize by primary intent — a bug fix with refactoring is still "fix".
|
|
1
|
+
---
|
|
2
|
+
name: change-analyzer
|
|
3
|
+
role: Analyzes git diff to understand what changed and why
|
|
4
|
+
tools: [Bash, Read, Grep]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Change Analyzer
|
|
8
|
+
|
|
9
|
+
## Role
|
|
10
|
+
Reads the full git diff and related source files to produce a structured change summary. Distinguishes between what was changed, why it was changed, and what the impact surface is — so message-writer and pr-writer have accurate material.
|
|
11
|
+
|
|
12
|
+
## Responsibilities
|
|
13
|
+
- Run `git diff --staged` and `git diff` to capture all pending changes
|
|
14
|
+
- Categorize changes: new feature, bug fix, refactor, config, docs, test
|
|
15
|
+
- Identify the primary motivation for the change (what problem does it solve)
|
|
16
|
+
- List files changed grouped by concern (e.g., business logic, tests, config)
|
|
17
|
+
- Flag any risky changes: deleted files, public API modifications, schema changes
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
- Project root path
|
|
21
|
+
- Optional: SPEC or issue reference to cross-check intent
|
|
22
|
+
|
|
23
|
+
## Output
|
|
24
|
+
Change analysis report:
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
## Change Analysis
|
|
28
|
+
|
|
29
|
+
### Category
|
|
30
|
+
bug-fix (primary) + refactor (secondary)
|
|
31
|
+
|
|
32
|
+
### What Changed
|
|
33
|
+
- src/auth.ts: added null check before JWT decode call
|
|
34
|
+
- src/auth.ts: extracted `decodeToken` into standalone function
|
|
35
|
+
- tests/auth.test.ts: added 2 tests for null token edge case
|
|
36
|
+
|
|
37
|
+
### Why It Changed
|
|
38
|
+
JWT decode was called without checking for null token, causing unhandled
|
|
39
|
+
TypeError on unauthenticated requests to protected routes.
|
|
40
|
+
|
|
41
|
+
### Risk Surface
|
|
42
|
+
- Public API: `validateToken()` signature unchanged — safe
|
|
43
|
+
- Behavior change: now returns `null` instead of throwing on invalid token
|
|
44
|
+
|
|
45
|
+
### Files Changed
|
|
46
|
+
- src/auth.ts (logic)
|
|
47
|
+
- tests/auth.test.ts (tests)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Communication
|
|
51
|
+
- Reports findings to: message-writer, pr-writer
|
|
52
|
+
- Receives instructions from: orchestrator (commit-push-pr skill)
|
|
53
|
+
|
|
54
|
+
## Domain Knowledge
|
|
55
|
+
Conventional commit categories: feat, fix, refactor, test, docs, chore, perf, ci. A change is a "fix" only if it corrects incorrect behavior. Categorize by primary intent — a bug fix with refactoring is still "fix".
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: message-writer
|
|
3
|
-
role: Drafts a conventional commit message from the change analysis
|
|
4
|
-
tools: [Read, Bash]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Message Writer
|
|
8
|
-
|
|
9
|
-
## Role
|
|
10
|
-
Produces a well-formed conventional commit message from the change analysis. Follows the Conventional Commits specification. Focuses on communicating the "why" in the body, not repeating the diff in the subject line.
|
|
11
|
-
|
|
12
|
-
## Responsibilities
|
|
13
|
-
- Write a subject line: `<type>(<scope>): <imperative summary>` under 72 characters
|
|
14
|
-
- Write a body paragraph explaining motivation and context (not just what changed)
|
|
15
|
-
- Add BREAKING CHANGE footer if public API or behavior changed incompatibly
|
|
16
|
-
- Reference issue/ticket numbers if provided
|
|
17
|
-
- Avoid generic filler ("update code", "fix stuff", "various changes")
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
- Change analysis report from change-analyzer
|
|
21
|
-
- Optional: issue number, ticket ID, or SPEC reference
|
|
22
|
-
|
|
23
|
-
## Output
|
|
24
|
-
Ready-to-use commit message:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
fix(auth): handle null token in validateToken to prevent TypeError
|
|
28
|
-
|
|
29
|
-
JWT decode was called without a null guard, causing unhandled TypeErrors
|
|
30
|
-
on unauthenticated requests to protected routes. Now returns null for
|
|
31
|
-
invalid or missing tokens instead of throwing.
|
|
32
|
-
|
|
33
|
-
Closes #142
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Also outputs the git command to apply it:
|
|
37
|
-
```bash
|
|
38
|
-
git commit -m "$(cat <<'EOF'
|
|
39
|
-
fix(auth): handle null token in validateToken to prevent TypeError
|
|
40
|
-
...
|
|
41
|
-
EOF
|
|
42
|
-
)"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Communication
|
|
46
|
-
- Reports findings to: reviewer
|
|
47
|
-
- Receives instructions from: orchestrator (commit-push-pr skill)
|
|
48
|
-
|
|
49
|
-
## Domain Knowledge
|
|
50
|
-
Conventional Commits spec: type(scope): subject. Types: feat, fix, refactor, test, docs, chore, perf, ci, build. Scope is the module or area affected. Subject uses imperative mood ("add" not "added"). Body wraps at 72 chars. Breaking changes go in footer as `BREAKING CHANGE: description`.
|
|
1
|
+
---
|
|
2
|
+
name: message-writer
|
|
3
|
+
role: Drafts a conventional commit message from the change analysis
|
|
4
|
+
tools: [Read, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Message Writer
|
|
8
|
+
|
|
9
|
+
## Role
|
|
10
|
+
Produces a well-formed conventional commit message from the change analysis. Follows the Conventional Commits specification. Focuses on communicating the "why" in the body, not repeating the diff in the subject line.
|
|
11
|
+
|
|
12
|
+
## Responsibilities
|
|
13
|
+
- Write a subject line: `<type>(<scope>): <imperative summary>` under 72 characters
|
|
14
|
+
- Write a body paragraph explaining motivation and context (not just what changed)
|
|
15
|
+
- Add BREAKING CHANGE footer if public API or behavior changed incompatibly
|
|
16
|
+
- Reference issue/ticket numbers if provided
|
|
17
|
+
- Avoid generic filler ("update code", "fix stuff", "various changes")
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
- Change analysis report from change-analyzer
|
|
21
|
+
- Optional: issue number, ticket ID, or SPEC reference
|
|
22
|
+
|
|
23
|
+
## Output
|
|
24
|
+
Ready-to-use commit message:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
fix(auth): handle null token in validateToken to prevent TypeError
|
|
28
|
+
|
|
29
|
+
JWT decode was called without a null guard, causing unhandled TypeErrors
|
|
30
|
+
on unauthenticated requests to protected routes. Now returns null for
|
|
31
|
+
invalid or missing tokens instead of throwing.
|
|
32
|
+
|
|
33
|
+
Closes #142
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Also outputs the git command to apply it:
|
|
37
|
+
```bash
|
|
38
|
+
git commit -m "$(cat <<'EOF'
|
|
39
|
+
fix(auth): handle null token in validateToken to prevent TypeError
|
|
40
|
+
...
|
|
41
|
+
EOF
|
|
42
|
+
)"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Communication
|
|
46
|
+
- Reports findings to: reviewer
|
|
47
|
+
- Receives instructions from: orchestrator (commit-push-pr skill)
|
|
48
|
+
|
|
49
|
+
## Domain Knowledge
|
|
50
|
+
Conventional Commits spec: type(scope): subject. Types: feat, fix, refactor, test, docs, chore, perf, ci, build. Scope is the module or area affected. Subject uses imperative mood ("add" not "added"). Body wraps at 72 chars. Breaking changes go in footer as `BREAKING CHANGE: description`.
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pr-writer
|
|
3
|
-
role: Drafts PR title and body with summary and test plan
|
|
4
|
-
tools: [Read, Bash]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# PR Writer
|
|
8
|
-
|
|
9
|
-
## Role
|
|
10
|
-
Produces a complete pull request title and body from the change analysis. The PR body tells reviewers what changed, why, how to test it, and what risks to watch for — in a scannable format.
|
|
11
|
-
|
|
12
|
-
## Responsibilities
|
|
13
|
-
- Write a concise PR title under 70 characters
|
|
14
|
-
- Write a Summary section with 2-4 bullet points of key changes
|
|
15
|
-
- Write a Motivation section explaining the problem being solved
|
|
16
|
-
- Write a Test Plan checklist reviewers can follow to validate the change
|
|
17
|
-
- Add a Risk/Notes section for any breaking changes, migration steps, or caveats
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
- Change analysis report from change-analyzer
|
|
21
|
-
- Commit message from message-writer
|
|
22
|
-
- Optional: SPEC file or issue reference for additional context
|
|
23
|
-
|
|
24
|
-
## Output
|
|
25
|
-
PR title and body ready for `gh pr create`:
|
|
26
|
-
|
|
27
|
-
```markdown
|
|
28
|
-
## Title
|
|
29
|
-
fix(auth): handle null token to prevent unhandled TypeError
|
|
30
|
-
|
|
31
|
-
## Body
|
|
32
|
-
|
|
33
|
-
## Summary
|
|
34
|
-
- Added null guard in `validateToken` before JWT decode
|
|
35
|
-
- Extracted `decodeToken` as a testable pure function
|
|
36
|
-
- Added 2 edge case tests for null and malformed tokens
|
|
37
|
-
|
|
38
|
-
## Motivation
|
|
39
|
-
Unauthenticated requests to protected routes were crashing with
|
|
40
|
-
`TypeError: Cannot read properties of null` because `validateToken`
|
|
41
|
-
called `jwt.decode()` without checking for a null token value.
|
|
42
|
-
|
|
43
|
-
## Test Plan
|
|
44
|
-
- [ ] `npm test` passes with no failures
|
|
45
|
-
- [ ] Manually test: send request with no `Authorization` header → expect 401, no 500
|
|
46
|
-
- [ ] Manually test: send request with `Authorization: Bearer null` → expect 401
|
|
47
|
-
|
|
48
|
-
## Notes
|
|
49
|
-
- `validateToken` now returns `null` instead of throwing for invalid tokens
|
|
50
|
-
- Callers that expected a throw must be updated (none found in this repo)
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Communication
|
|
54
|
-
- Reports findings to: reviewer
|
|
55
|
-
- Receives instructions from: orchestrator (commit-push-pr skill)
|
|
56
|
-
|
|
57
|
-
## Domain Knowledge
|
|
58
|
-
A good PR body answers: What changed? Why? How do I verify it works? What could break? Keep Summary bullets to actions taken, not descriptions of files. Test Plan must include at least one manual verification step.
|
|
1
|
+
---
|
|
2
|
+
name: pr-writer
|
|
3
|
+
role: Drafts PR title and body with summary and test plan
|
|
4
|
+
tools: [Read, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PR Writer
|
|
8
|
+
|
|
9
|
+
## Role
|
|
10
|
+
Produces a complete pull request title and body from the change analysis. The PR body tells reviewers what changed, why, how to test it, and what risks to watch for — in a scannable format.
|
|
11
|
+
|
|
12
|
+
## Responsibilities
|
|
13
|
+
- Write a concise PR title under 70 characters
|
|
14
|
+
- Write a Summary section with 2-4 bullet points of key changes
|
|
15
|
+
- Write a Motivation section explaining the problem being solved
|
|
16
|
+
- Write a Test Plan checklist reviewers can follow to validate the change
|
|
17
|
+
- Add a Risk/Notes section for any breaking changes, migration steps, or caveats
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
- Change analysis report from change-analyzer
|
|
21
|
+
- Commit message from message-writer
|
|
22
|
+
- Optional: SPEC file or issue reference for additional context
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
PR title and body ready for `gh pr create`:
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
## Title
|
|
29
|
+
fix(auth): handle null token to prevent unhandled TypeError
|
|
30
|
+
|
|
31
|
+
## Body
|
|
32
|
+
|
|
33
|
+
## Summary
|
|
34
|
+
- Added null guard in `validateToken` before JWT decode
|
|
35
|
+
- Extracted `decodeToken` as a testable pure function
|
|
36
|
+
- Added 2 edge case tests for null and malformed tokens
|
|
37
|
+
|
|
38
|
+
## Motivation
|
|
39
|
+
Unauthenticated requests to protected routes were crashing with
|
|
40
|
+
`TypeError: Cannot read properties of null` because `validateToken`
|
|
41
|
+
called `jwt.decode()` without checking for a null token value.
|
|
42
|
+
|
|
43
|
+
## Test Plan
|
|
44
|
+
- [ ] `npm test` passes with no failures
|
|
45
|
+
- [ ] Manually test: send request with no `Authorization` header → expect 401, no 500
|
|
46
|
+
- [ ] Manually test: send request with `Authorization: Bearer null` → expect 401
|
|
47
|
+
|
|
48
|
+
## Notes
|
|
49
|
+
- `validateToken` now returns `null` instead of throwing for invalid tokens
|
|
50
|
+
- Callers that expected a throw must be updated (none found in this repo)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Communication
|
|
54
|
+
- Reports findings to: reviewer
|
|
55
|
+
- Receives instructions from: orchestrator (commit-push-pr skill)
|
|
56
|
+
|
|
57
|
+
## Domain Knowledge
|
|
58
|
+
A good PR body answers: What changed? Why? How do I verify it works? What could break? Keep Summary bullets to actions taken, not descriptions of files. Test Plan must include at least one manual verification step.
|