create-pmos 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,30 +1,230 @@
1
1
  # create-pmos
2
2
 
3
- Scaffold the **PMOS portable kit**: run a disciplined, eval-driven product-management workflow
4
- initiative PRD eval rubric → pre-run contract build Quality/Review/Acceptance gates —
5
- **entirely inside your own repo**. All state is git-versioned files. No database, no account,
6
- no network calls, no telemetry.
3
+ **A product manager's operating system you can adopt in five minutes no coding expertise
4
+ required.** One command puts a disciplined, eval-driven PM workflow inside your own repo:
5
+ initiative PRD eval rubric agreed contract → build → three gates. Your AI coding agent
6
+ (e.g. Claude Code) does the building. You do the judging. Everything stays in your folder — no
7
+ database, no account, no network calls, no telemetry.
8
+
9
+ ## Whose task is what
10
+
11
+ This kit is built on a simple separation of tasks:
12
+
13
+ - **Your task** is direction and judgment: choose the goals, say what "good" means *before* the
14
+ work starts, and accept or return what comes back. That's it — and no one else can do it.
15
+ - **The agent's task** is the building: code, documents, analysis, following the written protocol.
16
+ - **The kit's task** is keeping both of you honest: gates that can't be sweet-talked, records that
17
+ don't rely on memory, and metrics that show the red first.
18
+
19
+ You never need to write code. You need the courage to say what you want, and the final word on
20
+ whether you got it — which you already have.
21
+
22
+ ## Getting started (5 minutes)
23
+
24
+ **Have an existing project?**
25
+
26
+ ```bash
27
+ cd my-product
28
+ npx create-pmos@latest
29
+ ```
30
+
31
+ **Starting from nothing but an idea?**
32
+
33
+ ```bash
34
+ mkdir my-product && cd my-product
35
+ git init # git is required (its branches/merges ARE the workflow); GitHub is optional
36
+ npx create-pmos@latest
37
+ ```
38
+
39
+ What you'll see:
40
+
41
+ ```
42
+ ✅ PMOS kit vendored at /home/you/my-product/pmos (kernel-source: pmos@1740a5e)
43
+
44
+ Next steps in /home/you/my-product:
45
+ 1. cp pmos/templates/pmos-gate.yml .github/workflows/pmos-gate.yml (only if on GitHub)
46
+ 2. Add to the repo's CLAUDE.md: "This product is PMOS-managed (file mode) — read pmos/AGENTS.md before any work."
47
+ 3. Commit the pmos/ folder. Then follow pmos/AGENTS.md for every run.
48
+ ```
49
+
50
+ Do those three lines and setup is over. A fresh kit with zero history is not behind — it is
51
+ exactly where every product starts.
52
+
53
+ ### Behind a corporate proxy? (403 on install)
54
+
55
+ On many work laptops, npm goes through a company registry mirror — and a brand-new public package
56
+ gets **403 Forbidden** until it's been vetted (a sandboxed AI session's network proxy can do the
57
+ same). That's your environment being careful, not something broken — and there are three clean
58
+ ways through:
59
+
60
+ 1. **Try a plain terminal first** — if the 403 came from inside an AI-session sandbox, the normal
61
+ terminal may just work.
62
+ 2. **Ask IT to allowlist `create-pmos`** — a routine request, and an easy one: public npm, MIT,
63
+ zero dependencies, no install scripts, no network code.
64
+ 3. **The registry-free install** — the package is just a file, so skip the registry entirely.
65
+ From any allowed network, download
66
+ `https://registry.npmjs.org/create-pmos/-/create-pmos-<version>.tgz`, move it to the work
67
+ machine, then:
68
+
69
+ ```bash
70
+ tar xzf create-pmos-*.tgz
71
+ node package/bin/create-pmos.js my-product
72
+ ```
73
+
74
+ Same result, byte-identical kit, no proxy involved. (Which is fitting — keeping your work
75
+ inside your own boundary is the whole point of this kit.)
76
+
77
+ ## Your first conversation
78
+
79
+ Open the folder with your coding agent and talk to it like a colleague — clear about the goal,
80
+ open about what you don't know. Copy-paste starters:
81
+
82
+ **You have an existing product** (let the agent learn it first):
83
+
84
+ > Read pmos/AGENTS.md. Then follow pmos/skills/ingest-repo.skill: scan this repository read-only
85
+ > and draft what you learn under pmos/okf/product/ for my review. Don't change any product code.
86
+
87
+ **You have only an idea:**
88
+
89
+ > Read pmos/AGENTS.md. This is a new product: [two sentences on what it is and who it serves].
90
+ > Help me seed pmos/planning/okrs/ with one objective and 2–3 key results, then propose one small
91
+ > first initiative — optimized for a fast first win, not for completeness.
92
+
93
+ **You know exactly what you want built:**
94
+
95
+ > Read pmos/AGENTS.md. I want: [describe the outcome]. Create the initiative file, then draft the
96
+ > PRD and the eval rubric for my approval before you build anything.
97
+
98
+ ## The rhythm (every piece of work)
99
+
100
+ 1. **Name the work.** An initiative file is created in `pmos/state/initiatives/` — anchored to one
101
+ of your goals, so nothing exists "just because."
102
+ 2. **Define "good" first.** The agent drafts a PRD and a scoring rubric; you approve the contract
103
+ (`PM_approved: true`) before any building. Deciding the standard in advance is your task —
104
+ it is also what makes the agent's verdicts mean something later.
105
+ 3. **The agent builds** on its own branch and opens the work for review. A gate checks that every
106
+ change is anchored. If someone (including the agent) skips the protocol, you'll see:
107
+
108
+ ```
109
+ ❌ initiative gate FAILED — Not anchored. Name the branch 'initiative/<id>' or add
110
+ 'Initiative: <id>' to the PR body ... See pmos/AGENTS.md.
111
+ ```
112
+
113
+ The gate isn't scolding anyone — it's protecting your standard when you're not looking.
114
+ (No GitHub? Run it yourself before merging:
115
+ `HEAD_REF=$(git branch --show-current) bash pmos/scripts/gate-initiative.sh`)
116
+ 4. **An evaluator scores the work** against your rubric — adversarial by design, and advisory:
117
+
118
+ > Read pmos/AGENTS.md, then follow pmos/skills/evaluator.skill: score the work on branch
119
+ > initiative/[id] against its rubric. Be skeptical — try to refute it. Append your verdict to
120
+ > pmos/state/evals.jsonl.
121
+
122
+ 5. **You accept — or return it.** Your merge is the final gate. Returning imperfect work is not
123
+ conflict; it's the job. Record your call:
124
+
125
+ > I accept this run. Append the acceptance to pmos/state/acceptances.jsonl with pm_label
126
+ > "pass" and corrections: [how many things you had to fix].
127
+
128
+ ## Your weekly ten minutes
7
129
 
