@su-record/vibe 2.16.4 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +8 -8
- package/README.en.md +46 -29
- package/README.md +41 -24
- package/agents/acceptance-tester.md +56 -0
- package/agents/architect.md +25 -67
- package/agents/build-error-resolver.md +28 -97
- package/agents/code-reviewer.md +89 -0
- package/agents/diagrammer.md +34 -169
- package/agents/documenter.md +43 -0
- package/agents/e2e-tester.md +46 -281
- package/agents/event/event-ops.md +54 -77
- package/agents/event/event-planner.md +63 -0
- package/agents/figma/figma-engineer.md +76 -0
- package/agents/implementer.md +26 -41
- package/agents/security-reviewer.md +56 -0
- package/agents/tester.md +37 -33
- package/agents/ui/design-reviewer.md +62 -0
- package/agents/ui/design-system-gen.md +63 -0
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +8 -10
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/index.d.ts +0 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +0 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/model-refresh.js +1 -1
- package/dist/cli/llm/model-refresh.js.map +1 -1
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/claude-agents.js +16 -77
- package/dist/cli/postinstall/claude-agents.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +80 -296
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
- package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +26 -68
- package/dist/cli/postinstall/cursor-agents.js.map +1 -1
- package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-skills.js +26 -30
- package/dist/cli/postinstall/cursor-skills.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +0 -2
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/Provisioner.d.ts.map +1 -1
- package/dist/cli/setup/Provisioner.js +19 -21
- package/dist/cli/setup/Provisioner.js.map +1 -1
- package/dist/cli/utils.d.ts +4 -1
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +4 -1
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/FrameworkDetector.js +4 -4
- package/dist/infra/lib/FrameworkDetector.js.map +1 -1
- package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
- package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
- package/dist/infra/lib/browser/launch.js +1 -1
- package/dist/infra/lib/browser/launch.js.map +1 -1
- package/dist/infra/lib/browser/types.d.ts +1 -1
- package/dist/infra/lib/browser/types.js +1 -1
- package/dist/infra/lib/constants.d.ts +1 -1
- package/dist/infra/lib/constants.d.ts.map +1 -1
- package/dist/infra/lib/constants.js +4 -5
- package/dist/infra/lib/constants.js.map +1 -1
- package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
- package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
- package/dist/infra/lib/memory/index.d.ts +0 -2
- package/dist/infra/lib/memory/index.d.ts.map +1 -1
- package/dist/infra/lib/memory/index.js +0 -2
- package/dist/infra/lib/memory/index.js.map +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
- package/dist/tools/index.d.ts +0 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory/autoSaveContext.d.ts +0 -1
- package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
- package/dist/tools/memory/autoSaveContext.js +13 -27
- package/dist/tools/memory/autoSaveContext.js.map +1 -1
- package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
- package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
- package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
- package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
- package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
- package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
- package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
- package/hooks/scripts/__tests__/step-counter.test.js +1 -1
- package/hooks/scripts/clone-extract.js +242 -28
- package/hooks/scripts/clone-merge-responsive.js +184 -0
- package/hooks/scripts/clone-spec.js +33 -8
- package/hooks/scripts/clone-validate.js +15 -9
- package/hooks/scripts/code-check.js +16 -203
- package/hooks/scripts/context-save.js +0 -11
- package/hooks/scripts/lib/scope-from-spec.js +9 -6
- package/hooks/scripts/post-edit-dispatcher.js +1 -1
- package/hooks/scripts/prompt-dispatcher.js +7 -18
- package/hooks/scripts/session-start.js +25 -35
- package/package.json +6 -5
- package/skills/agents-md/SKILL.md +62 -15
- package/skills/arch-guard/SKILL.md +1 -1
- package/skills/brand-assets/SKILL.md +2 -2
- package/skills/capability-loop/SKILL.md +1 -1
- package/skills/chub-usage/SKILL.md +1 -1
- package/skills/clone/SKILL.md +132 -55
- package/skills/commerce-patterns/SKILL.md +2 -2
- package/skills/commit-push-pr/SKILL.md +0 -1
- package/skills/context7-usage/SKILL.md +1 -1
- package/skills/design-refine/SKILL.md +140 -0
- package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
- package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
- package/skills/design-review/SKILL.md +143 -0
- package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
- package/skills/{design-audit → design-review}/orchestrator.md +3 -3
- package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
- package/skills/{design-audit → design-review}/templates/report.md +3 -3
- package/skills/design-teach/SKILL.md +11 -11
- package/skills/docs/SKILL.md +14 -16
- package/skills/e2e-commerce/SKILL.md +1 -1
- package/skills/event-comms/SKILL.md +1 -1
- package/skills/event-ops/SKILL.md +2 -2
- package/skills/event-planning/SKILL.md +1 -1
- package/skills/exec-plan/SKILL.md +2 -2
- package/skills/figma/SKILL.md +240 -148
- package/skills/figma/rubrics/css-mapping.md +125 -0
- package/skills/git-worktree/SKILL.md +1 -1
- package/skills/handoff/SKILL.md +1 -1
- package/skills/parallel-research/SKILL.md +14 -28
- package/skills/priority-todos/SKILL.md +1 -1
- package/skills/regress/SKILL.md +11 -0
- package/skills/restraint/SKILL.md +72 -0
- package/skills/seo-checklist/SKILL.md +2 -2
- package/skills/spec/SKILL.md +65 -836
- package/skills/test/SKILL.md +3 -3
- package/skills/tool-fallback/SKILL.md +2 -2
- package/skills/vercel-react-best-practices/SKILL.md +1 -1
- package/skills/vibe/SKILL.md +20 -35
- package/skills/vibe.analyze/SKILL.md +7 -9
- package/skills/vibe.clone/SKILL.md +39 -19
- package/skills/vibe.docs/SKILL.md +1 -1
- package/skills/vibe.event/SKILL.md +27 -27
- package/skills/vibe.figma/SKILL.md +14 -18
- package/skills/vibe.harness/SKILL.md +5 -5
- package/skills/vibe.reason/SKILL.md +0 -2
- package/skills/vibe.review/SKILL.md +45 -49
- package/skills/vibe.run/SKILL.md +2 -5
- package/skills/vibe.run/references/parallel-agents.md +33 -98
- package/skills/vibe.spec/SKILL.md +38 -535
- package/skills/vibe.utils/SKILL.md +3 -3
- package/skills/vibe.verify/SKILL.md +70 -542
- package/skills/video-production/SKILL.md +1 -1
- package/vibe/rules/orchestrator-contract.md +5 -4
- package/vibe/rules/quality/performance.md +1 -1
- package/vibe/templates/claudemd-template.md +1 -1
- package/vibe/templates/spec-template.md +35 -185
- package/agents/architect-low.md +0 -41
- package/agents/architect-medium.md +0 -59
- package/agents/compounder.md +0 -265
- package/agents/docs/api-documenter.md +0 -99
- package/agents/docs/changelog-writer.md +0 -93
- package/agents/event/event-comms.md +0 -78
- package/agents/event/event-content.md +0 -68
- package/agents/event/event-image.md +0 -95
- package/agents/event/event-scheduler.md +0 -69
- package/agents/event/event-speaker.md +0 -86
- package/agents/explorer-low.md +0 -42
- package/agents/explorer-medium.md +0 -59
- package/agents/explorer.md +0 -48
- package/agents/figma/figma-analyst.md +0 -56
- package/agents/figma/figma-architect.md +0 -116
- package/agents/figma/figma-auditor.md +0 -86
- package/agents/figma/figma-builder.md +0 -104
- package/agents/implementer-low.md +0 -43
- package/agents/implementer-medium.md +0 -52
- package/agents/junior-mentor.md +0 -141
- package/agents/planning/requirements-analyst.md +0 -84
- package/agents/planning/ux-advisor.md +0 -83
- package/agents/qa/acceptance-tester.md +0 -86
- package/agents/qa/edge-case-finder.md +0 -93
- package/agents/qa/qa-coordinator.md +0 -131
- package/agents/refactor-cleaner.md +0 -143
- package/agents/research/best-practices.md +0 -199
- package/agents/research/codebase-patterns.md +0 -157
- package/agents/research/framework-docs.md +0 -188
- package/agents/research/security-advisory.md +0 -213
- package/agents/review/architecture-reviewer.md +0 -107
- package/agents/review/complexity-reviewer.md +0 -116
- package/agents/review/data-integrity-reviewer.md +0 -88
- package/agents/review/git-history-reviewer.md +0 -103
- package/agents/review/performance-reviewer.md +0 -86
- package/agents/review/python-reviewer.md +0 -150
- package/agents/review/rails-reviewer.md +0 -139
- package/agents/review/react-reviewer.md +0 -144
- package/agents/review/security-reviewer.md +0 -80
- package/agents/review/simplicity-reviewer.md +0 -140
- package/agents/review/test-coverage-reviewer.md +0 -116
- package/agents/review/typescript-reviewer.md +0 -127
- package/agents/searcher.md +0 -54
- package/agents/simplifier.md +0 -124
- package/agents/teams/debug-team.md +0 -74
- package/agents/teams/dev-team.md +0 -92
- package/agents/teams/docs-team.md +0 -84
- package/agents/teams/figma-team.md +0 -89
- package/agents/teams/fullstack-team.md +0 -87
- package/agents/teams/lite-team.md +0 -73
- package/agents/teams/migration-team.md +0 -82
- package/agents/teams/refactor-team.md +0 -98
- package/agents/teams/research-team.md +0 -90
- package/agents/teams/review-debate-team.md +0 -129
- package/agents/teams/security-team.md +0 -85
- package/agents/ui/ui-a11y-auditor.md +0 -93
- package/agents/ui/ui-antipattern-detector.md +0 -102
- package/agents/ui/ui-dataviz-advisor.md +0 -69
- package/agents/ui/ui-design-system-gen.md +0 -57
- package/agents/ui/ui-industry-analyzer.md +0 -49
- package/agents/ui/ui-layout-architect.md +0 -65
- package/agents/ui/ui-stack-implementer.md +0 -68
- package/agents/ui/ux-compliance-reviewer.md +0 -81
- package/agents/ui-previewer.md +0 -262
- package/dist/cli/llm/gemini-commands.d.ts +0 -25
- package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
- package/dist/cli/llm/gemini-commands.js +0 -143
- package/dist/cli/llm/gemini-commands.js.map +0 -1
- package/dist/cli/postinstall/codex-agents.d.ts +0 -24
- package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-agents.js +0 -114
- package/dist/cli/postinstall/codex-agents.js.map +0 -1
- package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
- package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-instruction.js +0 -56
- package/dist/cli/postinstall/codex-instruction.js.map +0 -1
- package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
- package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-agents.js +0 -80
- package/dist/cli/postinstall/gemini-agents.js.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
- package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.js +0 -59
- package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.d.ts +0 -104
- package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.js +0 -297
- package/dist/infra/lib/ContextCompressor.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
- package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.js +0 -25
- package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
- package/dist/infra/lib/ProgressTracker.d.ts +0 -73
- package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
- package/dist/infra/lib/ProgressTracker.js +0 -267
- package/dist/infra/lib/ProgressTracker.js.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
- package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.js +0 -191
- package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
- package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.js +0 -185
- package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
- package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
- package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
- package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
- package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
- package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
- package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.js +0 -119
- package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
- package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
- package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
- package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
- package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
- package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
- package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
- package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
- package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
- package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
- package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
- package/dist/infra/lib/autonomy/index.d.ts +0 -18
- package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/index.js +0 -22
- package/dist/infra/lib/autonomy/index.js.map +0 -1
- package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
- package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/schemas.js +0 -90
- package/dist/infra/lib/autonomy/schemas.js.map +0 -1
- package/dist/infra/lib/claude/index.d.ts +0 -5
- package/dist/infra/lib/claude/index.d.ts.map +0 -1
- package/dist/infra/lib/claude/index.js +0 -5
- package/dist/infra/lib/claude/index.js.map +0 -1
- package/dist/infra/lib/claude/storage.d.ts +0 -12
- package/dist/infra/lib/claude/storage.d.ts.map +0 -1
- package/dist/infra/lib/claude/storage.js +0 -54
- package/dist/infra/lib/claude/storage.js.map +0 -1
- package/dist/infra/lib/gemini/auth.d.ts +0 -18
- package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
- package/dist/infra/lib/gemini/auth.js +0 -32
- package/dist/infra/lib/gemini/auth.js.map +0 -1
- package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
- package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
- package/dist/infra/lib/gemini/capabilities.js +0 -178
- package/dist/infra/lib/gemini/capabilities.js.map +0 -1
- package/dist/infra/lib/gemini/chat.d.ts +0 -35
- package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
- package/dist/infra/lib/gemini/chat.js +0 -161
- package/dist/infra/lib/gemini/chat.js.map +0 -1
- package/dist/infra/lib/gemini/completion.d.ts +0 -12
- package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
- package/dist/infra/lib/gemini/completion.js +0 -13
- package/dist/infra/lib/gemini/completion.js.map +0 -1
- package/dist/infra/lib/gemini/constants.d.ts +0 -8
- package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
- package/dist/infra/lib/gemini/constants.js +0 -11
- package/dist/infra/lib/gemini/constants.js.map +0 -1
- package/dist/infra/lib/gemini/index.d.ts +0 -13
- package/dist/infra/lib/gemini/index.d.ts.map +0 -1
- package/dist/infra/lib/gemini/index.js +0 -12
- package/dist/infra/lib/gemini/index.js.map +0 -1
- package/dist/infra/lib/gemini/models.d.ts +0 -11
- package/dist/infra/lib/gemini/models.d.ts.map +0 -1
- package/dist/infra/lib/gemini/models.js +0 -38
- package/dist/infra/lib/gemini/models.js.map +0 -1
- package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
- package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
- package/dist/infra/lib/gemini/orchestration.js +0 -62
- package/dist/infra/lib/gemini/orchestration.js.map +0 -1
- package/dist/infra/lib/gemini/types.d.ts +0 -115
- package/dist/infra/lib/gemini/types.d.ts.map +0 -1
- package/dist/infra/lib/gemini/types.js +0 -5
- package/dist/infra/lib/gemini/types.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
- package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
- package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.js +0 -272
- package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
- package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
- package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManager.js +0 -183
- package/dist/infra/orchestrator/AgentManager.js.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
- package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
- package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
- package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.js +0 -217
- package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
- package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.js +0 -620
- package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
- package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
- package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.js +0 -121
- package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
- package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.js +0 -146
- package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
- package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
- package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.js +0 -385
- package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
- package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
- package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
- package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
- package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/SessionStore.js +0 -116
- package/dist/infra/orchestrator/SessionStore.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.js +0 -277
- package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
- package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
- package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
- package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
- package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.js +0 -175
- package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
- package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.js +0 -10
- package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
- package/dist/infra/orchestrator/index.d.ts +0 -207
- package/dist/infra/orchestrator/index.d.ts.map +0 -1
- package/dist/infra/orchestrator/index.js +0 -362
- package/dist/infra/orchestrator/index.js.map +0 -1
- package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
- package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/orchestrator.js +0 -214
- package/dist/infra/orchestrator/orchestrator.js.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.js +0 -285
- package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
- package/dist/infra/orchestrator/types.d.ts +0 -205
- package/dist/infra/orchestrator/types.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.js +0 -87
- package/dist/infra/orchestrator/types.js.map +0 -1
- package/dist/infra/orchestrator/types.test.d.ts +0 -2
- package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.test.js +0 -57
- package/dist/infra/orchestrator/types.test.js.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
- package/dist/tools/semantic/astGrep.d.ts +0 -25
- package/dist/tools/semantic/astGrep.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.js +0 -324
- package/dist/tools/semantic/astGrep.js.map +0 -1
- package/dist/tools/semantic/astGrep.test.d.ts +0 -2
- package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.test.js +0 -74
- package/dist/tools/semantic/astGrep.test.js.map +0 -1
- package/dist/tools/semantic/findReferences.d.ts +0 -9
- package/dist/tools/semantic/findReferences.d.ts.map +0 -1
- package/dist/tools/semantic/findReferences.js +0 -200
- package/dist/tools/semantic/findReferences.js.map +0 -1
- package/dist/tools/semantic/findSymbol.d.ts +0 -8
- package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
- package/dist/tools/semantic/findSymbol.js +0 -204
- package/dist/tools/semantic/findSymbol.js.map +0 -1
- package/dist/tools/semantic/index.d.ts +0 -9
- package/dist/tools/semantic/index.d.ts.map +0 -1
- package/dist/tools/semantic/index.js +0 -11
- package/dist/tools/semantic/index.js.map +0 -1
- package/dist/tools/semantic/lsp.d.ts +0 -68
- package/dist/tools/semantic/lsp.d.ts.map +0 -1
- package/dist/tools/semantic/lsp.js +0 -561
- package/dist/tools/semantic/lsp.js.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
- package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.js +0 -255
- package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
- package/dist/tools/spec/specVersioning.d.ts +0 -76
- package/dist/tools/spec/specVersioning.d.ts.map +0 -1
- package/dist/tools/spec/specVersioning.js +0 -236
- package/dist/tools/spec/specVersioning.js.map +0 -1
- package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
- package/hooks/scripts/keyword-detector.js +0 -226
- package/skills/characterization-test/SKILL.md +0 -209
- package/skills/characterization-test/agents/behavior-capturer.md +0 -50
- package/skills/characterization-test/agents/coverage-checker.md +0 -54
- package/skills/characterization-test/agents/reporter.md +0 -50
- package/skills/characterization-test/agents/test-writer.md +0 -49
- package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
- package/skills/characterization-test/templates/test-template.ts +0 -101
- package/skills/claude-md-guide/SKILL.md +0 -353
- package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
- package/skills/design-audit/SKILL.md +0 -154
- package/skills/design-critique/SKILL.md +0 -140
- package/skills/design-distill/SKILL.md +0 -131
- package/skills/design-normalize/SKILL.md +0 -135
- package/skills/design-polish/SKILL.md +0 -132
- package/skills/figma-convert/SKILL.md +0 -236
- package/skills/figma-extract/SKILL.md +0 -242
- package/skills/interview/SKILL.md +0 -358
- package/skills/interview/checklists/api.md +0 -101
- package/skills/interview/checklists/feature.md +0 -88
- package/skills/interview/checklists/library.md +0 -95
- package/skills/interview/checklists/mobile.md +0 -89
- package/skills/interview/checklists/webapp.md +0 -97
- package/skills/interview/checklists/website.md +0 -99
- package/skills/plan/SKILL.md +0 -254
- package/skills/rob-pike/SKILL.md +0 -66
- package/skills/spec/references/askuser-examples.md +0 -57
- package/skills/spec/references/example-session.md +0 -87
- package/skills/spec/references/templates.md +0 -194
- package/skills/spec-review/SKILL.md +0 -725
- package/skills/systematic-debugging/SKILL.md +0 -142
- package/skills/techdebt/SKILL.md +0 -126
- package/skills/techdebt/agents/analyzer.md +0 -50
- package/skills/techdebt/agents/fixer.md +0 -41
- package/skills/techdebt/agents/reviewer.md +0 -47
- package/skills/techdebt/agents/scanner.md +0 -44
- package/skills/techdebt/orchestrator.md +0 -72
- package/skills/techdebt/rubrics/severity.md +0 -51
- package/skills/techdebt/scripts/scan.js +0 -90
- package/skills/techdebt/templates/report.md +0 -86
- package/skills/typescript-advanced-types/SKILL.md +0 -68
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
- package/skills/yagni-ladder/SKILL.md +0 -90
- /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
- /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
- /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
- /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
- /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
- /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
- /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
- /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
- /package/skills/{figma-convert → figma}/templates/component.md +0 -0
|
@@ -5,7 +5,7 @@ invocation: [auto]
|
|
|
5
5
|
tier: standard
|
|
6
6
|
description: "When an agent fails, diagnose which capability is missing and build it into the repo. Activates after repeated agent failures, tool errors, or when a task keeps failing in the same way. Analyzes failure transcripts, identifies the missing guardrail/tool/abstraction/doc, and creates it permanently. Use this skill whenever you see 3+ similar failures, an agent hitting the same wall repeatedly, or the user asking 'why does this keep failing'."
|
|
7
7
|
triggers: [capability loop, failure loop, build capability, missing capability, agent failed, why did it fail]
|
|
8
|
-
priority:
|
|
8
|
+
priority: 60
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Capability Loop — Failure → Capability Building
|
|
@@ -4,7 +4,7 @@ invocation: [auto]
|
|
|
4
4
|
tier: optional
|
|
5
5
|
description: "Context Hub (chub) — fetch vetted, up-to-date API documentation. Write accurate code based on the latest docs instead of training data when working with external APIs/SDKs."
|
|
6
6
|
triggers: [chub, context hub, API docs, latest API, deprecated API, SDK documentation, api reference, 최신 문서]
|
|
7
|
-
priority:
|
|
7
|
+
priority: 60
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Context Hub (chub) Usage
|
package/skills/clone/SKILL.md
CHANGED
|
@@ -24,8 +24,14 @@ The rendered DOM is the source of truth for markup. Screenshots are for pixel ve
|
|
|
24
24
|
|
|
25
25
|
```
|
|
26
26
|
1. Do NOT generate CSS values by guessing or eyeballing screenshots.
|
|
27
|
-
✅
|
|
28
|
-
|
|
27
|
+
✅ clone-to-scss.js output is a DRAFT (skeleton), not a frozen artifact. You MAY
|
|
28
|
+
rewrite SCSS values/selectors — but ONLY with evidence cited from computed.json /
|
|
29
|
+
states.json / behaviors.json (value correction, dedupe, selector restructuring).
|
|
30
|
+
✅ clone-validate.js PASS is the sole judge of value correctness — not self-report.
|
|
31
|
+
❌ Do NOT invent values with no extraction evidence ("looks like 18px" is forbidden).
|
|
32
|
+
❌ Do NOT write CSS values directly inside scoped <style> blocks — style LOCATION
|
|
33
|
+
rule: all values live in styles/{feature}/ SCSS (value authority and style
|
|
34
|
+
location are separate rules; both hold).
|
|
29
35
|
|
|
30
36
|
2. Do NOT hotlink remote assets. All images/fonts must be downloaded and rewritten.
|
|
31
37
|
|
|
@@ -34,6 +40,9 @@ The rendered DOM is the source of truth for markup. Screenshots are for pixel ve
|
|
|
34
40
|
4. Do NOT copy textual content verbatim from copyrighted sources for production use.
|
|
35
41
|
This skill is for layout/markup learning ("클론 코딩"). Replace text with placeholders
|
|
36
42
|
or user-provided copy when shipping a real product.
|
|
43
|
+
Exception: `--real-content` — the user confirms (once, explicitly) they own the site
|
|
44
|
+
or have permission. Then keep text verbatim; clone-spec.js is invoked with
|
|
45
|
+
`--real-content` so specs mark copy as verbatim.
|
|
37
46
|
|
|
38
47
|
5. Do NOT build a section without confirming its interaction model. The model in
|
|
39
48
|
sections.json is a static-DOM heuristic — verify scroll-driven vs click-driven vs
|
|
@@ -42,10 +51,11 @@ The rendered DOM is the source of truth for markup. Screenshots are for pixel ve
|
|
|
42
51
|
6. Do NOT ship default-state-only. Implement every harvested state (hover/focus/active/open/
|
|
43
52
|
tab-switch) from states.json / the section spec.
|
|
44
53
|
|
|
45
|
-
7. Do NOT ignore behaviors.json. The ACTIVE interaction sweep (scroll-state diffs
|
|
46
|
-
click-driven tab content-swap detection
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
7. Do NOT ignore behaviors.json. The ACTIVE interaction sweep (scroll-state diffs,
|
|
55
|
+
click-driven tab content-swap detection, hover diffs, in-view entrance animations,
|
|
56
|
+
time-driven mutation candidates, smooth-scroll-lib detection) catches JS-set state
|
|
57
|
+
that static CSS harvesting is blind to. When the spec's "Dynamic behaviors" block
|
|
58
|
+
conflicts with the static interaction heuristic, the active capture wins.
|
|
49
59
|
```
|
|
50
60
|
|
|
51
61
|
## Full Flow
|
|
@@ -56,9 +66,11 @@ Input: a URL (or multiple URLs for multi-page clones)
|
|
|
56
66
|
→ Phase 0: Setup (stack detection, feature naming, working dir)
|
|
57
67
|
→ Phase 1: Capture (Puppeteer → rendered HTML + computed CSS + screenshots + assets)
|
|
58
68
|
→ Phase 2: Refine (DOM → sections.json per breakpoint; + interaction model + states)
|
|
59
|
-
→ Phase
|
|
69
|
+
→ Phase 2.5: Foundation (fonts / favicon / OG / SVG icons — sequential, before any section)
|
|
70
|
+
→ Phase 3: Scaffold (spec gate → SCSS draft + builder dispatch, parallel per section)
|
|
71
|
+
→ Phase 3C: Responsive merge (clone-merge-responsive.js — mobile-first @media)
|
|
60
72
|
→ Phase 4: Compile gate
|
|
61
|
-
→ Phase 5: Pixel verification loop
|
|
73
|
+
→ Phase 5: Pixel verification loop (BOTH viewports after merge)
|
|
62
74
|
|
|
63
75
|
Working directory:
|
|
64
76
|
/tmp/{feature}/
|
|
@@ -67,7 +79,9 @@ Working directory:
|
|
|
67
79
|
└── tokens.json — extracted design tokens (colors/fonts/spacing)
|
|
68
80
|
|
|
69
81
|
Code output: placed directly in the project directory per detected stack
|
|
70
|
-
components/{feature}/, components/{feature}/_specs
|
|
82
|
+
components/{feature}/, components/{feature}/_specs/{mo,pc}/,
|
|
83
|
+
styles/{feature}/{mo,pc}/ (per-BP drafts) → styles/{feature}/ (Phase 3C merged),
|
|
84
|
+
public/images/{feature}/, public/ (favicons/OG from assets/seo/)
|
|
71
85
|
```
|
|
72
86
|
|
|
73
87
|
---
|
|
@@ -124,10 +138,11 @@ node {{VIBE_PATH}}/hooks/scripts/clone-extract.js capture <URL> \
|
|
|
124
138
|
├── computed.json — per-element computed CSS + bounding box
|
|
125
139
|
├── screenshot.png — full-page screenshot
|
|
126
140
|
├── states.json — non-default state rules (hover/focus/active/checked/tab/aria/data-state)
|
|
127
|
-
├── behaviors.json — ACTIVE sweep: scroll
|
|
141
|
+
├── behaviors.json — ACTIVE sweep: scroll / tab / hover / in-view / time-driven + scrollLib
|
|
128
142
|
├── assets/
|
|
129
143
|
│ ├── images/ — all <img>, background-image, <picture> sources
|
|
130
|
-
│
|
|
144
|
+
│ ├── fonts/ — @font-face srcs
|
|
145
|
+
│ └── seo/ — favicons, apple-touch-icons, OG images, webmanifest
|
|
131
146
|
└── asset-map.json — remote URL → local path mapping
|
|
132
147
|
```
|
|
133
148
|
|
|
@@ -149,7 +164,15 @@ node {{VIBE_PATH}}/hooks/scripts/clone-extract.js capture <URL> \
|
|
|
149
164
|
- Scroll-state diff: tag sticky/fixed/top-bar headers+nav, snapshot computed CSS at
|
|
150
165
|
scroll 0, scroll past threshold, re-snapshot, diff → {prop: {from, to}, triggerScrollY}
|
|
151
166
|
- Tab groups: click tab-like sibling sets, detect whether content swaps on click
|
|
167
|
+
- Hover diff: hover interactive elements (1 sample per tag+class signature, max 30),
|
|
168
|
+
diff computed styles → JS-set hover states that :hover harvesting misses
|
|
169
|
+
- In-view entrance: fresh reload, tag below-fold "waiting to animate" nodes
|
|
170
|
+
(opacity 0 / transform offset), scroll each into view, diff → fade-up/slide-in
|
|
171
|
+
- Time-driven: 3s no-input MutationObserver watch → carousel/auto-cycle candidates
|
|
172
|
+
- Scroll-lib detection: Lenis / Locomotive Scroll (native scrolling feels different —
|
|
173
|
+
the user spots it immediately; wire the lib page-level, not per-section)
|
|
152
174
|
Disable with --no-interact (restores the old fully-deterministic, screenshot-stable capture).
|
|
175
|
+
10. SEO asset harvest: favicon / apple-touch-icon / webmanifest / og:image → assets/seo/
|
|
153
176
|
```
|
|
154
177
|
|
|
155
178
|
---
|
|
@@ -240,6 +263,26 @@ Refinement applied when converting rendered.html + computed.json → sections.js
|
|
|
240
263
|
|
|
241
264
|
---
|
|
242
265
|
|
|
266
|
+
## Phase 2.5: Foundation ← sequential, BEFORE any section build
|
|
267
|
+
|
|
268
|
+
Nothing renders right until the foundation exists. Do this yourself (not delegated) — it
|
|
269
|
+
touches shared files:
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
1. Fonts: verify _base.scss @font-face srcs point at downloaded assets/fonts/ files.
|
|
273
|
+
Next.js stack → wire via next/font/local in the layout instead of raw @font-face.
|
|
274
|
+
2. Favicon / OG / manifest: copy assets/seo/* → public/ (project convention path),
|
|
275
|
+
wire metadata (layout.tsx metadata / <head>) to the local files.
|
|
276
|
+
3. SVG icons: collect inline <svg> from rendered.html, dedupe by path data,
|
|
277
|
+
emit one stack-appropriate icon module (e.g. components/{feature}/icons.tsx).
|
|
278
|
+
Name by visual function (SearchIcon, ArrowRightIcon, LogoIcon).
|
|
279
|
+
4. Global behaviors from behaviors.json: scrollLib detected → install/wire page-level
|
|
280
|
+
(Lenis etc.); global keyframes/scroll-snap → styles/{feature}/_shared.scss.
|
|
281
|
+
5. Verify: compile passes before moving on.
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
243
286
|
## Phase 3: Scaffold ← stack-specific code generation
|
|
244
287
|
|
|
245
288
|
**⛔ Implement MO fully first → pass verification → then PC. No responsive conversion in this phase.**
|
|
@@ -251,78 +294,105 @@ Refinement applied when converting rendered.html + computed.json → sections.js
|
|
|
251
294
|
# Step 0: Generate per-section build-contract specs (run once per BP)
|
|
252
295
|
node {{VIBE_PATH}}/hooks/scripts/clone-spec.js \
|
|
253
296
|
/tmp/{feature}/{bp}/sections.json \
|
|
254
|
-
--out=/path/to/project/components/{feature}/_specs/ \
|
|
255
|
-
--feature={feature}
|
|
297
|
+
--out=/path/to/project/components/{feature}/_specs/{bp}/ \
|
|
298
|
+
--feature={feature} [--real-content]
|
|
256
299
|
|
|
257
|
-
# Step A: Auto-generate SCSS
|
|
300
|
+
# Step A: Auto-generate SCSS draft (run once per BP — note the per-BP out dir)
|
|
258
301
|
node {{VIBE_PATH}}/hooks/scripts/clone-to-scss.js \
|
|
259
302
|
/tmp/{feature}/{bp}/sections.json \
|
|
260
|
-
--out=/path/to/project/styles/{feature}/ \
|
|
303
|
+
--out=/path/to/project/styles/{feature}/{bp}/ \
|
|
261
304
|
--token-file=/tmp/{feature}/project-tokens.json
|
|
262
305
|
|
|
263
306
|
# Step B: Per-section validation (after writing each section's component code)
|
|
264
307
|
node {{VIBE_PATH}}/hooks/scripts/clone-validate.js \
|
|
265
|
-
/path/to/project/styles/{feature}/ \
|
|
308
|
+
/path/to/project/styles/{feature}/{bp}/ \
|
|
266
309
|
/tmp/{feature}/{bp}/sections.json \
|
|
267
310
|
--section={SectionName}
|
|
268
311
|
```
|
|
269
312
|
|
|
270
313
|
⛔ **No section is built without a completed spec.** Step 0 emits `_specs/{Section}.spec.md`
|
|
271
|
-
(interaction model + **active-capture Dynamic behaviors**
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
section's
|
|
275
|
-
model, list states to implement, choose tags,
|
|
276
|
-
|
|
277
|
-
|
|
314
|
+
(interaction model + **active-capture Dynamic behaviors** (scroll/tab/hover/in-view/
|
|
315
|
+
time-driven/scroll-lib) + states + computed CSS + assets + text + checklist).
|
|
316
|
+
clone-spec.js auto-loads `behaviors.json` from the sections.json dir and attaches matching
|
|
317
|
+
behaviors per section. Before dispatching a section's builder, Claude reviews its spec and
|
|
318
|
+
resolves every `TODO` (confirm interaction model, list states to implement, choose tags,
|
|
319
|
+
replace copyrighted text — skipped with --real-content). The spec is the contract AND the
|
|
320
|
+
audit trail — it forces extraction rigor before any code is written.
|
|
321
|
+
⛔ **clone-to-scss.js must run first (Step A) — its output is the DRAFT every section starts
|
|
322
|
+
from.** After that, SCSS edits are allowed per Immutable Rule 1 (evidence-cited only);
|
|
323
|
+
clone-validate.js PASS is the judge.
|
|
278
324
|
⛔ **Do NOT write custom SCSS / spec generation scripts.**
|
|
279
|
-
⛔ **Do NOT proceed
|
|
280
|
-
✅ Use clone-spec.js / clone-to-scss.js output as-is. If unsatisfactory, modify the script.
|
|
325
|
+
⛔ **Do NOT proceed past a section without a clone-validate.js PASS for it.**
|
|
281
326
|
|
|
282
327
|
```
|
|
283
|
-
Phase 3A: MO Scaffold
|
|
328
|
+
Phase 3A: MO Scaffold — parallel builder dispatch
|
|
284
329
|
Input: /tmp/{feature}/mo/sections.json
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
├─
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
├─
|
|
293
|
-
└─
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
330
|
+
Prep (sequential, once):
|
|
331
|
+
a. Step 0: clone-spec.js → emit _specs/mo/{Section}.spec.md for every section
|
|
332
|
+
b. Step A: clone-to-scss.js → SCSS draft in styles/{feature}/mo/ (computed values)
|
|
333
|
+
c. Orchestrator resolves every spec TODO BEFORE dispatch:
|
|
334
|
+
├─ Confirm the interaction model (spec.interaction is a heuristic guess;
|
|
335
|
+
│ the spec's active-capture "Dynamic behaviors" block overrides it on conflict)
|
|
336
|
+
├─ List the states to implement (spec.states + Dynamic behaviors)
|
|
337
|
+
├─ Mark copyrighted text for placeholder replacement (skip with --real-content)
|
|
338
|
+
└─ Map component candidates against component-index.json (reuse vs create)
|
|
339
|
+
d. 150-line split rule (mechanical — wc -l, don't override with "but it's related"):
|
|
340
|
+
a completed spec over 150 lines means the section is too big for one builder →
|
|
341
|
+
split into sub-component specs (one per card variant / repeated pattern) + one
|
|
342
|
+
wrapper spec that imports them.
|
|
343
|
+
Dispatch (parallel):
|
|
344
|
+
⛔ Every builder prompt embeds the FULL spec text INLINE — never "go read the file".
|
|
345
|
+
The spec file stays on disk as the audit trail; the prompt must be self-sufficient.
|
|
346
|
+
⛔ Builders that write files in parallel run in worktree isolation; sub-component
|
|
347
|
+
builders complete before their wrapper builder starts.
|
|
348
|
+
Builder contract (each agent):
|
|
349
|
+
1. Build HTML structure + semantic tags + framework-specific component file
|
|
350
|
+
⛔ No CSS in <style> blocks — only @import/@use of styles/{feature}/mo/
|
|
351
|
+
⛔ Build for the CONFIRMED interaction model in the spec; wire every state
|
|
352
|
+
Framework mapping:
|
|
353
|
+
- React/Next → .tsx with CSS Modules or styled-components per stack
|
|
354
|
+
- Vue/Nuxt → .vue with scoped <style lang="scss"> @import only
|
|
355
|
+
- Svelte → .svelte with <style> @import only
|
|
356
|
+
- Vanilla → .html + linked .scss
|
|
357
|
+
2. Asset references → public/images/{feature}/ (already populated in Phase 1)
|
|
358
|
+
3. SCSS edits per Immutable Rule 1 (evidence-cited only)
|
|
359
|
+
4. Verify compile (tsc --noEmit or stack equivalent) before finishing
|
|
360
|
+
Merge (orchestrator, as builders complete):
|
|
361
|
+
5. Merge worktrees; resolve conflicts (you have full context on every spec)
|
|
362
|
+
6. clone-validate.js per section — Step B
|
|
363
|
+
├─ PASS → section done
|
|
307
364
|
└─ FAIL → fix discrepancies → re-run step 6 (loop until P1=0, no round cap)
|
|
308
365
|
→ Phase 4 (MO compile) → Phase 5 (MO pixel verification)
|
|
309
366
|
|
|
310
367
|
Phase 3B: PC Scaffold
|
|
311
|
-
Same process as MO, input /tmp/{feature}/pc/sections.json
|
|
368
|
+
Same process as MO, input /tmp/{feature}/pc/sections.json → styles/{feature}/pc/
|
|
312
369
|
→ Phase 4 (PC compile) → Phase 5 (PC pixel verification)
|
|
313
370
|
|
|
314
|
-
Phase 3C: Responsive Integration (after both MO+PC pass
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
371
|
+
Phase 3C: Responsive Integration (after both MO+PC pass Phase 5)
|
|
372
|
+
1. node {{VIBE_PATH}}/hooks/scripts/clone-merge-responsive.js \
|
|
373
|
+
--mo=/path/to/project/styles/{feature}/mo/ \
|
|
374
|
+
--pc=/path/to/project/styles/{feature}/pc/ \
|
|
375
|
+
--out=/path/to/project/styles/{feature}/ \
|
|
376
|
+
[--breakpoint=1024]
|
|
377
|
+
→ mobile-first merge: MO declarations = base, PC diffs → @media (min-width) block
|
|
378
|
+
2. Switch component style imports from styles/{feature}/{bp}/index.scss to the merged
|
|
379
|
+
styles/{feature}/index.scss
|
|
380
|
+
3. Review pc-only/mo-only selectors in the merge report — hide/show them with the
|
|
381
|
+
media query if the original does (evidence: the two sections.json trees)
|
|
382
|
+
4. → Phase 4 (compile) → Phase 5 at BOTH viewports against each BP's screenshot.
|
|
383
|
+
⛔ The clone is NOT complete until the MERGED build passes Phase 5 at both.
|
|
384
|
+
|
|
385
|
+
Claude's role:
|
|
318
386
|
✅ Component candidates: decide which patterns become reusable components
|
|
319
387
|
✅ HTML semantics: section/h1/p/button/nav tag selection
|
|
320
388
|
✅ Text replacement: substitute copyrighted copy with placeholders or user-supplied text
|
|
321
389
|
✅ Interaction model: confirm the spec's heuristic guess, then build for the real model
|
|
322
390
|
✅ Interactions: implement every state in the spec (hover/focus/active/open), click handlers
|
|
323
|
-
|
|
391
|
+
✅ SCSS value edits WITH cited evidence (computed.json/states.json/behaviors.json) —
|
|
392
|
+
clone-validate.js PASS is the judge
|
|
393
|
+
❌ Do NOT invent CSS values without extraction evidence
|
|
324
394
|
❌ Do NOT write CSS directly in <style> blocks
|
|
325
|
-
❌ Do NOT
|
|
395
|
+
❌ Do NOT hand-write vw/clamp/@media in Phase 3A/3B (responsive comes from Phase 3C merge)
|
|
326
396
|
❌ Do NOT hotlink remote URLs — all assets must use local public/images/ paths
|
|
327
397
|
```
|
|
328
398
|
|
|
@@ -382,6 +452,9 @@ Termination:
|
|
|
382
452
|
ultrawork mode: on stuck, record TODO without prompting and complete
|
|
383
453
|
|
|
384
454
|
Responsive: after MO verification → change viewport → repeat against PC screenshot
|
|
455
|
+
Post-merge (Phase 3C): re-run at BOTH viewports (375×812 vs mo/screenshot.png,
|
|
456
|
+
1440×900 vs pc/screenshot.png) — either failing means the merge regressed; fix the
|
|
457
|
+
merged SCSS (evidence: the per-BP sections.json), never by re-guessing values
|
|
385
458
|
Cleanup: shut down browser + dev server
|
|
386
459
|
|
|
387
460
|
⛔ "Completion summary" output only allowed after Phase 5 completes.
|
|
@@ -404,6 +477,8 @@ NOT intended for:
|
|
|
404
477
|
|
|
405
478
|
Claude must:
|
|
406
479
|
- Replace copyrighted text content with placeholders (e.g. "[Lorem ipsum]") by default
|
|
480
|
+
- --real-content: ask ONE explicit confirmation (site ownership / permission) before
|
|
481
|
+
Phase 3; on confirmation keep text verbatim (clone-spec.js --real-content)
|
|
407
482
|
- Skip and warn when robots.txt disallows fetching the target path
|
|
408
483
|
- Refuse if the user's stated intent is brand impersonation or deception
|
|
409
484
|
```
|
|
@@ -423,3 +498,5 @@ Claude must:
|
|
|
423
498
|
| Interaction model guess wrong (Phase 5) | section.interaction is a static-DOM heuristic. Re-observe the live site, correct the model in the spec, rebuild the section for the confirmed model. |
|
|
424
499
|
| states.json empty but site has hover/tabs | States may be set via inline JS, not CSS rules. Check behaviors.json (active sweep captures scroll/tab JS state). If still missing, note in the spec and capture manually during Phase 5. |
|
|
425
500
|
| behaviors.json missing or empty | Active sweep was disabled (--no-interact), hit no sticky/tab elements, or errored (logged, non-fatal). Falls back to static states.json. Re-run without --no-interact to retry. |
|
|
501
|
+
| clone-merge-responsive.js reports many mo-only/pc-only selectors | Section detection diverged between BPs (layout differs structurally). Expected for hidden-on-mobile elements; verify each against the two sections.json trees and gate with the media query manually if needed. |
|
|
502
|
+
| Merged build fails Phase 5 at one viewport only | The merge dropped or mis-bucketed a declaration. Diff the failing viewport's computed CSS against its sections.json; fix in the merged SCSS with that evidence. |
|
|
@@ -3,8 +3,8 @@ name: commerce-patterns
|
|
|
3
3
|
invocation: [auto]
|
|
4
4
|
tier: core
|
|
5
5
|
description: "E-commerce domain patterns — cart management, payment processing (Toss/Stripe/PG), inventory tracking, and order state machines with transaction safety. Use when implementing any shopping cart, checkout flow, payment integration, stock management, or order lifecycle. Covers idempotency keys, double-charge prevention, stock reservation, and refund flows. Must use this skill when the codebase involves e-commerce — even for seemingly simple 'add to cart' features."
|
|
6
|
-
triggers: [commerce, ecommerce, cart, payment, checkout, inventory,
|
|
7
|
-
priority:
|
|
6
|
+
triggers: [commerce, ecommerce, cart, payment, checkout, inventory, toss, stripe, order flow]
|
|
7
|
+
priority: 60
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Commerce Patterns
|
|
@@ -3,7 +3,7 @@ name: context7-usage
|
|
|
3
3
|
invocation: [auto]
|
|
4
4
|
tier: optional
|
|
5
5
|
description: "Context7 plugin for latest library documentation. Auto-activates when docs, documentation, latest version, official docs, API reference, or library help is needed."
|
|
6
|
-
triggers: [
|
|
6
|
+
triggers: [latest version, official docs, API reference, library help, context7]
|
|
7
7
|
priority: 60
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-refine
|
|
3
|
+
user-invocable: true
|
|
4
|
+
invocation: [command, auto]
|
|
5
|
+
tier: standard
|
|
6
|
+
description: "Design refinement — distill (remove visual complexity), normalize (hardcoded values → design tokens), polish (pre-ship micro-details). Modifying passes. Use when design-refine, design-polish, design-normalize, token-align, simplify-ui, ship-ready."
|
|
7
|
+
triggers: [design-refine, design-polish, design-normalize, token-align, design-distill, simplify-ui, ship-ready]
|
|
8
|
+
priority: 50
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Design Refine — Distill / Normalize / Polish
|
|
12
|
+
|
|
13
|
+
Modifying design-improvement passes. Mode selected by the first argument; default runs the full pipeline in order: **distill → normalize → polish**.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/design-refine <target> # Full pipeline (distill → normalize → polish)
|
|
19
|
+
/design-refine distill <target> # Remove visual complexity only
|
|
20
|
+
/design-refine normalize <target> # Token alignment only
|
|
21
|
+
/design-refine polish <target> # Pre-ship final pass only
|
|
22
|
+
/design-refine . # Refine all changed UI files
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Mode: distill — Remove Visual Complexity
|
|
28
|
+
|
|
29
|
+
Every remaining element must justify its existence: **if it doesn't help the user complete their task, remove it.**
|
|
30
|
+
|
|
31
|
+
### Targets
|
|
32
|
+
|
|
33
|
+
1. **Decorative clutter** — purposeless gradients/patterns/textures, dividers between already-spaced sections, ornamental icons, stacked borders/shadows on nested containers
|
|
34
|
+
2. **Redundant information** — headings repeating page title/parent context, labels duplicating placeholders, "Welcome to {App}" banners, descriptions restating the obvious
|
|
35
|
+
3. **Over-wrapped containers** — cards wrapping a single element, nested cards, cosmetic-only wrapper divs, single-child sections
|
|
36
|
+
4. **Excessive animation** — entry animations on every element, hover effects on non-interactive elements, transitions > 300ms for feedback, parallax on content pages
|
|
37
|
+
5. **Progressive disclosure opportunities** — 10+ visible form fields → steps; flat settings → grouped collapsibles; 8+ nav items → categories; all-metrics dashboards → top 3 + expand
|
|
38
|
+
|
|
39
|
+
### Principles
|
|
40
|
+
|
|
41
|
+
| Principle | Question |
|
|
42
|
+
|-----------|----------|
|
|
43
|
+
| Purpose | Does this help the user complete a task? |
|
|
44
|
+
| Duplication | Is this information already on screen? |
|
|
45
|
+
| Cognitive load | Would removal reduce decision fatigue? |
|
|
46
|
+
| Visual weight | Does this compete with more important content? |
|
|
47
|
+
| Progressive disclosure | Can this be hidden until needed? |
|
|
48
|
+
|
|
49
|
+
Before removing: verify functionality survives, check semantic meaning, confirm signal-to-noise improves. Preserve brand-expressive elements (per `brand.personality`); calibrate aggressiveness by `aesthetic.style` (minimal → aggressive, bold → lenient).
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Mode: normalize — Design Token Alignment
|
|
54
|
+
|
|
55
|
+
Replace hardcoded design values with tokens. Naming conventions: `rubrics/token-naming.md`.
|
|
56
|
+
|
|
57
|
+
### Process
|
|
58
|
+
|
|
59
|
+
1. **Load token source** (priority): `.vibe/design-system/{project}/MASTER.md` → `.vibe/design-context.json` → default detection (with prompt: "Run `/design-teach` or create MASTER.md first")
|
|
60
|
+
2. **Scan for hardcoded values**:
|
|
61
|
+
|
|
62
|
+
| Category | Pattern | Example |
|
|
63
|
+
|----------|---------|---------|
|
|
64
|
+
| Colors | hex, `rgb()`, `hsl()` | `#3B82F6` → `var(--color-primary)` |
|
|
65
|
+
| Typography | `font-size`, `font-weight` | `14px` → `var(--text-sm)` |
|
|
66
|
+
| Spacing | `margin`/`padding`/`gap` px | `16px` → `var(--space-4)` |
|
|
67
|
+
| Shadows | inline `box-shadow` | → `var(--shadow-sm)` |
|
|
68
|
+
| Border radius | `border-radius: 8px` | → `var(--radius-md)` |
|
|
69
|
+
|
|
70
|
+
3. **Map to tokens**: exact match → replace; close match (within 2px / similar hue) → replace + note; no match → flag for manual review (may need new token)
|
|
71
|
+
4. **Apply**, preserving: `/* intentional */` one-offs, animation keyframes, SVG path data, third-party overrides
|
|
72
|
+
|
|
73
|
+
Use `detectedStack.styling` to pick token format (CSS vars, Tailwind, etc.). New-token suggestions go to MASTER.md, then re-run.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Mode: polish — Pre-Ship Final Pass
|
|
78
|
+
|
|
79
|
+
Last-mile pixel-level check with **direct fixes**. Detailed pass/fail criteria: `rubrics/polish-checklist.md`.
|
|
80
|
+
|
|
81
|
+
### Checklist
|
|
82
|
+
|
|
83
|
+
1. **Alignment & spacing** — 4/8px grid, section rhythm, baselines across columns, icons vertically centered with text, symmetric container padding
|
|
84
|
+
2. **Interaction states (complete set)** — Default / Hover / Focus (visible ring) / Active / Disabled (`aria-disabled` + reduced opacity) / Loading / Error / Success
|
|
85
|
+
3. **Typography & copy** — no orphaned words, consistent capitalization, no placeholder text, ellipsis truncation, line length ≤ 75ch
|
|
86
|
+
4. **Visual consistency** — border radius per level, shadow matches elevation, icon sizes (16/20/24), semantic color usage
|
|
87
|
+
5. **Cleanup** — no `console.log`, no commented-out JSX/HTML, no `z-index` > 100 undocumented, no inline styles that should be tokens, no dead CSS
|
|
88
|
+
|
|
89
|
+
### Auto-Fix Rules
|
|
90
|
+
|
|
91
|
+
| Issue | Fix |
|
|
92
|
+
|-------|-----|
|
|
93
|
+
| Missing hover / focus / disabled state | Add using existing tokens (`focus-visible` outline, reduced-opacity disabled) |
|
|
94
|
+
| Inconsistent border radius | Normalize to nearest token |
|
|
95
|
+
| Inline color values | Replace with CSS variable |
|
|
96
|
+
| `console.log` / commented-out code | Remove |
|
|
97
|
+
|
|
98
|
+
Only auto-fix items with clear, safe remediation — ambiguous items are flagged for manual review. Re-verify fixed files pass the checklist.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Preparation (all modes)
|
|
103
|
+
|
|
104
|
+
1. **Read** `.vibe/design-context.json`
|
|
105
|
+
- Missing → display "Run `/design-teach` first for better results" → proceed with defaults
|
|
106
|
+
- Parse error → warn → proceed with defaults → recommend `/design-teach`
|
|
107
|
+
2. **Read** `.vibe/design-system/*/MASTER.md` (if exists) as authoritative token source
|
|
108
|
+
|
|
109
|
+
## Output Format
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## Design Refine: {target} (mode: {distill|normalize|polish|full})
|
|
113
|
+
|
|
114
|
+
### Changed
|
|
115
|
+
- ✂️ {file}:{line} — removed decorative gradient (distill)
|
|
116
|
+
- 🔄 {file}:{line} — #3B82F6 → var(--color-primary), confidence: exact (normalize)
|
|
117
|
+
- ✅ {file}:{line} — added hover state to submit button (polish)
|
|
118
|
+
|
|
119
|
+
### Manual Review Needed
|
|
120
|
+
- ⚠️ {file}:{line} — no matching token / layout choice / missing loading state
|
|
121
|
+
|
|
122
|
+
### Summary
|
|
123
|
+
- Reviewed: {N} · Changed: {N} · New tokens suggested: {N} · Manual review: {N}
|
|
124
|
+
- Ship-ready: {yes/no}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Report templates: `templates/polish-report.md` · `templates/token-audit.md` · `templates/design-system.md`.
|
|
128
|
+
|
|
129
|
+
## Next Steps
|
|
130
|
+
|
|
131
|
+
| If Result Shows | Recommended Next |
|
|
132
|
+
|----------------|-----------------|
|
|
133
|
+
| New tokens suggested | Add to MASTER.md → re-run `/design-refine normalize` |
|
|
134
|
+
| Broad quality concerns | `/design-review` — audit + UX critique |
|
|
135
|
+
| All items pass | Ship ready |
|
|
136
|
+
|
|
137
|
+
## Important
|
|
138
|
+
|
|
139
|
+
- **Modifying**: applies changes directly (conservative — safe items only; removals listed for easy revert).
|
|
140
|
+
- **Pairs with**: `/design-review` first for findings, then `/design-refine` to fix.
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
|
|
61
61
|
| Condition | Recommended Skill |
|
|
62
62
|
|-----------|-------------------|
|
|
63
|
-
| Design system gaps found | `/design-normalize` then re-run `/design-polish` |
|
|
63
|
+
| Design system gaps found | `/design-refine normalize` then re-run `/design-refine polish` |
|
|
64
64
|
| All items pass | Ship ready |
|
|
@@ -84,6 +84,6 @@ These values appear 3+ times with no matching token. Candidates for addition to
|
|
|
84
84
|
|
|
85
85
|
## Next Steps
|
|
86
86
|
|
|
87
|
-
1. {{#HAS_SUGGESTED_TOKENS}}Add suggested tokens to MASTER.md, then re-run `/design-normalize`{{/HAS_SUGGESTED_TOKENS}}
|
|
88
|
-
2. {{#HAS_HARDCODED}}Run `/design-normalize` to apply replacements{{/HAS_HARDCODED}}
|
|
89
|
-
3. {{#ALL_TOKENIZED}}Token coverage complete — proceed to `/design-polish`{{/ALL_TOKENIZED}}
|
|
87
|
+
1. {{#HAS_SUGGESTED_TOKENS}}Add suggested tokens to MASTER.md, then re-run `/design-refine normalize`{{/HAS_SUGGESTED_TOKENS}}
|
|
88
|
+
2. {{#HAS_HARDCODED}}Run `/design-refine normalize` to apply replacements{{/HAS_HARDCODED}}
|
|
89
|
+
3. {{#ALL_TOKENIZED}}Token coverage complete — proceed to `/design-refine polish`{{/ALL_TOKENIZED}}
|