Skip to content

feat(94): 설계 의도를 모은 LLM Wiki와 정적 검사 CI 추가 - #96

Merged
chucoding merged 7 commits into
mainfrom
chucoding/llm-wiki
Oct 4, 2026
Merged

chucoding merged 7 commits into
mainfrom
chucoding/llm-wiki

Conversation

@chucoding

Copy link
Copy Markdown
Owner

Purpose

코드만 읽어서는 알기 어려운 설계 의도와 제약이 PR 본문과 코드 주석에 흩어져 있어, 에이전트가 참조할 정본이 저장소 안에 없었다. Notion WIKI 설계를 따라 카파시 LLM Wiki 패턴을 OKF v0.2 번들로 구축한다. (#94)

Description

위키 위치: 이 저장소 wiki/

  • 코드와 문서를 한 PR에서 함께 고쳐 어긋남을 막고, 에이전트가 파일을 직접 읽어 MCP가 필요 없다.
  • 저장소가 public이라 비밀 값, 비용과 매출 수치, 개인정보, 운영 계정 정보는 쓰지 않는다. 근거와 다시 검토할 시점은 wiki/decisions/wiki-location.md에 남겼다.

위키 내용

  • 개념 문서 7건: 시스템 구성, Firestore 데이터 경계, 공개 AI 함수 호출 경계, 카드 생성 경로, 서버 사전 생성, 덱 문서 크기 예산, 위치 결정 기록
  • 모든 문서는 실제 코드 파일과 관련 PR을 sources로 연결했다. 문서에 적은 상수 값은 코드와 대조했다.
  • 머리말은 OKF 필수인 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, CI Wiki Lint)

  • 자체 스크립트 scripts/wiki-lint.mjs. 의존성은 yaml 하나이고 테스트 11건이 있다.
  • 검사 항목: 필수 키, status 값, 행위자와 시각 형식, 사람 확인 없는 stable, sources 경로 존재, 깨진 링크, index.md 등록 누락, log.md 형식, stale_after 만료
  • CI는 wiki/**, 검사 스크립트, package.json, 워크플로 파일이 바뀐 PR과 main 푸시에서만 실행한다.

검토 후 넣지 않은 것

  • 출처 변경 자동 감지: 파일 단위 판정이라 오탐이 잦다. 확인 없이 확인 기록만 추가하는 의례가 될 수 있어, 코드를 고치는 PR에서 위키도 함께 고치는 규칙에 맡겼다.
  • 주기 실행(schedule): 혼자 개발하는 단계에서는 과하다고 보고 뺐다. 다른 기여자의 PR이 생기면 다시 검토한다.
  • 커뮤니티 OKF 린터: okf-schema, okflint, okf-mcp, superops-team/okf를 이 위키에 직접 돌려 비교했다. 모두 datetime stale_after 만료를 놓치거나 형식 오류로 본다. 쓸 만한 okf-schema도 도구 전용 설정(_schema/), 한 줄 목록 변환, type 변경이 필요했고 index.md 등록과 log.md 순서를 보지 않아 자체 스크립트를 유지했다.
  • OpenSpec: 위키와 다른 계층이고 개발 흐름 자체를 바꾸는 일이라 #95로 분리했다.

How to test

  • pnpm wiki:test: 11건 통과
  • pnpm wiki:lint: 오류 0건, 경고 0건
  • 검사 규칙 확인: 출처 파일, 시각 형식, 필수 키를 일부러 깨뜨렸을 때 실패하는 것을 확인함
  • GitHub Actions Wiki Lint: 이 PR에서 처음 실행됨
  • vitest와 E2E: 미실행. 저장소에 vitest 환경이 없고 화면 변경이 없음

Review Requirement

  • 개념 문서 7건은 모두 status: draft이고 사람 확인 기록이 없다. 내용을 확인한 문서는 verified에 human:chucoding을 추가하고 stable로 올려야 한다.
  • AGENTS.md가 가리키는 chucoding:okf-wiki 스킬은 skills 저장소에서 별도로 만드는 중이다. 그 PR이 머지되기 전까지는 아직 없는 스킬을 가리킨다.

Additional Info

🤖 Generated with Claude Code

chucoding and others added 7 commits October 2, 2026 00:10
에이전트가 작업 전에 참조할 설계 의도의 정본이 저장소 안에 없어, 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>
@chucoding chucoding added the enhancement New feature or request label Oct 4, 2026
@chucoding chucoding self-assigned this Oct 4, 2026
@chucoding
chucoding merged commit 79225b8 into main Oct 4, 2026
1 check passed
@chucoding
chucoding deleted the chucoding/llm-wiki branch October 4, 2026 17:08
@chucoding chucoding mentioned this pull request Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant