Files
83e13db8fa fix(inbox): keep automatic recovery cleanup out of personal participation (#16063)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - The personal inbox uses issue activity to identify a person's
participation.
> - Issue reads can cancel stale recovery actions and record that
cleanup as the reader's action.
> - This adds unrelated tasks to the inbox and refreshes their activity
timestamps.
> - A workspace owner hold can also alternate between creation and
cancellation after a task finishes.
> - This pull request corrects cleanup attribution, excludes historical
read cleanup, and retains one exact owner hold.
> - Agents can read authorized issue activity to diagnose the same
problem themselves.

## Linked Issues or Issue Description

Refs #15742 excludes logs by the execution-recovery actor from activity
timestamps. This PR covers reader-attributed stale recovery cleanup,
personal inbox participation, exact workspace owner holds, and sandbox
issue activity access. I searched open issues and PRs for recovery inbox
and activity bridge fixes. I found no duplicate for this defect.

**What happened?**

Loading issue lists cancels stale recovery actions under the reader's
identity. The personal inbox treats those rows as user participation.
One completed issue had hundreds of such rows and no edits or comments
by the affected reader. A retained native workspace owner repeatedly
creates a verification action that read projections then cancel. Sandbox
agents cannot inspect the issue activity because the reverse bridge
rejects the route.

**Expected behavior**

Automatic cleanup belongs to the system and does not add an issue to a
reader's inbox. Historical cleanup rows remain auditable but do not
count as participation or recent activity. An unresolved physical
workspace owner keeps one stable verification action. Agents can inspect
activity only for issues their identity may read.

**Steps to reproduce**

1. Finish a task whose native run retains an unverifiable workspace
owner receipt.
2. Repeat workspace recovery checks and GET requests for issue detail,
compact lists, and recovery actions.
3. Observe new recovery action IDs and reader-attributed cancellations
in the activity history.
4. Query the personal inbox for that reader and observe the unrelated
task.
5. From a sandbox agent, request GET /api/issues/:id/activity and
observe Route not allowed.

**Paperclip version or commit**

Observed at f5346c05b9. Regression tests
use current master behavior.

**Deployment mode**

Authenticated hosted instance with native and legacy sandbox agents. The
inbox defect is independent of the adapter.

## What Changed

- Attribute automatic stale recovery cleanup to the recovery system
actor.
- Exclude exact historical read cleanup rows from personal inbox
membership, unread counts, and both activity timestamp queries. Keep all
audit rows and explicit user recovery decisions.
- Retain owner verification holds only while the exact company, run,
issue, and owner fingerprint still match. Apply the same rule to reads
and background recovery.
- Make repeated checks for the same owner hold leave its identity,
attempts, and timestamps unchanged. Keep physical takeover blocked.
- Allow GET issue activity through the sandbox bridge. Keep the existing
company and issue-read authorization and reject broader audit routes.
- Add regressions and update the runtime API and recovery documentation.
Refresh generated source references for the documentation edits. Update
the paired activity, inbox, and recovery maps.

## Verification

- Focused Vitest verification: 315 tests pass across five files. The
updated terminal owner hold regression also passes. The files cover
issue service, recovery routes, activity authorization, sandbox callback
bridge, and native workspace finalization.
- `pnpm -r typecheck` and `pnpm build` pass locally. The full general
and serialized unit test matrix passes in CI on the latest commit. The
duplicate local `pnpm test:run` was stopped after about 30 minutes once
that full CI coverage passed; it did not report a local full-suite pass.
- `node scripts/check-maps.mjs` passes for all paired areas and
capability IDs.
- Apex is 5/5 on commit 44c3787888. Its
access map finding is fixed and resolved. All CI checks are green on
this commit.
- The new regression repeats reads and background sweeps for done and
cancelled tasks. It checks one unchanged hold, zero physical copyback,
zero personal inbox participation, and system cleanup after the exact
receipt is cleared.
- Historical cleanup tests preserve explicit recovery decisions,
nullable metadata, unread counts, and the original audit rows.
- Authorization tests permit an authorized agent and reject
cross-company or issue-boundary reads. Bridge tests reject write
methods, extra path segments, and company-wide audit routes.

## Risks

Existing inbox items can disappear if their only participation evidence
was automatic read cleanup. No data migration or audit deletion is
needed. An unresolved workspace owner remains visible after task
completion; this preserves the physical writer fence. A stale or cleared
owner does not retain the hold. Issue activity access expands only the
sandbox transport allowlist and still uses existing controller
authorization.

## Model Used

OpenAI GPT-6 through Codex, with reasoning, repository inspection, code
editing, shell execution, and test tools. The session identifies the
model family as GPT-6. A more specific runtime model ID and context
window size are not exposed.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
Co-authored-by: Amy (Opus) <noreply@anthropic.com>
2026-10-12 19:25:15 -07:00

1491 lines
65 KiB
YAML

{
"schemaVersion": 1,
"rows": [
{
"id": "skill:skills/paperclip/SKILL.md:10",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L10:paperclip-skill",
"heading": "Paperclip Skill",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:14",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L14:terminology",
"heading": "Terminology",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:20",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L20:authentication",
"heading": "Authentication",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:32",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L32:conversation-tasks",
"heading": "Conversation tasks",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:49",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L49:server-verified-external-chat-turns",
"heading": "Server-Verified External Chat Turns",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:89",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L89:the-heartbeat-procedure",
"heading": "The Heartbeat Procedure",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:200",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L200:generated-artifacts-and-work-products",
"heading": "Generated Artifacts and Work Products",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "register_deliverable",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:248",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L248:status-quick-guide",
"heading": "Status Quick Guide",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:258",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L258:monitors-and-watchers-say-only-what-you-actually-scheduled",
"heading": "Monitors and Watchers (say only what you actually scheduled)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:271",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L271:delegating-review-tasks",
"heading": "Delegating review tasks",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:282",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L282:managing-a-user-s-inbox",
"heading": "Managing A User's Inbox",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:290",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L290:issue-dependencies-blockers",
"heading": "Issue Dependencies (Blockers)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:315",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L315:requesting-board-approval",
"heading": "Requesting Board Approval",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:336",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L336:issue-thread-interactions",
"heading": "Issue-Thread Interactions",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "request_human_input",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:366",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L366:standalone-decisions",
"heading": "Standalone Decisions",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:470",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L470:mcp-tool-approval-gates",
"heading": "MCP Tool Approval Gates",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:512",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L512:niche-workflow-pointers",
"heading": "Niche Workflow Pointers",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:522",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L522:cases",
"heading": "Cases",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:527",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L527:company-skills-workflow",
"heading": "Company Skills Workflow",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:538",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L538:routines",
"heading": "Routines",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:549",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L549:task-files-and-workspace-choices",
"heading": "Task Files and Workspace Choices",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:555",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L555:issue-workspace-runtime-controls",
"heading": "Issue Workspace Runtime Controls",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:562",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L562:proposing-credentials-safely",
"heading": "Proposing Credentials Safely",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:569",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L569:reading-granted-secrets",
"heading": "Reading Granted Secrets",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:595",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L595:critical-rules",
"heading": "Critical Rules",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:616",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L616:comment-style-required",
"heading": "Comment Style (Required)",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "report_progress",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:648",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L648:update",
"heading": "Update",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:658",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L658:task-documents-and-deliverables",
"heading": "Task Documents and Deliverables",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "write_document",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:672",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L672:planning-required-when-planning-requested",
"heading": "Planning (Required when planning requested)",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "write_document",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:703",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L703:key-endpoints-hot-routes",
"heading": "Key Endpoints (Hot Routes)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:733",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L733:searching-issues",
"heading": "Searching Issues",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:743",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L743:full-reference",
"heading": "Full Reference",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/SKILL.md:747",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L747:conversational-confirmation-answers",
"heading": "Conversational confirmation answers",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "call_api",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/SKILL.md:764",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/SKILL.md#L764:incidental-feedback",
"heading": "Incidental feedback",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1:paperclip-api-reference",
"heading": "Paperclip API Reference",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:9",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L9:response-schemas",
"heading": "Response Schemas",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:11",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L11:agent-record-get-api-agents-me-or-get-api-agents-agentid",
"heading": "Agent Record (`GET /api/agents/me` or `GET /api/agents/:agentId`)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:44",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L44:company-portability",
"heading": "Company Portability",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:116",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L116:issue-with-ancestors-get-api-issues-issueid",
"heading": "Issue with Ancestors (`GET /api/issues/:issueId`)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:202",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L202:issue-update-response-patch-api-issues-issueid",
"heading": "Issue Update Response (`PATCH /api/issues/:issueId`)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:244",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L244:blocker-diagnostics-get-api-issues-issueid-diagnostics-blockers",
"heading": "Blocker Diagnostics (`GET /api/issues/:issueId/diagnostics/blockers`)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:283",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L283:wake-diagnostics-get-api-issues-issueid-diagnostics-wakes",
"heading": "Wake Diagnostics (`GET /api/issues/:issueId/diagnostics/wakes`)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:327",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L327:subtree-diagnostics-get-api-issues-issueid-diagnostics-subtree",
"heading": "Subtree Diagnostics (`GET /api/issues/:issueId/diagnostics/subtree`)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:375",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L375:execution-policy-fields-on-an-issue",
"heading": "Execution Policy Fields On An Issue",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:427",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L427:cross-agent-review-gates",
"heading": "Cross-Agent Review Gates",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:460",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L460:worked-example-ic-heartbeat",
"heading": "Worked Example: IC Heartbeat",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:465",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L465:1-identity-skip-if-already-in-context",
"heading": "1. Identity (skip if already in context)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:469",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L469:2-check-inbox",
"heading": "2. Check inbox",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:476",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L476:3-already-have-issue-101-in-progress-highest-priority-continue-it",
"heading": "3. Already have issue-101 in_progress (highest priority). Continue it.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:483",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L483:4-do-the-actual-work-write-code-run-tests",
"heading": "4. Do the actual work (write code, run tests)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:485",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L485:5-work-is-done-update-status-and-comment-in-one-call",
"heading": "5. Work is done. Update status and comment in one call.",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "report_progress",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:489",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L489:6-still-have-time-checkout-the-next-task",
"heading": "6. Still have time. Checkout the next task.",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:496",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L496:7-made-partial-progress-not-done-yet-comment-and-exit",
"heading": "7. Made partial progress, not done yet. Comment and exit.",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "report_progress",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:501",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L501:worked-example-report-a-board-user-s-mine-inbox",
"heading": "Worked Example: Report A Board User's Mine Inbox",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "report_progress",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:506",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L506:board-user-created-the-requesting-issue",
"heading": "Board user created the requesting issue.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:510",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L510:fetch-the-board-user-s-mine-inbox-issues",
"heading": "Fetch the board user's Mine inbox issues.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:524",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L524:summarize-it-back-to-the-board-in-a-comment-or-document",
"heading": "Summarize it back to the board in a comment or document.",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "write_document",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:529",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L529:worked-example-archive-a-resolved-inbox-item",
"heading": "Worked Example: Archive A Resolved Inbox Item",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:534",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L534:the-responsible-user-s-id-is-resolved-from-the-authenticated-agent-run",
"heading": "The responsible user's id is resolved from the authenticated agent run.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:543",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L543:reverse-the-archive-if-it-was-premature-or-no-longer-desired",
"heading": "Reverse the archive if it was premature or no longer desired.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:553",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L553:worked-example-reviewer-approver-heartbeat",
"heading": "Worked Example: Reviewer / Approver Heartbeat",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:592",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L592:worked-example-manager-heartbeat",
"heading": "Worked Example: Manager Heartbeat",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:595",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L595:1-identity-skip-if-already-in-context",
"heading": "1. Identity (skip if already in context)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:599",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L599:2-check-team-status",
"heading": "2. Check team status",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:606",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L606:3-agent-42-is-blocked-read-comments",
"heading": "3. Agent-42 is blocked. Read comments.",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "report_progress",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:610",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L610:4-unblock-reassign-and-comment",
"heading": "4. Unblock: reassign and comment.",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "report_progress",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:614",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L614:5-check-own-assignments",
"heading": "5. Check own assignments.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:621",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L621:6-create-subtasks-and-delegate",
"heading": "6. Create subtasks and delegate.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:627",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L627:load-tests-depend-on-caching-layer-being-done-first-paperclip-will-auto-wake-agent-55-when-the-blocker-resolves",
"heading": "^ Load tests depend on caching layer being done first. Paperclip will auto-wake agent-55 when the blocker resolves.",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:632",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L632:7-dashboard-for-health-check",
"heading": "7. Dashboard for health check.",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:638",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L638:comments-and-mentions",
"heading": "Comments and @-mentions",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "report_progress",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:645",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L645:update",
"heading": "Update",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:667",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L667:cross-team-work-and-delegation",
"heading": "Cross-Team Work and Delegation",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:671",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L671:receiving-cross-team-work",
"heading": "Receiving cross-team work",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:681",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L681:questions-and-dependencies",
"heading": "Questions and dependencies",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "request_human_input",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:693",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L693:company-context",
"heading": "Company Context",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:705",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L705:company-branding-ceo-board",
"heading": "Company Branding (CEO / Board)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:725",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L725:openclaw-invite-prompt-ceo",
"heading": "OpenClaw Invite Prompt (CEO)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:744",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L744:setting-agent-instructions-path",
"heading": "Setting Agent Instructions Path",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:777",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L777:project-setup-create-workspace",
"heading": "Project Setup (Create + Workspace)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:801",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L801:option-a-one-call-create-with-workspace",
"heading": "Option A: One-call create with workspace",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:820",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L820:option-b-two-calls-project-first-then-workspace",
"heading": "Option B: Two calls (project first, then workspace)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:849",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L849:governance-and-approvals",
"heading": "Governance and Approvals",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:853",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L853:requesting-a-hire-management-only",
"heading": "Requesting a hire (management only)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:918",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L918:ceo-strategy-approval",
"heading": "CEO strategy approval",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:927",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L927:questions-and-waiting-for-human-input",
"heading": "Questions and waiting for human input",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "request_human_input",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1031",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1031:issue-thread-confirmations",
"heading": "Issue-thread confirmations",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1089",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1089:conversational-confirmation-answers",
"heading": "Conversational confirmation answers",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "call_api",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1095",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1095:checkbox-confirmations",
"heading": "Checkbox confirmations",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1210",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1210:item-verdict-requests",
"heading": "Item verdict requests",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1320",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1320:checking-approval-status",
"heading": "Checking approval status",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1326",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1326:approval-follow-up-requesting-agent",
"heading": "Approval follow-up (requesting agent)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1344",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1344:issue-lifecycle",
"heading": "Issue Lifecycle",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1374",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1374:error-handling",
"heading": "Error Handling",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1388",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1388:full-api-reference",
"heading": "Full API Reference",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1390",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1390:agents",
"heading": "Agents",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1411",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1411:issues-tasks",
"heading": "Issues (Tasks)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1452",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1452:companies-projects-goals",
"heading": "Companies, Projects, Goals",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1476",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1476:routines",
"heading": "Routines",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1492",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1492:approvals-costs-activity-dashboard",
"heading": "Approvals, Costs, Activity, Dashboard",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1514",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1514:secrets",
"heading": "Secrets",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1527",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1527:agent-secret-proposals",
"heading": "Agent secret proposals",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1580",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1580:re-bind-an-existing-secret-under-a-new-path-no-secret-id",
"heading": "Re-bind an existing secret under a new path (no secret ID)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1627",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1627:agent-secret-access",
"heading": "Agent secret access",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/api-reference.md:1667",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1667:common-mistakes",
"heading": "Common Mistakes",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/artifacts.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/artifacts.md#L1:generated-artifacts-and-work-products",
"heading": "Generated Artifacts and Work Products",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "register_deliverable",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/artifacts.md:15",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/artifacts.md#L15:workspace-only-file-references",
"heading": "Workspace-Only File References",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/cases.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L1:cases",
"heading": "Cases",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/cases.md:12",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L12:core-model",
"heading": "Core Model",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/cases.md:29",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L29:upsert-semantics",
"heading": "Upsert Semantics",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/cases.md:67",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L67:read-and-search",
"heading": "Read And Search",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/cases.md:90",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L90:documents",
"heading": "Documents",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "write_document",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/cases.md:118",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L118:fields",
"heading": "Fields",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/cases.md:151",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L151:issue-links",
"heading": "Issue Links",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/cases.md:176",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L176:child-cases",
"heading": "Child Cases",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/cases.md:195",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L195:attachments",
"heading": "Attachments",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/cases.md:208",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L208:lifecycle",
"heading": "Lifecycle",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/cases.md:222",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/cases.md#L222:worked-blog-post-example",
"heading": "Worked Blog Post Example",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L1:company-skills-workflow",
"heading": "Company Skills Workflow",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:5",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L5:what-exists",
"heading": "What Exists",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:22",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L22:permission-model",
"heading": "Permission Model",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:29",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L29:core-endpoints",
"heading": "Core Endpoints",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:65",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L65:install-a-skill-into-the-company",
"heading": "Install A Skill Into The Company",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:75",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L75:app-shipped-catalog",
"heading": "App-shipped catalog",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:101",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L101:external-source-import",
"heading": "External source import",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:105",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L105:source-types-in-order-of-preference",
"heading": "Source types (in order of preference)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:116",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L116:example-skills-sh-import-preferred",
"heading": "Example: skills.sh import (preferred)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:138",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L138:example-github-import",
"heading": "Example: GitHub import",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:164",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L164:inspect-what-was-installed",
"heading": "Inspect What Was Installed",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:181",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L181:assign-skills-to-an-existing-agent",
"heading": "Assign Skills To An Existing Agent",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:216",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L216:include-skills-during-hire-or-create",
"heading": "Include Skills During Hire Or Create",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/company-skills.md:256",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/company-skills.md#L256:notes",
"heading": "Notes",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-documents.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-documents.md#L1:issue-documents-through-the-api",
"heading": "Issue documents through the API",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "write_document",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/issue-documents.md:8",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-documents.md#L8:create-a-document",
"heading": "Create a document",
"primaryDisposition": "always_agent_tool",
"semanticOperation": "write_document",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/issue-documents.md:49",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-documents.md#L49:update-or-resolve-an-unclear-write",
"heading": "Update or resolve an unclear write",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L1:issue-workspace-runtime-controls",
"heading": "Issue Workspace Runtime Controls",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:5",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L5:discover-the-workspace",
"heading": "Discover the Workspace",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:23",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L23:choose-files-and-repositories",
"heading": "Choose Files and Repositories",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:37",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L37:control-services",
"heading": "Control Services",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:42",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L42:start-all-configured-services-waits-for-configured-readiness-checks",
"heading": "Start all configured services; waits for configured readiness checks.",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:50",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L50:restart-all-configured-services",
"heading": "Restart all configured services.",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:58",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L58:stop-all-running-services",
"heading": "Stop all running services.",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:77",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L77:read-the-url",
"heading": "Read the URL",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/issue-workspaces.md:86",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L86:mcp-tools",
"heading": "MCP Tools",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L1:paperclip-routines",
"heading": "Paperclip Routines",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/routines.md:16",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L16:lifecycle",
"heading": "Lifecycle",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:27",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L27:creating-a-routine",
"heading": "Creating a Routine",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/routines.md:64",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L64:concurrency-policies",
"heading": "Concurrency Policies",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:76",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L76:catch-up-policies",
"heading": "Catch-Up Policies",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:87",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L87:activity-gated-scheduled-runs",
"heading": "Activity-Gated Scheduled Runs",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:107",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L107:example-skip-quiet-nights",
"heading": "Example: skip quiet nights",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:126",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L126:adding-triggers",
"heading": "Adding Triggers",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:136",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L136:schedule-cron",
"heading": "Schedule (cron)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:150",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L150:webhook",
"heading": "Webhook",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:167",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L167:api-manual-only",
"heading": "API (manual only)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:179",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L179:updating-and-deleting-triggers",
"heading": "Updating and Deleting Triggers",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:196",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L196:manual-run",
"heading": "Manual Run",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/routines.md:212",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L212:updating-a-routine",
"heading": "Updating a Routine",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/routines.md:223",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/routines.md#L223:reading-routines-and-runs",
"heading": "Reading Routines and Runs",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/workflows.md:1",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/workflows.md#L1:paperclip-workflow-playbooks",
"heading": "Paperclip Workflow Playbooks",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/workflows.md:7",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/workflows.md#L7:project-setup-ceo-manager",
"heading": "Project Setup (CEO/Manager)",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/workflows.md:22",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/workflows.md#L22:openclaw-invite-ceo",
"heading": "OpenClaw Invite (CEO)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
},
{
"id": "skill:skills/paperclip/references/workflows.md:50",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/workflows.md#L50:setting-agent-instructions-path",
"heading": "Setting Agent Instructions Path",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/workflows.md:79",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/workflows.md#L79:company-import-export",
"heading": "Company Import / Export",
"primaryDisposition": "optional_agent_tool",
"semanticOperation": "scoped_discovery",
"expectedMockState": "operation_result"
},
{
"id": "skill:skills/paperclip/references/workflows.md:106",
"kind": "skill_heading",
"sourceAnchor": "skills/paperclip/references/workflows.md#L106:self-test-playbook-app-level",
"heading": "Self-Test Playbook (App-Level)",
"primaryDisposition": "control_plane_owned",
"semanticOperation": "runtime_reconciliation",
"expectedMockState": "runtime_decision_record"
}
]
}