{"id":"merge-ready-pr-loop","name":"Merge-Ready PR Loop","tagline":"Deterministic PR readiness, record-only remediation, approval-gated GitHub mutations.","description":"Offline-first GitHub PR readiness workflow over canonical read contracts and immutable remediation records. External reviews, comments, workflow dispatches and merges require explicit approval and are never executed by the packaged runner.","tool_count":11,"available_tool_count":11,"total_price_usdc":0.017,"tools":[{"id":"github/pr/get","label":"Get GitHub pull request details","endpoint":"/github/pr/get","path":"/github/pr/get","method":"GET","price_usdc":0.001,"category":"developer","rate_class":"light","tags":["github","pr","pull-request","vcs","developer"],"docs_url":"https://api.iteratools.com/docs#tag/developer/operation/github-pr-get","risk":"low","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":true},{"id":"github/pr/diff","label":"Get GitHub PR diff","endpoint":"/github/pr/diff","path":"/github/pr/diff","method":"GET","price_usdc":0.001,"category":"developer","rate_class":"light","tags":["github","pr","diff","vcs","developer"],"docs_url":"https://api.iteratools.com/docs#tag/developer/operation/github-pr-diff","risk":"low","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":true},{"id":"github/workflow/logs","label":"Get GitHub workflow run logs/status","endpoint":"/github/workflow/logs","path":"/github/workflow/logs","method":"GET","price_usdc":0.001,"category":"developer","rate_class":"light","tags":["github","workflow","logs","ci","actions","vcs","developer"],"docs_url":"https://api.iteratools.com/docs#tag/developer/operation/github-workflow-logs","risk":"low","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":true},{"id":"remediation/plan","label":"Create an immutable declarative remediation plan","endpoint":"/v1/remediations","path":"/v1/remediations","method":"POST","price_usdc":0,"category":"defensive-remediation","rate_class":"light","tags":["control-plane","audit","remediation"],"docs_url":"https://api.iteratools.com/docs#tag/outcome-control-plane","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":false},{"id":"remediation/dry-run","label":"Record a deterministic remediation dry-run","endpoint":"/v1/remediations/{id}/dry-runs","path":"/v1/remediations/{id}/dry-runs","method":"POST","price_usdc":0,"category":"defensive-remediation","rate_class":"light","tags":["control-plane","audit","remediation"],"docs_url":"https://api.iteratools.com/docs#tag/outcome-control-plane","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":false},{"id":"remediation/decide","label":"Record one human remediation approval decision","endpoint":"/v1/remediations/{id}/decision","path":"/v1/remediations/{id}/decision","method":"POST","price_usdc":0,"category":"defensive-remediation","rate_class":"light","tags":["control-plane","audit","remediation"],"docs_url":"https://api.iteratools.com/docs#tag/outcome-control-plane","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":false},{"id":"remediation/apply","label":"Consume approval and emit a record-only remediation apply receipt","endpoint":"/v1/remediations/{id}/apply","path":"/v1/remediations/{id}/apply","method":"POST","price_usdc":0,"category":"defensive-remediation","rate_class":"light","tags":["control-plane","audit","remediation"],"docs_url":"https://api.iteratools.com/docs#tag/outcome-control-plane","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":false},{"id":"github/pr/review","label":"Submit GitHub PR review","endpoint":"/github/pr/review","path":"/github/pr/review","method":"POST","price_usdc":0.003,"category":"developer","rate_class":"medium","tags":["github","pr","review","vcs","developer"],"docs_url":"https://api.iteratools.com/docs#tag/developer/operation/github-pr-review","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":true},{"id":"github/pr/comment","label":"Comment on GitHub PR","endpoint":"/github/pr/comment","path":"/github/pr/comment","method":"POST","price_usdc":0.003,"category":"developer","rate_class":"medium","tags":["github","pr","comment","vcs","developer"],"docs_url":"https://api.iteratools.com/docs#tag/developer/operation/github-pr-comment","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":true},{"id":"github/workflow/run","label":"Trigger GitHub Actions workflow","endpoint":"/github/workflow/run","path":"/github/workflow/run","method":"POST","price_usdc":0.003,"category":"developer","rate_class":"medium","tags":["github","workflow","trigger","ci","actions","vcs","developer"],"docs_url":"https://api.iteratools.com/docs#tag/developer/operation/github-workflow-run","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":true},{"id":"github/pr/merge","label":"Merge GitHub pull request","endpoint":"/github/pr/merge","path":"/github/pr/merge","method":"POST","price_usdc":0.005,"category":"developer","rate_class":"medium","tags":["github","pr","merge","vcs","developer"],"docs_url":"https://api.iteratools.com/docs#tag/developer/operation/github-pr-merge","risk":"high","availability":"available","available":true,"unavailable_reason":null,"supports_code_mode":true}],"missing_tools":[],"execution":{"mode":"offline_fixture","command":"node docs/packs/merge-ready-pr-loop/run.mjs --fixture","network_calls":0,"cost_usdc":0,"steps":["collect","evaluate","record-remediation","approved-github-actions"],"receipts":["merge_readiness","remediation"],"approval_gates":[{"id":"github-mutations","default":"deny"}],"external_mutations_executed":false},"code_mode_endpoint":"/tools/code_mode/execute","guide_url":"https://iteratools.com/examples/packs/merge-ready-pr-loop/","docs_url":"https://api.iteratools.com/packs/merge-ready-pr-loop"}