papi-plan
Skill11 starsChanged 3 months agoMITView on GitHub
Invoke when starting a new PAPI cycle. Covers plan generation, board management, and cycle scoping rules.
- Reads credentials
In this repository14 other files it gives its agents.
- llms.txtllms.txt
- check-mcpSkill
- deployment-completeness-auditSkill
- designSkill
- papi-advancedSkill
- papi-autoSkill
- papi-buildSkill
- papi-ideaSkill
- papi-integration-recipeSkill
- papi-strategySkill
- papi-verifySkill
- pr-reviewerSkill
- security-auditSkill
- usage-reporterSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
30 rules. About 0 are common, 19 are distinctive, and 11 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈19
Distinctive · estimate
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 18
Check task status and the original merged commit before scheduling work.
- Very specific: line 30
Keep the verified project and caller-owned cycle fixed.
- Distinctive: line 34
Never persist a one-task cycle: include at least two eligible coherent tasks, aiming for three when available.
- Distinctive: line 36
If fewer than two remain, show the blockers and obtain direction before creating it.
- Very specific: line 46
Before implementing: silently run build_execute <task_id> (start phase)
- Very specific: line 47
After implementing: run build_execute <task_id> (complete phase) with report fields
- Distinctive: line 48
After build_execute completes: audit the branch changes for bugs, convention violations, and doc drift (see Post-Build Audit below)
- Distinctive: line 49
After audit with findings: fix required corrections, rerun affected checks and record the findings.
- Distinctive: line 51
After audit clean: present for human review — "Ready for your review — approve or request changes?"
- Very specific: line 96
If confirmed, run strategy_change immediately.
- Distinctive: line 97
If mid-build, finish the current task first.
- Distinctive: line 154
Preview frontend changes: After any UI/styling build, provide the localhost URL so the user can visually review.
- Distinctive: line 155
Debug one change at a time: When fixing issues, make one change, verify it, then move on.
- Distinctive: line 156
Test the write-read roundtrip: Every data write path must have a verified read path.
- Distinctive: line 157
Test after every build: Run the project's test suite after implementing.
- Distinctive: line 161
Audit before widening access: Before any build that adds endpoints, modifies auth/RLS, introduces new user types, or changes access …
- Very specific: line 162
Flag access-widening changes: If a build touches auth, RLS policies, API keys, or user-facing access, note "Security surface reviewed" in …
- Very specific: line 163
Never ship secrets: Do not commit .env files, API keys, or credentials.
- Distinctive: line 164
Privacy: Verify the deployment's actual collection and opt-out contract.
- Very specific: line 171
Large plan/handoff outputs: Use inline output or the connected tool's supported structured/chunk contract on HTTP.
- Very specific: line 175
Only build tasks assigned to the current cycle: Use build_list — it filters to current-cycle tasks with handoffs.
- Distinctive: line 176
Don't ask premature questions: If the project is in early cycles, don't ask about deployment accounts, hosting providers, OAuth setup, or …
- Distinctive: line 177
Split large ideas: If an idea has 3+ concerns, submit it as 2-3 separate ideas so the planner creates properly scoped tasks — not …
- Very specific: line 178
Close completed cycles accurately: Verify remote parity, all task statuses, required reviews and the owning release workflow.
- Distinctive: line 181
Never imply that cycle closure is a versioned release or authorizes publication, public access, a deployment or an external message.
- Distinctive: line 189
Show task names, not just IDs: When summarising board state or reconciliation, include task names — e.g.
- Distinctive: line 190
Surface the next command: After each step, tell the user what comes next.
- Distinctive: line 193
Access-widening stages require auth/security phases: Before declaring a stage complete, check if it widens who can access the product (e.g.
- Very specific: line 203
All same-module cycle tasks share one feat/cycle-N-<module> branch regardless of size
- Distinctive: line 205
After all tasks built, batch review them together
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
papi-plan
Completion authority before scheduling or building
Read the task's complete scope, structured completionAction, dependencies and assignee before proposing a task set or starting work. When scope requires final decision resolution, read the actual decision and persist its structured link through board_edit before scheduling. For action: resolve, name the remaining decision action and its current authorized resolver using the canonical decision policy. Owner, per-type and group-quorum permissions must be revalidated at plan apply and task claim; unknown authority refuses final completion. Arbitrary notes, caller-reported retry guidance and a prepared proposal are not permission or human acceptance.
Keep proposal preparation in a separate action: prepare task and retain its completed output. Hand the final action: resolve task to an authorized resolver only after explicit assignment confirmation. Do not recommend rebuilding Done/In Review preparation. An optional manual approval blocks release only when a task has an explicit dependency or typed blocker.
Reconcile board assignment with branch/PR contents. Transferring tasks or creating a branch at an already merged commit cannot remove those tasks from the original PR's historical diff. Disclose already-merged scope, preserve recipient commits and approval attribution, and use a scoped corrective change when needed; never rewrite shared main or force-push a teammate's branch to claim separation.
Already-shipped work with missing evidence
Check task status and the original merged commit before scheduling work. Restore
an existing shipped task through board_reconcile(mode:"restore-evidence"):
supply the original complete report/handoff, exact implementation and merged
commit SHAs, and a stable idempotency key. Inspect the preview, then confirm the
unchanged evidence with its preview token. Keep its assignee, historical cycle
and cycle UUID intact. Unknown original authorship stays unknown; the person
restoring evidence is a separate actor. Do not simulate build_execute, claim
the task or assign it to the current cycle to repair metadata. Acceptance still
requires the human verdict. A stale preview needs a new preview, not a forced write.
Proposal before persistence
Keep the verified project and caller-owned cycle fixed. Inspect statuses, existing
branches/build evidence, task claims, prerequisites and person-only decisions.
Prepare the exact proposed task IDs/names and show them before plan apply.
Approval authorizes that displayed set, not extra tasks or a future cycle.
Never persist a one-task cycle: include at least two eligible coherent tasks,
aiming for three when available. Do not pad with blocked or another person's work.
If fewer than two remain, show the blockers and obtain direction before creating it.
Reuse an already approved plan; do not re-plan an in-flight cycle.
Workflow Sequences
PAPI tools follow structured flows. The agent manages the cycle workflow automatically — the user should never need to type tool names or remember the flow. Handle the plumbing, surface the summaries.
Cycle Workflow (auto-managed)
- Run tools automatically — don't ask the user to invoke MCP tools manually
- Before implementing: silently run
build_execute <task_id>(start phase) - After implementing: run
build_execute <task_id>(complete phase) with report fields - After build_execute completes: audit the branch changes for bugs, convention violations, and doc drift (see Post-Build Audit below)
- After audit with findings: fix required corrections, rerun affected checks and record the findings. A builder's audit does not authorize a human review verdict.
- After audit clean: present for human review — "Ready for your review — approve or request changes?"
- User approves/requests changes → run
review_submitbehind the scenes
The Cycle (main flow)
plan → build_list → build_execute → audit → review_list → review_submit → build_list- plan — Prepare a proposal; persist it only after approval of the exact task set.
Next:
build_listto see prioritised tasks. - build_list — View tasks ready for execution, ordered by priority.
Next:
build_execute <task_id>to start a task. - build_execute (start) — Marks the task In Progress and returns the handoff.
Branch operations require a workspace-capable host; a hosted server cannot inspect local Git.
Next: Implement the task, then
build_execute <task_id>again with report fields to complete. - build_execute (complete) — Records the report and marks the task In Review. Push and verify the actual task commit through the owning workspace/remote authority. Next: Run the post-build audit automatically.
- Post-build audit — Review branch changes for bugs, convention violations, and doc drift (see Post-Build Audit section below).
Next: Fix required findings on the current build, then proceed to
review_listfor the human verdict. Never fabricate independent review or human acceptance. - review_list — Shows tasks pending human review (handoff-review or build-acceptance).
Next: for a task In Review,
review_taskfor the review brief, thenreview_submitto approve, accept, or request changes. A task in In Review needsreview_task, thenreview_submitonce it has been reviewed, thenrelease. review_submit — Records the review verdict and updates task status. Next:
build_listto view next buildDO NOT use
review_submitas a substitute forreview_list. If you need to see what is pending review, always callreview_listfirst. Ifreview_listis unavailable in your tool set (e.g. your MCP client filters parameterless tools), STOP and tell the human their MCP integration is incomplete — never guess at the next pending task. To submit an accept verdict on a build-acceptance review, either passreviewer_confirmed: trueor ensurereview_listhas run in the same session within the last 15 minutes. (SUP-2026-010.)
Strategy Review
strategy_review → strategy_change- strategy_review — Analyses project health, velocity, and estimation accuracy.
Next:
strategy_changeif the review recommends adjustments. - strategy_change — Updates active decisions, north star, or project direction based on review findings.
Detect Strategic Decisions in Conversation
Watch for: direction changes, architecture shifts, deprioritisation with reasoning, new principles, competitive positioning decisions.
When detected:
- Flag it: "That sounds like a strategic direction change — should I run
strategy_change?" - If confirmed, run
strategy_changeimmediately. - If mid-build, finish the current task first.
Idea Capture
idea → (picked up by next plan)- idea — Captures a new task idea and writes it to the backlog.
Next: The next
planrun will prioritise and schedule it.
First contact — a work-dump is an idea batch, not a coding session. When the
user hands you a list of work on an empty or near-empty board — an audit's
findings, a bug list, "build all of these", a pasted backlog — do NOT start
writing code. There is no task, no BUILD HANDOFF and no cycle for it yet. File
each item with idea, then run plan to scope a cycle. The user should never
need to know these verbs — route the request through the pipeline for them and
say what you did.
Project Bootstrap
setup → plan- setup — {{setup_description}}
Next:
planto run the first cycle planning session.
Board Management
- board_view — Read-only board view. Bare, it returns a compact table (id, title, status, priority, cycle, readiness; 20 rows with an offset hint). Filter with
query,cycleorstatus;task_idgives one task in full;fields=allgives every column. - board_archive — Removes completed/cancelled tasks from the board to an archive.
- board_deprioritise — Defers work or records a typed blocker using action, reason, blocker_type and blocker_ref. Use board_edit dependsOn for prerequisites without changing status. Follow the generated AGENTS.md Follow-up protocol at planning, review and release.
Quick Reference: Tool → Next Step
| Tool | Next Step |
setup | plan |
plan | build_list |
build_list | build_execute <task_id> |
build_execute (start) | Implement, then build_execute (complete) |
build_execute (complete) | Post-build audit (automatic) |
| Audit (findings) | Fix, verify and record; present for human review |
| Audit (clean) | review_list |
review_list | review_submit |
review_submit (approve/accept) | build_list |
review_submit (request-changes) | build_execute (redo) or build_list |
strategy_review | strategy_change (if needed) |
idea | Next plan picks it up |
Process Rules
These rules come from 80+ cycles of dogfooding. They prevent the most common sources of wasted time and rework.
Building
- Verify before claiming done. Hit the endpoint, check the rendered output, confirm the data round-trips. Never say "should work" — prove it works.
- Preview frontend changes. After any UI/styling build, provide the localhost URL so the user can visually review. Don't make them ask for it.
- Debug one change at a time. When fixing issues, make one change, verify it, then move on. Don't stack multiple untested fixes.
- Test the write-read roundtrip. Every data write path must have a verified read path. If you write to DB, confirm the read query returns what was written. This is the #1 source of silent failures.
- Test after every build. Run the project's test suite after implementing. Suggest follow-up tasks from learnings when meaningful.
- Build patiently. Validate each phase against the last. Don't rush through implementation — test through the UI, not just the API.
Security
- Audit before widening access. Before any build that adds endpoints, modifies auth/RLS, introduces new user types, or changes access controls — review the security implications first. Fix findings before shipping.
- Flag access-widening changes. If a build touches auth, RLS policies, API keys, or user-facing access, note "Security surface reviewed" in the build report's
discovered_issuesorarchitecture_notes. - Never ship secrets. Do not commit .env files, API keys, or credentials. Check
.gitignorecovers sensitive files before pushing. - Privacy. Verify the deployment's actual collection and opt-out contract; do not promise anonymity or enforcement from an unverified environment flag.
Planning & Scope
- NEVER run
planmore than once per cycle. Adjust the cycle withboard_deprioritiseorideainstead. - Resolve the caller-owned cycle before planning another. Complete its reviews and authorized release/closure; carry-forward needs an explicit disposition.
- Large plan/handoff outputs: Use inline output or the connected tool's
supported structured/chunk contract on HTTP.
llm_response_fileis only valid for a local stdio/workspace server that can read that actual absolute path. It is mutually exclusive with inline output; remote servers cannot read your disk. - Only build tasks assigned to the current cycle. Use
build_list— it filters to current-cycle tasks with handoffs. - Don't ask premature questions. If the project is in early cycles, don't ask about deployment accounts, hosting providers, OAuth setup, or commercial features. Focus on building core functionality first.
- Split large ideas. If an idea has 3+ concerns, submit it as 2-3 separate ideas so the planner creates properly scoped tasks — not kitchen-sink handoffs.
- Close completed cycles accurately. Verify remote parity, all task statuses,
required reviews and the owning release workflow. Carry out an already authorized
release; use
close_cyclefor explicitly requested bookkeeping-only closure. Never imply that cycle closure is a versioned release or authorizes publication, public access, a deployment or an external message. - Verify readiness before releasing. Inspect the complete caller-owned cycle, not only its review queue. Resolve pending work within approved scope; moving or cancelling it needs an authorized disposition. Never mutate another member's work to make release pass. Verify the remote implementation and exact evidence.
Communication
- Show task names, not just IDs. When summarising board state or reconciliation, include task names — e.g. "task-42: Add supplier form" not just "task-42".
- Surface the next command. After each step, tell the user what comes next. Commands should be surfaced, not memorised.
Stage Readiness
- Access-widening stages require auth/security phases. Before declaring a stage complete, check if it widens who can access the product (e.g. Alpha Distribution, Alpha Cohort). If so, auth hardening and security review must be completed first — not discovered after the fact.
- Pattern: Audit access surface → fix vulnerabilities → then widen access. Never ship access-widening without a security phase.
<!-- PAPI_ENRICHMENT_TIER_1 -->Batch Building (unlocked at cycle 6)
For multi-task cycles, build without unnecessary stops between eligible tasks:
- Build prerequisite producers before consumers; within that order prefer XS/S first
- All same-module cycle tasks share one
feat/cycle-N-<module>branch regardless of size - One commit per task for traceable history, even on shared branches
- After all tasks built, batch review them together
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

