POM 2 Documentation

Welcome to the POM 2 documentation. This site is the single source of truth for operators, contributors, and architects.

Quick navigation

Full sidebar: navigation.

What is POM 2?

POM 2 is an Oh My Pi (OMP) extension that governs long-form creative production with evidence-gated stages, canonical artifacts, prompt provenance, deterministic validation, Git checkpoints, and an Obsidian/Quartz-compatible knowledge base.

  • Package: @jamminrebel/pom-omp 2.0.0 (MIT, ESM)
  • Peer requirements: @oh-my-pi/pi-coding-agent, @oh-my-pi/pi-tui, @oh-my-pi/pi-utils >=16.4.6 <17
  • Host runtime: Bun >=1.3.14
  • Local scripts: Node 22+ / npm / tsx / tsc

Repository structure

pom-omp/
├── src/                  # 25 TypeScript modules (no build step)
├── tests/                # 8 test files, Node test runner
├── scripts/              # verify.mjs, check-docs.mjs, release-manifest.mjs, smoke.ts
├── docs/                 # This documentation
├── agents/               # 14 pom-* task agent definitions
├── prompts/              # 13 prompt fragments (bundled + project overrides)
├── rules/                # 3 scoped production rules
├── skills/pom/           # POM skill + 9 reference documents
├── themes/               # pom-nocturne (dark), pom-parchment (light)
├── config/               # OMP host config, POM defaults, MCP example
├── README.md             # Operator landing page
├── POM.yml               # Human-facing project manifest
├── AGENTS.md             # Contributor guide + discrepancy ledger
├── CHANGELOG.md          # Release history
├── RELEASE.json          # Generated release manifest
├── package.json          # Package metadata + scripts
└── tsconfig.json         # Strict TS config (src/**/*.ts only)

Documentation principles

  • Source beats docs. Every mirrored fact cites its canonical owner in src/, scripts/, or package.json. Narrative docs must not introduce independent variants. See ownership.
  • Audience separation. Operator flows in README; deep reference in docs/; agent-facing quick refs in skills/pom/references/; human manifest in POM.yml.
  • Release honesty. RELEASE.json verification fields are evidence-bound objects carrying a status of PASS, FAIL, NOT RUN, or BLOCKED. Hard-coded PASS strings are prohibited and rejected by the documentation checks.
  • Generated versus repository. This wiki describes the extension. Generated project vaults live under a project’s content/ and are a separate branch. See boundary and vault shape.

Verification status

Overall readiness is PARTIAL. npm run smoke, npm run release:check, and the state test pass; the full npm run verify gate is blocked by an npm registry outage that left node_modules incomplete. See verification and the README verification section for exact detail.

Contributing

Read AGENTS.md for code conventions, testing patterns, and governance invariants. Key rules:

  • No dist/ or generated caches in source
  • Extensionless relative imports (./state, not ./state.ts)
  • Throw Error for precondition/schema/config violations; tool failures use isError: true
  • Three runtime dependencies only: crc-32, yauzl, yazl
  • Run npm run verify before packaging or linking

12 items under this folder.