oh-my-customcode
Advanced tools
+2
-2
@@ -6,3 +6,3 @@ { | ||
| ], | ||
| "version": "1.1.29", | ||
| "version": "1.1.30", | ||
| "description": "Batteries-included agent harness for Claude Code", | ||
@@ -55,3 +55,3 @@ "type": "module", | ||
| "devDependencies": { | ||
| "@anthropic-ai/sdk": "^0.111.0", | ||
| "@anthropic-ai/sdk": "^0.112.3", | ||
| "@biomejs/biome": "^2.3.12", | ||
@@ -58,0 +58,0 @@ "@types/bun": "^1.3.6", |
@@ -35,4 +35,4 @@ # [MUST] Parallel Execution Rules | ||
| 5. Running agent stalled (2x+ duration)? → Spawn independent follow-up tasks immediately | ||
| 6. Announced a parallel dispatch in prose? → ALL announced tool calls MUST be in the SAME message as the announcement (announce-execution consistency) | ||
| - **Verify-Bash + action-delegate asymmetry**: when the batch is a verification Bash PLUS an action delegate (Agent/Workflow), the action delegate is the call most often dropped — the Bash fires and the delegate silently slips to the next turn. Dispatch BOTH in the SAME message. Recurred v1.1.22 (resume turn) and v1.1.23 (verify-build turn) — ≥2 occurrences, R016 rule-update mandate. | ||
| 6. Announced a parallel dispatch in prose? → **발화 직전 카운트 대조**: announce 산문이 명시한 도구 개수 N == 이 메시지에 실제 포함된 tool_use 블록 개수. 불일치면 보완한 뒤 발화 (announce-execution consistency) | ||
| - 누락 방향은 무작위다 — verify Bash가 빠지기도(v1.1.22/23), action delegate가 빠지기도(v1.1.27 세션) 했다. 방향별 서술 강화는 3회 재발로 실패가 실증됐으므로, 유일한 실효 방어선은 N↔N 카운트 대조다. Origin: #1512, #1503. | ||
@@ -49,7 +49,4 @@ ### Common Violations to Avoid | ||
| ❌ WRONG: Announce "milestone 생성 + 구조 확인 병렬" but only dispatch one tool; the other runs next turn (announce-execution mismatch) | ||
| ✓ CORRECT: When announcing N parallel tools, include ALL N tool calls in the SAME message as the announcement | ||
| ❌ WRONG: Announce "verify build (Bash) + delegate fix (Agent) 병렬" but dispatch only the Bash; the Agent delegate slips to next turn (verify-bash + action-delegate asymmetry — the expensive action call is the one dropped) | ||
| ✓ CORRECT: Dispatch BOTH the verification Bash AND the action delegate (Agent/Workflow) in the SAME message as the announcement | ||
| ❌ WRONG: Announce N개 병렬 도구(예: verify Bash + action delegate)를 예고했으나 메시지에 tool_use가 N-1개만 포함 — 누락 방향은 무작위(Bash가 빠지기도, delegate가 빠지기도) | ||
| ✓ CORRECT: 발화 직전 announce의 N과 tool_use 블록 개수를 대조해 일치시킨 뒤 같은 메시지로 발화 | ||
| ``` | ||
@@ -56,0 +53,0 @@ |
@@ -80,2 +80,13 @@ # [MUST] Sync Verification Rules | ||
| ### Release Commit Staging Hygiene (빌드 산출물 오염 방지) | ||
| 릴리즈 커밋(및 `bun run build`를 수행한 모든 커밋) 직전, `git diff --cached --name-only`로 **스테이징 목록을 실측**하여 `dist/` 등 빌드 산출물이 포함되지 않았는지 확인한다. gitignored 경로라도 `git add -f` 또는 광범위 `git add` 조합으로 스테이징될 수 있으므로, .gitignore 존재가 방어를 보장하지 않는다. 발견 시 `git reset dist/`로 제외한 뒤 커밋한다. 이는 v1.1.12의 `dist/` untrack 조치에 대한 **회귀 방지 게이트**다. | ||
| | Anti-pattern | Required | | ||
| |--------------|----------| | ||
| | 빌드 후 광범위 `git add`로 커밋 → gitignored `dist/` force-add 위험 | 커밋 직전 `git diff --cached --name-only` 실측으로 빌드 산출물 부재 확인 | | ||
| | .gitignore에 있으니 안전하다고 가정 | force-add 경로는 .gitignore를 우회하므로 실측 필요 | | ||
| Origin: #1512 (v1.1.28 커밋 staging에 dist/ 2파일 포함, 커밋 전 실측으로 정정; v1.1.12 dist/ untrack 회귀 방지). Cross-ref: R020 (완료 검증 — "실행됨 ≠ 성공"). | ||
| ## When Required | ||
@@ -82,0 +93,0 @@ |
@@ -147,2 +147,3 @@ # [SHOULD] Verification Ladder Rules | ||
| | 프롬프트 문자열 내 셸 변수 `${...}`(`$?`, `${PIPESTATUS[0]}`, `$(...)` 등)가 `\${...}`로 이스케이프되어 있는지 사전 grep 확인 | JS 템플릿 리터럴 안의 이스케이프 안 된 셸 `${...}`를 JS가 JS 표현식으로 평가 → 런타임 `ReferenceError`(예: `PIPESTATUS is not defined`). `node --check`는 문법만 검사하여 이 런타임 오류를 못 잡으므로 별도 결정론 grep 검사가 필요함 | | ||
| | Workflow `args`를 사용하는 스크립트가 `typeof args === 'string' ? JSON.parse(args) : args` 방어를 거친 뒤 필드에 접근하는지 확인 | 하니스가 객체 args를 문자열로 인코딩해 전달하면 `args.<field>`가 undefined가 되어 스크립트가 즉시 런타임 실패(0 agents 실행). `node --check`는 문법만 검사하므로 위 셸 `${...}` 이스케이프 항목과 동일한 런타임 계열을 잡지 못함 | | ||
@@ -157,2 +158,5 @@ #### Common Violation (#1271) | ||
| #### Common Violation (#1512) | ||
| Origin: #1512 (v1.1.27 세션 회고 찐빠 #2) — Workflow `args`를 JSON 객체로 전달했으나 하니스가 문자열로 인코딩해 `args.paths`가 undefined → 0 agents 실행으로 즉시 런타임 실패. `typeof args === 'string' ? JSON.parse(args) : args` 방어 추가 후 재실행 성공. | ||
| ### Verifier Ground-Truth for Cross-Cutting Facts | ||
@@ -159,0 +163,0 @@ |
@@ -31,2 +31,20 @@ # [SHOULD] Wiki Sync Rules | ||
| ### Resync Completeness — 페이지 갱신 + 매니페스트 재시딩 | ||
| wiki 재동기화는 **두 단계 모두 완료해야 끝난다**: (a) 페이지 본문/`updated` 필드 갱신, (b) 매니페스트 재시딩. drift 판정은 페이지의 `updated` 필드가 아니라 **매니페스트의 SHA-256 대조**로 이루어지므로, 페이지만 갱신하면 drift가 잔존한다. 반대로 매니페스트만 재생성하면 drift 0으로 보이나 페이지 내용은 stale한 **false-green**이 된다 — 양방향 모두 불완전하다. | ||
| ```bash | ||
| bash .github/scripts/lib/source-hash.sh generate wiki/.source-hashes.json | ||
| ``` | ||
| 재시딩 대상은 **항상 `wiki/.source-hashes.json`**이며 `templates/manifest.json`이 아니다(#1423 혼동 사례와 동일 경계). | ||
| | Anti-pattern | Required | | ||
| |--------------|----------| | ||
| | 페이지만 갱신하고 매니페스트 재시딩 누락 → drift 잔존 | 페이지 갱신 + 매니페스트 재시딩 두 단계 모두 수행 | | ||
| | 매니페스트만 재생성 → false-green (drift 0이나 페이지 stale) | 페이지를 실제로 갱신한 뒤 재시딩 | | ||
| Origin: #1512 (v1.1.27 세션 — 71페이지 갱신 후 drift 71→68 잔존, 매니페스트 재시딩으로 drift 0 달성). | ||
| Cross-reference: R017 (동기화 검증 — Phase 3 wiki sync), R020 (완료 검증 — actual outcome ≠ attempt). | ||
| ## Delegation — All wiki writes via wiki-curator agent (R010). See workflow via Read tool. | ||
@@ -33,0 +51,0 @@ |
| { | ||
| "version": "1.1.29", | ||
| "version": "1.1.30", | ||
| "lastUpdated": "2026-07-14T00:00:00.000Z", | ||
@@ -4,0 +4,0 @@ "omcustomMinClaudeCode": "2.1.121", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
3671879
0.08%