Add baseline submission handoff preflight#139
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d6a7eaf144
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
Adds a consumer-side “baseline submission handoff” preflight gate to SpecPM so maintainers can validate SpecHarvesterBaselineSubmissionHandoff evidence (including linked fresh-run / prepare-report digest alignment) before using it for first-submission or seeded-baseline review—explicitly as review evidence only, not registry/baseline authority.
Changes:
- Implement
preflight_baseline_submission_handoffinproducer_bundle.pyand expose it viaspecpm producer-bundle preflight-baseline-submissionin the CLI. - Add regression fixtures/tests covering success, CLI JSON output, missing
--rootwarning, and several drift/mismatch failure modes. - Document the new flow/policy across specs + DocC mirrors and register the capability in
specpm.spec.yaml/specpm.yaml.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_core.py | Adds fixtures and regression tests for baseline-submission handoff preflight + documentation linkage assertions. |
| src/specpm/producer_bundle.py | Implements baseline submission handoff preflight validation and reporting, including linked input digest verification under --root. |
| src/specpm/cli.py | Wires new producer-bundle preflight-baseline-submission command + JSON/text output. |
| specs/WORKPLAN.md | Records the workplan item for baseline submission handoff preflight as completed. |
| specs/specpm.spec.yaml | Registers new self-spec capability and evidence links for the baseline handoff preflight and its docs. |
| specs/PRODUCER_BUNDLE_PROPOSAL_POLICY.md | Documents the new preflight command and its “evidence-only” boundary in producer bundle policy. |
| specs/MULTI_PACKAGE_PRODUCER_INTAKE.md | Adds intake guidance and checklist for baseline submission handoffs and preflight usage. |
| specs/GENERATED_CANDIDATE_REFRESH_DECISION_POLICY.md | Documents missing-baseline handoff flow and links to the new policy spec. |
| specs/BASELINE_SUBMISSION_HANDOFF_PREFLIGHT.md | Introduces the baseline handoff preflight policy/spec describing verified contract and maintainer boundary. |
| specpm.yaml | Adds the new capability id to the index-provided capabilities list. |
| Sources/SpecPM/Documentation.docc/SpecPM.md | Links the new baseline preflight spec into DocC top-level documentation. |
| Sources/SpecPM/Documentation.docc/Roadmap.md | Adds roadmap note describing the new baseline submission preflight gate. |
| Sources/SpecPM/Documentation.docc/ProducerBundleProposalPolicy.md | DocC mirror updates for producer bundle policy referencing the new preflight. |
| Sources/SpecPM/Documentation.docc/MultiPackageProducerIntake.md | DocC mirror updates for intake guidance re: baseline submission handoffs. |
| Sources/SpecPM/Documentation.docc/GeneratedCandidateRefreshDecisionPolicy.md | DocC mirror updates for refresh decision policy re: missing-baseline handoffs. |
| Sources/SpecPM/Documentation.docc/CLIReference.md | Documents the new CLI command and its semantics/boundary. |
| Sources/SpecPM/Documentation.docc/BaselineSubmissionHandoffPreflight.md | Adds a DocC page summarizing checks and boundary; points to the full policy spec. |
| ROADMAP.md | Repository roadmap note describing the new baseline submission preflight gate. |
| README.md | Mentions the new preflight command and clarifies it is review evidence only. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Handled review feedback in 21ffe39.
|
Motivation
SpecHarvester can now produce
SpecHarvesterBaselineSubmissionHandoffevidence when a fresh candidate run cannot become a normal refresh decision because SpecPM has no current generated baseline. SpecPM needs a consumer-side gate for that handoff before maintainers use it in first-submission or seeded-baseline review.Goals
specpm producer-bundle preflight-baseline-submissioncommand.SpecPMBaselineSubmissionHandoffPreflightReportwith stable JSON output.Changes
producer_bundle.pyand CLI wiring incli.py.specpm.registry.baseline_submission_handoff_preflight.Validation
PYTHONPATH=src pytest tests/test_core.py -k "baseline_submission_handoff or baseline_submission_handoff_preflight_policy or refresh_decision_preflight" -qPYTHONPATH=src ruff check src/specpm/producer_bundle.py src/specpm/cli.py tests/test_core.pyPYTHONPATH=src ruff format --check src testsPYTHONPATH=src pytest -qPYTHONPATH=src ruff check .git diff --checkPYTHONPATH=src python3 -m specpm.cli validate .make docs-buildmake public-index-generate PUBLIC_INDEX_OUTPUT=/tmp/specpm-baseline-handoff-preflight-public-indexmake pages-smokemake dev-reloadmake dev-smokeBoundaries and Non-Goals
public-index/generated.SpecPMGeneratedCandidateRefreshDecision.Notes
.0alcoordination note for the SpecHarvester -> SpecPM boundary.