mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-22 16:51:28 +02:00
## Thinking Path > - Paperclip is the open source app people use to manage AI agents for work. > - Agents request human input through durable issue interactions. > - A question form has a canonical presentation and a compatibility storage format. > - The creation API required agents to write both formats. > - Tool guidance told agents to split text and choice questions across those formats. > - This pull request accepts one complete canonical form and derives storage fields on the server. > - The benefit is a complete question card with stable answer and retry behavior. ## Linked Issues or Issue Description Related work: Refs #13630 and #14430. PR #13630 addresses the display of historical partial forms. This change fixes creation and keeps the check that rejects conflicting new forms. **What happened?** A question save supplied three compatibility questions and one canonical text question. The API correctly rejected the incomplete canonical form. The Runner's tool description encouraged this split. Sending only a complete canonical form also failed because the API required compatibility questions. **Expected behavior** An agent sends one complete `payload.questionSet` with every text and choice question. Paperclip derives `payload.questions` for storage and answer compatibility. Existing legacy requests remain valid. Explicitly conflicting dual forms remain invalid. **Steps to reproduce** 1. Call `paperclip_request_human_input` with `interactionKind: "questions"`. 2. Send `payload: { version: 1, questionSet: ... }` with a required text question and a required choice question. 3. The old API rejects the missing compatibility questions. With this change, it stores both questions and preserves the canonical form. 4. Retry with the same idempotency key. Confirm that only one interaction exists. 5. Submit both answers. Confirm that the normal resolver and continuation rules apply. **Paperclip version or commit** The branch is based on `cf8ad63c8`. The problem affects the native Runner and the interaction creation API. **Deployment mode** Server deployment with the native Paperclip Runner. Integration tests use the real interaction service and an embedded test database. ## What Changed - Add one shared canonical-to-storage projection. Reuse it for native harness question requests. - Accept canonical-only question creation at the shared validator and server boundary. - Export the input type and update the plugin SDK and its RPC contract. - Advertise a typed, complete question form in the live and scenario tool schemas. - Enforce canonical text and custom-answer constraints before ordinary or native resolution. Preserve harmless display whitespace. - Run regex matching in isolated workers with a deadline and resource limits. Both answer paths await the result before persistence. Saved native delivery uses the validated answer without taking another worker slot. - Update agent guidance and generated Runner contracts. - Test mixed forms, option-ID collisions, retries, answers, legacy requests, and conflicting forms. ## Verification - Interaction service, HTTP route, native bridge, and Runner authority suites: 221 tests passed after correcting an obsolete tool-description assertion. - Shared validator, plugin SDK, CLI, and UI compatibility suites: 67 tests passed. - Runner core tool-contract suite: 20 tests passed. AJV validates live and scenario schemas. - Final review regressions: 172 shared, service, native bridge, and authority tests passed. These cover text length, pattern, numeric limits, whitespace, custom option IDs, and historical pending cards. - Runner session suites: 67 tests passed. Published example tests: 4 tests passed. - Server typecheck and the shared/server builds passed after the compatibility fixes. - Final delivery verification: 35 response-delivery tests passed. The native delivery regression proves saved answers do not enter pattern workers; server typecheck and build passed. - Pattern security and answer-flow verification: 205 tests passed after repairing the child fixture loader. These cover pathological matching, event-loop responsiveness, worker concurrency, slot cleanup, HTTP routes, native delivery, and the full helper in a child process. - `pnpm -r typecheck` passed on the bounded-worker revision. - `pnpm build` passed on the bounded-worker revision. - All 55 GitHub checks passed on `fe457af`; four optional jobs were skipped. An unchanged Cursor adapter test timed out once in CI, passed locally, and passed on one failed-job rerun. - Reviewers can send the canonical-only mixed form above and verify that the saved interaction contains both canonical and compatibility questions. ## Risks - The creation API accepts a new input shape. Stored rows and answer contracts keep the existing shape. - The shared projection must preserve synthetic free-text option IDs. Collision and native round-trip tests cover this behavior. - Historical partial rows remain readable. New conflicting dual forms, including written-answer mismatches, remain rejected. - Existing pending cards retain the written-answer paths offered by their stored options. Canonical text constraints still apply. - Ordinary answers now enforce declared canonical constraints before persistence. Invalid answers leave the card pending. - Regex validation has a one-second deadline and a four-worker capacity limit. A complex pattern or capacity error leaves the card pending with a validation error. - No database migration or change to company authorization is required. ## Model Used - OpenAI GPT-6 through Codex. The session exposes the GPT-6 model family; its exact runtime model identifier and context window size are not exposed. Used reasoning, tool use, and code execution. ## 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>
1428 lines
62 KiB
YAML
1428 lines
62 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:18",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L18:authentication",
|
|
"heading": "Authentication",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:30",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L30:conversation-tasks",
|
|
"heading": "Conversation tasks",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:47",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L47: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:87",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L87:the-heartbeat-procedure",
|
|
"heading": "The Heartbeat Procedure",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:196",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L196: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:244",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L244:status-quick-guide",
|
|
"heading": "Status Quick Guide",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:254",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L254: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:267",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L267:delegating-review-tasks",
|
|
"heading": "Delegating review tasks",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:278",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L278: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:286",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L286:issue-dependencies-blockers",
|
|
"heading": "Issue Dependencies (Blockers)",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:311",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L311:requesting-board-approval",
|
|
"heading": "Requesting Board Approval",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:332",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L332:issue-thread-interactions",
|
|
"heading": "Issue-Thread Interactions",
|
|
"primaryDisposition": "always_agent_tool",
|
|
"semanticOperation": "request_human_input",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:361",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L361:standalone-decisions",
|
|
"heading": "Standalone Decisions",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:465",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L465: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:507",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L507:niche-workflow-pointers",
|
|
"heading": "Niche Workflow Pointers",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:517",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L517:cases",
|
|
"heading": "Cases",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:522",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L522:company-skills-workflow",
|
|
"heading": "Company Skills Workflow",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:533",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L533:routines",
|
|
"heading": "Routines",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:544",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L544: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:551",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L551:proposing-credentials-safely",
|
|
"heading": "Proposing Credentials Safely",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:558",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L558:reading-granted-secrets",
|
|
"heading": "Reading Granted Secrets",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:584",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L584:critical-rules",
|
|
"heading": "Critical Rules",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:605",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L605:comment-style-required",
|
|
"heading": "Comment Style (Required)",
|
|
"primaryDisposition": "always_agent_tool",
|
|
"semanticOperation": "report_progress",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:637",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L637:update",
|
|
"heading": "Update",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:647",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L647: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:680",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L680: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:709",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L709:searching-issues",
|
|
"heading": "Searching Issues",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:719",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L719:full-reference",
|
|
"heading": "Full Reference",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/SKILL.md:723",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/SKILL.md#L723: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: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:110",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L110: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:196",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L196: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:238",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L238: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:277",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L277: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:321",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L321: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:369",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L369: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:421",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L421: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:454",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L454: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:459",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L459: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:463",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L463: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:470",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L470: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:477",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L477: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:479",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L479: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:483",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L483: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:490",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L490: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:495",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L495: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:500",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L500: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:504",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L504: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:518",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L518: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:523",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L523: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:528",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L528: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:537",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L537: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:547",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L547: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:586",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L586: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:589",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L589: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:593",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L593: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:600",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L600: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:604",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L604: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:608",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L608: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:615",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L615: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:621",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L621: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:626",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L626: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:632",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L632: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:639",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L639:update",
|
|
"heading": "Update",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:661",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L661: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:665",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L665: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:675",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L675: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:687",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L687:company-context",
|
|
"heading": "Company Context",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:699",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L699: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:719",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L719: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:738",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L738: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:771",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L771: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:795",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L795: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:814",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L814: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:843",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L843: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:847",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L847: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:912",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L912: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:921",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L921: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:1025",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1025: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:1083",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1083: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:1089",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1089:checkbox-confirmations",
|
|
"heading": "Checkbox confirmations",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:1204",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1204: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:1314",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1314: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:1320",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1320: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:1338",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1338:issue-lifecycle",
|
|
"heading": "Issue Lifecycle",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:1368",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1368:error-handling",
|
|
"heading": "Error Handling",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:1382",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1382: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:1384",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1384:agents",
|
|
"heading": "Agents",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:1405",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1405:issues-tasks",
|
|
"heading": "Issues (Tasks)",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:1446",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1446: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:1470",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1470:routines",
|
|
"heading": "Routines",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:1486",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1486: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:1508",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1508:secrets",
|
|
"heading": "Secrets",
|
|
"primaryDisposition": "optional_agent_tool",
|
|
"semanticOperation": "scoped_discovery",
|
|
"expectedMockState": "operation_result"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/api-reference.md:1521",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1521: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:1574",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1574: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:1621",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1621: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:1661",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/api-reference.md#L1661: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-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:control-services",
|
|
"heading": "Control Services",
|
|
"primaryDisposition": "control_plane_owned",
|
|
"semanticOperation": "runtime_reconciliation",
|
|
"expectedMockState": "runtime_decision_record"
|
|
},
|
|
{
|
|
"id": "skill:skills/paperclip/references/issue-workspaces.md:28",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L28: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:36",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L36: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:44",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L44: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:63",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L63: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:72",
|
|
"kind": "skill_heading",
|
|
"sourceAnchor": "skills/paperclip/references/issue-workspaces.md#L72: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"
|
|
}
|
|
]
|
|
}
|