docs(references): 지식 거버넌스 흡수 — 멱등 쓰기·감사 모드·신선도 계약#430
Conversation
재관찰된 지식의 upsert 멱등성(의미 기준 동일성, 같은 출처 무변경, 승격/폐기 이력 재적립 금지, 사후 중복은 병합)과 지식 표면 전수 감사 9종 검사(보고→승인→일괄수정 2단계)를 wiki-growth-triage에 추가한다. 추가분이 retro/setwiki 예산을 초과해 4키를 ceiling 내에서 재조정한다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Ultraworked-With: claude-fable-5 User-Request: PR 관찰에서 검증된 지식 거버넌스 패턴을 ddalggak에 흡수 (멱등 CRUD·감사)
durable 문서의 신선도 규칙(last-verified 의미, 종류별 stale 임계, 외부 증류물 upstream identity, co-change 검사)을 신규 reference로 추가한다. retro/setwiki 예산 재소모를 피해 required_references 배선 대신 wiki-growth-triage 감사 pointer 경유 on-demand 로드로 두고, parity ledger(must-match)와 예산 exemption(cap 800)에 등록한다. 기존 문서 소급 stamping은 비범위 — 별도 기계적 rollout의 몫이다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Ultraworked-With: claude-fable-5 User-Request: 신선도 계약은 규칙만 흡수 (소급 stamping 제외)
JeremyDev87
left a comment
There was a problem hiding this comment.
REVIEW_DONE PR#430 head=06c4ab05 verdict=approve blockers=0
Review scope: 6파일 (references 2종 × 2 root, core/projections.yaml, core/token-budgets.yaml) — diff footprint가 PR body 선언 범위와 일치.
Validation evidence (독립 리뷰어 재현 실행):
npm test70/70 pass ·npm run verify:projectionspass (56 parity entries) ·npm run verify:codex-skillpass ·npm run verifypass ·ddalggak doctor0 findings ·git diff --checkclean- 양 root must-match 2종 byte-identical 실측 확인
- 토큰 실측: freshness-contract 591/cap 800 (headroom 26%) · 예산 4키 실측 14106/14500 · 13105/13500 · 12924/13500 · 13715/14000 — 전부 구예산 초과였으므로 인상 필수, ceiling 이내
Findings: Medium 1건 (inline, 비차단 — 신선도 마커 표기 포맷 미정의). Critical/High 0.
비차단 메모 / 경계 4항목
- 비차단 메모 1:
core/token-budgets.yaml:20의 "#266 recalibration" 헤더 주석은 선행 예산 변경 PR들부터 누적 부정확 (repo 기존 패턴, 이 PR 고유 결함 아님). 이 PR이 신설하는 Co-change check의 적용 사례이므로 후속에서 "Baseline: #266; individual keys adjusted by later PRs within ceilings"로 완화 권장. - 비차단 메모 2: exemption(on-demand) 분리 설계 근거 성립 확인 — 절 삽입 시 4키 추가 +~600×4 인상이 필요했고, contract의 적용 범위가 wiki-growth-triage보다 넓음.
- CI/check: head 06c4ab0 기준 7/7 terminal pass (Verify package Node 18/20/22/24, CodeQL, Analyze JS, Dependency Review, Budget isolation gate).
- Formal review/branch protection: 저자 계정 세션이므로 formal APPROVE 불가 — 본 top-level comment가 verdict 정본.
- Merge blocker: 없음 (Medium 1건은 비차단).
- Human action: draft 해제 후 manual merge는 사람 몫. merge/auto-merge는 수행하지 않음.
|
|
||
| ## Last-verified, not created | ||
|
|
||
| A freshness timestamp records when the document's claims were last verified against live state, not when the text was written. Editing prose without re-verifying claims does not refresh it. |
There was a problem hiding this comment.
[Medium] 계약이 last-verified의 의미론과 임계값은 정의하지만 표기 방법(마커 필드명·포맷·위치)과 surface가 임계값을 선언하는 메커니즘을 정의하지 않습니다. 이로 인해 wiki-growth-triage 감사 항목 7이 기계적으로 실행 불가능하고, out-of-scope로 미룬 소급 rollout도 스탬핑할 포맷이 없어 사이징이 불가합니다.
| A freshness timestamp records when the document's claims were last verified against live state, not when the text was written. Editing prose without re-verifying claims does not refresh it. | |
| A freshness timestamp records when the document's claims were last verified against live state, not when the text was written. Record it as a `Last-verified: YYYY-MM-DD (<evidence>)` line directly under the admission header; a surface declares thresholds or stricter overrides the same way (e.g. `Freshness-threshold: 90d`). Editing prose without re-verifying claims does not refresh it. |
리뷰 지적대로 last-verified 의미론만 있고 표기 포맷이 없어 감사 항목이 기계 실행 불가했다. admission header 직하의 `Last-verified: YYYY-MM-DD (<evidence>)` 라인과 `Freshness-threshold: <N>d` 선언 형식을 계약에 명시한다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Ultraworked-With: claude-fable-5 User-Request: 리뷰 suggestion 적용하고 머지 진행
|
REVIEW_DONE PR#430 head=1575cc1 verdict=approve blockers=0 fix iter1 (medium_fixed=1) 재리뷰: delta는 knowledge-freshness-contract.md 양 root 1문단(+2/-2)뿐 — scope 확장 없음, suggestion 의도(마커 필드명·위치·임계 선언 메커니즘) 충족, 양 root byte-identical 재실측, 토큰 640/cap 800, |
무엇을 (What)
지식 거버넌스 reference 2종을 추가·확장합니다.
references/wiki-growth-triage.md(양 root must-match): Idempotent knowledge writes 절(의미 기준 동일성 판정, 재관찰은 upsert·같은 출처 no-op, 승격/폐기 이력 재적립 금지, 사후 중복은 병합으로 회복)과 Knowledge audit mode 절(9종 검사, 보고 → 승인 → 일괄 수정 2단계) 추가references/knowledge-freshness-contract.md(신규, 양 root must-match): last-verified 의미론, 문서 종류별 stale 임계, 외부 증류물 upstream identity 기록, co-change 검사, 소급 적용 비범위 명시왜 (Why)
기존 wiki-growth-triage는 "중복이면 인용하라"까지만 규정하고 이미 새어 들어간 중복의 회복 절차와 내용 수준 감사 절차가 없었습니다. 또한 43개 reference에 신선도 메타데이터가 전혀 없어 durable 문서가 조용히 낡는 것을 관측할 수단이 없었습니다. 사외 공개 스펙(OKF v0.1) 기반 지식 번들 워크플로우의 현장 관찰에서 검증된 패턴을 일반화해 흡수합니다.
어떻게 (How)
must-match로 등록, 커밋 2개 직렬 구성(확장 / 신설)검증 (Validation)
npm run verify(verify-package) 통과 — token budget admission·doctor 게이트 포함npm testsmoke 70/70 통과npm run verify:projections통과 (parity ledger 56 entries)npm run verify:codex-skill통과ddalggak doctor0 findings (orphan-reference reachability 포함)git diff --checkclean제외 범위 (Out of scope)
Refs #428