Skip to content

Feat/ Add propose and apply beside verify on rv mcp - #59

Merged
badimirzai merged 3 commits into
mainfrom
feat--add-agentic-choice-and-verify
Oct 10, 2026
Merged

badimirzai merged 3 commits into
mainfrom
feat--add-agentic-choice-and-verify

Conversation

@badimirzai

Copy link
Copy Markdown
Owner

Summary

  • rv mcp now serves verify, propose, and apply. verify is the only pass. Its arguments and result are unchanged: project_path, optional contracts_path, and a result of exit_code, scan, and error.
  • propose returns the same connection-proposal fields as rv connections propose, as JSON: decided, needs_choice, conflict, and citations. It does not write a file unless write is true, in which case it writes .architon/connections.proposal.yaml under the same --force rule as the CLI. A needs_choice entry lists every candidate and does not mark a GPIO accepted.
  • apply takes a proposal path and runs the same label apply as rv connections apply. It returns files_changed and ids_applied. It does not return an exit code for the design. A needs_choice entry is skipped. An accepted entry may name a pin only by copying a name or number from that entry's candidates. Any other pin is rejected and no schematic is written.
  • Server instructions tell the model to call propose, then apply, then verify, to report exit_code and each finding, and to treat a clean verify with scan.coverage.not_checked rows as a pass of the proved checks only. The schematic is edited only through apply.

Test plan

  • rv mcp lists verify, propose, and apply. verify still accepts only project_path and optional contracts_path. propose and apply results have no exit_code.
  • propose on the I2C fixture returns needs_choice for the ESP32 and does not mark a GPIO accepted. With write omitted, .architon/connections.proposal.yaml is not created.
  • propose with write: true writes that file. A second call without force leaves the file unchanged. force: true overwrites it.
  • apply of an accepted pin that is not in that entry's candidates returns an error, empty files_changed and ids_applied, and does not change the schematic.
  • apply of a pin copied from that entry's candidates adds one net label and returns the schematic path and the entry id. A needs_choice entry is skipped.
  • verify on examples/agent-loop/broken still returns exit_code 2, and scan.coverage.not_checked is still in the result.
  • rv connections apply still prints changed schematic paths and applied ids, exits 3 when a candidate pin is not in the list, and writes nothing in that case.

@badimirzai
badimirzai merged commit d483b07 into main Oct 10, 2026
2 checks passed
@badimirzai
badimirzai deleted the feat--add-agentic-choice-and-verify branch October 10, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant