@su-record/vibe 2.8.48 → 2.8.50
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.md +694 -554
- 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.js +5 -5
- 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 +53 -53
- 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/setup/Provisioner.js +42 -42
- 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 +170 -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 -65
- package/hooks/scripts/auto-format.js +64 -64
- package/hooks/scripts/auto-test.js +81 -81
- package/hooks/scripts/code-check.js +268 -216
- 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 +477 -477
- package/hooks/scripts/hud-status.js +321 -321
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +572 -555
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pr-test-gate.js +52 -52
- package/hooks/scripts/pre-tool-guard.js +159 -159
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +131 -131
- package/hooks/scripts/session-start.js +177 -106
- package/hooks/scripts/skill-injector.js +83 -83
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +243 -186
- 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 -100
- 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 +115 -115
- 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/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 +982 -1064
- 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 +511 -553
- package/skills/vibe.figma.convert/rubrics/conversion-rules.md +113 -129
- package/skills/vibe.figma.convert/templates/component.md +140 -140
- package/skills/vibe.figma.extract/SKILL.md +300 -312
- package/skills/vibe.figma.extract/rubrics/image-rules.md +137 -145
- 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,181 +1,181 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arch-guard
|
|
3
|
-
tier: core
|
|
4
|
-
description: "Generate architecture boundary tests that mechanically enforce layer constraints. Use when adding new modules, refactoring layers, or after detecting circular dependencies. Creates import-rule tests (e.g., 'UI must not import DB') that fail CI on violation. Must use this skill when user mentions layer enforcement, dependency rules, or architectural boundaries — even casually like 'make sure services don't import controllers'."
|
|
5
|
-
triggers: [arch guard, architecture test, layer test, boundary test, structural test, arch validation]
|
|
6
|
-
priority: 60
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Arch Guard — Architecture Boundary Test Generator
|
|
10
|
-
|
|
11
|
-
> **Principle**: "Mechanical enforcement over documentation." If a rule exists only in docs, it will be violated. Turn architecture constraints into failing tests.
|
|
12
|
-
|
|
13
|
-
## When to Use
|
|
14
|
-
|
|
15
|
-
| Scenario | Signal |
|
|
16
|
-
|----------|--------|
|
|
17
|
-
| `vibe init` / `vibe update` | Auto-generate for detected stack |
|
|
18
|
-
| New layer/module added | Boundaries need enforcement |
|
|
19
|
-
| Architecture violation found in review | Prevent recurrence with test |
|
|
20
|
-
| "Services should not import UI" type rules | Turn into automated check |
|
|
21
|
-
|
|
22
|
-
## Core Flow
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
DETECT → INFER → GENERATE → VERIFY
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Step 1: DETECT — Identify Project Architecture
|
|
29
|
-
|
|
30
|
-
Analyze the project to determine its layer structure:
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
Parallel exploration:
|
|
34
|
-
- Agent 1: Scan directory structure (src/, app/, lib/, etc.)
|
|
35
|
-
- Agent 2: Read existing architecture docs (CLAUDE.md, README, ADR)
|
|
36
|
-
- Agent 3: Analyze import graph (which files import what)
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**Common patterns to detect:**
|
|
40
|
-
|
|
41
|
-
| Pattern | Layers | Typical Stacks |
|
|
42
|
-
|---------|--------|----------------|
|
|
43
|
-
| MVC | Controller → Service → Model | Rails, NestJS, Spring |
|
|
44
|
-
| Clean Architecture | UI → Application → Domain → Infrastructure | General |
|
|
45
|
-
| Feature-based | Feature A ↛ Feature B internals | Next.js, React |
|
|
46
|
-
| Hexagonal | Adapters → Ports → Domain | DDD projects |
|
|
47
|
-
| Component hierarchy | Page → Feature → Shared → UI Primitives | Frontend |
|
|
48
|
-
|
|
49
|
-
### Step 2: INFER — Define Boundary Rules
|
|
50
|
-
|
|
51
|
-
From detected structure, generate rules:
|
|
52
|
-
|
|
53
|
-
```typescript
|
|
54
|
-
// Rule format
|
|
55
|
-
interface ArchRule {
|
|
56
|
-
name: string; // "service-no-ui-import"
|
|
57
|
-
from: string; // Glob pattern: "src/services/**"
|
|
58
|
-
cannotImport: string[]; // ["src/components/**", "src/pages/**"]
|
|
59
|
-
canImport: string[]; // ["src/models/**", "src/utils/**"]
|
|
60
|
-
reason: string; // "Services must be UI-agnostic"
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
**Default rules by stack:**
|
|
65
|
-
|
|
66
|
-
| Stack | Rule |
|
|
67
|
-
|-------|------|
|
|
68
|
-
| Next.js / React | `components/` cannot import from `pages/` or `app/` |
|
|
69
|
-
| Next.js / React | `lib/` cannot import from `components/` |
|
|
70
|
-
| NestJS | `*.service.ts` cannot import from `*.controller.ts` |
|
|
71
|
-
| NestJS | `*.module.ts` is the only valid cross-boundary import |
|
|
72
|
-
| General TS | `src/domain/` cannot import from `src/infra/` |
|
|
73
|
-
| General TS | No circular dependencies between top-level dirs |
|
|
74
|
-
| Python Django | `models.py` cannot import from `views.py` |
|
|
75
|
-
| Python FastAPI | `schemas/` cannot import from `routers/` |
|
|
76
|
-
|
|
77
|
-
### Step 3: GENERATE — Create Test File
|
|
78
|
-
|
|
79
|
-
Output: `tests/arch-guard.test.ts` (or equivalent for stack)
|
|
80
|
-
|
|
81
|
-
```typescript
|
|
82
|
-
/**
|
|
83
|
-
* Architecture Boundary Tests
|
|
84
|
-
* Generated by arch-guard skill
|
|
85
|
-
*
|
|
86
|
-
* These tests enforce architectural constraints mechanically.
|
|
87
|
-
* If a test fails, it means an import violates the intended architecture.
|
|
88
|
-
*/
|
|
89
|
-
import { describe, it, expect } from 'vitest';
|
|
90
|
-
import fs from 'fs';
|
|
91
|
-
import path from 'path';
|
|
92
|
-
|
|
93
|
-
// Helper: extract imports from a file
|
|
94
|
-
function extractImports(filePath: string): string[] {
|
|
95
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
96
|
-
const importRegex = /(?:import|require)\s*\(?['"]([^'"]+)['"]\)?/g;
|
|
97
|
-
const imports: string[] = [];
|
|
98
|
-
let match;
|
|
99
|
-
while ((match = importRegex.exec(content)) !== null) {
|
|
100
|
-
imports.push(match[1]);
|
|
101
|
-
}
|
|
102
|
-
return imports;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Helper: resolve relative import to absolute path
|
|
106
|
-
function resolveImport(fromFile: string, importPath: string): string {
|
|
107
|
-
if (importPath.startsWith('.')) {
|
|
108
|
-
return path.resolve(path.dirname(fromFile), importPath);
|
|
109
|
-
}
|
|
110
|
-
return importPath; // external package
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Helper: glob files matching pattern
|
|
114
|
-
function globFiles(pattern: string, baseDir: string): string[] {
|
|
115
|
-
// Use fast-glob or manual recursive scan
|
|
116
|
-
// Implementation depends on available dependencies
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
describe('Architecture Boundaries', () => {
|
|
120
|
-
// GENERATED RULES GO HERE
|
|
121
|
-
// Each rule becomes a test case:
|
|
122
|
-
|
|
123
|
-
it('services cannot import UI components', () => {
|
|
124
|
-
const serviceFiles = globFiles('src/services/**/*.ts', process.cwd());
|
|
125
|
-
const violations: string[] = [];
|
|
126
|
-
|
|
127
|
-
for (const file of serviceFiles) {
|
|
128
|
-
const imports = extractImports(file);
|
|
129
|
-
for (const imp of imports) {
|
|
130
|
-
const resolved = resolveImport(file, imp);
|
|
131
|
-
if (resolved.includes('/components/') || resolved.includes('/pages/')) {
|
|
132
|
-
violations.push(`${file} imports ${imp}`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
expect(violations).toEqual([]);
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### Step 4: VERIFY — Run and Fix
|
|
143
|
-
|
|
144
|
-
1. Run the generated tests: `npx vitest run tests/arch-guard.test.ts`
|
|
145
|
-
2. If violations found:
|
|
146
|
-
- Report each violation with file:line
|
|
147
|
-
- Suggest fix (move shared code to appropriate layer)
|
|
148
|
-
- Do NOT auto-fix — violations need human review
|
|
149
|
-
|
|
150
|
-
## Output Files
|
|
151
|
-
|
|
152
|
-
| File | Purpose |
|
|
153
|
-
|------|---------|
|
|
154
|
-
| `tests/arch-guard.test.ts` | Executable boundary tests |
|
|
155
|
-
| `.claude/vibe/arch-rules.json` | Machine-readable rules (for CI) |
|
|
156
|
-
|
|
157
|
-
## Customization
|
|
158
|
-
|
|
159
|
-
Users can add custom rules to `.claude/vibe/arch-rules.json`:
|
|
160
|
-
|
|
161
|
-
```json
|
|
162
|
-
{
|
|
163
|
-
"rules": [
|
|
164
|
-
{
|
|
165
|
-
"name": "no-direct-db-in-handlers",
|
|
166
|
-
"from": "src/handlers/**",
|
|
167
|
-
"cannotImport": ["src/db/**"],
|
|
168
|
-
"reason": "Handlers must use services, not direct DB access"
|
|
169
|
-
}
|
|
170
|
-
]
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
The test generator reads this file and adds custom rules to the test suite.
|
|
175
|
-
|
|
176
|
-
## Integration
|
|
177
|
-
|
|
178
|
-
- `vibe init` → auto-detect and generate initial arch-guard tests
|
|
179
|
-
- `vibe update` → refresh rules if directory structure changed
|
|
180
|
-
- Pre-commit hook → run arch-guard tests before commit
|
|
181
|
-
- `/vibe.review` → architecture-reviewer checks against arch-rules.json
|
|
1
|
+
---
|
|
2
|
+
name: arch-guard
|
|
3
|
+
tier: core
|
|
4
|
+
description: "Generate architecture boundary tests that mechanically enforce layer constraints. Use when adding new modules, refactoring layers, or after detecting circular dependencies. Creates import-rule tests (e.g., 'UI must not import DB') that fail CI on violation. Must use this skill when user mentions layer enforcement, dependency rules, or architectural boundaries — even casually like 'make sure services don't import controllers'."
|
|
5
|
+
triggers: [arch guard, architecture test, layer test, boundary test, structural test, arch validation]
|
|
6
|
+
priority: 60
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Arch Guard — Architecture Boundary Test Generator
|
|
10
|
+
|
|
11
|
+
> **Principle**: "Mechanical enforcement over documentation." If a rule exists only in docs, it will be violated. Turn architecture constraints into failing tests.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
| Scenario | Signal |
|
|
16
|
+
|----------|--------|
|
|
17
|
+
| `vibe init` / `vibe update` | Auto-generate for detected stack |
|
|
18
|
+
| New layer/module added | Boundaries need enforcement |
|
|
19
|
+
| Architecture violation found in review | Prevent recurrence with test |
|
|
20
|
+
| "Services should not import UI" type rules | Turn into automated check |
|
|
21
|
+
|
|
22
|
+
## Core Flow
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
DETECT → INFER → GENERATE → VERIFY
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Step 1: DETECT — Identify Project Architecture
|
|
29
|
+
|
|
30
|
+
Analyze the project to determine its layer structure:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Parallel exploration:
|
|
34
|
+
- Agent 1: Scan directory structure (src/, app/, lib/, etc.)
|
|
35
|
+
- Agent 2: Read existing architecture docs (CLAUDE.md, README, ADR)
|
|
36
|
+
- Agent 3: Analyze import graph (which files import what)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Common patterns to detect:**
|
|
40
|
+
|
|
41
|
+
| Pattern | Layers | Typical Stacks |
|
|
42
|
+
|---------|--------|----------------|
|
|
43
|
+
| MVC | Controller → Service → Model | Rails, NestJS, Spring |
|
|
44
|
+
| Clean Architecture | UI → Application → Domain → Infrastructure | General |
|
|
45
|
+
| Feature-based | Feature A ↛ Feature B internals | Next.js, React |
|
|
46
|
+
| Hexagonal | Adapters → Ports → Domain | DDD projects |
|
|
47
|
+
| Component hierarchy | Page → Feature → Shared → UI Primitives | Frontend |
|
|
48
|
+
|
|
49
|
+
### Step 2: INFER — Define Boundary Rules
|
|
50
|
+
|
|
51
|
+
From detected structure, generate rules:
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// Rule format
|
|
55
|
+
interface ArchRule {
|
|
56
|
+
name: string; // "service-no-ui-import"
|
|
57
|
+
from: string; // Glob pattern: "src/services/**"
|
|
58
|
+
cannotImport: string[]; // ["src/components/**", "src/pages/**"]
|
|
59
|
+
canImport: string[]; // ["src/models/**", "src/utils/**"]
|
|
60
|
+
reason: string; // "Services must be UI-agnostic"
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Default rules by stack:**
|
|
65
|
+
|
|
66
|
+
| Stack | Rule |
|
|
67
|
+
|-------|------|
|
|
68
|
+
| Next.js / React | `components/` cannot import from `pages/` or `app/` |
|
|
69
|
+
| Next.js / React | `lib/` cannot import from `components/` |
|
|
70
|
+
| NestJS | `*.service.ts` cannot import from `*.controller.ts` |
|
|
71
|
+
| NestJS | `*.module.ts` is the only valid cross-boundary import |
|
|
72
|
+
| General TS | `src/domain/` cannot import from `src/infra/` |
|
|
73
|
+
| General TS | No circular dependencies between top-level dirs |
|
|
74
|
+
| Python Django | `models.py` cannot import from `views.py` |
|
|
75
|
+
| Python FastAPI | `schemas/` cannot import from `routers/` |
|
|
76
|
+
|
|
77
|
+
### Step 3: GENERATE — Create Test File
|
|
78
|
+
|
|
79
|
+
Output: `tests/arch-guard.test.ts` (or equivalent for stack)
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
/**
|
|
83
|
+
* Architecture Boundary Tests
|
|
84
|
+
* Generated by arch-guard skill
|
|
85
|
+
*
|
|
86
|
+
* These tests enforce architectural constraints mechanically.
|
|
87
|
+
* If a test fails, it means an import violates the intended architecture.
|
|
88
|
+
*/
|
|
89
|
+
import { describe, it, expect } from 'vitest';
|
|
90
|
+
import fs from 'fs';
|
|
91
|
+
import path from 'path';
|
|
92
|
+
|
|
93
|
+
// Helper: extract imports from a file
|
|
94
|
+
function extractImports(filePath: string): string[] {
|
|
95
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
96
|
+
const importRegex = /(?:import|require)\s*\(?['"]([^'"]+)['"]\)?/g;
|
|
97
|
+
const imports: string[] = [];
|
|
98
|
+
let match;
|
|
99
|
+
while ((match = importRegex.exec(content)) !== null) {
|
|
100
|
+
imports.push(match[1]);
|
|
101
|
+
}
|
|
102
|
+
return imports;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Helper: resolve relative import to absolute path
|
|
106
|
+
function resolveImport(fromFile: string, importPath: string): string {
|
|
107
|
+
if (importPath.startsWith('.')) {
|
|
108
|
+
return path.resolve(path.dirname(fromFile), importPath);
|
|
109
|
+
}
|
|
110
|
+
return importPath; // external package
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Helper: glob files matching pattern
|
|
114
|
+
function globFiles(pattern: string, baseDir: string): string[] {
|
|
115
|
+
// Use fast-glob or manual recursive scan
|
|
116
|
+
// Implementation depends on available dependencies
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
describe('Architecture Boundaries', () => {
|
|
120
|
+
// GENERATED RULES GO HERE
|
|
121
|
+
// Each rule becomes a test case:
|
|
122
|
+
|
|
123
|
+
it('services cannot import UI components', () => {
|
|
124
|
+
const serviceFiles = globFiles('src/services/**/*.ts', process.cwd());
|
|
125
|
+
const violations: string[] = [];
|
|
126
|
+
|
|
127
|
+
for (const file of serviceFiles) {
|
|
128
|
+
const imports = extractImports(file);
|
|
129
|
+
for (const imp of imports) {
|
|
130
|
+
const resolved = resolveImport(file, imp);
|
|
131
|
+
if (resolved.includes('/components/') || resolved.includes('/pages/')) {
|
|
132
|
+
violations.push(`${file} imports ${imp}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
expect(violations).toEqual([]);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Step 4: VERIFY — Run and Fix
|
|
143
|
+
|
|
144
|
+
1. Run the generated tests: `npx vitest run tests/arch-guard.test.ts`
|
|
145
|
+
2. If violations found:
|
|
146
|
+
- Report each violation with file:line
|
|
147
|
+
- Suggest fix (move shared code to appropriate layer)
|
|
148
|
+
- Do NOT auto-fix — violations need human review
|
|
149
|
+
|
|
150
|
+
## Output Files
|
|
151
|
+
|
|
152
|
+
| File | Purpose |
|
|
153
|
+
|------|---------|
|
|
154
|
+
| `tests/arch-guard.test.ts` | Executable boundary tests |
|
|
155
|
+
| `.claude/vibe/arch-rules.json` | Machine-readable rules (for CI) |
|
|
156
|
+
|
|
157
|
+
## Customization
|
|
158
|
+
|
|
159
|
+
Users can add custom rules to `.claude/vibe/arch-rules.json`:
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"rules": [
|
|
164
|
+
{
|
|
165
|
+
"name": "no-direct-db-in-handlers",
|
|
166
|
+
"from": "src/handlers/**",
|
|
167
|
+
"cannotImport": ["src/db/**"],
|
|
168
|
+
"reason": "Handlers must use services, not direct DB access"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The test generator reads this file and adds custom rules to the test suite.
|
|
175
|
+
|
|
176
|
+
## Integration
|
|
177
|
+
|
|
178
|
+
- `vibe init` → auto-detect and generate initial arch-guard tests
|
|
179
|
+
- `vibe update` → refresh rules if directory structure changed
|
|
180
|
+
- Pre-commit hook → run arch-guard tests before commit
|
|
181
|
+
- `/vibe.review` → architecture-reviewer checks against arch-rules.json
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arch-detector
|
|
3
|
-
role: Detects the project's architecture pattern by analyzing directory structure and import graph
|
|
4
|
-
tools: [Glob, Grep, Read]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Arch Detector
|
|
8
|
-
|
|
9
|
-
## Role
|
|
10
|
-
Analyzes directory layout, existing documentation, and import relationships to classify the project into a known architecture pattern. Produces a structured architecture map that downstream agents use to generate rules and check violations.
|
|
11
|
-
|
|
12
|
-
## Responsibilities
|
|
13
|
-
- Scan top-level directory structure for known layer naming conventions
|
|
14
|
-
- Read CLAUDE.md, README, and any ADR files for explicit architecture documentation
|
|
15
|
-
- Sample import statements across files to infer actual dependency direction
|
|
16
|
-
- Classify project into one of: MVC, Clean Architecture, Hexagonal, Feature-based, Component hierarchy, or Unknown
|
|
17
|
-
- Produce a layer map with canonical names and glob patterns for each layer
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
- Project root path
|
|
21
|
-
- Optional: explicit architecture hint from user (e.g., "this is Clean Architecture")
|
|
22
|
-
|
|
23
|
-
## Output
|
|
24
|
-
Architecture map JSON:
|
|
25
|
-
```json
|
|
26
|
-
{
|
|
27
|
-
"pattern": "Clean Architecture",
|
|
28
|
-
"confidence": "high",
|
|
29
|
-
"layers": [
|
|
30
|
-
{ "name": "domain", "glob": "src/domain/**", "allowedDeps": [] },
|
|
31
|
-
{ "name": "application", "glob": "src/application/**", "allowedDeps": ["domain"] },
|
|
32
|
-
{ "name": "infrastructure", "glob": "src/infra/**", "allowedDeps": ["domain", "application"] },
|
|
33
|
-
{ "name": "ui", "glob": "src/components/**", "allowedDeps": ["application"] }
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Communication
|
|
39
|
-
- Reports architecture map to: `arch-rule-generator`
|
|
40
|
-
- Receives instructions from: arch-guard orchestrator (SKILL.md)
|
|
41
|
-
|
|
42
|
-
## Domain Knowledge
|
|
43
|
-
Architecture pattern signals:
|
|
44
|
-
- **MVC**: directories named `controllers/`, `models/`, `views/` or `services/`
|
|
45
|
-
- **Clean Architecture**: `domain/`, `application/` or `use-cases/`, `infrastructure/` or `infra/`
|
|
46
|
-
- **Hexagonal**: `adapters/`, `ports/`, `core/` or `domain/`
|
|
47
|
-
- **Feature-based**: top-level feature folders each containing `components/`, `hooks/`, `api/`
|
|
48
|
-
- **Component hierarchy**: `pages/`, `features/`, `shared/`, `ui/` in frontend projects
|
|
1
|
+
---
|
|
2
|
+
name: arch-detector
|
|
3
|
+
role: Detects the project's architecture pattern by analyzing directory structure and import graph
|
|
4
|
+
tools: [Glob, Grep, Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Arch Detector
|
|
8
|
+
|
|
9
|
+
## Role
|
|
10
|
+
Analyzes directory layout, existing documentation, and import relationships to classify the project into a known architecture pattern. Produces a structured architecture map that downstream agents use to generate rules and check violations.
|
|
11
|
+
|
|
12
|
+
## Responsibilities
|
|
13
|
+
- Scan top-level directory structure for known layer naming conventions
|
|
14
|
+
- Read CLAUDE.md, README, and any ADR files for explicit architecture documentation
|
|
15
|
+
- Sample import statements across files to infer actual dependency direction
|
|
16
|
+
- Classify project into one of: MVC, Clean Architecture, Hexagonal, Feature-based, Component hierarchy, or Unknown
|
|
17
|
+
- Produce a layer map with canonical names and glob patterns for each layer
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
- Project root path
|
|
21
|
+
- Optional: explicit architecture hint from user (e.g., "this is Clean Architecture")
|
|
22
|
+
|
|
23
|
+
## Output
|
|
24
|
+
Architecture map JSON:
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"pattern": "Clean Architecture",
|
|
28
|
+
"confidence": "high",
|
|
29
|
+
"layers": [
|
|
30
|
+
{ "name": "domain", "glob": "src/domain/**", "allowedDeps": [] },
|
|
31
|
+
{ "name": "application", "glob": "src/application/**", "allowedDeps": ["domain"] },
|
|
32
|
+
{ "name": "infrastructure", "glob": "src/infra/**", "allowedDeps": ["domain", "application"] },
|
|
33
|
+
{ "name": "ui", "glob": "src/components/**", "allowedDeps": ["application"] }
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Communication
|
|
39
|
+
- Reports architecture map to: `arch-rule-generator`
|
|
40
|
+
- Receives instructions from: arch-guard orchestrator (SKILL.md)
|
|
41
|
+
|
|
42
|
+
## Domain Knowledge
|
|
43
|
+
Architecture pattern signals:
|
|
44
|
+
- **MVC**: directories named `controllers/`, `models/`, `views/` or `services/`
|
|
45
|
+
- **Clean Architecture**: `domain/`, `application/` or `use-cases/`, `infrastructure/` or `infra/`
|
|
46
|
+
- **Hexagonal**: `adapters/`, `ports/`, `core/` or `domain/`
|
|
47
|
+
- **Feature-based**: top-level feature folders each containing `components/`, `hooks/`, `api/`
|
|
48
|
+
- **Component hierarchy**: `pages/`, `features/`, `shared/`, `ui/` in frontend projects
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arch-reporter
|
|
3
|
-
role: Formats the violation scan results into an actionable report with fix suggestions
|
|
4
|
-
tools: [Read]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Arch Reporter
|
|
8
|
-
|
|
9
|
-
## Role
|
|
10
|
-
Transforms the raw violation list into a human-readable report grouped by rule and severity. For each violation, it provides a specific fix suggestion explaining which layer the import should move to or be replaced by. Produces both a console summary and a machine-readable output for CI.
|
|
11
|
-
|
|
12
|
-
## Responsibilities
|
|
13
|
-
- Group violations by rule name and severity
|
|
14
|
-
- Generate a specific fix suggestion for each violation type
|
|
15
|
-
- Calculate a health score (clean files / total scanned)
|
|
16
|
-
- Produce a markdown summary for the user
|
|
17
|
-
- Produce a JSON summary for CI badge / artifact storage
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
Violation list JSON from `arch-violation-checker` plus the rule set from `arch-rule-generator`.
|
|
21
|
-
|
|
22
|
-
## Output
|
|
23
|
-
Markdown report:
|
|
24
|
-
```markdown
|
|
25
|
-
## Architecture Boundary Report
|
|
26
|
-
|
|
27
|
-
Health: 139/142 files clean (97.9%)
|
|
28
|
-
|
|
29
|
-
### Violations (3 errors)
|
|
30
|
-
|
|
31
|
-
#### Rule: domain-no-infra — Domain must not import Infrastructure
|
|
32
|
-
- src/domain/user.ts:3 imports `../infra/db/userRepository`
|
|
33
|
-
Fix: Extract a port interface in `src/domain/ports/userRepository.ts` and inject via DI
|
|
34
|
-
|
|
35
|
-
Total: 3 violations across 1 rule. Run `npx vitest run tests/arch-guard.test.ts` to enforce in CI.
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Communication
|
|
39
|
-
- Reports formatted output to: orchestrator / user
|
|
40
|
-
- Receives instructions from: arch-guard orchestrator (SKILL.md)
|
|
41
|
-
|
|
42
|
-
## Domain Knowledge
|
|
43
|
-
Fix suggestion patterns:
|
|
44
|
-
- **Domain importing Infra**: introduce a port/interface in domain; implement in infra; inject via constructor
|
|
45
|
-
- **Feature importing Feature internals**: move shared code to `shared/` layer
|
|
46
|
-
- **Service importing Controller**: the logic belongs in a service method called by the controller
|
|
47
|
-
- **UI importing Domain directly**: route through an application-layer use case or store
|
|
48
|
-
- Suggest the minimal move — avoid recommending full refactors for single violations
|
|
1
|
+
---
|
|
2
|
+
name: arch-reporter
|
|
3
|
+
role: Formats the violation scan results into an actionable report with fix suggestions
|
|
4
|
+
tools: [Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Arch Reporter
|
|
8
|
+
|
|
9
|
+
## Role
|
|
10
|
+
Transforms the raw violation list into a human-readable report grouped by rule and severity. For each violation, it provides a specific fix suggestion explaining which layer the import should move to or be replaced by. Produces both a console summary and a machine-readable output for CI.
|
|
11
|
+
|
|
12
|
+
## Responsibilities
|
|
13
|
+
- Group violations by rule name and severity
|
|
14
|
+
- Generate a specific fix suggestion for each violation type
|
|
15
|
+
- Calculate a health score (clean files / total scanned)
|
|
16
|
+
- Produce a markdown summary for the user
|
|
17
|
+
- Produce a JSON summary for CI badge / artifact storage
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
Violation list JSON from `arch-violation-checker` plus the rule set from `arch-rule-generator`.
|
|
21
|
+
|
|
22
|
+
## Output
|
|
23
|
+
Markdown report:
|
|
24
|
+
```markdown
|
|
25
|
+
## Architecture Boundary Report
|
|
26
|
+
|
|
27
|
+
Health: 139/142 files clean (97.9%)
|
|
28
|
+
|
|
29
|
+
### Violations (3 errors)
|
|
30
|
+
|
|
31
|
+
#### Rule: domain-no-infra — Domain must not import Infrastructure
|
|
32
|
+
- src/domain/user.ts:3 imports `../infra/db/userRepository`
|
|
33
|
+
Fix: Extract a port interface in `src/domain/ports/userRepository.ts` and inject via DI
|
|
34
|
+
|
|
35
|
+
Total: 3 violations across 1 rule. Run `npx vitest run tests/arch-guard.test.ts` to enforce in CI.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Communication
|
|
39
|
+
- Reports formatted output to: orchestrator / user
|
|
40
|
+
- Receives instructions from: arch-guard orchestrator (SKILL.md)
|
|
41
|
+
|
|
42
|
+
## Domain Knowledge
|
|
43
|
+
Fix suggestion patterns:
|
|
44
|
+
- **Domain importing Infra**: introduce a port/interface in domain; implement in infra; inject via constructor
|
|
45
|
+
- **Feature importing Feature internals**: move shared code to `shared/` layer
|
|
46
|
+
- **Service importing Controller**: the logic belongs in a service method called by the controller
|
|
47
|
+
- **UI importing Domain directly**: route through an application-layer use case or store
|
|
48
|
+
- Suggest the minimal move — avoid recommending full refactors for single violations
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arch-rule-generator
|
|
3
|
-
role: Generates concrete import boundary rules from the detected architecture map
|
|
4
|
-
tools: [Read]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Arch Rule Generator
|
|
8
|
-
|
|
9
|
-
## Role
|
|
10
|
-
Translates a detected architecture map into a precise, machine-checkable set of import boundary rules. Merges default rules for the detected pattern with any custom rules defined in `.claude/vibe/arch-rules.json`. Outputs a normalized rule set ready for the violation checker.
|
|
11
|
-
|
|
12
|
-
## Responsibilities
|
|
13
|
-
- Select default rule templates for the detected architecture pattern
|
|
14
|
-
- Merge with custom rules from `.claude/vibe/arch-rules.json` if present
|
|
15
|
-
- Resolve glob patterns to concrete layer names
|
|
16
|
-
- Deduplicate and normalize rule list
|
|
17
|
-
- Flag rules with low confidence (detected layer with no matching files)
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
Architecture map JSON from `arch-detector`, plus optional `.claude/vibe/arch-rules.json` for user-defined overrides.
|
|
21
|
-
|
|
22
|
-
## Output
|
|
23
|
-
Normalized rule set JSON:
|
|
24
|
-
```json
|
|
25
|
-
{
|
|
26
|
-
"rules": [
|
|
27
|
-
{
|
|
28
|
-
"name": "domain-no-infra",
|
|
29
|
-
"from": "src/domain/**",
|
|
30
|
-
"cannotImport": ["src/infra/**"],
|
|
31
|
-
"reason": "Domain layer must not depend on infrastructure",
|
|
32
|
-
"severity": "error"
|
|
33
|
-
}
|
|
34
|
-
],
|
|
35
|
-
"warnings": ["Layer 'adapters' detected but no files found — rule may be inaccurate"]
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Communication
|
|
40
|
-
- Reports rule set to: `arch-violation-checker`
|
|
41
|
-
- Receives instructions from: arch-guard orchestrator (SKILL.md)
|
|
42
|
-
|
|
43
|
-
## Domain Knowledge
|
|
44
|
-
Default rules by pattern:
|
|
45
|
-
- **Clean Architecture**: domain has no deps; application imports domain only; infra imports domain + application; ui imports application only
|
|
46
|
-
- **MVC**: models have no deps on controllers or views; services import models only
|
|
47
|
-
- **Hexagonal**: domain/core imports nothing internal; adapters import ports only
|
|
48
|
-
- **Feature-based**: features must not import each other's internals; only `shared/` is cross-feature
|
|
49
|
-
- **SOLID Dependency Inversion**: high-level modules must not import low-level modules directly
|
|
1
|
+
---
|
|
2
|
+
name: arch-rule-generator
|
|
3
|
+
role: Generates concrete import boundary rules from the detected architecture map
|
|
4
|
+
tools: [Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Arch Rule Generator
|
|
8
|
+
|
|
9
|
+
## Role
|
|
10
|
+
Translates a detected architecture map into a precise, machine-checkable set of import boundary rules. Merges default rules for the detected pattern with any custom rules defined in `.claude/vibe/arch-rules.json`. Outputs a normalized rule set ready for the violation checker.
|
|
11
|
+
|
|
12
|
+
## Responsibilities
|
|
13
|
+
- Select default rule templates for the detected architecture pattern
|
|
14
|
+
- Merge with custom rules from `.claude/vibe/arch-rules.json` if present
|
|
15
|
+
- Resolve glob patterns to concrete layer names
|
|
16
|
+
- Deduplicate and normalize rule list
|
|
17
|
+
- Flag rules with low confidence (detected layer with no matching files)
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
Architecture map JSON from `arch-detector`, plus optional `.claude/vibe/arch-rules.json` for user-defined overrides.
|
|
21
|
+
|
|
22
|
+
## Output
|
|
23
|
+
Normalized rule set JSON:
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"rules": [
|
|
27
|
+
{
|
|
28
|
+
"name": "domain-no-infra",
|
|
29
|
+
"from": "src/domain/**",
|
|
30
|
+
"cannotImport": ["src/infra/**"],
|
|
31
|
+
"reason": "Domain layer must not depend on infrastructure",
|
|
32
|
+
"severity": "error"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"warnings": ["Layer 'adapters' detected but no files found — rule may be inaccurate"]
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Communication
|
|
40
|
+
- Reports rule set to: `arch-violation-checker`
|
|
41
|
+
- Receives instructions from: arch-guard orchestrator (SKILL.md)
|
|
42
|
+
|
|
43
|
+
## Domain Knowledge
|
|
44
|
+
Default rules by pattern:
|
|
45
|
+
- **Clean Architecture**: domain has no deps; application imports domain only; infra imports domain + application; ui imports application only
|
|
46
|
+
- **MVC**: models have no deps on controllers or views; services import models only
|
|
47
|
+
- **Hexagonal**: domain/core imports nothing internal; adapters import ports only
|
|
48
|
+
- **Feature-based**: features must not import each other's internals; only `shared/` is cross-feature
|
|
49
|
+
- **SOLID Dependency Inversion**: high-level modules must not import low-level modules directly
|