Conversation
…ommit 4/8)
Adds `spar moves enumerate --component X [--target-filter PREFIX] [--format
{json,text}]`, the second user-facing surface of the v0.8.0 migration
oracle. Lists every valid hypothetical rebinding target for a component
within Allowed_Targets (or all processors if Allowed_Targets is absent),
runs the same validation pipeline as `verify` for each, and reports
ok / violations / slack-rank.
JSON output is the canonical machine-readable shape (will be consumed
by the v0.9.0 MCP tool surface). Text output lists candidates in a
human-readable table with a `total=N valid=K` summary.
Slack ranking is the v0.8.0 simple metric: min(deadline − response_time)
across threads on the candidate target. Multi-objective ranking
(weight, power, EMV2 cost) lands in commits 5-6.
New requirement: REQ-MIGRATION-006.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Track E commit 4 of 8 for the v0.8.0 migration oracle.
Adds
spar moves enumerate --component X [--target-filter PREFIX] [--format {json,text}], the second user-facing surface of the migration oracle. Builds on commit 3 (spar moves verify, #166).Spar_Migration::Allowed_Targets, those names are used. Otherwise every Processor / VirtualProcessor in the instance is a candidate.--target-filteris an optional case-insensitive substring narrower applied on top of either set.spar moves verify: build a single-moveBindingOverlay, validate it (Frozen / Allowed_Targets), run the analysis suite, and produce a structuredMoveCandidate(target,ok,violations,diagnostics_count,slack_ns).min(deadline − response_time)in picoseconds, parsed from RTA's info-level"thread '...' on processor '...': response time X <= deadline Y"diagnostics.Nonewhen RTA produced no usable info diagnostics; negative-sentinel when RTA reports a deadline miss. The full multi-objective ranking (weight, power, EMV2 cost) lands in commits 5-6.spar.enumerate_movestool surface). Text is a sortable table with atotal=N valid=Ksummary footer.valid >= 1); 1 otherwise (or input-resolution error).What's NOT in this commit
spar-solverintegration).spar.enumerate_moves— v0.9.0.Files changed
crates/spar-cli/src/moves.rs— extends withEnumerateArgs,MoveCandidate,MoveEnumerateReport,run_enumerate, candidate-target derivation, slack parser, text + JSON renderers, and dispatch wiring (~640 LOC). ReusesVerifyArgs/Violation/build_report/resolve_component/fqnfrom commit 3.crates/spar-cli/src/main.rs— top-level help line for the new subcommand.crates/spar-cli/tests/moves_enumerate.rs— 10 new integration tests.crates/spar-hir-def/src/overlay.rs+lib.rs—read_allowed_targetsnowpub(re-exported) so enumerate can derive the candidate set without staging an overlay just to ask.artifacts/requirements.yaml—REQ-MIGRATION-006.artifacts/verification.yaml—TEST-MOVES-ENUMERATElinked to REQ-MIGRATION-{004,005,006}.Test plan
cargo build --workspacecleancargo test --workspacegreen (10 new integration tests + 4 new unit tests, additive on top of existing 800+; full workspace also passes)cargo clippy --workspace --all-targets -- -D warningscleancargo fmt --all -- --checkcleanrivet validateclean (pre-existing INFO-level field-shape notes only)total=N valid=Kspar analyzeoutput is byte-identical before / after enumerate (overlay is read-only)🤖 Generated with Claude Code