oh-my-customcode 1.1.70 → 1.1.71
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 +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MUST-completion-verification.md +7 -0
- package/templates/.claude/rules/MUST-continuous-improvement.md +7 -1
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +8 -0
- package/templates/.claude/rules/MUST-sync-verification.md +2 -0
- package/templates/.claude/rules/SHOULD-verification-ladder.md +6 -0
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -394,6 +394,13 @@ This applies when a change touches a field that participates in an override/prec
|
|
|
394
394
|
|--------------|----------|
|
|
395
395
|
| 훅 위임서에 "가드 추가·`?` 억제" 처방만 전달 | 읽는 필드의 실제 형상(`hook_success` stdin 원문 + 바이너리 훅 문서) 실측을 위임서 완료 조건에 포함 |
|
|
396
396
|
|
|
397
|
+
**값 표현 변경 각도 — 소비자 경로 전수 열거 (Origin: #1691 #2, v1.1.71)**: 저장되는 값의 **표현**(정규화 규칙·인코딩·키 형식)을 바꾸는 위임서는 그 값을 **읽는 모든 소비자 경로**를 `grep`으로 열거하고 **동일 인코딩으로 대조**하도록 완료 조건에 넣습니다. v1.1.68에서 stuck-detector `edit_hash`의 정규화만 바꾸고 소비자(JSON 직렬화 저장값 ↔ grep 원문 패턴)를 열거하지 않아 따옴표·백슬래시 회귀가 1차 구현에 남았고, 위임서의 "consumers logic unchanged" 지시 때문에 에이전트가 발견한 결함을 고치지 않고 넘겼습니다. 이 맥락의 "소비자 로직 변경 금지" 지시는 "결함 발견 시 보고 후 지시 대기"로 씁니다 — 프로덕션·권한 경계의 금지 목록(R010 「Pre-Delegation Privileged-Scope Boundary」)은 이 완화 대상이 아닙니다.
|
|
398
|
+
|
|
399
|
+
| Anti-pattern | Required |
|
|
400
|
+
|--------------|----------|
|
|
401
|
+
| 값의 정규화·인코딩만 바꾸고 소비자 경로를 열거하지 않은 위임 | 소비자 경로 전수 grep + 동일 인코딩 대조를 완료 조건에 포함 |
|
|
402
|
+
| "소비자 로직 변경 금지"로 결함 수정까지 봉쇄 | "결함 발견 시 보고 후 지시 대기"로 완화 |
|
|
403
|
+
|
|
397
404
|
Sibling discipline to Read-Before-Characterize (that rule governs diagnosis — don't label before reading; this one governs edit-planning completeness — enumerate every interdependent field before editing). Cross-ref: R023 (verification ladder — config completeness is a Tier-1 deterministic pre-check).
|
|
398
405
|
|
|
399
406
|
### Degraded-Output Re-Verification Gate (529 / buffering)
|
|
@@ -13,7 +13,7 @@ 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. Wiring check — confirm the rule is wired into an execution path, or mark it as wiring-not-required (see Rule Wiring Check below)
|
|
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) — and, when the new clause governs delegation prompts, apply it to this iteration's own delegation prompts before continuing (동일 반복 self-check)
|
|
17
17
|
5. Commit the change
|
|
18
18
|
6. Continue original task following updated rules
|
|
19
19
|
|
|
@@ -32,6 +32,12 @@ Update the relevant rule rather than just acknowledging the violation.
|
|
|
32
32
|
|--------------|----------|
|
|
33
33
|
| 규칙 조항만 추가하고 커밋 → 자동화 경로에 발동 지점이 없어 동일 결함 재발 | 발동 실행 경로 명시 + 반영 확인; 대상 없으면 "배선 불요" 명시 |
|
|
34
34
|
|
|
35
|
+
**신설 조항의 동일 반복 self-check (Origin: #1691 #4·#5·#7 — v1.1.71)**: 위임서 규율을 신설·보강한 반복에서는, 그 조항을 **같은 반복에서 오케스트레이터가 작성하는 이후 위임서에 즉시 적용**한 뒤 다음 단계로 넘어갑니다. v1.1.69에서 R010 「출처 인용과 인접 문구 점검도 같은 규율」을 신설한 바로 그 반복의 위임서가 이슈 문장을 인용하지 않고 같은 파일 grep을 요구하지 않아 자기 위반 3건(High 1건 포함)이 적대적 리뷰에서 적발되었습니다 — 텍스트가 룰에 실렸다는 사실은 오케스트레이터 자신의 행동이 바뀌었다는 증거가 아닙니다.
|
|
36
|
+
|
|
37
|
+
| Anti-pattern | Required |
|
|
38
|
+
|--------------|----------|
|
|
39
|
+
| 위임서 규율을 신설한 반복에서 이후 위임서를 이전 습관대로 작성 | 신설 조항을 같은 반복의 위임서에 즉시 적용하고, 리뷰 위임서에 그 조항 준수 여부를 점검 항목으로 포함 |
|
|
40
|
+
|
|
35
41
|
Origin: #1533 (v1.1.35에서 R017 (b) 조항 추가했으나 auto-dev.yaml version-bump 절차에 bun run build 단계가 없어 발동 지점 부재 — mgr-sauron이 [FAIL]로 차단, 배선 후 통과).
|
|
36
42
|
|
|
37
43
|
Cross-reference: R021(Enforcement Policy — advisory 규칙의 발동 지점), R017(구조 검증).
|
|
@@ -367,6 +367,14 @@ Origin: #1646 (v1.1.58 세션 — 커밋 위임서 `12e74a76` vs 실제 `e101a0b
|
|
|
367
367
|
| 메모리 요약·기억으로 Origin 사실을 위임서에 확정형 기재 | 출처 문장을 `gh issue view`/원문에서 인용해 동봉하고 "원문과 다르면 원문 우선"을 명시 |
|
|
368
368
|
| 삽입 위치와 문안만 지정한 조항 삽입 위임 | 같은 주제의 기존 문장 grep + 모순·stale 참조 갱신을 완료 조건에 포함 |
|
|
369
369
|
|
|
370
|
+
**보강 3항목 (Origin: #1691 #6, #1696 #1·#2 — v1.1.71)**: (a) [#1696 #2] 인용문은 `gh issue view --json body` 등 **도구 출력에서 그대로 붙여 넣고** 손으로 옮겨 적지 않으며, 서브에이전트 완료 조건에 "인용문을 원문과 `grep -F`로 대조"를 넣습니다 — v1.1.70에서 오케스트레이터가 CHANGELOG 라인을 수기로 옮기다 "and marketplace"를 빠뜨렸고 서브에이전트는 그 위임서를 축자 인용했습니다. (b) [#1691 #6] 인용문이 코드·파일을 가리키면 **그 대상과 대조**한 뒤 기재합니다 — v1.1.69에서 이슈 제안 문안("동일 적용")을 검증 없이 룰로 옮겼다가 인용 대상 스크립트가 해당 필터를 의도적으로 미적용한다는 사실이 리뷰에서 드러났습니다. (c) [#1696 #1] 오케스트레이터가 위임서에 **함의를 제공할 때는 `[가설 — 실측이 반대면 반대로 기재]`로 표기**하고 실측 항목의 판정 기준을 동봉합니다 — v1.1.70에서 "이 결함의 대상일 수 있음"을 확정형으로 제공하자 서브에이전트가 와일드카드 matcher `"*"`를 "구체적 matcher"로 라벨해 함의가 역전되었습니다. 단, 파괴적·비가역 결과를 낳는 위임(아래 「참인 전제 ≠ 참인 함의 — 브랜치 전환 위임」)에서는 `[가설]` 표기 여부와 무관하게 결과 예측을 기재하지 않습니다 — 그 절이 우선합니다. 버전 노트 위임서의 같은 규율은 R017 「묶음 버전 노트 위임서 — 문장별 (NNN) 태그와 합쇼체 예시」 보강 2항목과 짝을 이룹니다.
|
|
371
|
+
|
|
372
|
+
| Anti-pattern | Required |
|
|
373
|
+
|--------------|----------|
|
|
374
|
+
| CHANGELOG·이슈 문장을 위임서에 수기로 옮겨 적음 | 도구 출력에서 복사 + 완료 조건에 `grep -F` 원문 대조 |
|
|
375
|
+
| 인용 대상 코드를 보지 않고 제안 문안을 룰로 승격 | 인용문이 가리키는 코드·파일과 대조 후 기재 |
|
|
376
|
+
| 오케스트레이터의 함의를 확정형으로 위임서에 기재 | `[가설 — 실측이 반대면 반대로 기재]` 표기 + 판정 기준 동봉 |
|
|
377
|
+
|
|
370
378
|
#### 참인 전제 ≠ 참인 함의 — 브랜치 전환 위임 (Origin: #1595 #2)
|
|
371
379
|
|
|
372
380
|
uncommitted 변경이 있는 상태의 브랜치 전환을 위임할 때, 위임서에 **전환의 결과를 확정형으로 예측해 적지 않는다**. "대상 브랜치에 그 파일이 없다"는 **사실**에서 "전환해도 안전하다"는 **함의**는 도출되지 않는다 — 파일이 **없기 때문에** checkout이 그 파일을 삭제해야 하고, modified 상태면 거부된다.
|
|
@@ -254,6 +254,8 @@ Origin: #1584 #1 (v1.1.46 세션) — 이슈 생성(8/11~14)과 작업(8/15) 사
|
|
|
254
254
|
| 헤더에 릴리즈 번호를 묶고 문장에는 태그 없이 위임 | 문장마다 "(NNN)" 태그, 헤더는 태그 합집합, 항목별 CHANGELOG 원문 1줄 동봉 |
|
|
255
255
|
| 영어 위임서에 "Korean 합쇼체"만 적고 예시 없음 | 합쇼체 예시 1문장 동봉 + 인접 반말 노트 추종 금지 명시 |
|
|
256
256
|
|
|
257
|
+
**보강 2항목 (Origin: #1696 #2·#3 — v1.1.71)**: (a) 항목별 CHANGELOG 원문 1줄은 `gh issue view --json body` 출력에서 **복사**해 동봉하고, 완료 조건에 "인용문을 이슈 본문과 `grep -F`로 대조"를 넣습니다(v1.1.70 — 수기 전사로 "and marketplace" 누락). (b) "같은 계열 최신 노트 뒤에 배치·cross-ref"를 지시할 때 **참조 대상이 `<!-- RETIRED` 주석 안이면 cross-ref 대신 권고 내용을 인라인**하도록 명시합니다(v1.1.70 — R002 새 노트가 은퇴된 v2.1.210 권고를 체인으로 가리켜 visible 텍스트가 없었습니다). R010 「출처 인용과 인접 문구 점검도 같은 규율」 보강 3항목과 짝을 이룹니다.
|
|
258
|
+
|
|
257
259
|
## Post-Gate Scope-Expansion Re-Run (Origin: #1433 #2)
|
|
258
260
|
|
|
259
261
|
R017 게이트(mgr-sauron) 통과 선언 후 신규 결함 발견 등으로 스코프가 확장되면(추가 파일 편집), 커밋 전 게이트를 **최종 상태에서 재실행**한다. 게이트 통과 시점 이후의 변경은 형식적으로 미검증이므로, 확장분 미검증 커밋은 R017이 최종 산출물을 커버하지 못하게 만든다.
|
|
@@ -103,6 +103,12 @@ staleness/audit 검증은 model ID·placeholder·TBD뿐 아니라 **폐기된
|
|
|
103
103
|
| "스모크 테스트 = API 호출"로 협소 인식 → 키 불필요한 순수 문자열 조립 검증을 실서버 dispatch Tier로 미룸 | 위임 첫 프롬프트부터 "샘플 멀티라인 값으로 출력 실제 조립 후 선행 들여쓰기·형식 grep 검증"을 필수 항목으로 명시 |
|
|
104
104
|
| `textwrap.dedent(f"""...{multiline_var}...""")` 를 신뢰 | 삽입 변수가 0-indent 멀티라인이면 dedent 공통 최소 들여쓰기가 0으로 계산되어 무력화 → 리터럴 들여쓰기 잔존. dedent 제거 후 명시적 문자열 concatenation 사용 |
|
|
105
105
|
|
|
106
|
+
**키·해시 설계 위임서 — 저장소 대표 편집 픽스처 선확인 (Origin: #1691 #1, v1.1.71)**: 편집·상태를 식별하는 키나 해시의 설계를 위임할 때, 완료 조건에 **이 저장소의 대표 편집 3종**(룰 노트 삽입, 카운트 범프 `115→116`, 버전 범프 `1.1.68→1.1.69`)을 픽스처로 넣어 충돌 여부를 먼저 확인하도록 명시합니다. v1.1.68에서 `<len>#<head80>#<tail40>` 키를 확정형으로 지시했다가, 120자 초과 Write에서 중간 구간만 바뀌는 동일 길이 편집(바로 그 카운트·버전 범프)이 충돌한다는 사실을 적대적 리뷰가 실증해 코드포인트 합을 추가했습니다 — 작성 단계(Tier 1)에서 대표 입력으로 검증하면 Tier 3 비용이 들지 않습니다.
|
|
107
|
+
|
|
108
|
+
| Anti-pattern | Required |
|
|
109
|
+
|--------------|----------|
|
|
110
|
+
| 키·해시 형식을 확정형으로 지시하고 충돌 사례를 열거하지 않음 | 저장소 대표 편집 3종 픽스처로 충돌 선확인을 완료 조건에 포함 |
|
|
111
|
+
|
|
106
112
|
Origin: #1455 #1 (Session 127 회고 찐빠 #1) — cc-release-monitor PR #1449 머지 후 workflow_dispatch 실검증에서 issue_body의 `<details>`·릴리즈 요약에 12칸 리터럴 들여쓰기 발견 → PR #1451 재작업. 첫 위임이 문법 검증만 지시하고 샘플 값 출력 조립 검증을 누락. `textwrap.dedent` + 멀티라인 변수 함정이 문법 검증만으로는 미노출. R020(문법 통과 ≠ 출력 정상)과 정합.
|
|
107
113
|
|
|
108
114
|
## Delegated Verification Floor — CI 잡 목록에서 도출 (Origin: #1574)
|
package/templates/manifest.json
CHANGED