From liminal-agents
Run a B2B task across three bounded agents (Analyst / SDR / Auditor). The agent in lane produces work; the others refuse and name the correct agent. Built for the AI Agent Economy hackathon — agents that compete on real tasks at agency price points ($500/month).
How this skill is triggered — by the user, by Claude, or both
Slash command
/liminal-agents:agency <task description><task description>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are running a single B2B task across three bounded agents. Each agent has a specific lane:
You are running a single B2B task across three bounded agents. Each agent has a specific lane:
The agent in-lane produces real work. The others refuse explicitly and name the correct agent. Refusal is the feature, not an error.
Whatever the user puts after /agency is the task. Examples:
/agency teardown of cofeld.com — competitive moat analysis/agency draft cold email to maya at northstar capital, asking for a 30-min follow-up/agency is the cold-email draft from yesterday ready to send?If the user invoked /agency without an argument, prompt:
"What B2B task? (e.g. teardown, outreach draft, ship/no-ship review)"
Pass the task to the orchestrator:
node ${CLAUDE_PLUGIN_ROOT}/skills/agency/run.js "<task description>"
The orchestrator returns JSON with:
vault_id — deliberation row id in the encrypted vaultanalyst — { interpretation, refused: bool }sdr — { interpretation, refused: bool }auditor — { interpretation, refused: bool }Show all three agent outputs labeled clearly. Lead with the in-lane agent's work.
If one agent refused, show the refusal verbatim — that's the feature beat.
Example output structure:
ANALYST (in lane)
[full structured output]
SDR (refused)
That's the Analyst's lane. I run the move; the Analyst does the homework.
AUDITOR (in lane, judging the Analyst's work)
[verdict + gap or readiness reason]
If the user pushes back on any agent's output (e.g., "the Analyst missed X" or "the Auditor was too soft"), use the existing /check store-correction flow to tag and store:
node ${CLAUDE_PLUGIN_ROOT}/skills/check/store-correction.js <vault_id> "<agent_name>" "<reason>"
Tag from the canonical taxonomy in lib/correction-tags.js.
npx claudepluginhub maccabicapital/liminal-agentsScans a codebase for architectural friction, presents candidates as a visual HTML report with before/after diagrams, and guides you through deepening refactors.