create-pmos 0.52.0 → 0.53.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.
Files changed (229) hide show
  1. package/package.json +1 -1
  2. package/payload/KIT-VERSION +2 -2
  3. package/payload/mods/pmos-cockpit/README.md +13 -0
  4. package/payload/mods/pmos-cockpit/hooks/lib/commands.mjs +2 -1
  5. package/payload/mods/pmos-cockpit/hooks/lib/grants.mjs +41 -11
  6. package/payload/mods/pmos-cockpit/hooks/lib/guard.mjs +228 -8
  7. package/payload/mods/pmos-cockpit/hooks/register.tsx +11 -3
  8. package/payload/planning/evals/eval-calibration.md +1 -1
  9. package/payload/planning/okrs/health-budgets.md +1 -1
  10. package/payload/scripts/plan-items-stage.js +271 -0
  11. package/payload/scripts/pmos-log.sh +18 -7
  12. package/payload/scripts/workflow-state.js +28 -2
  13. package/payload/state/discoveries.md +1 -1
  14. package/payload/state/log.md +1 -1
  15. package/workspace/README.md +2 -0
  16. package/workspace/REMOTE.md +24 -63
  17. package/workspace/bin/pmos.js +19 -3
  18. package/workspace/cut-stub.js +40 -0
  19. package/workspace/first-paint-audit.js +145 -0
  20. package/workspace/fixtures/capture/requirements/capture-2026-10-04-1.md +10 -0
  21. package/workspace/fixtures/initiatives-api/list.json +176 -0
  22. package/workspace/fixtures/initiatives-api/post-403.json +5 -0
  23. package/workspace/fixtures/initiatives-api/post-ok.json +10 -0
  24. package/workspace/fixtures/initiatives-api/roadmap.json +208 -0
  25. package/workspace/fixtures/initiatives-api/sheet.json +112 -0
  26. package/workspace/fixtures/report-api/draft.json +177 -0
  27. package/workspace/fixtures/reports-page/draft-biweekly-2026-10-16.md +97 -0
  28. package/workspace/fixtures/today-api/provider-rows.json +204 -0
  29. package/workspace/fixtures/today-api/seam-probe-kinds.json +5 -0
  30. package/workspace/guide/board.md +81 -0
  31. package/workspace/guide/breakdown.md +154 -0
  32. package/workspace/guide/command-palette.md +75 -0
  33. package/workspace/guide/index.md +28 -17
  34. package/workspace/guide/initiatives-roadmap.md +130 -0
  35. package/workspace/guide/initiatives-screen.md +89 -0
  36. package/workspace/guide/initiatives-timeline.md +57 -0
  37. package/workspace/guide/integrated-work.md +94 -0
  38. package/workspace/guide/knowledge-graph.md +3 -68
  39. package/workspace/guide/launcher.md +51 -0
  40. package/workspace/guide/layout.md +102 -32
  41. package/workspace/guide/live-notes.md +3 -3
  42. package/workspace/guide/pm-only-acts.md +89 -0
  43. package/workspace/guide/pm-only-lines.md +61 -0
  44. package/workspace/guide/proactive-engine.md +21 -5
  45. package/workspace/guide/reports-page.md +80 -0
  46. package/workspace/guide/reports.md +73 -0
  47. package/workspace/guide/timeline.md +70 -0
  48. package/workspace/guide/today.md +85 -0
  49. package/workspace/guide/validate-with-typesafe.md +1 -1
  50. package/workspace/lib/actor.js +91 -0
  51. package/workspace/lib/board-cache.js +32 -2
  52. package/workspace/lib/board-cli.js +108 -0
  53. package/workspace/lib/board-fold.js +232 -0
  54. package/workspace/lib/breakdown-export.js +75 -0
  55. package/workspace/lib/brief.js +20 -2
  56. package/workspace/lib/capture.js +98 -0
  57. package/workspace/lib/engine/plan-items-stage.js +271 -0
  58. package/workspace/lib/engine/workflow-state.js +28 -2
  59. package/workspace/lib/factory-join.js +158 -0
  60. package/workspace/lib/goals.js +165 -0
  61. package/workspace/lib/grant-mint.js +113 -0
  62. package/workspace/lib/health-rules-factory.js +92 -0
  63. package/workspace/lib/health-rules-plan.js +164 -0
  64. package/workspace/lib/health.js +79 -0
  65. package/workspace/lib/initiative-cli.js +222 -0
  66. package/workspace/lib/initiative-display.js +183 -0
  67. package/workspace/lib/initiative-needs.js +127 -0
  68. package/workspace/lib/initiative-rows.js +210 -0
  69. package/workspace/lib/initiative-writer.js +141 -0
  70. package/workspace/lib/issues.js +206 -0
  71. package/workspace/lib/item-cli.js +195 -0
  72. package/workspace/lib/item-spans.js +137 -0
  73. package/workspace/lib/launcher-cli.js +207 -0
  74. package/workspace/lib/measure-cli.js +100 -0
  75. package/workspace/lib/measurements.js +189 -0
  76. package/workspace/lib/mobile-nav.js +57 -53
  77. package/workspace/lib/needs-providers.js +120 -0
  78. package/workspace/lib/placements.js +440 -0
  79. package/workspace/lib/plan-items.js +922 -0
  80. package/workspace/lib/plan-ledgers.js +85 -0
  81. package/workspace/lib/plan-rules.js +72 -0
  82. package/workspace/lib/plan-tree.js +380 -0
  83. package/workspace/lib/pm-guard.js +174 -0
  84. package/workspace/lib/pm-lines-needs.js +331 -0
  85. package/workspace/lib/pmos-verbs.js +69 -0
  86. package/workspace/lib/proactive-cli.js +58 -2
  87. package/workspace/lib/proactive.js +9 -6
  88. package/workspace/lib/qr.js +293 -0
  89. package/workspace/lib/remote-access.js +93 -1
  90. package/workspace/lib/report-cli.js +152 -0
  91. package/workspace/lib/report-draft.js +578 -0
  92. package/workspace/lib/report-needs.js +213 -0
  93. package/workspace/lib/route-modules.js +128 -0
  94. package/workspace/lib/routes-board.js +91 -0
  95. package/workspace/lib/routes-capture.js +52 -0
  96. package/workspace/lib/routes-initiatives.js +371 -0
  97. package/workspace/lib/routes-reports.js +163 -0
  98. package/workspace/lib/routes-timeline.js +197 -0
  99. package/workspace/lib/routes-today.js +32 -0
  100. package/workspace/lib/today-cli.js +99 -0
  101. package/workspace/lib/today.js +333 -0
  102. package/workspace/lib/triage.js +163 -0
  103. package/workspace/lib/verify-work-cli.js +81 -0
  104. package/workspace/lib/work-check-needs.js +99 -0
  105. package/workspace/package-lock.json +1 -1
  106. package/workspace/package.json +4 -5
  107. package/workspace/public/icons/apple-touch-icon.png +0 -0
  108. package/workspace/public/icons/icon-192.png +0 -0
  109. package/workspace/public/icons/icon-512.png +0 -0
  110. package/workspace/public/index.html +40 -19
  111. package/workspace/public/pm/app.js +330 -30
  112. package/workspace/public/pm/bd-board.js +113 -0
  113. package/workspace/public/pm/bd-drag.js +59 -0
  114. package/workspace/public/pm/bd-model.js +152 -0
  115. package/workspace/public/pm/bd-timeline.js +233 -0
  116. package/workspace/public/pm/bd-tree.js +244 -0
  117. package/workspace/public/pm/board-copy.js +57 -0
  118. package/workspace/public/pm/breakdown-api.js +58 -0
  119. package/workspace/public/pm/breakdown-copy.js +138 -0
  120. package/workspace/public/pm/components.css +3135 -0
  121. package/workspace/public/pm/cycle-review.js +125 -0
  122. package/workspace/public/pm/data.js +40 -187
  123. package/workspace/public/pm/dest-board.js +438 -0
  124. package/workspace/public/pm/dest-initiatives.js +134 -0
  125. package/workspace/public/pm/dest-reports.js +270 -0
  126. package/workspace/public/pm/dest-settings.js +217 -0
  127. package/workspace/public/pm/dest-today.js +182 -0
  128. package/workspace/public/pm/dialogs.js +88 -0
  129. package/workspace/public/pm/display-word.js +56 -0
  130. package/workspace/public/pm/dock.js +175 -0
  131. package/workspace/public/pm/fixture.js +8 -227
  132. package/workspace/public/pm/frame-copy.js +99 -0
  133. package/workspace/public/pm/handoff-box.js +82 -0
  134. package/workspace/public/pm/http.js +88 -0
  135. package/workspace/public/pm/icons.js +53 -0
  136. package/workspace/public/pm/initiative-list.js +218 -0
  137. package/workspace/public/pm/initiative-sheet.js +261 -0
  138. package/workspace/public/pm/initiatives-api.js +59 -0
  139. package/workspace/public/pm/initiatives-copy.js +215 -0
  140. package/workspace/public/pm/initiatives-timeline-copy.js +59 -0
  141. package/workspace/public/pm/initiatives-timeline.js +410 -0
  142. package/workspace/public/pm/initiatives-ui.js +123 -0
  143. package/workspace/public/pm/item-sheet.js +251 -0
  144. package/workspace/public/pm/keep-card.js +204 -0
  145. package/workspace/public/pm/lifecycle.js +7 -1
  146. package/workspace/public/pm/mobile.css +49 -20
  147. package/workspace/public/pm/mobile.js +157 -29
  148. package/workspace/public/pm/modes-live.js +7 -883
  149. package/workspace/public/pm/modes.js +32 -1024
  150. package/workspace/public/pm/new-initiative-sheet.js +74 -0
  151. package/workspace/public/pm/next-step-ui.js +3 -2
  152. package/workspace/public/pm/palette-copy.js +51 -0
  153. package/workspace/public/pm/palette.js +312 -0
  154. package/workspace/public/pm/panel-breakdown.js +702 -0
  155. package/workspace/public/pm/panel-cockpit.js +63 -295
  156. package/workspace/public/pm/panel-detail.js +25 -172
  157. package/workspace/public/pm/panel-initiatives.js +1 -19
  158. package/workspace/public/pm/panel-repos.js +31 -81
  159. package/workspace/public/pm/panel-tabs.js +200 -111
  160. package/workspace/public/pm/panel-trees.js +5 -2
  161. package/workspace/public/pm/portfolio-report.js +61 -0
  162. package/workspace/public/pm/primitives.js +656 -0
  163. package/workspace/public/pm/print.css +33 -0
  164. package/workspace/public/pm/provider-cards.js +136 -0
  165. package/workspace/public/pm/registry.js +194 -0
  166. package/workspace/public/pm/release-card.js +110 -0
  167. package/workspace/public/pm/report-view.js +309 -0
  168. package/workspace/public/pm/reports-copy.js +114 -0
  169. package/workspace/public/pm/roadmap.js +271 -0
  170. package/workspace/public/pm/sig-watch.js +41 -0
  171. package/workspace/public/pm/state.js +8 -4
  172. package/workspace/public/pm/status-banner.js +13 -5
  173. package/workspace/public/pm/tab-doc.js +2 -4
  174. package/workspace/public/pm/tab-term.js +12 -2
  175. package/workspace/public/pm/tab-web.js +3 -2
  176. package/workspace/public/pm/timeline-copy.js +48 -0
  177. package/workspace/public/pm/today-cards.js +244 -0
  178. package/workspace/public/pm/today-copy.js +126 -0
  179. package/workspace/public/pm/today-goals.js +172 -0
  180. package/workspace/public/pm/tokens.css +16 -18
  181. package/workspace/public/pm/topbar.js +102 -0
  182. package/workspace/public/pm/triage-card.js +60 -0
  183. package/workspace/public/pm/undo-hold.js +103 -0
  184. package/workspace/public/pm/view-addrepo.js +2 -1
  185. package/workspace/public/pm/view-livenotes.js +3 -1
  186. package/workspace/public/pm/view-today.js +7 -162
  187. package/workspace/public/vendor/Sortable.min.js +2 -0
  188. package/workspace/public/vendor/lucide-sprite.js +79 -0
  189. package/workspace/replaced-tests.json +2877 -0
  190. package/workspace/run-tests.js +56 -5
  191. package/workspace/server.js +446 -40
  192. package/workspace/sheet-answer.js +61 -0
  193. package/workspace/skills/measure.skill +41 -0
  194. package/workspace/skills/morning-brief.skill +15 -9
  195. package/workspace/skills/report-biweekly.skill +23 -25
  196. package/workspace/skills/tracker-refresh.skill +50 -0
  197. package/workspace/test-files.json +21 -3
  198. package/workspace/test-lists/base.json +6 -0
  199. package/workspace/test-lists/run2-a.json +6 -0
  200. package/workspace/test-lists/run2-b.json +13 -0
  201. package/workspace/test-lists/run2-c.json +19 -0
  202. package/workspace/test-lists/run2-d.json +22 -0
  203. package/workspace/test-lists/run3-0.json +5 -0
  204. package/workspace/test-lists/run3-a.json +5 -0
  205. package/workspace/test-lists/run3-b.json +6 -0
  206. package/workspace/test-lists/run3-c.json +15 -0
  207. package/workspace/test-lists/run3-d.json +6 -0
  208. package/workspace/test-lists/run4-a.json +8 -0
  209. package/workspace/test-lists/run4-b.json +6 -0
  210. package/workspace/test-lists/run4-c.json +13 -0
  211. package/workspace/test-lists/run4-d.json +9 -0
  212. package/workspace/test-lists/run5-a.json +6 -0
  213. package/workspace/test-lists/run5-b.json +6 -0
  214. package/workspace/test-lists/run5-c.json +15 -0
  215. package/workspace/test-lists/workspace-launcher.json +5 -0
  216. package/workspace/test-lists/workspace-phone-app.json +5 -0
  217. package/workspace/test-run.js +27 -1
  218. package/workspace/third-party/README.md +44 -0
  219. package/workspace/third-party/lucide-static-1.52.0.LICENSE +43 -0
  220. package/workspace/third-party/sortablejs-1.15.7.LICENSE +21 -0
  221. package/workspace/design-parity.js +0 -673
  222. package/workspace/public/pm/tab-task.js +0 -86
  223. package/workspace/public/pm/view-guide.js +0 -141
  224. package/workspace/public/pm/view-knowledge.js +0 -225
  225. package/workspace/public/pm/view-memory.js +0 -122
  226. package/workspace/public/pm/view-portfolio.js +0 -153
  227. package/workspace/public/pm/view-reports.js +0 -190
  228. package/workspace/public/pm/view-scheduled.js +0 -161
  229. package/workspace/public/pm/view-skills.js +0 -216