8
130
  ```bash
9
- npx create-pmos@latest # vendor a pmos/ kit into the current directory
10
- npx create-pmos@latest my-product # ...or into my-product/
11
- npx create-pmos@latest --update # refresh the kit kernel (never touches your state)
131
+ python3 pmos/scripts/metrics.py
132
+ ```
133
+
134
+ What you'll see:
135
+
12
136
  ```
137
+ PMOS kit metrics — 4 run(s), 4 eval(s), 3 acceptance record(s)
138
+
139
+ B1 north star: 0.33 human corrections per accepted run (over 3 accepted run(s); lower is better)
140
+ B2 throughput: 3 accepted run(s)
141
+ eval pass rate: 75% (3/4)
142
+ B4 calibration (n=3): raw agreement 100%, TPR 100%, TNR n/a — no PM fails seen (leniency blind spot), ...
143
+ ```
144
+
145
+ Reds print first, on purpose — facing facts without flinching is how the numbers stay honest. On
146
+ day one it says `UNMEASURABLE — no accepted runs yet`. That's not failure; that's a truthful
147
+ starting line. And if the evaluator starts passing everything while you keep fixing things, a
148
+ tripwire fires and tells you the judge has gone soft. A weekly prompt, if you'd rather talk than
149
+ read:
150
+
151
+ > Read pmos/state/discoveries.md and run pmos/scripts/metrics.py. Tell me: what's red, what
152
+ > friction appeared more than once, and what one improvement you'd propose. Don't change anything
153
+ > yet.
13
154
 
