@su-record/vibe 2.7.16 → 2.7.18

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.
Files changed (249) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +153 -134
  3. package/LICENSE +21 -21
  4. package/README.md +449 -449
  5. package/agents/architect-low.md +41 -41
  6. package/agents/architect-medium.md +59 -59
  7. package/agents/architect.md +80 -80
  8. package/agents/build-error-resolver.md +115 -115
  9. package/agents/compounder.md +261 -261
  10. package/agents/diagrammer.md +178 -178
  11. package/agents/docs/api-documenter.md +99 -99
  12. package/agents/docs/changelog-writer.md +93 -93
  13. package/agents/e2e-tester.md +294 -294
  14. package/agents/explorer-low.md +42 -42
  15. package/agents/explorer-medium.md +59 -59
  16. package/agents/explorer.md +48 -48
  17. package/agents/implementer-low.md +43 -43
  18. package/agents/implementer-medium.md +52 -52
  19. package/agents/implementer.md +54 -54
  20. package/agents/junior-mentor.md +141 -141
  21. package/agents/planning/requirements-analyst.md +84 -84
  22. package/agents/planning/ux-advisor.md +83 -83
  23. package/agents/qa/acceptance-tester.md +86 -86
  24. package/agents/qa/edge-case-finder.md +93 -93
  25. package/agents/refactor-cleaner.md +143 -143
  26. package/agents/research/best-practices-agent.md +199 -199
  27. package/agents/research/codebase-patterns-agent.md +157 -157
  28. package/agents/research/framework-docs-agent.md +188 -188
  29. package/agents/research/security-advisory-agent.md +213 -213
  30. package/agents/review/architecture-reviewer.md +107 -107
  31. package/agents/review/complexity-reviewer.md +116 -116
  32. package/agents/review/data-integrity-reviewer.md +88 -88
  33. package/agents/review/git-history-reviewer.md +103 -103
  34. package/agents/review/performance-reviewer.md +86 -86
  35. package/agents/review/python-reviewer.md +150 -150
  36. package/agents/review/rails-reviewer.md +139 -139
  37. package/agents/review/react-reviewer.md +144 -144
  38. package/agents/review/security-reviewer.md +80 -80
  39. package/agents/review/simplicity-reviewer.md +140 -140
  40. package/agents/review/test-coverage-reviewer.md +116 -116
  41. package/agents/review/typescript-reviewer.md +127 -127
  42. package/agents/searcher.md +54 -54
  43. package/agents/simplifier.md +120 -120
  44. package/agents/tester.md +49 -49
  45. package/agents/ui/ui-a11y-auditor.md +93 -93
  46. package/agents/ui/ui-antipattern-detector.md +94 -94
  47. package/agents/ui/ui-dataviz-advisor.md +69 -69
  48. package/agents/ui/ui-design-system-gen.md +57 -57
  49. package/agents/ui/ui-industry-analyzer.md +49 -49
  50. package/agents/ui/ui-layout-architect.md +65 -65
  51. package/agents/ui/ui-stack-implementer.md +68 -68
  52. package/agents/ui/ux-compliance-reviewer.md +81 -81
  53. package/agents/ui-previewer.md +258 -258
  54. package/commands/vibe.analyze.md +379 -379
  55. package/commands/vibe.review.md +607 -607
  56. package/commands/vibe.run.md +2124 -2124
  57. package/commands/vibe.spec.md +1195 -1195
  58. package/commands/vibe.spec.review.md +569 -569
  59. package/commands/vibe.utils.md +413 -413
  60. package/commands/vibe.verify.md +484 -484
  61. package/dist/cli/collaborator.js +52 -52
  62. package/dist/cli/commands/evolution.js +12 -12
  63. package/dist/cli/commands/info.js +51 -51
  64. package/dist/cli/commands/init.js +5 -5
  65. package/dist/cli/commands/remove.js +14 -14
  66. package/dist/cli/commands/sentinel.js +27 -27
  67. package/dist/cli/commands/skills.js +5 -5
  68. package/dist/cli/commands/slack.js +10 -10
  69. package/dist/cli/commands/telegram.js +12 -12
  70. package/dist/cli/commands/upgrade.d.ts +3 -3
  71. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  72. package/dist/cli/commands/upgrade.js +24 -3
  73. package/dist/cli/commands/upgrade.js.map +1 -1
  74. package/dist/cli/detect.js +32 -32
  75. package/dist/cli/index.js +51 -51
  76. package/dist/cli/llm/claude-commands.js +16 -16
  77. package/dist/cli/llm/config.js +18 -18
  78. package/dist/cli/llm/gemini-commands.js +16 -16
  79. package/dist/cli/llm/gpt-commands.js +19 -19
  80. package/dist/cli/llm/help.js +21 -21
  81. package/dist/cli/postinstall/cursor-agents.js +32 -32
  82. package/dist/cli/postinstall/cursor-rules.js +83 -83
  83. package/dist/cli/postinstall/cursor-skills.js +743 -743
  84. package/dist/cli/setup/Provisioner.js +42 -42
  85. package/dist/infra/lib/DeepInit.js +24 -24
  86. package/dist/infra/lib/IterationTracker.js +11 -11
  87. package/dist/infra/lib/PythonParser.js +108 -108
  88. package/dist/infra/lib/ReviewRace.js +96 -96
  89. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  90. package/dist/infra/lib/SkillQualityGate.js +9 -9
  91. package/dist/infra/lib/SkillRepository.js +159 -159
  92. package/dist/infra/lib/UltraQA.js +99 -99
  93. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  94. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  95. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  96. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  97. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  98. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  99. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  100. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  101. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  102. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  103. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  104. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  105. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  106. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  107. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  108. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  109. package/dist/infra/lib/gemini/orchestration.js +5 -5
  110. package/dist/infra/lib/gpt/orchestration.js +4 -4
  111. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  112. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  113. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  114. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  115. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  116. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  117. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  118. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  119. package/dist/infra/lib/telemetry/SkillTelemetry.d.ts +52 -0
  120. package/dist/infra/lib/telemetry/SkillTelemetry.d.ts.map +1 -0
  121. package/dist/infra/lib/telemetry/SkillTelemetry.js +117 -0
  122. package/dist/infra/lib/telemetry/SkillTelemetry.js.map +1 -0
  123. package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts +2 -0
  124. package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts.map +1 -0
  125. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +91 -0
  126. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -0
  127. package/dist/infra/orchestrator/AgentManager.js +12 -12
  128. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  129. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  130. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  131. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  132. package/dist/test-helpers/index.d.ts +36 -0
  133. package/dist/test-helpers/index.d.ts.map +1 -0
  134. package/dist/test-helpers/index.js +85 -0
  135. package/dist/test-helpers/index.js.map +1 -0
  136. package/dist/test-helpers/index.test.d.ts +2 -0
  137. package/dist/test-helpers/index.test.d.ts.map +1 -0
  138. package/dist/test-helpers/index.test.js +92 -0
  139. package/dist/test-helpers/index.test.js.map +1 -0
  140. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  141. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  142. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  143. package/dist/tools/memory/getMemoryGraph.js +12 -12
  144. package/dist/tools/memory/getSessionContext.js +9 -9
  145. package/dist/tools/memory/linkMemories.js +14 -14
  146. package/dist/tools/memory/listMemories.js +4 -4
  147. package/dist/tools/memory/recallMemory.js +4 -4
  148. package/dist/tools/memory/saveMemory.js +4 -4
  149. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  150. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  151. package/dist/tools/semantic/astGrep.test.js +6 -6
  152. package/dist/tools/spec/prdParser.test.js +171 -171
  153. package/dist/tools/spec/specGenerator.js +169 -169
  154. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  155. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  156. package/hooks/gemini-hooks.json +73 -73
  157. package/hooks/hooks.json +137 -137
  158. package/hooks/scripts/code-check.js +77 -77
  159. package/hooks/scripts/context-save.js +212 -212
  160. package/hooks/scripts/hud-status.js +291 -291
  161. package/hooks/scripts/keyword-detector.js +214 -214
  162. package/hooks/scripts/llm-orchestrate.js +475 -475
  163. package/hooks/scripts/post-edit.js +32 -32
  164. package/hooks/scripts/pre-tool-guard.js +125 -125
  165. package/hooks/scripts/prompt-dispatcher.js +185 -185
  166. package/hooks/scripts/sentinel-guard.js +104 -104
  167. package/hooks/scripts/session-start.js +106 -106
  168. package/hooks/scripts/stop-notify.js +209 -209
  169. package/hooks/scripts/utils.js +100 -100
  170. package/languages/csharp-unity.md +515 -515
  171. package/languages/gdscript-godot.md +470 -470
  172. package/languages/ruby-rails.md +489 -489
  173. package/languages/typescript-angular.md +433 -433
  174. package/languages/typescript-astro.md +416 -416
  175. package/languages/typescript-electron.md +406 -406
  176. package/languages/typescript-nestjs.md +524 -524
  177. package/languages/typescript-svelte.md +407 -407
  178. package/languages/typescript-tauri.md +365 -365
  179. package/package.json +123 -121
  180. package/skills/agents-md/SKILL.md +120 -120
  181. package/skills/arch-guard/SKILL.md +180 -180
  182. package/skills/brand-assets/SKILL.md +146 -146
  183. package/skills/capability-loop/SKILL.md +167 -167
  184. package/skills/characterization-test/SKILL.md +206 -206
  185. package/skills/commerce-patterns/SKILL.md +63 -63
  186. package/skills/commit-push-pr/SKILL.md +75 -75
  187. package/skills/context7-usage/SKILL.md +105 -105
  188. package/skills/core-capabilities/SKILL.md +13 -13
  189. package/skills/e2e-commerce/SKILL.md +61 -61
  190. package/skills/exec-plan/SKILL.md +147 -147
  191. package/skills/frontend-design/SKILL.md +12 -12
  192. package/skills/git-worktree/SKILL.md +72 -72
  193. package/skills/handoff/SKILL.md +109 -109
  194. package/skills/parallel-research/SKILL.md +87 -87
  195. package/skills/priority-todos/SKILL.md +63 -63
  196. package/skills/seo-checklist/SKILL.md +57 -57
  197. package/skills/techdebt/SKILL.md +122 -122
  198. package/skills/tool-fallback/SKILL.md +103 -103
  199. package/skills/typescript-advanced-types/SKILL.md +66 -66
  200. package/skills/ui-ux-pro-max/SKILL.md +221 -221
  201. package/skills/vercel-react-best-practices/SKILL.md +59 -59
  202. package/skills/video-production/SKILL.md +51 -51
  203. package/vibe/config.json +29 -29
  204. package/vibe/constitution.md +227 -227
  205. package/vibe/rules/principles/communication-guide.md +98 -98
  206. package/vibe/rules/principles/development-philosophy.md +52 -52
  207. package/vibe/rules/principles/quick-start.md +102 -102
  208. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  209. package/vibe/rules/quality/checklist.md +276 -276
  210. package/vibe/rules/quality/performance.md +236 -236
  211. package/vibe/rules/quality/testing-strategy.md +440 -440
  212. package/vibe/rules/standards/anti-patterns.md +541 -541
  213. package/vibe/rules/standards/code-structure.md +291 -291
  214. package/vibe/rules/standards/complexity-metrics.md +313 -313
  215. package/vibe/rules/standards/git-workflow.md +237 -237
  216. package/vibe/rules/standards/naming-conventions.md +198 -198
  217. package/vibe/rules/standards/security.md +305 -305
  218. package/vibe/rules/writing/document-style.md +74 -74
  219. package/vibe/setup.sh +31 -31
  220. package/vibe/templates/constitution-template.md +252 -252
  221. package/vibe/templates/contract-backend-template.md +526 -526
  222. package/vibe/templates/contract-frontend-template.md +599 -599
  223. package/vibe/templates/feature-template.md +96 -96
  224. package/vibe/templates/spec-template.md +221 -221
  225. package/vibe/ui-ux-data/charts.csv +26 -26
  226. package/vibe/ui-ux-data/colors.csv +97 -97
  227. package/vibe/ui-ux-data/icons.csv +101 -101
  228. package/vibe/ui-ux-data/landing.csv +31 -31
  229. package/vibe/ui-ux-data/products.csv +96 -96
  230. package/vibe/ui-ux-data/react-performance.csv +45 -45
  231. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  232. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  233. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  234. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  235. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  236. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  237. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  238. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  239. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  240. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  241. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  242. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  243. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  244. package/vibe/ui-ux-data/styles.csv +68 -68
  245. package/vibe/ui-ux-data/typography.csv +57 -57
  246. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  247. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  248. package/vibe/ui-ux-data/version.json +31 -31
  249. package/vibe/ui-ux-data/web-interface.csv +31 -31
