create-pmos 0.57.0 → 0.57.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/package.json +1 -1
- package/payload/KIT-VERSION +1 -1
- package/payload/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/state/discoveries.md +1 -1
- package/workspace/first-paint-audit.js +5 -2
- package/workspace/guide/docs.md +1 -1
- package/workspace/guide/index.md +1 -1
- package/workspace/guide/layout.md +2 -2
- package/workspace/package-lock.json +1 -1
- package/workspace/package.json +1 -1
- package/workspace/public/pm/dest-docs.js +1 -1
- package/workspace/public/pm/frame-copy.js +1 -0
- package/workspace/public/pm/topbar.js +5 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-pmos",
|
|
3
|
-
"version": "0.57.
|
|
3
|
+
"version": "0.57.1",
|
|
4
4
|
"description": "Scaffold the PMOS portable kit — run the PMOS product-management workflow (initiative → lane-fit spec → contract → build → three gates, with work-type lanes for features, research, maintenance, incidents, and content) entirely inside your own repo, with all state as git-versioned files. Includes `workflow-sweep`, which audits the state every board derives from and separates real defects from work you simply have not done. `create-pmos workspace` also installs + launches the local Terminal Workspace GUI. No database, no network, no telemetry.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
package/payload/KIT-VERSION
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type: Reference
|
|
3
3
|
title: "Eval calibration log"
|
|
4
4
|
description: "Append-only record of every PM override of an evaluator verdict."
|
|
5
|
-
generated: {by: process:create-pmos, at: "2026-10-06T11:
|
|
5
|
+
generated: {by: process:create-pmos, at: "2026-10-06T11:33:15Z"}
|
|
6
6
|
status: stable
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type: Reference
|
|
3
3
|
title: "Health budgets"
|
|
4
4
|
description: "Closed registry of health-budget anchors (D59), edited only by the PM."
|
|
5
|
-
generated: {by: process:create-pmos, at: "2026-10-06T11:
|
|
5
|
+
generated: {by: process:create-pmos, at: "2026-10-06T11:33:15Z"}
|
|
6
6
|
status: stable
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type: Reference
|
|
3
3
|
title: "Discoveries and friction log"
|
|
4
4
|
description: "Append-only record of what runs discovered and where the process rubbed."
|
|
5
|
-
generated: {by: process:create-pmos, at: "2026-10-06T11:
|
|
5
|
+
generated: {by: process:create-pmos, at: "2026-10-06T11:33:15Z"}
|
|
6
6
|
status: stable
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -18,9 +18,12 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
// The budgets start at specimen A's counts. reports: 14 → 15 in Run 6 for Present, the one control the PM asked to keep
|
|
21
|
-
// with the slides (2026-10-06).
|
|
21
|
+
// with the slides (2026-10-06). Every place +1 for Docs in the top bar (the PM, 2026-10-06, docs-three-way-sync): the
|
|
22
|
+
// budget is for the whole screen and the bar is on every screen. The calibration stays specimen A's own count: the
|
|
23
|
+
// specimen did not change.
|
|
22
24
|
const SPECIMEN_A = Object.freeze({ today: 17, initiatives: 24, board: 33, reports: 14 });
|
|
23
|
-
const
|
|
25
|
+
const BAR_DOCS = 1;
|
|
26
|
+
const EXPECT = Object.freeze({ today: 17 + BAR_DOCS, initiatives: 24 + BAR_DOCS, board: 33 + BAR_DOCS, reports: 15 + BAR_DOCS });
|
|
24
27
|
|
|
25
28
|
/* ── shoot.js audit(), copied verbatim (scratchpad/specimens2/shoot.js, 2026-10-05) ─────────────────────────────── */
|
|
26
29
|
// runs in the page
|
package/workspace/guide/docs.md
CHANGED
|
@@ -6,7 +6,7 @@ timestamp: 2026-10-06
|
|
|
6
6
|
|
|
7
7
|
# Docs
|
|
8
8
|
|
|
9
|
-
Open Docs from ⌘K (**Docs**) or press `g d`.
|
|
9
|
+
Open Docs from the top bar, from ⌘K (**Docs**), or press `g d`.
|
|
10
10
|
|
|
11
11
|
Docs lists every document in the repository that has a copy in Google Docs or Confluence. For each copy, it shows whether the repository version (PMOS) or the copy is newer. You can then use one version over the other, one copy at a time.
|
|
12
12
|
|
package/workspace/guide/index.md
CHANGED
|
@@ -12,7 +12,7 @@ This guide describes the PMOS workspace as it works today. It ships with the app
|
|
|
12
12
|
|
|
13
13
|
On a desktop the workspace is one frame. [Layout](layout.md) explains each part.
|
|
14
14
|
|
|
15
|
-
1. **The top bar.** Repository ▾, the
|
|
15
|
+
1. **The top bar.** Repository ▾, the five places (Docs included), search (⌘K), Sync when the repository is not in sync, and Settings.
|
|
16
16
|
2. **The place.** One of Today, Initiatives, Board or Reports, or Docs (⌘K or `g d`). It fills the screen under the bar.
|
|
17
17
|
3. **The detail.** The item you opened: an initiative with its status, next steps and artifacts, or the profiles. It opens beside the place and closes with ×.
|
|
18
18
|
4. **The agent dock.** Terminals, documents, conversations and web pages. It is open on Today and a thin rail elsewhere.
|
|
@@ -15,7 +15,7 @@ The top bar has these parts, from left to right:
|
|
|
15
15
|
|
|
16
16
|
- **Repository ▾** names the current repository. Press it to choose another repository, or **All repositories** to see the work of every repository at once. All repositories replaces the old Portfolio mode.
|
|
17
17
|
- **Branches and sessions** is in ⌘K. It opens a sheet with every branch of the repository (main first) and how many sessions run in each. Press a branch to see its sessions, open one, end one, or start a session there. **+ branch** makes a branch, and **+ session** starts one with a branch, an agent and a profile. With All repositories, the sheet lists every repository.
|
|
18
|
-
- **Today, Initiatives, Board and
|
|
18
|
+
- **Today, Initiatives, Board, Reports and Docs** are the five places. Press one to show it. The Today count shows how many items need you. Docs shows whether each document is the same as its Google Docs and Confluence copy.
|
|
19
19
|
- **Search or capture ⌘K** opens the command palette. Type to find an initiative, a repository, an open tab or a command.
|
|
20
20
|
- **Sync** shows only when the current repository is not in sync with its remote. Press it to fetch, bring in the work of the other machine, record your changes and push. If the repository has not fetched in the last 10 minutes, Sync also shows, because a push from another machine is not visible until a fetch. When the repository fetched recently and is in sync, Sync is not shown. If Sync stops, the message names the step that stopped.
|
|
21
21
|
- **Sync on its own.** If you forget to press Sync, the workspace syncs for you. It syncs each repository once when the workspace starts. It also syncs a repository that has records not yet pushed when no record changed for 5 minutes. In a document repository it syncs every changed file on any branch. In a code repository it syncs only on the default branch (for example `main`), and only when every commit not yet pushed changes records and no code. If you close the tab while records are not yet pushed, the browser asks you first. To turn automatic sync off, start the workspace with `PMOS_AUTO_SYNC=0`.
|
|
@@ -70,7 +70,7 @@ The workspace is neutral. A primary button is the text colour on the page colour
|
|
|
70
70
|
|
|
71
71
|
| Key | What it does |
|
|
72
72
|
|---|---|
|
|
73
|
-
| g t, g i, g b, g r | Show Today, Initiatives, Board or
|
|
73
|
+
| g t, g i, g b, g r, g d | Show Today, Initiatives, Board, Reports or Docs. |
|
|
74
74
|
| ⌘K (Ctrl-K) | Open or close the command palette. |
|
|
75
75
|
| ⌘J (Ctrl-J) | Open or fold the dock. |
|
|
76
76
|
| ⌘⇧J (Ctrl-Shift-J) | Focus: give the dock the whole window, or show the place again. |
|
package/workspace/package.json
CHANGED
|
@@ -66,7 +66,7 @@ export const COPY = Object.freeze({
|
|
|
66
66
|
started: 'Compare started. It reads every copy and changes nothing.',
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
-
// Docs is
|
|
69
|
+
// Docs is in the top bar (the PM, 2026-10-06); ⌘K and `g d` open it too.
|
|
70
70
|
registerCommand({ id: 'docs-open', label: 'Docs', hint: 'Is each document the same as its Google Docs and Confluence copy', cli: 'pmos docs list', run: () => openDestination('docs') });
|
|
71
71
|
|
|
72
72
|
/* ── words ───────────────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* pm/topbar.js — the frame's one top bar (pm-os-absorb Run 3, slice 3A; PRD R9, R10).
|
|
2
2
|
*
|
|
3
|
-
* Repository ▾ · Today Initiatives Board Reports · ⌘K · Sync (only when unsynced) · Settings
|
|
3
|
+
* Repository ▾ · Today Initiatives Board Reports Docs · ⌘K · Sync (only when unsynced) · Settings
|
|
4
4
|
*
|
|
5
5
|
* The bar is built once and updated on every render: app.js calls `bar.update(model)` and the bar changes only what
|
|
6
6
|
* the model changed, so a focused control keeps its focus across a repaint. It holds no state of its own except the
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* runs `git status` against the remote-tracking ref the last fetch left).
|
|
9
9
|
*
|
|
10
10
|
* createTopbar({ go, openPalette, repoMenu, sync }) → { node, update(model) }
|
|
11
|
-
* go(id) open destination id (today, initiatives, board, reports, settings)
|
|
11
|
+
* go(id) open destination id (today, initiatives, board, reports, docs, settings)
|
|
12
12
|
* openPalette() open ⌘K
|
|
13
13
|
* repoMenu(anchor) open the Repository menu under `anchor`
|
|
14
14
|
* sync(repo) run Sync for `repo`; resolves to the server's answer
|
|
@@ -22,8 +22,9 @@ import { el, setChildren } from './dom.js';
|
|
|
22
22
|
import { button, needsDot, needsCount } from './primitives.js';
|
|
23
23
|
import { COPY } from './frame-copy.js';
|
|
24
24
|
|
|
25
|
-
/** The destinations the bar names, in order. Settings sits at the end of the bar, after Sync.
|
|
26
|
-
|
|
25
|
+
/** The destinations the bar names, in order. Settings sits at the end of the bar, after Sync. Docs joined the bar at the
|
|
26
|
+
* PM's word (2026-10-06, docs-three-way-sync: "I thought Docs is one of the main menu"), so the bar holds 8 controls. */
|
|
27
|
+
export const BAR_DESTS = Object.freeze(['today', 'initiatives', 'board', 'reports', 'docs']);
|
|
27
28
|
|
|
28
29
|
/** Is this sync reading "not in sync"? Behind, ahead, records not yet recorded, or `remote_stale`: no fetch in the last
|
|
29
30
|
* few minutes, so another machine's push would be invisible here and "in sync" cannot be claimed. An unreadable status
|