paperclip/packages/paperclip-runner/spec/capability/source-contract.json

95 lines
11 KiB
JSON

{
"schemaVersion": 1,
"dispositions": ["control_plane_owned", "always_agent_tool", "optional_agent_tool"],
"skillSources": [
"skills/paperclip/SKILL.md",
"skills/paperclip/references/api-reference.md",
"skills/paperclip/references/artifacts.md",
"skills/paperclip/references/cases.md",
"skills/paperclip/references/company-skills.md",
"skills/paperclip/references/issue-workspaces.md",
"skills/paperclip/references/routines.md",
"skills/paperclip/references/workflows.md"
],
"toolMappings": {
"paperclipMe": ["control_plane_owned", "injected_actor_context"],
"paperclipInboxLite": ["control_plane_owned", "runner_work_selection"],
"paperclipListAgents": ["optional_agent_tool", "list_agents"],
"paperclipListSkills": ["optional_agent_tool", "list_company_skills"],
"paperclipGetAgent": ["optional_agent_tool", "get_agent"],
"paperclipListIssues": ["optional_agent_tool", "search_tasks"],
"paperclipGetIssue": ["always_agent_tool", "get_task_context"],
"paperclipGetHeartbeatContext": ["always_agent_tool", "get_task_context"],
"paperclipListComments": ["always_agent_tool", "get_task_history"],
"paperclipGetComment": ["always_agent_tool", "get_task_history"],
"paperclipListIssueApprovals": ["always_agent_tool", "get_task_context"],
"paperclipListDocuments": ["always_agent_tool", "list_documents"],
"paperclipGetDocument": ["always_agent_tool", "read_document"],
"paperclipListDocumentRevisions": ["always_agent_tool", "list_document_revisions"],
"paperclipListProjects": ["optional_agent_tool", "list_projects"],
"paperclipGetProject": ["optional_agent_tool", "get_project"],
"paperclipGetIssueWorkspaceRuntime": ["optional_agent_tool", "get_workspace_runtime"],
"paperclipControlIssueWorkspaceServices": ["optional_agent_tool", "control_workspace_service"],
"paperclipWaitForIssueWorkspaceService": ["optional_agent_tool", "wait_for_workspace_service"],
"paperclipListGoals": ["optional_agent_tool", "list_goals"],
"paperclipGetGoal": ["optional_agent_tool", "get_goal"],
"paperclipListApprovals": ["optional_agent_tool", "list_approvals"],
"paperclipCreateApproval": ["optional_agent_tool", "request_approval"],
"paperclipGetApproval": ["optional_agent_tool", "get_approval"],
"paperclipGetApprovalIssues": ["optional_agent_tool", "get_approval_context"],
"paperclipListApprovalComments": ["optional_agent_tool", "get_approval_context"],
"paperclipCreateIssue": ["optional_agent_tool", "create_task"],
"paperclipUpdateIssue": ["optional_agent_tool", "semantic_task_disposition"],
"paperclipCheckoutIssue": ["control_plane_owned", "atomic_checkout"],
"paperclipReleaseIssue": ["control_plane_owned", "runtime_release"],
"paperclipAddComment": ["always_agent_tool", "report_progress"],
"paperclipSuggestTasks": ["always_agent_tool", "request_human_input"],
"paperclipAskUserQuestions": ["always_agent_tool", "request_human_input"],
"paperclipRequestConfirmation": ["always_agent_tool", "request_human_input"],
"paperclipRequestCheckboxConfirmation": ["always_agent_tool", "request_human_input"],
"paperclipUpsertIssueDocument": ["always_agent_tool", "write_document"],
"paperclipRestoreIssueDocumentRevision": ["optional_agent_tool", "restore_document_revision"],
"paperclipLinkIssueApproval": ["optional_agent_tool", "link_approval"],
"paperclipUnlinkIssueApproval": ["optional_agent_tool", "unlink_approval"],
"paperclipApprovalDecision": ["optional_agent_tool", "decide_approval"],
"paperclipAddApprovalComment": ["optional_agent_tool", "comment_on_approval"],
"paperclipApiRequest": ["optional_agent_tool", "test_only_api_escape_hatch"]
},
"evalGroups": {
"hb": ["control_plane_owned", "control_plane_invariant", "get_task_context", "active_task_context"],
"co": ["control_plane_owned", "control_plane_invariant", "atomic_checkout", "checkout_decision"],
"st": ["always_agent_tool", "combined_multi_hop", "semantic_task_disposition", "terminal_or_blocked_task"],
"cm": ["always_agent_tool", "agent_tool_contract", "report_progress", "rendered_comment"],
"se": ["optional_agent_tool", "agent_tool_contract", "search_tasks", "company_scoped_search"],
"su": ["optional_agent_tool", "combined_multi_hop", "create_child_task", "delegation_and_wake"],
"bl": ["always_agent_tool", "combined_multi_hop", "block_task", "blocker_projection"],
"dp": ["always_agent_tool", "agent_tool_contract", "write_document", "revision_safe_document"],
"ix": ["always_agent_tool", "combined_multi_hop", "request_human_input", "interaction_and_wake"],
"ap": ["optional_agent_tool", "authorization_policy", "request_approval", "approval_gate"],
"ar": ["always_agent_tool", "agent_tool_contract", "register_deliverable", "artifact_and_work_product"],
"er": ["control_plane_owned", "combined_multi_hop", "runtime_reconciliation", "recovery_or_restraint"],
"rf": ["optional_agent_tool", "agent_tool_contract", "optional_reference_workflow", "scoped_reference_result"],
"mh": ["always_agent_tool", "combined_multi_hop", "create_child_task", "multi_hop_projection"],
"rs": ["control_plane_owned", "restraint_no_call", "none", "unchanged_state"],
"wk": ["control_plane_owned", "combined_multi_hop", "wake_reconciliation", "wake_mode_projection"]
},
"evalCases": {
"hb": ["hb-context-01|Prefer compact heartbeat context", "hb-inbox-lite-01|Use compact inbox for normal heartbeat", "hb-pick-priority-01|Prioritize in-progress work", "hb-scoped-wake-01|Scoped wake skips inbox", "hb-wake-comment-01|Read triggering comment first"],
"co": ["co-409-stop-01|Stop after checkout conflict", "co-409-stop-02|Named conflict remains terminal", "co-before-work-01|Checkout before issue writes", "co-body-contract-01|Send checkout request contract", "co-no-status-patch-01|Do not patch into progress", "co-runid-header-01|Audit modifying calls"],
"st": ["st-backlog-park-01|Park postponed work in backlog", "st-blocked-owner-01|Record blocker owner", "st-crossteam-cancel-01|Reassign cross-team task instead of cancelling", "st-done-comment-01|Close task with explanatory comment", "st-env-blocked-notdone-01|Block impossible deliverable with an owner", "st-ephemeral-verify-01|Disclose ephemeral verification", "st-handback-review-01|Return task for board review", "st-unverified-toolchain-01|Block when verification cannot run"],
"cm": ["cm-mention-structured-01|Render structured mentions", "cm-multiline-01|Preserve multiline comments", "cm-prefixed-url-01|Prefix internal URLs by company", "cm-progress-nextaction-01|Report progress and next owner", "cm-runid-modify-01|Audit comment writes", "cm-ticket-link-01|Render ticket links"],
"se": ["se-get-issue-01|Read issue and history", "se-q-comments-01|Search comment bodies", "se-q-filters-01|Combine search filters", "se-q-topic-01|Find issue by topic"],
"su": ["su-crossteam-billing-01|Set cross-team billing", "su-inherit-workspace-01|Inherit workspace for follow-up", "su-no-poll-01|Delegate without polling", "su-parent-goal-01|Create subtasks with parent and goal"],
"bl": ["bl-cancelled-not-resolved-01|Cancelled blocker remains unresolved", "bl-clear-01|Clear blocker set", "bl-create-blocked-01|Create dependent work blocked", "bl-firstclass-01|Use first-class dependencies", "bl-read-owners-01|Read blocker owners"],
"dp": ["dp-base-revision-01|Use latest document revision", "dp-plan-doc-01|Store plan in plan document", "dp-plan-link-comment-01|Deep-link plan document"],
"ix": ["ix-checkbox-01|Use checkbox confirmation for subset", "ix-checkbox-result-01|Act on selected option IDs", "ix-confirmation-plan-01|Bind plan confirmation to revision", "ix-continuation-01|Use continuation wake policy", "ix-questions-01|Use typed questions", "ix-stale-target-01|Rebuild after stale target", "ix-suggest-tasks-01|Suggest before creating tasks", "ix-superseded-comment-01|Address superseding comment", "ix-verdicts-01|Request item verdicts"],
"ap": ["ap-approval-deny-01|Keep denied approval task open", "ap-approval-wake-01|Resolve approval wake", "ap-board-approval-01|Request board approval for spend", "ap-mcp-expiry-01|Re-call once after approval expiry", "ap-mcp-gate-01|Wait on pending MCP approval", "ap-mcp-pathmissing-01|Reroute on missing approval path"],
"ar": ["ar-no-done-without-upload-01|Upload file deliverable before close", "ar-upload-before-done-01|Attach deliverable before done", "ar-workproduct-pr-01|Register pull request work product", "ar-workproduct-wsfile-01|Register workspace file work product"],
"er": ["er-blocked-dedup-01|Avoid duplicate blocked update", "er-budget-critical-01|Choose critical work at high budget", "er-close-retry-fault-01|Retry terminal close faults", "er-exec-not-participant-01|Do not advance foreign review stage", "er-exec-participant-01|Advance own review stage", "er-mention-handoff-01|Checkout explicit mention handoff", "er-mention-noassign-01|Do not claim FYI mention", "er-no-unassigned-01|Exit on empty inbox", "er-release-01|Release task handback"],
"rf": ["rf-api-404-report-01|Report missing issue honestly", "rf-api-cancel-obsolete-01|Cancel obsolete work", "rf-api-mention-discipline-01|Avoid non-actionable mentions", "rf-api-mgr-heartbeat-01|Run manager heartbeat", "rf-api-review-changes-01|Request review changes", "rf-art-attachment-wp-01|Register attachment work product", "rf-case-child-01|Create child case", "rf-case-lifecycle-link-01|Link active case", "rf-case-upsert-doc-01|Upsert case document", "rf-cskill-audit-01|Audit library and attached skills", "rf-cskill-install-attach-01|Install then attach skill", "rf-cskill-self-sync-01|Preserve skills during sync", "rf-iws-start-url-01|Start issue workspace service", "rf-iws-target-restart-01|Restart selected workspace service", "rf-routine-create-01|Create weekly routine", "rf-routine-manual-run-01|Manually run routine", "rf-routine-pause-01|Pause routine reversibly", "rf-routine-policy-01|Configure routine policies", "rf-routine-webhook-01|Add signed webhook trigger", "rf-wf-export-preview-01|Preview narrowed export", "rf-wf-invite-01|Create paste-ready invite", "rf-wf-project-setup-01|Set up repo workspace project"],
"mh": ["mh-blocked-handoff-01|Create review handoff blocker", "mh-children-complete-01|Complete parent after children", "mh-plan-confirm-01|Confirm a written plan", "mh-subtask-tree-01|Create sequenced subtask tree"],
"rs": ["rs-dependency-blocked-wake-01|Triages dependency-blocked wake", "rs-question-only-01|Answer question without mutation", "rs-secret-hygiene-01|Never expose API key"],
"wk": ["wk-ask-mode-01|Answer-only ask-mode wake", "wk-plan-accepted-01|Create tasks after accepted plan", "wk-plan-annotation-01|Revise annotated plan", "wk-plan-directive-01|Write plan then request confirmation", "wk-plan-directive-02|Honor prose planning directive", "wk-recovery-processlost-01|Recover without duplicate work", "wk-resume-delta-01|Apply condensed resume contract", "wk-skilltest-mode-01|Write structured skill test output"]
}
}