14
- Then open the folder with your coding agent (e.g. Claude Code) and start at `pmos/AGENTS.md` —
15
- it is the whole protocol. `pmos/README.md` is the operator guide; `pmos/scripts/metrics.py`
16
- prints your north-star metrics from the recorded state.
155
+ ## How it guardrails the SDLC
17
156
 
18
- ## What's inside
157
+ Each stage of the loop has a mechanism behind it — not a promise, a mechanism:
158
+
159
+ | Without the kit | With the kit |
160
+ |---|---|
161
+ | Work starts because someone felt like it | **Nothing exists without an initiative** anchored to a goal — the gate rejects unanchored work, automatically on GitHub, by one command locally |
162
+ | "Good" gets defined after seeing the output (so everything looks fine) | **The rubric and contract are written first** — building is blocked until you've flipped `PM_approved: true` |
163
+ | The builder grades their own homework | **A separate adversarial evaluator scores against your rubric** — and even its verdict is advisory; the merge is yours alone |
164
+ | History gets quietly rewritten | **State files are append-only** — corrections are added, never erased; git keeps the audit trail |
165
+ | Metrics flatter you | **Reds print first**, and a tripwire fires if the evaluator passes everything while you keep fixing things — a green that hides red gets caught |
166
+ | Tool updates overwrite your data | **Kernel updates never touch your records** — `state/`, `planning/`, `okf/product/` are structurally off-limits to `--update` |
167
+
168
+ Notice none of these guardrails restrict *you* — they restrict the process, so your judgment is
169
+ exercised at the two moments it matters: defining "good" and accepting the result.
170
+
171
+ ## Staying on the path (drift protection)
172
+
173
+ Drift never announces itself — it's always "just this once, it's small." The kit assumes that and
174
+ defends structurally rather than relying on discipline:
175
+
176
+ - **The protocol is re-taught, not remembered.** The `CLAUDE.md` line makes every fresh agent
177
+ session read `pmos/AGENTS.md` before working — so a new session, a new model, or a new teammate
178
+ starts on-protocol by default instead of drifting from a stale memory.
179
+ - **The gate makes skipping visible.** On GitHub it's a failing check nobody can miss; locally
180
+ it's the one command before a merge. Keep the `no-initiative` escape hatch for genuine chores
181
+ only — if you find yourself reaching for it weekly, that's a signal, not a shortcut.
182
+ - **The weekly ten minutes is the ritual.** Put `metrics.py` + the discoveries scan on your
183
+ calendar. A friction that shows up twice with no decision gets promoted to a rule — that's how
184
+ the process improves instead of eroding.
185
+ - **Ask the agent to audit itself.** Any time you feel drift:
186
+
187
+ > List every merge in the last two weeks. For each: which initiative anchors it, did the rubric
188
+ > exist before the build, and is there an acceptance record? Report gaps without fixing them.
189
+
190
+ - **A lapse is data, not a verdict.** If you skipped the ritual for a month, the files show
191
+ exactly where the record stops — restart from there. The kit never shames a gap; it just makes
192
+ the gap visible enough that you can choose to close it.
193
+
194
+ ## See your workflow — build your own dashboard
195
+
196
+ The entire state is plain, open files (`state/*.jsonl`, `state/initiatives/*.md`) — which means
197
+ **any AI platform can turn it into a dashboard on demand.** No product to buy, no service to
198
+ connect. In Claude (or Claude Code) in your product folder, paste:
199
+
200
+ > Read pmos/state/initiatives/*.md, pmos/state/runs.jsonl, evals.jsonl, acceptances.jsonl, and
201
+ > pmos/state/discoveries.md. Generate a single, self-contained HTML file at pmos/dashboard.html —
202
+ > no external scripts or network calls — showing: (1) a board with initiatives as cards in columns
203
+ > by stage (intake / spec / build / eval / accepted); (2) the north star (corrections per accepted
204
+ > run) and eval pass rate as stat tiles; (3) a recent-runs timeline with verdicts; (4) open
205
+ > frictions. Reds and gaps first, then greens.
206
+
207
+ Open `pmos/dashboard.html` in a browser. Regenerate it whenever you want a fresh view (or ask for
208
+ it weekly as part of the ritual) — it's disposable by design. On other platforms the same works:
209
+ upload or paste the state files to ChatGPT/Gemini and ask for the same artifact. Two rules keep
210
+ this safe: the dashboard is a **read-only view, never the system of record** (the files stay the
211
+ truth), and if your product is confidential, generate it with a tool that runs where the files
212
+ live rather than uploading them elsewhere.
213
+
214
+ ## Keeping the kit fresh
215
+
216
+ ```bash
217
+ npx create-pmos@latest --update
218
+ ```
19
219
 
20
- - `pmos/AGENTS.md` — the run protocol + the state adapter (every workflow action is a file convention)
21
- - `pmos/skills/` — the working skills (PRD, eval rubric, OKR, adversarial evaluator, repo ingest)
22
- - `pmos/okf/core/` the concept kernel (the SDLC loop, three-tier gates, watermelon flags, …)
23
- - `pmos/scripts/` — a fail-closed CI gate for unanchored PRs, metrics, kernel updater
24
- - `pmos/state/` — your append-only operational record (initiatives, runs, evals, acceptances)
220
+ Refreshes the skills, concepts, and scripts only. Your records `state/`, `planning/`,
221
+ `okf/product/` — are yours, and an update never touches them. `pmos/KIT-VERSION` always says
222
+ exactly what you're running.
25
223
 
26
224
  ## Scope & support
27
225
 
28
- This package contains only the PMOS workflow **kernel** it holds no reference to, and never
29
- contacts, any PMOS backend. Provided **as-is** (MIT); it is a snapshot published from a private
30
- upstream, updated when the maintainer publishes. Issues/PRs are not currently monitored.
226
+ This package contains only the PMOS workflow kernel. It holds no reference to, and never
227
+ contacts, any external backend the publish pipeline verifies that on every release. MIT,
228
+ provided as-is: a snapshot from a private upstream, updated when the maintainer publishes.
229
+ Issues/PRs are not currently monitored — the kit is deliberately self-sufficient; everything it
230
+ needs to teach you is in `pmos/AGENTS.md` and `pmos/README.md`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-pmos",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Scaffold the PMOS portable kit — run the PMOS product-management workflow (initiative → PRD → eval rubric → contract → build → three gates) entirely inside your own repo, with all state as git-versioned files. No database, no network, no telemetry.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -1,3 +1,3 @@
1
- kernel-source: pmos@1740a5e
1
+ kernel-source: pmos@e558777
2
2
  assembled: 2026-07-17
3
3
  mode: vendor
package/payload/README.md CHANGED
@@ -30,6 +30,21 @@ printed next steps (wire the CI workflow, point CLAUDE.md at `pmos/AGENTS.md`, c
30
30
  From a PMOS checkout the equivalent is `kit/build-kit.sh <this-repo-root>`; the npm package's
31
31
  payload is assembled by that same script at publish time, so the two never drift.
32
32
 
33
+ **Empty folder / no repo yet?** `git init` first — git is required (branches and merges ARE the
34
+ workflow: `initiative/<id>` branches, merge = Acceptance), but GitHub is optional. With no
35
+ existing code there is nothing to ingest: start by seeding `planning/okrs/` (the okr skill) and a
36
+ first right-sized initiative; the product's code grows in the same folder.
37
+
38
+ **403 on `npx` (corporate proxy/mirror)?** Try a plain terminal (not a sandboxed AI session); ask
39
+ IT to allowlist `create-pmos` (zero deps, no install scripts, no network code); or install
40
+ registry-free — download the `.tgz` from `registry.npmjs.org/create-pmos/-/create-pmos-<v>.tgz`
41
+ on any allowed network, then `tar xzf create-pmos-*.tgz && node package/bin/create-pmos.js <dir>`.
42
+
43
+ **No GitHub?** Skip the workflow file and run the gate by hand before merging any initiative
44
+ branch: `HEAD_REF=$(git branch --show-current) bash pmos/scripts/gate-initiative.sh` — green means
45
+ anchored; your local `git merge` is the Acceptance Gate. If the repo later lands on GitHub, copy
46
+ `templates/pmos-gate.yml` into `.github/workflows/` and the gate becomes automatic.
47
+
33
48
  ## Operate (every piece of work)
34
49
 
35
50
  1. Create `pmos/state/initiatives/<id>.md` (stage `intake`, anchored to a KR in `planning/okrs/`).
@@ -42,6 +57,34 @@ payload is assembled by that same script at publish time, so the two never drift
42
57
  5. Acceptance Gate: the **human PM** merges and disposes; append to `state/acceptances.jsonl`
43
58
  (`accepted`, `pm_label`, corrections). Weekly: run `scripts/metrics.py`, read the red first.
44
59
 
60
+ ## Sample prompts (copy-paste, no coding required)
61
+
62
+ Talk to your agent like a colleague; your task is direction and judgment, its task is the build.
63
+
64
+ - **Onboard an existing product:** "Read pmos/AGENTS.md. Then follow pmos/skills/ingest-repo.skill:
65
+ scan this repository read-only and draft what you learn under pmos/okf/product/ for my review.
66
+ Don't change any product code."
67
+ - **Greenfield:** "Read pmos/AGENTS.md. This is a new product: [two sentences]. Seed
68
+ pmos/planning/okrs/ with one objective and 2–3 key results, then propose one small first
69
+ initiative — fast first win, not completeness."
70
+ - **Start a piece of work:** "Read pmos/AGENTS.md. I want: [outcome]. Create the initiative file,
71
+ then draft the PRD and eval rubric for my approval before you build anything."
72
+ - **Review Gate:** "Follow pmos/skills/evaluator.skill: score the work on branch initiative/[id]
73
+ against its rubric. Be skeptical — try to refute it. Append the verdict to pmos/state/evals.jsonl."
74
+ - **Acceptance:** "I accept this run. Append the acceptance to pmos/state/acceptances.jsonl with
75
+ pm_label 'pass' and corrections: [n]."
76
+ - **Weekly review:** "Read pmos/state/discoveries.md and run pmos/scripts/metrics.py. Tell me
77
+ what's red, what friction appeared more than once, and one improvement you'd propose. Don't
78
+ change anything yet."
79
+ - **Drift audit:** "List every merge in the last two weeks. For each: which initiative anchors it,
80
+ did the rubric exist before the build, and is there an acceptance record? Report gaps without
81
+ fixing them."
82
+ - **Dashboard on demand:** "Read pmos/state/ (initiatives, runs.jsonl, evals.jsonl,
83
+ acceptances.jsonl, discoveries.md). Generate a self-contained pmos/dashboard.html — no external
84
+ scripts or network — with a stage-column board of initiatives, north-star + pass-rate tiles, a
85
+ recent-runs timeline, and open frictions. Reds and gaps first." (Read-only view — the files stay
86
+ the system of record.)
87
+
45
88
  ## Update the kernel (occasionally)
46
89
 
47
90
  `npx create-pmos@latest --update` (or `pmos/scripts/kit-update.sh <path-to-pmos-checkout>` from a