Repository navigation
Chore: 하네스 구성요소 개명·분리 — core/tripfit 구분 (#128) - #129
Merged
Merged
Conversation
파일명만 보고 역할을 알 수 있게 이름을 바꾸고, 한 파일이 여러 관심사를 담고 있던 2곳을 쪼갰다. 이름에 core-/tripfit- 구분이 생기면서 하네스를 다른 저장소로 복제할 때 무엇을 가져갈지가 파일명으로 드러난다. 규칙 (5개 → 7개) - harness-workflow.md(195줄) → core-guardrails.md(하지 말 것, STOP §1~§6) + core-workflow.md(어떤 순서로, 트랙·게이트) - harness-milestone.md → core-scope.md(프로젝트 무관 원칙) + tripfit-release.md(이 저장소 고유 사실) - harness-follow-up/workflow-tools/plain-language-reporting → core-* - STOP 절의 내용·번호·우선순위는 변경 없음. 이동·개명만 했다 스킬·훅·에이전트 - verify→preflight, refactor-audit→safe-refactor, defer-followup→defer, debug-bug→debug - 훅 접두사 규칙 도입: 차단 deny-, 경고 warn-, 자동 실행 auto- - senior-spring-backend-reviewer → spring-reviewer 함께 고친 것 - preflight의 description이 큰따옴표로 시작해 YAML이 값을 잘라먹고 있었다. 스킬 목록에 설명 대신 문서 제목이 노출돼, 에이전트가 이 스킬을 언제 불러야 하는지 판단할 근거가 없는 상태였다 - 분할하며 생긴 상호참조 오류 5건 수정 (게이트 안내가 STOP 파일을 가리키는 등) - rules/README.md에 작명 규칙 절 신설 - tripfit-release.md에서 폐지 이력 2건을 release-milestones.md로 이관 - 커밋 분할 규칙을 최대 5개·선제안으로 변경 (core-workflow.md G4) Closes #128 의 A~F 항목 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
앞 커밋의 개명을 문서 전체에 반영했다. 기계적 치환이라 리뷰할 판단은 없다.
- harness-workflow 참조 127곳은 1:1 치환이 불가능했다. 두 파일로 갈라져
STOP·레거시·마이그레이션 문맥이면 core-guardrails, 게이트·트랙·이슈 생성
승인 문맥이면 core-workflow로 문맥을 보고 나눴다
- verify는 감사·스펙 문서에 Mockito verify() 호출이 다수 있고
scripts/verify-deploy.sh도 있어, 백틱으로 감싼 형태와 경로만 바꿨다
일반 용법("검증하다")은 건드리지 않았다
- src/**/*.java diff 0줄, 깨진 상대 링크 0건 확인
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26에 폐지한 구 도메인 축 용어가 저장소 전체에 488회 남아 있었다. 폐지 사실을 반복 설명하는 문장이 규칙·스펙·스크립트에 흩어져, 읽을 때마다 "이건 지금 쓰는 건가"를 판단해야 했다. 3건만 남기고 걷어냈다. - github-bootstrap.sh: 구 라벨 4개·구 마일스톤 8줄 제거. GitHub에서 라벨은 이미 삭제됐고 마일스톤은 전부 Close라 실행이 끝난 dead code였다 (core-guardrails STOP §4). bash -n 통과 - docs/audits/doc-writing-audit.md 삭제: 감사 대상이 "잔존 488회"였고 문서 스스로 "전부 해소됐다"고 기록한 완료된 감사다. 인바운드 참조 3곳도 정리 - release-milestones.md: §0의 긴 폐지 서사와 변경 이력 표를 "축은 3개 질문뿐" 표로 압축하고 폐지 내역은 부록 목록으로만 남김. 26회 → 0회 - glossary.md 외 스펙 4개: 안내 문구·괄호·stale 참조 제거 남긴 3건: 개명 스펙 본문 2건(무엇을 바꿨는지 설명), 그리고 지금은 없어진 Java 주석을 인용한 감사 문장 1건(고치면 인용이 거짓이 된다). src/**/*.java에는 원래 한 건도 없었다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
이름은 앞 커밋들에서 이미 맞춰졌고, 수치와 구조 주장이 어긋나 있어 대조해 고쳤다. 단순 갱신만으로는 "왜 이렇게 됐는지"가 남지 않아 이번에 드러난 사건 3개를 새 절로 기록했다. 수치 정정 - always-load 규칙 5개 → 7개 (README·layer1·architecture-diagrams· harness-engineering 4곳) - 실측 크기 갱신: Java 규칙 3개 46KB → 45KB, rules/README.md 16KB → 18KB - always-load 총량 "약 42KB"는 그대로 뒀다. 파일이 5개에서 7개가 됐는데도 내용이 이동했을 뿐이라 실제로 안 변했고, 그게 아래 §4-2의 요점이다 새로 기록한 것 - layer1 §4-2: 규칙 재편의 기준과 대가. always-load 다이어트가 0.6%밖에 줄이지 못했다(추정 5%). 토큰 절감은 규칙 파일을 쪼개는 근거가 못 된다 - layer1 §4-3: 이 레이어의 새 실패 모드 — 분할하면 포인터가 어긋난다. 안내를 따라간 에이전트가 규칙이 없으면 스스로 판단해버리므로 오타보다 나쁘다. L2의 doc-reviewer가 L1의 결함을 잡은 사례이기도 하다 - layer2: description 한 줄이 곧 트리거다. preflight의 YAML이 깨져 있던 사고와, 이 실패가 에러도 로그도 없이 조용하다는 점 - layer3: 훅 작명 규칙(deny-/warn-/auto-)이 fail-closed/fail-open 비대칭을 이름에 드러낸다 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
커밋 규칙 (사용자 결정) - 최대 3개 → 목적·주제별 최대 5개 - 작업이 끝나면 사용자가 묻지 않아도 커밋 분할안을 먼저 제안한다 - 제안까지가 에이전트 몫이고, 실행은 승인 후에만. 절대 마음대로 커밋하지 않는다 - SSOT는 CONTRIBUTING.md 커밋 분할 절. 표에 "제안 시점" 행을 추가하고 금지 항목 맨 앞에 "승인 없는 커밋 실행"을 올렸다 스펙 - docs/specs/cross-cutting/harness-component-rename.md 신규 (#128) A~E 개명·분리, F always-load 다이어트, G 폐지 축 용어 제거 - specs/README.md cross-cutting 표에 등록 (8 → 9) AGENTS.md에는 커밋 규칙 외에 앞 커밋들의 개명 참조 갱신도 함께 들어 있다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
8 tasks done
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.
Summary
core-(프로젝트 무관)/tripfit-(프로젝트 고유) 접두사로 구분harness-workflow.md를 STOP 규칙(core-guardrails.md)과 진행 순서(core-workflow.md)로 분리,harness-milestone.md를 일반 원칙(core-scope.md)과 TripFit 고유 사실(tripfit-release.md)로 분리.claude/rules/README.md,settings.json,AGENTS.md,CLAUDE.md,docs/harness-engineering.md,docs/harness/layer1~3+architecture-diagrams.md,.github/CONTRIBUTING.md,deploy/environment-reference.md,scripts/github-bootstrap.sh,docs/specs/README.md)를 새 이름으로 동기화src/**/*.java변경 없음 (이름·문서만 이동, 정책·로직 불변)Related
docs/specs/cross-cutting/harness-component-rename.mdTest plan
./gradlew test./gradlew build(해당 없음 — 문서·설정 변경만)Checklist
docs/product/release-milestones.mdMilestone 확인 —출시 이후,priority: could(구조정리 성격)Breaking-Change-Reason트레일러: N/ARisk / Rollback
git revert로 충분🤖 Generated with Claude Code