Skip to content

docs(tracker): 「외부 도구 web_fetch_get 하나」 사본을 걷고 정본을 가리킨다 - #146

Closed
dlddu-k3s-homelab-k3s-mcp[bot] wants to merge 1 commit into
mainfrom
reconcile/rct_20260914-0002-session-platform-docs-impl
Closed

dlddu-k3s-homelab-k3s-mcp[bot] wants to merge 1 commit into
mainfrom
reconcile/rct_20260914-0002-session-platform-docs-impl

Conversation

@dlddu-k3s-homelab-k3s-mcp

Copy link
Copy Markdown
Contributor

reconciler task: rct_20260914-0002 / tbm_session-platform-docs-impl (제품 문서 ↔ 구현 정합성)
판정 기준 4(tracker 불일치) 1건. 기준 1·2·3 은 이 트리거에서 전부 깨끗하다.

무엇이 거짓이 됐나

docs/doc-tracker.md §「🟡 확인 필요한 설계 결정」의 「구현 사슬 부채 — approval-gated의 도구 표면과
프로덕션 활성화 (AC-F3·F5)」
머리 문장(56행):

세션 MCP는 이제 외부 도구 web_fetch_get 하나를 내고, tools/call이 승인 게이트웨이에 요청을 만들어
사람의 결정을 기다린 뒤 APPROVED일 때만 실제 외부 GET을 한다.

두 자리가 거짓이고, 귀속이 다르다.

자리 실측 거짓이 된 시점
「외부 도구 web_fetch_get 하나 파드 밖에 닿는 도구 2(web_fetch_get·git_clone) #140 (9a59174) — 이 PR 의 트리거
tools/call이 … APPROVED일 때만 실제 외부 GET 도구 pinggateway.await 이전에 상수로 답하고(session_mcp_tools.gocallTool), git_clone 은 GET 이 아니다 #135 (2026-09-13, ping 착지)

왜 「오늘의 값으로 갱신」이 아니라 사본 제거인가

이 항목 자신이 세운 처방이다. 같은 절의 2026-09-07 정정 괄호가 같은 형태(목록 사본)를 겪고 이렇게 적는다:

그래서 사본을 갱신하지 않고 없앴다doc-tracker.md를 읽는 CI 게이트는 이 레포에 0건이라
사본을 두는 한 같은 일이 반복된다.

변경 이력 2026-09-12 (3) 행도 자매 문서에서 같은 형태를 겪으며 **「처방은 갱신이 아니라 사본 제거다」**로
같은 방향을 재확인했다. 실측으로도 갱신은 수명이 짧다:

  • git grep -l doc-tracker -- .github scripts Makefile0 (게이트 4종 중 이 파일을 읽는 것이 없다).
  • session-mcp-tool-surface.md구현 대상 2개가 아직 등재돼 있어, 「외부 도구 둘」로 덮으면
    다음 도구가 착지하는 날 같은 자리가 또 거짓이 된다.
  • 정본은 이미 존재한다 — session-mcp-tool-surface.md §「지금 있는 것」 표. 이 문서는 그 문서를 이미
    4곳에서 가리킨다.

대체 문면도 창작하지 않았다. 성질 진술은 AC-F6 이 이미 쓰는 것을 그대로 옮겼다 —
「그 표면에서 파드 밖에 닿는 도구는 전부 AC-F3 의 승인 게이트를 지난다」(prd/approval-gated-workload.md,
어떤 도구가 어느 쪽인지의 판정은 session-mcp-tool-surface.md 의 R1·R2 가 갖는다). 그래서 도구가 더 서도
이 문장은 낡지 않는다.

바뀐 것

docs/doc-tracker.md 한 파일, 두 훅 (@@ -56 +56 @@ · @@ -141,0 +142 @@) — 직전 정정 #141 과 같은 모양.

  1. 56행 머리 문장 — 도구 목록·개수 사본을 걷고 정본 포인터 + 성질 진술로 교체. 나머지 문장은
    한 글자도 건드리지 않았다(치환은 정확히 부분 문자열 1건).
  2. 변경 이력 행 1건 추가 (2026-09-14).

코드는 한 글자도 바꾸지 않았다. 가치 6 · PRD 6 · AC 27 · 테스트 문서 6 · 여정 9 · 단계 33 · 목업 6 —
집계는 전부 불변이라 docs/index.html 도 건드리지 않았다.

실측 근거 (코드에서 재확인)

  • session_mcp_tools.go::toolDefinitions — 게이트가 설 때 3종(web_fetch_get·git_clone·ping),
    게이트가 없으면 [](빈 목록).
  • session_mcp_tools.go::callToolpinggateway.await 이전에 상수로 답한다.
  • session_mcp_git.gogit_clonegateway.await 를 지난다(호출마다 1건).
  • 파일 머리 주석이 같은 말을 이미 적는다: "web_fetch_get and git_clone behind the approval gate,
    and ping, which answers without one because it reaches nothing."

검증

게이트 4종을 내 브랜치와 pristine main(e741586) 두 지점에서 돌려 출력을 대조했다:

게이트 rc main 대비
check-fidelity-allowlist.py 0 바이트 동일
check-render-fidelity.py 0 바이트 동일
check_comment_policy.py 0 바이트 동일
e2e/check-scenario-mapping.sh 0 바이트 동일

이 슬라이스는 어느 게이트의 입력도 건드리지 않는다. ⚠️ 동시에 이것은 초록이 이 정정을 증명하지
않는다
는 뜻이기도 하다 — 어느 게이트도 doc-tracker.md 를 읽지 않으므로, 이 자리는 사람/에이전트의
재독으로만 열린다. 이 형태를 CI 로 잡는 일은 여전히 열린 자리다.

