From cartograph
Invoke when the user wants to review, accept, or reject pending proposals on widgets they own. Fires on "review my proposals", "walk through pending proposals", "someone proposed a change to my widget", "accept this proposal", "reject this proposal", "show me the diff for proposal X". Does NOT fire on questions about what proposals or governance are — that's cg-cloud. Does NOT fire on one-off agent MCP calls made as part of another task. Does NOT fire on changing governance defaults — that's cg-config.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cartograph:cg-proposalsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill walks the owner through their pending proposals one at a
This skill walks the owner through their pending proposals one at a time. It is action-shaped, not orientation-shaped. The user invoked it because they have decisions to make, not because they want to learn the model.
If the user asks what governance is, what a proposal does structurally, or how the cloud layer works, hand to cg-cloud and stop.
Use the cartograph CLI for proposal review because proposal queue,
diff, accept, and reject operations are not currently exposed as MCP
tools. Do not try to model this workflow with registry search or
generic widget status calls.
In parallel:
cartograph whoami — auth gatecartograph cloud proposals (no args) — the queue across every
widget the user owns, with diff summaries inline per proposalcartograph login,
exit. Don't try to walk a queue without auth.Before the first proposal, one sentence on scope: "You have 3 proposals across 2 widgets." Group by widget — less context switching when multiple proposals target the same one.
The proposals response already carries everything needed to triage. For each one, present a compact card — not a dump:
v0.3.0 → v0.4.0
— tells you patch/minor/major)diff_summary: file count, +N/-M lines,
widget.json-changed flagviolations from the submitter's validation runPresent it as a short block, not a bulleted list the user has to parse.
Don't recommend accept or reject. Surface the signal, let the user decide.
After presenting each proposal, ask for one of:
cartograph cloud proposals <widget_id> <id> --acceptcartograph cloud proposals <widget_id> <id> --reject --reason "..."cartograph cloud proposals <widget_id> <id> --diff, show the unified diff, re-prompt for accept/reject/skipNever pass --reject without --reason. Proposers learn from the
reason; skipping it wastes the feedback loop.
Never batch. One proposal, one decision, confirm, next.
Short confirmation, then move on: "Accepted. 2 remaining." "Rejected with reason. 2 remaining." "Skipped. Still queued, 2 remaining."
Don't restate the proposal you just handled. Don't preview the next one before the user is ready.
Don't suggest more work (don't drift into "while we're here, want to also...").
--diff returns hundreds of lines, acknowledge
it's a lot and ask if the user wants to narrow to specific files
(the current CLI prints the whole thing; offer to scroll or save to
a file if the user asks).This skill only walks pending proposals. It does not:
If the conversation moves off proposal review, let this skill end.
--reject without a reason.npx claudepluginhub benteigland11/cartograph-pluginCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.