@@ -0,0 +1,112 @@
1
+ {
2
+ "ok": true,
3
+ "ws": "w-north",
4
+ "sig": {
5
+ "placements": "3f786850e387550fdab836ed7e6dc881de23001b",
6
+ "items": "89e6c98d92887913cadf06b2adb97f26cde4849b",
7
+ "measurements": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
8
+ "records": "2b66fd261ee5c6cfc8de7fa466bab600bcfe4f69"
9
+ },
10
+ "now": "2026-10-05T12:00:00.000Z",
11
+ "initiative": {
12
+ "id": "partner-sso",
13
+ "title": "Partner SSO",
14
+ "lane": "feature",
15
+ "anchor": "KR 2.1",
16
+ "anchor_kind": "kr",
17
+ "horizon": "now",
18
+ "rank": 0,
19
+ "confirmed": true,
20
+ "dormant": false,
21
+ "check_by": "2026-10-30",
22
+ "stage": {
23
+ "id": "build",
24
+ "label": "Build"
25
+ },
26
+ "display": {
27
+ "word": "Build",
28
+ "stage": "build",
29
+ "waitingOn": "pm",
30
+ "act": "approval",
31
+ "idleDays": 1,
32
+ "line2": "Waiting on you: approval"
33
+ },
34
+ "health": {
35
+ "level": "at-risk",
36
+ "reasons": [
37
+ {
38
+ "level": "at-risk",
39
+ "code": "item-overdue",
40
+ "text": "\"Partner login page\" was due 2 Oct",
41
+ "source": "planning/runs/plan-items.jsonl"
42
+ }
43
+ ]
44
+ },
45
+ "progress": {
46
+ "done": 7,
47
+ "total": 12,
48
+ "label": "7 of 12"
49
+ },
50
+ "next_due": "2026-11-14",
51
+ "last_activity": "2026-10-04T09:00:00Z"
52
+ },
53
+ "stepper": [
54
+ {
55
+ "id": "intake",
56
+ "label": "Intake",
57
+ "state": "done"
58
+ },
59
+ {
60
+ "id": "spec",
61
+ "label": "Spec",
62
+ "state": "done"
63
+ },
64
+ {
65
+ "id": "build",
66
+ "label": "Build",
67
+ "state": "current"
68
+ },
69
+ {
70
+ "id": "evaluate",
71
+ "label": "Evaluate",
72
+ "state": "todo"
73
+ },
74
+ {
75
+ "id": "accept",
76
+ "label": "Accept",
77
+ "state": "todo"
78
+ }
79
+ ],
80
+ "waiting": {
81
+ "on": "pm",
82
+ "act": "approval",
83
+ "action": {
84
+ "label": "Open gate",
85
+ "kind": "gate",
86
+ "target": "prd"
87
+ }
88
+ },
89
+ "files": [
90
+ {
91
+ "kind": "prd",
92
+ "label": "PRD",
93
+ "path": "planning/prd/partner-sso.md"
94
+ },
95
+ {
96
+ "kind": "rubric",
97
+ "label": "Rubric",
98
+ "path": "planning/evals/partner-sso.md"
99
+ }
100
+ ],
101
+ "history": [
102
+ {
103
+ "at": "2026-10-04T09:00:00Z",
104
+ "by": "pm:wawan",
105
+ "text": "Moved to Now"
106
+ }
107
+ ],
108
+ "cli": {
109
+ "now": "pmos initiative now partner-sso",
110
+ "export": "pmos initiative export partner-sso"
111
+ }
112
+ }
@@ -0,0 +1,177 @@
1
+ {
2
+ "ok": true,
3
+ "cadence": "biweekly",
4
+ "slot": "2026-10-16",
5
+ "window": {
6
+ "from": "2026-10-02T09:00:00Z",
7
+ "to": "2026-10-16T00:00:00Z",
8
+ "since": "last_issue"
9
+ },
10
+ "path": "planning/reports/biweekly/2026-10-16.md",
11
+ "issued": null,
12
+ "headline": "2 initiatives moved; 1 is at risk.",
13
+ "timeline": {
14
+ "from": "2026-10-02",
15
+ "to": "2026-10-30",
16
+ "today": "2026-10-16",
17
+ "rows": [
18
+ {
19
+ "id": "partner-sso",
20
+ "title": "Partner SSO",
21
+ "spans": [
22
+ {
23
+ "stage": "build",
24
+ "start": "2026-10-01",
25
+ "due": "2026-10-24",
26
+ "milestone": false
27
+ }
28
+ ],
29
+ "milestones": [
30
+ "2026-10-24"
31
+ ]
32
+ }
33
+ ]
34
+ },
35
+ "blocks": [
36
+ {
37
+ "id": "audit-log",
38
+ "title": "Audit log export",
39
+ "stage": "Evaluate",
40
+ "health": {
41
+ "level": "at-risk",
42
+ "reasons": [
43
+ {
44
+ "level": "at-risk",
45
+ "code": "check-by-passed",
46
+ "text": "check-by 1 Oct passed",
47
+ "source": "planning/runs/placements.jsonl"
48
+ }
49
+ ]
50
+ },
51
+ "progress": {
52
+ "done": 3,
53
+ "total": 5,
54
+ "delta": 1,
55
+ "label": "3 of 5 (+1)"
56
+ },
57
+ "measure": {
58
+ "anchor": "KR-2",
59
+ "value": 42,
60
+ "target": 60,
61
+ "unit": "%",
62
+ "as_of": "2026-10-14",
63
+ "source": "planning/metrics/kr-2.csv@3f2a9c1"
64
+ },
65
+ "last_cycle": {
66
+ "done": [
67
+ {
68
+ "id": "audit-log.a1b2c3d4e5",
69
+ "title": "CSV writer"
70
+ }
71
+ ],
72
+ "gates": [
73
+ {
74
+ "gate": "spec",
75
+ "at": "2026-10-03T10:00:00Z"
76
+ }
77
+ ],
78
+ "moves": [
79
+ {
80
+ "from": "next",
81
+ "to": "now",
82
+ "at": "2026-10-03T10:00:00Z"
83
+ }
84
+ ],
85
+ "carried": [
86
+ {
87
+ "id": "audit-log.f6g7h8i9j0",
88
+ "title": "Retention rule",
89
+ "due": "2026-10-10"
90
+ }
91
+ ]
92
+ },
93
+ "coming_cycle": {
94
+ "basis": "dates",
95
+ "items": [
96
+ {
97
+ "id": "audit-log.k1l2m3n4o5",
98
+ "title": "Export UI",
99
+ "start": "2026-10-17",
100
+ "due": "2026-10-28"
101
+ }
102
+ ]
103
+ },
104
+ "note": ""
105
+ },
106
+ {
107
+ "id": "partner-sso",
108
+ "title": "Partner SSO",
109
+ "stage": "Build",
110
+ "health": {
111
+ "level": "on",
112
+ "reasons": []
113
+ },
114
+ "progress": {
115
+ "done": 7,
116
+ "total": 12,
117
+ "delta": 4,
118
+ "label": "7 of 12 (+4)"
119
+ },
120
+ "measure": null,
121
+ "last_cycle": {
122
+ "done": [],
123
+ "gates": [],
124
+ "moves": [],
125
+ "carried": []
126
+ },
127
+ "coming_cycle": {
128
+ "basis": "order",
129
+ "items": [
130
+ {
131
+ "id": "partner-sso.p1q2r3s4t5",
132
+ "title": "Pilot partners on SSO",
133
+ "start": null,
134
+ "due": null
135
+ }
136
+ ]
137
+ },
138
+ "note": ""
139
+ }
140
+ ],
141
+ "new_since_last": [
142
+ {
143
+ "id": "billing-v2",
144
+ "title": "Billing v2",
145
+ "at": "2026-10-08T10:00:00Z"
146
+ }
147
+ ],
148
+ "decided": [
149
+ {
150
+ "text": "Audit log export moved to Now",
151
+ "at": "2026-10-03T10:00:00Z",
152
+ "source": "planning/runs/placements.jsonl"
153
+ }
154
+ ],
155
+ "needs_your_call": [
156
+ {
157
+ "text": "Approve the Partner SSO rollout scope",
158
+ "audience": "leadership"
159
+ }
160
+ ],
161
+ "sources": {
162
+ "reached": [
163
+ "planning/runs/plan-items.jsonl",
164
+ "planning/runs/placements.jsonl"
165
+ ],
166
+ "not_reached": [
167
+ {
168
+ "source": "tracker",
169
+ "why": "not refreshed since 2 Oct"
170
+ }
171
+ ],
172
+ "definition": {
173
+ "path": "planning/reports/definitions/biweekly.md",
174
+ "audience": "leadership"
175
+ }
176
+ }
177
+ }
@@ -0,0 +1,97 @@
1
+ ---
2
+ type: Reference
3
+ title: "Biweekly report 2026-10-16"
4
+ description: "The biweekly report for 2026-10-16. pmos report draft writes every number; prose goes only between the note markers."
5
+ timestamp: 2026-10-16T00:00:00Z
6
+ cadence: biweekly
7
+ slot: 2026-10-16
8
+ window: "2026-10-02T09:00:00Z to 2026-10-16T00:00:00Z (since the last issue)"
9
+ synthetic: true
10
+ ---
11
+
12
+ # Biweekly report 2026-10-16
13
+
14
+ ## Headline
15
+
16
+ 2 initiatives moved; 1 is at risk.
17
+
18
+ <!-- pmos:note report.headline -->
19
+ Audit log export is the one to watch this cycle.
20
+ <!-- /pmos:note -->
21
+
22
+ ## Timeline
23
+
24
+ Frozen at 2026-10-16T00:00:00Z. 2 Oct to 30 Oct; today is 16 Oct.
25
+
26
+ | Initiative | Stage | Start | Due | Milestones |
27
+ |---|---|---|---|---|
28
+ | Partner SSO | build | 2026-10-01 | 2026-10-24 | 24 Oct |
29
+
30
+ ## Initiatives
31
+
32
+ ### Audit log export (audit-log)
33
+
34
+ Stage: Evaluate · At risk: check-by 1 Oct passed · 3 of 5 (+1)
35
+
36
+ Measured: KR-2 42% of 60%, as of 2026-10-14 (planning/metrics/kr-2.csv@3f2a9c1)
37
+
38
+ **Last cycle**
39
+
40
+ - Done: CSV writer (audit-log.a1b2c3d4e5)
41
+ - Gates passed: spec, 3 Oct
42
+ - Horizon moves: Next to Now, 3 Oct
43
+ - Overdue, carried over: Retention rule, due 10 Oct
44
+
45
+ **Coming cycle** (items that start or fall due)
46
+
47
+ - Export UI, starts 17 Oct, due 28 Oct
48
+
49
+ <!-- pmos:note audit-log -->
50
+ Legal review is the open dependency.
51
+ <!-- /pmos:note -->
52
+
53
+ ### Partner SSO (partner-sso)
54
+
55
+ Stage: Build · On track · 7 of 12 (+4)
56
+
57
+ **Last cycle**
58
+
59
+ - Done: none
60
+ - Gates passed: none
61
+ - Horizon moves: none
62
+ - Overdue, carried over: none
63
+
64
+ **Coming cycle** (the next 3 by order)
65
+
66
+ - Pilot partners on SSO
67
+
68
+ <!-- pmos:note partner-sso -->
69
+
70
+ <!-- /pmos:note -->
71
+
72
+ ## New since last report
73
+
74
+ - Billing v2 (billing-v2), 8 Oct
75
+
76
+ ## Decided this cycle
77
+
78
+ - Audit log export moved to Now, 3 Oct (planning/runs/placements.jsonl)
79
+
80
+ ## Needs your call
81
+
82
+ For leadership only.
83
+
84
+ <!-- pmos:note report.asks -->
85
+
86
+ <!-- /pmos:note -->
87
+
88
+ ## Sources reached and not reached
89
+
90
+ **Reached**
91
+
92
+ - planning/runs/plan-items.jsonl
93
+ - planning/runs/placements.jsonl
94
+
95
+ **Not reached**
96
+
97
+ - tracker: not refreshed since 2 Oct
@@ -0,0 +1,204 @@
1
+ {
2
+ "needs": [
3
+ {
4
+ "run_id": "report-needs:issue:biweekly:2026-10-16",
5
+ "initiative_id": null,
6
+ "kind": "report-issue",
7
+ "derived": true,
8
+ "question": "The biweekly of 16 Oct is ready to issue",
9
+ "doc": null,
10
+ "ws": "w-north",
11
+ "provider": "report-needs",
12
+ "today": {
13
+ "kind": 1,
14
+ "source": "report-needs",
15
+ "cause": "A draft is ready to issue",
16
+ "evidence": "planning/reports/biweekly/2026-10-16.md",
17
+ "act": {
18
+ "label": "Issue",
19
+ "cli": "pmos report issue biweekly 2026-10-16"
20
+ }
21
+ }
22
+ },
23
+ {
24
+ "run_id": "work-check-needs:review:partner-sso.k3j9x0p2qa",
25
+ "initiative_id": "partner-sso",
26
+ "kind": "item-review",
27
+ "derived": true,
28
+ "question": "\"draft partner email\" is in Review",
29
+ "doc": null,
30
+ "ws": "w-north",
31
+ "provider": "work-check-needs",
32
+ "today": {
33
+ "kind": 4,
34
+ "source": "work-check-needs",
35
+ "cause": "An item waits in Review",
36
+ "evidence": "planning/runs/plan-items.jsonl",
37
+ "act": {
38
+ "label": "Open",
39
+ "cli": null
40
+ }
41
+ }
42
+ },
43
+ {
44
+ "run_id": "work-check-needs:release:partner-sso:b-01",
45
+ "initiative_id": "partner-sso",
46
+ "kind": "release",
47
+ "derived": true,
48
+ "question": "3 work items are ready to release",
49
+ "doc": null,
50
+ "ws": "w-north",
51
+ "provider": "work-check-needs",
52
+ "today": {
53
+ "kind": 4,
54
+ "source": "work-check-needs",
55
+ "cause": "A factory batch is ready",
56
+ "evidence": "planning/runs/work-items.jsonl",
57
+ "act": {
58
+ "label": "Release",
59
+ "cli": null
60
+ }
61
+ }
62
+ },
63
+ {
64
+ "run_id": "work-check-needs:no-evidence:partner-sso.q8d2m5h1zc",
65
+ "initiative_id": "partner-sso",
66
+ "kind": "item-no-evidence",
67
+ "derived": true,
68
+ "question": "\"update the partner FAQ\" reads Done with no evidence",
69
+ "doc": null,
70
+ "ws": "w-north",
71
+ "provider": "work-check-needs",
72
+ "today": {
73
+ "kind": 4,
74
+ "source": "work-check-needs",
75
+ "cause": "An agent item reads Done with no evidence",
76
+ "evidence": "planning/runs/plan-items.jsonl",
77
+ "act": {
78
+ "label": "Open",
79
+ "cli": null
80
+ }
81
+ }
82
+ },
83
+ {
84
+ "run_id": "initiative-needs:triage:capture-2026-10-04-1",
85
+ "initiative_id": null,
86
+ "kind": "triage",
87
+ "derived": true,
88
+ "question": "Proposed: Partner SSO \u00b7 new feature \u00b7 KR 2.1",
89
+ "doc": null,
90
+ "ws": "w-north",
91
+ "provider": "initiative-needs",
92
+ "today": {
93
+ "kind": 6,
94
+ "source": "initiative-needs",
95
+ "cause": "A capture was triaged",
96
+ "evidence": "planning/requirements/capture-2026-10-04-1.md",
97
+ "act": {
98
+ "label": "Add",
99
+ "cli": "pmos initiative new --from capture-2026-10-04-1"
100
+ }
101
+ }
102
+ },
103
+ {
104
+ "run_id": "initiative-needs:cycle:2026-10-05",
105
+ "initiative_id": null,
106
+ "kind": "cycle-review",
107
+ "derived": true,
108
+ "question": "Confirm what is in Now",
109
+ "doc": null,
110
+ "ws": "w-north",
111
+ "provider": "initiative-needs",
112
+ "today": {
113
+ "kind": 7,
114
+ "source": "initiative-needs",
115
+ "cause": "Day one: 2 initiatives read Now, unconfirmed",
116
+ "evidence": "planning/runs/placements.jsonl",
117
+ "act": {
118
+ "label": "Review",
119
+ "cli": null
120
+ }
121
+ }
122
+ },
123
+ {
124
+ "run_id": "report-needs:cycle:kill-check:2026-10",
125
+ "initiative_id": null,
126
+ "kind": "cycle-kill-check",
127
+ "derived": true,
128
+ "question": "The monthly kill-condition check is due",
129
+ "doc": null,
130
+ "ws": "w-north",
131
+ "provider": "report-needs",
132
+ "today": {
133
+ "kind": 7,
134
+ "source": "report-needs",
135
+ "cause": "The month ended",
136
+ "evidence": "planning/okrs/kill-conditions.md",
137
+ "act": {
138
+ "label": "Review",
139
+ "cli": null
140
+ }
141
+ }
142
+ },
143
+ {
144
+ "run_id": "pm-lines-needs:z9y8x7w6v5u4",
145
+ "initiative_id": "partner-sso",
146
+ "kind": "pm-line",
147
+ "derived": true,
148
+ "question": "A PM-only line is not attested",
149
+ "doc": null,
150
+ "ws": "w-north",
151
+ "provider": "pm-lines-needs",
152
+ "today": {
153
+ "kind": 8,
154
+ "source": "pm-lines-needs",
155
+ "cause": "A placed line into Now has no via",
156
+ "evidence": "planning/runs/placements.jsonl line 12",
157
+ "act": {
158
+ "label": "Show line",
159
+ "cli": null
160
+ }
161
+ }
162
+ },
163
+ {
164
+ "run_id": "initiative-needs:no-anchor:old-import",
165
+ "initiative_id": "old-import",
166
+ "kind": "no-anchor",
167
+ "derived": true,
168
+ "question": "Legacy importer has no anchor",
169
+ "doc": null,
170
+ "ws": "w-north",
171
+ "provider": "initiative-needs",
172
+ "today": {
173
+ "kind": 8,
174
+ "source": "initiative-needs",
175
+ "cause": "An initiative record names no KR or health budget",
176
+ "evidence": "planning/initiatives/old-import.md",
177
+ "act": {
178
+ "label": "Add anchor",
179
+ "cli": null
180
+ }
181
+ }
182
+ },
183
+ {
184
+ "run_id": "report-needs:no-output:weekly:2026-10-02",
185
+ "initiative_id": null,
186
+ "kind": "schedule-no-output",
187
+ "derived": true,
188
+ "question": "The weekly schedule left no output",
189
+ "doc": null,
190
+ "ws": "w-north",
191
+ "provider": "report-needs",
192
+ "today": {
193
+ "kind": 8,
194
+ "source": "report-needs",
195
+ "cause": "No draft for the slot of 2 Oct",
196
+ "evidence": "planning/reports/weekly",
197
+ "act": {
198
+ "label": "Draft now",
199
+ "cli": "pmos report draft weekly"
200
+ }
201
+ }
202
+ }
203
+ ]
204
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "_comment": "Row kinds that only pm-seams-test.js uses. No needs provider, no registerTodayCard owner and no slice may use them (d86-seams checks it).",
3
+ "plain": "seam-probe-plain",
4
+ "drawn": "seam-probe-drawn"
5
+ }
@@ -0,0 +1,81 @@
1
+ ---
2
+ type: Guide
3
+ title: "Board: the items of every initiative"
4
+ description: "How to read and use the Board destination, filter it, add an item, move a card, release a batch of work items, and print the same Board with pmos board."
5
+ timestamp: 2026-10-05
6
+ ---
7
+
8
+ # Board: the items of every initiative
9
+
10
+ The Board shows the items of all your work initiatives in one place. It has four columns: Todo, Doing, Review and Done. A card is one item. The Board is a view of the same items that the Breakdown of each initiative shows, so a card is always in the column that its row has in the Tree.
11
+
12
+ A document initiative has no items, so it has no card and no place in the filter.
13
+
14
+ ## Open the Board
15
+
16
+ Press **Board** in the navigation, or press `g` then `b`. In the older layout, choose Board in the command palette. The Board opens in a tab.
17
+
18
+ ## Filters
19
+
20
+ Three filters decide which cards show. Press a button at the top, or choose an initiative from the list.
21
+
22
+ - **Active** is the default. It shows an item that changed in the last days, an open item of an initiative that is in Now, and every item that is yours. The number of days is `stall_days` in `planning/plan-rules.json`.
23
+ - **Mine** shows only the items that you own.
24
+ - **An initiative.** Choose one from the list to see all its items. Choose **All initiatives** to go back to Active.
25
+
26
+ Done shows the last 14 days under every filter, however long ago the item last changed. An older Done item is counted in the column ("3 older in the Tree") and stays in the Tree of its initiative.
27
+
28
+ ## Add an item
29
+
30
+ Press **Add item**, the one main button of the Board. Type a title, choose the initiative and the stage, and press **Add** or Enter. The item goes into the ledger of that initiative, the same way as in the Breakdown.
31
+
32
+ ## Move a card
33
+
34
+ - **On a wide screen,** drag a card to another column. A drop on Done is held for 8 seconds, so you can press **Undo**.
35
+ - **On a phone,** press the card to open its sheet and press a state button. A card moves in 2 taps. From another column it takes 3: first press the column name, then the card, then the state.
36
+ - **From the menu.** Press the three dots on a card, then choose Move to a state.
37
+
38
+ When you move a card that an agent owns, the card reads "moved by you". The agent's own next move can change it again.
39
+
40
+ A card that reads "Done · your call · not merged" is Done because you said so. The work in the repository is not merged yet.
41
+
42
+ ## Release
43
+
44
+ When all the work items of a batch passed their checks, the Board shows a **Release** card above the columns. One press on **Release** grants the whole batch. It is one grant for the batch, and the grant names the initiative and the batch. The factory opens pull requests and never merges them.
45
+
46
+ Only you can press Release. An agent cannot. When the grant writer of the workspace is not available, the button is disabled and the card says "Release arrives in Run 2."
47
+
48
+ The same card also shows in Today when a batch is ready.
49
+
50
+ ## Today
51
+
52
+ Today shows three things from the Board:
53
+
54
+ - an item in Review that waits for you;
55
+ - a batch that is ready for Release;
56
+ - an item that an agent marked Done with no evidence. Open it and add evidence, such as `commit:<sha>` or `pr:<number>`.
57
+
58
+ ## Signals
59
+
60
+ | signal | meaning |
61
+ |---|---|
62
+ | Blocked | the item has a reason that it cannot go on |
63
+ | no evidence | an agent marked the item Done and gave no evidence |
64
+ | late | the due date passed and the item is not Done |
65
+ | moved by you | you moved a card that an agent owns |
66
+ | Proposed | an agent proposed the item and you did not keep it |
67
+
68
+ ## From a terminal
69
+
70
+ `pmos board` prints the same Board that the page shows. It reads the repository, so the workspace server does not need to run.
71
+
72
+ ```
73
+ pmos board the Active filter
74
+ pmos board --mine your own items
75
+ pmos board --init <initiative> one initiative
76
+ pmos board --json the same answer as GET /api/board, for scripts
77
+ ```
78
+
79
+ The text form prints one column per block, then one line for each card: the initiative, the stage, the title and the owner, and what needs your notice. The command only reads. It writes no line to any ledger.
80
+
81
+ `pmos board` exits with 0 when it printed the Board, 1 when the initiative is not on the Board, and 2 when the command line is wrong.