From 8a2d537cd9796eaeecd232ef0d13f5594e197f3f Mon Sep 17 00:00:00 2001 From: omit-test Date: Sun, 24 May 2026 21:32:38 +0200 Subject: [PATCH 01/18] docs(code-review): finalize pr289 signing evidence --- .../TDD_EVIDENCE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openspec/changes/code-review-12-guided-simplification-enforcement/TDD_EVIDENCE.md b/openspec/changes/code-review-12-guided-simplification-enforcement/TDD_EVIDENCE.md index 6d93fb6..70beec0 100644 --- a/openspec/changes/code-review-12-guided-simplification-enforcement/TDD_EVIDENCE.md +++ b/openspec/changes/code-review-12-guided-simplification-enforcement/TDD_EVIDENCE.md @@ -124,6 +124,6 @@ `0.47.25` for `specfact-code-review` and `0.41.16` for `specfact-project` were intermediate local refreshes produced with `hatch run sign-modules --changed-only --base-ref origin/dev --bump-version patch --allow-unsigned --payload-from-filesystem`, because no private signing key is available in the local worktree. The reviewed PR #289 head shipped `specfact-code-review` `0.47.26` and `specfact-project` `0.41.17`; the signing/publish follow-up used the same payload mode through `python scripts/sign-modules.py --changed-only --base-ref "$MERGE_BASE" --bump-version patch --payload-from-filesystem` and the publish workflow's same-version signing path. `hatch run verify-modules-signature --payload-from-filesystem --require-signature --enforce-version-bump --version-check-base origin/main` passed for that shipped head, verifying the final module manifest checksums and signatures. -This PR #289 follow-up changes the `specfact-code-review` source payload again, so the local manifest is refreshed to `0.47.27` with `hatch run sign-modules --changed-only --base-ref origin/dev --bump-version patch --allow-unsigned --payload-from-filesystem`. CI must restore the cryptographic signature with the repository private key before the follow-up lands on `main`. +This PR #289 follow-up changed the `specfact-code-review` source payload again and refreshed the manifest to `0.47.27` with `hatch run sign-modules --changed-only --base-ref origin/dev --bump-version patch --allow-unsigned --payload-from-filesystem`. The publish/sign follow-up produced `registry/modules/specfact-code-review-0.47.27.tar.gz.sha256`, `registry/signatures/specfact-code-review-0.47.27.tar.sig`, and the `registry/index.json` entry for `0.47.27`. -The `packages/specfact-code-review/module-package.yaml` `integrity.checksum` covers the canonical module source payload, while `registry/modules/specfact-code-review-0.47.26.tar.gz.sha256` covers the published tarball artifact. These digests are intentionally different; the registry sidecar matches the `0.47.26` tarball SHA256, and the manifest signature verifier validates the source-payload checksum/signature. The next publish step will produce the corresponding `0.47.27` registry artifact after signing. +The `packages/specfact-code-review/module-package.yaml` `integrity.checksum` covers the canonical module source payload, while `registry/modules/specfact-code-review-0.47.27.tar.gz.sha256` covers the published tarball artifact. These digests are intentionally different; the registry sidecar matches the `0.47.27` tarball SHA256, and the manifest signature verifier validates the source-payload checksum/signature. From cf74386acf6fbbebe14b4bfdf66c81af7c28934d Mon Sep 17 00:00:00 2001 From: omit-test Date: Sun, 24 May 2026 22:24:56 +0200 Subject: [PATCH 02/18] Add cleanup forecast code review change --- openspec/CHANGE_ORDER.md | 1 + .../.openspec.yaml | 2 + .../README.md | 3 ++ .../design.md | 37 ++++++++++++++ .../proposal.md | 48 +++++++++++++++++++ .../specs/ai-ide-remediation-handoff/spec.md | 19 ++++++++ .../specs/cleanup-forecast-review/spec.md | 40 ++++++++++++++++ .../specs/review-finding-model/spec.md | 25 ++++++++++ .../specs/review-run-command/spec.md | 26 ++++++++++ .../tasks.md | 44 +++++++++++++++++ 10 files changed, 245 insertions(+) create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/.openspec.yaml create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/README.md create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/proposal.md create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/ai-ide-remediation-handoff/spec.md create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/cleanup-forecast-review/spec.md create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-finding-model/spec.md create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-run-command/spec.md create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md diff --git a/openspec/CHANGE_ORDER.md b/openspec/CHANGE_ORDER.md index 4291b67..14e1b0c 100644 --- a/openspec/CHANGE_ORDER.md +++ b/openspec/CHANGE_ORDER.md @@ -103,6 +103,7 @@ The architecture pillar remains active because `architecture-02-well-architected | code-review + project | 03 | code-review-ai-bloat-detection | [#269](https://github.com/nold-ai/specfact-cli-modules/issues/269) | Parent Feature: [#175](https://github.com/nold-ai/specfact-cli-modules/issues/175); Epic: [#162](https://github.com/nold-ai/specfact-cli-modules/issues/162); no known blockers | | code-review + project | 04 | code-review-11-simplification-feedback-loop | [#276](https://github.com/nold-ai/specfact-cli-modules/issues/276) | Parent Feature: [#275](https://github.com/nold-ai/specfact-cli-modules/issues/275); Epic: [#162](https://github.com/nold-ai/specfact-cli-modules/issues/162); blocked by `code-review-ai-bloat-detection` / [#269](https://github.com/nold-ai/specfact-cli-modules/issues/269) | | code-review + project | 05 | code-review-12-guided-simplification-enforcement | [#286](https://github.com/nold-ai/specfact-cli-modules/issues/286) | Parent Feature: [#275](https://github.com/nold-ai/specfact-cli-modules/issues/275); Epic: [#162](https://github.com/nold-ai/specfact-cli-modules/issues/162); blocked by `code-review-11-simplification-feedback-loop` / [#276](https://github.com/nold-ai/specfact-cli-modules/issues/276) | +| code-review + project | 06 | code-review-13-cleanup-forecast-agent-handoff | [#297](https://github.com/nold-ai/specfact-cli-modules/issues/297) | Parent Feature: [#275](https://github.com/nold-ai/specfact-cli-modules/issues/275); Epic: [#162](https://github.com/nold-ai/specfact-cli-modules/issues/162); blocked by `code-review-12-guided-simplification-enforcement` / [#286](https://github.com/nold-ai/specfact-cli-modules/issues/286) | ### Documentation restructure diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/.openspec.yaml b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/.openspec.yaml new file mode 100644 index 0000000..6894814 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-05-24 diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/README.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/README.md new file mode 100644 index 0000000..90554e1 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/README.md @@ -0,0 +1,3 @@ +# code-review-13-cleanup-forecast-agent-handoff + +Cleanup forecast, AI-bloat index, remediation packets, and AI IDE handoff for code review. diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md new file mode 100644 index 0000000..aeb75da --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md @@ -0,0 +1,37 @@ +## Context + +The current simplify report already has per-finding `estimated_deletion_lines`, `guidance_kind`, `recommended_action`, `safety_checks`, and action status. That is enough for an expert to inspect individual findings, but it is not enough for a user or AI IDE to decide where to start, estimate cleanup impact, or distinguish a safe patch preview from a judgment call. + +The next layer should stay deterministic and Python-first. CPG, Joern, and polyglot clone analysis remain follow-up work. This change should improve the current runner without adding a heavy default dependency path or turning bloat advisories into proof of AI authorship. + +## Decisions + +- `cleanup_forecast` is derived from reviewed Python LOC and guided simplification metadata. It reports raw finding counts and normalized metrics so teams can compare repositories and PRs without over-weighting file size. +- Forecast weights are fixed in V1: `safe_mechanical=1.0`, `needs_tests=0.6`, `design_judgment=0.25`, and `preserve=0.0`. +- `--preview-fixes` is non-mutating. It may create temporary files or in-memory diffs, but it must not edit tracked sources. +- `--with-mutation` is explicit and valid only with `--focus simplify`. Timeouts and tool absence are inconclusive evidence, not proof that cleanup is safe. +- Preserve reasons short-circuit automatic cleanup. The closed taxonomy covers contract, public API, protocol/ABC, CLI callback, compatibility shim, explicit marker, spec/domain wrapper, and load-bearing mutation evidence. +- `remediation_packet` is the universal handoff surface. IDE prompts and skills may summarize it, but the JSON is authoritative. + +## Data Shape + +`cleanup_forecast` should include: + +- `reviewed_loc`: production, test, and total Python LOC for the reviewed file set. +- `estimated_deletion_lines`: low, expected, high, plus totals by guidance kind. +- `ai_bloat_index`: findings per KLOC, weighted bloat points per KLOC, and cleanup-yield LOC per KLOC. +- `by_guidance_kind`: counts and estimated deletion lines for each guidance kind. +- `by_action_status`: lifecycle counts when present. + +Finding additions should be optional: + +- `signal_trace`: deterministic source signals, including tool name, fired flag, score/value, evidence reference, and explanation. +- `preserve_reasons`: closed-list preserve reasons with evidence refs. +- `remediation_packet`: plain-language issue, recommended action, why it may need to stay, safety checks, validation plan, safe-to-autofix flag, and optional patch forecast refs. + +## Risks + +- **Forecasts can look like guarantees.** Mitigation: use low/expected/high ranges and label deletion estimates as non-binding until preview or mutation evidence exists. +- **Mutation can be slow or flaky.** Mitigation: keep it opt-in, candidate-scoped, and inconclusive on timeout. +- **Preserve detection can hide real bloat.** Mitigation: preserve only blocks automatic cleanup; it can still be reported as kept with rationale. +- **JSON growth can break consumers.** Mitigation: additive fields only, keep original required fields and legacy validation intact. diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/proposal.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/proposal.md new file mode 100644 index 0000000..33f6f7f --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/proposal.md @@ -0,0 +1,48 @@ +## Why + +`code-review-12-guided-simplification-enforcement` made simplify findings safer for humans and agents to interpret, but the report still does not quantify cleanup impact or package each recommendation as a portable handoff artifact. Developers need to know how much code is likely removable, how much risk each cleanup carries, and what proof an AI IDE should use before editing. + +This change turns `specfact code review run --focus simplify` into a cleanup forecast and remediation handoff loop. It keeps the current conservative guidance model, adds normalized bloat metrics, records deterministic preserve signals, and emits remediation packets that any AI IDE or LLM can consume without relying on vendor-specific prompts. + +## What Changes + +- Add a `cleanup_forecast` report summary with reviewed LOC, estimated removable LOC ranges, guidance-kind breakdowns, AI-bloat density, weighted bloat points, and cleanup-yield metrics. +- Extend findings with optional `signal_trace`, `preserve_reasons`, and `remediation_packet` fields so each cleanup recommendation carries explainable evidence and an AI-ready action contract. +- Add `--preview-fixes` for simplify-focused runs to compute non-mutating patch and numstat forecasts for supported safe-mechanical fixers. +- Add opt-in `--with-mutation` for mutation-backed proof on simplify candidates without making mutation testing part of the default review path. +- Expand preserve detection for contracts, public APIs, protocol/ABC members, Typer/Click callbacks, compatibility shims, explicit preserve markers, and load-bearing mutation evidence. +- Update modules docs, quickstart, the packaged `specfact-code-review` skill, and command-contract coverage to present the JSON report as the universal AI IDE handoff artifact. + +## Capabilities + +### New Capabilities + +- `cleanup-forecast-review`: Quantified cleanup forecasting and AI-bloat index reporting for simplify-focused review runs. +- `ai-ide-remediation-handoff`: Portable remediation packets for AI IDEs and headless agents. + +### Modified Capabilities + +- `review-finding-model`: Add optional evidence and handoff fields while preserving legacy report compatibility. +- `review-run-command`: Add non-mutating preview and opt-in mutation proof flags. +- `guided-simplification-review`: Use stronger preserve and proof signals before cleanup recommendations are applied. +- `review-cli-contracts`: Cover the new flags, invalid combinations, and JSON output shape. +- `house-rules-skill`: Teach agents to use cleanup forecasts and remediation packets. + +## Impact + +- **Affected bundle:** `packages/specfact-code-review`. +- **Affected docs:** Code Review bundle/module pages and AI bloat quickstart. +- **Affected JSON:** `.specfact/code-review-simplify.json` receives additive optional fields; existing required fields remain compatible. +- **Affected command surface:** `specfact code review run` gains `--preview-fixes` and `--with-mutation`. +- **Release impact:** `specfact-code-review` version, registry entry, and signatures must be refreshed if packaged assets or manifests change. + +## Source Tracking + + +- **Modules Epic:** [#162](https://github.com/nold-ai/specfact-cli-modules/issues/162) +- **Parent Feature:** [#275](https://github.com/nold-ai/specfact-cli-modules/issues/275) +- **GitHub Issue:** [#297](https://github.com/nold-ai/specfact-cli-modules/issues/297) +- **Repository:** nold-ai/specfact-cli-modules +- **Prior Baseline:** [#286](https://github.com/nold-ai/specfact-cli-modules/issues/286) / `code-review-12-guided-simplification-enforcement` +- **Last Synced Status:** synced +- **Sanitized:** false diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/ai-ide-remediation-handoff/spec.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/ai-ide-remediation-handoff/spec.md new file mode 100644 index 0000000..5c6ebc3 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/ai-ide-remediation-handoff/spec.md @@ -0,0 +1,19 @@ +## ADDED Requirements + +### Requirement: Review JSON is the portable AI IDE handoff contract + +The Code Review bundle SHALL expose cleanup guidance through machine-readable JSON so Claude, Codex, Cursor, Copilot, and other assistants can act without vendor-specific prompt assumptions. + +#### Scenario: Remediation packets guide AI cleanup + +- **WHEN** a simplify-focused report contains cleanup findings +- **THEN** each actionable finding SHALL include or be able to derive a remediation packet +- **AND** the packet SHALL state whether the finding may be auto-fixed, needs tests, needs design judgment, or should be preserved +- **AND** the packet SHALL include a validation plan for any accepted cleanup + +#### Scenario: AI instructions prioritize the JSON contract + +- **WHEN** `specfact code review run --instructions` is executed +- **THEN** the instructions SHALL tell assistants to generate simplify evidence first +- **AND** they SHALL tell assistants to sort findings by `guidance_kind`, inspect `cleanup_forecast`, and follow remediation packets before editing +- **AND** they SHALL prohibit treating `ai_bloat` findings as proof of AI authorship diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/cleanup-forecast-review/spec.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/cleanup-forecast-review/spec.md new file mode 100644 index 0000000..31b04e2 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/cleanup-forecast-review/spec.md @@ -0,0 +1,40 @@ +## ADDED Requirements + +### Requirement: Simplify review reports include cleanup forecasts + +Simplify-focused review reports SHALL include a cleanup forecast that quantifies likely cleanup impact without treating estimates as guaranteed deletions. + +#### Scenario: Forecast summarizes reviewed LOC and deletion estimates + +- **WHEN** `specfact code review run --focus simplify --json` emits guided simplification findings +- **THEN** the report SHALL include `cleanup_forecast.reviewed_loc` +- **AND** it SHALL include low, expected, and high estimated deletion-line totals +- **AND** it SHALL include deletion estimates grouped by `guidance_kind` +- **AND** legacy report consumers SHALL still be able to ignore the new field + +#### Scenario: Forecast exposes normalized AI-bloat index + +- **WHEN** a cleanup forecast is present +- **THEN** it SHALL include normalized metrics per KLOC for finding density, weighted bloat points, and cleanup yield +- **AND** the default weights SHALL be `safe_mechanical=1.0`, `needs_tests=0.6`, `design_judgment=0.25`, and `preserve=0.0` +- **AND** preserve findings SHALL contribute no weighted bloat points + +### Requirement: Cleanup forecasts distinguish advice from proof + +The cleanup forecast SHALL distinguish estimate-only signals from previewed or mutation-backed proof. + +#### Scenario: Preview evidence upgrades forecast confidence + +- **WHEN** `--preview-fixes` computes a patch forecast for safe-mechanical findings +- **THEN** the cleanup forecast SHALL include preview evidence for affected findings +- **AND** the preview SHALL report added, removed, and net line counts without editing tracked files + +#### Scenario: Mutation evidence is opt-in + +- **WHEN** `--with-mutation` is not provided +- **THEN** the review SHALL NOT run mutation testing +- **AND** the report SHALL NOT imply mutation-backed proof exists + +- **WHEN** `--with-mutation` is provided for simplify focus +- **THEN** mutation outcomes SHALL be recorded as evidence for candidate findings +- **AND** timeouts or unavailable mutation tooling SHALL be recorded as inconclusive rather than safe cleanup proof diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-finding-model/spec.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-finding-model/spec.md new file mode 100644 index 0000000..01db8a1 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-finding-model/spec.md @@ -0,0 +1,25 @@ +## MODIFIED Requirements + +### Requirement: ReviewFinding schema supports additive simplification metadata + +The `ReviewFinding` model SHALL accept optional simplification metadata while preserving the existing governed finding fields and category/severity validation. The report schema version SHALL advance additively when simplification metadata, guided simplification metadata, cleanup forecast metadata, or AI IDE handoff metadata is emitted. + +#### Scenario: Finding carries signal trace evidence + +- **WHEN** a `ReviewFinding` payload includes `signal_trace` +- **THEN** model validation SHALL accept deterministic signal entries with tool/source name, fired status, optional score/value, evidence references, and explanation +- **AND** legacy finding payloads without `signal_trace` SHALL remain valid + +#### Scenario: Finding carries preserve reasons + +- **WHEN** a `ReviewFinding` payload includes `preserve_reasons` +- **THEN** each reason SHALL come from a closed taxonomy of preserve contexts +- **AND** the finding SHALL NOT be considered safe for automatic cleanup while a preserve reason is present +- **AND** the preserve reason SHALL include enough evidence for a developer or AI agent to explain why cleanup was not applied + +#### Scenario: Finding carries remediation packet + +- **WHEN** a simplify-focused finding includes `remediation_packet` +- **THEN** the packet SHALL include a plain-language issue, recommended action, possible keep reason, safety checks, validation plan, and safe-to-autofix flag +- **AND** the packet MAY include patch forecast references when preview evidence exists +- **AND** AI IDE prompts and skills SHALL treat the JSON packet as authoritative over prompt prose diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-run-command/spec.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-run-command/spec.md new file mode 100644 index 0000000..4719078 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/specs/review-run-command/spec.md @@ -0,0 +1,26 @@ +## MODIFIED Requirements + +### Requirement: End-to-End `specfact code review run` in modules repo + +The `specfact-code-review` bundle SHALL provide a fully wired `specfact code review run` command that orchestrates the existing tool runners, supports scoped file selection, emits governed review reports, and provides simplify-specific cleanup forecast and handoff controls. + +#### Scenario: Run command previews simplify fixes without mutating files + +- **WHEN** `specfact code review run --focus simplify --preview-fixes --json --out ` is executed +- **THEN** the command SHALL compute preview evidence for supported safe-mechanical simplification fixers +- **AND** it SHALL write the forecast evidence to the JSON report +- **AND** it SHALL NOT edit tracked source files + +#### Scenario: Run command rejects preview and fix together + +- **WHEN** `specfact code review run --focus simplify --preview-fixes --fix` is executed +- **THEN** the command SHALL fail before review execution with a clear invalid-combination error + +#### Scenario: Run command scopes mutation proof to simplify focus + +- **WHEN** `specfact code review run --with-mutation` is executed without `--focus simplify` +- **THEN** the command SHALL fail before review execution with a clear invalid-combination error + +- **WHEN** `specfact code review run --focus simplify --with-mutation` is executed +- **THEN** the command SHALL run mutation proof only for candidate cleanup findings +- **AND** it SHALL record mutation outcomes in the report without making mutation proof part of the default review path diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md new file mode 100644 index 0000000..921fd91 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md @@ -0,0 +1,44 @@ +## 1. GitHub readiness and OpenSpec setup + +- [x] 1.1 Create OpenSpec change `code-review-13-cleanup-forecast-agent-handoff`. +- [x] 1.2 Create GitHub issue [#297](https://github.com/nold-ai/specfact-cli-modules/issues/297), link it under Feature [#275](https://github.com/nold-ai/specfact-cli-modules/issues/275), and label it with `enhancement`, `codebase`, `openspec`, and `change-proposal`. +- [x] 1.3 Confirm issue project assignment, open/Todo state, parent linkage, blocked-by relationship, source tracking, and absence of implementation concurrency. +- [x] 1.4 Add `openspec/CHANGE_ORDER.md` row as order 06, blocked by [#286](https://github.com/nold-ai/specfact-cli-modules/issues/286). +- [x] 1.5 Validate the OpenSpec change with `openspec validate code-review-13-cleanup-forecast-agent-handoff --strict`. + +## 2. Spec-first failing tests + +- [ ] 2.1 Add model tests for `cleanup_forecast`, `signal_trace`, `preserve_reasons`, and `remediation_packet` compatibility. +- [ ] 2.2 Add forecast tests for reviewed LOC, estimated deletion ranges, guidance-kind totals, and AI-bloat index weights. +- [ ] 2.3 Add preserve-detection tests for icontract, public API exports, Protocol/ABC members, Typer/Click callbacks, compatibility shims, explicit markers, and mutation load-bearing evidence. +- [ ] 2.4 Add CLI tests for `--preview-fixes`, `--with-mutation`, and invalid combinations with non-simplify focus. +- [ ] 2.5 Add command-contract and docs parity tests for new flags and report fields. +- [ ] 2.6 Record failing-before evidence in `TDD_EVIDENCE.md`. + +## 3. Review model and forecast implementation + +- [ ] 3.1 Extend `ReviewReport` with additive `cleanup_forecast` and schema version derivation. +- [ ] 3.2 Extend `ReviewFinding` with additive evidence and handoff fields. +- [ ] 3.3 Compute reviewed LOC and forecast metrics from the resolved review file set. +- [ ] 3.4 Keep scoring and merge-quality verdict behavior unchanged outside simplify-specific enforcement. + +## 4. Preview, preserve, and mutation proof + +- [ ] 4.1 Implement non-mutating patch forecast support for existing safe-mechanical simplification fixers. +- [ ] 4.2 Implement preserve-reason detection before automatic cleanup eligibility is calculated. +- [ ] 4.3 Add opt-in mutation proof scaffolding for simplify candidates, treating tool absence or timeout as inconclusive. +- [ ] 4.4 Ensure `--fix` still mutates only deterministic safe-mechanical findings and records action evidence. + +## 5. AI IDE handoff and docs + +- [ ] 5.1 Emit remediation packets suitable for Claude, Codex, Cursor, Copilot, or headless agents. +- [ ] 5.2 Update `--instructions` and packaged skill guidance to prioritize cleanup forecast and remediation packets. +- [ ] 5.3 Update modules docs and AI bloat quickstart for the new JSON-first cleanup workflow. +- [ ] 5.4 Coordinate with the paired core docs change before final wording is published. + +## 6. Packaging, signatures, and verification + +- [ ] 6.1 Bump affected module versions when packaged resources change. +- [ ] 6.2 Refresh registry metadata and module manifest integrity/signatures. +- [ ] 6.3 Re-run targeted tests and record passing evidence in `TDD_EVIDENCE.md`. +- [ ] 6.4 Run required gates for touched scope: `hatch run format`, `hatch run type-check`, `hatch run lint`, `hatch run yaml-lint`, `hatch run check-bundle-imports`, `hatch run verify-modules-signature --payload-from-filesystem --enforce-version-bump`, `hatch run contract-test`, relevant `hatch run smart-test`, relevant `hatch run test`, and `hatch run specfact code review run --bug-hunt --json --out .specfact/code-review.json --scope changed`. From 9b7ce6f429f33972392eff904132f5cff43b81ed Mon Sep 17 00:00:00 2001 From: omit-test Date: Sun, 24 May 2026 23:09:53 +0200 Subject: [PATCH 03/18] Implement cleanup forecast handoff --- docs/bundles/code-review/run.md | 16 +- docs/modules/code-review.md | 28 +- docs/quickstart-ai-bloat.md | 21 +- .../TDD_EVIDENCE.md | 55 ++++ .../tasks.md | 44 +-- .../specfact-code-review/module-package.yaml | 5 +- .../skills/specfact-code-review/SKILL.md | 13 +- .../specfact_code_review/review/commands.py | 27 +- .../src/specfact_code_review/rules/updater.py | 6 +- .../run/cleanup_evidence.py | 184 ++++++++++++ .../src/specfact_code_review/run/commands.py | 49 +++- .../src/specfact_code_review/run/findings.py | 166 ++++++++++- .../src/specfact_code_review/run/forecast.py | 123 ++++++++ .../src/specfact_code_review/run/runner.py | 268 +++++++++++++++++- packages/specfact-project/module-package.yaml | 5 +- .../resources/prompts/specfact.08-simplify.md | 12 +- registry/index.json | 12 +- .../specfact-code-review-0.47.28.tar.gz | Bin 0 -> 59486 bytes ...specfact-code-review-0.47.28.tar.gz.sha256 | 1 + .../modules/specfact-project-0.41.18.tar.gz | Bin 0 -> 363008 bytes .../specfact-project-0.41.18.tar.gz.sha256 | 1 + .../specfact-code-review-run.scenarios.yaml | 21 ++ .../review/test_commands.py | 3 + .../run/test_cleanup_evidence.py | 66 +++++ .../specfact_code_review/run/test_commands.py | 84 ++++++ .../specfact_code_review/run/test_findings.py | 125 +++++++- .../specfact_code_review/run/test_forecast.py | 57 ++++ .../specfact_code_review/run/test_runner.py | 108 ++++++- 28 files changed, 1423 insertions(+), 77 deletions(-) create mode 100644 openspec/changes/code-review-13-cleanup-forecast-agent-handoff/TDD_EVIDENCE.md create mode 100644 packages/specfact-code-review/src/specfact_code_review/run/cleanup_evidence.py create mode 100644 packages/specfact-code-review/src/specfact_code_review/run/forecast.py create mode 100644 registry/modules/specfact-code-review-0.47.28.tar.gz create mode 100644 registry/modules/specfact-code-review-0.47.28.tar.gz.sha256 create mode 100644 registry/modules/specfact-project-0.41.18.tar.gz create mode 100644 registry/modules/specfact-project-0.41.18.tar.gz.sha256 create mode 100644 tests/unit/specfact_code_review/run/test_cleanup_evidence.py create mode 100644 tests/unit/specfact_code_review/run/test_forecast.py diff --git a/docs/bundles/code-review/run.md b/docs/bundles/code-review/run.md index 6b11b39..d1d7ab4 100644 --- a/docs/bundles/code-review/run.md +++ b/docs/bundles/code-review/run.md @@ -39,6 +39,8 @@ The pipeline reviews **`.py`** and **`.pyi`** only. The **`--focus docs`** facet | `--score-only` | Print just the reward delta integer | | `--no-tests` | Skip the TDD gate | | `--fix` | Apply Ruff autofixes, then rerun the review | +| `--preview-fixes` | For **`--focus simplify`**, compute non-mutating patch evidence for supported safe-mechanical simplification fixers | +| `--with-mutation` | For **`--focus simplify`**, record opt-in mutation proof evidence for cleanup candidates; unavailable tooling is inconclusive | | `--interactive` | Prompt for scope decisions before execution | | `--instructions` | Print AI-facing simplify / clean-code workflow instructions and exit without running review | @@ -53,6 +55,9 @@ The Typer entrypoint validates **review flags** first: it raises **`typer.BadPar - **`--include-tests` with `--exclude-tests`**: pick at most one test inclusion mode. Runtime error: **`Cannot use both --include-tests and --exclude-tests`** - **`--out` without `--json`**: **`--out`** is accepted only when **`--json`** is also set. Runtime error: **`Use --out together with --json.`** - **`--json` with `--score-only`**: do not combine JSON report output with score-only mode (**`Use either --json or --score-only, not both.`**). +- **`--preview-fixes` with `--fix`**: preview is non-mutating and cannot be combined with write mode. Runtime error: **`Cannot combine --preview-fixes with --fix.`** +- **`--preview-fixes` without simplify focus**: preview evidence is scoped to cleanup findings. Runtime error: **`Use --preview-fixes only with --focus simplify.`** +- **`--with-mutation` without simplify focus**: mutation proof is scoped to cleanup candidates. Runtime error: **`Use --with-mutation only with --focus simplify.`** **Supported targeting:** either pass **positional file paths** for a fixed review set (the pipeline still only reviews Python sources it accepts, such as **`.py`** / **`.pyi`**), or omit files and use **`--scope`** / **`--path`** (and related test flags) for auto-discovery — do not mix positional paths with **`--scope`** or **`--path`**. @@ -90,13 +95,14 @@ specfact code review run --scope changed --mode shadow --json --out /tmp/review- ### `--focus` facets (repeatable) -Use **`--focus`** with **`source`**, **`tests`**, **`docs`**, and/or **`simplify`** (union of facets, then intersect with scope). Do not combine **`--focus`** with **`--include-tests`** or **`--exclude-tests`**. The **`simplify`** facet produces simplification-focused reports: advisory **`ai_bloat`** findings plus high-confidence **`dry`** and **`kiss`** findings that carry deterministic metadata such as **`rewrite_hint`**, **`canonical_pattern`**, **`intent_key`**, **`estimated_deletion_lines`**, and **`related_locations`**. Simplification-focused findings are score-neutral and non-blocking. +Use **`--focus`** with **`source`**, **`tests`**, **`docs`**, and/or **`simplify`** (union of facets, then intersect with scope). Do not combine **`--focus`** with **`--include-tests`** or **`--exclude-tests`**. The **`simplify`** facet produces simplification-focused reports: advisory **`ai_bloat`** findings plus high-confidence **`dry`** and **`kiss`** findings that carry deterministic metadata such as **`rewrite_hint`**, **`canonical_pattern`**, **`intent_key`**, **`estimated_deletion_lines`**, and **`related_locations`**. Simplification-focused JSON also includes **`cleanup_forecast`**, **`signal_trace`**, **`preserve_reasons`**, and **`remediation_packet`** fields when available. ```bash specfact code review run --scope changed --focus tests specfact code review run --scope full --path packages/specfact-code-review --focus source specfact code review run --scope full --focus docs -specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json +specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json +specfact code review run --scope changed --focus simplify --with-mutation --json --out .specfact/code-review-simplify.json ``` ### AI instructions fallback @@ -107,7 +113,7 @@ When an IDE does not support bundled prompts or skills, print the same guided si specfact code review run --instructions ``` -The output explains how to remove AI bloat and apply clean-code simplifications using SpecFact evidence, including `safe_mechanical`, `needs_tests`, `design_judgment`, and `preserve` handling, patch previews, conservative keep/skip defaults, and per-file validation. It also tells assistants how to handle clean PR branches where `--scope changed` has no worktree files: find branch-delta Python files with a base-ref diff such as `git diff --name-only ...HEAD -- '*.py' '*.pyi'`, review those files as explicit positional files, and treat findings without `guidance_kind` as unguided advisories rather than auto-fix input. +The output explains how to remove AI bloat and apply clean-code simplifications using SpecFact evidence, including `cleanup_forecast`, `safe_mechanical`, `needs_tests`, `design_judgment`, `preserve`, `remediation_packet`, patch previews, conservative keep/skip defaults, and per-file validation. It also tells assistants how to handle clean PR branches where `--scope changed` has no worktree files: find branch-delta Python files with a base-ref diff such as `git diff --name-only ...HEAD -- '*.py' '*.pyi'`, review those files as explicit positional files, and treat findings without `guidance_kind` as unguided advisories rather than auto-fix input. `ai_bloat` findings are cleanup signals, not proof of AI authorship. ### Positional files (explicit Python paths) @@ -137,10 +143,10 @@ The built-in `specfact/ai-bloat-patterns` policy pack is parallel to `specfact/c Use `--focus simplify` when producing the IDE simplification queue: ```bash -specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json +specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json ``` -Simplify-focused reports keep advisory `ai_bloat` findings plus high-confidence `dry` and `kiss` findings that include deterministic simplification metadata. Metadata fields such as `rewrite_hint`, `canonical_pattern`, `intent_key`, `estimated_deletion_lines`, and `related_locations` are additive; legacy consumers can keep reading the original finding fields. Simplification findings remain score-neutral and non-blocking. +Simplify-focused reports keep advisory `ai_bloat` findings plus high-confidence `dry` and `kiss` findings that include deterministic simplification metadata. Metadata fields such as `rewrite_hint`, `canonical_pattern`, `intent_key`, `estimated_deletion_lines`, `related_locations`, `signal_trace`, `preserve_reasons`, and `remediation_packet` are additive; legacy consumers can keep reading the original finding fields. The report-level `cleanup_forecast` summarizes reviewed LOC, estimated deletion ranges, guidance-kind totals, normalized AI-bloat density, weighted bloat points, and cleanup-yield LOC per KLOC. Simplification findings remain score-neutral; enforce mode blocks only unresolved safe-mechanical cleanup candidates. ## Related diff --git a/docs/modules/code-review.md b/docs/modules/code-review.md index efe5ad8..6693606 100644 --- a/docs/modules/code-review.md +++ b/docs/modules/code-review.md @@ -59,6 +59,11 @@ Options (aligned with `specfact code review run --help`): - `--score-only`: print only the integer `reward_delta` - `--no-tests`: skip the targeted TDD gate - `--fix`: apply Ruff autofixes and re-run the review before printing results +- `--preview-fixes`: with **`--focus simplify`**, compute non-mutating patch + evidence for supported safe-mechanical simplification fixers +- `--with-mutation`: with **`--focus simplify`**, record opt-in mutation proof + evidence for cleanup candidates; missing mutation tooling is recorded as + inconclusive - `--interactive`: ask whether changed test files should be included before auto-detected review runs - `--instructions`: print AI-facing simplify / clean-code workflow instructions @@ -75,6 +80,9 @@ The command rejects incompatible mixes (same rules as the bundle run guide): Typ - **`--include-tests` with `--exclude-tests`**: pick at most one test inclusion mode. - **`--out` without `--json`**: **`--out`** is accepted only when **`--json`** is also set. - **`--json` with `--score-only`**: pick one, not both (**`--json`** cannot be used with **`--score-only`**). +- **`--preview-fixes` with `--fix`**: preview is non-mutating and cannot be combined with write mode. +- **`--preview-fixes` without `--focus simplify`**: preview evidence is scoped to cleanup findings. +- **`--with-mutation` without `--focus simplify`**: mutation proof is scoped to cleanup candidates. When `FILES` is omitted, the command falls back to: @@ -114,7 +122,7 @@ guide (same Typer surface as this section). The review pipeline also emits `ai_bloat` findings for code shapes commonly amplified by AI-assisted generation: manual append loops, passthrough lambdas, identity `try/except`, one-call wrappers, speculative `Optional[...] = None` parameters, duplicate terminal guards, long low-branch functions, and redundant intermediates. -These findings are `severity=info`, advisory-only, and score-neutral. They are written to `.specfact/code-review.json` when the report includes all severities; for simplification queues, write `.specfact/code-review-simplify.json` with `--focus simplify` so `/specfact.08-simplify` can filter them by `category=ai_bloat` for per-change confirmed rewrites. They do not claim AI authorship; they identify simplification candidates. +These findings are `severity=info`, advisory-only, and score-neutral. They are written to `.specfact/code-review.json` when the report includes all severities; for simplification queues, write `.specfact/code-review-simplify.json` with `--focus simplify` so `/specfact.08-simplify` can filter them by `category=ai_bloat` for per-change confirmed rewrites. Simplify JSON now includes `cleanup_forecast` at report level plus per-finding `signal_trace`, `preserve_reasons`, and `remediation_packet` where available. They do not claim AI authorship; they identify simplification candidates. For the lowest-friction AI onboarding path, start with the built-in instruction printer instead of requiring a user to install IDE prompts or skills first: @@ -125,8 +133,9 @@ specfact code review run --instructions Paste that output into any AI coding assistant and ask it to simplify or remove AI bloat with SpecFact. The instructions explain the expected report file, -`guidance_kind` handling, patch-preview decision cards, conservative defaults -for `design_judgment`, and per-file validation. They also cover clean PR +`cleanup_forecast`, `guidance_kind`, `remediation_packet` handling, +patch-preview decision cards, conservative defaults for `design_judgment`, +and per-file validation. They also cover clean PR branches where `--scope changed` has no worktree files: the assistant should find branch-delta Python files with a base-ref diff such as `git diff --name-only ...HEAD -- '*.py' '*.pyi'`, review those files @@ -190,6 +199,19 @@ specfact code review run --score-only packages/specfact-code-review/src/specfact specfact code review run --fix packages/specfact-code-review/src/specfact_code_review/run/commands.py ``` +For simplify-focused cleanup, prefer a JSON-first preview loop before writing: + +```bash +specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json +``` + +Inspect `cleanup_forecast` to estimate cleanup yield and sort by +`guidance_kind`. For each finding, use `remediation_packet` as the portable AI +IDE contract. The preview evidence reports patch deltas without editing tracked +files. Use `--with-mutation` only when you explicitly want candidate-scoped +mutation evidence; missing or timed-out tooling is inconclusive, not proof that +deletion is safe. + ## Tool runners The `specfact-code-review` bundle now includes internal runners that translate tool diff --git a/docs/quickstart-ai-bloat.md b/docs/quickstart-ai-bloat.md index 50ddb77..0880a30 100644 --- a/docs/quickstart-ai-bloat.md +++ b/docs/quickstart-ai-bloat.md @@ -10,7 +10,7 @@ expertise_level: [beginner, intermediate] # AI bloat quickstart -Use the Code Review bundle to detect bloat patterns commonly produced by AI-assisted coding, then use the Project bundle's `/specfact.08-simplify` prompt to review each cleanup with confirmation. +Use the Code Review bundle to detect bloat patterns commonly produced by AI-assisted coding, estimate cleanup impact, and hand structured remediation packets to any AI IDE. The Project bundle's `/specfact.08-simplify` prompt can still drive the confirmed rewrite loop. ## 1. Install and refresh prompts @@ -20,17 +20,17 @@ specfact module install nold-ai/specfact-project specfact init ide ``` -## 2. Run review with full JSON evidence +## 2. Run simplify review with cleanup forecast evidence ```bash -specfact code review run --json --out .specfact/code-review.json +specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json ``` -Omit `--level` for this report. `--level error` intentionally filters info-level findings, including `ai_bloat`, out of the command output. +Omit `--level` for this report. `--level error` intentionally filters info-level findings, including `ai_bloat`, out of the command output. `--preview-fixes` is non-mutating: it adds patch forecast evidence without editing tracked files. ## 3. Inspect the signal -Look for findings where `category` is `ai_bloat`. They are `severity=info`, advisory-only, and score-neutral. +Look first at `cleanup_forecast`. It summarizes reviewed LOC, low/expected/high deletion estimates, guidance-kind totals, AI-bloat density, weighted bloat points, and cleanup-yield LOC per KLOC. Then inspect findings where `category` is `ai_bloat`. They are `severity=info`, advisory-only, and score-neutral. Example output from the implementation dry run for this change: the AST detector found advisory `ai_bloat` candidates across `specfact-code-review` and `specfact-project` package sources, with no automatic rewrites applied. `/specfact.08-simplify` is the human-confirmed rewrite path. @@ -38,13 +38,18 @@ Example output from the implementation dry run for this change: the AST detector { "category": "ai_bloat", "severity": "info", - "rule": "ai-bloat.identity-try-except" + "rule": "ai-bloat.identity-try-except", + "guidance_kind": "safe_mechanical", + "remediation_packet": { + "safe_to_autofix": true, + "validation_plan": ["run targeted tests", "rerun simplify review"] + } } ``` ## 4. Simplify in the IDE -Run `/specfact.08-simplify`. The prompt reads `.specfact/code-review.json`, groups findings by file and rule, and asks before applying each edit. +Run `/specfact.08-simplify` or pass `.specfact/code-review-simplify.json` to your AI IDE. The JSON is the contract: sort by `guidance_kind`, use each `remediation_packet`, preserve anything with `preserve_reasons`, and ask before editing `design_judgment` findings. Example cleanup: @@ -83,7 +88,7 @@ def double(values: list[int]) -> list[int]: ## 5. Re-run review ```bash -specfact code review run --json --out .specfact/code-review.json +specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json ``` Use the new report to confirm accepted simplifications cleared the corresponding `ai_bloat` findings. This is bloat-shape detection, not AI-authorship detection. diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/TDD_EVIDENCE.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/TDD_EVIDENCE.md new file mode 100644 index 0000000..bae7b93 --- /dev/null +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/TDD_EVIDENCE.md @@ -0,0 +1,55 @@ +# TDD Evidence: code-review-13-cleanup-forecast-agent-handoff + +## Failing-before evidence + +Command: + +```bash +hatch run pytest tests/unit/specfact_code_review/run/test_findings.py tests/unit/specfact_code_review/run/test_runner.py tests/unit/specfact_code_review/run/test_commands.py tests/unit/specfact_code_review/review/test_commands.py -q +``` + +Result before implementation: + +- Exit code: 2 +- Collection failed because `AiBloatIndex` and `_preserve_reasons_for_finding` did not exist yet. + +## Passing evidence + +Targeted implementation command: + +```bash +hatch run pytest tests/unit/specfact_code_review/run/test_cleanup_evidence.py tests/unit/specfact_code_review/run/test_forecast.py tests/unit/specfact_code_review/run/test_findings.py tests/unit/specfact_code_review/run/test_runner.py tests/unit/specfact_code_review/run/test_commands.py tests/unit/specfact_code_review/review/test_commands.py -q +``` + +Result after implementation: + +- Exit code: 0 +- 137 passed + +Docs and packaged-resource parity command: + +```bash +hatch run pytest tests/unit/docs/test_code_review_docs_parity.py tests/unit/specfact_code_review/rules/test_updater.py tests/unit/test_guided_simplify_resources.py -q +``` + +Result: + +- Exit code: 0 +- 22 passed + +Required final gates: + +- `hatch run format` — exit code 0 +- `hatch run type-check` — exit code 0 +- `hatch run lint` — exit code 0 +- `hatch run yaml-lint` — exit code 0 +- `hatch run check-bundle-imports` — exit code 0 +- `hatch run verify-modules-signature --payload-from-filesystem --enforce-version-bump` — exit code 0 +- `hatch run specfact code review run --bug-hunt --json --out .specfact/code-review.json --scope changed` — exit code 0 +- `openspec validate code-review-13-cleanup-forecast-agent-handoff --strict` — exit code 0 + +Full suite wrappers: + +- `hatch run contract-test -- tests/cli-contracts/specfact-code-review-run.scenarios.yaml` — exit code 0, 785 passed, 2 warnings +- `hatch run smart-test` — exit code 0, 785 passed, 2 warnings +- `hatch run test -- -q` — exit code 0, 785 passed, 2 warnings diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md index 921fd91..987638a 100644 --- a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/tasks.md @@ -8,37 +8,37 @@ ## 2. Spec-first failing tests -- [ ] 2.1 Add model tests for `cleanup_forecast`, `signal_trace`, `preserve_reasons`, and `remediation_packet` compatibility. -- [ ] 2.2 Add forecast tests for reviewed LOC, estimated deletion ranges, guidance-kind totals, and AI-bloat index weights. -- [ ] 2.3 Add preserve-detection tests for icontract, public API exports, Protocol/ABC members, Typer/Click callbacks, compatibility shims, explicit markers, and mutation load-bearing evidence. -- [ ] 2.4 Add CLI tests for `--preview-fixes`, `--with-mutation`, and invalid combinations with non-simplify focus. -- [ ] 2.5 Add command-contract and docs parity tests for new flags and report fields. -- [ ] 2.6 Record failing-before evidence in `TDD_EVIDENCE.md`. +- [x] 2.1 Add model tests for `cleanup_forecast`, `signal_trace`, `preserve_reasons`, and `remediation_packet` compatibility. +- [x] 2.2 Add forecast tests for reviewed LOC, estimated deletion ranges, guidance-kind totals, and AI-bloat index weights. +- [x] 2.3 Add preserve-detection tests for icontract, public API exports, Protocol/ABC members, Typer/Click callbacks, compatibility shims, explicit markers, and mutation load-bearing evidence. +- [x] 2.4 Add CLI tests for `--preview-fixes`, `--with-mutation`, and invalid combinations with non-simplify focus. +- [x] 2.5 Add command-contract and docs parity tests for new flags and report fields. +- [x] 2.6 Record failing-before evidence in `TDD_EVIDENCE.md`. ## 3. Review model and forecast implementation -- [ ] 3.1 Extend `ReviewReport` with additive `cleanup_forecast` and schema version derivation. -- [ ] 3.2 Extend `ReviewFinding` with additive evidence and handoff fields. -- [ ] 3.3 Compute reviewed LOC and forecast metrics from the resolved review file set. -- [ ] 3.4 Keep scoring and merge-quality verdict behavior unchanged outside simplify-specific enforcement. +- [x] 3.1 Extend `ReviewReport` with additive `cleanup_forecast` and schema version derivation. +- [x] 3.2 Extend `ReviewFinding` with additive evidence and handoff fields. +- [x] 3.3 Compute reviewed LOC and forecast metrics from the resolved review file set. +- [x] 3.4 Keep scoring and merge-quality verdict behavior unchanged outside simplify-specific enforcement. ## 4. Preview, preserve, and mutation proof -- [ ] 4.1 Implement non-mutating patch forecast support for existing safe-mechanical simplification fixers. -- [ ] 4.2 Implement preserve-reason detection before automatic cleanup eligibility is calculated. -- [ ] 4.3 Add opt-in mutation proof scaffolding for simplify candidates, treating tool absence or timeout as inconclusive. -- [ ] 4.4 Ensure `--fix` still mutates only deterministic safe-mechanical findings and records action evidence. +- [x] 4.1 Implement non-mutating patch forecast support for existing safe-mechanical simplification fixers. +- [x] 4.2 Implement preserve-reason detection before automatic cleanup eligibility is calculated. +- [x] 4.3 Add opt-in mutation proof scaffolding for simplify candidates, treating tool absence or timeout as inconclusive. +- [x] 4.4 Ensure `--fix` still mutates only deterministic safe-mechanical findings and records action evidence. ## 5. AI IDE handoff and docs -- [ ] 5.1 Emit remediation packets suitable for Claude, Codex, Cursor, Copilot, or headless agents. -- [ ] 5.2 Update `--instructions` and packaged skill guidance to prioritize cleanup forecast and remediation packets. -- [ ] 5.3 Update modules docs and AI bloat quickstart for the new JSON-first cleanup workflow. -- [ ] 5.4 Coordinate with the paired core docs change before final wording is published. +- [x] 5.1 Emit remediation packets suitable for Claude, Codex, Cursor, Copilot, or headless agents. +- [x] 5.2 Update `--instructions` and packaged skill guidance to prioritize cleanup forecast and remediation packets. +- [x] 5.3 Update modules docs and AI bloat quickstart for the new JSON-first cleanup workflow. +- [x] 5.4 Coordinate with the paired core docs change before final wording is published. ## 6. Packaging, signatures, and verification -- [ ] 6.1 Bump affected module versions when packaged resources change. -- [ ] 6.2 Refresh registry metadata and module manifest integrity/signatures. -- [ ] 6.3 Re-run targeted tests and record passing evidence in `TDD_EVIDENCE.md`. -- [ ] 6.4 Run required gates for touched scope: `hatch run format`, `hatch run type-check`, `hatch run lint`, `hatch run yaml-lint`, `hatch run check-bundle-imports`, `hatch run verify-modules-signature --payload-from-filesystem --enforce-version-bump`, `hatch run contract-test`, relevant `hatch run smart-test`, relevant `hatch run test`, and `hatch run specfact code review run --bug-hunt --json --out .specfact/code-review.json --scope changed`. +- [x] 6.1 Bump affected module versions when packaged resources change. +- [x] 6.2 Refresh registry metadata and module manifest integrity/signatures. +- [x] 6.3 Re-run targeted tests and record passing evidence in `TDD_EVIDENCE.md`. +- [x] 6.4 Run required gates for touched scope: `hatch run format`, `hatch run type-check`, `hatch run lint`, `hatch run yaml-lint`, `hatch run check-bundle-imports`, `hatch run verify-modules-signature --payload-from-filesystem --enforce-version-bump`, `hatch run contract-test`, relevant `hatch run smart-test`, relevant `hatch run test`, and `hatch run specfact code review run --bug-hunt --json --out .specfact/code-review.json --scope changed`. diff --git a/packages/specfact-code-review/module-package.yaml b/packages/specfact-code-review/module-package.yaml index a4f2d38..4fcadf9 100644 --- a/packages/specfact-code-review/module-package.yaml +++ b/packages/specfact-code-review/module-package.yaml @@ -1,5 +1,5 @@ name: nold-ai/specfact-code-review -version: 0.47.27 +version: 0.47.28 commands: - code tier: official @@ -23,5 +23,4 @@ description: Official SpecFact code review bundle package. category: codebase bundle_group_command: code integrity: - checksum: sha256:a86d8cfde2035059414370bdadd323dcdcf02bd5104e3b30b252bc350a96cd98 - signature: F/Ld51xKWPkQWWS8c00cs9UTbe/kJJ6chBh08sFuKTlAwpRTydf8//wLVaDuI2jt4jX0CwYaHnBqoTd0ELMLAQ== + checksum: sha256:c1abad7132fd3e97e93238d14893e6475a3c935f35cf2e46e348387a41deddb1 diff --git a/packages/specfact-code-review/src/specfact_code_review/resources/skills/specfact-code-review/SKILL.md b/packages/specfact-code-review/src/specfact_code_review/resources/skills/specfact-code-review/SKILL.md index a642508..d28ec14 100644 --- a/packages/specfact-code-review/src/specfact_code_review/resources/skills/specfact-code-review/SKILL.md +++ b/packages/specfact-code-review/src/specfact_code_review/resources/skills/specfact-code-review/SKILL.md @@ -8,9 +8,10 @@ Updated: 2026-05-22 | Module: nold-ai/specfact-code-review Use this skill as an interactive cleanup coach, not a raw lint executor. When a user says "remove AI bloat", "simplify", "apply clean code", "fix SpecFact review", or similar, run the SpecFact review workflow, explain decisions in the user's language, show exact patch previews, and validate after small changes. ## DO - Treat `specfact code review run --help` as authoritative; use `--instructions` as the fallback AI workflow when prompts/skills are unavailable -- For simplification queues, run `specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json` -- Ask for walkthrough level when interactive: vibe coder, junior developer, senior/pro, or headless agent; auto-adjust if obvious -- For vibe coders, present each finding as a decision card: plain-language issue, why it might need to stay, exact patch preview, validation plan, and recommended choice +- For simplification queues, run `specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json` +- Inspect `cleanup_forecast` first, then treat each finding's `remediation_packet` as the portable AI IDE contract +- Preserve anything with `preserve_reasons`; those reasons block automatic cleanup even when a shorter patch exists +- Ask for walkthrough level when interactive; for vibe coders, present each finding as a decision card with issue, keep reason, patch preview, validation plan, and recommendation - Interpret `guidance_kind`: `safe_mechanical` may apply after local safety checks, `needs_tests` requires tests first, `design_judgment` needs human choice with intent evidence, `preserve` means keep and log `preserve_reason` - For `design_judgment`, inspect API, callback, framework hook, adapter, public symbol, CLI boundary, compatibility shim, and readability intent; if intent is unclear, default to keep or skip - Log each simplification action as recommended, applied, kept, skipped, failed, with evidence of improvement or preserved contract @@ -22,12 +23,10 @@ Use this skill as an interactive cleanup coach, not a raw lint executor. When a - Delete unused private helpers and speculative abstractions quickly (YAGNI) - Extract repeated function shapes once the second copy appears (DRY) - Split persistence and transport concerns instead of mixing `repository.*` with `http_client.*` (SOLID) -- Add @require/@ensure (icontract) + @beartype to all new public APIs -- Run hatch run contract-test-contracts before any commit -- Write the test file BEFORE the feature file (TDD-first) +- Add @require/@ensure (icontract) + @beartype to all new public APIs; write tests before feature code ## DON'T - Don't copy prompt templates into AI IDEs when this installed skill can carry the reusable workflow guidance -- Don't treat simplification findings as AI-authorship proof or apply batch rewrites without explicit user approval +- Don't treat simplification findings as AI-authorship proof, guaranteed LOC removal, or permission for batch rewrites without explicit approval - Don't ask non-expert users to infer code intent from a raw warning; provide the evidence and safest recommendation - Don't apply `design_judgment` findings just because the patch looks shorter - Don't enable known noisy findings unless you explicitly want strict/full review output diff --git a/packages/specfact-code-review/src/specfact_code_review/review/commands.py b/packages/specfact-code-review/src/specfact_code_review/review/commands.py index c3cc721..f0b3b1e 100644 --- a/packages/specfact-code-review/src/specfact_code_review/review/commands.py +++ b/packages/specfact-code-review/src/specfact_code_review/review/commands.py @@ -31,26 +31,29 @@ Use this when the user asks to remove AI bloat, simplify code, apply clean-code patterns, reduce boilerplate, or act on SpecFact review findings. 1. Generate evidence first: - specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json + specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json If the worktree is clean on a PR branch and --scope changed finds no files, review the branch-delta Python files as explicit positional files and omit --scope. Find them with the PR base ref, for example: git diff --name-only ...HEAD -- '*.py' '*.pyi' -2. Treat guidance_kind as the action contract: +2. Inspect cleanup_forecast before editing. Use reviewed_loc, estimated_deletion_lines, ai_bloat_index, and by_guidance_kind to decide where cleanup will actually pay off. These estimates are cleanup forecasts, not guarantees. + +3. Treat guidance_kind and remediation_packet as the action contract: - safe_mechanical: apply only after local safety checks pass. - needs_tests: add or identify targeted tests before changing behavior. - design_judgment: inspect intent evidence and ask before editing. - preserve: keep by default and record preserve_reason. Findings without guidance_kind are unguided advisories: summarize them separately, do not auto-apply them, and ask before using them as refactor input. + Prefer each finding's remediation_packet over prose instructions because the JSON report is the portable AI IDE handoff contract. -3. For vibe-coder or junior users, present each finding as a decision card: +4. For vibe-coder or junior users, present each finding as a decision card: Finding, plain-language issue, why it might need to stay, exact patch preview or small before/after proposal, validation plan, recommended choice. -4. For design_judgment findings, check API, callback, framework hook, adapter, public symbol, CLI boundary, compatibility shim, and readability intent. If intent is unclear, default to keep or skip. +5. For design_judgment findings, check API, callback, framework hook, adapter, public symbol, CLI boundary, compatibility shim, and readability intent. If intent is unclear, default to keep or skip. -5. Apply one file at a time. After each accepted file or very small batch, run targeted tests or rerun: +6. Apply one file at a time. After each accepted file or very small batch, run targeted tests or rerun: specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json -6. Log every action as recommended, applied, kept, skipped, or failed with evidence. Never batch-apply design_judgment findings just because the patch is shorter. +7. Log every action as recommended, applied, kept, skipped, or failed with evidence. Never batch-apply design_judgment findings just because the patch is shorter. Never treat ai_bloat findings as proof of AI authorship; they are cleanup signals only, not proof of AI authorship. """ @@ -142,6 +145,16 @@ def run( score_only: bool = typer.Option(False, "--score-only"), no_tests: bool = typer.Option(False, "--no-tests"), fix: bool = typer.Option(False, "--fix"), + preview_fixes: bool = typer.Option( + False, + "--preview-fixes", + help="Preview supported safe-mechanical simplify fixes without editing tracked files.", + ), + with_mutation: bool = typer.Option( + False, + "--with-mutation", + help="Record opt-in mutation proof evidence for simplify cleanup candidates.", + ), interactive: bool = typer.Option(False, "--interactive"), instructions: bool = typer.Option( False, @@ -182,6 +195,8 @@ def run( score_only=score_only, no_tests=no_tests, fix=fix, + preview_fixes=preview_fixes, + with_mutation=with_mutation, ) except (ValueError, ViolationError) as exc: raise typer.BadParameter(_friendly_run_command_error(exc)) from exc diff --git a/packages/specfact-code-review/src/specfact_code_review/rules/updater.py b/packages/specfact-code-review/src/specfact_code_review/rules/updater.py index 38c36b4..e7ee03b 100644 --- a/packages/specfact-code-review/src/specfact_code_review/rules/updater.py +++ b/packages/specfact-code-review/src/specfact_code_review/rules/updater.py @@ -32,8 +32,9 @@ "- Use this skill when asked to run, interpret, or act on SpecFact code review in Codex CLI or another AI IDE", "- Treat `specfact code review run --help` as authoritative; self-heal stale options by checking help " "before changing workflow", - "- For simplification queues, run `specfact code review run --scope changed --focus simplify --json " - "--out .specfact/code-review-simplify.json`", + "- For simplification queues, run `specfact code review run --scope changed --focus simplify " + "--preview-fixes --json --out .specfact/code-review-simplify.json`", + "- Inspect `cleanup_forecast`, then follow each finding's `remediation_packet`; preserve reasons block autofix", "- Ask for walkthrough level when interactive: vibe coder, junior developer, senior/pro, or headless agent; " "auto-adjust if obvious", "- Interpret `guidance_kind`: `safe_mechanical` may apply after local safety checks, `needs_tests` requires " @@ -61,6 +62,7 @@ "- Don't copy prompt templates into AI IDEs when this installed skill can carry the reusable workflow guidance", "- Don't treat simplification findings as AI-authorship proof or apply batch rewrites without explicit " "user approval", + "- Don't treat cleanup forecasts as guaranteed LOC removal; validate previews and tests first", "- Don't enable known noisy findings unless you explicitly want strict/full review output", "- Don't use bare except: or except Exception: pass", "- Don't add # noqa / # type: ignore without inline justification", diff --git a/packages/specfact-code-review/src/specfact_code_review/run/cleanup_evidence.py b/packages/specfact-code-review/src/specfact_code_review/run/cleanup_evidence.py new file mode 100644 index 0000000..b57c2c1 --- /dev/null +++ b/packages/specfact-code-review/src/specfact_code_review/run/cleanup_evidence.py @@ -0,0 +1,184 @@ +"""Cleanup preview and mutation evidence helpers for review runs.""" + +from __future__ import annotations + +import shutil +import tempfile +from collections.abc import Callable +from pathlib import Path + +from beartype import beartype +from icontract import ensure, require + +from specfact_code_review.run.findings import ( + EvidenceRef, + RemediationPacket, + ReviewFinding, + ReviewReport, + SignalTraceEntry, +) +from specfact_code_review.run.forecast import build_cleanup_forecast + + +ApplySimplificationFixes = Callable[[ReviewReport], list[ReviewFinding]] + + +@beartype +@require(lambda files: isinstance(files, list), "files must be a list") +@ensure(lambda result: isinstance(result, ReviewReport), "result must be a review report") +def with_previewed_simplification_findings( + report: ReviewReport, + files: list[Path], + apply_simplification_fixes: ApplySimplificationFixes, +) -> ReviewReport: + previewed_findings = _preview_simplification_fixes(report, apply_simplification_fixes) + if not previewed_findings: + return with_refreshed_cleanup_forecast(report, files) + replacements = {(finding.file, finding.line, finding.rule): finding for finding in previewed_findings} + findings = [replacements.get((finding.file, finding.line, finding.rule), finding) for finding in report.findings] + return with_refreshed_cleanup_forecast(report.model_copy(update={"findings": findings}), files) + + +@beartype +@require(lambda files: isinstance(files, list), "files must be a list") +@ensure(lambda result: isinstance(result, ReviewReport), "result must be a review report") +def with_mutation_evidence(report: ReviewReport, files: list[Path]) -> ReviewReport: + findings = [_with_mutation_signal(finding) for finding in report.findings] + return with_refreshed_cleanup_forecast(report.model_copy(update={"findings": findings}), files) + + +@beartype +@require(lambda files: isinstance(files, list), "files must be a list") +@ensure(lambda result: isinstance(result, ReviewReport), "result must be a review report") +def with_refreshed_cleanup_forecast(report: ReviewReport, files: list[Path]) -> ReviewReport: + data = report.model_dump() + data["cleanup_forecast"] = build_cleanup_forecast(report.findings, files) + data["simplification_summary"] = None + return ReviewReport(**data) + + +def _preview_simplification_fixes( + report: ReviewReport, + apply_simplification_fixes: ApplySimplificationFixes, +) -> list[ReviewFinding]: + previewed: list[ReviewFinding] = [] + for finding in _fixable_simplifications_by_stable_line_order(report.findings): + preview = _preview_single_simplification(finding, apply_simplification_fixes) + if preview is not None: + previewed.append(preview) + return previewed + + +def _preview_single_simplification( + finding: ReviewFinding, + apply_simplification_fixes: ApplySimplificationFixes, +) -> ReviewFinding | None: + source_path = Path(finding.file) + try: + before = source_path.read_text(encoding="utf-8") + except OSError: + return None + with tempfile.TemporaryDirectory(prefix="specfact-review-preview-") as tmpdir: + preview_path = Path(tmpdir) / source_path.name + if not _write_preview_source(preview_path, before): + return None + preview_finding = finding.model_copy(update={"file": str(preview_path)}) + if not apply_simplification_fixes(_report_for_preview(preview_finding)): + return None + try: + after = preview_path.read_text(encoding="utf-8") + except OSError: + return None + added, removed = _line_delta(before, after) + return _with_patch_preview(finding, added=added, removed=removed) + + +def _fixable_simplifications_by_stable_line_order(findings: list[ReviewFinding]) -> list[ReviewFinding]: + return sorted( + [finding for finding in findings if finding.is_safe_mechanical_simplification()], + key=lambda finding: (finding.file, -finding.line, finding.rule), + ) + + +def _write_preview_source(path: Path, source: str) -> bool: + try: + path.write_text(source, encoding="utf-8") + except OSError: + return False + return True + + +def _report_for_preview(finding: ReviewFinding) -> ReviewReport: + return ReviewReport( + run_id="preview", + score=85, + findings=[finding], + summary="Preview simplification fix.", + ) + + +def _line_delta(before: str, after: str) -> tuple[int, int]: + before_count = len(before.splitlines()) + after_count = len(after.splitlines()) + return max(0, after_count - before_count), max(0, before_count - after_count) + + +def _with_patch_preview(finding: ReviewFinding, *, added: int, removed: int) -> ReviewFinding: + patch_ref = f"preview:{finding.file}:{finding.line}" + signal_trace = [ + *(finding.signal_trace or []), + SignalTraceEntry( + tool="specfact", + source="preview_fixes", + fired=True, + score=1.0, + value=f"added={added}; removed={removed}; net={added - removed}", + evidence_refs=[EvidenceRef(path=finding.file, start_line=finding.line)], + explanation="Non-mutating preview computed a safe-mechanical patch forecast.", + ), + ] + packet = _packet_with_patch_ref(finding, patch_ref) + return ReviewFinding(**{**finding.model_dump(), "signal_trace": signal_trace, "remediation_packet": packet}) + + +def _packet_with_patch_ref(finding: ReviewFinding, patch_ref: str) -> RemediationPacket: + if finding.remediation_packet is None: + return RemediationPacket( + issue=finding.message, + recommended_action=finding.recommended_action or "inspect", + possible_keep_reason=finding.preserve_reason, + safety_checks=finding.safety_checks or ["inspect the surrounding behavior before editing"], + validation_plan=["run targeted tests", "rerun simplify review"], + safe_to_autofix=finding.is_safe_mechanical_simplification() and finding.fixable, + patch_forecast_refs=[patch_ref], + ) + refs = list(finding.remediation_packet.patch_forecast_refs or []) + if patch_ref not in refs: + refs.append(patch_ref) + return finding.remediation_packet.model_copy(update={"patch_forecast_refs": refs}) + + +def _with_mutation_signal(finding: ReviewFinding) -> ReviewFinding: + if not finding.is_safe_mechanical_simplification(): + return finding + value = "inconclusive: mutation scaffolding only" + explanation = "Mutation tooling was available, but candidate-scoped execution is not configured yet." + if not _mutation_tool_available(): + value = "inconclusive: mutmut unavailable" + explanation = "Mutation proof was requested, but mutmut is not installed." + signal_trace = [ + *(finding.signal_trace or []), + SignalTraceEntry( + tool="mutmut", + source="mutation", + fired=False, + value=value, + evidence_refs=[EvidenceRef(path=finding.file, start_line=finding.line)], + explanation=explanation, + ), + ] + return ReviewFinding(**{**finding.model_dump(), "signal_trace": signal_trace}) + + +def _mutation_tool_available() -> bool: + return shutil.which("mutmut") is not None diff --git a/packages/specfact-code-review/src/specfact_code_review/run/commands.py b/packages/specfact-code-review/src/specfact_code_review/run/commands.py index a2b9805..02a5e8c 100644 --- a/packages/specfact-code-review/src/specfact_code_review/run/commands.py +++ b/packages/specfact-code-review/src/specfact_code_review/run/commands.py @@ -16,6 +16,10 @@ from rich.console import Console from rich.table import Table +from specfact_code_review.run.cleanup_evidence import ( + with_mutation_evidence, + with_previewed_simplification_findings, +) from specfact_code_review.run.findings import EvidenceRef, ReviewFinding, ReviewReport from specfact_code_review.run.runner import ReviewFocus, run_review @@ -63,6 +67,8 @@ class ReviewRunRequest: score_only: bool = False no_tests: bool = False fix: bool = False + preview_fixes: bool = False + with_mutation: bool = False bug_hunt: bool = False review_mode: ReviewRunMode = "enforce" review_level: ReviewLevelFilter | None = None @@ -75,6 +81,8 @@ class _ReviewLoopFlags: no_tests: bool include_noise: bool fix: bool + preview_fixes: bool + with_mutation: bool progress_callback: Callable[[str], None] | None bug_hunt: bool review_mode: ReviewRunMode @@ -321,6 +329,17 @@ def _with_applied_simplification_findings(report: ReviewReport, applied_findings return ReviewReport(**data) +def _with_simplify_enforce_verdict(report: ReviewReport, flags: _ReviewLoopFlags) -> ReviewReport: + if ( + flags.review_focus == "simplify" + and flags.review_mode == "enforce" + and report.simplification_summary is not None + and report.simplification_summary.blocking_simplification_count > 0 + ): + return report.model_copy(update={"overall_verdict": "FAIL", "ci_exit_code": 1}) + return report + + def _fixable_simplifications_by_stable_line_order(findings: list[ReviewFinding]) -> list[ReviewFinding]: indexed_findings = [ (index, finding) @@ -636,6 +655,8 @@ def _emit_progress(description: str) -> None: no_tests=flags.no_tests, include_noise=flags.include_noise, fix=flags.fix, + preview_fixes=flags.preview_fixes, + with_mutation=flags.with_mutation, progress_callback=_emit_progress, bug_hunt=flags.bug_hunt, review_mode=flags.review_mode, @@ -654,6 +675,8 @@ def _run_review_with_status( no_tests=flags.no_tests, include_noise=flags.include_noise, fix=False, + preview_fixes=False, + with_mutation=False, progress_callback=status.update, bug_hunt=flags.bug_hunt, review_mode=flags.review_mode, @@ -671,7 +694,13 @@ def _run_review_with_status( status.update("Re-running review after autofixes...") report = _run_review_once(files, base) report = _with_applied_simplification_findings(report, applied_simplification_findings) - return report + if flags.preview_fixes: + status.update("Previewing safe mechanical simplification fixes...") + report = with_previewed_simplification_findings(report, files, _apply_simplification_fixes) + if flags.with_mutation: + status.update("Recording mutation proof evidence...") + report = with_mutation_evidence(report, files) + return _with_simplify_enforce_verdict(report, flags) def _run_review_once(files: list[Path], flags: _ReviewLoopFlags) -> ReviewReport: @@ -713,7 +742,11 @@ def _run_review_once(files: list[Path], flags: _ReviewLoopFlags) -> ReviewReport focus=flags.review_focus, ) report = _with_applied_simplification_findings(report, applied_simplification_findings) - return report + if flags.preview_fixes: + report = with_previewed_simplification_findings(report, files, _apply_simplification_fixes) + if flags.with_mutation: + report = with_mutation_evidence(report, files) + return _with_simplify_enforce_verdict(report, flags) def _as_auto_scope(value: object) -> AutoScope | None: @@ -830,6 +863,8 @@ def _get_optional_param(name: str, validator: Callable[[object], object], defaul score_only=_get_bool_param("score_only"), no_tests=_get_bool_param("no_tests"), fix=_get_bool_param("fix"), + preview_fixes=_get_bool_param("preview_fixes"), + with_mutation=_get_bool_param("with_mutation"), bug_hunt=_get_bool_param("bug_hunt"), review_mode=_as_review_mode(request_kwargs.pop("review_mode", "enforce")), review_level=_as_review_level(request_kwargs.pop("review_level", None)), @@ -863,6 +898,12 @@ def _validate_review_request(request: ReviewRunRequest) -> None: raise InvalidOptionCombinationError("Use either --json or --score-only, not both.") if not request.json_output and request.out is not None: raise MissingOutForJsonError("Use --out together with --json.") + if request.preview_fixes and request.fix: + raise InvalidOptionCombinationError("Cannot combine --preview-fixes with --fix.") + if request.preview_fixes and request.review_focus != "simplify": + raise InvalidOptionCombinationError("Use --preview-fixes only with --focus simplify.") + if request.with_mutation and request.review_focus != "simplify": + raise InvalidOptionCombinationError("Use --with-mutation only with --focus simplify.") def _normalize_review_request(request: ReviewRunRequest) -> ReviewRunRequest: @@ -879,6 +920,8 @@ def _normalize_review_request(request: ReviewRunRequest) -> ReviewRunRequest: score_only=request.score_only, no_tests=request.no_tests, fix=request.fix, + preview_fixes=request.preview_fixes, + with_mutation=request.with_mutation, bug_hunt=request.bug_hunt, review_mode=request.review_mode, review_level=request.review_level, @@ -931,6 +974,8 @@ def run_command( no_tests=request.no_tests, include_noise=request.include_noise, fix=request.fix, + preview_fixes=request.preview_fixes, + with_mutation=request.with_mutation, progress_callback=None, bug_hunt=request.bug_hunt, review_mode=request.review_mode, diff --git a/packages/specfact-code-review/src/specfact_code_review/run/findings.py b/packages/specfact-code-review/src/specfact_code_review/run/findings.py index 50a00d1..c1def63 100644 --- a/packages/specfact-code-review/src/specfact_code_review/run/findings.py +++ b/packages/specfact-code-review/src/specfact_code_review/run/findings.py @@ -29,6 +29,16 @@ VALID_SEVERITIES = ("error", "warning", "info") GUIDANCE_KINDS = ("safe_mechanical", "needs_tests", "design_judgment", "preserve") ACTION_STATUSES = ("recommended", "applied", "kept", "skipped", "failed") +PRESERVE_REASONS = ( + "contract_lambda", + "protocol_member", + "public_api", + "compat_shim", + "cli_callback", + "domain_wrapper", + "spec_linked", + "load_bearing", +) PASS = "PASS" PASS_WITH_ADVISORY = "PASS_WITH_ADVISORY" FAIL = "FAIL" @@ -67,6 +77,118 @@ def _validate_invariants(self) -> EvidenceRef: return self +class SignalTraceEntry(BaseModel): + """Deterministic source signal that contributed to a cleanup finding.""" + + tool: str = Field(..., description="Tool or analysis layer that produced the signal.") + source: str = Field(..., description="Stable signal or rule source identifier.") + fired: bool = Field(..., description="Whether the signal fired for this finding.") + score: float | None = Field(default=None, description="Optional normalized signal score.") + value: str | int | float | bool | None = Field(default=None, description="Optional raw signal value.") + evidence_refs: list[EvidenceRef] | None = Field(default=None, description="Evidence backing the signal.") + explanation: str = Field(..., description="Short explanation of the signal.") + + @field_validator("tool", "source", "explanation") + @classmethod + def _validate_non_empty_text(cls, value: str) -> str: + if not value.strip(): + raise ValueError("value must not be empty") + return value + + +class PreserveReasonEvidence(BaseModel): + """Closed-taxonomy reason that prevents automatic cleanup.""" + + reason: Literal[ + "contract_lambda", + "protocol_member", + "public_api", + "compat_shim", + "cli_callback", + "domain_wrapper", + "spec_linked", + "load_bearing", + ] = Field(..., description="Closed preserve-reason taxonomy value.") + evidence_refs: list[EvidenceRef] = Field(..., min_length=1, description="Evidence for the preserve reason.") + explanation: str = Field(..., description="Why this context must be preserved.") + + @field_validator("explanation") + @classmethod + def _validate_non_empty_text(cls, value: str) -> str: + if not value.strip(): + raise ValueError("value must not be empty") + return value + + +class RemediationPacket(BaseModel): + """Portable AI IDE handoff contract for one cleanup finding.""" + + issue: str = Field(..., description="Plain-language issue description.") + recommended_action: str = Field(..., description="Recommended cleanup action.") + possible_keep_reason: str | None = Field(default=None, description="Why the code might need to stay.") + safety_checks: list[str] = Field(..., min_length=1, description="Checks required before editing.") + validation_plan: list[str] = Field(..., min_length=1, description="Validation steps after editing.") + safe_to_autofix: bool = Field(..., description="Whether an agent may apply this automatically.") + patch_forecast_refs: list[str] | None = Field(default=None, description="Patch preview references when present.") + + @field_validator("issue", "recommended_action", "possible_keep_reason") + @classmethod + def _validate_non_empty_text(cls, value: str | None) -> str | None: + if value is not None and not value.strip(): + raise ValueError("value must not be empty") + return value + + @field_validator("safety_checks", "validation_plan", "patch_forecast_refs") + @classmethod + def _validate_non_empty_entries(cls, value: list[str] | None) -> list[str] | None: + if value is not None and any(not item.strip() for item in value): + raise ValueError("entries must not be empty") + return value + + +class ReviewedLoc(BaseModel): + """Reviewed Python LOC split by production and tests.""" + + production: int = Field(..., ge=0) + tests: int = Field(..., ge=0) + total: int = Field(..., ge=0) + + +class DeletionEstimate(BaseModel): + """Non-binding deletion-line range.""" + + low: int = Field(..., ge=0) + expected: int = Field(..., ge=0) + high: int = Field(..., ge=0) + + +class AiBloatIndex(BaseModel): + """Normalized cleanup metrics per KLOC.""" + + findings_per_kloc: float = Field(..., ge=0.0) + weighted_bloat_points_per_kloc: float = Field(..., ge=0.0) + cleanup_yield_loc_per_kloc: float = Field(..., ge=0.0) + + +class GuidanceKindForecast(BaseModel): + """Forecast aggregate for one guidance kind.""" + + count: int = Field(..., ge=0) + estimated_deletion_lines: int = Field(..., ge=0) + + +class CleanupForecast(BaseModel): + """Aggregate cleanup impact forecast for simplify-focused reviews.""" + + reviewed_loc: ReviewedLoc + estimated_deletion_lines: DeletionEstimate + ai_bloat_index: AiBloatIndex + by_guidance_kind: dict[str, GuidanceKindForecast] = Field(default_factory=dict) + by_action_status: dict[str, int] = Field(default_factory=dict) + preview_evidence_count: int = Field(default=0, ge=0) + mutation_evidence_count: int = Field(default=0, ge=0) + + class ReviewFinding(BaseModel): """Structured representation of a code-review finding.""" @@ -156,6 +278,18 @@ class ReviewFinding(BaseModel): before_ref: EvidenceRef | None = Field(default=None, description="Evidence reference before an applied action.") after_ref: EvidenceRef | None = Field(default=None, description="Evidence reference after an applied action.") improvement: str | None = Field(default=None, description="Evidence-backed improvement summary.") + signal_trace: list[SignalTraceEntry] | None = Field( + default=None, + description="Optional deterministic signal trace for cleanup findings.", + ) + preserve_reasons: list[PreserveReasonEvidence] | None = Field( + default=None, + description="Optional closed-taxonomy preserve reasons that block automatic cleanup.", + ) + remediation_packet: RemediationPacket | None = Field( + default=None, + description="Optional portable cleanup handoff packet for AI IDEs.", + ) @field_validator( "tool", @@ -186,6 +320,13 @@ def _validate_safety_checks(cls, value: list[str] | None) -> list[str] | None: raise ValueError("safety_checks entries must not be empty") return value + @field_validator("signal_trace", "preserve_reasons") + @classmethod + def _validate_non_empty_evidence_list(cls, value: list[object] | None) -> list[object] | None: + if value is not None and not value: + raise ValueError("evidence lists must not be empty when provided") + return value + @model_validator(mode="after") def _validate_guided_metadata(self) -> ReviewFinding: guided_fields = ( @@ -238,6 +379,9 @@ def has_simplification_metadata(self) -> bool: self.before_ref, self.after_ref, self.improvement, + self.signal_trace, + self.preserve_reasons, + self.remediation_packet, ) ) @@ -251,7 +395,17 @@ def has_guided_simplification_metadata(self) -> bool: @ensure(lambda result: isinstance(result, bool)) def is_safe_mechanical_simplification(self) -> bool: """Return whether the finding is an unresolved safe mechanical simplification.""" - return self.guidance_kind == "safe_mechanical" and self.action_status in {None, "recommended", "failed"} + return ( + self.guidance_kind == "safe_mechanical" + and self.action_status in {None, "recommended", "failed"} + and not self.preserve_reasons + ) + + @beartype + @ensure(lambda result: isinstance(result, bool)) + def has_cleanup_handoff_metadata(self) -> bool: + """Return whether this finding carries cleanup forecast or handoff metadata.""" + return self.signal_trace is not None or self.preserve_reasons is not None or self.remediation_packet is not None @beartype @ensure(lambda result: isinstance(result, bool)) @@ -302,6 +456,10 @@ class ReviewReport(BaseModel): default=None, description="Aggregate simplification guidance and action-status evidence.", ) + cleanup_forecast: CleanupForecast | None = Field( + default=None, + description="Aggregate cleanup forecast for simplify-focused review runs.", + ) house_rules_updates: list[str] = Field(default_factory=list, description="Suggested house-rules updates.") @field_validator("schema_version", "run_id", "summary") @@ -322,7 +480,11 @@ def _normalize_timestamp(cls, value: datetime) -> datetime: def _derive_governance_fields(self) -> ReviewReport: if self.simplification_summary is None: self.simplification_summary = _build_simplification_summary(self.findings) - if self.simplification_summary is not None: + if self.cleanup_forecast is not None or any( + finding.has_cleanup_handoff_metadata() for finding in self.findings + ): + self.schema_version = "1.3" + elif self.simplification_summary is not None: self.schema_version = "1.2" elif any(finding.has_simplification_metadata() for finding in self.findings): self.schema_version = "1.1" diff --git a/packages/specfact-code-review/src/specfact_code_review/run/forecast.py b/packages/specfact-code-review/src/specfact_code_review/run/forecast.py new file mode 100644 index 0000000..101be21 --- /dev/null +++ b/packages/specfact-code-review/src/specfact_code_review/run/forecast.py @@ -0,0 +1,123 @@ +"""Cleanup forecast metrics for simplify-focused review reports.""" + +from __future__ import annotations + +from dataclasses import dataclass +from pathlib import Path + +from beartype import beartype +from icontract import ensure, require + +from specfact_code_review.run.findings import ( + AiBloatIndex, + CleanupForecast, + DeletionEstimate, + GuidanceKindForecast, + ReviewedLoc, + ReviewFinding, +) + + +_CLEANUP_FORECAST_WEIGHTS = { + "safe_mechanical": 1.0, + "needs_tests": 0.6, + "design_judgment": 0.25, + "preserve": 0.0, +} + + +@dataclass +class _CleanupForecastTotals: + by_guidance_kind: dict[str, GuidanceKindForecast] + by_action_status: dict[str, int] + low: int = 0 + expected: float = 0.0 + high: int = 0 + weighted_points: float = 0.0 + + @property + def _expected_lines(self) -> int: + return round(self.expected) + + +@beartype +@require(lambda files: isinstance(files, list), "files must be a list") +@require(lambda findings: isinstance(findings, list), "findings must be a list") +@ensure(lambda result: isinstance(result, CleanupForecast), "result must be a cleanup forecast") +def build_cleanup_forecast(findings: list[ReviewFinding], files: list[Path]) -> CleanupForecast: + reviewed_loc = _reviewed_loc_for_files(files) + guided = [finding for finding in findings if finding.guidance_kind is not None] + totals = _cleanup_forecast_totals(guided) + kloc = max(reviewed_loc.total / 1000.0, 0.001) + return CleanupForecast( + reviewed_loc=reviewed_loc, + estimated_deletion_lines=DeletionEstimate(low=totals.low, expected=totals._expected_lines, high=totals.high), + ai_bloat_index=AiBloatIndex( + findings_per_kloc=round(len(guided) / kloc, 3), + weighted_bloat_points_per_kloc=round(totals.weighted_points / kloc, 3), + cleanup_yield_loc_per_kloc=round(totals._expected_lines / kloc, 3), + ), + by_guidance_kind=totals.by_guidance_kind, + by_action_status=totals.by_action_status, + preview_evidence_count=sum( + 1 + for finding in guided + if finding.remediation_packet is not None and finding.remediation_packet.patch_forecast_refs + ), + mutation_evidence_count=sum( + 1 + for finding in guided + if finding.signal_trace is not None and any(signal.source == "mutation" for signal in finding.signal_trace) + ), + ) + + +def _reviewed_loc_for_files(files: list[Path]) -> ReviewedLoc: + production = 0 + tests = 0 + for file_path in files: + if file_path.suffix not in {".py", ".pyi"}: + continue + try: + loc = _count_python_loc(file_path) + except OSError: + continue + if "tests" in file_path.parts: + tests += loc + else: + production += loc + return ReviewedLoc(production=production, tests=tests, total=production + tests) + + +def _count_python_loc(file_path: Path) -> int: + return sum( + 1 + for line in file_path.read_text(encoding="utf-8").splitlines() + if line.strip() and not line.lstrip().startswith("#") + ) + + +def _cleanup_forecast_totals(guided: list[ReviewFinding]) -> _CleanupForecastTotals: + totals = _CleanupForecastTotals(by_guidance_kind={}, by_action_status={}) + for finding in guided: + _add_cleanup_forecast_finding(totals, finding) + return totals + + +def _add_cleanup_forecast_finding(totals: _CleanupForecastTotals, finding: ReviewFinding) -> None: + guidance_kind = finding.guidance_kind or "design_judgment" + deletion_lines = finding.estimated_deletion_lines or 0 + current = totals.by_guidance_kind.get(guidance_kind, GuidanceKindForecast(count=0, estimated_deletion_lines=0)) + totals.by_guidance_kind[guidance_kind] = GuidanceKindForecast( + count=current.count + 1, + estimated_deletion_lines=current.estimated_deletion_lines + deletion_lines, + ) + if finding.action_status is not None: + totals.by_action_status[finding.action_status] = totals.by_action_status.get(finding.action_status, 0) + 1 + if guidance_kind == "safe_mechanical": + totals.low += deletion_lines + if guidance_kind != "preserve": + totals.high += deletion_lines + weight = _CLEANUP_FORECAST_WEIGHTS.get(guidance_kind, 0.0) + totals.expected += deletion_lines * weight + totals.weighted_points += weight diff --git a/packages/specfact-code-review/src/specfact_code_review/run/runner.py b/packages/specfact-code-review/src/specfact_code_review/run/runner.py index 0f72cbf..7afec2e 100644 --- a/packages/specfact-code-review/src/specfact_code_review/run/runner.py +++ b/packages/specfact-code-review/src/specfact_code_review/run/runner.py @@ -21,7 +21,16 @@ from icontract import ensure, require from specfact_code_review._review_utils import normalize_path_variants, tool_error -from specfact_code_review.run.findings import ReviewFinding, ReviewReport +from specfact_code_review.run.findings import ( + CleanupForecast, + EvidenceRef, + PreserveReasonEvidence, + RemediationPacket, + ReviewFinding, + ReviewReport, + SignalTraceEntry, +) +from specfact_code_review.run.forecast import build_cleanup_forecast from specfact_code_review.run.scorer import score_review from specfact_code_review.tools.ai_bloat_runner import run_ai_bloat from specfact_code_review.tools.ast_clean_code_runner import run_ast_clean_code @@ -345,6 +354,258 @@ def _filter_findings_by_focus(findings: list[ReviewFinding], focus: ReviewFocus raise ValueError(f"Unsupported review focus: {focus}") +def _enrich_cleanup_findings(findings: list[ReviewFinding]) -> list[ReviewFinding]: + return [_enriched_cleanup_finding(finding) for finding in findings] + + +def _enriched_cleanup_finding(finding: ReviewFinding) -> ReviewFinding: + if finding.guidance_kind is None: + return finding + preserve_reasons = list(finding.preserve_reasons or []) + preserve_reasons.extend( + reason + for reason in _preserve_reasons_for_finding(finding, load_bearing=False) + if reason not in preserve_reasons + ) + updates: dict[str, object] = { + "signal_trace": _signal_trace_for_finding(finding), + } + if preserve_reasons: + updates.update( + { + "guidance_kind": "preserve", + "recommended_action": "keep", + "estimated_deletion_lines": 0, + "action_status": "kept", + "preserve_reason": "; ".join(reason.explanation for reason in preserve_reasons), + "preserve_reasons": preserve_reasons, + } + ) + candidate = finding.model_copy(update=updates) + return candidate.model_copy(update={"remediation_packet": _remediation_packet_for_finding(candidate)}) + + +def _signal_trace_for_finding(finding: ReviewFinding) -> list[SignalTraceEntry]: + existing = list(finding.signal_trace or []) + if existing: + return existing + return [ + SignalTraceEntry( + tool=finding.tool, + source=finding.rule, + fired=True, + score=1.0 if finding.confidence == "high" else None, + value=finding.canonical_pattern, + evidence_refs=[EvidenceRef(path=finding.file, start_line=finding.line)], + explanation=f"{finding.tool} emitted {finding.rule}.", + ) + ] + + +def _remediation_packet_for_finding(finding: ReviewFinding) -> RemediationPacket: + possible_keep_reason = finding.preserve_reason + if possible_keep_reason is None and finding.guidance_kind in {"design_judgment", "needs_tests"}: + possible_keep_reason = "Keep the current shape if tests, API compatibility, or domain readability need it." + return RemediationPacket( + issue=finding.message, + recommended_action=finding.recommended_action or "inspect", + possible_keep_reason=possible_keep_reason, + safety_checks=finding.safety_checks or ["inspect the surrounding behavior before editing"], + validation_plan=["run targeted tests for the touched file", "rerun specfact code review with --focus simplify"], + safe_to_autofix=finding.is_safe_mechanical_simplification() and finding.fixable, + ) + + +def _preserve_reasons_for_finding(finding: ReviewFinding, *, load_bearing: bool) -> list[PreserveReasonEvidence]: + reasons: list[PreserveReasonEvidence] = [] + evidence_ref = EvidenceRef(path=finding.file, start_line=finding.line) + if load_bearing: + reasons.append( + PreserveReasonEvidence( + reason="load_bearing", + evidence_refs=[evidence_ref], + explanation="Mutation proof indicates this code is load-bearing.", + ) + ) + try: + source = Path(finding.file).read_text(encoding="utf-8") + tree = ast.parse(source, filename=finding.file) + except (OSError, SyntaxError, UnicodeDecodeError): + return reasons + lines = source.splitlines() + function_node = _function_containing_line(tree, finding.line) + class_node = _class_containing_line(tree, finding.line) + public_names = _module_all_names(tree) + if function_node is not None: + if _has_contract_decorator(function_node): + reasons.append( + PreserveReasonEvidence( + reason="contract_lambda", + evidence_refs=[evidence_ref], + explanation="Function is protected by an icontract-style contract decorator.", + ) + ) + if function_node.name in public_names: + reasons.append( + PreserveReasonEvidence( + reason="public_api", + evidence_refs=[evidence_ref], + explanation="Function is exported through __all__ and is public API.", + ) + ) + if _has_cli_decorator(function_node): + reasons.append( + PreserveReasonEvidence( + reason="cli_callback", + evidence_refs=[evidence_ref], + explanation="Function is registered as a Typer or Click callback.", + ) + ) + if _has_preserve_marker(lines, function_node.lineno): + reasons.append( + PreserveReasonEvidence( + reason="compat_shim", + evidence_refs=[evidence_ref], + explanation="Function has an explicit specfact preserve compatibility marker.", + ) + ) + if _has_spec_marker(lines, function_node.lineno): + reasons.append( + PreserveReasonEvidence( + reason="spec_linked", + evidence_refs=[evidence_ref], + explanation="Function has an explicit spec requirement marker.", + ) + ) + if class_node is not None and ( + _has_base_named(class_node, {"Protocol", "ABC"}) or _has_abstractmethod(function_node) + ): + reasons.append( + PreserveReasonEvidence( + reason="protocol_member", + evidence_refs=[evidence_ref], + explanation="Finding is inside a Protocol, ABC, or abstract member contract.", + ) + ) + return _dedupe_preserve_reasons(reasons) + + +def _dedupe_preserve_reasons(reasons: list[PreserveReasonEvidence]) -> list[PreserveReasonEvidence]: + deduped: list[PreserveReasonEvidence] = [] + seen: set[str] = set() + for reason in reasons: + if reason.reason in seen: + continue + seen.add(reason.reason) + deduped.append(reason) + return deduped + + +def _function_containing_line(tree: ast.AST, line: int) -> ast.FunctionDef | ast.AsyncFunctionDef | None: + functions = [ + node + for node in ast.walk(tree) + if isinstance(node, ast.FunctionDef | ast.AsyncFunctionDef) + and node.lineno <= line <= (node.end_lineno or node.lineno) + ] + return max(functions, key=lambda node: node.lineno, default=None) + + +def _class_containing_line(tree: ast.AST, line: int) -> ast.ClassDef | None: + classes = [ + node + for node in ast.walk(tree) + if isinstance(node, ast.ClassDef) and node.lineno <= line <= (node.end_lineno or node.lineno) + ] + return max(classes, key=lambda node: node.lineno, default=None) + + +def _module_all_names(tree: ast.Module) -> set[str]: + names: set[str] = set() + for node in tree.body: + exported_values = _module_all_assignment_values(node) + if exported_values is None: + continue + for item in exported_values: + item_name = _string_constant_value(item) + if item_name is not None: + names.add(item_name) + return names + + +def _module_all_assignment_values(node: ast.stmt) -> list[ast.expr] | None: + if not isinstance(node, ast.Assign): + return None + if not any(isinstance(target, ast.Name) and target.id == "__all__" for target in node.targets): + return None + if isinstance(node.value, ast.List | ast.Tuple | ast.Set): + return list(node.value.elts) + return None + + +def _string_constant_value(node: ast.AST) -> str | None: + if isinstance(node, ast.Constant) and isinstance(node.value, str): + return node.value + if isinstance(node, ast.Str) and isinstance(node.s, str): + return node.s + return None + + +def _decorator_full_name(node: ast.AST) -> str: + target = node.func if isinstance(node, ast.Call) else node + if isinstance(target, ast.Name): + return target.id + if isinstance(target, ast.Attribute): + prefix = _decorator_full_name(target.value) + return f"{prefix}.{target.attr}" if prefix else target.attr + return "" + + +def _has_contract_decorator(function_node: ast.FunctionDef | ast.AsyncFunctionDef) -> bool: + contract_names = {"require", "ensure", "invariant", "icontract.require", "icontract.ensure", "icontract.invariant"} + return any(_decorator_full_name(decorator) in contract_names for decorator in function_node.decorator_list) + + +def _has_cli_decorator(function_node: ast.FunctionDef | ast.AsyncFunctionDef) -> bool: + return any( + _decorator_full_name(decorator).split(".")[-1] in {"command", "callback"} + for decorator in function_node.decorator_list + ) + + +def _has_abstractmethod(function_node: ast.FunctionDef | ast.AsyncFunctionDef | None) -> bool: + if function_node is None: + return False + return any( + _decorator_full_name(decorator).split(".")[-1] == "abstractmethod" for decorator in function_node.decorator_list + ) + + +def _has_base_named(class_node: ast.ClassDef, names: set[str]) -> bool: + return any(_base_name(base).rsplit(".", maxsplit=1)[-1] in names for base in class_node.bases) + + +def _base_name(node: ast.AST) -> str: + if isinstance(node, ast.Name): + return node.id + if isinstance(node, ast.Attribute): + prefix = _base_name(node.value) + return f"{prefix}.{node.attr}" if prefix else node.attr + if isinstance(node, ast.Subscript): + return _base_name(node.value) + return "" + + +def _has_preserve_marker(lines: list[str], line: int) -> bool: + context = "\n".join(lines[max(0, line - 3) : line]) + return "specfact: preserve(" in context + + +def _has_spec_marker(lines: list[str], line: int) -> bool: + context = "\n".join(lines[max(0, line - 3) : line]) + return "# spec:" in context or "# specfact: requirement(" in context + + def _collect_tdd_inputs(files: list[Path]) -> tuple[list[Path], list[Path], list[ReviewFinding]]: source_files = [file_path for file_path in files if _expected_test_path(file_path) is not None] findings: list[ReviewFinding] = [] @@ -633,6 +894,10 @@ def run_review( findings = _filter_findings_by_review_level(findings, review_options.review_level) findings = _filter_findings_by_focus(findings, review_options.focus) + cleanup_forecast: CleanupForecast | None = None + if review_options.focus == "simplify": + findings = _enrich_cleanup_findings(findings) + cleanup_forecast = build_cleanup_forecast(findings, files) score = score_review( findings=findings, @@ -648,6 +913,7 @@ def run_review( score=score.score, findings=findings, summary=_summary_for_findings(findings), + cleanup_forecast=cleanup_forecast, ) if review_options.review_mode == "shadow": return report.model_copy(update={"ci_exit_code": 0}) diff --git a/packages/specfact-project/module-package.yaml b/packages/specfact-project/module-package.yaml index 089eec4..e6d83c6 100644 --- a/packages/specfact-project/module-package.yaml +++ b/packages/specfact-project/module-package.yaml @@ -1,5 +1,5 @@ name: nold-ai/specfact-project -version: 0.41.17 +version: 0.41.18 commands: - project - plan @@ -27,5 +27,4 @@ core_compatibility: '>=0.40.0,<1.0.0' description: Official SpecFact project bundle package. bundle_group_command: project integrity: - checksum: sha256:98760f97c05a8bb7606931dd50b2c885c8d98309332cdab6bc5b2d5153564cdc - signature: Hp8M0QWi1OO1+gCPil5K0MbUy3tY3xg8R3OzdHRbeJFWnYPaB8GMuEpEkN163OVjzEqToTKYnifLpGqfgJt9CA== + checksum: sha256:4f2905d81e5287a7bfa81a93fe50ac17d6f55f5d5b7ea6b2d328ed83869d99a2 diff --git a/packages/specfact-project/resources/prompts/specfact.08-simplify.md b/packages/specfact-project/resources/prompts/specfact.08-simplify.md index 32bec99..2547719 100644 --- a/packages/specfact-project/resources/prompts/specfact.08-simplify.md +++ b/packages/specfact-project/resources/prompts/specfact.08-simplify.md @@ -56,16 +56,18 @@ If this slash prompt or the installed skill is unavailable in another AI IDE, te Read `.specfact/code-review-simplify.json`. If it is missing, ask the user to run: ```bash -specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json +specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json ``` -Explain that this report is the evidence file: it lists candidate cleanups, the safety checks, and the preserve reasons the assistant must use before touching code. Do not edit files until the report exists. +Explain that this report is the evidence file: it lists candidate cleanups, cleanup forecast, safety checks, remediation packets, and preserve reasons the assistant must use before touching code. Do not edit files until the report exists. + +Inspect `cleanup_forecast` first. Use reviewed LOC, deletion estimate ranges, AI-bloat index, weighted bloat points, cleanup yield, and guidance-kind totals to decide where cleanup has the highest likely payoff. Treat estimates as forecasts, not guaranteed LOC removal. If the report contains no findings where `category == "ai_bloat"` and no findings with simplification metadata such as `intent_key`, `rewrite_hint`, `canonical_pattern`, or `guidance_kind`, report that there are no simplification candidates and stop without editing files. ### Step 2: Group Candidates -Group findings by `intent_key` first when present, then by file or domain and rule. For each candidate, inspect the referenced source location, inspect any related locations from `related_locations`, and capture small surrounding snippets before proposing a rewrite. +Group findings by `intent_key` first when present, then by file or domain and rule. For each candidate, inspect the referenced source location, inspect any related locations from `related_locations`, and capture small surrounding snippets before proposing a rewrite. When `remediation_packet` is present, treat it as authoritative for the issue, recommended action, possible keep reason, safety checks, validation plan, and `safe_to_autofix`. Use `guidance_kind` as the action contract: @@ -74,6 +76,8 @@ Use `guidance_kind` as the action contract: - `design_judgment`: inspect intent evidence first, explain tradeoffs in plain language, default to keep/skip when intent is unclear, and ask before editing. - `preserve`: keep by default; record the `preserve_reason` as a false-positive or intentional-pattern note. +If `preserve_reasons` is present, do not autofix the finding even when a shorter patch exists. + For vibe-coder and junior walkthroughs, present findings as a decision card instead of a raw lint warning: ```text @@ -120,7 +124,7 @@ Compare the new report with the prior findings and summarize which `ai_bloat` or Use the CLI as the verification source: ```bash -specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json +specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json specfact code review run --scope changed --bug-hunt --json --out .specfact/code-review-bughunt.json ``` diff --git a/registry/index.json b/registry/index.json index fdbdee2..aadd2c4 100644 --- a/registry/index.json +++ b/registry/index.json @@ -2,9 +2,9 @@ "modules": [ { "id": "nold-ai/specfact-project", - "latest_version": "0.41.17", - "download_url": "modules/specfact-project-0.41.17.tar.gz", - "checksum_sha256": "bb9a30df380bc23cb915f74ae5a49d89782e85dc845b358b6938d056b4ad1f04", + "latest_version": "0.41.18", + "download_url": "modules/specfact-project-0.41.18.tar.gz", + "checksum_sha256": "58d5652c6c5e609af1acd661ad816250a251ed80c965f301b40939fc263a51cd", "tier": "official", "publisher": { "name": "nold-ai", @@ -78,9 +78,9 @@ }, { "id": "nold-ai/specfact-code-review", - "latest_version": "0.47.27", - "download_url": "modules/specfact-code-review-0.47.27.tar.gz", - "checksum_sha256": "1f7167cc3f973ebb1a60613655ef22b57a75054044f586f89de73c904b74d740", + "latest_version": "0.47.28", + "download_url": "modules/specfact-code-review-0.47.28.tar.gz", + "checksum_sha256": "968386b7d14223a47f76de0aa1289e7b4a2aabe486a5c256a40feedcec3988bd", "core_compatibility": ">=0.44.0,<1.0.0", "tier": "official", "publisher": { diff --git a/registry/modules/specfact-code-review-0.47.28.tar.gz b/registry/modules/specfact-code-review-0.47.28.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..adf70ffe2ad1404bce616faab9d333154f5ab726 GIT binary patch literal 59486 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

