create-pmos 0.52.0 → 0.53.0
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 +2 -2
- package/payload/mods/pmos-cockpit/README.md +13 -0
- package/payload/mods/pmos-cockpit/hooks/lib/commands.mjs +2 -1
- package/payload/mods/pmos-cockpit/hooks/lib/grants.mjs +41 -11
- package/payload/mods/pmos-cockpit/hooks/lib/guard.mjs +228 -8
- package/payload/mods/pmos-cockpit/hooks/register.tsx +11 -3
- package/payload/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/scripts/plan-items-stage.js +271 -0
- package/payload/scripts/pmos-log.sh +18 -7
- package/payload/scripts/workflow-state.js +28 -2
- package/payload/state/discoveries.md +1 -1
- package/payload/state/log.md +1 -1
- package/workspace/bin/pmos.js +15 -1
- package/workspace/cut-stub.js +40 -0
- package/workspace/first-paint-audit.js +145 -0
- package/workspace/fixtures/capture/requirements/capture-2026-10-04-1.md +10 -0
- package/workspace/fixtures/initiatives-api/list.json +176 -0
- package/workspace/fixtures/initiatives-api/post-403.json +5 -0
- package/workspace/fixtures/initiatives-api/post-ok.json +10 -0
- package/workspace/fixtures/initiatives-api/roadmap.json +208 -0
- package/workspace/fixtures/initiatives-api/sheet.json +112 -0
- package/workspace/fixtures/report-api/draft.json +177 -0
- package/workspace/fixtures/reports-page/draft-biweekly-2026-10-16.md +97 -0
- package/workspace/fixtures/today-api/provider-rows.json +204 -0
- package/workspace/fixtures/today-api/seam-probe-kinds.json +5 -0
- package/workspace/guide/board.md +81 -0
- package/workspace/guide/breakdown.md +154 -0
- package/workspace/guide/command-palette.md +75 -0
- package/workspace/guide/index.md +27 -17
- package/workspace/guide/initiatives-roadmap.md +130 -0
- package/workspace/guide/initiatives-screen.md +89 -0
- package/workspace/guide/initiatives-timeline.md +57 -0
- package/workspace/guide/integrated-work.md +94 -0
- package/workspace/guide/knowledge-graph.md +3 -68
- package/workspace/guide/layout.md +98 -32
- package/workspace/guide/live-notes.md +3 -3
- package/workspace/guide/pm-only-acts.md +89 -0
- package/workspace/guide/pm-only-lines.md +61 -0
- package/workspace/guide/reports-page.md +80 -0
- package/workspace/guide/reports.md +73 -0
- package/workspace/guide/timeline.md +70 -0
- package/workspace/guide/today.md +85 -0
- package/workspace/guide/validate-with-typesafe.md +1 -1
- package/workspace/lib/actor.js +91 -0
- package/workspace/lib/board-cache.js +32 -2
- package/workspace/lib/board-cli.js +108 -0
- package/workspace/lib/board-fold.js +232 -0
- package/workspace/lib/breakdown-export.js +80 -0
- package/workspace/lib/capture.js +98 -0
- package/workspace/lib/engine/plan-items-stage.js +271 -0
- package/workspace/lib/engine/workflow-state.js +28 -2
- package/workspace/lib/factory-join.js +158 -0
- package/workspace/lib/grant-mint.js +113 -0
- package/workspace/lib/health-rules-factory.js +92 -0
- package/workspace/lib/health-rules-plan.js +164 -0
- package/workspace/lib/health.js +79 -0
- package/workspace/lib/initiative-cli.js +222 -0
- package/workspace/lib/initiative-display.js +183 -0
- package/workspace/lib/initiative-needs.js +127 -0
- package/workspace/lib/initiative-rows.js +206 -0
- package/workspace/lib/initiative-writer.js +141 -0
- package/workspace/lib/issues.js +206 -0
- package/workspace/lib/item-cli.js +195 -0
- package/workspace/lib/item-spans.js +137 -0
- package/workspace/lib/measure-cli.js +100 -0
- package/workspace/lib/measurements.js +189 -0
- package/workspace/lib/mobile-nav.js +57 -53
- package/workspace/lib/needs-providers.js +120 -0
- package/workspace/lib/placements.js +440 -0
- package/workspace/lib/plan-items.js +922 -0
- package/workspace/lib/plan-ledgers.js +85 -0
- package/workspace/lib/plan-rules.js +72 -0
- package/workspace/lib/plan-tree.js +367 -0
- package/workspace/lib/pm-guard.js +174 -0
- package/workspace/lib/pm-lines-needs.js +331 -0
- package/workspace/lib/pmos-verbs.js +66 -0
- package/workspace/lib/proactive.js +7 -4
- package/workspace/lib/report-cli.js +152 -0
- package/workspace/lib/report-draft.js +579 -0
- package/workspace/lib/report-needs.js +213 -0
- package/workspace/lib/route-modules.js +128 -0
- package/workspace/lib/routes-board.js +91 -0
- package/workspace/lib/routes-capture.js +52 -0
- package/workspace/lib/routes-initiatives.js +371 -0
- package/workspace/lib/routes-reports.js +163 -0
- package/workspace/lib/routes-timeline.js +197 -0
- package/workspace/lib/routes-today.js +32 -0
- package/workspace/lib/today-cli.js +99 -0
- package/workspace/lib/today.js +333 -0
- package/workspace/lib/triage.js +163 -0
- package/workspace/lib/verify-work-cli.js +81 -0
- package/workspace/lib/work-check-needs.js +99 -0
- package/workspace/package-lock.json +1 -1
- package/workspace/package.json +4 -5
- package/workspace/public/index.html +29 -19
- package/workspace/public/pm/app.js +299 -30
- package/workspace/public/pm/bd-board.js +113 -0
- package/workspace/public/pm/bd-drag.js +59 -0
- package/workspace/public/pm/bd-model.js +152 -0
- package/workspace/public/pm/bd-timeline.js +233 -0
- package/workspace/public/pm/bd-tree.js +244 -0
- package/workspace/public/pm/board-copy.js +57 -0
- package/workspace/public/pm/breakdown-api.js +58 -0
- package/workspace/public/pm/breakdown-copy.js +138 -0
- package/workspace/public/pm/components.css +3054 -0
- package/workspace/public/pm/cycle-review.js +125 -0
- package/workspace/public/pm/data.js +40 -187
- package/workspace/public/pm/dest-board.js +438 -0
- package/workspace/public/pm/dest-initiatives.js +134 -0
- package/workspace/public/pm/dest-reports.js +270 -0
- package/workspace/public/pm/dest-settings.js +217 -0
- package/workspace/public/pm/dest-today.js +176 -0
- package/workspace/public/pm/dialogs.js +88 -0
- package/workspace/public/pm/display-word.js +56 -0
- package/workspace/public/pm/dock.js +105 -0
- package/workspace/public/pm/fixture.js +8 -227
- package/workspace/public/pm/frame-copy.js +94 -0
- package/workspace/public/pm/handoff-box.js +82 -0
- package/workspace/public/pm/http.js +88 -0
- package/workspace/public/pm/icons.js +53 -0
- package/workspace/public/pm/initiative-list.js +218 -0
- package/workspace/public/pm/initiative-sheet.js +261 -0
- package/workspace/public/pm/initiatives-api.js +59 -0
- package/workspace/public/pm/initiatives-copy.js +215 -0
- package/workspace/public/pm/initiatives-timeline-copy.js +59 -0
- package/workspace/public/pm/initiatives-timeline.js +410 -0
- package/workspace/public/pm/initiatives-ui.js +123 -0
- package/workspace/public/pm/item-sheet.js +251 -0
- package/workspace/public/pm/keep-card.js +204 -0
- package/workspace/public/pm/lifecycle.js +7 -1
- package/workspace/public/pm/mobile.css +49 -20
- package/workspace/public/pm/mobile.js +157 -29
- package/workspace/public/pm/modes-live.js +7 -883
- package/workspace/public/pm/modes.js +32 -1024
- package/workspace/public/pm/new-initiative-sheet.js +74 -0
- package/workspace/public/pm/next-step-ui.js +3 -2
- package/workspace/public/pm/palette-copy.js +51 -0
- package/workspace/public/pm/palette.js +312 -0
- package/workspace/public/pm/panel-breakdown.js +702 -0
- package/workspace/public/pm/panel-cockpit.js +63 -295
- package/workspace/public/pm/panel-detail.js +25 -172
- package/workspace/public/pm/panel-initiatives.js +1 -19
- package/workspace/public/pm/panel-repos.js +31 -81
- package/workspace/public/pm/panel-tabs.js +197 -110
- package/workspace/public/pm/panel-trees.js +5 -2
- package/workspace/public/pm/portfolio-report.js +61 -0
- package/workspace/public/pm/primitives.js +656 -0
- package/workspace/public/pm/print.css +33 -0
- package/workspace/public/pm/provider-cards.js +136 -0
- package/workspace/public/pm/registry.js +194 -0
- package/workspace/public/pm/release-card.js +110 -0
- package/workspace/public/pm/report-view.js +309 -0
- package/workspace/public/pm/reports-copy.js +114 -0
- package/workspace/public/pm/roadmap.js +271 -0
- package/workspace/public/pm/sig-watch.js +41 -0
- package/workspace/public/pm/state.js +8 -4
- package/workspace/public/pm/status-banner.js +13 -5
- package/workspace/public/pm/tab-doc.js +2 -4
- package/workspace/public/pm/tab-term.js +12 -2
- package/workspace/public/pm/tab-web.js +3 -2
- package/workspace/public/pm/timeline-copy.js +48 -0
- package/workspace/public/pm/today-cards.js +244 -0
- package/workspace/public/pm/today-copy.js +97 -0
- package/workspace/public/pm/tokens.css +16 -18
- package/workspace/public/pm/topbar.js +102 -0
- package/workspace/public/pm/triage-card.js +60 -0
- package/workspace/public/pm/undo-hold.js +103 -0
- package/workspace/public/pm/view-addrepo.js +2 -1
- package/workspace/public/pm/view-livenotes.js +3 -1
- package/workspace/public/pm/view-today.js +7 -162
- package/workspace/public/vendor/Sortable.min.js +2 -0
- package/workspace/public/vendor/lucide-sprite.js +79 -0
- package/workspace/replaced-tests.json +2864 -0
- package/workspace/run-tests.js +56 -5
- package/workspace/server.js +312 -36
- package/workspace/sheet-answer.js +61 -0
- package/workspace/skills/measure.skill +41 -0
- package/workspace/skills/report-biweekly.skill +23 -25
- package/workspace/skills/tracker-refresh.skill +50 -0
- package/workspace/test-files.json +19 -3
- package/workspace/test-lists/base.json +6 -0
- package/workspace/test-lists/run2-a.json +6 -0
- package/workspace/test-lists/run2-b.json +13 -0
- package/workspace/test-lists/run2-c.json +19 -0
- package/workspace/test-lists/run2-d.json +22 -0
- package/workspace/test-lists/run3-0.json +5 -0
- package/workspace/test-lists/run3-a.json +5 -0
- package/workspace/test-lists/run3-b.json +6 -0
- package/workspace/test-lists/run3-c.json +15 -0
- package/workspace/test-lists/run3-d.json +6 -0
- package/workspace/test-lists/run4-a.json +8 -0
- package/workspace/test-lists/run4-b.json +6 -0
- package/workspace/test-lists/run4-c.json +13 -0
- package/workspace/test-lists/run4-d.json +9 -0
- package/workspace/test-lists/run5-a.json +6 -0
- package/workspace/test-lists/run5-b.json +6 -0
- package/workspace/test-lists/run5-c.json +15 -0
- package/workspace/test-run.js +27 -1
- package/workspace/third-party/README.md +44 -0
- package/workspace/third-party/lucide-static-1.52.0.LICENSE +43 -0
- package/workspace/third-party/sortablejs-1.15.7.LICENSE +21 -0
- package/workspace/design-parity.js +0 -673
- package/workspace/public/pm/tab-task.js +0 -86
- package/workspace/public/pm/view-guide.js +0 -141
- package/workspace/public/pm/view-knowledge.js +0 -225
- package/workspace/public/pm/view-memory.js +0 -122
- package/workspace/public/pm/view-portfolio.js +0 -153
- package/workspace/public/pm/view-reports.js +0 -190
- package/workspace/public/pm/view-scheduled.js +0 -161
- package/workspace/public/pm/view-skills.js +0 -216
package/workspace/guide/index.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: Guide
|
|
3
3
|
title: "Guide: start here"
|
|
4
|
-
timestamp: 2026-10-
|
|
4
|
+
timestamp: 2026-10-05
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Guide: start here
|
|
@@ -10,33 +10,43 @@ This guide describes the PMOS workspace as it works today. It ships with the app
|
|
|
10
10
|
|
|
11
11
|
## The screen
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
On a desktop the workspace is one frame. [Layout](layout.md) explains each part.
|
|
14
14
|
|
|
15
|
-
1. **
|
|
16
|
-
2. **The
|
|
17
|
-
3. **
|
|
15
|
+
1. **The top bar.** Repository ▾, the four places, search (⌘K), Sync when the repository is not in sync, and Settings.
|
|
16
|
+
2. **The place.** One of Today, Initiatives, Board or Reports. It fills the screen under the bar.
|
|
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
|
+
4. **The agent dock.** Terminals, documents, conversations and web pages. It is open on Today and a thin rail elsewhere.
|
|
18
19
|
|
|
19
|
-
##
|
|
20
|
+
## Where things are
|
|
20
21
|
|
|
21
|
-
|
|
|
22
|
+
| You want | Go to |
|
|
22
23
|
|---|---|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
24
|
+
| What is waiting for you now | Today |
|
|
25
|
+
| The initiatives of a repository, or of every repository | Initiatives. Choose **All repositories** in Repository ▾ for every repository. |
|
|
26
|
+
| The items of an initiative | Board, or Breakdown in the initiative detail |
|
|
27
|
+
| Run reports | Reports |
|
|
28
|
+
| Repositories, Profiles, New sessions (the default CLI and model), Validate consent, Theme | Settings |
|
|
29
|
+
| Validate | Settings, under Validate consent: **Open Validate** |
|
|
30
|
+
| A document, a decision record, a memory entry, a page of this guide | ⌘K, with its scope: Knowledge, Memory or Guide |
|
|
31
|
+
| A report across every repository | ⌘K: Portfolio report |
|
|
32
|
+
| A note, or a message to a session | ⌘K |
|
|
32
33
|
|
|
33
34
|
## Where to read next
|
|
34
35
|
|
|
35
|
-
- [Layout](layout.md): the
|
|
36
|
+
- [Layout](layout.md): the frame, the keys and the rule for where a list or a detail opens.
|
|
36
37
|
- [Statuses](statuses.md): what each status means, where it comes from, and what you can change.
|
|
37
38
|
- [Initiatives and next steps](initiatives-and-next-steps.md): the detail, the next steps, and the artifacts.
|
|
39
|
+
- [Breakdown](breakdown.md): an initiative's items in the Tree and on the Board, the item sheet, Undo, Keep, Hand to agent and `pmos item`.
|
|
38
40
|
- [Scheduled tasks and the command line](scheduled-tasks-and-cli.md): how to make, edit and run scheduled tasks.
|
|
39
41
|
- [Validate a repository](validate-with-typesafe.md): what each kind of document is compared with, how to read the verdict, and what leaves your machine.
|
|
40
42
|
- [Today and the proactive engine](proactive-engine.md): what Today finds, what you can do with an item, the settings, the commands and the limits.
|
|
41
43
|
- [Live notes](live-notes.md): take notes in a meeting, confirm each talking point, and what goes to Jev when you turn it on.
|
|
42
44
|
- [Find knowledge without reading whole files](knowledge-graph.md): what `pmos kg` finds, its commands, how to read its numbers, and its limits.
|
|
45
|
+
- [Initiatives: the Roadmap, the List and the initiative sheet](initiatives-screen.md): how to read and order the initiatives of a repository, open the sheet, make a new initiative, and review the cycle.
|
|
46
|
+
- [Initiatives and the Roadmap: Now, Next and Later](initiatives-roadmap.md): what day one shows, how an agent proposes a move, and `pmos initiative` and `pmos measure` from a terminal.
|
|
47
|
+
- [PM-only acts: what only you can do](pm-only-acts.md): which acts are yours, how the workspace checks that a press comes from your page or your terminal, and what to do when one is refused.
|
|
48
|
+
- [PM-only lines: how the workspace checks your acts](pm-only-lines.md): how each act is recorded, what the Today card "A PM-only line is not attested" means, and the grants for a bulk lifecycle change and a Release.
|
|
49
|
+
- [Breakdown › Timeline](timeline.md): an initiative's items on a time axis, split by stage, with milestones, today, and the at-risk flag when an item starts before its predecessor ends.
|
|
50
|
+
- [Initiatives › Timeline](initiatives-timeline.md): when each initiative runs, one row per initiative, and how to reorder rows by their grip.
|
|
51
|
+
- [Board](board.md): one Kanban for the items of every initiative, its filters, Release, and `pmos board`.
|
|
52
|
+
- [Integrated work](integrated-work.md): how `pmos verify-work` turns a merged commit into Done, and what "Done · your call · not merged" means.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Guide
|
|
3
|
+
title: "Initiatives and the Roadmap: Now, Next and Later"
|
|
4
|
+
description: "How an initiative gets a place in Now, Next or Later, what day one shows, how an agent proposes a move, how to add an initiative, how to record a measurement, and how to use pmos initiative and pmos measure from a terminal."
|
|
5
|
+
timestamp: 2026-10-05
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Initiatives and the Roadmap: Now, Next and Later
|
|
9
|
+
|
|
10
|
+
The Roadmap puts each initiative of a repository in one of three horizons:
|
|
11
|
+
|
|
12
|
+
- **Now** — the work that is in progress. Only you put an initiative in Now.
|
|
13
|
+
- **Next** — the work that starts when a place in Now is free.
|
|
14
|
+
- **Later** — the rest. A new initiative starts at the top of Later.
|
|
15
|
+
|
|
16
|
+
The order in a horizon is your priority order. An initiative can also have a **check-by** date: the day you want to look at it again.
|
|
17
|
+
|
|
18
|
+
The Roadmap shows work lanes only: feature, discovery, chore, incident, content, prototype and the other lanes of the work group. A document lane (for example strategy) is a file, not a row. It is not on the Roadmap, in the list, in the sheet or in an export.
|
|
19
|
+
|
|
20
|
+
## Where the Roadmap is kept
|
|
21
|
+
|
|
22
|
+
The workspace keeps the places in `planning/runs/placements.jsonl` in the repository (`pmos/state/placements.jsonl` in a PM-artifacts repository). Each move adds one line to that file. Nothing is changed or removed. The workspace page and the `pmos initiative` command use the same writer, so they always show the same order.
|
|
23
|
+
|
|
24
|
+
Each line records who wrote it and from where. You cannot set this yourself. The writer refuses a line that names its own writer.
|
|
25
|
+
|
|
26
|
+
## Day one
|
|
27
|
+
|
|
28
|
+
The first time you open the Roadmap, the file has no lines yet. The workspace then places each initiative from its activity:
|
|
29
|
+
|
|
30
|
+
- An initiative with activity in the last 5 days reads **Now, unconfirmed**. Move it to confirm it, or move it to Next or Later.
|
|
31
|
+
- An initiative with no activity for 45 days reads **dormant**, at the end of Later.
|
|
32
|
+
- Every other initiative is in Later, the most recent activity first.
|
|
33
|
+
- An accepted or stopped initiative is never in Now. It goes to the end of Later.
|
|
34
|
+
|
|
35
|
+
The two numbers are `stall_days` and `dormant_days` in `planning/plan-rules.json`.
|
|
36
|
+
|
|
37
|
+
While an initiative reads Now, unconfirmed, the Today list shows one **Review the cycle** row. The same row shows when an agent proposal waits for you and when a check-by date has passed.
|
|
38
|
+
|
|
39
|
+
## Agent proposals
|
|
40
|
+
|
|
41
|
+
An agent session can move an initiative to Next or Later, or change the order. The workspace writes each such move as a **proposal**. A proposal does not move anything. It shows on the Roadmap with the name of the agent session.
|
|
42
|
+
|
|
43
|
+
- **Adopt** a proposal to make the move. Only you adopt a proposal.
|
|
44
|
+
- **Drop** a proposal to close it. You or the agent that made it can drop it.
|
|
45
|
+
|
|
46
|
+
When you move the same initiative yourself, your move replaces its open proposals.
|
|
47
|
+
|
|
48
|
+
## Acts only you can do
|
|
49
|
+
|
|
50
|
+
Two acts are yours only. The workspace refuses them from an agent session.
|
|
51
|
+
|
|
52
|
+
- **Move to Now**, and any reorder or check-by of an initiative that is in Now.
|
|
53
|
+
- **Adopt** an agent proposal.
|
|
54
|
+
|
|
55
|
+
On the page, each press does one initiative. The page refuses a request that moves more than one initiative to Now. In a terminal, you type the initiative id (or the proposal id) to confirm. The command refuses with no interactive terminal.
|
|
56
|
+
|
|
57
|
+
## Add an initiative
|
|
58
|
+
|
|
59
|
+
Every initiative needs an anchor: a KR of the current period or a health budget `health:<id>` from `planning/okrs/health-budgets.md`. The workspace refuses an initiative with no anchor, from the page, from the terminal and from an agent session.
|
|
60
|
+
|
|
61
|
+
The writer makes the record in `planning/initiatives/<id>.md` with its type, title, timestamp, lane and anchor. A chore also needs its intent in one paragraph. The new initiative starts at the top of Later. Commit the record to keep it.
|
|
62
|
+
|
|
63
|
+
The writer refuses:
|
|
64
|
+
|
|
65
|
+
- a lane that the repository does not have, or a document lane;
|
|
66
|
+
- an anchor that names no KR or health budget;
|
|
67
|
+
- an id that is already a record.
|
|
68
|
+
|
|
69
|
+
### From a capture
|
|
70
|
+
|
|
71
|
+
A capture note in `planning/requirements/capture-<date>-<n>.md` (`pmos/state/requirements/` in a PM-artifacts repository; a quick note from the command palette) becomes a **Proposed** row on the Today list: "Proposed: title · lane · anchor". The workspace proposes the title from the first sentence and an anchor when the words match a KR or a health budget.
|
|
72
|
+
|
|
73
|
+
When the note matches a file in `planning/out-of-scope/`, the row says **matches an earlier rejection** and names that file. Read it before you add the initiative.
|
|
74
|
+
|
|
75
|
+
Press **Add** to make the initiative, or use `pmos initiative new --from <capture>`. After that, the capture leaves the list.
|
|
76
|
+
|
|
77
|
+
### No anchor
|
|
78
|
+
|
|
79
|
+
An old record with no `parent_kr` shows on the Today list as "<title> has no anchor". Add an anchor to its record.
|
|
80
|
+
|
|
81
|
+
## Break this down
|
|
82
|
+
|
|
83
|
+
An empty Breakdown offers **Break this down** with a starter list. The list is in `planning/work-starters.md`. Change that file to change the list. See [Breakdown](breakdown.md).
|
|
84
|
+
|
|
85
|
+
## Export a breakdown
|
|
86
|
+
|
|
87
|
+
The export gives an initiative's breakdown as markdown: the title and anchor, then one heading per stage, then each item with its state, owner and dates. It writes no file. Two exports of the same breakdown are the same text.
|
|
88
|
+
|
|
89
|
+
## Measurements
|
|
90
|
+
|
|
91
|
+
A measurement is the value of a KR or a health budget on a date, with its source. The workspace keeps measurements in `planning/runs/measurements.jsonl`. The List shows the latest measurement next to each anchor.
|
|
92
|
+
|
|
93
|
+
Every measurement needs a source: the file the value comes from and its commit, as `<path>@<commit sha>`. The writer refuses a measurement with no source. An agent can record a measurement, because a measurement is evidence, not a decision. The `measure` skill tells an agent how to do this.
|
|
94
|
+
|
|
95
|
+
## From a terminal: pmos initiative
|
|
96
|
+
|
|
97
|
+
`pmos initiative` uses the same writers as the page. You need no running server.
|
|
98
|
+
|
|
99
|
+
| Command | What it does |
|
|
100
|
+
|---|---|
|
|
101
|
+
| `pmos initiative new "<title>" --lane <lane> --anchor <anchor> [--intent "<text>"] [--id <id>]` | Makes the record and puts it at the top of Later. |
|
|
102
|
+
| `pmos initiative new --from <capture> [--anchor <anchor>]` | Adds the initiative a capture proposes. |
|
|
103
|
+
| `pmos initiative now <id>` | Moves it to the end of Now. You only: type the id to confirm. |
|
|
104
|
+
| `pmos initiative next <id> [--top]` | Moves it to the end of Next, or to its top. |
|
|
105
|
+
| `pmos initiative later <id> [--top]` | Moves it to the end of Later, or to its top. |
|
|
106
|
+
| `pmos initiative top <id>` | Moves it to the top of its horizon. |
|
|
107
|
+
| `pmos initiative up <id>` | Moves it one place up. |
|
|
108
|
+
| `pmos initiative down <id>` | Moves it one place down. |
|
|
109
|
+
| `pmos initiative check-by <id> <YYYY-MM-DD\|none>` | Sets or clears its check-by date. |
|
|
110
|
+
| `pmos initiative adopt <proposal>` | Makes the move an agent proposed. You only: type the proposal id to confirm. |
|
|
111
|
+
| `pmos initiative drop <proposal>` | Closes a proposal. |
|
|
112
|
+
| `pmos initiative list` | Shows Now, Next and Later in order, with the open proposals. |
|
|
113
|
+
| `pmos initiative export <id>` | Writes the breakdown as markdown to the terminal. |
|
|
114
|
+
|
|
115
|
+
Every command takes `--json` and `--root <dir>`. In an agent session, `next`, `later`, `top`, `up`, `down` and `check-by` write a proposal. The command does not accept `--by` or `--via`.
|
|
116
|
+
|
|
117
|
+
The command exits 0 when it is done, 1 when it refuses, and 2 for a usage error.
|
|
118
|
+
|
|
119
|
+
## From a terminal: pmos measure
|
|
120
|
+
|
|
121
|
+
| Command | What it does |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `pmos measure add <anchor> <value> --source <path>@<sha> [--target <number>] [--unit <unit>] [--as-of YYYY-MM-DD]` | Records a measurement. With no `--as-of`, the date is today. |
|
|
124
|
+
| `pmos measure list [<anchor>]` | Shows the measurements, oldest first, for each anchor. |
|
|
125
|
+
|
|
126
|
+
Put an anchor with a space in quotes: `pmos measure add "KR 2.1" 41 --source planning/okrs/q4.md@1a2b3c4`.
|
|
127
|
+
|
|
128
|
+
## The checks
|
|
129
|
+
|
|
130
|
+
CI runs `scripts/check-placements.js` and `scripts/check-measurements.js` on each pull request. Each check fails on a line that is not JSON, a line that breaks the format, and one event id with two different lines. It reports, and does not fail on, a line the Roadmap ignores, for example an agent line that adopts a proposal.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Guide
|
|
3
|
+
title: "Initiatives: the Roadmap, the List and the initiative sheet"
|
|
4
|
+
description: "How to read and order the initiatives of a repository on the Roadmap and the List, open the initiative sheet, make a new initiative, and review the cycle."
|
|
5
|
+
timestamp: 2026-10-05
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Initiatives: the Roadmap, the List and the initiative sheet
|
|
9
|
+
|
|
10
|
+
The Initiatives place shows every initiative of the selected repository. Each initiative is in one horizon: Now, Next or Later. A horizon is an order, not a date. The order and the horizon of each initiative are lines in `planning/runs/placements.jsonl`. The workspace page and the `pmos initiative` command write the same lines.
|
|
11
|
+
|
|
12
|
+
Press **Roadmap** or **List** at the top to change the view. The workspace keeps your choice in this browser.
|
|
13
|
+
|
|
14
|
+
## The Roadmap
|
|
15
|
+
|
|
16
|
+
The Roadmap has three columns: Now, Next and Later. Each column is a ranked list of cards. The line at the top reads, for example, "Now · 5 KR · 3 health". It counts the initiatives in Now by what they serve: a key result (KR) or a health budget. When the rules set an advisory cap for Now, the line shows it. The cap only advises. It never stops a move.
|
|
17
|
+
|
|
18
|
+
A card shows the title, the stage, "7 of 12" for the items done, the check-by date when a card in Now has one, and the reason when the initiative is not on track. An initiative that is on track shows no health text.
|
|
19
|
+
|
|
20
|
+
### Move a card
|
|
21
|
+
|
|
22
|
+
- **Drag.** Hold the grip at the start of the card, then drop it in a column. On a touch screen, hold for a moment before you drag.
|
|
23
|
+
- **Keyboard.** Select the card and press Alt and the Up or Down arrow.
|
|
24
|
+
- **The card menu.** The menu has: Open, To top, Up, Down, Move to Now, Move to Next, Move to Later and Set check-by. On a phone, press the three dots on a card. Two presses move a card up one place. On a desk the three dots are not on the card, and a line above the columns says so. Right-click the card, or press the menu key while it has focus. Set check-by is on the cards of Now only. A card that leaves Now loses its check-by date.
|
|
25
|
+
|
|
26
|
+
Only you can move an initiative into Now. The workspace writes the line as yours. If the server refuses a move, the card goes back and a message tells you why.
|
|
27
|
+
|
|
28
|
+
### Unconfirmed, proposed and dormant
|
|
29
|
+
|
|
30
|
+
- **unconfirmed.** An initiative that reads Now only because it is active, with no line from you. Confirm it in the Cycle review.
|
|
31
|
+
- **proposed.** An agent proposed a move. It changes nothing until you keep it in the Cycle review.
|
|
32
|
+
- **Dormant.** An initiative with no activity for a long time. Press the dormant line under Later to show them.
|
|
33
|
+
|
|
34
|
+
## The List
|
|
35
|
+
|
|
36
|
+
The List groups the initiatives by objective, and inside each objective by anchor. An anchor is the KR or the health budget that the initiative serves. A group shows its measured value only when the repository has one: for example "41% on 2 Oct → 55%". A group with no measured value shows none.
|
|
37
|
+
|
|
38
|
+
Press **Select** (or the `x` key) to choose rows. The bar shows what you can do with the choice:
|
|
39
|
+
|
|
40
|
+
- **Move to Next** and **Move to Later**.
|
|
41
|
+
- **Change lifecycle.** A sheet opens with the state to set: On hold, Closed, Cancelled or Active. It opens on On hold. Press **Confirm** to write it. This is off until the workspace can write one lifecycle line for each initiative on your press. Until then the button is disabled and says that the act arrives in Run 2. You can still change one initiative at a time in its sheet.
|
|
42
|
+
|
|
43
|
+
You can select 20 initiatives at most. The List never moves several initiatives into Now at once, and never changes an anchor for several. Those are one-at-a-time acts.
|
|
44
|
+
|
|
45
|
+
## The initiative sheet
|
|
46
|
+
|
|
47
|
+
Press a card or a row to open its sheet. On a desk the sheet is about 70% of the width. On a phone it fills the screen.
|
|
48
|
+
|
|
49
|
+
From the top:
|
|
50
|
+
|
|
51
|
+
1. The horizon, the health reason when there is one, and the More button.
|
|
52
|
+
2. Line 1: the stage and who the initiative waits on. Line 2: the stage steps, as a row of stages.
|
|
53
|
+
3. One line of text: "Waiting on you: approval" with **Open gate**, or "Waiting on agent: build" with **Hand to agent**. When nothing is owed it says so.
|
|
54
|
+
4. Three tabs: **Breakdown**, **Files** and **History**. The Breakdown tab is the same Breakdown as in its own tab, and it shows here too.
|
|
55
|
+
|
|
56
|
+
An initiative that is finished reads "Accepted". An initiative on hold, closed or cancelled reads that word instead of a stage. After 5 days with no activity, the line adds "idle 5 d".
|
|
57
|
+
|
|
58
|
+
The More button in the sheet has:
|
|
59
|
+
|
|
60
|
+
- **Move to Now**, **Move to Next**, **Move to Later**.
|
|
61
|
+
- **Set check-by.** On an initiative in Now. A date by which you want to look again. The Cycle review lists the dates that passed.
|
|
62
|
+
- **Lifecycle.** On hold, Close, Mark cancelled or Reopen. Only you can change it. A sheet asks you to confirm and gives you a field for the reason.
|
|
63
|
+
- **Change anchor.** Only you can change it. Enter a KR id such as KR 2.1, or health: and an id. It rewrites the anchor line in the frontmatter of the initiative record and nothing else.
|
|
64
|
+
- **Copy CLI.** Copies the `pmos initiative` command for the same act.
|
|
65
|
+
- **Export breakdown.** Copies the Breakdown as text.
|
|
66
|
+
|
|
67
|
+
## Make a new initiative
|
|
68
|
+
|
|
69
|
+
Press **New initiative**. Give a title, choose a lane and choose an anchor. An initiative with no anchor is refused. The new initiative starts in Later. When it is real work, move it to Now yourself.
|
|
70
|
+
|
|
71
|
+
The same act from a terminal is `pmos initiative new "<title>" --anchor <kr>`.
|
|
72
|
+
|
|
73
|
+
### Break this down
|
|
74
|
+
|
|
75
|
+
An initiative with no items shows **Break this down** in its Breakdown. When the repository has a file `planning/work-starters.md`, its bullet lines show as a starter list, and **Add n items** adds them all. You can also press **Break this down** and type the first item.
|
|
76
|
+
|
|
77
|
+
## Today: the triage card and the Cycle review
|
|
78
|
+
|
|
79
|
+
- **Triage.** "Proposed: Partner SSO · new feature · KR 2.1" with **Add**. An agent read a capture and proposed an initiative. One press of Add writes it, in Later.
|
|
80
|
+
- **Cycle review.** The card opens a sheet with three lists. Now, unconfirmed: **Confirm** keeps it in Now, **Move back** puts it in Later. Agent proposals: **Keep** applies the move as your line, **Drop** removes it. Check-by dates passed: set a new date, or move the initiative to Next. Each press acts on one initiative: there is no Confirm all, because Move to Now is never done in bulk.
|
|
81
|
+
- **Monthly kill check.** The same sheet opens from the monthly check of the kill conditions, with the file that the check reads.
|
|
82
|
+
|
|
83
|
+
## Keys
|
|
84
|
+
|
|
85
|
+
| Key | What it does |
|
|
86
|
+
|---|---|
|
|
87
|
+
| Alt and Up or Down | Moves the selected card up or down one place. |
|
|
88
|
+
| `x` | Starts and ends Select in the List. |
|
|
89
|
+
| Escape | Closes a menu or a sheet. |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Guide
|
|
3
|
+
title: "Initiatives › Timeline: when each initiative runs"
|
|
4
|
+
description: "How to read the Timeline of Initiatives, what draws a bar, how to reorder rows, and what to do on a phone."
|
|
5
|
+
timestamp: 2026-10-05
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Initiatives › Timeline
|
|
9
|
+
|
|
10
|
+
The Timeline shows each initiative as a row, with its work laid out by month. Use it to see when work runs and which initiatives have no dates yet.
|
|
11
|
+
|
|
12
|
+
The Roadmap answers "in what order?". The Timeline answers "when?". The Timeline uses the placement lines that the Roadmap uses. An initiative that no line has placed reads Later. Held, closed and cancelled initiatives have no row here.
|
|
13
|
+
|
|
14
|
+
## Open the Timeline
|
|
15
|
+
|
|
16
|
+
1. Open **Initiatives**.
|
|
17
|
+
2. In the View control, press **Timeline**. The other views are **Roadmap** and **List**.
|
|
18
|
+
|
|
19
|
+
## Read the chart
|
|
20
|
+
|
|
21
|
+
- **Months.** The months run across the top. The chart starts at the first month that holds a date and ends at the last. It always includes today, and it is at least three months and at most 24 months wide. Today is the date on the machine that runs the workspace. If the dates reach outside 24 months, the chart opens a few months before today, and a note under it says that a date outside those months is cut off. The dates in a row's meta line stay complete.
|
|
22
|
+
- **Groups.** The rows are in three groups: Now, Next and Later. A group shows only when it has a dated initiative. Inside a group the rows follow the placement lines. A row that no line has placed comes after the rows that have one, in id order.
|
|
23
|
+
- **Row.** A row has a grip, a title, and one line with the lane, the number of items done ("7 of 12") and the dates the bar covers.
|
|
24
|
+
- **Bar.** The bar runs from the earliest start date to the latest due date of the initiative's items. It is split by stage, so you can see when Intake ends and when Build starts. A stage with no dated item has no part of the bar.
|
|
25
|
+
- **Diamond.** A milestone item shows as a diamond on its due date.
|
|
26
|
+
- **Today.** One line crosses the chart at today's date. On a chart wider than the screen, the chart opens with today in view.
|
|
27
|
+
- **Stages.** Press the arrow at the start of a row to show one row for each stage. A stage row shows the stage, how many items are done ("Build · 3 of 5") and its own bar. The arrow reads "Show stages of …" or "Hide stages of …" for a screen reader.
|
|
28
|
+
- **Not dated.** An initiative with no dated item has no bar. It sits below the chart, in the heading **Not dated**, in its group. It shows only the order it carries. Give one of its items a start or a due date in the Breakdown and its bar appears.
|
|
29
|
+
|
|
30
|
+
If no initiative has a dated item, the Timeline says so and shows no chart.
|
|
31
|
+
|
|
32
|
+
## What the Timeline shows
|
|
33
|
+
|
|
34
|
+
- **Work lanes only.** An initiative in a document lane (a strategy, a report, a decision record) has no row. You reach those as files.
|
|
35
|
+
- **Held, closed and cancelled initiatives** have no row.
|
|
36
|
+
- **Dates come from items.** Nothing on the Timeline has a date of its own. A date is the start or the due date of an item. You set it on the item, in the Breakdown. See [Breakdown](breakdown.md).
|
|
37
|
+
- **Bars do not move.** You cannot drag a bar to change a date. A drag that starts on a bar writes nothing.
|
|
38
|
+
|
|
39
|
+
## Reorder a row
|
|
40
|
+
|
|
41
|
+
A row reorders inside its own group. It never changes horizon here: to move an initiative to Now, Next or Later, use the Roadmap.
|
|
42
|
+
|
|
43
|
+
- **Grip.** Hold the grip at the start of the row and drag it up or down. On a phone, hold the grip for a moment first, then drag. The row is placed after the row above it.
|
|
44
|
+
- **Keyboard.** Put the focus on the title and press Alt+ArrowUp or Alt+ArrowDown.
|
|
45
|
+
- **Menu.** Press **⋯** on the row. The menu has **Open**, and then **To top**, **Up** and **Down** when the row can move that way. A row alone in its group has only **Open**.
|
|
46
|
+
|
|
47
|
+
A move writes one line to `planning/runs/placements.jsonl` (`pmos/state/placements.jsonl` in a kit repository). The line says who moved the row: it is you, from the page. A row that no line has placed cannot be named by a line that follows it. When you move a row next to such a row, the move writes one line for each row from the first row it changes to the last row that needs a line, and a message says how many. After that, those rows keep the order you see. If the workspace refuses the move, a message gives the reason and the rows stay in the order the file has.
|
|
48
|
+
|
|
49
|
+
Moving a row inside Now is a placement into Now. If the workspace asks for your press for it, the message says so.
|
|
50
|
+
|
|
51
|
+
## On a phone
|
|
52
|
+
|
|
53
|
+
At 390 px the chart scrolls sideways inside its own box. The page does not scroll sideways. The name of each row stays at the left edge while the months move under it. Every control on a row, the grip, the arrow and the **⋯** button, is at least 44 px high and wide.
|
|
54
|
+
|
|
55
|
+
## Keep the view current
|
|
56
|
+
|
|
57
|
+
The Timeline reads again about every ten seconds while the page is visible, and when you return to the page. A change made in a terminal, or by an agent, shows without a reload.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Guide
|
|
3
|
+
title: "Integrated work: from a merged commit to Done"
|
|
4
|
+
description: "How pmos verify-work marks factory work items integrated from the default branch, how a plan item then reads Done, when the Build step is done, why factory work starts only from Now, and the two factory health reasons."
|
|
5
|
+
timestamp: 2026-10-05
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Integrated work: from a merged commit to Done
|
|
9
|
+
|
|
10
|
+
Some items of a breakdown go to the factory. The factory does the work in the product repository and opens a pull request. This page tells you how a merged pull request makes its item Done, and what the workspace shows on the way.
|
|
11
|
+
|
|
12
|
+
## Two ledgers, one link
|
|
13
|
+
|
|
14
|
+
- The breakdown items are in `planning/runs/plan-items.jsonl`. You and the agent write this file. See [Breakdown](breakdown.md).
|
|
15
|
+
- The factory work items are in `planning/work-items.jsonl`. Only the factory writer adds lines to this file.
|
|
16
|
+
- When an item goes to the factory, its work item gets the field `plan_item`. This field holds the id of the breakdown item, for example `checkout.k3m9x2a7qd`. It is the only link between the two files.
|
|
17
|
+
- A breakdown line never goes into `planning/work-items.jsonl`. The checker in CI stops a `plan_item` that names no breakdown item.
|
|
18
|
+
|
|
19
|
+
## Factory work starts only from Now
|
|
20
|
+
|
|
21
|
+
An initiative must be in Now before the factory takes work for it. This rule applies to a feature that is anchored to a KR. It does not apply to a chore, an incident or an initiative anchored to a health budget.
|
|
22
|
+
|
|
23
|
+
If the initiative is in Next or Later, the factory refuses the work and gives the reason. The factory also refuses the work when Initiatives shows "Now, unconfirmed": only a Now that you confirmed counts. To continue:
|
|
24
|
+
|
|
25
|
+
1. Open Initiatives.
|
|
26
|
+
2. Move the initiative to Now, or confirm it in Now. Only you can do this.
|
|
27
|
+
3. Send the work to the factory again.
|
|
28
|
+
|
|
29
|
+
## Mark merged work: `pmos verify-work`
|
|
30
|
+
|
|
31
|
+
A commit can name a work item in a trailer, on its own line at the end of the commit message:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Work-Item: checkout.3
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
When that commit is on the default branch, the work item is integrated. To record this, run:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
pmos verify-work
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The command does these steps:
|
|
44
|
+
|
|
45
|
+
1. It finds the default branch in the local refs: `origin/main`, `main`, `origin/master` or `master`, in that order. It does not fetch. To see new commits, pull first (Sync).
|
|
46
|
+
2. It reads the `Work-Item:` trailers on that branch.
|
|
47
|
+
3. For each work item that is not integrated yet, it adds one `integrated` line to `planning/work-items.jsonl`. The line names the commit.
|
|
48
|
+
|
|
49
|
+
You can run the command again at any time. A work item that is already integrated is not written again.
|
|
50
|
+
|
|
51
|
+
Options:
|
|
52
|
+
|
|
53
|
+
- `--branch <ref>` reads only the commits up to `<ref>`. The ref must be on the default branch. A ref that is not merged is refused, and the command writes nothing.
|
|
54
|
+
- `--dry-run` shows what the command would write, and writes nothing.
|
|
55
|
+
- `--json` prints the result as JSON.
|
|
56
|
+
- `--root <dir>` runs in a different repository.
|
|
57
|
+
|
|
58
|
+
The command runs the repository's own copy of `scripts/verify-work.js`. A repository with no factory writer has no work items, and the command tells you so.
|
|
59
|
+
|
|
60
|
+
### What the command does not write
|
|
61
|
+
|
|
62
|
+
The command reports these cases and writes nothing for them:
|
|
63
|
+
|
|
64
|
+
- **Refused.** The work item is merged, but the factory writer does not accept `integrated` yet. Usually the work item was not verified, or its last check failed. The line shows the reason from the writer. The command then exits with 1.
|
|
65
|
+
- **Unknown.** A trailer names a work item that is not in the ledger.
|
|
66
|
+
|
|
67
|
+
A commit that is only on another branch is not read.
|
|
68
|
+
|
|
69
|
+
## What you see on the item
|
|
70
|
+
|
|
71
|
+
- **Done.** When its work item is integrated, the breakdown item reads Done. Nobody moves it by hand, and no line is added to `plan-items.jsonl`.
|
|
72
|
+
- **Done · your call · not merged.** You moved the item to Done, but its work item is not integrated yet. The item stays Done because you decided it. The text tells you that the work is not on the default branch.
|
|
73
|
+
|
|
74
|
+
## When the Build step is done
|
|
75
|
+
|
|
76
|
+
An item never completes a stage, with one exception. For a code initiative, the Build step is done when every factory work item under Build is integrated. The work items under Build are the ones whose `plan_item` is a breakdown item in the Build stage.
|
|
77
|
+
|
|
78
|
+
- While one of them is not integrated, the Build step is pending. The step names the work items it waits for.
|
|
79
|
+
- A breakdown item that you move to Done by hand does not complete the Build step.
|
|
80
|
+
- A withdrawn work item, or a withdrawn breakdown item, is not counted.
|
|
81
|
+
- When no work item names a breakdown item under Build, the commits decide the Build step, as before.
|
|
82
|
+
|
|
83
|
+
CI, the `node scripts/workflow-state.js` command and the workspace use the same rule, so they show the same Build step.
|
|
84
|
+
|
|
85
|
+
## Factory health
|
|
86
|
+
|
|
87
|
+
Two health reasons come from the factory. Each shows its reason as text.
|
|
88
|
+
|
|
89
|
+
- **Off track.** A factory work item failed its check, and nobody fixed it or withdrew it.
|
|
90
|
+
- **At risk.** The initiative is in Next or Later, but the factory claimed work for it, or commits on the trunk are attributed to it. Building starts only from Now. Move the initiative to Now, or stop the work.
|
|
91
|
+
|
|
92
|
+
## Where to read next
|
|
93
|
+
|
|
94
|
+
- [Breakdown](breakdown.md): the items of an initiative, the Tree and the Board.
|
|
@@ -68,84 +68,19 @@ The workspace decides the category with local rules only. It uses no model and s
|
|
|
68
68
|
|
|
69
69
|
When a later rule disagrees with the rule that decided, the file keeps the earlier answer. A `Reference` or `Research` file with no better evidence has no category. It shows as `undetermined`. That is not the same as `other`: `other` means the file is none of the kinds, and `undetermined` means no rule could tell.
|
|
70
70
|
|
|
71
|
-
The Knowledge view
|
|
72
|
-
|
|
73
|
-
### Ask Jev about undetermined files
|
|
74
|
-
|
|
75
|
-
Jev can give a category to a file that the local rules leave `undetermined`. This is off until you turn it on. Jev never sees a file that already has a category from a local rule or from your correction. The measured pass below is the one exception for the local rules.
|
|
76
|
-
|
|
77
|
-
Three things must all be on before anything is sent:
|
|
78
|
-
|
|
79
|
-
1. A TypeSafe key, saved on the Validate page.
|
|
80
|
-
2. Validation, switched on for this repository.
|
|
81
|
-
3. **Categorize with Jev**, the switch in the Knowledge view.
|
|
82
|
-
|
|
83
|
-
If one of them is off, the Knowledge view tells you which one.
|
|
84
|
-
|
|
85
|
-
To start:
|
|
86
|
-
|
|
87
|
-
1. Turn on **categorize with Jev**.
|
|
88
|
-
2. Press **ask Jev about undetermined files**. The view shows how many requests it will send, about how many characters, and the host. Nothing is sent yet.
|
|
89
|
-
3. Press **confirm and send** to send that number. If the files changed after you looked, even when the number is the same, the send stops and you look again.
|
|
90
|
-
|
|
91
|
-
After the first confirmed send, the workspace sends only new or changed undetermined files. It does this when it reads the documents of this repository, at most once a minute. It reads them when it starts and when you open the Knowledge view. If more than 25 files wait, it does not send them. It tells you, and you confirm the count again.
|
|
92
|
-
|
|
93
|
-
What is sent for each file: the title, the headings and the start of the text, at most 3,000 characters. The file path and the whole file are not sent. A file under an excluded path is not sent. A file whose start looks like a password or a key is not sent.
|
|
94
|
-
|
|
95
|
-
Jev's answer shows as the category with `(jev)` after it. Point at it to see how sure Jev was, in words. If Jev was not sure, the file stays `undetermined` with `(jev unsure)` after it, and the tooltip names the two categories Jev was between. A Jev category is advisory. Each answer is kept on your computer, outside the repository, and the same text is not sent twice. Nothing is written into the repository.
|
|
96
|
-
|
|
97
|
-
After a pass, the Knowledge view shows what happened to each undetermined file. Files with a problem are at the top of the list:
|
|
98
|
-
|
|
99
|
-
- **failed**: the request did not succeed. The row gives the reason. The file keeps the local result, and the next pass sends it again.
|
|
100
|
-
- **not asked**: sending stopped before this file. The row gives the reason.
|
|
101
|
-
- **unreadable**: the workspace could not read Jev's answer. The file is not sent again until it changes.
|
|
102
|
-
- **unsure**: Jev was not sure. The row names the two categories, and the file stays `undetermined`.
|
|
103
|
-
- **withheld** or **excluded**: the file was not sent. The row says why.
|
|
104
|
-
- **categorized**: Jev gave a category. The row names it.
|
|
105
|
-
|
|
106
|
-
A line above the list counts the files in the view: decided by the local rules or your corrections, categorized by Jev, and still `undetermined`.
|
|
107
|
-
|
|
108
|
-
If the service rejects the key two times, cannot be reached three times in a row, or sends three answers in a row that the workspace cannot read, sending stops for this repository. An answer that cannot be read is not sent again. Press **resume** to start again.
|
|
71
|
+
The Knowledge view is cut, so no screen lists the category of a document. The category is advisory. `pmos kg stats` counts the files in each category, and the Knowledge scope of ⌘K finds a document by its name.
|
|
109
72
|
|
|
110
73
|
### Measure how well Jev categorizes
|
|
111
74
|
|
|
112
75
|
The measured pass sends the files of the labelled set to Jev and compares the answers with the labels. It runs only when you start it in a terminal. The workspace never starts it.
|
|
113
76
|
|
|
114
|
-
The measured pass also sends labelled files that a local rule already decides, because it measures Jev on them. It does not send a file that you corrected. The
|
|
77
|
+
The measured pass also sends labelled files that a local rule already decides, because it measures Jev on them. It does not send a file that you corrected. The switches for the repository, the excluded paths and the password and key check apply to it.
|
|
115
78
|
|
|
116
79
|
1. Run `node workspace/doc-category-bench.js --jev`. It shows how many files it would send, about how many characters, the host, and a `--confirm` value. It sends nothing.
|
|
117
80
|
2. Read which categories the labelled set cannot test. When a category has no label in the set, the result says nothing about that category.
|
|
118
81
|
3. To send, run the command again with `--confirm` and the value it showed, for example `--confirm 40:372a…`. The value holds the count and the files. If the files changed, nothing is sent and you look again.
|
|
119
82
|
|
|
120
|
-
It uses the key that you saved on the Validate page, or `TYPESAFE_API_KEY` in the terminal. It prints the agreement, each category, how many answers were unsure, how many files were not sent and why, and every disagreement. The labels in the set are not yet confirmed, so the result is provisional. Only one pass at a time runs for a repository. If the workspace is sending, the command stops and sends nothing.
|
|
121
|
-
|
|
122
|
-
### Correct a category
|
|
123
|
-
|
|
124
|
-
When a category is wrong, set the correct one. Your correction comes before all five rules.
|
|
125
|
-
|
|
126
|
-
1. In the Knowledge view, press **fix** at the end of the document row.
|
|
127
|
-
2. Select the category. For a `ticket`, also select the ticket kind.
|
|
128
|
-
3. Press **save correction**.
|
|
129
|
-
|
|
130
|
-
The category after the document name changes. Point at it: it says `decided by pm correction`. When a rule gives a different category, the text names that rule too.
|
|
131
|
-
|
|
132
|
-
The workspace keeps your corrections in its runtime state directory, never in the repository. Each repository has its own corrections. A correction does not change a file. To remove a correction, press **fix** and then **clear correction**. The rules then decide again.
|
|
133
|
-
|
|
134
|
-
### Write the category into the file
|
|
135
|
-
|
|
136
|
-
You can also write the category into the document, as a `category:` line in its frontmatter. This is a separate step, and it is the only step here that changes a file.
|
|
137
|
-
|
|
138
|
-
1. Press **fix** and select the category.
|
|
139
|
-
2. Press **write it into the file**. The workspace shows the change. It does not write yet.
|
|
140
|
-
3. Examine the change. Press **apply** to write it, or **cancel**.
|
|
141
|
-
|
|
142
|
-
The workspace changes one `category:` line in the frontmatter block at the top of the file. For a ticket, it also changes one `ticket_kind:` line. It adds the line when there is none. No other line of the file changes.
|
|
143
|
-
|
|
144
|
-
The workspace does not write when:
|
|
145
|
-
|
|
146
|
-
- The file has no frontmatter block at the top. It does not add a block.
|
|
147
|
-
- The frontmatter has two `category:` lines.
|
|
148
|
-
- The file changed after the workspace showed you the change. Press **write it into the file** again to see the new change.
|
|
83
|
+
It uses the key that you saved on the Validate page (Settings › Validate consent › Open Validate), or `TYPESAFE_API_KEY` in the terminal. It prints the agreement, each category, how many answers were unsure, how many files were not sent and why, and every disagreement. The labels in the set are not yet confirmed, so the result is provisional. Only one pass at a time runs for a repository. If the workspace is sending, the command stops and sends nothing.
|
|
149
84
|
|
|
150
85
|
## Where the map is kept
|
|
151
86
|
|