@su-record/vibe 2.12.3 → 2.12.5

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 (145) hide show
  1. package/CLAUDE.md +15 -13
  2. package/README.md +2 -0
  3. package/dist/cli/collaborator.d.ts.map +1 -1
  4. package/dist/cli/collaborator.js +23 -6
  5. package/dist/cli/collaborator.js.map +1 -1
  6. package/dist/cli/commands/init.d.ts +8 -0
  7. package/dist/cli/commands/init.d.ts.map +1 -1
  8. package/dist/cli/commands/init.js +26 -1
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/postinstall/claude-agents.d.ts +11 -1
  11. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  12. package/dist/cli/postinstall/claude-agents.js +37 -14
  13. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  14. package/dist/cli/postinstall/constants.d.ts +20 -2
  15. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  16. package/dist/cli/postinstall/constants.js +52 -2
  17. package/dist/cli/postinstall/constants.js.map +1 -1
  18. package/dist/cli/postinstall/fs-utils.d.ts +5 -0
  19. package/dist/cli/postinstall/fs-utils.d.ts.map +1 -1
  20. package/dist/cli/postinstall/fs-utils.js +55 -0
  21. package/dist/cli/postinstall/fs-utils.js.map +1 -1
  22. package/dist/cli/postinstall/fs-utils.test.d.ts +2 -0
  23. package/dist/cli/postinstall/fs-utils.test.d.ts.map +1 -0
  24. package/dist/cli/postinstall/fs-utils.test.js +31 -0
  25. package/dist/cli/postinstall/fs-utils.test.js.map +1 -0
  26. package/dist/cli/postinstall/index.d.ts +2 -2
  27. package/dist/cli/postinstall/index.d.ts.map +1 -1
  28. package/dist/cli/postinstall/index.js +2 -2
  29. package/dist/cli/postinstall/index.js.map +1 -1
  30. package/dist/cli/postinstall/main.d.ts.map +1 -1
  31. package/dist/cli/postinstall/main.js +9 -6
  32. package/dist/cli/postinstall/main.js.map +1 -1
  33. package/dist/cli/postinstall.d.ts +1 -1
  34. package/dist/cli/postinstall.d.ts.map +1 -1
  35. package/dist/cli/postinstall.js +1 -1
  36. package/dist/cli/postinstall.js.map +1 -1
  37. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  38. package/dist/cli/setup/ProjectSetup.js +13 -1
  39. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  40. package/dist/infra/lib/ContextCompressor.d.ts +11 -2
  41. package/dist/infra/lib/ContextCompressor.d.ts.map +1 -1
  42. package/dist/infra/lib/ContextCompressor.js +26 -41
  43. package/dist/infra/lib/ContextCompressor.js.map +1 -1
  44. package/dist/infra/lib/ContextCompressor.test.d.ts +2 -0
  45. package/dist/infra/lib/ContextCompressor.test.d.ts.map +1 -0
  46. package/dist/infra/lib/ContextCompressor.test.js +25 -0
  47. package/dist/infra/lib/ContextCompressor.test.js.map +1 -0
  48. package/dist/infra/lib/CostAccumulator.d.ts +19 -2
  49. package/dist/infra/lib/CostAccumulator.d.ts.map +1 -1
  50. package/dist/infra/lib/CostAccumulator.js +60 -2
  51. package/dist/infra/lib/CostAccumulator.js.map +1 -1
  52. package/dist/infra/lib/antigravity/chat.d.ts.map +1 -1
  53. package/dist/infra/lib/antigravity/chat.js +6 -0
  54. package/dist/infra/lib/antigravity/chat.js.map +1 -1
  55. package/dist/infra/lib/antigravity/orchestration.d.ts.map +1 -1
  56. package/dist/infra/lib/antigravity/orchestration.js +13 -1
  57. package/dist/infra/lib/antigravity/orchestration.js.map +1 -1
  58. package/dist/infra/lib/antigravity/types.d.ts +8 -0
  59. package/dist/infra/lib/antigravity/types.d.ts.map +1 -1
  60. package/dist/infra/lib/embedding/VectorStore.d.ts +9 -2
  61. package/dist/infra/lib/embedding/VectorStore.d.ts.map +1 -1
  62. package/dist/infra/lib/embedding/VectorStore.js +42 -19
  63. package/dist/infra/lib/embedding/VectorStore.js.map +1 -1
  64. package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
  65. package/dist/infra/lib/gpt/auth.js +13 -1
  66. package/dist/infra/lib/gpt/auth.js.map +1 -1
  67. package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
  68. package/dist/infra/lib/gpt/chat.js +52 -31
  69. package/dist/infra/lib/gpt/chat.js.map +1 -1
  70. package/dist/infra/lib/gpt/embedding.d.ts.map +1 -1
  71. package/dist/infra/lib/gpt/embedding.js +6 -5
  72. package/dist/infra/lib/gpt/embedding.js.map +1 -1
  73. package/dist/infra/lib/gpt/orchestration.d.ts.map +1 -1
  74. package/dist/infra/lib/gpt/orchestration.js +13 -1
  75. package/dist/infra/lib/gpt/orchestration.js.map +1 -1
  76. package/dist/infra/lib/gpt/types.d.ts +8 -0
  77. package/dist/infra/lib/gpt/types.d.ts.map +1 -1
  78. package/dist/infra/lib/llm/timeout.d.ts +34 -0
  79. package/dist/infra/lib/llm/timeout.d.ts.map +1 -0
  80. package/dist/infra/lib/llm/timeout.js +45 -0
  81. package/dist/infra/lib/llm/timeout.js.map +1 -0
  82. package/dist/infra/lib/llm/timeout.test.d.ts +2 -0
  83. package/dist/infra/lib/llm/timeout.test.d.ts.map +1 -0
  84. package/dist/infra/lib/llm/timeout.test.js +50 -0
  85. package/dist/infra/lib/llm/timeout.test.js.map +1 -0
  86. package/dist/infra/lib/memory/MemoryStorage.d.ts +12 -0
  87. package/dist/infra/lib/memory/MemoryStorage.d.ts.map +1 -1
  88. package/dist/infra/lib/memory/MemoryStorage.js +57 -0
  89. package/dist/infra/lib/memory/MemoryStorage.js.map +1 -1
  90. package/dist/infra/lib/memory/ReflectionStore.d.ts.map +1 -1
  91. package/dist/infra/lib/memory/ReflectionStore.js +8 -27
  92. package/dist/infra/lib/memory/ReflectionStore.js.map +1 -1
  93. package/dist/infra/orchestrator/AgentExecutor.d.ts.map +1 -1
  94. package/dist/infra/orchestrator/AgentExecutor.js +3 -1
  95. package/dist/infra/orchestrator/AgentExecutor.js.map +1 -1
  96. package/dist/infra/orchestrator/LLMCluster.d.ts +4 -0
  97. package/dist/infra/orchestrator/LLMCluster.d.ts.map +1 -1
  98. package/dist/infra/orchestrator/LLMCluster.js +39 -3
  99. package/dist/infra/orchestrator/LLMCluster.js.map +1 -1
  100. package/dist/infra/orchestrator/MultiLlmResearch.d.ts +5 -0
  101. package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +1 -1
  102. package/dist/infra/orchestrator/MultiLlmResearch.js +7 -0
  103. package/dist/infra/orchestrator/MultiLlmResearch.js.map +1 -1
  104. package/dist/infra/orchestrator/PhasePipeline.d.ts +5 -5
  105. package/dist/infra/orchestrator/PhasePipeline.d.ts.map +1 -1
  106. package/dist/infra/orchestrator/PhasePipeline.js +19 -15
  107. package/dist/infra/orchestrator/PhasePipeline.js.map +1 -1
  108. package/dist/infra/orchestrator/SmartRouter.d.ts +10 -0
  109. package/dist/infra/orchestrator/SmartRouter.d.ts.map +1 -1
  110. package/dist/infra/orchestrator/SmartRouter.js +23 -6
  111. package/dist/infra/orchestrator/SmartRouter.js.map +1 -1
  112. package/dist/infra/orchestrator/SmartRouter.test.js +46 -19
  113. package/dist/infra/orchestrator/SmartRouter.test.js.map +1 -1
  114. package/dist/infra/orchestrator/parallelResearch.d.ts.map +1 -1
  115. package/dist/infra/orchestrator/parallelResearch.js +41 -9
  116. package/dist/infra/orchestrator/parallelResearch.js.map +1 -1
  117. package/hooks/hooks.json +2 -9
  118. package/hooks/scripts/__tests__/keyword-detector.test.js +51 -16
  119. package/hooks/scripts/auto-commit.js +17 -17
  120. package/hooks/scripts/auto-format.js +11 -6
  121. package/hooks/scripts/code-check.js +17 -20
  122. package/hooks/scripts/codex-hook-adapter.js +5 -1
  123. package/hooks/scripts/keyword-detector.js +14 -2
  124. package/hooks/scripts/llm-orchestrate.js +13 -2
  125. package/hooks/scripts/prompt-dispatcher.js +32 -9
  126. package/hooks/scripts/session-start.js +28 -15
  127. package/hooks/scripts/utils.js +33 -9
  128. package/package.json +1 -1
  129. package/skills/arch-guard/SKILL.md +2 -2
  130. package/skills/characterization-test/SKILL.md +2 -2
  131. package/skills/design-audit/SKILL.md +1 -0
  132. package/skills/design-normalize/SKILL.md +1 -0
  133. package/skills/design-teach/SKILL.md +1 -1
  134. package/skills/exec-plan/SKILL.md +2 -2
  135. package/skills/spec/SKILL.md +6 -312
  136. package/skills/spec/references/askuser-examples.md +57 -0
  137. package/skills/spec/references/example-session.md +87 -0
  138. package/skills/spec/references/templates.md +189 -0
  139. package/skills/test/SKILL.md +9 -9
  140. package/skills/ui-ux-pro-max/SKILL.md +1 -0
  141. package/skills/vibe.run/SKILL.md +5 -5
  142. package/skills/vibe.test/SKILL.md +1 -1
  143. package/skills/vibe.verify/SKILL.md +1 -1
  144. package/vibe/rules/standards/complexity-metrics.md +2 -2
  145. package/vibe/templates/claudemd-template.md +1 -1
