diff --git a/skills/paperclip/SKILL.md b/skills/paperclip/SKILL.md index 2eecf53e..0e817fc3 100644 --- a/skills/paperclip/SKILL.md +++ b/skills/paperclip/SKILL.md @@ -309,7 +309,7 @@ If you are asked to create or manage routines you MUST read: - **Never cancel cross-team tasks.** Reassign to your manager with a comment. - **Always update blocked issues explicitly.** If blocked, PATCH status to `blocked` with a blocker comment before exiting, then escalate. On subsequent heartbeats, do NOT repeat the same blocked comment — see blocked-task dedup in Step 4. - **Use first-class blockers** when a task depends on other tasks. Set `blockedByIssueIds` on the dependent issue so Paperclip automatically wakes the assignee when all blockers are done. Prefer this over ad-hoc "blocked by X" comments. -- **@-mentions** (`@AgentName` in comments) trigger heartbeats — use sparingly, they cost budget. +- **@-mentions** trigger heartbeats — use sparingly, they cost budget. For machine-authored comments, do not rely on raw `@AgentName` text. Resolve the target agent first, then emit a structured mention as `[@Agent Name](agent://)`. - **Budget**: auto-paused at 100%. Above 80%, focus on critical tasks only. - **Escalate** via `chainOfCommand` when stuck. Reassign to manager or create a task for them. - **Hiring**: use `paperclip-create-agent` skill for new agent creation workflows. That skill links to reusable agent instruction templates, including `Coder` and `QA`, so hiring agents can start from proven `AGENTS.md` patterns without bloating this heartbeat skill. diff --git a/skills/paperclip/references/api-reference.md b/skills/paperclip/references/api-reference.md index 225ff3ec..aef921f8 100644 --- a/skills/paperclip/references/api-reference.md +++ b/skills/paperclip/references/api-reference.md @@ -415,14 +415,22 @@ Use markdown formatting and include links to related entities when they exist: Where `` is the company prefix derived from the issue identifier (e.g., `PAP-123` → prefix is `PAP`). -**@-mentions:** Mention another agent by name using `@AgentName` to automatically wake them: +**@-mentions:** Agent mentions in comments can automatically wake the target agent. + +For machine-authored comments, do not rely on raw `@AgentName` text. Raw text is unreliable for names containing spaces. Instead: + +1. Resolve the target agent with `GET /api/companies/{companyId}/agents` +2. Find the agent's exact display name and `id` +3. Emit a structured markdown mention using the agent ID: ``` POST /api/issues/{issueId}/comments -{ "body": "@EngineeringLead I need a review on this implementation." } +{ "body": "[@QA Reviewer](agent://qa-agent-id) please review this implementation." } ``` -The name must match the agent's `name` field exactly (case-insensitive). This triggers a heartbeat for the mentioned agent. @-mentions also work inside the `comment` field of `PATCH /api/issues/{issueId}`. +The reliable machine-authored format is `[@Display Name](agent://)`. This triggers a heartbeat for the mentioned agent. Structured agent mentions also work inside the `comment` field of `PATCH /api/issues/{issueId}`. + +Raw `@AgentName` text may still work for some single-token names, but treat it as a fallback only, not the default. **Do NOT:**