배경
Orbit Dashboard에서 npx @jeremyfellaz/kratos scan .를 실행했을 때 삭제 후보 5개, unused export 165개, route entrypoint 440개가 보고되었다. 결과 자체는 유용하지만 현재 CLI 출력은 자동 정리 후보와 수동 검토 대상을 한데 묶어 조치할 항목 170개처럼 보여주고, dead export 근거가 file#export 수준에 머물며, clean dry-run도 이미 존재하는 preview excerpt 로직을 CLI에 노출하지 않는다.
이 epic은 실제 대형 Next.js repo에서 scan, clean, report 결과를 더 믿고 실행할 수 있도록 actionability, preview, evidence, write-control UX를 개선한다.
목표
Before:
- scan summary가 삭제 후보와 수동 검토 export를 같은 action bucket으로 보여준다.
- deletion candidate와 orphan file 목록이 중복 출력될 수 있다.
- route entrypoint 목록이 기본 output에서 노이즈가 된다.
- dead export finding은
file + exportName만 제공한다.
clean dry-run은 core의 clean_preview excerpt를 사용하지 않는다.
- 기본 scan output이
.kratos/latest-report.json을 생성해 checkout을 더럽힐 수 있다.
After:
- scan/report human output이 자동 조치 가능 항목과 수동 검토 대상을 분리한다.
- clean dry-run이 삭제 전 파일 excerpt, threshold skipped, unavailable target을 보여준다.
- dead export finding에 kind, reason, confidence, importer/use evidence가 포함된다.
- scan에 no-write 경로 또는 명확한 write-control 안내가 생긴다.
실행 순서
Wave 1: 동시 진행 가능
Hard blocker 없음. 단 두 issue 모두 crates/kratos-cli/tests/cli_smoke.rs assertion을 수정할 수 있어 merge 시 테스트 파일 conflict 가능성을 확인한다.
Wave 2: schema-heavy 단독 작업
Blocked by #72 권장. Hard dependency는 아니지만 report_format/fixture output 정책과 schema evidence rendering이 충돌할 수 있어 #72 merge 후 진행하는 것이 안전하다.
Wave 3: output wording 안정화 후 진행
Blocked by #72 권장. crates/kratos-core/src/report_format.rs, crates/kratos-cli/tests/cli_smoke.rs overlap 가능성이 있어 분리한다.
Sub-issues
Wave 1: 동시 진행 가능
Wave 2: 지정된 blocker 이후
Wave 3: 지정된 blocker 이후
완료 기준
병렬 실행 메모
multi-issue-executor로 Wave 1부터 실행 가능하다. Parent epic은 tracker 전용이며 코드 파일을 소유하지 않는다. Wave 2와 Wave 3는 tracker 순서가 아니라 실제 파일 overlap과 schema/output 충돌 가능성 때문에 분리한다.
배경
Orbit Dashboard에서
npx @jeremyfellaz/kratos scan .를 실행했을 때 삭제 후보 5개, unused export 165개, route entrypoint 440개가 보고되었다. 결과 자체는 유용하지만 현재 CLI 출력은 자동 정리 후보와 수동 검토 대상을 한데 묶어조치할 항목 170개처럼 보여주고, dead export 근거가file#export수준에 머물며, clean dry-run도 이미 존재하는 preview excerpt 로직을 CLI에 노출하지 않는다.이 epic은 실제 대형 Next.js repo에서
scan,clean,report결과를 더 믿고 실행할 수 있도록 actionability, preview, evidence, write-control UX를 개선한다.목표
Before:
file + exportName만 제공한다.cleandry-run은 core의clean_previewexcerpt를 사용하지 않는다..kratos/latest-report.json을 생성해 checkout을 더럽힐 수 있다.After:
실행 순서
Wave 1: 동시 진행 가능
Hard blocker 없음. 단 두 issue 모두
crates/kratos-cli/tests/cli_smoke.rsassertion을 수정할 수 있어 merge 시 테스트 파일 conflict 가능성을 확인한다.Wave 2: schema-heavy 단독 작업
Blocked by #72 권장. Hard dependency는 아니지만
report_format/fixture output 정책과 schema evidence rendering이 충돌할 수 있어 #72 merge 후 진행하는 것이 안전하다.Wave 3: output wording 안정화 후 진행
Blocked by #72 권장.
crates/kratos-core/src/report_format.rs,crates/kratos-cli/tests/cli_smoke.rsoverlap 가능성이 있어 분리한다.Sub-issues
Wave 1: 동시 진행 가능
Wave 2: 지정된 blocker 이후
crates/kratos-core/src/report_format.rs/fixture output 정책 충돌 가능)Wave 3: 지정된 blocker 이후
crates/kratos-core/src/report_format.rs,crates/kratos-cli/tests/cli_smoke.rsoverlap 가능)완료 기준
cargo test -p kratos-corecargo test -p kratos-clicargo test --workspacenpm run verifyscan,clean,report --format mdsmoke 통과병렬 실행 메모
multi-issue-executor로 Wave 1부터 실행 가능하다. Parent epic은 tracker 전용이며 코드 파일을 소유하지 않는다. Wave 2와 Wave 3는 tracker 순서가 아니라 실제 파일 overlap과 schema/output 충돌 가능성 때문에 분리한다.