@@ -0,0 +1,189 @@
1
+ # SPEC / Feature Document Templates
2
+
3
+ > Referenced by `spec` SKILL.md Step 4 (Write SPEC Document) and Step 5 (Create Feature File).
4
+ > Read this file when you reach those steps — copy the matching template verbatim and fill the placeholders.
5
+
6
+ ## Master SPEC (`_index.md`) — Large Scope
7
+
8
+ ```markdown
9
+ # SPEC: {feature-name} (Master)
10
+
11
+ ## Overview
12
+ - Total phases: N
13
+ - Dependencies: [list]
14
+
15
+ ## Sub-SPECs
16
+
17
+ | Order | SPEC File | Feature File | Status |
18
+ |-------|-----------|--------------|--------|
19
+ | 1 | phase-1-setup.md | phase-1-setup.feature | ⬜ |
20
+ | 2 | phase-2-core.md | phase-2-core.feature | ⬜ |
21
+
22
+ ## Shared Context
23
+ - Tech Stack: [all phases]
24
+ - Constraints: [all phases]
25
+ ```
26
+
27
+ ## Master Feature (`_index.feature`) — Large Scope
28
+
29
+ ```markdown
30
+ # Feature: {feature-name} (Master)
31
+
32
+ **Master SPEC**: `.vibe/specs/{feature-name}/_index.md`
33
+
34
+ ## Sub-Features
35
+
36
+ | Order | Feature File | SPEC File | Status |
37
+ |-------|--------------|-----------|--------|
38
+ | 1 | phase-1-setup.feature | phase-1-setup.md | ⬜ |
39
+ | 2 | phase-2-core.feature | phase-2-core.md | ⬜ |
40
+
41
+ ## Overall User Story
42
+ **As a** {user}
43
+ **I want** {complete feature}
44
+ **So that** {value}
45
+ ```
46
+
47
+ ## Single SPEC (`.vibe/specs/{feature-name}.md`) — Small Scope
48
+
49
+ ```markdown
50
+ ---
51
+ status: pending
52
+ currentPhase: 0
53
+ totalPhases: 3
54
+ createdAt: {ISO-timestamp}
55
+ lastUpdated: {ISO-timestamp}
56
+ ---
57
+
58
+ # SPEC: {feature-name}
59
+
60
+ ## Persona
61
+ <role>
62
+ Define AI role and expertise for implementation
63
+ - Senior developer on the project
64
+ - Follow existing code patterns
65
+ - Write testable code
66
+ </role>
67
+
68
+ ## Context
69
+ <context>
70
+ ### Background
71
+ - Why this feature is needed
72
+ - Who will use it
73
+
74
+ ### Tech Stack
75
+ - Backend: {technology}
76
+ - Frontend: {technology}
77
+ - Database: {technology}
78
+
79
+ ### Related Code
80
+ - `src/xxx/`: Existing implementation to reference
81
+ - `src/yyy/`: Files to modify
82
+
83
+ ### Design Reference
84
+ - {Reference app/service}
85
+ </context>
86
+
87
+ ## Task
88
+ <task>
89
+ ### Phase 1: {phase-name}
90
+ 1. [ ] {specific task}
91
+ - File: `path/to/file`
92
+ - Verify: `command`
93
+ 2. [ ] {specific task}
94
+
95
+ ### Phase 2: {phase-name}
96
+ 1. [ ] {specific task}
97
+ 2. [ ] {specific task}
98
+
99
+ ### Phase 3: Testing and Verification
100
+ 1. [ ] Unit Tests
101
+ 2. [ ] Integration Tests
102
+ </task>
103
+
104
+ ## Constraints
105
+ <constraints>
106
+ - Follow existing code patterns
107
+ - Localize error messages
108
+ - Separate configuration via environment variables
109
+ - {other constraints}
110
+ </constraints>
111
+
112
+ ## Output Format
113
+ <output_format>
114
+ ### Files to Create
115
+ - `path/to/new/file.ts`
116
+ - `path/to/new/file.test.ts`
117
+
118
+ ### Files to Modify
119
+ - `path/to/existing/file.ts`
120
+
121
+ ### Verification Commands
122
+ - `npm test`
123
+ - `npm run build`
124
+ </output_format>
125
+
126
+ ## Acceptance Criteria
127
+ <acceptance>
128
+ - [ ] {verifiable criterion 1}
129
+ - [ ] {verifiable criterion 2}
130
+ - [ ] All tests pass
131
+ - [ ] Build succeeds
132
+ </acceptance>
133
+ ```
134
+
135
+ ## Single Feature (`.vibe/features/{feature-name}.feature`) — Small Scope
136
+
137
+ ```markdown
138
+ # Feature: {feature-name}
139
+
140
+ **SPEC**: `.vibe/specs/{feature-name}.md`
141
+
142
+ ## User Story
143
+ **As a** {user}
144
+ **I want** {feature}
145
+ **So that** {value}
146
+
147
+ ## Scenarios
148
+
149
+ ### Scenario 1: {Happy Path}
150
+ \`\`\`gherkin
151
+ Scenario: {title}
152
+ Given {precondition}
153
+ When {action}
154
+ Then {result}
155
+ \`\`\`
156
+ **Verification**: SPEC AC #1
157
+
158
+ ### Scenario 2: {Edge Case}
159
+ ...
160
+
161
+ ## Coverage
162
+ | Scenario | SPEC AC | Status |
163
+ |----------|---------|--------|
164
+ | 1 | AC-1 | ⬜ |
165
+ ```
166
+
167
+ ## Phase Feature (`.vibe/features/{feature-name}/phase-{N}-{name}.feature`) — Large Scope
168
+
169
+ ```markdown
170
+ # Feature: {feature-name} - Phase {N}: {phase-name}
171
+
172
+ **SPEC**: `.vibe/specs/{feature-name}/phase-{N}-{name}.md`
173
+ **Master Feature**: `.vibe/features/{feature-name}/_index.feature`
174
+
175
+ ## User Story (Phase Scope)
176
+ **As a** {user}
177
+ **I want** {phase-specific feature}
178
+ **So that** {phase-specific value}
179
+
180
+ ## Scenarios
181
+
182
+ ### Scenario 1: {Phase Happy Path}
183
+ ...
184
+
185
+ ## Coverage
186
+ | Scenario | SPEC AC | Status |
187
+ |----------|---------|--------|
188
+ | 1 | Phase {N} AC-1 | ⬜ |
189
+ ```
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: test
3
- description: vibe 자가검진 본체 — 대상 harness(~/.claude/~/.codex)의 모든 command/skill/hook/agent 프로빙 → pass/fail 리포트 → ~/.vibe/test-reports/.
4
- when_to_use: /vibe.test 진입점에서 체인 호출. 직접 호출 금지.
3
+ description: vibe 자가검진 본체 — 대상 harness(~/.claude/~/.codex)의 모든 entry skill/skill/hook/agent 프로빙 → pass/fail 리포트 → ~/.vibe/test-reports/.
4
+ when_to_use: vibe.test 진입점에서 체인 호출. 직접 호출 금지.
5
5
  user-invocable: false