package/.env.example CHANGED
@@ -1,37 +1,37 @@
1
- # ─── VIBE Configuration ─────────────────────────────────────────────
2
- #
3
- # All credentials, channels, and model overrides are stored in:
4
- # ~/.vibe/config.json
5
- #
6
- # Use CLI commands to configure:
7
- # vibe setup Interactive setup wizard
8
- # vibe gpt auth GPT OAuth (Plus/Pro)
9
- # vibe gpt key <key> GPT API key
10
- # vibe gemini auth Gemini OAuth
11
- # vibe gemini key <key> Gemini API key
12
- # vibe claude key <key> Claude API key
13
- # vibe telegram setup <token> Telegram bot
14
- # vibe slack setup <bot> <app> Slack bot
15
- # vibe status Check all status
16
- #
17
- # Config structure (~/.vibe/config.json):
18
- # {
19
- # "version": "1",
20
- # "credentials": {
21
- # "gpt": { "apiKey": "sk-..." },
22
- # "gemini": { "apiKey": "AIza..." }
23
- # },
24
- # "channels": {
25
- # "telegram": { "botToken": "123:ABC", "allowedChatIds": ["-100..."] },
26
- # "slack": { "botToken": "xoxb-...", "appToken": "xapp-..." }
27
- # },
28
- # "models": {
29
- # "gpt": "gpt-5.4",
30
- # "gemini": "gemini-3.1-pro-preview",
31
- # "claudeBackground": "claude-sonnet-4-5"
32
- # }
33
- # }
34
- #
35
- # Environment variables are still supported as fallback:
36
- # OPENAI_API_KEY, GEMINI_API_KEY, GPT_MODEL, etc.
37
- # ────────────────────────────────────────────────────────────────────
1
+ # ─── VIBE Configuration ─────────────────────────────────────────────
2
+ #
3
+ # All credentials, channels, and model overrides are stored in:
4
+ # ~/.vibe/config.json
5
+ #
6
+ # Use CLI commands to configure:
7
+ # vibe setup Interactive setup wizard
8
+ # vibe gpt auth GPT OAuth (Plus/Pro)
9
+ # vibe gpt key <key> GPT API key
10
+ # vibe gemini auth Gemini OAuth
11
+ # vibe gemini key <key> Gemini API key
12
+ # vibe claude key <key> Claude API key
13
+ # vibe telegram setup <token> Telegram bot
14
+ # vibe slack setup <bot> <app> Slack bot
15
+ # vibe status Check all status
16
+ #
17
+ # Config structure (~/.vibe/config.json):
18
+ # {
19
+ # "version": "1",
20
+ # "credentials": {
21
+ # "gpt": { "apiKey": "sk-..." },
22
+ # "gemini": { "apiKey": "AIza..." }
23
+ # },
24
+ # "channels": {
25
+ # "telegram": { "botToken": "123:ABC", "allowedChatIds": ["-100..."] },
26
+ # "slack": { "botToken": "xoxb-...", "appToken": "xapp-..." }
27
+ # },
28
+ # "models": {
29
+ # "gpt": "gpt-5.4",
30
+ # "gemini": "gemini-3.1-pro-preview",
31
+ # "claudeBackground": "claude-sonnet-4-5"
32
+ # }
33
+ # }
34
+ #
35
+ # Environment variables are still supported as fallback:
36
+ # OPENAI_API_KEY, GEMINI_API_KEY, GPT_MODEL, etc.
37
+ # ────────────────────────────────────────────────────────────────────
package/CLAUDE.md CHANGED
@@ -1,134 +1,153 @@
1
- # VIBE
2
-
3
- ## Project Nature
4
-
5
- > **This is the source code for `@su-record/vibe` npm package.**
6
- > Modify files in THIS repository only — never the installed copy (`~/.claude/`, `~/.vibe/`).
7
-
8
- ## Philosophy
9
-
10
- > **vibe = Easy vibe coding + Minimum quality guaranteed**
11
-
12
- - **Easy Vibe Coding** — Fast flow, think collaboratively with AI
13
- - **Minimum Quality Guaranteed** — Type safety, code quality, security — automatic baseline
14
- - **Iterative Reasoning** — Break down problems, ask questions, reason together (don't delegate)
15
-
16
- ## Constraints (Hard Rules)
17
-
18
- ### Code Behavior
19
-
20
- - **Modify only requested scope** — Don't touch unrelated code
21
- - **Preserve existing style** — Follow project conventions
22
- - **Edit existing files, never create new ones** — Fix problems at source
23
- - **Respect user interrupts** — Ctrl+C/Escape = previous task CANCELLED
24
-
25
- ### Complexity Limits
26
-
27
- | Metric | Limit |
28
- |--------|-------|
29
- | Function length | ≤50 lines |
30
- | Nesting depth | ≤3 levels |
31
- | Parameters | ≤5 |
32
- | Cyclomatic complexity | ≤10 |
33
-
34
- ### TypeScript (Enforced by Quality Gate hooks)
35
-
36
- - No `any` — use `unknown` + type guards
37
- - No `as any` — define proper interfaces
38
- - No `@ts-ignore` — fix type issues at root
39
- - Explicit return types on all functions
40
-
41
- ### Convergence Principle (Over-Diagnosis Prevention)
42
-
43
- - **P1 only is mandatory, P2/P3 are best-effort** — P1=0 means done
44
- - **Repeated reviews narrow scope** — Round 2: P1+P2 only, Round 3+: P1 only
45
- - **Convergence detection** — Same results as previous round → stop immediately
46
- - **3 failures = escalation** — No more retries, move to TODO
47
- - **Changed files only** — Never scan the entire project
48
-
49
- ### Forbidden Patterns
50
-
51
- - No `console.log` in commits
52
- - No hardcoded strings/numbers (use constants)
53
- - No commented-out code
54
- - No incomplete code without TODO
55
-
56
- ## Architecture (What's NOT Obvious)
57
-
58
- ### Module System
59
-
60
- - ESM only (`"type": "module"`) — imports need `.js` extension
61
- - TypeScript strict mode → `dist/` via `tsc`
62
- - Build before test: `npm run build && npx vitest run`
63
-
64
- ### Config Locations (Don't Confuse)
65
-
66
- | Path | Purpose |
67
- |------|---------|
68
- | `~/.vibe/config.json` | Global credentials, channels, models (0o600) |
69
- | `.claude/vibe/config.json` | Project stacks, capabilities, details |
70
- | `.claude/settings.local.json` | Project hooks (auto-generated, don't commit) |
71
-
72
- ### Installation Flow
73
-
74
- - `postinstall` → global assets (`~/.claude/agents/`, `~/.claude/skills/`, `~/.claude/commands/`)
75
- - `vibe init` → project setup (detect stacks → config → constitution → rules → hooks → local skills + languages)
76
- - `vibe update` → re-detect stacks, refresh project config (preserves user capabilities)
77
-
78
- ### Key Directories (Where to Find Things)
79
-
80
- | What | Where |
81
- |------|-------|
82
- | CLI commands | `src/cli/commands/` |
83
- | Postinstall modules | `src/cli/postinstall/` |
84
- | Stack detection | `src/cli/detect.ts` |
85
- | Auth (all LLMs) | `src/cli/auth.ts` |
86
- | Setup helpers | `src/cli/setup.ts`, `src/cli/setup/` |
87
- | Hooks scripts | `hooks/scripts/` |
88
- | Agent definitions | `agents/` |
89
- | Skill definitions | `skills/` |
90
- | Language rules | `languages/` |
91
- | SPEC/rule templates | `vibe/rules/`, `vibe/templates/` |
92
- | Infra (daemon, memory, policy) | `src/infra/` |
93
-
94
- ### Gotchas
95
-
96
- - `better-sqlite3` WAL mode — DB module uses synchronous API
97
- - `crypto.timingSafeEqual` requires same-length buffers — check length first
98
- - `STACK_TO_LANGUAGE_FILE`, `STACK_TO_SKILLS`, `CAPABILITY_SKILLS` in `src/cli/postinstall/constants.ts` — single source of truth for stack→asset mapping
99
- - Hook dispatch chain: `prompt-dispatcher.js` `keyword-detector.js` `llm-orchestrate.js` (order matters)
100
- - Pre-existing test failures in `prdParser.test.ts` (7) and `traceabilityMatrix.test.ts` (1) unrelated to current work
101
-
102
- ## Workflow
103
-
104
- ```text
105
- /vibe.spec → /new → /vibe.spec.review → /vibe.run → /vibe.trace → (auto) code review → Done
106
- ```
107
-
108
- | Task Size | Approach |
109
- |-----------|----------|
110
- | 1-2 files | Plan Mode |
111
- | 3+ files | `/vibe.spec` |
112
-
113
- ## Magic Keywords
114
-
115
- | Keyword | Effect |
116
- |---------|--------|
117
- | `ultrawork` / `ulw` | Parallel agents + auto-continue + Ralph Loop |
118
- | `ralph` | Iterate until 100% complete (no scope reduction) |
119
- | `ralplan` | Iterative planning + persistence |
120
- | `verify` | Strict verification mode |
121
- | `quick` | Fast mode, minimal verification |
122
-
123
- ## Context Management
124
-
125
- - **Exploration/Search**: Haiku | **Implementation**: Sonnet | **Architecture**: Opus
126
- - At 70%+ context: `save_memory` → `/new` → `/vibe.utils --continue`
127
-
128
- ## Git Commit Rules
129
-
130
- **Must include:** `.claude/vibe/specs/`, `.claude/vibe/features/`, `.claude/vibe/todos/`, `.claude/vibe/config.json`, `CLAUDE.md`
131
-
132
- **Exclude:** `~/.claude/vibe/rules/`, `~/.claude/commands/`, `~/.claude/agents/`, `~/.claude/skills/`, `.claude/settings.local.json`
133
-
134
- <!-- VIBE:END -->
1
+ # VIBE
2
+
3
+ ## Project Nature
4
+
5
+ > **This is the source code for `@su-record/vibe` npm package.**
6
+ > Modify files in THIS repository only — never the installed copy (`~/.claude/`, `~/.vibe/`).
7
+
8
+ ## Philosophy
9
+
10
+ > **vibe = Easy vibe coding + Minimum quality guaranteed**
11
+
12
+ - **Easy Vibe Coding** — Fast flow, think collaboratively with AI
13
+ - **Minimum Quality Guaranteed** — Type safety, code quality, security — automatic baseline
14
+ - **Iterative Reasoning** — Break down problems, ask questions, reason together (don't delegate)
15
+
16
+ ## Constraints (Hard Rules)
17
+
18
+ ### Code Behavior
19
+
20
+ - **Modify only requested scope** — Don't touch unrelated code
21
+ - **Preserve existing style** — Follow project conventions
22
+ - **Edit existing files, never create new ones** — Fix problems at source
23
+ - **Respect user interrupts** — Ctrl+C/Escape = previous task CANCELLED
24
+
25
+ ### Complexity Limits
26
+
27
+ | Metric | Limit |
28
+ |--------|-------|
29
+ | Function length | ≤50 lines |
30
+ | Nesting depth | ≤3 levels |
31
+ | Parameters | ≤5 |
32
+ | Cyclomatic complexity | ≤10 |
33
+
34
+ ### TypeScript (Enforced by Quality Gate hooks)
35
+
36
+ - No `any` — use `unknown` + type guards
37
+ - No `as any` — define proper interfaces
38
+ - No `@ts-ignore` — fix type issues at root
39
+ - Explicit return types on all functions
40
+
41
+ ### Convergence Principle (Over-Diagnosis Prevention)
42
+
43
+ - **P1 only is mandatory, P2/P3 are best-effort** — P1=0 means done
44
+ - **Repeated reviews narrow scope** — Round 2: P1+P2 only, Round 3+: P1 only
45
+ - **Convergence detection** — Same results as previous round → stop immediately
46
+ - **3 failures = escalation** — No more retries, move to TODO
47
+ - **Changed files only** — Never scan the entire project
48
+
49
+ ### Forbidden Patterns
50
+
51
+ - No `console.log` in commits
52
+ - No hardcoded strings/numbers (use constants)
53
+ - No commented-out code
54
+ - No incomplete code without TODO
55
+
56
+ ## Architecture (What's NOT Obvious)
57
+
58
+ ### Module System
59
+
60
+ - ESM only (`"type": "module"`) — imports need `.js` extension
61
+ - TypeScript strict mode → `dist/` via `tsc`
62
+ - Build before test: `npm run build && npx vitest run`
63
+
64
+ ### Config Locations (Don't Confuse)
65
+
66
+ | Path | Purpose |
67
+ |------|---------|
68
+ | `~/.vibe/config.json` | Global credentials, channels, models (0o600) |
69
+ | `.claude/vibe/config.json` | Project stacks, capabilities, details |
70
+ | `.claude/settings.local.json` | Project hooks (auto-generated, don't commit) |
71
+
72
+ ### Installation Flow
73
+
74
+ - `postinstall` → global assets (`~/.claude/agents/`, `~/.claude/skills/`, `~/.claude/commands/`)
75
+ - `vibe init` → project setup (detect stacks → config → constitution → rules → hooks → local skills + languages)
76
+ - `vibe update` → re-detect stacks, refresh project config (preserves user capabilities)
77
+
78
+ ### Key Directories (Where to Find Things)
79
+
80
+ | What | Where |
81
+ |------|-------|
82
+ | CLI commands | `src/cli/commands/` |
83
+ | Postinstall modules | `src/cli/postinstall/` |
84
+ | Stack detection | `src/cli/detect.ts` |
85
+ | Auth (all LLMs) | `src/cli/auth.ts` |
86
+ | Setup helpers | `src/cli/setup.ts`, `src/cli/setup/` |
87
+ | Hooks scripts | `hooks/scripts/` |
88
+ | Agent definitions | `agents/` |
89
+ | Skill definitions | `skills/` |
90
+ | Language rules | `languages/` |
91
+ | SPEC/rule templates | `vibe/rules/`, `vibe/templates/` |
92
+ | Infra (daemon, memory, policy) | `src/infra/` |
93
+ | Telemetry (local JSONL) | `src/infra/lib/telemetry/` |
94
+ | Test helpers (shared) | `src/test-helpers/` |
95
+ | Skill catalog generator | `scripts/gen-skill-docs.ts` |
96
+
97
+ ### Gotchas
98
+
99
+ - `better-sqlite3` WAL mode DB module uses synchronous API
100
+ - `crypto.timingSafeEqual` requires same-length bufferscheck length first
101
+ - `STACK_TO_LANGUAGE_FILE`, `STACK_TO_SKILLS`, `CAPABILITY_SKILLS` in `src/cli/postinstall/constants.ts` — single source of truth for stack→asset mapping
102
+ - Hook dispatch chain: `prompt-dispatcher.js` → `keyword-detector.js` → `llm-orchestrate.js` (order matters)
103
+ - Pre-existing test failures in `prdParser.test.ts` (7) and `traceabilityMatrix.test.ts` (1) — unrelated to current work
104
+
105
+ ## Workflow
106
+
107
+ ```text
108
+ /vibe.spec /new /vibe.spec.review → /vibe.run → /vibe.trace → (auto) code review → Done
109
+ ```
110
+
111
+ | Task Size | Approach |
112
+ |-----------|----------|
113
+ | 1-2 files | Plan Mode |
114
+ | 3+ files | `/vibe.spec` |
115
+
116
+ ## Magic Keywords
117
+
118
+ | Keyword | Effect |
119
+ |---------|--------|
120
+ | `ultrawork` / `ulw` | Parallel agents + auto-continue + Ralph Loop |
121
+ | `ralph` | Iterate until 100% complete (no scope reduction) |
122
+ | `ralplan` | Iterative planning + persistence |
123
+ | `verify` | Strict verification mode |
124
+ | `quick` | Fast mode, minimal verification |
125
+
126
+ ## Proactive Skill Suggestions
127
+
128
+ When the user's context matches a pattern below, suggest the relevant skill **once** per session. If the user says "stop suggesting", disable for the rest of the session.
129
+
130
+ | User Context | Suggested Skill | Signal |
131
+ |-------------|-----------------|--------|
132
+ | Writing a new SPEC / planning | `/vibe.spec` | "let's build", "new feature", "requirements" |
133
+ | SPEC exists, ready to implement | `/vibe.run` | SPEC file present, no implementation started |
134
+ | Implementation done, verifying | `/vibe.trace` | Code changes match SPEC phases |
135
+ | Complex feature, unknown tech | `/parallel-research` | "how should we", "which library", architecture questions |
136
+ | Debugging errors repeatedly | `/vibe.trace` | 3+ error cycles without resolution |
137
+ | Pre-merge / PR preparation | `/commit-push-pr` | "ready to merge", "create PR" |
138
+ | Session ending, work incomplete | `/handoff` | 70%+ context, incomplete tasks |
139
+ | Technical debt accumulating | `/techdebt` | Multiple `any` types, console.log, unused imports |
140
+ | Multi-file refactoring planned | `/exec-plan` | 3+ files to change, complex dependencies |
141
+
142
+ ## Context Management
143
+
144
+ - **Exploration/Search**: Haiku | **Implementation**: Sonnet | **Architecture**: Opus
145
+ - At 70%+ context: `save_memory` → `/new` → `/vibe.utils --continue`
146
+
147
+ ## Git Commit Rules
148
+
149
+ **Must include:** `.claude/vibe/specs/`, `.claude/vibe/features/`, `.claude/vibe/todos/`, `.claude/vibe/config.json`, `CLAUDE.md`
150
+
151
+ **Exclude:** `~/.claude/vibe/rules/`, `~/.claude/commands/`, `~/.claude/agents/`, `~/.claude/skills/`, `.claude/settings.local.json`
152
+
153
+ <!-- VIBE:END -->
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Su
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Su
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.