Skip to content

chore: freeze v1 CLI and report contract - #96

Merged
JeremyDev87 merged 1 commit into
masterfrom
chore/91-cli-report-contract
Jul 15, 2026
Merged

JeremyDev87 merged 1 commit into
masterfrom
chore/91-cli-report-contract

Conversation

@JeremyDev87

Copy link
Copy Markdown
Owner

Closes #91

요약

  • v1 writer가 내보내는 schemaVersion: 2와 report JSON key를 private report_contract 모듈에 중앙화했습니다.
  • production 상수를 재사용하지 않는 독립 literal contract test로 top-level/container/finding/module shape를 고정했습니다.
  • scan, report, diff, clean의 출력·format·exit-code·preview/apply 계약을 문서화하고 CLI smoke를 보강했습니다.
  • version/tag/publish/release workflow는 변경하지 않았습니다.

계약 및 호환성

  • 기존 JSON key와 값은 변경하지 않고 serializer의 문자열 literal만 내부 계약 상수로 치환했습니다.
  • 모든 finding item exact key set을 검증하며, 비어 있던 unusedImports는 synthetic representative 값으로 독립 검증합니다.
  • legacy/future-compatible reader와 parity/round-trip 테스트를 유지합니다.
  • clean의 현재 v1 동작을 정확히 기록했습니다. safe는 현재 descriptive metadata이며 fail-closed/fingerprint 강화는 [v1 readiness][kratos] Clean/delete safety and false-positive fixture gate #92 범위입니다.

검증

  • cargo test --workspace — PASS
  • npm run verify — PASS (9 pass, 환경변수 미설정 native test 1 skip, pack dry-run PASS)
  • cargo clippy --workspace --all-targets — exit 0; 이번 diff 밖의 기존 경고만 존재
  • cargo test -p kratos-core --test report_v2 — 11/11 PASS
  • cargo test -p kratos-cli --test cli_smoke — 23/23 PASS
  • cargo test -p kratos-cli --test diff_cli — 3/3 PASS
  • cargo test -p kratos-cli --test clean_threshold_cli — 10/10 PASS
  • KRATOS_PACKAGE_SMOKE_NATIVE_LIB=target/release/libkratos_node.dylib node --test --test-name-pattern='packed root package boots the actual native addon' test/package-smoke.test.js — 1/1 PASS
  • rebuilt release CLI direct smoke — scan, report summary|json|md, diff summary|json|md, clean preview PASS
  • changed Rust files scoped rustfmt --check / git diff --check — PASS

독립 리뷰

  • 최종 spec review: PASS
  • 최종 code-quality review: APPROVED (Critical/Important/Minor 없음)

증거 경계

  • 공개 npm 0.3.7 addon은 이 미병합 변경을 포함하지 않습니다. 이번 PR은 버전 bump·tag·publish 범위가 아닙니다.
  • repository-wide cargo fmt --all -- --check는 이번 diff 밖의 기존 clean.rs, discover.rs, ignore.rs, clean_preview.rs formatting drift를 보고했습니다. 변경된 Rust 파일의 scoped format 검사는 통과했습니다.

Wiki Context Manifest

@JeremyDev87 JeremyDev87 added the chore Maintenance and version-only changes label Jul 15, 2026
@JeremyDev87 JeremyDev87 self-assigned this Jul 15, 2026
@JeremyDev87

Copy link
Copy Markdown
Owner Author

approve

Self-review

현재 원격 head 11ca19efcc759f6b314c93b0d87403f84bb8ac7c 기준으로 전체 diff를 재검토했습니다.

  • issue [v1 readiness][kratos] CLI/report contract freeze and schema evidence #91 범위의 7개 파일만 변경되었고 version/tag/publish/workflow 변경은 없습니다.
  • writer key는 private contract module을 사용하며 공개 Rust API를 늘리지 않습니다.
  • contract test는 production 상수와 독립된 literal 기대값으로 모든 finding/module shape를 검증합니다.
  • legacy/future-compatible reader, parity, round-trip 동작을 유지합니다.
  • clean 문서는 preview/apply 및 missing/unreadable 동작을 실제 구현과 일치하게 기록합니다.
  • 최종 spec review PASS, code-quality review APPROVED이며 Critical/Important/Minor finding이 없습니다.
  • cargo test --workspace, npm run verify, clippy, local-native packed-addon smoke, rebuilt release CLI direct smoke가 통과했습니다.

잔여 경계: 공개 npm 0.3.7은 아직 이 변경을 포함하지 않으며 version bump/tag/publish는 본 PR 범위가 아닙니다. safe fail-closed와 stale-report fingerprint는 #92에서 처리합니다.

@JeremyDev87
JeremyDev87 marked this pull request as ready for review July 15, 2026 13:01
@JeremyDev87
JeremyDev87 merged commit efcc414 into master Jul 15, 2026
10 checks passed
@JeremyDev87
JeremyDev87 deleted the chore/91-cli-report-contract branch July 15, 2026 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance and version-only changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[v1 readiness][kratos] CLI/report contract freeze and schema evidence

1 participant