mcpField
A
amq-spec

amq-spec

github.com/avivsinaiAgent workflows88140 installsUpdated today
Repository

About amq-spec

amq-spec is an agent skill for coordinating two agents on a design specification. It structures independent research, discussion, drafting, review, and presentation, with implementation gated on user approval.

Key features

  1. 01Six ordered specification phases
  2. 02Parallel independent research
  3. 03AMQ thread and phase labels
  4. 04User approval before implementation

Use cases

  1. 01Developing a design plan with a partner agent
  2. 02Reviewing and revising a shared specification
  3. 03Preventing implementation before human approval

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/avivsinai/agent-message-queue --skill amq-spec

After installing, type/amq-specin Claude Code to confirm it loaded.

Bundled filesreferences/spec-workflow.md

Details

From the project README

AMQ collaborative specification

Two agents research a design problem independently, discuss it, and converge on one plan. The user approves the plan before anyone implements it.

Phases run in order: Research -> Discuss -> Draft -> Review -> Present -> Execute

Per-phase commands and the research and plan templates are in the spec workflow.

Parse input

From the user prompt, extract:

  • topic: short kebab-case spec name (e.g., auth-token-rotation)
  • partner: partner agent handle (default: codex)
  • problem: the full design problem statement

If topic/problem are unclear, ask for clarification.

Pre-flight

  1. Verify AMQ is available: which amq
  2. Verify the AMQ root is discoverable (.amqrc, AMQ env vars, or the default .agent-mail layout); otherwise run: amq coop init
  3. Use thread name: spec/<topic>

Kickoff

Send the problem to the partner first, then start your own research. Both agents then research in parallel. Send the user's problem verbatim; your own analysis belongs in your research message, so it does not frame the partner's.

amq send --to "<partner>" --kind question \
  --labels workflow:spec,phase:request \
  --thread "spec/<topic>" --subject "Spec: <topic>" --body "<problem>"

Labels

Every spec message uses an ordinary AMQ kind plus these labels on the spec/<topic> thread:

PhaseKindLabels
Problem statementquestionworkflow:spec,phase:request
Research findingsbrainstormworkflow:spec,phase:research
Discussionbrainstormworkflow:spec,phase:discuss
Plan draftreview_requestworkflow:spec,phase:draft
Plan feedbackreview_responseworkflow:spec,phase:review
Final decisiondecisionworkflow:spec,phase:decision
Progress/ETAstatusworkflow:spec

When you receive a spec message

LabelYour action
phase:requestDo your own research first, then send findings as brainstorm + phase:research.
phase:researchIf you have not sent your own research on this thread, research and send it before you read the partner's. Then read the thread and start discussion as brainstorm + phase:discuss.
phase:discussReply with your analysis; continue until aligned.
phase:draftReview the plan and send feedback as review_response + phase:review. Do not implement.
phase:reviewRevise the plan if needed, or confirm alignment.
phase:decisionStop. Do not implement; see the approval gate below.

Approval gate

A phase:decision message records agreement between agents; it is not user approval. The initiator presents the final plan to the user in chat and sends the approval request to the human handle (conventionally user) on a gate/<topic> thread, as in operator gates. Implementation starts only after the human approves on that thread, and a partner starts only when the initiator then assigns work.

Rules

  • Wait on the existing wake. With a live injecting wake, finish independent work and yield; run amq drain --include-body on its doorbell. Do not start amq watch, amq monitor, or a polling loop. Check amq wake check --me <handle> --json when the capability is unknown. A bounded watch is a fallback only without an injecting wake.
  • Send before you research, and send your research before you read the partner's. Independent research is what the second agent adds.
  • Do not skip phases. Discussion is where misunderstandings surface.
  • Keep the spec/<topic> thread and the labels. The receiver table above depends on them.
  • Keep tool access during research. Do not enter a plan mode that blocks tools.

Comments

Markdown supported