Files
paperclip/packages/skills-catalog/catalog/bundled/paperclip-operations/task-planning/SKILL.md
T
Dotta 9eac727cf1 [codex] Add skills CLI and catalog management (#6782)
## Thinking Path

> - Paperclip orchestrates AI agents for zero-human companies through
company-scoped control-plane workflows.
> - Agents need reusable, inspectable skills that can be installed,
reset, audited, exported, and assigned without bespoke local setup.
> - The existing skill truth model needed cleanup so bundled skills,
optional catalog skills, runtime skills, and adapter-provided skills
have clear provenance.
> - Operators also need a practical CLI and board UI for discovering and
managing company skills.
> - This pull request adds the skills CLI, packaged skills catalog,
company skills APIs, and catalog-aware board UI.
> - The benefit is a more reusable Paperclip company setup where skills
are portable, auditable, and easier for operators and agents to manage.

## What Changed

- Added `paperclipai skills` CLI commands and coverage for catalog
listing, installing, resetting, and inspecting company skills.
- Added a packaged `@paperclipai/skills-catalog` workspace with bundled
and optional skill content plus validation/build tests.
- Added shared company-skill types and validators used across CLI,
server, and UI contracts.
- Added server catalog APIs/services for company skill catalog
operations, reset semantics, audit behavior, and portability provenance.
- Updated adapter skill handling so runtime/catalog provenance remains
explicit across local adapters.
- Added board UI support for browsing and managing catalog-backed
company skills.
- Updated docs for the skills CLI/catalog flow and the company skills
Paperclip skill reference.
- Rebased the branch onto current `paperclipai/paperclip:master`; no
`pnpm-lock.yaml`, `.github/workflows`, or migration files are included
in the final PR diff.

## Verification

- Passed: `pnpm run preflight:workspace-links && pnpm exec vitest run
cli/src/__tests__/skills.test.ts
packages/skills-catalog/src/catalog-builder.test.ts
packages/skills-catalog/src/shipped-catalog.test.ts
packages/shared/src/validators/company-skill.test.ts
packages/adapter-utils/src/server-utils.test.ts
packages/plugins/create-paperclip-plugin/src/entrypoints.test.ts
server/src/__tests__/company-skills-catalog-service.test.ts
server/src/__tests__/company-skills-routes.test.ts
server/src/__tests__/company-portability.test.ts`.
- Passed: `pnpm exec vitest run
server/src/__tests__/workspace-runtime.test.ts -t "default
branch|origin/master|symbolic-ref"`.
- Attempted: full `server/src/__tests__/workspace-runtime.test.ts`. Four
provisioning tests failed while seeding an isolated worktree database
from the local Paperclip instance because the local plugin schema dump
contains a duplicate-column foreign key
(`plugin_content_machine_18a7bc327b.content_case_signals`). The
default-branch tests touched by the rebase conflict passed in the
focused run above.
- Checked final diff: no `pnpm-lock.yaml`, no `.github/workflows`, and
no migration-file changes relative to `master`.

## Risks

- Medium: this is a broad skills/catalog change touching CLI, server
APIs, shared contracts, adapter skill sync, and UI.
- Catalog validation and reset semantics need careful reviewer attention
because they affect reusable company setup and portability.
- No database migrations are included in this PR, so there is no
migration ordering/idempotency risk in the final diff.
- No lockfile is included by design; dependency resolution will be
handled by the repository lockfile workflow.

## Model Used

- OpenAI Codex coding agent based on GPT-5, running in Paperclip via the
`codex_local` adapter with shell, git, GitHub CLI, and code-editing tool
access. Exact hosted model build/context-window metadata is not exposed
in this runtime.

## 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 run targeted tests locally and documented the local
workspace-runtime seed failure above
- [x] I have added or updated tests where applicable
- [x] If this change affects the UI, screenshots were intentionally
omitted per PAP-10124 instructions; UI behavior is covered by tests and
reviewer inspection
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-28 07:33:51 -10:00

4.5 KiB
Raw Blame History

name, description, key, recommendedForRoles, tags
name description key recommendedForRoles tags
task-planning Turn a Paperclip issue or request into a structured implementation plan with child task graph, blockers, owners, and acceptance criteria, then save it as the issue `plan` document. paperclipai/bundled/paperclip-operations/task-planning
manager
engineer
product
paperclip
planning
issues
delegation

Task Planning

Produce implementation plans that the Paperclip executor can actually run: explicit child issues, real blockers, named owners, and a defined acceptance bar. Avoid plans that read well but cannot be split into work.

When to use

  • An issue asks you to "plan", "scope", "break down", "design the rollout", "propose the work", or similar.
  • A user wants a written plan before approving implementation.
  • A manager needs to delegate non-trivial work and the shape of the work is not obvious yet.
  • You inherited an issue too large to deliver in one heartbeat and need to split it.

When not to use

  • The issue is a single small change you can ship in the same heartbeat. Just ship it.
  • The issue is forensic ("why did this break"). Use a diagnosis skill first; plan only after the root cause is named.
  • A current plan document already exists and the change is minor. Update that document; do not start fresh.

Outputs

  1. An updated issue document with key plan (markdown).
  2. A short comment on the issue that links to the plan document and names the next action.
  3. Where the plan requires approval, an issue-thread interaction of kind request_confirmation bound to the latest plan revision.

Do not create implementation subtasks until the plan is accepted.

Plan structure

Required sections, in order:

  1. Goal — one paragraph. What changes for the user, the operator, or the system once this work lands.
  2. Context reviewed — bullet list of documents, files, and prior issues you read. Lets reviewers spot missing inputs.
  3. Constraints and non-goals — what must hold (compatibility, security, performance) and what this plan deliberately will not do.
  4. Approach — the chosen path, with a short rationale. If you considered alternatives, name them and why you rejected them.
  5. Work breakdown — ordered list of child issues. Each child has:
    • Title in imperative form.
    • Owner specialty (Engineer, QA, Designer, Security, DevRel, Manager, etc.).
    • Scope and deliverables.
    • Acceptance criteria.
    • Blocks/blocked-by relationships expressed by phase letter or child title.
  6. Acceptance — the bar for the parent issue. How the user knows the whole thing is done.
  7. Risks and mitigations — short list. Skip if there are none.
  8. Deferrals — what is intentionally pushed to follow-up issues, with why.

Rules of thumb for splitting

  • One child issue, one specialty. If two specialties have to coordinate inside the same issue, split it.
  • One child issue, one acceptance verdict. If a reviewer would say "this is half done", split it.
  • A child must be checkout-able by the owner from its title and description alone. Reviewers should not have to re-read the parent plan to understand a child.
  • Order children by real blocker chains, not by author preference. Parallel children should explicitly say blockers: none.
  • Avoid polish or cleanup child issues without acceptance criteria — they never close.

Filing the plan

Use the Paperclip API to write the plan document, then comment:

  • PUT /api/issues/{issueId}/documents/plan with the markdown body. If plan already exists, include the latest baseRevisionId.
  • POST /api/issues/{issueId}/comments with a short summary that links the plan: /<prefix>/issues/<issue-id>#document-plan.
  • If approval is required: POST /api/issues/{issueId}/interactions with kind: request_confirmation, targetRevisionId set to the new plan revision, continuationPolicy: wake_assignee, and idempotencyKey: "confirmation:{issueId}:plan:{revisionId}".
  • Set the issue to in_review after creating the confirmation. Stay assigned so the acceptance wakes the planner.

When the plan is accepted, see the companion skill for converting accepted plans into Paperclip executable tasks.

Anti-patterns

  • Plan disguised as a description edit. Use the plan document.
  • "Phases AZ" with no work breakdown inside the phases.
  • Children with descriptions that say "see parent" — they fail at delegation time.
  • Acceptance written as "code review approval". Reviewers need a behavior bar, not a process bar.
  • Plans that bury blocker chains in prose. Use explicit blocked-by lines.