oh-my-customcode 1.1.86 → 1.1.88

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
@@ -217,7 +217,7 @@ var init_package = __esm(() => {
217
217
  workspaces: [
218
218
  "packages/*"
219
219
  ],
220
- version: "1.1.86",
220
+ version: "1.1.88",
221
221
  description: "Batteries-included agent harness for Claude Code",
222
222
  type: "module",
223
223
  bin: {
package/dist/index.js CHANGED
@@ -2326,7 +2326,7 @@ var package_default = {
2326
2326
  workspaces: [
2327
2327
  "packages/*"
2328
2328
  ],
2329
- version: "1.1.86",
2329
+ version: "1.1.88",
2330
2330
  description: "Batteries-included agent harness for Claude Code",
2331
2331
  type: "module",
2332
2332
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "1.1.86",
6
+ "version": "1.1.88",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -496,7 +496,20 @@ steps:
496
496
  `grep -E '(함|됨|필요)[.。"]?$'` = 0 (반말/명사 종결 endings such as 확인함·정정
497
497
  필요·완료됨 fall entirely outside the 다-ending regexes above and were previously
498
498
  undetectable — verified against 4 명사 종결 positive samples and 4 합쇼체 negative
499
- samples, 8/8 correct) (#1728 찐빠 #2 residual). Even with all three checks, a residual
499
+ samples, 8/8 correct) (#1728 찐빠 #2 residual). On macOS, a `grep -E` run of these three
500
+ checks MAY false-positive on multibyte UTF-8 lines (line-final `$` anchor mismatch
501
+ observed, [hypothesis: unverified]) and this repo's Bash `grep` MAY be a shell function
502
+ shadowing the real binary (R005) — the agent MUST ALSO run the same three checks as a
503
+ python3 `re` equivalent of all THREE checks above, reading from the SAME piped stdin as
504
+ (a) (`git diff -U0 -- <edited md/yaml files> | grep '^+' | python3 -c "import re,sys;
505
+ text=sys.stdin.read();
506
+ fam=len(re.findall(r'(한다|된다|않는다|따른다|했다|있다|없다|넣는다|이다)[.。 \"]', text));
507
+ lf=len(re.findall(r'다[.。\"]?$', text, re.M)) - len(re.findall(r'니다[.。\"]?$', text, re.M));
508
+ noun=len(re.findall(r'(함|됨|필요)[.。\"]?$', text, re.M));
509
+ print(fam, lf, noun)"`, NOT a file-argument read — the input is the piped diff, never a
510
+ file path), in ADDITION to (not instead of) the grep commands above, and
511
+ treat a python3/grep disagreement as evidence the grep result is unreliable (macOS
512
+ line-final 오탐 가능성 대응, R005, R023, #1749 찐빠 #3). Even with all three checks, a residual
500
513
  gap remains for 반말/명사 종결 variants the patterns above do not enumerate — the agent
501
514
  MUST also read the newly added lines directly as a final check, not rely on regex alone.
502
515
  When an edit re-emits a pre-existing
@@ -514,6 +527,13 @@ steps:
514
527
  contaminate the very command a clause cites (#1711 찐빠 #2); (h) any temporary file the
515
528
  delegation creates MUST live under a per-agent-unique path (`$TMPDIR` or the session
516
529
  scratchpad), never a fixed shared path (#1722 찐빠 #7).
530
+ - Any implement-stage delegation that writes an executable command or code snippet into
531
+ rule/skill/guide/workflow TEXT (not a prose-only edit) MUST require, as a completion-report
532
+ item, that the agent copy the command OUT of the edited file and run it once on a positive
533
+ fixture (the check-triggering case) and once on a negative fixture (the check-passing
534
+ case), reporting both raw outputs (룰/스킬/워크플로 텍스트에 넣는 실행 명령은 편집 파일에서
535
+ 그대로 복사해 양성·음성 픽스처로 실행한 출력을 완료 보고에 포함해야 합니다; 정정 위임은 이미
536
+ 적용해 통과한 결과로 갈음합니다) (R023 「Sample-Value Assembly」, #1752 찐빠 #1).
517
537
  - Every delegation prompt (not only rule/skill/guide TEXT edits) MUST instruct the agent
518
538
  that if a guard, classifier, or permission check blocks an action, it MUST NOT route
519
539
  around it (e.g. via a shell glob or path rewrite) — it MUST stop and report the block
@@ -542,6 +562,13 @@ steps:
542
562
  arithmetic above MUST add a batched-verification term — ⌈N/batch⌉ — still an
543
563
  upper-bound guide that may still truncate, not a truncation guarantee (검증 비용을
544
564
  턴 산술에 반영, R020 「maxTurns 절단 실증」 6항 확장, #1737 찐빠 #1).
565
+ - A single-file edit delegation (of any type, not only rule/skill/guide TEXT edits) whose
566
+ target file is ≥1,000 lines (measure `wc -l`) MUST either (i) split "본문 편집" (body edit) from "미러 복사·검증·
567
+ 보고" (mirror copy, verification, and completion report) into separate delegations, or
568
+ (ii) add a large-file fixed-cost term to the turn arithmetic above — a large-file edit
569
+ can exceed what the arithmetic assumes even when the item count stays small; read-only
570
+ review delegations are excluded (대형 파일 편집 위임 20턴 절단 재발 방지, R020
571
+ 「maxTurns 절단 실증」, R009, #1749 찐빠 #1).
545
572
  - Parity delegation prompts (e.g. a ko mirror tracking an en source) MUST require THREE
546
573
  directions — additions, edits, AND deletions — to match the source, never additions
547
574
  only; completion criteria MUST include a `grep -F` confirming zero rows/sentences are
@@ -606,7 +633,19 @@ steps:
606
633
  upstream CHANGELOG lines (measured with `grep -nF`) and the original target paragraph
607
634
  as ground truth; if the issue's premise differs from the primary source, the primary
608
635
  source wins and the discrepancy is reported rather than silently inherited into the
609
- corrected wording (#1730 찐빠 #1).
636
+ corrected wording (#1730 찐빠 #1). A `claude-code-release` delegation prompt that writes
637
+ a count sentence (e.g. "기타 N건") MUST specify, in the prompt itself, the exact counting
638
+ range (which section of the issue body to count) and the exact measurement command; the
639
+ resulting guide/rule text MUST carry that same command alongside the number — delegations
640
+ that produce no count sentence are excluded (계수 구간 정의 부재로 인한 수치 오류 방지,
641
+ R023 「리서치 위임의 결론 수치는 표에서 재계산해 병기」, R020, #1749 찐빠 #2).
642
+ - Any delegation correcting a fact (the issue states an existing statement in a target file
643
+ is wrong) — not only `claude-code-release` CC-notes — MUST include, as a completion
644
+ criterion, an exhaustive `grep` across the target file(s) for the claim's key terms, not
645
+ only the single string anchor supplied in the prompt, so a second copy of the same claim
646
+ elsewhere in the file is also caught; pure additions (no existing statement is being
647
+ corrected) are excluded (앵커 1개 한정으로 인한 동일 주장 잔존 사본 방지, R010 「출처
648
+ 인용과 인접 문구 점검」, R022, #1749 찐빠 #4).
610
649
  - When review-correction work is split across file-ownership delegations (one file per
611
650
  agent), every split delegation prompt MUST carry the FULL list of review findings
612
651
  (not only the subset touching that agent's file) as a self-check list, so a fix in one
@@ -853,6 +892,12 @@ steps:
853
892
  (loop_count × sleep_interval + command time ≤ timeout, with margin), or prefer a
854
893
  single bounded call `gh run watch <run-id> --exit-status` (optionally
855
894
  run_in_background) over an unbounded manual poll loop (#1711 찐빠 #6).
895
+ - Any wait/poll loop in this step, including a release-publish package-availability
896
+ wait, MUST print one progress line per iteration (attempt count, current observed
897
+ value) so a long-but-normal wait is not mistaken for a stall — a single bounded
898
+ `gh run watch`/`gh pr checks --watch` call already streams periodic status, which
899
+ serves the same anti-stall purpose and satisfies this requirement without extra
900
+ instrumentation (#1752 찐빠 #2).
856
901
  - If failures: diagnose, fix, re-verify
857
902
  3. For npm projects with auto-tag.yml: MANDATORY additional check:
858
903
  gh run list --workflow auto-tag.yml --limit 1 --json conclusion,displayTitle
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.86",
2
+ "version": "1.1.88",
3
3
  "lastUpdated": "2026-09-03",
4
4
  "omcustomMinClaudeCode": "2.1.121",
5
5
  "omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",
@@ -496,7 +496,20 @@ steps:
496
496
  `grep -E '(함|됨|필요)[.。"]?$'` = 0 (반말/명사 종결 endings such as 확인함·정정
497
497
  필요·완료됨 fall entirely outside the 다-ending regexes above and were previously
498
498
  undetectable — verified against 4 명사 종결 positive samples and 4 합쇼체 negative
499
- samples, 8/8 correct) (#1728 찐빠 #2 residual). Even with all three checks, a residual
499
+ samples, 8/8 correct) (#1728 찐빠 #2 residual). On macOS, a `grep -E` run of these three
500
+ checks MAY false-positive on multibyte UTF-8 lines (line-final `$` anchor mismatch
501
+ observed, [hypothesis: unverified]) and this repo's Bash `grep` MAY be a shell function
502
+ shadowing the real binary (R005) — the agent MUST ALSO run the same three checks as a
503
+ python3 `re` equivalent of all THREE checks above, reading from the SAME piped stdin as
504
+ (a) (`git diff -U0 -- <edited md/yaml files> | grep '^+' | python3 -c "import re,sys;
505
+ text=sys.stdin.read();
506
+ fam=len(re.findall(r'(한다|된다|않는다|따른다|했다|있다|없다|넣는다|이다)[.。 \"]', text));
507
+ lf=len(re.findall(r'다[.。\"]?$', text, re.M)) - len(re.findall(r'니다[.。\"]?$', text, re.M));
508
+ noun=len(re.findall(r'(함|됨|필요)[.。\"]?$', text, re.M));
509
+ print(fam, lf, noun)"`, NOT a file-argument read — the input is the piped diff, never a
510
+ file path), in ADDITION to (not instead of) the grep commands above, and
511
+ treat a python3/grep disagreement as evidence the grep result is unreliable (macOS
512
+ line-final 오탐 가능성 대응, R005, R023, #1749 찐빠 #3). Even with all three checks, a residual
500
513
  gap remains for 반말/명사 종결 variants the patterns above do not enumerate — the agent
501
514
  MUST also read the newly added lines directly as a final check, not rely on regex alone.
502
515
  When an edit re-emits a pre-existing
@@ -514,6 +527,13 @@ steps:
514
527
  contaminate the very command a clause cites (#1711 찐빠 #2); (h) any temporary file the
515
528
  delegation creates MUST live under a per-agent-unique path (`$TMPDIR` or the session
516
529
  scratchpad), never a fixed shared path (#1722 찐빠 #7).
530
+ - Any implement-stage delegation that writes an executable command or code snippet into
531
+ rule/skill/guide/workflow TEXT (not a prose-only edit) MUST require, as a completion-report
532
+ item, that the agent copy the command OUT of the edited file and run it once on a positive
533
+ fixture (the check-triggering case) and once on a negative fixture (the check-passing
534
+ case), reporting both raw outputs (룰/스킬/워크플로 텍스트에 넣는 실행 명령은 편집 파일에서
535
+ 그대로 복사해 양성·음성 픽스처로 실행한 출력을 완료 보고에 포함해야 합니다; 정정 위임은 이미
536
+ 적용해 통과한 결과로 갈음합니다) (R023 「Sample-Value Assembly」, #1752 찐빠 #1).
517
537
  - Every delegation prompt (not only rule/skill/guide TEXT edits) MUST instruct the agent
518
538
  that if a guard, classifier, or permission check blocks an action, it MUST NOT route
519
539
  around it (e.g. via a shell glob or path rewrite) — it MUST stop and report the block
@@ -542,6 +562,13 @@ steps:
542
562
  arithmetic above MUST add a batched-verification term — ⌈N/batch⌉ — still an
543
563
  upper-bound guide that may still truncate, not a truncation guarantee (검증 비용을
544
564
  턴 산술에 반영, R020 「maxTurns 절단 실증」 6항 확장, #1737 찐빠 #1).
565
+ - A single-file edit delegation (of any type, not only rule/skill/guide TEXT edits) whose
566
+ target file is ≥1,000 lines (measure `wc -l`) MUST either (i) split "본문 편집" (body edit) from "미러 복사·검증·
567
+ 보고" (mirror copy, verification, and completion report) into separate delegations, or
568
+ (ii) add a large-file fixed-cost term to the turn arithmetic above — a large-file edit
569
+ can exceed what the arithmetic assumes even when the item count stays small; read-only
570
+ review delegations are excluded (대형 파일 편집 위임 20턴 절단 재발 방지, R020
571
+ 「maxTurns 절단 실증」, R009, #1749 찐빠 #1).
545
572
  - Parity delegation prompts (e.g. a ko mirror tracking an en source) MUST require THREE
546
573
  directions — additions, edits, AND deletions — to match the source, never additions
547
574
  only; completion criteria MUST include a `grep -F` confirming zero rows/sentences are
@@ -606,7 +633,19 @@ steps:
606
633
  upstream CHANGELOG lines (measured with `grep -nF`) and the original target paragraph
607
634
  as ground truth; if the issue's premise differs from the primary source, the primary
608
635
  source wins and the discrepancy is reported rather than silently inherited into the
609
- corrected wording (#1730 찐빠 #1).
636
+ corrected wording (#1730 찐빠 #1). A `claude-code-release` delegation prompt that writes
637
+ a count sentence (e.g. "기타 N건") MUST specify, in the prompt itself, the exact counting
638
+ range (which section of the issue body to count) and the exact measurement command; the
639
+ resulting guide/rule text MUST carry that same command alongside the number — delegations
640
+ that produce no count sentence are excluded (계수 구간 정의 부재로 인한 수치 오류 방지,
641
+ R023 「리서치 위임의 결론 수치는 표에서 재계산해 병기」, R020, #1749 찐빠 #2).
642
+ - Any delegation correcting a fact (the issue states an existing statement in a target file
643
+ is wrong) — not only `claude-code-release` CC-notes — MUST include, as a completion
644
+ criterion, an exhaustive `grep` across the target file(s) for the claim's key terms, not
645
+ only the single string anchor supplied in the prompt, so a second copy of the same claim
646
+ elsewhere in the file is also caught; pure additions (no existing statement is being
647
+ corrected) are excluded (앵커 1개 한정으로 인한 동일 주장 잔존 사본 방지, R010 「출처
648
+ 인용과 인접 문구 점검」, R022, #1749 찐빠 #4).
610
649
  - When review-correction work is split across file-ownership delegations (one file per
611
650
  agent), every split delegation prompt MUST carry the FULL list of review findings
612
651
  (not only the subset touching that agent's file) as a self-check list, so a fix in one
@@ -853,6 +892,12 @@ steps:
853
892
  (loop_count × sleep_interval + command time ≤ timeout, with margin), or prefer a
854
893
  single bounded call `gh run watch <run-id> --exit-status` (optionally
855
894
  run_in_background) over an unbounded manual poll loop (#1711 찐빠 #6).
895
+ - Any wait/poll loop in this step, including a release-publish package-availability
896
+ wait, MUST print one progress line per iteration (attempt count, current observed
897
+ value) so a long-but-normal wait is not mistaken for a stall — a single bounded
898
+ `gh run watch`/`gh pr checks --watch` call already streams periodic status, which
899
+ serves the same anti-stall purpose and satisfies this requirement without extra
900
+ instrumentation (#1752 찐빠 #2).
856
901
  - If failures: diagnose, fix, re-verify
857
902
  3. For npm projects with auto-tag.yml: MANDATORY additional check:
858
903
  gh run list --workflow auto-tag.yml --limit 1 --json conclusion,displayTitle