Repository navigation
feat(94): 설계 의도를 모은 LLM Wiki와 정적 검사 CI 추가 - #96
Merged
Merged
Conversation
에이전트가 작업 전에 참조할 설계 의도의 정본이 저장소 안에 없어, Notion 설계를 따라 카파시 LLM Wiki 패턴과 OKF v0.2 번들로 위키를 구축했다. 별도 저장소 대신 이 저장소 wiki/에 둔 것은 코드와 문서를 한 PR에서 함께 고쳐 어긋남을 막기 위해서이고, public 저장소라 비밀 값과 비용 수치는 쓰지 않는 규칙을 AGENTS.md에 함께 두었다. OKF는 type만 필수지만 sources와 stale_after를 처음부터 CI로 강제해, 나중에 도구를 바꿔도 출처와 신뢰 신호를 잃지 않게 했다. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
모든 문서에 3개월 stale_after를 강제하면, 코드와 어긋난 문서는 만료일까지 잡히지 않고 바뀌지 않은 문서는 주기적으로 실패한다. 게다가 PR 트리거가 wiki/ 경로로만 걸려 있어, 코드만 고친 PR에서는 검사가 아예 돌지 않았다. 그래서 저장소 안 출처가 있는 문서는 출처 파일이 문서보다 나중에 커밋됐는지로 판정하고, 커밋 없이 바뀌는 외부 사실 문서에만 stale_after를 남겼다. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
출처 변경 감지는 파일 단위로 판정해 주석 한 줄만 고쳐도 실패하고, 파일 하나가 여러 문서의 출처라 한 번에 여러 건이 함께 걸린다. 이렇게 자주 막히면 내용을 확인하지 않고 확인 기록만 추가해 통과시키게 되므로, 아직 위키를 운영해 보지 않은 시점에 강제하기에는 이르다고 판단했다. 그래서 코드 파생 문서는 같은 PR에서 함께 고치는 규칙에만 맡기고, 실제로 놓치는 사례가 생기는지 보면서 다시 정하기로 했다. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
출처 변경 감지를 뺀 뒤로는 코드 파생 문서에 신선도 신호가 하나도 남지 않아, stale_after를 모든 개념 문서에 다시 필수로 붙였다. 매주 정기 실행은 혼자 개발하는 지금 단계에서는 과하다고 보고 뺐다. 그래서 만료는 위키를 고치는 PR이나 로컬 실행에서 드러난다. 다른 기여자의 PR이 생기면 정기 검사와 자동 감지를 다시 검토한다. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
OKF 공식 저장소에 머지된 스펙 변경(PR #6)으로 모든 시각 필드가 UTC 오프셋을 명시한 ISO 8601 datetime이어야 하는데, stale_after는 날짜만 쓰고 있어 현재 v0.2 스펙에 맞지 않는다. 날짜만 쓰면 타임존마다 다른 시각을 가리켜 같은 문서가 어디서는 만료되고 어디서는 유효해지므로, 문서 값을 바꾸고 린트도 오프셋 없는 시각을 거부하게 했다. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
AGENTS.md는 검사 스크립트가 읽지 않아 고쳐도 결과가 달라지지 않고, pnpm-lock.yaml은 app이나 functions 의존성만 바꿔도 바뀌어 관계없는 PR마다 위키 검사를 돌렸다. 그래서 두 경로를 빼고, PR과 main 푸시 트리거가 같은 경로 목록을 보도록 맞췄다. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
AGENTS.md는 위키와 관계없는 작업에서도 매 세션 통째로 읽히는데, 절반 이상이 위키를 쓸 때만 필요한 frontmatter 형식과 Ingest, Query, Lint 절차였다. 그래서 항상 지킬 원칙과 이 저장소 전용 값만 남기고, OKF 작성 절차는 다른 프로젝트에서도 쓸 수 있게 개인 스킬 chucoding:okf-wiki로 옮겼다. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
코드만 읽어서는 알기 어려운 설계 의도와 제약이 PR 본문과 코드 주석에 흩어져 있어, 에이전트가 참조할 정본이 저장소 안에 없었다. Notion WIKI 설계를 따라 카파시 LLM Wiki 패턴을 OKF v0.2 번들로 구축한다. (#94)
Description
위키 위치: 이 저장소
wiki/wiki/decisions/wiki-location.md에 남겼다.위키 내용
sources로 연결했다. 문서에 적은 상수 값은 코드와 대조했다.type외에title,description,status,sources,generated,stale_after까지 필수로 둔다. 시각 값은 OKF PR #6에 맞춰 UTC 오프셋을 붙인 datetime으로 쓴다.에이전트 규칙
AGENTS.md가 정본이고CLAUDE.md는@AGENTS.md한 줄이다.AGENTS.md에는 항상 지킬 원칙과 이 저장소 전용 값만 둔다. 위키 작성 절차(frontmatter 형식, Ingest, Query, Lint)는 다른 프로젝트에서도 쓰도록 개인 스킬chucoding:okf-wiki로 분리했다.정적 검사 (
pnpm wiki:lint, CIWiki Lint)scripts/wiki-lint.mjs. 의존성은yaml하나이고 테스트 11건이 있다.status값, 행위자와 시각 형식, 사람 확인 없는stable,sources경로 존재, 깨진 링크,index.md등록 누락,log.md형식,stale_after만료wiki/**, 검사 스크립트,package.json, 워크플로 파일이 바뀐 PR과 main 푸시에서만 실행한다.검토 후 넣지 않은 것
stale_after만료를 놓치거나 형식 오류로 본다. 쓸 만한 okf-schema도 도구 전용 설정(_schema/), 한 줄 목록 변환,type변경이 필요했고index.md등록과log.md순서를 보지 않아 자체 스크립트를 유지했다.How to test
pnpm wiki:test: 11건 통과pnpm wiki:lint: 오류 0건, 경고 0건Wiki Lint: 이 PR에서 처음 실행됨Review Requirement
status: draft이고 사람 확인 기록이 없다. 내용을 확인한 문서는verified에human:chucoding을 추가하고stable로 올려야 한다.AGENTS.md가 가리키는chucoding:okf-wiki스킬은 skills 저장소에서 별도로 만드는 중이다. 그 PR이 머지되기 전까지는 아직 없는 스킬을 가리킨다.Additional Info
stale_after이슈:stale_after(and other timestamps) in ISO 8601 datetime form are rejected by S204 and silently skipped by S209 mattdav/okflint#5,stale_afteras an ISO 8601 datetime (OKF v0.2 after spec PR #6) is never reported as stale (W11) gsemet/okf-schema#37🤖 Generated with Claude Code