Rw^{cJV_ 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≻W8Ay!@(rx<1#B$y@SYqZcbKNB;AI$vz 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 AfPb< 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 MKa~PblK^-g0M{u6f&c&j literal 0 HcmV?d00001 diff --git a/registry/modules/specfact-project-0.41.18.tar.gz.sha256 b/registry/modules/specfact-project-0.41.18.tar.gz.sha256 new file mode 100644 index 0000000..bde46f1 --- /dev/null +++ b/registry/modules/specfact-project-0.41.18.tar.gz.sha256 @@ -0,0 +1 @@ +58d5652c6c5e609af1acd661ad816250a251ed80c965f301b40939fc263a51cd diff --git a/tests/cli-contracts/specfact-code-review-run.scenarios.yaml b/tests/cli-contracts/specfact-code-review-run.scenarios.yaml index 43e6314..e5cd60e 100644 --- a/tests/cli-contracts/specfact-code-review-run.scenarios.yaml +++ b/tests/cli-contracts/specfact-code-review-run.scenarios.yaml @@ -168,3 +168,24 @@ scenarios: exit_code: 2 stderr_contains: - Cannot combine --focus with --include-tests or --exclude-tests + - name: preview-fixes-cannot-combine-with-fix + type: anti-pattern + argv: + - tests/fixtures/review/clean_module.py + - --focus + - simplify + - --preview-fixes + - --fix + expect: + exit_code: 2 + stderr_contains: + - Cannot combine --preview-fixes with --fix + - name: mutation-proof-requires-simplify-focus + type: anti-pattern + argv: + - tests/fixtures/review/clean_module.py + - --with-mutation + expect: + exit_code: 2 + stderr_contains: + - Use --with-mutation only with --focus simplify diff --git a/tests/unit/specfact_code_review/review/test_commands.py b/tests/unit/specfact_code_review/review/test_commands.py index 6bb6131..6c74d92 100644 --- a/tests/unit/specfact_code_review/review/test_commands.py +++ b/tests/unit/specfact_code_review/review/test_commands.py @@ -44,6 +44,9 @@ def _fail_run_command(_files: list[Path], **_kwargs: object) -> tuple[int, str | assert "exact patch preview" in result.output assert "default to keep or skip" in result.output assert "specfact code review run --scope changed --focus simplify" in result.output + assert "cleanup_forecast" in result.output + assert "remediation_packet" in result.output + assert "not proof of AI authorship" in result.output def test_review_run_interactive_prompts_for_test_inclusion(monkeypatch: Any) -> None: diff --git a/tests/unit/specfact_code_review/run/test_cleanup_evidence.py b/tests/unit/specfact_code_review/run/test_cleanup_evidence.py new file mode 100644 index 0000000..5a89fb6 --- /dev/null +++ b/tests/unit/specfact_code_review/run/test_cleanup_evidence.py @@ -0,0 +1,66 @@ +from __future__ import annotations + +from pathlib import Path + +import pytest + +from specfact_code_review.run.cleanup_evidence import with_mutation_evidence, with_previewed_simplification_findings +from specfact_code_review.run.findings import ReviewFinding, ReviewReport + + +def _finding(file_path: Path) -> ReviewFinding: + return ReviewFinding( + category="ai_bloat", + severity="info", + tool="ast", + rule="ai-bloat.redundant-intermediate", + file=str(file_path), + line=2, + message="Simplify local code.", + fixable=True, + confidence="high", + rewrite_hint="Inline the temporary.", + canonical_pattern="one-use-temporary", + estimated_deletion_lines=1, + guidance_kind="safe_mechanical", + recommended_action="inline", + clean_code_principle="kiss", + rationale="The local variable is assigned once and returned.", + safety_checks=["same expression is returned"], + action_status="recommended", + ) + + +def _report(finding: ReviewFinding) -> ReviewReport: + return ReviewReport(run_id="review", score=90, findings=[finding], summary="Simplify") + + +def test_with_previewed_simplification_findings_records_patch_ref(tmp_path: Path) -> None: + source = tmp_path / "sample.py" + source.write_text( + "def total(values: list[int]) -> int:\n result = sum(values)\n return result\n", encoding="utf-8" + ) + finding = _finding(source) + + def _apply(report: ReviewReport) -> list[ReviewFinding]: + preview_path = Path(report.findings[0].file) + preview_path.write_text("def total(values: list[int]) -> int:\n return sum(values)\n", encoding="utf-8") + return [report.findings[0]] + + previewed = with_previewed_simplification_findings(_report(finding), [source], _apply) + + assert previewed.findings[0].remediation_packet is not None + assert previewed.findings[0].remediation_packet.patch_forecast_refs == [f"preview:{source}:2"] + assert source.read_text(encoding="utf-8").count("result") == 2 + + +def test_with_mutation_evidence_records_inconclusive_signal(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: + source = tmp_path / "sample.py" + source.write_text("def total(values: list[int]) -> int:\n return sum(values)\n", encoding="utf-8") + monkeypatch.setattr("specfact_code_review.run.cleanup_evidence._mutation_tool_available", lambda: False) + + report = with_mutation_evidence(_report(_finding(source)), [source]) + + assert report.findings[0].signal_trace is not None + assert report.findings[0].signal_trace[-1].source == "mutation" + assert report.findings[0].signal_trace[-1].value == "inconclusive: mutmut unavailable" diff --git a/tests/unit/specfact_code_review/run/test_commands.py b/tests/unit/specfact_code_review/run/test_commands.py index e8bbee2..9f28906 100644 --- a/tests/unit/specfact_code_review/run/test_commands.py +++ b/tests/unit/specfact_code_review/run/test_commands.py @@ -312,6 +312,88 @@ def fake_run_review(files: list[Path], **kwargs: Any) -> ReviewReport: assert recorded == {"files": [package_file], "focus": "simplify"} +def test_run_command_rejects_preview_fixes_with_fix() -> None: + result = runner.invoke( + app, + [ + "review", + "run", + "--focus", + "simplify", + "--preview-fixes", + "--fix", + "tests/fixtures/review/clean_module.py", + ], + ) + + assert result.exit_code == 2 + assert "Cannot combine --preview-fixes with --fix" in result.output + + +def test_run_command_rejects_with_mutation_without_simplify_focus() -> None: + result = runner.invoke( + app, + ["review", "run", "--with-mutation", "tests/fixtures/review/clean_module.py"], + ) + + assert result.exit_code == 2 + assert "Use --with-mutation only with --focus simplify" in result.output + + +def test_preview_fixes_adds_patch_forecast_without_mutating_tracked_file(monkeypatch: Any, tmp_path: Path) -> None: + target = tmp_path / "sample.py" + source = "def total(values: list[int]) -> int:\n result = sum(values)\n return result\n" + target.write_text(source, encoding="utf-8") + report = _safe_mechanical_report(target, line=2, rule="ai-bloat.redundant-intermediate") + monkeypatch.setattr("specfact_code_review.run.commands.run_review", lambda files, **kwargs: report) + + exit_code, output = run_commands.run_command( + run_commands.ReviewRunRequest( + files=[target], + json_output=True, + out=tmp_path / "review-report.json", + focus_facets=("simplify",), + preview_fixes=True, + ) + ) + + assert exit_code == 1 + assert output == str(tmp_path / "review-report.json") + assert target.read_text(encoding="utf-8") == source + previewed = ReviewReport.model_validate_json((tmp_path / "review-report.json").read_text(encoding="utf-8")) + assert previewed.cleanup_forecast is not None + assert previewed.cleanup_forecast.preview_evidence_count == 1 + assert previewed.findings[0].remediation_packet is not None + assert previewed.findings[0].remediation_packet.patch_forecast_refs == [f"preview:{target}:2"] + + +def test_with_mutation_records_inconclusive_evidence_for_missing_tool(monkeypatch: Any, tmp_path: Path) -> None: + target = tmp_path / "sample.py" + target.write_text( + "def total(values: list[int]) -> int:\n result = sum(values)\n return result\n", encoding="utf-8" + ) + report = _safe_mechanical_report(target, line=2, rule="ai-bloat.redundant-intermediate") + monkeypatch.setattr("specfact_code_review.run.commands.run_review", lambda files, **kwargs: report) + monkeypatch.setattr("specfact_code_review.run.cleanup_evidence._mutation_tool_available", lambda: False) + + exit_code, output = run_commands.run_command( + run_commands.ReviewRunRequest( + files=[target], + json_output=True, + out=tmp_path / "review-report.json", + focus_facets=("simplify",), + with_mutation=True, + ) + ) + + assert exit_code == 1 + assert output == str(tmp_path / "review-report.json") + mutation_report = ReviewReport.model_validate_json((tmp_path / "review-report.json").read_text(encoding="utf-8")) + assert mutation_report.findings[0].signal_trace is not None + assert mutation_report.findings[0].signal_trace[-1].source == "mutation" + assert mutation_report.findings[0].signal_trace[-1].value == "inconclusive: mutmut unavailable" + + def test_apply_simplification_fixes_inlines_redundant_intermediate(tmp_path: Path) -> None: target = tmp_path / "sample.py" target.write_text( @@ -531,6 +613,8 @@ def test_run_review_once_applies_simplification_fixes_before_rerun(monkeypatch: no_tests=True, include_noise=False, fix=True, + preview_fixes=False, + with_mutation=False, progress_callback=None, bug_hunt=False, review_mode="enforce", diff --git a/tests/unit/specfact_code_review/run/test_findings.py b/tests/unit/specfact_code_review/run/test_findings.py index 847965c..be72d44 100644 --- a/tests/unit/specfact_code_review/run/test_findings.py +++ b/tests/unit/specfact_code_review/run/test_findings.py @@ -6,7 +6,19 @@ import pytest from pydantic import ValidationError -from specfact_code_review.run.findings import EvidenceRef, ReviewFinding, ReviewReport +from specfact_code_review.run.findings import ( + AiBloatIndex, + CleanupForecast, + DeletionEstimate, + EvidenceRef, + GuidanceKindForecast, + PreserveReasonEvidence, + RemediationPacket, + ReviewedLoc, + ReviewFinding, + ReviewReport, + SignalTraceEntry, +) class ReviewFindingPayload(TypedDict, total=False): @@ -49,6 +61,9 @@ class ReviewFindingPayload(TypedDict, total=False): before_ref: EvidenceRef after_ref: EvidenceRef improvement: str + signal_trace: list[SignalTraceEntry] + preserve_reasons: list[PreserveReasonEvidence] + remediation_packet: RemediationPacket def _finding_data(**overrides: Unpack[ReviewFindingPayload]) -> ReviewFindingPayload: @@ -138,6 +153,86 @@ def test_review_finding_accepts_guided_simplification_metadata() -> None: assert finding.is_safe_mechanical_simplification() +def test_review_finding_accepts_cleanup_handoff_metadata() -> None: + finding = ReviewFinding( + **_finding_data( + category="ai_bloat", + severity="info", + rule="ai-bloat.redundant-intermediate", + confidence="high", + rewrite_hint="Inline the one-use temporary into the return statement.", + canonical_pattern="one-use-temporary", + estimated_deletion_lines=1, + guidance_kind="safe_mechanical", + recommended_action="inline", + clean_code_principle="kiss", + rationale="The local variable is assigned once and read only by the following return.", + safety_checks=["same expression is returned", "temporary has no later reads"], + action_status="recommended", + signal_trace=[ + SignalTraceEntry( + tool="ast", + source="ai-bloat.redundant-intermediate", + fired=True, + score=1.0, + value="one-use-temporary", + evidence_refs=[EvidenceRef(path="src/example.py", start_line=12)], + explanation="AST pattern matched a one-use temporary.", + ) + ], + preserve_reasons=[ + PreserveReasonEvidence( + reason="public_api", + evidence_refs=[EvidenceRef(path="src/example.py", start_line=12)], + explanation="Exported in __all__.", + ) + ], + remediation_packet=RemediationPacket( + issue="One-use temporary can be inlined.", + recommended_action="inline", + possible_keep_reason="Keep only if readability would regress.", + safety_checks=["same expression is returned"], + validation_plan=["run targeted tests", "rerun simplify review"], + safe_to_autofix=False, + patch_forecast_refs=["preview:src/example.py:12"], + ), + ) + ) + + assert finding.signal_trace is not None + assert finding.signal_trace[0].tool == "ast" + assert finding.preserve_reasons is not None + assert finding.preserve_reasons[0].reason == "public_api" + assert finding.remediation_packet is not None + assert not finding.remediation_packet.safe_to_autofix + assert not finding.is_safe_mechanical_simplification() + + +def test_review_finding_rejects_unknown_preserve_reason() -> None: + with pytest.raises(ValidationError): + ReviewFinding( + **_finding_data( + category="ai_bloat", + severity="info", + guidance_kind="safe_mechanical", + recommended_action="inline", + clean_code_principle="kiss", + rationale="The local rewrite is safe.", + safety_checks=["same expression is returned"], + preserve_reasons=cast( + Any, + [ + { + "reason": "unknown_reason", + "evidence_refs": [EvidenceRef(path="src/example.py", start_line=12)], + "explanation": "Not in taxonomy.", + } + ], + ), + ) + ) + + def test_review_finding_accepts_guided_metadata_without_action_status() -> None: finding = ReviewFinding( **_finding_data( @@ -362,6 +457,34 @@ def test_review_report_uses_schema_1_2_and_summary_when_guided_metadata_is_prese assert report.simplification_summary.blocking_simplification_count == 1 +def test_review_report_uses_schema_1_3_when_cleanup_forecast_is_present() -> None: + report = ReviewReport( + run_id="run-cleanup-forecast", + timestamp=datetime(2026, 5, 24, tzinfo=UTC), + score=85, + findings=[], + summary="Cleanup forecast.", + cleanup_forecast=CleanupForecast( + reviewed_loc=ReviewedLoc(production=80, tests=20, total=100), + estimated_deletion_lines=DeletionEstimate(low=2, expected=5, high=8), + ai_bloat_index=AiBloatIndex( + findings_per_kloc=20.0, + weighted_bloat_points_per_kloc=16.0, + cleanup_yield_loc_per_kloc=50.0, + ), + by_guidance_kind={ + "safe_mechanical": GuidanceKindForecast(count=2, estimated_deletion_lines=2), + "needs_tests": GuidanceKindForecast(count=1, estimated_deletion_lines=5), + }, + by_action_status={"recommended": 3}, + ), + ) + + assert report.schema_version == "1.3" + assert report.cleanup_forecast is not None + assert report.cleanup_forecast.ai_bloat_index.weighted_bloat_points_per_kloc == 16.0 + + def test_review_report_counts_failed_safe_mechanical_findings_as_blocking() -> None: report = ReviewReport( run_id="run-guided-simplify", diff --git a/tests/unit/specfact_code_review/run/test_forecast.py b/tests/unit/specfact_code_review/run/test_forecast.py new file mode 100644 index 0000000..a3877e0 --- /dev/null +++ b/tests/unit/specfact_code_review/run/test_forecast.py @@ -0,0 +1,57 @@ +from __future__ import annotations + +from pathlib import Path +from typing import Literal, cast + +from specfact_code_review.run.findings import ReviewFinding +from specfact_code_review.run.forecast import build_cleanup_forecast + + +def _finding(*, guidance_kind: str, deletion_lines: int) -> ReviewFinding: + return ReviewFinding( + category="ai_bloat", + severity="info", + tool="ast", + rule="ai-bloat.redundant-intermediate", + file="src/example.py", + line=1, + message="Simplify local code.", + confidence="high", + rewrite_hint="Inline the temporary.", + canonical_pattern="one-use-temporary", + estimated_deletion_lines=deletion_lines, + guidance_kind=cast( + Literal["safe_mechanical", "needs_tests", "design_judgment", "preserve"], + guidance_kind, + ), + recommended_action="keep" if guidance_kind == "preserve" else "inline", + clean_code_principle="api_stability" if guidance_kind == "preserve" else "kiss", + rationale="The local variable is assigned once and returned.", + safety_checks=["same expression is returned"], + preserve_reason="Public compatibility boundary." if guidance_kind == "preserve" else None, + action_status="recommended", + ) + + +def test_build_cleanup_forecast_counts_loc_and_weighted_bloat(tmp_path: Path) -> None: + source = tmp_path / "src" / "example.py" + source.parent.mkdir() + source.write_text("# comment\n\nvalue = 1\nprint(value)\n", encoding="utf-8") + test_file = tmp_path / "tests" / "test_example.py" + test_file.parent.mkdir() + test_file.write_text("def test_example():\n assert True\n", encoding="utf-8") + + forecast = build_cleanup_forecast( + [ + _finding(guidance_kind="safe_mechanical", deletion_lines=2), + _finding(guidance_kind="preserve", deletion_lines=5), + ], + [source, test_file], + ) + + assert forecast.reviewed_loc.production == 2 + assert forecast.reviewed_loc.tests == 2 + assert forecast.estimated_deletion_lines.low == 2 + assert forecast.estimated_deletion_lines.high == 2 + assert forecast.by_guidance_kind["preserve"].estimated_deletion_lines == 5 + assert forecast.ai_bloat_index.weighted_bloat_points_per_kloc == 250.0 diff --git a/tests/unit/specfact_code_review/run/test_runner.py b/tests/unit/specfact_code_review/run/test_runner.py index 061b5b7..9381584 100644 --- a/tests/unit/specfact_code_review/run/test_runner.py +++ b/tests/unit/specfact_code_review/run/test_runner.py @@ -7,11 +7,13 @@ from pathlib import Path from typing import Literal +import pytest from pytest import MonkeyPatch from specfact_code_review.run.findings import ReviewFinding, ReviewReport from specfact_code_review.run.runner import ( _coverage_findings, + _preserve_reasons_for_finding, _pytest_python_executable, _pytest_targets, _run_pytest_with_coverage, @@ -226,7 +228,7 @@ def test_run_review_simplify_focus_keeps_only_simplification_queue(monkeypatch: ("ai_bloat", "high"), ("dry", "high"), ] - assert report.schema_version == "1.1" + assert report.schema_version == "1.3" assert report.overall_verdict == "PASS" @@ -256,11 +258,62 @@ def test_run_review_simplify_enforce_fails_only_safe_mechanical_recommendations( review_mode="enforce", ) - assert report.schema_version == "1.2" + assert report.schema_version == "1.3" assert report.overall_verdict == "FAIL" assert report.ci_exit_code == 1 assert report.simplification_summary is not None assert report.simplification_summary.blocking_simplification_count == 1 + assert report.cleanup_forecast is not None + assert report.cleanup_forecast.by_guidance_kind["safe_mechanical"].count == 1 + assert report.cleanup_forecast.by_guidance_kind["needs_tests"].count == 1 + assert report.cleanup_forecast.by_guidance_kind["preserve"].count == 1 + assert report.cleanup_forecast.ai_bloat_index.weighted_bloat_points_per_kloc >= 0.0 + + +def test_run_review_simplify_forecast_counts_loc_and_weighted_bloat(monkeypatch: MonkeyPatch, tmp_path: Path) -> None: + source = tmp_path / "src/example.py" + source.parent.mkdir(parents=True) + source.write_text( + "def one() -> int:\n" + " value = 1\n" + " return value\n" + "\n" + "# ignored comment\n" + "def two() -> bool:\n" + " if True:\n" + " return True\n" + " return False\n", + encoding="utf-8", + ) + test_file = tmp_path / "tests/test_example.py" + test_file.parent.mkdir(parents=True) + test_file.write_text("def test_example() -> None:\n assert True\n", encoding="utf-8") + safe = _simplification_finding(category="ai_bloat", guidance_kind="safe_mechanical") + needs_tests = _simplification_finding(category="ai_bloat", guidance_kind="needs_tests") + design = _simplification_finding(category="ai_bloat", guidance_kind="design_judgment") + preserve = _simplification_finding(category="ai_bloat", guidance_kind="preserve") + monkeypatch.setattr("specfact_code_review.run.runner.run_ruff", lambda files: []) + monkeypatch.setattr("specfact_code_review.run.runner.run_radon", lambda files: []) + monkeypatch.setattr("specfact_code_review.run.runner.run_semgrep", lambda files: []) + monkeypatch.setattr("specfact_code_review.run.runner.run_semgrep_bugs", lambda files: []) + monkeypatch.setattr("specfact_code_review.run.runner.run_ai_bloat", lambda files: [safe, needs_tests]) + monkeypatch.setattr("specfact_code_review.run.runner.run_ast_clean_code", lambda files: [design, preserve]) + monkeypatch.setattr("specfact_code_review.run.runner.run_basedpyright", lambda files: []) + monkeypatch.setattr("specfact_code_review.run.runner.run_pylint", lambda files: []) + monkeypatch.setattr("specfact_code_review.run.runner.run_contract_check", lambda files, **_: []) + monkeypatch.setattr("specfact_code_review.run.runner._evaluate_tdd_gate", lambda files: ([], None)) + + report = run_review([source, test_file], no_tests=True, focus="simplify") + + assert report.cleanup_forecast is not None + assert report.cleanup_forecast.reviewed_loc.production == 7 + assert report.cleanup_forecast.reviewed_loc.tests == 2 + assert report.cleanup_forecast.estimated_deletion_lines.low == 3 + assert report.cleanup_forecast.estimated_deletion_lines.expected == 6 + assert report.cleanup_forecast.estimated_deletion_lines.high == 9 + assert report.cleanup_forecast.ai_bloat_index.findings_per_kloc == pytest.approx(444.444, abs=0.001) + assert report.cleanup_forecast.ai_bloat_index.weighted_bloat_points_per_kloc == pytest.approx(205.556, abs=0.001) + assert report.cleanup_forecast.ai_bloat_index.cleanup_yield_loc_per_kloc == pytest.approx(666.667, abs=0.001) def test_run_review_simplify_enforce_passes_design_and_preserve_guidance(monkeypatch: MonkeyPatch) -> None: @@ -293,6 +346,57 @@ def test_run_review_simplify_enforce_passes_design_and_preserve_guidance(monkeyp assert report.simplification_summary.blocking_simplification_count == 0 +def test_preserve_detection_covers_contract_public_protocol_cli_compat_and_load_bearing(tmp_path: Path) -> None: + source = tmp_path / "api.py" + source.write_text( + "from typing import Protocol\n" + "import typer\n" + "from abc import abstractmethod\n" + "\n" + "__all__ = ['exported']\n" + "app = typer.Typer()\n" + "\n" + "@icontract.require(lambda value: value > 0)\n" + "def contracted(value: int) -> int:\n" + " return value\n" + "\n" + "def exported() -> None:\n" + " return None\n" + "\n" + "class Handler(Protocol):\n" + " def handle(self, payload: str) -> str: ...\n" + "\n" + "@app.command()\n" + "def cli_main() -> None:\n" + " return None\n" + "\n" + "# specfact: preserve(compat)\n" + "def shim() -> None:\n" + " return None\n", + encoding="utf-8", + ) + finding_lines = { + "contract_lambda": 9, + "public_api": 12, + "protocol_member": 16, + "cli_callback": 19, + "compat_shim": 24, + } + + for expected_reason, line in finding_lines.items(): + finding = _simplification_finding(category="ai_bloat", guidance_kind="safe_mechanical").model_copy( + update={"file": str(source), "line": line} + ) + reasons = _preserve_reasons_for_finding(finding, load_bearing=False) + assert expected_reason in {reason.reason for reason in reasons} + + load_bearing_finding = _simplification_finding(category="ai_bloat", guidance_kind="safe_mechanical").model_copy( + update={"file": str(source), "line": 12} + ) + reasons = _preserve_reasons_for_finding(load_bearing_finding, load_bearing=True) + assert "load_bearing" in {reason.reason for reason in reasons} + + def test_run_review_simplify_focus_preserves_tool_errors(monkeypatch: MonkeyPatch) -> None: monkeypatch.setattr("specfact_code_review.run.runner.run_ruff", lambda files: []) monkeypatch.setattr("specfact_code_review.run.runner.run_radon", lambda files: []) From bdc3cd2be623d142a4e9c1e848f2ea5fecccc793 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 24 May 2026 21:14:04 +0000 Subject: [PATCH 04/18] chore(modules): ci sign changed modules --- packages/specfact-code-review/module-package.yaml | 1 + packages/specfact-project/module-package.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/specfact-code-review/module-package.yaml b/packages/specfact-code-review/module-package.yaml index 4fcadf9..3c0b5f4 100644 --- a/packages/specfact-code-review/module-package.yaml +++ b/packages/specfact-code-review/module-package.yaml @@ -24,3 +24,4 @@ category: codebase bundle_group_command: code integrity: checksum: sha256:c1abad7132fd3e97e93238d14893e6475a3c935f35cf2e46e348387a41deddb1 + signature: wTzzA/GPi1+SxxPhV2us/hls4C5bOm8UgoK0gqySs/Vi3RRMn6tWfvoIXIjV8y4HGrfocI1KwTWb0ZdzcOKTAg== diff --git a/packages/specfact-project/module-package.yaml b/packages/specfact-project/module-package.yaml index e6d83c6..06b52b6 100644 --- a/packages/specfact-project/module-package.yaml +++ b/packages/specfact-project/module-package.yaml @@ -28,3 +28,4 @@ description: Official SpecFact project bundle package. bundle_group_command: project integrity: checksum: sha256:4f2905d81e5287a7bfa81a93fe50ac17d6f55f5d5b7ea6b2d328ed83869d99a2 + signature: 55f2vT+jV/u0xcxWFgQnEZ1urtuJjfOhXYNo1tOUrnPZGhHWAhLaBGuwbYYb1V2FeUbFPdUxbbkx/TjbcLvZDA== From 00cfa7255faba5b9b15601aa679eb67003757b37 Mon Sep 17 00:00:00 2001 From: omit-test Date: Sun, 24 May 2026 23:33:34 +0200 Subject: [PATCH 05/18] Address cleanup forecast review findings --- .../design.md | 2 +- .../specfact-code-review/module-package.yaml | 5 +- .../specfact_code_review/review/commands.py | 2 +- .../src/specfact_code_review/run/findings.py | 12 +++++ .../src/specfact_code_review/run/forecast.py | 11 ++--- .../src/specfact_code_review/run/runner.py | 40 ++++++++++++++-- registry/index.json | 6 +-- .../specfact-code-review-0.47.29.tar.gz | Bin 0 -> 59853 bytes ...specfact-code-review-0.47.29.tar.gz.sha256 | 1 + .../review/test_commands.py | 1 + .../specfact_code_review/run/test_findings.py | 13 +++++ .../specfact_code_review/run/test_forecast.py | 10 ++++ .../specfact_code_review/run/test_runner.py | 45 ++++++++++++++---- 13 files changed, 119 insertions(+), 29 deletions(-) create mode 100644 registry/modules/specfact-code-review-0.47.29.tar.gz create mode 100644 registry/modules/specfact-code-review-0.47.29.tar.gz.sha256 diff --git a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md index aeb75da..b0edb4d 100644 --- a/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md +++ b/openspec/changes/code-review-13-cleanup-forecast-agent-handoff/design.md @@ -10,7 +10,7 @@ The next layer should stay deterministic and Python-first. CPG, Joern, and polyg - Forecast weights are fixed in V1: `safe_mechanical=1.0`, `needs_tests=0.6`, `design_judgment=0.25`, and `preserve=0.0`. - `--preview-fixes` is non-mutating. It may create temporary files or in-memory diffs, but it must not edit tracked sources. - `--with-mutation` is explicit and valid only with `--focus simplify`. Timeouts and tool absence are inconclusive evidence, not proof that cleanup is safe. -- Preserve reasons short-circuit automatic cleanup. The closed taxonomy covers contract, public API, protocol/ABC, CLI callback, compatibility shim, explicit marker, spec/domain wrapper, and load-bearing mutation evidence. +- Preserve reasons short-circuit automatic cleanup. The closed taxonomy uses the emitted enum tokens `contract_lambda`, `public_api`, `protocol_member`, `cli_callback`, `compat_shim`, `spec_linked`, `domain_wrapper`, and `load_bearing`. - `remediation_packet` is the universal handoff surface. IDE prompts and skills may summarize it, but the JSON is authoritative. ## Data Shape diff --git a/packages/specfact-code-review/module-package.yaml b/packages/specfact-code-review/module-package.yaml index 3c0b5f4..7c38b95 100644 --- a/packages/specfact-code-review/module-package.yaml +++ b/packages/specfact-code-review/module-package.yaml @@ -1,5 +1,5 @@ name: nold-ai/specfact-code-review -version: 0.47.28 +version: 0.47.29 commands: - code tier: official @@ -23,5 +23,4 @@ description: Official SpecFact code review bundle package. category: codebase bundle_group_command: code integrity: - checksum: sha256:c1abad7132fd3e97e93238d14893e6475a3c935f35cf2e46e348387a41deddb1 - signature: wTzzA/GPi1+SxxPhV2us/hls4C5bOm8UgoK0gqySs/Vi3RRMn6tWfvoIXIjV8y4HGrfocI1KwTWb0ZdzcOKTAg== + checksum: sha256:570ce1d84a5d68b20db679857b7a027982c86f5f8e397e8fba7d3eae4b637ae7 diff --git a/packages/specfact-code-review/src/specfact_code_review/review/commands.py b/packages/specfact-code-review/src/specfact_code_review/review/commands.py index f0b3b1e..d3604d6 100644 --- a/packages/specfact-code-review/src/specfact_code_review/review/commands.py +++ b/packages/specfact-code-review/src/specfact_code_review/review/commands.py @@ -37,7 +37,7 @@ 2. Inspect cleanup_forecast before editing. Use reviewed_loc, estimated_deletion_lines, ai_bloat_index, and by_guidance_kind to decide where cleanup will actually pay off. These estimates are cleanup forecasts, not guarantees. -3. Treat guidance_kind and remediation_packet as the action contract: +3. Sort findings by guidance_kind before editing, then treat guidance_kind and remediation_packet as the action contract: - safe_mechanical: apply only after local safety checks pass. - needs_tests: add or identify targeted tests before changing behavior. - design_judgment: inspect intent evidence and ask before editing. diff --git a/packages/specfact-code-review/src/specfact_code_review/run/findings.py b/packages/specfact-code-review/src/specfact_code_review/run/findings.py index c1def63..500be6d 100644 --- a/packages/specfact-code-review/src/specfact_code_review/run/findings.py +++ b/packages/specfact-code-review/src/specfact_code_review/run/findings.py @@ -153,6 +153,12 @@ class ReviewedLoc(BaseModel): tests: int = Field(..., ge=0) total: int = Field(..., ge=0) + @model_validator(mode="after") + def _validate_total_matches_parts(self) -> ReviewedLoc: + if self.total != self.production + self.tests: + raise ValueError("reviewed_loc.total must equal production + tests") + return self + class DeletionEstimate(BaseModel): """Non-binding deletion-line range.""" @@ -161,6 +167,12 @@ class DeletionEstimate(BaseModel): expected: int = Field(..., ge=0) high: int = Field(..., ge=0) + @model_validator(mode="after") + def _validate_ordering(self) -> DeletionEstimate: + if not self.low <= self.expected <= self.high: + raise ValueError("estimated_deletion_lines must satisfy low <= expected <= high") + return self + class AiBloatIndex(BaseModel): """Normalized cleanup metrics per KLOC.""" diff --git a/packages/specfact-code-review/src/specfact_code_review/run/forecast.py b/packages/specfact-code-review/src/specfact_code_review/run/forecast.py index 101be21..60386ed 100644 --- a/packages/specfact-code-review/src/specfact_code_review/run/forecast.py +++ b/packages/specfact-code-review/src/specfact_code_review/run/forecast.py @@ -35,10 +35,6 @@ class _CleanupForecastTotals: high: int = 0 weighted_points: float = 0.0 - @property - def _expected_lines(self) -> int: - return round(self.expected) - @beartype @require(lambda files: isinstance(files, list), "files must be a list") @@ -49,13 +45,14 @@ def build_cleanup_forecast(findings: list[ReviewFinding], files: list[Path]) -> guided = [finding for finding in findings if finding.guidance_kind is not None] totals = _cleanup_forecast_totals(guided) kloc = max(reviewed_loc.total / 1000.0, 0.001) + expected_lines = round(totals.expected) return CleanupForecast( reviewed_loc=reviewed_loc, - estimated_deletion_lines=DeletionEstimate(low=totals.low, expected=totals._expected_lines, high=totals.high), + estimated_deletion_lines=DeletionEstimate(low=totals.low, expected=expected_lines, high=totals.high), ai_bloat_index=AiBloatIndex( findings_per_kloc=round(len(guided) / kloc, 3), weighted_bloat_points_per_kloc=round(totals.weighted_points / kloc, 3), - cleanup_yield_loc_per_kloc=round(totals._expected_lines / kloc, 3), + cleanup_yield_loc_per_kloc=round(expected_lines / kloc, 3), ), by_guidance_kind=totals.by_guidance_kind, by_action_status=totals.by_action_status, @@ -80,7 +77,7 @@ def _reviewed_loc_for_files(files: list[Path]) -> ReviewedLoc: continue try: loc = _count_python_loc(file_path) - except OSError: + except (OSError, UnicodeDecodeError): continue if "tests" in file_path.parts: tests += loc diff --git a/packages/specfact-code-review/src/specfact_code_review/run/runner.py b/packages/specfact-code-review/src/specfact_code_review/run/runner.py index 7afec2e..e8fedf5 100644 --- a/packages/specfact-code-review/src/specfact_code_review/run/runner.py +++ b/packages/specfact-code-review/src/specfact_code_review/run/runner.py @@ -477,14 +477,12 @@ def _preserve_reasons_for_finding(finding: ReviewFinding, *, load_bearing: bool) explanation="Function has an explicit spec requirement marker.", ) ) - if class_node is not None and ( - _has_base_named(class_node, {"Protocol", "ABC"}) or _has_abstractmethod(function_node) - ): + if class_node is not None and _is_protocol_or_abstract_member(class_node, function_node): reasons.append( PreserveReasonEvidence( reason="protocol_member", evidence_refs=[evidence_ref], - explanation="Finding is inside a Protocol, ABC, or abstract member contract.", + explanation="Finding is inside an abstract Protocol or ABC member contract.", ) ) return _dedupe_preserve_reasons(reasons) @@ -581,6 +579,40 @@ def _has_abstractmethod(function_node: ast.FunctionDef | ast.AsyncFunctionDef | ) +def _is_protocol_or_abstract_member( + class_node: ast.ClassDef, + function_node: ast.FunctionDef | ast.AsyncFunctionDef | None, +) -> bool: + if function_node is None: + return False + if _has_abstractmethod(function_node): + return True + return _has_base_named(class_node, {"Protocol"}) and _is_stub_function(function_node) + + +def _is_stub_function(function_node: ast.FunctionDef | ast.AsyncFunctionDef) -> bool: + body = [statement for statement in function_node.body if not _is_docstring_statement(statement)] + return bool(body) and all(_is_stub_statement(statement) for statement in body) + + +def _is_docstring_statement(statement: ast.stmt) -> bool: + return ( + isinstance(statement, ast.Expr) + and isinstance(statement.value, ast.Constant) + and isinstance(statement.value.value, str) + ) + + +def _is_stub_statement(statement: ast.stmt) -> bool: + if isinstance(statement, ast.Pass): + return True + return ( + isinstance(statement, ast.Expr) + and isinstance(statement.value, ast.Constant) + and statement.value.value is Ellipsis + ) + + def _has_base_named(class_node: ast.ClassDef, names: set[str]) -> bool: return any(_base_name(base).rsplit(".", maxsplit=1)[-1] in names for base in class_node.bases) diff --git a/registry/index.json b/registry/index.json index aadd2c4..01bc8f3 100644 --- a/registry/index.json +++ b/registry/index.json @@ -78,9 +78,9 @@ }, { "id": "nold-ai/specfact-code-review", - "latest_version": "0.47.28", - "download_url": "modules/specfact-code-review-0.47.28.tar.gz", - "checksum_sha256": "968386b7d14223a47f76de0aa1289e7b4a2aabe486a5c256a40feedcec3988bd", + "latest_version": "0.47.29", + "download_url": "modules/specfact-code-review-0.47.29.tar.gz", + "checksum_sha256": "e4856920ab47db60d58800b0662ac878ce43cb32d4cb2938cda3cd750e68cb51", "core_compatibility": ">=0.44.0,<1.0.0", "tier": "official", "publisher": { diff --git a/registry/modules/specfact-code-review-0.47.29.tar.gz b/registry/modules/specfact-code-review-0.47.29.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6bf9353dec193af400e8132e83ba7695e254ba4b GIT binary patch literal 59853 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