create-pmos 0.1.0 → 0.1.1

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,206 @@
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?**
7
25
 
8
26
  ```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)
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.
12
48
  ```
13
49
 
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.
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
+ ## Your first conversation
54
+
55
+ Open the folder with your coding agent and talk to it like a colleague — clear about the goal,
56
+ open about what you don't know. Copy-paste starters:
57
+
58
+ **You have an existing product** (let the agent learn it first):
59
+
60
+ > Read pmos/AGENTS.md. Then follow pmos/skills/ingest-repo.skill: scan this repository read-only
61
+ > and draft what you learn under pmos/okf/product/ for my review. Don't change any product code.
62
+
63
+ **You have only an idea:**
64
+
65
+ > Read pmos/AGENTS.md. This is a new product: [two sentences on what it is and who it serves].
66
+ > Help me seed pmos/planning/okrs/ with one objective and 2–3 key results, then propose one small
67
+ > first initiative — optimized for a fast first win, not for completeness.
68
+
69
+ **You know exactly what you want built:**
70
+
71
+ > Read pmos/AGENTS.md. I want: [describe the outcome]. Create the initiative file, then draft the
72
+ > PRD and the eval rubric for my approval before you build anything.
73
+
74
+ ## The rhythm (every piece of work)
75
+
76
+ 1. **Name the work.** An initiative file is created in `pmos/state/initiatives/` — anchored to one
77
+ of your goals, so nothing exists "just because."
78
+ 2. **Define "good" first.** The agent drafts a PRD and a scoring rubric; you approve the contract
79
+ (`PM_approved: true`) before any building. Deciding the standard in advance is your task —
80
+ it is also what makes the agent's verdicts mean something later.
81
+ 3. **The agent builds** on its own branch and opens the work for review. A gate checks that every
82
+ change is anchored. If someone (including the agent) skips the protocol, you'll see:
83
+
84
+ ```
85
+ ❌ initiative gate FAILED — Not anchored. Name the branch 'initiative/<id>' or add
86
+ 'Initiative: <id>' to the PR body ... See pmos/AGENTS.md.
87
+ ```
88
+
89
+ The gate isn't scolding anyone — it's protecting your standard when you're not looking.
90
+ (No GitHub? Run it yourself before merging:
91
+ `HEAD_REF=$(git branch --show-current) bash pmos/scripts/gate-initiative.sh`)
92
+ 4. **An evaluator scores the work** against your rubric — adversarial by design, and advisory:
93
+
94
+ > Read pmos/AGENTS.md, then follow pmos/skills/evaluator.skill: score the work on branch
95
+ > initiative/[id] against its rubric. Be skeptical — try to refute it. Append your verdict to
96
+ > pmos/state/evals.jsonl.
97
+
98
+ 5. **You accept — or return it.** Your merge is the final gate. Returning imperfect work is not
99
+ conflict; it's the job. Record your call:
17
100
 