6
6
  tier: core
7
7
  ---
@@ -12,7 +12,7 @@ Probe every shipped vibe surface in one install dir and emit a pass/fail report.
12
12
 
13
13
  ## Why this exists
14
14
 
15
- When vibe ships new commands, skills, hooks, or agents, one side (CC or Codex) can end up out of sync with the other, frontmatter can drift, and hook tests can silently break. `/vibe.test` is the single mechanical check: does every surface in the target install actually load and pass its own tests?
15
+ When vibe ships new entry skills, skills, hooks, or agents, one side (CC or Codex) can end up out of sync with the other, frontmatter can drift, and hook tests can silently break. `vibe.test` is the single mechanical check: does every surface in the target install actually load and pass its own tests?
16
16
 
17
17
  ## Target harness
18
18
 
@@ -37,8 +37,8 @@ All probes are **structural or test-based** — no interactive command is ever a
37
37
 
38
38
  | Category | Source | Check |
39
39
  |---|---|---|
40
- | commands | `<install>/commands/*.md` | file readable · frontmatter parses · `description` present · body references a skill (`Load skill \`...\``) if it delegates |
41
- | skills | `<install>/skills/*/SKILL.md` | frontmatter parses · required fields (`name`, `description`, `invocation`) · `invocation` ⊆ `{command, auto, chain}` and non-empty · if `invocation` includes `auto` then `triggers` non-empty · if includes `command` then matching `commands/{vibe.X}.md` or `Load skill <name>` reference exists · if includes `chain` then another skill lists it in `chain-next` · body non-empty |
40
+ | entry skills | `<install>/skills/vibe*/SKILL.md` | file readable · frontmatter parses · `name`, `description`, `user-invocable: true` present |
41
+ | skills | `<install>/skills/*/SKILL.md` | frontmatter parses · required fields (`name`, `description`) · body non-empty |
42
42
  | hooks | repo `hooks/scripts/*.js` | for each script with a matching `__tests__/<name>.test.js`, run `npx vitest run <test> --reporter=json` and parse pass/fail counts |
