本文へ移動
cccskills
無料GitHub で公開

garden-inbox

Scan a Paperclip user's Mine inbox, classify reversible archive candidates, request checkbox confirmation, and archive only accepted selections. Use when asked to garden, clean up, prune, or tidy a Paperclip inbox without changing issues, branches, or workspaces.

インストール方法を見る

含まれるファイル(3)

  • SKILL.md4.3 KB
  • scripts/garden-inbox.mjs28.4 KB
  • scripts/garden-inbox.test.mjs6.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Garden Inbox

Use the bundled script for every stage. Keep the workflow strictly ordered: scan → confirm → apply.

Safety contract

  • Treat scan as read-only. It may read inbox, workspace, close-readiness, and local Git metadata only.
  • Treat confirm as a confirmation-card write only. It must not archive inbox entries or mutate issue fields, branches, or workspaces.
  • Run apply only after a resolved request_checkbox_confirmation interaction. It archives only accepted option IDs that also occur in the originating candidates.json.
  • Remember that inbox archive state is per-user presentation state. It is reversible and does not change the underlying issue.
  • Never substitute issue status changes, branch deletion, workspace cleanup, or issue deletion for inbox archiving.

Inputs

Require PAPERCLIP_API_URL and PAPERCLIP_API_KEY. The script strips a trailing /api from the URL. It resolves the target user from the run JWT payload's responsible_user_id; use --user-id <uuid> only for an explicit target override.

Use a run-owned output directory when available:

RUN_DIR="${PAPERCLIP_RUN_SCRATCH_DIR:-${PAPERCLIP_TASK_SCRATCH_DIR:-.}}/garden-inbox"
mkdir -p "$RUN_DIR"

1. Scan

node .agents/skills/garden-inbox/scripts/garden-inbox.mjs scan \
  --output-dir "$RUN_DIR" \
  --stale-days 60

Inspect garden-inbox-report.md and candidates.json. The report groups every inbox row into exactly one bucket:

The scan reads Mine separately for each included issue status so the endpoint's global 500-row cap does not silently omit older rows. If any single-status query reaches that cap, both outputs mark coverage as possibly truncated; do not treat that scan as complete.

  • A: merged/archived workspace and all linked work terminal; selected by default.
  • B: terminal or workspace-gone work idle beyond the threshold; selected by default.
  • C: stale work with commits ahead of base; never selected by default.
  • D: keep; never offered for archiving.

Do not manually promote bucket D entries into the candidate file.

2. Confirm

Post checkbox interactions on the driving issue:

node .agents/skills/garden-inbox/scripts/garden-inbox.mjs confirm \
  --issue-id "$PAPERCLIP_TASK_ID" \
  --candidates "$RUN_DIR/candidates.json"

The script posts sequential cards when a scan has more than 200 candidates. Re-running confirm with the same scan file is idempotent. Leave the driving issue in the waiting posture required by the surrounding Paperclip heartbeat workflow.

When a candidate was declined by the user in an earlier pass, pass --unselect <issueId> (repeatable) so it starts unchecked and its description notes the earlier decline. Never re-offer previously declined items as default-checked.

For development or payload review, suppress the POST:

node .agents/skills/garden-inbox/scripts/garden-inbox.mjs confirm \
  --issue-id "$PAPERCLIP_TASK_ID" \
  --candidates "$RUN_DIR/candidates.json" \
  --dry-run

3. Apply accepted selections

After an interaction-resolution wake, take the resolved interaction ID from the wake payload and run:

node .agents/skills/garden-inbox/scripts/garden-inbox.mjs apply \
  --issue-id "$PAPERCLIP_TASK_ID" \
  --interaction-id "$INTERACTION_ID" \
  --candidates "$RUN_DIR/candidates.json"

On rejection, expiry, or an accepted empty selection, the script archives nothing. Apply preserves the scan file's target user, including an explicit --user-id override. Its summary includes the API undo path and target-user body for every archived row.

Test apply without API writes by supplying a saved interaction response:

node .agents/skills/garden-inbox/scripts/garden-inbox.mjs apply \
  --issue-id "$PAPERCLIP_TASK_ID" \
  --interaction-file resolved-interaction.json \
  --candidates "$RUN_DIR/candidates.json" \
  --dry-run

Verify the bundled logic

Run the zero-dependency Node tests after changing classification or selection safety:

node --test .agents/skills/garden-inbox/scripts/garden-inbox.test.mjs

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Add or extend a Paperclip full-stack runner E2E workflow, fixture, matcher, or report evidence path for local or Daytona execution.

日本語の概要は準備中です。原文の説明を表示しています。

paperclipai/paperclip10万2026年10月10日 更新

Add or extend a Paperclip Runner protocol evaluation definition, roster, assertion, or report fixture with provenance and narrow validation.

日本語の概要は準備中です。原文の説明を表示しています。

paperclipai/paperclip10万2026年10月10日 更新

Drive a real browser to inspect or interact with a web page or app — navigate, take screenshots, read console and network, fill simple forms — for verification tasks, not unattended automation.

日本語の概要は準備中です。原文の説明を表示しています。

paperclipai/paperclip10万2026年10月10日 更新

agentmail

無料

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by your inbox assignment.

日本語の概要は準備中です。原文の説明を表示しています。

paperclipai/paperclip10万2026年10月10日 更新

check-pr

無料

Check a GitHub, GitLab, or Perforce PR/MR/CL for review comments, failing checks, and PR-body gaps. Use when asked to inspect, fix, or prepare a change for submission.

日本語の概要は準備中です。原文の説明を表示しています。

paperclipai/paperclip10万2026年10月10日 更新

Create agent company packages that conform to agentcompanies/v1. Use when asked to create a company, scaffold an agent team, hire agents, or turn a repo/skills collection into a company package.

日本語の概要は準備中です。原文の説明を表示しています。

paperclipai/paperclip10万2026年10月10日 更新

paperclipai のスキルをすべて見る

このスキルの問題を報告する