@su-record/vibe 3.2.47 → 3.2.48

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vibe",
3
3
  "displayName": "Vibe",
4
- "version": "3.2.47",
4
+ "version": "3.2.48",
5
5
  "description": "Verification harness for AI coding agents — \"done\" is decided by deterministic gates (test exit codes, run-ledger, regression memory), not the model self-report.",
6
6
  "author": {
7
7
  "name": "su-record",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe",
3
- "version": "3.2.47",
3
+ "version": "3.2.48",
4
4
  "description": "Verification harness for AI coding agents — \"done\" is decided by deterministic gates (test exit codes, run-ledger, regression memory), not the model self-report.",
5
5
  "author": {
6
6
  "name": "su-record",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@su-record/vibe",
3
- "version": "3.2.47",
3
+ "version": "3.2.48",
4
4
  "description": "AI Coding Framework for Claude Code — 7+ agents, 52 skills, multi-LLM orchestration",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
@@ -52,7 +52,7 @@ HISTORY=".vibe/metrics/loop-history.jsonl"
52
52
  3. **생성 직후 반드시 검증한다** — 실패 시 정의를 고치고 재검증, 통과 전에는 install/run 금지:
53
53
 
54
54
  ```bash
55
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => { const fs = require('fs'); const r = t.validateLoopDefinition(fs.readFileSync('.vibe/loops/<name>.md', 'utf-8')); console.log(JSON.stringify(r.errors.length ? r.errors : 'valid')); })"
55
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/loop/index.js').then(t => { const fs = require('fs'); const r = t.validateLoopDefinition(fs.readFileSync('.vibe/loops/<name>.md', 'utf-8')); console.log(JSON.stringify(r.errors.length ? r.errors : 'valid')); })"
56
56
  ```
57
57
 
58
58
  **기본 제안 레시피 — nightly-triage** (사용자가 목표를 정하지 못하면 이것을 제안):
@@ -6,5 +6,20 @@ Load only for `vibe.loop install`. Never register a schedule without the user's
6
6
  |------|------|
7
7
  | Claude Code (세션 루프) | `/loop <interval> "/vibe.loop run <name>"` |
8
8
  | Claude Code (클라우드 루틴) | `/schedule`로 cron `<schedule>` + prompt `/vibe.loop run <name>` 등록 |
9
- | OS cron fallback | `<schedule> cd <project> && claude -p "/vibe.loop run <name>" --permission-mode acceptEdits` |
9
+ | OS cron fallback | 아래 참조 **PATH 반드시 명시한다** |
10
+
11
+ ### OS cron 등록
12
+
13
+ ```cron
14
+ # PATH 를 적지 않으면 cron 은 /usr/bin:/bin 만 들고 실행한다 — claude 를 찾지 못해
15
+ # 루프가 **아무 소리 없이** 한 번도 돌지 않는다. 등록 전에 실제 경로를 확인할 것:
16
+ # which claude → 예: /usr/local/bin/claude, ~/.local/bin/claude, ~/.nvm/.../bin/claude
17
+ PATH=/usr/local/bin:/usr/bin:/bin:<claude 가 있는 디렉토리>
18
+
19
+ <schedule> cd <project> && claude -p "/vibe.loop run <name>" --permission-mode acceptEdits >> <project>/.vibe/loops/<name>.log 2>&1
20
+ ```
21
+
22
+ - **PATH**: `which claude` 결과의 디렉토리를 반드시 포함시킨다. nvm·Homebrew·`~/.local/bin` 중 어디든 cron 기본 PATH 에는 없다
23
+ - **로그 리다이렉트**: cron 은 출력을 메일로 보내거나 버린다. 파일로 받아야 루프가 왜 멈췄는지 알 수 있다
24
+ - **등록 후 1회 검증**: 다음 실행 시각을 기다리지 말고 같은 명령을 `env -i PATH=... sh -c '...'` 로 한 번 돌려 본다 — cron 과 같은 최소 환경에서 되는지 확인하는 것이 목적이다
10
25
  | Codex | Automations에 `<schedule>` + `$vibe.loop run <name>` 등록 |