43
43
  | agents | `<install>/agents/*.md` | file readable · frontmatter parses · required fields (`name`, `description`) |
44
44
 
@@ -62,7 +62,7 @@ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact sch
62
62
  "failed": 2
63
63
  },
64
64
  "probes": {
65
- "commands": [
65
+ "entrySkills": [
66
66
  { "name": "vibe.spec", "status": "pass" },
67
67
  { "name": "vibe.test", "status": "pass" }
68
68
  ],
@@ -102,7 +102,7 @@ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact sch
102
102
 
103
103
  | Category | Pass | Fail |
104
104
  |---|---:|---:|
105
- | commands | 15 | 0 |
105
+ | entry skills | 15 | 0 |
106
106
  | skills | 17 | 1 |
107
107
  | hooks | 6 | 0 |
108
108
  | agents | 3 | 1 |
@@ -136,5 +136,5 @@ If `failed` is empty, replace the Failures section with `_All probes passed._`.
136
136
  - [ ] JSON report matches the template above exactly (fields, types, naming)
137
137
  - [ ] Markdown summary printed to console after the run
138
138
  - [ ] Reports land in `~/.vibe/test-reports/`, never in project-local `.vibe/`
139
- - [ ] `failed.length > 0` → auto-invokes `/vibe.regress register --from-test`
140
- - [ ] `invocation` field invariants enforced per skill (`command` / `auto` / `chain` validity)
139
+ - [ ] `failed.length > 0` → auto-invokes `vibe.regress register --from-test`
140
+ - [ ] Entry skills are verified as user-invocable skill surfaces, not deprecated command files
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: ui-ux-pro-max
3
+ user-invocable: true
3
4
  invocation: [command]
4
5
  tier: standard
5
6
  description: "UI/UX design intelligence with bold aesthetic direction. Searchable database: 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks (React, Vue, Svelte, Angular, Astro, Next.js, Flutter, Swift, Kotlin). Use when building any UI component, choosing color schemes, selecting typography, applying design patterns, or reviewing UX compliance. Must use this skill when user builds frontend — pages, components, dashboards, or landing pages — to ensure design quality beyond generic AI output."
@@ -606,7 +606,7 @@ At automation levels L3 and L4, checkpoints that do not require confirmation are
606
606
 
607
607
  - `core/development-philosophy.md` - Surgical precision, modify only requested scope
608
608
  - `core/quick-start.md` - Korean, DRY, SRP, YAGNI
609
- - `standards/complexity-metrics.md` - Functions ≤20 lines, nesting ≤3 levels
609
+ - `standards/complexity-metrics.md` - Functions ≤50 lines, nesting ≤3 levels
610
610
  - `quality/checklist.md` - Code quality checklist
611
611
 
612
612
  **Language guide:** `~/.claude/vibe/languages/{stack}.md` (global reference)
@@ -994,8 +994,8 @@ If implementation requires files outside scope:
994
994
  | Context Level | Action |
995
995
  |---------------|--------|
996
996
  | < 50% | Normal execution |
997
- | 50-70% | Save checkpoint, trim exploration results |
998
- | 70%+ | Save checkpoint → `/new` → resume from checkpoint |
997
+ | 50-85% | Save checkpoint, trim exploration results |
998
+ | 85%+ | Save checkpoint → `/new` → resume from checkpoint (`/new` discards KV prefix cache; defer it as long as safe) |
999
999
  | Phase boundary | Always save checkpoint regardless of context level |
1000
1000
 
1001
1001
  ### 1-2. SPEC-First Gate (Level 3: Spec = Source of Truth)
@@ -1617,7 +1617,7 @@ After all scenarios complete + Antigravity review, **quality report is auto-gene
1617
1617
  │ │ Build │ ✅ │ npm run build succeeded │ │
1618
1618
  │ │ Tests │ ✅ │ 12/12 passed │ │
1619
1619
  │ │ Type check │ ✅ │ 0 errors │ │
1620
- │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
1620
+ │ │ Complexity │ ✅ │ All functions ≤50 lines │ │
1621
1621
  │ │ Security │ ✅ │ 0 vulnerabilities │ │
1622
1622
  │ │ Race review │ ✅ │ 3 improvements applied │ │
1623
1623
  │ └─────────────────────────────────────────────────────────┘ │
@@ -1857,7 +1857,7 @@ Before marking any scenario as complete, ALL items must pass:
1857
1857
  | **Functionality** | All Given/When/Then conditions verified | 20% |
1858
1858
  | **Functionality** | Edge cases handled per scenario | 10% |
1859
1859
  | **Code Quality** | No `any` types in TypeScript | 10% |
1860
- | **Code Quality** | Functions ≤30 lines, nesting ≤3 levels | 10% |
1860
+ | **Code Quality** | Functions ≤50 lines, nesting ≤3 levels | 10% |
1861
1861
  | **Code Quality** | No hardcoded values (use constants) | 5% |
1862
1862
  | **Security** | Input validation implemented | 10% |
1863
1863
  | **Security** | Authentication/authorization checked | 5% |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: vibe.test
3
- description: Self-test vibe — probe every command/skill/hook/agent in the target harness install dir and write a pass/fail report
3
+ description: Self-test vibe — probe every entry skill/skill/hook/agent in the target harness install dir and write a pass/fail report
4
4
  argument-hint: "[cc|codex] (empty = current harness)"
5
5
  user-invocable: true
6
6
  ---
@@ -257,7 +257,7 @@ Record the value as `{step_count}` and include it in the report below.
257
257
  │ │ Build │ ✅ │ Success │ │
258
258
  │ │ Tests │ ✅ │ 12/12 passed │ │
259
259
  │ │ Type Check │ ✅ │ 0 errors │ │
260
- │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
260
+ │ │ Complexity │ ✅ │ All functions ≤50 lines │ │
261
261
  │ │ Code Coverage │ ⚠️ │ 78% (target: 80%) │ │
262
262
  │ └─────────────────────────────────────────────────────────┘ │
263
263
  │ │
@@ -283,7 +283,7 @@ npm install eslint-plugin-complexity
283
283
  "rules": {
284
284
  "complexity": ["error", 10],
285
285
  "max-depth": ["error", 3],
286
- "max-lines-per-function": ["error", 20]
286
+ "max-lines-per-function": ["error", 50]
287
287
  }
288
288
  }
289
289
  ```
@@ -307,7 +307,7 @@ radon mi app/
307
307
  |--------|--------|-------------|
308
308
  | Cyclomatic Complexity | ≤ 10 | Independent execution paths |
309
309
  | Cognitive Complexity | ≤ 15 | Easy to understand |
310
- | Function Length | ≤ 20 lines | Short, focused functions |
310
+ | Function Length | ≤ 50 lines | Short, focused functions |
311
311
  | Nesting Depth | ≤ 3 levels | Flat structure |
312
312
  | Parameters | ≤ 5 | Function parameter limit |
313
313
  | Dependencies | ≤ 7 | Module dependency limit |
@@ -64,7 +64,7 @@ Convergence Principle: loop until P1 = 0. Changed files only.
64
64
 
65
65
  ## Context Management
66
66
 
67
- At 70%+ context: `save_memory` → `/new` → `/vibe.utils --continue`
67
+ At 85%+ context: `save_memory` → `/new` → `/vibe.utils --continue` (raised from 70% — `/new` discards the entire KV prefix cache, so compacting less often preserves cache reuse)
68
68
 
69
69
  ## Git Commit Rules
70
70