From adjutant-agent
Reviews improvement proposals by analyzing strengths, weaknesses, feasibility, and cost estimates. Records persistent comments and optionally creates revisions. Invoke via /discuss-proposal or when discussing proposals.
npx claudepluginhub lupusdei/adjutant --plugin adjutant-agentThis skill uses the workspace's default tool permissions.
Discuss a proposal with the user to refine it before accepting or dismissing. Your review is permanently recorded as a comment on the proposal, and you may create a revision if you identify concrete improvements.
Adversarially reviews software proposals: challenges why/what/how, surfaces blind spots, suggests alternatives. Use for 'review proposal', 'poke holes', or second opinions before specs.
Constructively critiques ideas and proposals by challenging assumptions, finding edge cases and risks, anticipating objections, and suggesting mitigations to strengthen arguments.
Performs multi-agent review of implementation plans using PoLL consensus protocol. Independent expert panels surface diverse issues and blind spots before coding.
Share bugs, ideas, or general feedback.
Discuss a proposal with the user to refine it before accepting or dismissing. Your review is permanently recorded as a comment on the proposal, and you may create a revision if you identify concrete improvements.
/discuss-proposal {proposalId}
You have been asked to discuss and review a proposal with the user. Follow these steps:
Fetch the proposal using the get_proposal MCP tool:
get_proposal({ id: "{proposalId}" })
Validate project match — ensure this proposal belongs to your current project:
get_project_state() to determine your current project.proposal.project with the current project name.send_message({ to: "user", body: "Cannot discuss proposal '<title>' — it belongs to project '<proposal.project>' but I am currently scoped to project '<my-project>'. Please route this to an agent working on '<proposal.project>'.", threadId: "proposal-{proposalId}" })
Do not change the proposal's status (leave it as-is). Stop execution here — do not proceed with the review.Check existing comments and revisions to understand prior discussion:
list_proposal_comments({ id: "{proposalId}" })
list_revisions({ id: "{proposalId}" })
Report status via MCP:
set_status({ status: "working", task: "Reviewing proposal: <title>" })
Analyze the proposal and send your analysis to the user via MCP:
send_message({ to: "user", body: "<your analysis>", threadId: "proposal-{proposalId}" })
Your analysis should cover:
Record your review as a comment on the proposal. This is mandatory — every review must be permanently attached to the proposal record:
comment_on_proposal({ id: "{proposalId}", body: "<review summary>" })
The comment body should be a concise summary of your review findings. It does not need to duplicate the full chat message — focus on the key points: strengths, weaknesses, and any recommended changes.
Engage in discussion: After sending your initial analysis, check for user responses periodically using read_messages. Respond to questions and refine your thinking based on feedback.
If you identify concrete improvements, create a revision. Follow these sub-steps in order:
a. Announce your intent to the user FIRST — you must NOT silently revise. Send a message explaining exactly what you plan to change and why:
send_message({ to: "user", body: "I'd like to revise this proposal. Here's what I plan to change:\n- <change 1 and reason>\n- <change 2 and reason>\nShall I proceed?", threadId: "proposal-{proposalId}" })
b. Wait for user confirmation by checking read_messages — do not revise until the user agrees or the discussion makes it clear the changes are wanted.
c. Create the revision with a meaningful changelog:
revise_proposal({
id: "{proposalId}",
title: "Updated title if changed",
description: "Updated description if changed",
type: "product or engineering if changed",
changelog: "Specific description of what changed and why — e.g. 'Added phased rollout plan for API coverage; corrected assumption about frontend Zod schemas'"
})
Only include the fields you are actually changing (title, description, type). Omit fields that remain the same. The changelog field is always required and must be descriptive — never use generic text like "updated proposal".
When the discussion concludes, suggest next steps:
comment_on_proposal call. The comment records your review for posterity, even if no changes are needed.All questions about the proposal MUST be sent to the user via Adjutant MCP messages. This is non-negotiable.
send_message({ to: "user", body: "Question about proposal '<title>': <your question>" })
Rules:
AskUserQuestion — it blocks execution and the user may not be at the terminalthreadId: "proposal-{proposalId}" so it stays organized.send_message and stop.