diff --git "a/backlog/docs/doc-20 - GitHub-\354\233\220\352\262\251-\352\260\225\354\240\234-\354\204\244\354\240\225-\352\264\200\353\246\254-\342\200\224-rulesets\354\231\200-\354\240\200\354\236\245\354\206\214-\354\204\244\354\240\225.md" "b/backlog/docs/doc-20 - GitHub-\354\233\220\352\262\251-\352\260\225\354\240\234-\354\204\244\354\240\225-\352\264\200\353\246\254-\342\200\224-rulesets\354\231\200-\354\240\200\354\236\245\354\206\214-\354\204\244\354\240\225.md" index 05e8823..73c92c5 100644 --- "a/backlog/docs/doc-20 - GitHub-\354\233\220\352\262\251-\352\260\225\354\240\234-\354\204\244\354\240\225-\352\264\200\353\246\254-\342\200\224-rulesets\354\231\200-\354\240\200\354\236\245\354\206\214-\354\204\244\354\240\225.md" +++ "b/backlog/docs/doc-20 - GitHub-\354\233\220\352\262\251-\352\260\225\354\240\234-\354\204\244\354\240\225-\352\264\200\353\246\254-\342\200\224-rulesets\354\231\200-\354\240\200\354\236\245\354\206\214-\354\204\244\354\240\225.md" @@ -58,7 +58,7 @@ decision-24(append-only)는 **로컬 훅만으로 달성할 수 없다.** `--no- | 규칙 | 상태 | 조건 | | --- | --- | --- | | `required_signatures` | 끔 | 현재 이 저장소 커밋은 `%G?`가 `N`으로 나온다. 켜면 자기 push가 막힌다. 서명 설정(ssh-agent에 키 등록 등)을 먼저 정리한 뒤 검토 | -| `pull_request` (PR 필수) | 끔 | 로컬 claude-rails 훅이 이미 main 직접 push를 막고 있다. 이중으로 걸 가치가 있는지 판단 필요 | +| `pull_request` (PR 필수) | 끔 | 로컬 claude-code-agile-hooks 훅이 이미 main 직접 push를 막고 있다. 이중으로 걸 가치가 있는지 판단 필요 | | `required_status_checks` | 끔 | CI 통과를 병합 조건으로 강제할지. 지금은 사람이 확인하고 병합한다 | | 대상을 `~ALL`로 확대 | 끔 | 현재 `main`만 보호한다. task 브랜치까지 force push를 막으면 "push 후 rebase 금지"가 완전해지지만, 운영 부담을 먼저 판단해야 한다 | diff --git "a/backlog/docs/doc-21 - \352\260\234\353\205\220-\354\247\200\353\217\204-\342\200\224-trail\302\267provenance\302\267attestation\302\267audit\354\235\264-\354\226\264\353\224\224\354\227\220-\352\265\254\355\230\204\353\217\274-\354\236\210\353\202\230.md" "b/backlog/docs/doc-21 - \352\260\234\353\205\220-\354\247\200\353\217\204-\342\200\224-trail\302\267provenance\302\267attestation\302\267audit\354\235\264-\354\226\264\353\224\224\354\227\220-\352\265\254\355\230\204\353\217\274-\354\236\210\353\202\230.md" index a8dd7fa..68a85b5 100644 --- "a/backlog/docs/doc-21 - \352\260\234\353\205\220-\354\247\200\353\217\204-\342\200\224-trail\302\267provenance\302\267attestation\302\267audit\354\235\264-\354\226\264\353\224\224\354\227\220-\352\265\254\355\230\204\353\217\274-\354\236\210\353\202\230.md" +++ "b/backlog/docs/doc-21 - \352\260\234\353\205\220-\354\247\200\353\217\204-\342\200\224-trail\302\267provenance\302\267attestation\302\267audit\354\235\264-\354\226\264\353\224\224\354\227\220-\352\265\254\355\230\204\353\217\274-\354\236\210\353\202\230.md" @@ -37,7 +37,7 @@ git-trail이라는 이전 이름(decision-26)과 설명에 쓰는 네 용어가 **빈 곳** - 로컬에서 cherry-pick·`--amend`·squash를 막지 않는다. `is_replay_commit()`은 면제만 한다. 차단은 DRAFT-18 계획. - 재생·병합 커밋의 기록이 의도와 다르다. revert에는 트레일러가 붙지만, cherry-pick·rebase 중에는 `post-commit`의 amend가 실패해(트레이스백) 붙지 않고, `git merge`는 `post-commit`을 아예 실행하지 않아 붙지 않는다. 의도(merge·revert는 기록, 재생은 면제)는 decision-24, DRAFT-18, GF-128에서 만든다. -- 원격 보호는 이 저장소의 main 브랜치뿐이다. task 브랜치와 태그는 보호되지 않고, main 직접 push도 원격이 막지 않는다(로컬 claude-rails 훅만 막는다, DRAFT-20). 컨슈머 저장소는 각자 설정해야 한다(README, doc-20). +- 원격 보호는 이 저장소의 main 브랜치뿐이다. task 브랜치와 태그는 보호되지 않고, main 직접 push도 원격이 막지 않는다(로컬 claude-code-agile-hooks 훅만 막는다, DRAFT-20). 컨슈머 저장소는 각자 설정해야 한다(README, doc-20). - 웹 UI 커밋과 PR 머지 버튼으로 만든 머지 커밋은 훅을 거치지 않아 트레일러가 하나도 없다(DRAFT-19). ## provenance — 출처 기록 diff --git a/backlog/readme.md b/backlog/readme.md index 45f2fa1..c3c6cb4 100644 --- a/backlog/readme.md +++ b/backlog/readme.md @@ -22,4 +22,4 @@ `GF-<번호>` 패턴(`gitformat.taskPrefixDefault`)을 찾아 `Task-Id` 트레일러를 강제로 붙인다 — backlog CLI의 태스크 접두어(`GF`)와 git-format 자신의 훅 기본값이 같은 문자열을 쓰도록 우연이 아니라 의도적으로 맞춰져 있다. 다른 backlog.md -프로젝트(예: claude-rails, 접두어 `task`)를 옮겨 다닐 때 이 점이 헷갈릴 수 있다. +프로젝트(예: claude-code-agile-hooks, 접두어 `task`)를 옮겨 다닐 때 이 점이 헷갈릴 수 있다. diff --git "a/backlog/tasks/gf-144 - claude-rails-\354\226\270\352\270\211\354\235\204-claude-code-agile-hooks\353\241\234-\353\260\224\352\276\270\352\270\260.md" "b/backlog/tasks/gf-144 - claude-rails-\354\226\270\352\270\211\354\235\204-claude-code-agile-hooks\353\241\234-\353\260\224\352\276\270\352\270\260.md" new file mode 100644 index 0000000..37918d7 --- /dev/null +++ "b/backlog/tasks/gf-144 - claude-rails-\354\226\270\352\270\211\354\235\204-claude-code-agile-hooks\353\241\234-\353\260\224\352\276\270\352\270\260.md" @@ -0,0 +1,35 @@ +--- +id: GF-144 +title: claude-rails 언급을 claude-code-agile-hooks로 바꾸기 +status: Done +assignee: [] +created_date: '2026-10-05 07:49' +updated_date: '2026-10-05 11:44' +labels: + - rename +dependencies: [] +--- + +## Description + + +claude-rails 저장소의 이름이 claude-code-agile-hooks(coralstay/claude-code-agile-hooks)로 바뀐다. 계획: ~/.claude/plans/typed-chasing-conway.md + +수용 기준(승격 시 AC로 등록): +1. .claude-rails.json을 .claude-code-agile-hooks.json으로 바꾼다 (claude-code-agile-hooks가 이 파일을 먼저 읽고 옛 이름으로 fallback하므로 순서 무관) +2. README·레퍼런스 문서·코드 주석의 claude-rails 이름과 링크를 claude-code-agile-hooks / coralstay/claude-code-agile-hooks로 바꾼다. 완료 태스크·decision 기록은 그대로 둔다 +3. 테스트 게이트 통과 + + +## Acceptance Criteria + +- [x] #1 .claude-rails.json을 .claude-code-agile-hooks.json으로 바꾼다 +- [x] #2 README·레퍼런스 문서·코드 주석의 claude-rails 이름과 링크를 claude-code-agile-hooks / coralstay/claude-code-agile-hooks로 바꾼다. 완료 태스크·decision 기록은 그대로 +- [x] #3 테스트 게이트 통과 + + +## Final Summary + + +claude-rails를 claude-code-agile-hooks(coralstay/claude-code-agile-hooks)로 바꿨다. 배포된 적 없는 중간 이름을 거쳤으나 그 흔적은 모두 지웠다. 살아 있는 레퍼런스 문서 backlog/readme.md·doc-20(가이드)·doc-21(개념 지도)의 claude-rails를 claude-code-agile-hooks로 바꿨다(9e6ba79, 4a0f36e). AC#1: 이 저장소에는 .claude-rails.json이 원래 없어(doc-13 참고) 옮길 파일이 없었고, .gitignore에도 로그 디렉토리 항목이 없었다 — 새 .claude-code-agile-hooks.json은 만들지 않았다. README·hooks·install.sh·CI·tests에는 claude-rails 언급이 없었다. 남긴 것: 기록 문서 doc-11(GF-107 우회 기록)·doc-13(재설계 계획)·doc-19(실측), decision-24, draft-18·20, 다른 태스크 기록. 검증: python3 -m unittest discover -s tests → Ran 106 tests OK, ruff check hooks/ tests/ → All checks passed (bats 스위트는 decision-21로 unittest에 이관돼 없음). +