Skip to content

fix: rutter-v2 픽스처 추적 누락 수정 및 PR 테스트 워크플로 추가 - #16

Merged
jeongph merged 5 commits into
mainfrom
fix/track-docs-fixtures
Jul 29, 2026
Merged

fix: rutter-v2 픽스처 추적 누락 수정 및 PR 테스트 워크플로 추가#16
jeongph merged 5 commits into
mainfrom
fix/track-docs-fixtures

Conversation

@jeongph

@jeongph jeongph commented Jul 29, 2026

Copy link
Copy Markdown
Member

무엇을

1. 미추적 테스트 픽스처 커밋tests/fixtures/rutter-v2/docs/conventions/style.md, docs/maps/projects.md

지금까지 이 두 파일은 로컬에만 있었다. 로컬 .git/info/exclude 의 앵커 없는 docs/ 패턴이 모든 깊이의 docs 디렉터리를 가려, 형제 파일(rutter.yaml·defaults.yaml·policies/)만 커밋되고 이 둘이 빠진 것을 아무도 알아채지 못했다. 새로 클론하면 테스트 4건이 실패한다 (docs.conventions 디렉터리 'docs/conventions'이 없습니다). npm test 는 릴리스 워크플로에서만 돌기 때문에 첫 배포 시점에야 터졌을 문제다.

2. PR 테스트·타입검사 워크플로.github/workflows/test.yml

위 문제가 어떤 자동 검증에도 걸리지 않은 원인은 PR 검증이 commitlint 뿐이라는 공백이다. PR 마다 테스트를 돌려 메운다.

  • typecheck 포함tsc --noEmit 은 vitest(esbuild)·tsup 어느 쪽에서도 돌지 않아, 타입 오류는 릴리스에서조차 잡히지 않고 배포되는 상태였다
  • node 매트릭스 [20, 24] — engines 하한(>=20)과 publish.yml 이 배포에 쓰는 24 양쪽 검증
  • main push 트리거(PR 간 의미 충돌 탐지), concurrency 취소, npm 캐시

