# POM 2 — Produce Magnum Opus POM is an Oh My Pi extension that turns OMP's native models, tools, task agents, IRC, todo system, sessions, approvals, compaction, and TUI into an evidence-gated production operating system. POM does **not** replace OMP's execution primitives. It governs them with stage contracts, canonical artifacts, prompt provenance, deterministic validation, Git checkpoints, and an Obsidian/Quartz-compatible knowledge base. ## What ships - 9 authoritative production stages (`0` through `8`) - 7 typed `pom_*` tools - 14 specialist task agents - 13 prepared prompt fragments - 3 scoped production rules - 2 installable OMP themes - Native task + IRC Hive planning - Optional OMP Swarm DAG generation - Evidence-backed gates and blocker lifecycle - Symlink-safe artifact registration with SHA-256 and semantic versions - Streaming ZIP creation plus central-directory, decompression, size, and CRC-32 verification - Obsidian-flavoured Markdown vault ready for Quartz 5 ## Install and verify ### Prerequisites | Requirement | Version | Why | |---|---|---| | Node.js | 22 or newer | Runs the local scripts (`verify`, `smoke`, `release:check`) and the `node:test` suite | | npm | bundled with Node 22 | Installs dependencies and links the plugin into the OMP host | | Bun | `>=1.3.14` (`engines.bun`) | Runs the OMP host that loads this extension | | OMP | installed and on `PATH` | Provides `omp plugin link` and `omp plugin doctor` | | `@oh-my-pi/pi-coding-agent` | `>=16.4.6 <17` | Peer dependency: extension host API | | `@oh-my-pi/pi-tui` | `>=16.4.6 <17` | Peer dependency: TUI components | | `@oh-my-pi/pi-utils` | `>=16.4.6 <17` | Peer dependency: host paths and shared utilities | POM has no build step. OMP loads the TypeScript under `src/` directly, so the installed tree is the shipped tree. ### Source checkout install Step 1 — obtain the repository source. Canonical project coordinates are recorded in `package.json` and point at the maintainer's own infrastructure rather than a third-party forge: | Field | Value | State | |---|---|---| | `homepage` | `https://wiki.omp.loca.zone/` | Live | | `bugs.url` | `https://wiki.omp.loca.zone/` | Live | | `bugs.email` | `antigravity@loca.zone` | Live | | `repository.url` | `git+https://omp.loca.zone/pom-omp.git` | Reserved — not yet serving Git | There is deliberately no public forge mirror: this package has never been published to npm, and no GitHub or self-hosted Git endpoint exists for it today. Until `repository.url` is actually served, obtain the checkout out of band from the maintainer. Do not substitute a third-party URL that has not been confirmed. Step 2 — install, verify, and link from the checkout root: ```bash npm install npm run verify npm run link ``` `npm run verify` does not currently complete in this environment. See [Verification status](#verification-status) before treating a failure as a code defect. Step 3 — restart OMP or run `/reload-plugins`, then install the bundled themes: ```text /pom theme install ``` POM inserts `/theme pom-nocturne` into the editor. Press Enter to activate it. `pom-parchment` is the matching light theme. Step 4 — run the host-level check in an environment with Bun and OMP installed: ```bash npm run doctor ``` ### Published package install The published-package flow installs `@jamminrebel/pom-omp` into the OMP host, which then discovers the extension through the `omp.extensions` entry (`./src/index.ts`). No `npm install` line is printed here because no published tarball from this repository has been produced or verified against the precondition below. Precondition: the tarball must contain `prompts/`. `src/prompts.ts` resolves bundled prompt fragments from `../prompts` at runtime, and `prompts` was only added to the `files` array in `package.json` as of this change. Any published tarball predating this change ships without `prompts/`, so prompt composition fails at runtime; such a tarball must not be relied on. ### Verification status Overall readiness: PARTIAL. Currently passing: | Check | Command | |---|---| | Extension smoke test | `npm run smoke` | | Release manifest parity | `npm run release:check` | | State unit tests | `node --import tsx --test tests/state.test.ts` | The full gate is BLOCKED, not passing. `npm run verify` cannot complete because an npm registry outage (repeated `ETIMEDOUT` on install) left `node_modules` incomplete. Missing at minimum: | Missing | Blocks | |---|---| | `@oh-my-pi/pi-coding-agent`, `@oh-my-pi/pi-tui`, `@oh-my-pi/pi-utils` | `npm run check`, every test importing `src/` modules that reference the OMP SDK | | `@types/node` | `npm run check` (`tsc --noEmit`) | | `yauzl` | `tests/zip.test.ts` and the archive verification path in `src/zip.ts` | | `node_modules/@oh-my-pi/pi-coding-agent/src/modes/theme/theme-schema.json` | `node scripts/verify.mjs` theme validation | No claim is made that `npm run verify` has passed in this environment. ### Registry outage and offline guidance Rules while the registry is unreachable: - Do not vendor dependencies into the repository. - Do not stub, hand-write, or copy the OMP SDK packages or the OMP theme schema to turn a gate green. A gate satisfied by a stub proves nothing about the shipped extension. - Repair or retry registry access, rerun `npm install`, then rerun the full `npm run verify` gate and record its real result. What each check needs: | Check | Offline without installed dependencies | |---|---| | `npm run smoke` | Meaningful — runs through `tsx` against `src/` without resolving the OMP SDK at runtime | | `npm run release:check` | Meaningful — `scripts/release-manifest.mjs` uses Node builtins only | | `node --import tsx --test tests/state.test.ts` | Meaningful — exercises state logic only | | `npm run check` | Requires installed dependencies (OMP SDK type declarations plus `@types/node`) | | `npm test` (full suite) | Requires installed dependencies (`yauzl`, `yazl`, OMP SDK) | | `node scripts/verify.mjs` | Requires installed dependencies (reads the OMP theme schema from `node_modules`) | | `npm run pack:dry` | Requires a resolvable npm environment | | `npm run doctor` | Requires Bun plus an installed OMP host | ## Production loop ```text /pom new "My Project" /pom run next /pom hive stage /pom evidence /pom check stage # The model calls pom_stage action=pass only after the report passes. /pom export final ``` `/pom` opens the terminal command center. `Alt+P` is the keyboard shortcut. ## Command map | Command | Purpose | |---|---| | `/pom` | Open the command-center overlay | | `/pom new