New Your team’s decisions, in one playbook every coding agent works from. Never answer your agent twice

commit_proposal_promotion

[SUPPORT] Commit a proposal's promotion through 'depth' (ce4883f3), cumulative over every shallower depth. Requires 'preview_hash' from a just-called preview_proposal_promotion with the SAME arguments — a mismatch (proposal or target project's board changed since) is rejected rather than silently...

SERVERMeridian SOURCE@meridianmcp/mcp
Medium RISK CLASS
Category Write
Parameters 123 required
Recommended Rate-limitedsee the rule below
Registry record Grade D, identity unverified Pull the record →

This record as markdown: /tools/io-github-ajc3xc-meridian/commit-proposal-promotion.md

What commit_proposal_promotion does on Meridian

AI agents use commit_proposal_promotion to create or update resources in Meridian, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Meridian environment.

ParameterTypeRequiredDescription
actor string — Optional actor identity recorded on proposal events.
depth string Yes How far to commit promoting, cumulative over every shallower depth.
pointers array — Pointer declarations to record (depth>='pointers'); each validated via meridian.pointers.validate_pointer ({source_type, targets: [{uri, selector, target_kind?}
project_id string — Target project — where the sprint item lands.
session_id string — Caller session id; threaded into recorded events and into the depth='executable_handoff' handoff.
proposal_id string Yes
preview_hash string Yes The 'preview_hash' from a fresh preview_proposal_promotion call with the SAME arguments.
project_name string — Project name — alternative to project_id; resolved to the id internally.
override_reason string — Non-empty reason to acknowledge and proceed past a triggered HITL deviation instead of stopping (audited).
sprint_item_title string — Override title for the sprint item; defaults to the proposal title.
touches_resources array — Explicit resource ids for the sprint item; overrides inference.
sprint_item_version string — Sprint version for the new item; defaults to 'current'.

Parameters from the server's own tool schema.

Why commit_proposal_promotion is rated Medium

An AI agent can call commit_proposal_promotion faster than any human can review: one bad instruction and it creates or modifies resources in Meridian by the hundred, each call as confident as the last.

Risk signalsHigh parameter count (14 properties) · Bulk/mass operation — affects multiple targets

Questions about commit_proposal_promotion

What does the commit_proposal_promotion tool do? +

[SUPPORT] Commit a proposal's promotion through 'depth' (ce4883f3), cumulative over every shallower depth. Requires 'preview_hash' from a just-called preview_proposal_promotion with the SAME arguments — a mismatch (proposal or target project's board changed since) is rejected rather than silently committed against stale information, and nothing is written. Committing an already-satisfied depth is an idempotent no-op success (matches the preview's already_satisfied=true case). A genuine lost race against a concurrent caller (caught by the underlying race-safe functions) is reported honestly as a failure with a 'deviation_auto_resolved' audit trail — never silently retried or swallowed. When the promoted sprint item's resources or the proposal's own text match one of 3 narrow deviation heuristics (production_deployment / tenant_security_boundary / destructive_behavior), this files a durable HITL via request_hitl and returns hitl_pending=true WITHOUT completing remaining steps — pass a non-empty 'override_reason' to acknowledge and proceed anyway (audited). 'investigation_findings' and 'pointers' are recorded via append_proposal_update at the matching depth; 'pointers' entries are validated via meridian.pointers.validate_pointer (each needs source_type + a non-empty targets array of {uri, selector, target_kind?}). depth='executable_handoff' calls generate_handoff(selected_item_ids=[the new/reused sprint item id]) — scoped to exactly that item's dependency closure, with project/version/session identity. Returns {proposal_id, project_id, depth, already_satisfied, committed, deviation, hitl_pending, hitl_request_id}. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata -- including task log entries, pinned decisions, sprint items, notes, handoff/goal state, and HITL queue items -- are sent to and stored in Meridian's service, in an isolated per-tenant Postgres database (Neon); self-hosted deployments keep the same categories in the configured local SQLite/Postgres database. This data is visible in the dashboard and API, and may resurface in later project context or handoffs. Notes and pinned decisions can be deleted individually; task log entries and sprint items can be deleted via the dashboard/API (not exposed as an agent-facing tool); HITL queue items and handoff state have no per-record delete. Full removal of any of this data is available via project or account deletion, using the documented controls. Do not include secrets. It is categorised as a Write tool in the Meridian MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

What parameters does commit_proposal_promotion accept? +

commit_proposal_promotion accepts 12 parameters: actor, depth, pointers, project_id, session_id, proposal_id, preview_hash, project_name, override_reason, sprint_item_title, touches_resources, sprint_item_version. Required: depth, proposal_id, preview_hash. The full parameter table on this page comes from the server's own tool schema.

How do I enforce a policy on commit_proposal_promotion? +

Register the Meridian MCP server in PolicyLayer and add a rule for commit_proposal_promotion: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Meridian. Nothing to install.

What risk level is commit_proposal_promotion? +

commit_proposal_promotion is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit commit_proposal_promotion? +

Yes. Add a rate_limit block to the commit_proposal_promotion rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block commit_proposal_promotion completely? +

Set action: deny in the PolicyLayer policy for commit_proposal_promotion. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides commit_proposal_promotion? +

commit_proposal_promotion is provided by the Meridian MCP server (@meridianmcp/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

More on Meridian, and thousands of servers like it.

// THE MCP REGISTRY

PolicyLayer tracks 44,603 MCP servers and 515,000+ tools.

Every server has a live record: who publishes it, whether it answers without auth, its risk grade, every tool classified, the recommended policy. This page is one line of Meridian's. Pull the full record:

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.