Skip to content
Pocketto
Reference

Generated files and directory conventions

The docs/pocket directory tree and project-level files Pocketto generates, which command writes each one, and the naming conventions to keep.

All durable Pocket artifacts live under docs/pocket/. Names are conventions the skills and CLI rely on. Keep them.

The tree

pitch-exploration.md
<topic>.md
execution-plan.md
index.md
phase-N.md
log.json
<task_id>-review.json
phase-pass-<phase_key>.json
phase-notes-<phase_key>.json
closeout.md
PathWritten by
spec/<date>-<slug>/pitch-exploration.mdpocket-pitching
spec/<date>-<slug>/<topic>.mdpocket-grinding (the spec)
plans/<date>-<slug>/Same slug as the spec, easy cross-reference
execution-plan.mdpocket-planning
execution-plan/index.mdstructure CLI (task index, execution order)
execution-plan/tasks/T1-*.mdstructure CLI (one file per task)
execution-plan/phase-N.mdstructure CLI (multi-phase plans only)
log.jsonlog CLI (the only writer)
reviews/<task_id>-review.jsonIn-loop auditor (per-task verdict)
reviews/phase-pass-<phase_key>.jsonPhase-level pass record
reviews/phase-notes-<phase_key>.jsonDurable phase handoff notes
closeout.mdpocket-closing (append-only journal)
research/<date>-<slug>/research-report.mdstructured-research
rule/creative-brief.mdbrand-design (plus .claude/rules/brand-design.md)
learning/<date>-<slug>.mdpocket-education (journal, when enabled)

Project-root files:

FilePurpose
CLAUDE.md / AGENTS.mdProject guide + Education block (see Configuration)
.pocket-meta.jsonmeta CLI; Enterprise remote identity
.pocket/lifecycle-adapter.jsonEnterprise install (the adapter registration)
lifecycle.jsonCommitted with the spec directory (lifecycle CLI)
.github/scaffold github: issue and PR templates, local

Conventions that matter

  • Slug pairing. Spec and plan share the same <date>-<slug> directory name: create-pr, reconciliation, and lifecycle identity resolve through it.
  • Execution order, not task ID. index.md's Task Index renders in phase-group (execution) order, the same order log init seeds dispatch state, so plans authored out of numeric sequence dispatch as written.
  • Canonical phase identity. phase_key = phase-${order} comes from log.json, never from a filename; closeout markers (<!-- pocket-closeout:phase-${order} -->) use the same key.
  • Reviews live beside the plan. Per-task verdicts, phase-pass records, and phase notes are all under <plan_dir>/reviews/, artifact-only state, no hidden side channels.

Ownership and recovery

The CLI is the only writer of log.json and lifecycle state. Skills run commands; nobody edits state files by hand. If structure was interrupted mid-write, re-run structure --reset on that plan (explicit, discards execution state) rather than repairing files manually. --force only rebuilds when there is no execution progress; --dry-run previews without writing. See Troubleshooting.

Git-ignored artifacts produce a warning: events reference artifacts by SHA-256, and a missing or changed artifact is terminal STALE_ARTIFACT at delivery.

On this page