@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.
- package/CLAUDE.md +15 -13
- package/README.md +2 -0
- package/dist/cli/collaborator.d.ts.map +1 -1
- package/dist/cli/collaborator.js +23 -6
- package/dist/cli/collaborator.js.map +1 -1
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +26 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/postinstall/claude-agents.d.ts +11 -1
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/claude-agents.js +37 -14
- package/dist/cli/postinstall/claude-agents.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts +20 -2
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +52 -2
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/fs-utils.d.ts +5 -0
- package/dist/cli/postinstall/fs-utils.d.ts.map +1 -1
- package/dist/cli/postinstall/fs-utils.js +55 -0
- package/dist/cli/postinstall/fs-utils.js.map +1 -1
- package/dist/cli/postinstall/fs-utils.test.d.ts +2 -0
- package/dist/cli/postinstall/fs-utils.test.d.ts.map +1 -0
- package/dist/cli/postinstall/fs-utils.test.js +31 -0
- package/dist/cli/postinstall/fs-utils.test.js.map +1 -0
- package/dist/cli/postinstall/index.d.ts +2 -2
- package/dist/cli/postinstall/index.d.ts.map +1 -1
- package/dist/cli/postinstall/index.js +2 -2
- package/dist/cli/postinstall/index.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +9 -6
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/postinstall.d.ts +1 -1
- package/dist/cli/postinstall.d.ts.map +1 -1
- package/dist/cli/postinstall.js +1 -1
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +13 -1
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/infra/lib/ContextCompressor.d.ts +11 -2
- package/dist/infra/lib/ContextCompressor.d.ts.map +1 -1
- package/dist/infra/lib/ContextCompressor.js +26 -41
- package/dist/infra/lib/ContextCompressor.js.map +1 -1
- package/dist/infra/lib/ContextCompressor.test.d.ts +2 -0
- package/dist/infra/lib/ContextCompressor.test.d.ts.map +1 -0
- package/dist/infra/lib/ContextCompressor.test.js +25 -0
- package/dist/infra/lib/ContextCompressor.test.js.map +1 -0
- package/dist/infra/lib/CostAccumulator.d.ts +19 -2
- package/dist/infra/lib/CostAccumulator.d.ts.map +1 -1
- package/dist/infra/lib/CostAccumulator.js +60 -2
- package/dist/infra/lib/CostAccumulator.js.map +1 -1
- package/dist/infra/lib/antigravity/chat.d.ts.map +1 -1
- package/dist/infra/lib/antigravity/chat.js +6 -0
- package/dist/infra/lib/antigravity/chat.js.map +1 -1
- package/dist/infra/lib/antigravity/orchestration.d.ts.map +1 -1
- package/dist/infra/lib/antigravity/orchestration.js +13 -1
- package/dist/infra/lib/antigravity/orchestration.js.map +1 -1
- package/dist/infra/lib/antigravity/types.d.ts +8 -0
- package/dist/infra/lib/antigravity/types.d.ts.map +1 -1
- package/dist/infra/lib/embedding/VectorStore.d.ts +9 -2
- package/dist/infra/lib/embedding/VectorStore.d.ts.map +1 -1
- package/dist/infra/lib/embedding/VectorStore.js +42 -19
- package/dist/infra/lib/embedding/VectorStore.js.map +1 -1
- package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
- package/dist/infra/lib/gpt/auth.js +13 -1
- package/dist/infra/lib/gpt/auth.js.map +1 -1
- package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
- package/dist/infra/lib/gpt/chat.js +52 -31
- package/dist/infra/lib/gpt/chat.js.map +1 -1
- package/dist/infra/lib/gpt/embedding.d.ts.map +1 -1
- package/dist/infra/lib/gpt/embedding.js +6 -5
- package/dist/infra/lib/gpt/embedding.js.map +1 -1
- package/dist/infra/lib/gpt/orchestration.d.ts.map +1 -1
- package/dist/infra/lib/gpt/orchestration.js +13 -1
- package/dist/infra/lib/gpt/orchestration.js.map +1 -1
- package/dist/infra/lib/gpt/types.d.ts +8 -0
- package/dist/infra/lib/gpt/types.d.ts.map +1 -1
- package/dist/infra/lib/llm/timeout.d.ts +34 -0
- package/dist/infra/lib/llm/timeout.d.ts.map +1 -0
- package/dist/infra/lib/llm/timeout.js +45 -0
- package/dist/infra/lib/llm/timeout.js.map +1 -0
- package/dist/infra/lib/llm/timeout.test.d.ts +2 -0
- package/dist/infra/lib/llm/timeout.test.d.ts.map +1 -0
- package/dist/infra/lib/llm/timeout.test.js +50 -0
- package/dist/infra/lib/llm/timeout.test.js.map +1 -0
- package/dist/infra/lib/memory/MemoryStorage.d.ts +12 -0
- package/dist/infra/lib/memory/MemoryStorage.d.ts.map +1 -1
- package/dist/infra/lib/memory/MemoryStorage.js +57 -0
- package/dist/infra/lib/memory/MemoryStorage.js.map +1 -1
- package/dist/infra/lib/memory/ReflectionStore.d.ts.map +1 -1
- package/dist/infra/lib/memory/ReflectionStore.js +8 -27
- package/dist/infra/lib/memory/ReflectionStore.js.map +1 -1
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +1 -1
- package/dist/infra/orchestrator/AgentExecutor.js +3 -1
- package/dist/infra/orchestrator/AgentExecutor.js.map +1 -1
- package/dist/infra/orchestrator/LLMCluster.d.ts +4 -0
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +1 -1
- package/dist/infra/orchestrator/LLMCluster.js +39 -3
- package/dist/infra/orchestrator/LLMCluster.js.map +1 -1
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts +5 -0
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +1 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +7 -0
- package/dist/infra/orchestrator/MultiLlmResearch.js.map +1 -1
- package/dist/infra/orchestrator/PhasePipeline.d.ts +5 -5
- package/dist/infra/orchestrator/PhasePipeline.d.ts.map +1 -1
- package/dist/infra/orchestrator/PhasePipeline.js +19 -15
- package/dist/infra/orchestrator/PhasePipeline.js.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.d.ts +10 -0
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.js +23 -6
- package/dist/infra/orchestrator/SmartRouter.js.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.test.js +46 -19
- package/dist/infra/orchestrator/SmartRouter.test.js.map +1 -1
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +1 -1
- package/dist/infra/orchestrator/parallelResearch.js +41 -9
- package/dist/infra/orchestrator/parallelResearch.js.map +1 -1
- package/hooks/hooks.json +2 -9
- package/hooks/scripts/__tests__/keyword-detector.test.js +51 -16
- package/hooks/scripts/auto-commit.js +17 -17
- package/hooks/scripts/auto-format.js +11 -6
- package/hooks/scripts/code-check.js +17 -20
- package/hooks/scripts/codex-hook-adapter.js +5 -1
- package/hooks/scripts/keyword-detector.js +14 -2
- package/hooks/scripts/llm-orchestrate.js +13 -2
- package/hooks/scripts/prompt-dispatcher.js +32 -9
- package/hooks/scripts/session-start.js +28 -15
- package/hooks/scripts/utils.js +33 -9
- package/package.json +1 -1
- package/skills/arch-guard/SKILL.md +2 -2
- package/skills/characterization-test/SKILL.md +2 -2
- package/skills/design-audit/SKILL.md +1 -0
- package/skills/design-normalize/SKILL.md +1 -0
- package/skills/design-teach/SKILL.md +1 -1
- package/skills/exec-plan/SKILL.md +2 -2
- package/skills/spec/SKILL.md +6 -312
- package/skills/spec/references/askuser-examples.md +57 -0
- package/skills/spec/references/example-session.md +87 -0
- package/skills/spec/references/templates.md +189 -0
- package/skills/test/SKILL.md +9 -9
- package/skills/ui-ux-pro-max/SKILL.md +1 -0
- package/skills/vibe.run/SKILL.md +5 -5
- package/skills/vibe.test/SKILL.md +1 -1
- package/skills/vibe.verify/SKILL.md +1 -1
- package/vibe/rules/standards/complexity-metrics.md +2 -2
- 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
|
+
```
|
package/skills/test/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test
|
|
3
|
-
description: vibe 자가검진 본체 — 대상 harness(~/.claude/~/.codex)의 모든
|
|
4
|
-
when_to_use:
|
|
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
|
|
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
|
-
|
|
|
41
|
-
| skills | `<install>/skills/*/SKILL.md` | frontmatter parses · required fields (`name`, `description
|
|
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
|
-
"
|
|
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
|
-
|
|
|
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
|
|
140
|
-
- [ ]
|
|
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."
|
package/skills/vibe.run/SKILL.md
CHANGED
|
@@ -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 ≤
|
|
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-
|
|
998
|
-
|
|
|
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 ≤
|
|
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 ≤
|
|
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
|
|
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 ≤
|
|
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",
|
|
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 | ≤
|
|
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
|
|
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
|
|