mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-12 14:19:00 +01:00
## Thinking Path
> - Paperclip is the open source app people use to manage AI agents for
work.
> - Agents ask users for input with the `request_human_input` tool or
the `ask_user_questions` interaction. Paperclip shows each call as one
question card.
> - In an onboarding walk, a Codex execution agent asked five
independent questions (name, menu and prices, contact, style, output).
It posted five cards, one after the other. Each card came 20-60 s after
the previous answer.
> - The tool description said: "For one question at a time, ask only the
next unanswered question and wait for its real answer." Agents read this
as a rule. The paperclip skill showed only a one-question example and
did not tell agents to batch.
> - No server cap exists. A question set accepts up to 64 questions.
> - This pull request changes the guidance. Agents now ask independent
inputs together in one card. They use a follow-up card only when a
question depends on an earlier answer. One-at-a-time stays available
when the user asks for it.
> - The benefit is fewer waits for the user: one card and one agent turn
instead of five.
## Linked Issues or Issue Description
**What happened?**
An execution agent asked a user five independent follow-up questions in
five separate question cards. Each card appeared only after the user
answered the previous card and the agent finished another turn (20-60 s
each).
**Expected behavior**
When an agent needs several independent inputs, it asks them together in
one multi-question card. The onboarding interview already does this ("1
of 4" pager).
**Steps to reproduce**
1. Complete onboarding on the Codex API path and hand off a task such as
"Create printable cake menu and logo".
2. Watch the execution agent's first turns.
3. See five sequential single-question cards.
**Paperclip version or commit**
master at 4938a930d6 (local dev server).
**Agent adapter(s) involved**
Codex (gpt-5.6-sol). The guidance is shared by all adapters that use the
Runner `request_human_input` tool or the `paperclip` skill.
## What Changed
-
`packages/paperclip-runner/src/protocol-actions/request-human-input.ts`:
replace the ambiguous "For one question at a time…" sentence. The new
text tells agents to ask independent inputs together in one questions
card. They use a follow-up card only when it depends on an earlier
answer. It keeps one-at-a-time for when the user asks for it.
- `skills/paperclip/SKILL.md` and
`skills/paperclip/references/api-reference.md`: add the same batching
rule to the human-input sections.
- `packages/mcp-server/src/tools.ts`: add the batching hint to the
`paperclipAskUserQuestions` tool description.
- Regenerated runner contracts (`semantic-tool-contracts.json`,
`protocol/manifest.json`, `native-execution-seeded.json`) and updated
the legacy MCP alias semantics in `spec/capability/mcp-tool-map.yaml`.
- New tests: `core-contracts.test.ts` (tool description) and
`paperclip-skill-utils.test.ts` (skill and API reference).
## Verification
Red on master (tests added, source unchanged):
```
packages/paperclip-runner: npx vitest run src/protocol-actions/core-contracts.test.ts -t batch
× tells agents to batch independent questions into one card instead of asking them one by one
AssertionError: expected 'Create a durable human question or ap…' not to contain 'For one question at a time'
Tests 1 failed | 20 skipped (21)
npx vitest run server/src/__tests__/paperclip-skill-utils.test.ts -t batch
× tells agents to batch independent human-input questions into one card
AssertionError: expected ' For an open answer, use a text field…' to contain 'ask them together in one card'
Tests 1 failed | 21 skipped (22)
```
Green after the fix:
```
packages/paperclip-runner: npx vitest run src/protocol-actions src/drivers/runner-tool-bridge.claude-schema.test.ts
Test Files 4 passed (4) Tests 46 passed (46)
npx vitest run server/src/__tests__/paperclip-skill-utils.test.ts Tests 22 passed (22)
npx vitest run server/src/services/native-runtime/paperclip-runner-tool-authority.test.ts Tests 41 passed (41)
node scripts/generate-semantic-contracts.mjs --check / generate-capability-contract --check / generate-semantic-action-catalog --check / generate-replay-goldens --check: current
```
`packages/mcp-server` has one failure ("allows create issue requests to
omit status…"). It also fails on master without this change, so it is
not related.
This is a guidance change. The automated check proves that the guidance
the agent receives tells it to batch. I did not run a live-model eval.
## Risks
- Low risk. The change is text only: tool descriptions and skill docs.
No schema, API, or storage change.
- An agent could put a dependent question into the same card. The text
tells agents to use a follow-up card for dependent questions.
## Model Used
- Claude Opus 5.5 (`claude-opus-5-5`) in Claude Code, with 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
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
433 lines
19 KiB
YAML
433 lines
19 KiB
YAML
# GENERATED FILE — DO NOT EDIT. Run pnpm generate:capability-inventory.
|
|
{
|
|
"schemaVersion": 2,
|
|
"inventoryRole": "legacy_alias_index",
|
|
"generatedFrom": "packages/mcp-server/src/tools.ts",
|
|
"normativeSources": [
|
|
"capabilities",
|
|
"evaluations"
|
|
],
|
|
"rows": [
|
|
{
|
|
"id": "mcp:paperclipMe",
|
|
"name": "paperclipMe",
|
|
"description": "Get the current authenticated Paperclip actor details",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:290",
|
|
"expectedSemantics": "Get the current authenticated Paperclip actor details",
|
|
"foldedInto": "eval:hb-inbox-lite-01",
|
|
"evidenceId": "mcp:paperclipMe"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipInboxLite",
|
|
"name": "paperclipInboxLite",
|
|
"description": "Get the current authenticated agent inbox-lite assignment list",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:296",
|
|
"expectedSemantics": "Get the current authenticated agent inbox-lite assignment list",
|
|
"foldedInto": "eval:hb-inbox-lite-01",
|
|
"evidenceId": "mcp:paperclipInboxLite"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListAgents",
|
|
"name": "paperclipListAgents",
|
|
"description": "List agents in a company",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:302",
|
|
"expectedSemantics": "List agents in a company",
|
|
"foldedInto": "eval:rf-api-mgr-heartbeat-01",
|
|
"evidenceId": "mcp:paperclipListAgents"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListSkills",
|
|
"name": "paperclipListSkills",
|
|
"description": "List the company skill library (all installed skills, independent of which agents have them enabled)",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:308",
|
|
"expectedSemantics": "List the company skill library (all installed skills, independent of which agents have them enabled)",
|
|
"foldedInto": "eval:rf-cskill-audit-01",
|
|
"evidenceId": "mcp:paperclipListSkills"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetAgent",
|
|
"name": "paperclipGetAgent",
|
|
"description": "Get a single agent by id",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:314",
|
|
"expectedSemantics": "Get a single agent by id",
|
|
"foldedInto": "eval:rf-api-mgr-heartbeat-01",
|
|
"evidenceId": "mcp:paperclipGetAgent"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListIssues",
|
|
"name": "paperclipListIssues",
|
|
"description": "List issues for a company with optional filters",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:323",
|
|
"expectedSemantics": "List issues for a company with optional filters",
|
|
"foldedInto": "eval:se-q-filters-01",
|
|
"evidenceId": "mcp:paperclipListIssues"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetIssue",
|
|
"name": "paperclipGetIssue",
|
|
"description": "Get a single issue by UUID or identifier",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:338",
|
|
"expectedSemantics": "Get a single issue by UUID or identifier",
|
|
"foldedInto": "eval:se-get-issue-01",
|
|
"evidenceId": "mcp:paperclipGetIssue"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetHeartbeatContext",
|
|
"name": "paperclipGetHeartbeatContext",
|
|
"description": "Get compact heartbeat context for an issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:344",
|
|
"expectedSemantics": "Get compact heartbeat context for an issue",
|
|
"foldedInto": "eval:hb-context-01",
|
|
"evidenceId": "mcp:paperclipGetHeartbeatContext"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListComments",
|
|
"name": "paperclipListComments",
|
|
"description": "List issue comments with incremental options",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:353",
|
|
"expectedSemantics": "List issue comments with incremental options",
|
|
"foldedInto": "eval:se-get-issue-01",
|
|
"evidenceId": "mcp:paperclipListComments"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetComment",
|
|
"name": "paperclipGetComment",
|
|
"description": "Get a specific issue comment by id",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:366",
|
|
"expectedSemantics": "Get a specific issue comment by id",
|
|
"foldedInto": "eval:hb-wake-comment-01",
|
|
"evidenceId": "mcp:paperclipGetComment"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListIssueApprovals",
|
|
"name": "paperclipListIssueApprovals",
|
|
"description": "List approvals linked to an issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:373",
|
|
"expectedSemantics": "List approvals linked to an issue",
|
|
"foldedInto": "eval:ap-board-approval-01",
|
|
"evidenceId": "mcp:paperclipListIssueApprovals"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListDocuments",
|
|
"name": "paperclipListDocuments",
|
|
"description": "List issue documents",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:379",
|
|
"expectedSemantics": "List issue documents",
|
|
"foldedInto": "eval:dp-base-revision-01",
|
|
"evidenceId": "mcp:paperclipListDocuments"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetDocument",
|
|
"name": "paperclipGetDocument",
|
|
"description": "Get one issue document by key",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:385",
|
|
"expectedSemantics": "Get one issue document by key",
|
|
"foldedInto": "eval:dp-base-revision-01",
|
|
"evidenceId": "mcp:paperclipGetDocument"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListDocumentRevisions",
|
|
"name": "paperclipListDocumentRevisions",
|
|
"description": "List revisions for an issue document",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:392",
|
|
"expectedSemantics": "List revisions for an issue document",
|
|
"foldedInto": "eval:dp-base-revision-01",
|
|
"evidenceId": "mcp:paperclipListDocumentRevisions"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListProjects",
|
|
"name": "paperclipListProjects",
|
|
"description": "List projects in a company",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:402",
|
|
"expectedSemantics": "List projects in a company",
|
|
"foldedInto": "eval:rf-wf-project-setup-01",
|
|
"evidenceId": "mcp:paperclipListProjects"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetProject",
|
|
"name": "paperclipGetProject",
|
|
"description": "Get a project by id or company-scoped short reference",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:408",
|
|
"expectedSemantics": "Get a project by id or company-scoped short reference",
|
|
"foldedInto": "eval:rf-wf-project-setup-01",
|
|
"evidenceId": "mcp:paperclipGetProject"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetIssueWorkspaceRuntime",
|
|
"name": "paperclipGetIssueWorkspaceRuntime",
|
|
"description": "Get the current execution workspace and runtime services for an issue, including service URLs",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:417",
|
|
"expectedSemantics": "Get the current execution workspace and runtime services for an issue, including service URLs",
|
|
"foldedInto": "eval:rf-iws-start-url-01",
|
|
"evidenceId": "mcp:paperclipGetIssueWorkspaceRuntime"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipControlIssueWorkspaceServices",
|
|
"name": "paperclipControlIssueWorkspaceServices",
|
|
"description": "Start, stop, or restart the current issue execution workspace runtime services",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:423",
|
|
"expectedSemantics": "Start, stop, or restart the current issue execution workspace runtime services",
|
|
"foldedInto": "eval:rf-iws-start-url-01",
|
|
"evidenceId": "mcp:paperclipControlIssueWorkspaceServices"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipWaitForIssueWorkspaceService",
|
|
"name": "paperclipWaitForIssueWorkspaceService",
|
|
"description": "Wait until an issue execution workspace runtime service is running and has a URL when one is exposed",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:440",
|
|
"expectedSemantics": "Wait until an issue execution workspace runtime service is running and has a URL when one is exposed",
|
|
"foldedInto": "eval:rf-iws-target-restart-01",
|
|
"evidenceId": "mcp:paperclipWaitForIssueWorkspaceService"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListGoals",
|
|
"name": "paperclipListGoals",
|
|
"description": "List goals in a company",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:466",
|
|
"expectedSemantics": "List goals in a company",
|
|
"foldedInto": "eval:su-parent-goal-01",
|
|
"evidenceId": "mcp:paperclipListGoals"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetGoal",
|
|
"name": "paperclipGetGoal",
|
|
"description": "Get a goal by id",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:472",
|
|
"expectedSemantics": "Get a goal by id",
|
|
"foldedInto": "eval:su-parent-goal-01",
|
|
"evidenceId": "mcp:paperclipGetGoal"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListApprovals",
|
|
"name": "paperclipListApprovals",
|
|
"description": "List approvals in a company",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:478",
|
|
"expectedSemantics": "List approvals in a company",
|
|
"foldedInto": "eval:ap-approval-wake-01",
|
|
"evidenceId": "mcp:paperclipListApprovals"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipCreateApproval",
|
|
"name": "paperclipCreateApproval",
|
|
"description": "Create a board approval request, optionally linked to one or more issues",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:487",
|
|
"expectedSemantics": "Create a board approval request, optionally linked to one or more issues",
|
|
"foldedInto": "eval:ap-board-approval-01",
|
|
"evidenceId": "mcp:paperclipCreateApproval"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetApproval",
|
|
"name": "paperclipGetApproval",
|
|
"description": "Get an approval by id",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:496",
|
|
"expectedSemantics": "Get an approval by id",
|
|
"foldedInto": "eval:ap-approval-wake-01",
|
|
"evidenceId": "mcp:paperclipGetApproval"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipGetApprovalIssues",
|
|
"name": "paperclipGetApprovalIssues",
|
|
"description": "List issues linked to an approval",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:502",
|
|
"expectedSemantics": "List issues linked to an approval",
|
|
"foldedInto": "eval:ap-approval-wake-01",
|
|
"evidenceId": "mcp:paperclipGetApprovalIssues"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipListApprovalComments",
|
|
"name": "paperclipListApprovalComments",
|
|
"description": "List comments for an approval",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:508",
|
|
"expectedSemantics": "List comments for an approval",
|
|
"foldedInto": "eval:ap-approval-deny-01",
|
|
"evidenceId": "mcp:paperclipListApprovalComments"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipCreateIssue",
|
|
"name": "paperclipCreateIssue",
|
|
"description": "Create a new issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:514",
|
|
"expectedSemantics": "Create a new issue",
|
|
"foldedInto": "eval:su-parent-goal-01",
|
|
"evidenceId": "mcp:paperclipCreateIssue"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipUpdateIssue",
|
|
"name": "paperclipUpdateIssue",
|
|
"description": "Patch an issue, optionally including a comment; include resume=true when intentionally requesting follow-up on resumable closed work",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:521",
|
|
"expectedSemantics": "Patch an issue, optionally including a comment; include resume=true when intentionally requesting follow-up on resumable closed work",
|
|
"foldedInto": "eval:st-done-comment-01",
|
|
"evidenceId": "mcp:paperclipUpdateIssue"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipCheckoutIssue",
|
|
"name": "paperclipCheckoutIssue",
|
|
"description": "Checkout an issue for an agent",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:528",
|
|
"expectedSemantics": "Checkout an issue for an agent",
|
|
"foldedInto": "eval:co-body-contract-01",
|
|
"evidenceId": "mcp:paperclipCheckoutIssue"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipReleaseIssue",
|
|
"name": "paperclipReleaseIssue",
|
|
"description": "Release an issue checkout",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:540",
|
|
"expectedSemantics": "Release an issue checkout",
|
|
"foldedInto": "eval:er-release-01",
|
|
"evidenceId": "mcp:paperclipReleaseIssue"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipAddComment",
|
|
"name": "paperclipAddComment",
|
|
"description": "Add a comment to an issue; include resume=true when intentionally requesting follow-up on resumable closed work",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:546",
|
|
"expectedSemantics": "Add a comment to an issue; include resume=true when intentionally requesting follow-up on resumable closed work",
|
|
"foldedInto": "eval:cm-multiline-01",
|
|
"evidenceId": "mcp:paperclipAddComment"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipSuggestTasks",
|
|
"name": "paperclipSuggestTasks",
|
|
"description": "Create a suggest_tasks interaction on an issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:553",
|
|
"expectedSemantics": "Create a suggest_tasks interaction on an issue",
|
|
"foldedInto": "eval:ix-suggest-tasks-01",
|
|
"evidenceId": "mcp:paperclipSuggestTasks"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipAskUserQuestions",
|
|
"name": "paperclipAskUserQuestions",
|
|
"description": "Create an ask_user_questions interaction on an issue. Ask independent questions together in one interaction instead of one per card.",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:565",
|
|
"expectedSemantics": "Create an ask_user_questions interaction on an issue. Ask independent questions together in one interaction instead of one per card.",
|
|
"foldedInto": "eval:ix-questions-01",
|
|
"evidenceId": "mcp:paperclipAskUserQuestions"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipRequestConfirmation",
|
|
"name": "paperclipRequestConfirmation",
|
|
"description": "Create a request_confirmation interaction on an issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:577",
|
|
"expectedSemantics": "Create a request_confirmation interaction on an issue",
|
|
"foldedInto": "eval:ix-confirmation-plan-01",
|
|
"evidenceId": "mcp:paperclipRequestConfirmation"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipRequestCheckboxConfirmation",
|
|
"name": "paperclipRequestCheckboxConfirmation",
|
|
"description": "Create a request_checkbox_confirmation interaction on an issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:589",
|
|
"expectedSemantics": "Create a request_checkbox_confirmation interaction on an issue",
|
|
"foldedInto": "eval:ix-checkbox-01",
|
|
"evidenceId": "mcp:paperclipRequestCheckboxConfirmation"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipUpsertIssueDocument",
|
|
"name": "paperclipUpsertIssueDocument",
|
|
"description": "Create or update an issue document",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:601",
|
|
"expectedSemantics": "Create or update an issue document",
|
|
"foldedInto": "eval:dp-plan-doc-01",
|
|
"evidenceId": "mcp:paperclipUpsertIssueDocument"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipRestoreIssueDocumentRevision",
|
|
"name": "paperclipRestoreIssueDocumentRevision",
|
|
"description": "Restore a prior revision of an issue document",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:612",
|
|
"expectedSemantics": "Restore a prior revision of an issue document",
|
|
"foldedInto": "eval:dp-base-revision-01",
|
|
"evidenceId": "mcp:paperclipRestoreIssueDocumentRevision"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipLinkIssueApproval",
|
|
"name": "paperclipLinkIssueApproval",
|
|
"description": "Link an approval to an issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:627",
|
|
"expectedSemantics": "Link an approval to an issue",
|
|
"foldedInto": "eval:ap-board-approval-01",
|
|
"evidenceId": "mcp:paperclipLinkIssueApproval"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipUnlinkIssueApproval",
|
|
"name": "paperclipUnlinkIssueApproval",
|
|
"description": "Unlink an approval from an issue",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:636",
|
|
"expectedSemantics": "Unlink an approval from an issue",
|
|
"foldedInto": "eval:ap-board-approval-01",
|
|
"evidenceId": "mcp:paperclipUnlinkIssueApproval"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipApprovalDecision",
|
|
"name": "paperclipApprovalDecision",
|
|
"description": "Approve, reject, request revision, or resubmit an approval",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:646",
|
|
"expectedSemantics": "Approve, reject, request revision, or resubmit an approval",
|
|
"foldedInto": "eval:ap-approval-wake-01",
|
|
"evidenceId": "mcp:paperclipApprovalDecision"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipAddApprovalComment",
|
|
"name": "paperclipAddApprovalComment",
|
|
"description": "Add a comment to an approval",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:668",
|
|
"expectedSemantics": "Add a comment to an approval",
|
|
"foldedInto": "eval:ap-approval-deny-01",
|
|
"evidenceId": "mcp:paperclipAddApprovalComment"
|
|
},
|
|
{
|
|
"id": "mcp:paperclipApiRequest",
|
|
"name": "paperclipApiRequest",
|
|
"description": "Make a JSON request to an existing Paperclip /api endpoint for unsupported operations",
|
|
"sourceKind": "legacy_mcp_alias",
|
|
"sourceAnchor": "packages/mcp-server/src/tools.ts:677",
|
|
"expectedSemantics": "Make a JSON request to an existing Paperclip /api endpoint for unsupported operations",
|
|
"foldedInto": "eval:rf-api-404-report-01",
|
|
"evidenceId": "mcp:paperclipApiRequest"
|
|
}
|
|
]
|
|
}
|