3. .gitignore.DS_Store·.claude/ 추가 — 워킹 트리에 로컬 Claude Code 산출물이 노출돼 있어 git add -A 한 번이면 공개 저장소에 올라가는 상태였다. docs 차단(#15)과 같은 계열의 유출 방지.

검증

  • 커밋된 트리(git archive)를 격리 실행: 141/141 통과, 픽스처 2개만 제거 시 4건 실패 재현
  • npm run typecheck 통과
  • 워크플로: pull_request(≠ pull_request_target) + contents: read — 포크 PR 에서 시크릿 없음, 인젝션 보간 지점 없음
  • 로컬 리뷰(code-reviewer·comment-analyzer, opus) 완료 — critical 0, important 1(typecheck 누락 → 반영), 제안 4건 반영

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
    • Improved automated CI validation for pull requests and main branch runs, including type checks and test execution across supported Node.js versions.
    • Updated the test runner to execute the CLI via the locally installed tsx binary for consistent e2e/CLI/init test behavior.
  • Documentation
    • Added coding convention guidance (including commit message standards).
    • Added a project repository overview section to the documentation fixtures.
  • Chores
    • Expanded .gitignore to exclude macOS and local session artifacts.

jeongph added 3 commits July 29, 2026 20:31
tests/fixtures/rutter-v2/ 의 docs/conventions/style.md 와
docs/maps/projects.md 가 커밋되지 않은 채 로컬에만 있었다. 로컬
.git/info/exclude 의 앵커 없는 docs/ 패턴이 모든 깊이의 docs 디렉터리를
가려서 형제 파일(rutter.yaml·defaults.yaml·policies/)만 커밋되고 이 둘이
빠진 것을 아무도 알아채지 못했다.

새로 클론하면 이 픽스처를 쓰는 테스트 4건이 실패한다
("docs.conventions 디렉터리 'docs/conventions'이 없습니다"). npm test 는
릴리스 워크플로에서만 돌기 때문에 다음 배포 시점에야 터졌을 문제다.
지금까지 npm test 는 publish.yml(릴리스 발행 시점)에서만 돌았고 PR 검증은
commitlint 뿐이라, 깨진 테스트가 배포 시점에야 발견되는 구조다 — 직전
커밋의 픽스처 누락도 이 공백 탓에 어떤 자동 검증에도 걸리지 않았다.
PR 마다 테스트를 돌려 앞당긴다.

- typecheck 는 vitest(esbuild)·tsup 어느 쪽에서도 돌지 않아 여기서만 돈다
- engines 하한(20)과 publish.yml 이 배포에 쓰는 24 를 매트릭스로 함께 검증
- main push 에도 돌려 PR 간 의미 충돌을 잡고, concurrency 로 중복 실행 취소
pilot 워킹 트리에 로컬 Claude Code 산출물(.claude/, 안에 .DS_Store 포함)이
추적되지 않은 채 노출돼 있었다. 전역 ignore 는 settings.local.json 만 막아,
git add -A 한 번이면 로컬 설정과 macOS 부산물이 공개 저장소에 올라간다.
docs 차단과 같은 계열의 로컬 산출물 유출 방지다.
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bfd3fee2-56ed-4236-92ae-123bb12009a9

📥 Commits

Reviewing files that changed from the base of the PR and between 103a079 and d161004.

📒 Files selected for processing (5)
  • .github/workflows/test.yml
  • tests/apply-cli.test.ts
  • tests/cli.test.ts
  • tests/e2e.test.ts
  • tests/init.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/test.yml

📝 Walkthrough

Walkthrough

Adds CI coverage for Node.js 20 and 24, updates an OIDC-related workflow comment, runs CLI tests through the local tsx binary, ignores local artifacts, and extends Korean fixture documentation.

Changes

Continuous integration validation

Layer / File(s) Summary
Node.js test workflow
.github/workflows/test.yml, .github/workflows/publish.yml
Adds pull request and main push validation with dependency installation, type checking, and tests across Node.js 20 and 24; updates the publish workflow’s Node.js/OIDC comment.
Local CLI test execution
tests/apply-cli.test.ts, tests/cli.test.ts, tests/e2e.test.ts, tests/init.test.ts
Replaces npx tsx invocations with direct execution of the locally installed tsx binary while preserving arguments and environment handling.

Repository hygiene and fixture documentation

Layer / File(s) Summary
Repository hygiene and fixture content
.gitignore, tests/fixtures/rutter-v2/docs/conventions/style.md, tests/fixtures/rutter-v2/docs/maps/projects.md
Ignores .DS_Store and .claude/, and adds Korean coding convention and repository map documentation.

Estimated code review effort: 2 (Simple) | ~15 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: fixing missing rutter-v2 fixture tracking and adding a PR test workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/track-docs-fixtures

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/test.yml:
- Line 25: Update the actions/checkout@v4 step in the workflow to set
persist-credentials to false, preventing the GitHub token from remaining in
local git configuration for subsequent steps.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5bda8b97-d9cd-416a-8e8c-8fe04d08d373

📥 Commits

Reviewing files that changed from the base of the PR and between d5e35d1 and 103a079.

📒 Files selected for processing (5)
  • .github/workflows/publish.yml
  • .github/workflows/test.yml
  • .gitignore
  • tests/fixtures/rutter-v2/docs/conventions/style.md
  • tests/fixtures/rutter-v2/docs/maps/projects.md

Comment thread .github/workflows/test.yml
jeongph added 2 commits July 29, 2026 20:54
테스트가 임시 디렉토리를 cwd 로 'npx tsx' 를 스폰하면 npx 가 리포의
node_modules 를 보지 못하고 매번 네트워크에서 tsx 를 받아온다. 콜드
캐시인 CI 에서 스폰마다 수 초가 붙어 vitest 5초 타임아웃을 넘겼다 —
이 PR 의 node 20 매트릭스 잡이 실제로 이렇게 실패했다. tsx 는 이미
devDependency 라 node_modules/.bin/tsx 를 직접 실행하면 결정적이고,
로컬에서도 스위트가 37초 → 19초로 줄어든다.
actions/checkout 은 기본으로 GITHUB_TOKEN 을 git config 에 기록하고, 이후
스텝의 npm ci·npm test 는 저장소가 통제하는 코드를 실행한다. 테스트에
자격증명이 필요 없으므로 persist-credentials 를 끈다 — publish.yml 이 이미
쓰는 패턴이고 CodeRabbit 지적 반영이다.
@jeongph

jeongph commented Jul 29, 2026

Copy link
Copy Markdown
Member Author

persist-credentials: false 반영했습니다 (d161004). publish.yml 이 이미 쓰는 패턴과 일치시켰습니다.

@jeongph
jeongph merged commit 6dcb78a into main Jul 29, 2026
4 checks passed
@jeongph
jeongph deleted the fix/track-docs-fixtures branch July 29, 2026 11:58
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.

1 participant