Files
pom-omp/docs/OWNERSHIP.md

37 lines
2.6 KiB
Markdown

---
title: Wiki Ownership Table
description: Canonical ownership of every fact category to prevent drift
---
# Wiki Ownership Table
Every duplicated fact has exactly one canonical owner. Mirrors must cite the owner and must not introduce independent variants.
| Fact category | Canonical owner | Mirrors (must cite owner) |
|---|---|---|
| Runtime contracts, stage machine, evidence rules | `src/state.ts`, `src/persistence.ts`, `src/domain.ts` | `docs/ARCHITECTURE.md`, `POM.yml`, `skills/pom/references/workflow.md` |
| Package metadata, file allowlist, scripts | `package.json` | `README.md`, `docs/INVENTORY.md`, `RELEASE.json` |
| Release verification evidence | `scripts/release-manifest.mjs` (evidence files in `00_admin/validation/`) | `RELEASE.json`, `README.md`, `docs/AUDIT.md` |
| Operator command map | `src/command.ts` (completions, help text) | `README.md`, `POM.yml`, `skills/pom/references/commands.md` |
| Tool actions, approvals, schemas | `src/tools.ts` | `docs/TOOL_MATRIX.md`, `POM.yml`, `skills/pom/references/commands.md` |
| Generated project layout | `src/persistence.ts:226-239` (`bootstrapProject`) | `docs/INVENTORY.md`, `skills/pom/references/artifacts.md` |
| Prompt precedence and composition | `src/prompts.ts:83-117` (`composePromptStack`, `renderStagePrompt`) | `POM.yml`, `README.md`, `skills/pom/references/workflow.md` |
| Resource discovery advertisement | `src/events.ts:19-24` (`resources_discover`) | `skills/pom/references/commands.md`, `docs/ARCHITECTURE.md` |
| Validation scopes and tool ownership | `src/tools.ts:138-148` (`pom_validate`), `src/state.ts` (`passStage`) | `docs/TOOL_MATRIX.md`, `POM.yml`, `skills/pom/references/qa.md` |
| Theme schema and OMP integration | `@oh-my-pi/pi-coding-agent` (external) | `scripts/verify.mjs`, `config/config.yml`, `themes/*.json` |
| Dependency requirements | `package.json` (`peerDependencies`, `engines.bun`) | `README.md`, `docs/SETTINGS.md`, `AGENTS.md` |
## Mirror rules
1. Every mirror page MUST include a "Source: `path:line`" reference to the canonical owner
2. A mirror MUST NOT redefine a fact — only summarize, cross-reference, or contextualize
3. When the canonical owner changes, all mirrors MUST be updated in the same PR
4. Automated checks in `scripts/verify.mjs` or dedicated scripts validate mirror freshness
5. `scripts/verify.mjs` already enforces: agent frontmatter shape, theme names/keys, prompt counts, command counts, tool counts, stage counts
## Adding a new fact category
1. Identify the single source file in `src/`, `scripts/`, or `package.json`
2. Add a row to this table
3. Update all existing mirrors to cite the new owner
4. Add a verification check if the fact is drift-prone