18
- ## What's inside
101
+ > I accept this run. Append the acceptance to pmos/state/acceptances.jsonl with pm_label
102
+ > "pass" and corrections: [how many things you had to fix].
103
+
104
+ ## Your weekly ten minutes
105
+
106
+ ```bash
107
+ python3 pmos/scripts/metrics.py
108
+ ```
109
+
110
+ What you'll see:
111
+
112
+ ```
113
+ PMOS kit metrics — 4 run(s), 4 eval(s), 3 acceptance record(s)
114
+
115
+ B1 north star: 0.33 human corrections per accepted run (over 3 accepted run(s); lower is better)
116
+ B2 throughput: 3 accepted run(s)
117
+ eval pass rate: 75% (3/4)
118
+ B4 calibration (n=3): raw agreement 100%, TPR 100%, TNR n/a — no PM fails seen (leniency blind spot), ...
119
+ ```
120
+
121
+ Reds print first, on purpose — facing facts without flinching is how the numbers stay honest. On
122
+ day one it says `UNMEASURABLE — no accepted runs yet`. That's not failure; that's a truthful
123
+ starting line. And if the evaluator starts passing everything while you keep fixing things, a
124
+ tripwire fires and tells you the judge has gone soft. A weekly prompt, if you'd rather talk than
125
+ read:
126
+
127
+ > Read pmos/state/discoveries.md and run pmos/scripts/metrics.py. Tell me: what's red, what
128
+ > friction appeared more than once, and what one improvement you'd propose. Don't change anything
129
+ > yet.
130
+
131
+ ## How it guardrails the SDLC
132
+
133
+ Each stage of the loop has a mechanism behind it — not a promise, a mechanism:
134
+
135
+ | Without the kit | With the kit |
136
+ |---|---|
137
+ | 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 |
138
+ | "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` |
139
+ | 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 |
140
+ | History gets quietly rewritten | **State files are append-only** — corrections are added, never erased; git keeps the audit trail |
141
+ | 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 |
142
+ | Tool updates overwrite your data | **Kernel updates never touch your records** — `state/`, `planning/`, `okf/product/` are structurally off-limits to `--update` |
143
+
144
+ Notice none of these guardrails restrict *you* — they restrict the process, so your judgment is
145
+ exercised at the two moments it matters: defining "good" and accepting the result.
146
+
147
+ ## Staying on the path (drift protection)
148
+
149
+ Drift never announces itself — it's always "just this once, it's small." The kit assumes that and
150
+ defends structurally rather than relying on discipline:
151
+
152
+ - **The protocol is re-taught, not remembered.** The `CLAUDE.md` line makes every fresh agent
153
+ session read `pmos/AGENTS.md` before working — so a new session, a new model, or a new teammate
154
+ starts on-protocol by default instead of drifting from a stale memory.
155
+ - **The gate makes skipping visible.** On GitHub it's a failing check nobody can miss; locally
156
+ it's the one command before a merge. Keep the `no-initiative` escape hatch for genuine chores
157
+ only — if you find yourself reaching for it weekly, that's a signal, not a shortcut.
158
+ - **The weekly ten minutes is the ritual.** Put `metrics.py` + the discoveries scan on your
159
+ calendar. A friction that shows up twice with no decision gets promoted to a rule — that's how
160
+ the process improves instead of eroding.
161
+ - **Ask the agent to audit itself.** Any time you feel drift:
162
+
163
+ > List every merge in the last two weeks. For each: which initiative anchors it, did the rubric
164
+ > exist before the build, and is there an acceptance record? Report gaps without fixing them.
165
+
166
+ - **A lapse is data, not a verdict.** If you skipped the ritual for a month, the files show
167
+ exactly where the record stops — restart from there. The kit never shames a gap; it just makes
168
+ the gap visible enough that you can choose to close it.
169
+
170
+ ## See your workflow — build your own dashboard
171
+
172
+ The entire state is plain, open files (`state/*.jsonl`, `state/initiatives/*.md`) — which means
173
+ **any AI platform can turn it into a dashboard on demand.** No product to buy, no service to
174
+ connect. In Claude (or Claude Code) in your product folder, paste:
175
+
176
+ > Read pmos/state/initiatives/*.md, pmos/state/runs.jsonl, evals.jsonl, acceptances.jsonl, and
177
+ > pmos/state/discoveries.md. Generate a single, self-contained HTML file at pmos/dashboard.html —
178
+ > no external scripts or network calls — showing: (1) a board with initiatives as cards in columns
179
+ > by stage (intake / spec / build / eval / accepted); (2) the north star (corrections per accepted
180
+ > run) and eval pass rate as stat tiles; (3) a recent-runs timeline with verdicts; (4) open
181
+ > frictions. Reds and gaps first, then greens.
182
+
183
+ Open `pmos/dashboard.html` in a browser. Regenerate it whenever you want a fresh view (or ask for
184
+ it weekly as part of the ritual) — it's disposable by design. On other platforms the same works:
185
+ upload or paste the state files to ChatGPT/Gemini and ask for the same artifact. Two rules keep
186
+ this safe: the dashboard is a **read-only view, never the system of record** (the files stay the
187
+ truth), and if your product is confidential, generate it with a tool that runs where the files
188
+ live rather than uploading them elsewhere.
189
+
190
+ ## Keeping the kit fresh
191
+
192
+ ```bash
193
+ npx create-pmos@latest --update
194
+ ```
19
195
 
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)
196
+ Refreshes the skills, concepts, and scripts only. Your records `state/`, `planning/`,
197
+ `okf/product/` — are yours, and an update never touches them. `pmos/KIT-VERSION` always says
198
+ exactly what you're running.
25
199
 
26
200
  ## Scope & support
27
201
 
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.
202
+ This package contains only the PMOS workflow kernel. It holds no reference to, and never
203
+ contacts, any external backend the publish pipeline verifies that on every release. MIT,
204
+ provided as-is: a snapshot from a private upstream, updated when the maintainer publishes.
205
+ Issues/PRs are not currently monitored — the kit is deliberately self-sufficient; everything it
206
+ 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.1",
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@30a011b
2
2
  assembled: 2026-07-17
3
3
  mode: vendor
package/payload/README.md CHANGED
@@ -30,6 +30,16 @@ 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
+ **No GitHub?** Skip the workflow file and run the gate by hand before merging any initiative
39
+ branch: `HEAD_REF=$(git branch --show-current) bash pmos/scripts/gate-initiative.sh` — green means
40
+ anchored; your local `git merge` is the Acceptance Gate. If the repo later lands on GitHub, copy
41
+ `templates/pmos-gate.yml` into `.github/workflows/` and the gate becomes automatic.
42
+
33
43
  ## Operate (every piece of work)
34
44
 
35
45
  1. Create `pmos/state/initiatives/<id>.md` (stage `intake`, anchored to a KR in `planning/okrs/`).
@@ -42,6 +52,34 @@ payload is assembled by that same script at publish time, so the two never drift
42
52
  5. Acceptance Gate: the **human PM** merges and disposes; append to `state/acceptances.jsonl`
43
53
  (`accepted`, `pm_label`, corrections). Weekly: run `scripts/metrics.py`, read the red first.
44
54
 
55
+ ## Sample prompts (copy-paste, no coding required)
56
+
57
+ Talk to your agent like a colleague; your task is direction and judgment, its task is the build.
58
+
59
+ - **Onboard an existing product:** "Read pmos/AGENTS.md. Then follow pmos/skills/ingest-repo.skill:
60
+ scan this repository read-only and draft what you learn under pmos/okf/product/ for my review.
61
+ Don't change any product code."
62
+ - **Greenfield:** "Read pmos/AGENTS.md. This is a new product: [two sentences]. Seed
63
+ pmos/planning/okrs/ with one objective and 2–3 key results, then propose one small first
64
+ initiative — fast first win, not completeness."
65
+ - **Start a piece of work:** "Read pmos/AGENTS.md. I want: [outcome]. Create the initiative file,
66
+ then draft the PRD and eval rubric for my approval before you build anything."
67
+ - **Review Gate:** "Follow pmos/skills/evaluator.skill: score the work on branch initiative/[id]
68
+ against its rubric. Be skeptical — try to refute it. Append the verdict to pmos/state/evals.jsonl."
69
+ - **Acceptance:** "I accept this run. Append the acceptance to pmos/state/acceptances.jsonl with
70
+ pm_label 'pass' and corrections: [n]."
71
+ - **Weekly review:** "Read pmos/state/discoveries.md and run pmos/scripts/metrics.py. Tell me
72
+ what's red, what friction appeared more than once, and one improvement you'd propose. Don't
73
+ change anything yet."
74
+ - **Drift audit:** "List every merge in the last two weeks. For each: which initiative anchors it,
75
+ did the rubric exist before the build, and is there an acceptance record? Report gaps without
76
+ fixing them."
77
+ - **Dashboard on demand:** "Read pmos/state/ (initiatives, runs.jsonl, evals.jsonl,
78
+ acceptances.jsonl, discoveries.md). Generate a self-contained pmos/dashboard.html — no external
79
+ scripts or network — with a stage-column board of initiatives, north-star + pass-rate tiles, a
80
+ recent-runs timeline, and open frictions. Reds and gaps first." (Read-only view — the files stay
81
+ the system of record.)
82
+
45
83
  ## Update the kernel (occasionally)
46
84
 
47
85
  `npx create-pmos@latest --update` (or `pmos/scripts/kit-update.sh <path-to-pmos-checkout>` from a