oh-my-customcode 1.1.34 → 1.1.36

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/dist/cli/index.js CHANGED
@@ -241,7 +241,7 @@ var init_package = __esm(() => {
241
241
  workspaces: [
242
242
  "packages/*"
243
243
  ],
244
- version: "1.1.34",
244
+ version: "1.1.36",
245
245
  description: "Batteries-included agent harness for Claude Code",
246
246
  type: "module",
247
247
  bin: {
package/dist/index.js CHANGED
@@ -2031,7 +2031,7 @@ var package_default = {
2031
2031
  workspaces: [
2032
2032
  "packages/*"
2033
2033
  ],
2034
- version: "1.1.34",
2034
+ version: "1.1.36",
2035
2035
  description: "Batteries-included agent harness for Claude Code",
2036
2036
  type: "module",
2037
2037
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "1.1.34",
6
+ "version": "1.1.36",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -217,8 +217,11 @@ npm publish E403을 `--provenance` attestation 충돌로 오진단 → release w
217
217
  1. 가설을 뒷받침하는 직접 증거(로그/에러 코드/문서)가 있는가?
218
218
  2. 비파괴적 방법으로 가설을 검증할 수 있는가?
219
219
  3. 변경이 되돌리기 쉬운가? (영구 워크플로우 변경 vs 일회성 시도)
220
+ 4. 결함이 발생한 실행 경로(워크플로우 YAML/스킬 정의/스크립트/CI 설정)를 직접 읽었는가? 수동 재현 성공으로 자동화 경로의 동작을 추정하지 않았는가?
220
221
  하나라도 NO면 검증을 먼저 수행한다. 근본 원인 진단은 `superpowers:systematic-debugging` 참조.
221
222
 
223
+ Origin: #1533 (lockfile 4릴리즈 누락을 "스테이징 누락"으로 오진 — 실제 원인은 version-bump 절차에 build 단계 부재; 수동 재현 결과로 자동화 경로를 추정).
224
+
222
225
  ### Variant: Parallel Read + Permanent-Change Dispatch (#1250)
223
226
 
224
227
  진단 자료 수집(로그 조사, 파일 Read)과 그 진단에 의존하는 영구 변경(이슈 등록, 수정 에이전트 위임)을 **같은 메시지에서 병렬 실행**하면, Read 결과를 받기 전에 가설이 확정된다. 병렬 배치는 결과를 동시에 받으므로 "Read 후 판단"이 불가능하다.
@@ -13,8 +13,28 @@ Update the relevant rule rather than just acknowledging the violation.
13
13
  1. Acknowledge violation
14
14
  2. Identify root cause (which rule was weak/unclear?)
15
15
  3. Update the rule (add clarity, examples, self-checks)
16
- 4. Commit the change
17
- 5. Continue original task following updated rules
16
+ 4. Wiring check — confirm the rule is wired into an execution path, or mark it as wiring-not-required (see Rule Wiring Check below)
17
+ 5. Commit the change
18
+ 6. Continue original task following updated rules
19
+
20
+ ### Rule Wiring Check (배선 확인)
21
+
22
+ 규칙 텍스트를 추가하는 것과, 그 규칙이 실행 경로에서 발동되게 배선하는 것은 **별개 작업**이다. 텍스트만 추가하고 배선을 누락하면 동일 결함이 재발한다.
23
+
24
+ **판단 항목** (규칙 승격 시 판단하고 기록):
25
+ 1. 이 규칙이 발동되어야 하는 **실행 경로**(워크플로우 YAML / 스킬 정의 / 훅 / CI 설정)가 있는가?
26
+ 2. 있다면 그 경로에 **실제로 반영**했는가?
27
+ 3. 배선 대상이 없는 순수 서술 규칙(용어 정의 등)이면 **"배선 불요"임을 명시**한다.
28
+
29
+ 배선이 필요한데 텍스트만 추가한 것은 **미완료**로 간주한다.
30
+
31
+ | Anti-pattern | Required |
32
+ |--------------|----------|
33
+ | 규칙 조항만 추가하고 커밋 → 자동화 경로에 발동 지점이 없어 동일 결함 재발 | 발동 실행 경로 명시 + 반영 확인; 대상 없으면 "배선 불요" 명시 |
34
+
35
+ Origin: #1533 (v1.1.35에서 R017 (b) 조항 추가했으나 auto-dev.yaml version-bump 절차에 bun run build 단계가 없어 발동 지점 부재 — mgr-sauron이 [FAIL]로 차단, 배선 후 통과).
36
+
37
+ Cross-reference: R021(Enforcement Policy — advisory 규칙의 발동 지점), R017(구조 검증).
18
38
 
19
39
  ## Integration
20
40
 
@@ -77,16 +77,21 @@ Wiki verification is also enforced by CI (`.github/workflows/wiki-sync.yml`).
77
77
  ```
78
78
  -->
79
79
 
80
- ### Release Commit Staging Hygiene (빌드 산출물 오염 방지)
80
+ ### Release Commit Staging Hygiene (빌드 산출물 오염/누락 방지)
81
81
 
82
- 릴리즈 커밋(및 `bun run build`를 수행한 모든 커밋) 직전, `git diff --cached --name-only`로 **스테이징 목록을 실측**하여 `dist/` 등 빌드 산출물이 포함되지 않았는지 확인한다. gitignored 경로라도 `git add -f` 또는 광범위 `git add` 조합으로 스테이징될 수 있으므로, .gitignore 존재가 방어를 보장하지 않는다. 발견 시 `git reset dist/`로 제외한 뒤 커밋한다. 이는 v1.1.12의 `dist/` untrack 조치에 대한 **회귀 방지 게이트**다.
82
+ 릴리즈 커밋(및 `bun run build`를 수행한 모든 커밋) 직전, 스테이징 검증은 **양방향**이다 — (a) gitignored 빌드 산출물(`dist/` 등)이 **혼입**되지 않았는가, (b) 빌드가 갱신한 **tracked** 산출물(`.omcustom.lock.json` 등)이 **누락**되지 않았는가. 두 방향은 서로 다른 경로(gitignored vs tracked)를 대상으로 하므로, 한쪽만 확인하면 반대 방향 결함이 통과한다 — .gitignore 존재/부재 확인만으로는 부족하다.
83
+
84
+ **(a) 혼입 방지**: `git diff --cached --name-only`로 **스테이징 목록을 실측**하여 `dist/` 등 빌드 산출물이 포함되지 않았는지 확인한다. gitignored 경로라도 `git add -f` 또는 광범위 `git add` 조합으로 스테이징될 수 있다. 발견 시 `git reset dist/`로 제외한 뒤 커밋한다. 이는 v1.1.12의 `dist/` untrack 조치에 대한 **회귀 방지 게이트**다.
85
+
86
+ **(b) 누락 방지**: `bun run build` 실행 후 `git status --short`에 **tracked 변경(`^ M`)이 남아 있으면 스테이징 누락**이다. 커밋 직전 tracked 변경이 0인지 확인한다.
83
87
 
84
88
  | Anti-pattern | Required |
85
89
  |--------------|----------|
86
90
  | 빌드 후 광범위 `git add`로 커밋 → gitignored `dist/` force-add 위험 | 커밋 직전 `git diff --cached --name-only` 실측으로 빌드 산출물 부재 확인 |
87
91
  | .gitignore에 있으니 안전하다고 가정 | force-add 경로는 .gitignore를 우회하므로 실측 필요 |
92
+ | `dist/` 미포함만 확인하고 커밋 → 빌드가 갱신한 tracked 산출물 누락 | `git status --short`로 tracked 변경 잔존 0 확인 |
88
93
 
89
- Origin: #1512 (v1.1.28 커밋 staging에 dist/ 2파일 포함, 커밋 전 실측으로 정정; v1.1.12 dist/ untrack 회귀 방지). Cross-ref: R020 (완료 검증 — "실행됨 ≠ 성공").
94
+ Origin: #1512 (v1.1.28 커밋 staging에 dist/ 2파일 포함, 커밋 전 실측으로 정정; v1.1.12 dist/ untrack 회귀 방지); #1531 (`.omcustom.lock.json`이 v1.1.29 이후 4개 릴리즈 연속 누락 — 혼입 방지 단방향 조항의 반대편 공백). Cross-ref: R020 (완료 검증 — "실행됨 ≠ 성공").
90
95
 
91
96
  ### Count Sync — Exhaustive Grep, Not File Enumeration
92
97
 
@@ -307,9 +307,13 @@ steps:
307
307
  # Edit ONLY the .version field — do NOT overwrite templates/manifest.json wholesale (e.g. a source-hash path→hash map).
308
308
  # Recover a corrupted manifest: git show HEAD:templates/manifest.json | jq '.version="<NEW>"' > templates/manifest.json (#1423/#1154).
309
309
  b. templates/manifest.json: jq '.version = "<NEW>"' templates/manifest.json > templates/manifest.json.tmp && mv templates/manifest.json.tmp templates/manifest.json
310
- c. mgr-gitnerd commit: "chore(release): bump to v<NEW>"
311
- d. mgr-gitnerd push develop
312
- e. mandatory verification (with existence guard for partial-update safety):
310
+ c. bun run build — run standalone (NO pipe), read exit code directly ($? after a pipe is the last command's, R005/#1492).
311
+ This regenerates .omcustom.lock.json (generatorVersion/templateVersion) to <NEW> via scripts/sync-source-lockfile.ts.
312
+ d. git status --short — enumerate ALL tracked drift (`^ M`) the build produced; stage EVERY one (esp. .omcustom.lock.json) before commit.
313
+ (#1531 — .omcustom.lock.json missed staging across 4 consecutive releases after v1.1.29; root cause was no build step between version bump and commit.)
314
+ e. mgr-gitnerd commit: "chore(release): bump to v<NEW>" — MUST include the drift from step d
315
+ f. mgr-gitnerd push develop
316
+ g. mandatory verification (with existence guard for partial-update safety):
313
317
  [ -f scripts/verify-version-sync.sh ] && bash scripts/verify-version-sync.sh || echo "::warning::verify-version-sync.sh not found, version sync verification skipped"
314
318
  (verify-version-sync.sh 가 exit 1 시 release 단계 halt)
315
319
 
@@ -325,12 +329,15 @@ steps:
325
329
  3. Adapt release mechanism to project (determines how steps 3-5 execute):
326
330
  - npm project with auto-tag.yml (this repo — release/v* PR pattern):
327
331
  a. mgr-gitnerd creates release/v{NEW} branch from develop with the version-bump commit
328
- b. mgr-gitnerd creates PR: gh pr create --base develop --head release/v{NEW} --title "chore(release): bump to v{NEW}"
332
+ b. mgr-gitnerd creates PR: gh pr create --base develop --head release/v{NEW} --title "chore(release): bump to v{NEW}" --body "<MUST include 'Closes #N' for EVERY issue this release resolves>"
333
+ ⚠ auto-tag.yml closes issues by grep'ing Closes/Fixes/Resolves keywords in the PR BODY — NOT by milestone membership. If the keywords are missing, no issues close and the workflow still reports success (#1531).
334
+ Before creating the PR (whether via inline --body or --body-file), confirm the body text actually contains a Closes line per issue.
329
335
  c. mgr-gitnerd merges PR (admin merge required due to branch protection)
330
336
  d. DO NOT manually git tag or gh release create.
331
- auto-tag.yml fires on release/v* PR merge → creates tag → closes linked issues → closes milestone → deletes release branch.
337
+ auto-tag.yml fires on release/v* PR merge → creates tag → closes issues linked via PR-body Closes/Fixes/Resolves keywords → closes milestone → deletes release branch.
332
338
  release.yml fires on the tag → npm publish + GitHub Release creation.
333
339
  Milestone close and issue close are handled downstream by auto-tag.yml — do NOT close them manually.
340
+ After merge, verify each targeted issue is actually CLOSED (gh issue view); close manually if still open. Workflow conclusion=success is not evidence of close (#1531 — v1.1.34 Closes-keyword omission left 5 issues open, manual close required).
334
341
  - Non-npm / no auto-tag.yml:
335
342
  mgr-gitnerd: git tag v{NEW} && git push origin v{NEW}
336
343
  mgr-gitnerd: gh release create v{NEW} (with release notes)
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.34",
2
+ "version": "1.1.36",
3
3
  "lastUpdated": "2026-07-14T00:00:00.000Z",
4
4
  "omcustomMinClaudeCode": "2.1.121",
5
5
  "omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",