🔴 충돌 — 차등 시험 병합으로 측정했다

열린 PR 7건을 main 단독(대조군)main + 이 브랜치(실험군) 에서 각각 한 쌍씩 트라이얼 머지했다:

PR main 단독 + 이 브랜치 내가 만든 것?
#144 clean docs/doc-tracker.md 1 훅(142~146행 = 변경 이력 표 꼬리) 내가 만든 유일한 충돌
#127 ledger.md · doc-tracker.md(55~61행) · e2e.md 동일(파일 집합·훅 위치·개수 모두) ❌ 넓힌 것 0
#106 8파일(doc-tracker.md 포함) 동일 ❌ 넓힌 것 0
#143 · #142 ledger.md 동일
#145 · #130 clean clean

리베이스 규칙 (머지 순서와 무관하게 최종 상태를 고정한다)

  1. docs(AC-F6): 자격 증명 금지의 축을 「타입 전체」에서 「워크로드 파드」로 좁힌다 (등재 2번의 첫 작업) #144 와 — 변경 이력 표 꼬리: 양쪽 행을 다 살린다. 둘 다 2026-09-14 를 쓰므로,
    먼저 머지된 것이 2026-09-14, 나중 것이 2026-09-14 (2) 다(이 표의 2026-09-13 / 2026-09-13 (2) 선례).
    ⚠️ 행을 합치지 말 것 — 두 정정은 서로 다른 자리(docs(AC-F6): 자격 증명 금지의 축을 「타입 전체」에서 「워크로드 파드」로 좁힌다 (등재 2번의 첫 작업) #144 는 62행 plugin 부트스트랩 항목, 이쪽은 56행)를 만진다.
  2. feat(approval-gated): AC-F5 후반 — 공유 볼륨을 파일시스템 아카이브에 실어 동결·복원을 건너 나른다 #127 과 — 56행: 이 PR 쪽 56행을 취한다. feat(approval-gated): AC-F5 후반 — 공유 볼륨을 파일시스템 아카이브에 실어 동결·복원을 건너 나른다 #127 은 55·56행을 다시 쓰면서 거짓 문장을 글자 그대로
    통과시킨다
    (git show pr127:docs/doc-tracker.md | grep -c "외부 도구 \web_fetch_get` 하나"` → 1).
    feat(approval-gated): AC-F5 후반 — 공유 볼륨을 파일시스템 아카이브에 실어 동결·복원을 건너 나른다 #127 쪽을 취하면 거짓이 새로 서명된 채 남는다. 55행(「미검증 참조 구현 전제」)은 feat(approval-gated): AC-F5 후반 — 공유 볼륨을 파일시스템 아카이브에 실어 동결·복원을 건너 나른다 #127을 취한다
    — 그쪽이 그 줄의 소유자다. 즉 한 훅 안에서 55행은 feat(approval-gated): AC-F5 후반 — 공유 볼륨을 파일시스템 아카이브에 실어 동결·복원을 건너 나른다 #127, 56행은 이 PR.
  3. feat(approval-gated): skills-only plugin seed로 AC-F6 확정을 ①에서 ②로 뒤집는다 #106doc-tracker.md 충돌은 62행(plugin 부트스트랩 항목)이라 이 PR 과 겹치는 자리가 없다.

범위 밖 (다른 소유자가 있다)

🤖 Generated with Claude Code

`git_clone` 이 표면에 서면서(#140) 56행 머리 문장이 처음으로 거짓이 됐다. 오늘의 값으로
덮지 않고, 이 절이 2026-09-07 에 세운 처방(「사본을 갱신하지 않고 없앴다」)대로 목록·개수를
걷어 정본(`session-mcp-tool-surface.md` §「지금 있는 것」)을 가리키게 했다. 같은 문장의
「APPROVED 일 때만 실제 외부 GET」도 AC-F6 이 이미 쓰는 성질 문면으로 옮겼다(귀속 #135).

reconciler: rct_20260914-0002 / tbm_session-platform-docs-impl
@dlddu-k3s-homelab-k3s-mcp

Copy link
Copy Markdown
Contributor Author

이 PR 은 #149 로 승계한다 — 고치던 docs/doc-tracker.md#148docs/doc-tracker/(월별)로 갈리며 경로가 소멸해 delete/modify 충돌로 낡았다(reconciler rct_20260914-0002 2차 시도, 리뷰 판정 「막는 것은 준비물의 신선도뿐」). 내용은 그대로 docs/doc-tracker/2026-09.md 로 옮겼다. 브랜치는 남긴다(되돌림 = reopen).

🤖 Generated with Claude Code

dlddu-k3s-homelab-k3s-mcp Bot pushed a commit that referenced this pull request Sep 21, 2026
…월별 폴더)

rct_20260914-0002 (tbm_session-platform-docs-impl) 2차 시도. #146이 고치던
docs/doc-tracker.md 가 #148 로 docs/doc-tracker/ 로 갈리며 경로가 소멸해,
같은 두 훅(머리 문장 · 변경 이력 행)을 docs/doc-tracker/2026-09.md 로 옮겨
다시 스테이징한다. 코드 0바이트, 집계 불변.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
dlddu-k3s-homelab-k3s-mcp Bot added a commit that referenced this pull request Sep 21, 2026
…월별 폴더) (#149)

Co-authored-by: reconciler-bot <reconciler@dlddu.dev>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants