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.
Files changed (212) 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/bin/pmos.js +15 -1
  16. package/workspace/cut-stub.js +40 -0
  17. package/workspace/first-paint-audit.js +145 -0
  18. package/workspace/fixtures/capture/requirements/capture-2026-10-04-1.md +10 -0
  19. package/workspace/fixtures/initiatives-api/list.json +176 -0
  20. package/workspace/fixtures/initiatives-api/post-403.json +5 -0
  21. package/workspace/fixtures/initiatives-api/post-ok.json +10 -0
  22. package/workspace/fixtures/initiatives-api/roadmap.json +208 -0
  23. package/workspace/fixtures/initiatives-api/sheet.json +112 -0
  24. package/workspace/fixtures/report-api/draft.json +177 -0
  25. package/workspace/fixtures/reports-page/draft-biweekly-2026-10-16.md +97 -0
  26. package/workspace/fixtures/today-api/provider-rows.json +204 -0
  27. package/workspace/fixtures/today-api/seam-probe-kinds.json +5 -0
  28. package/workspace/guide/board.md +81 -0
  29. package/workspace/guide/breakdown.md +154 -0
  30. package/workspace/guide/command-palette.md +75 -0
  31. package/workspace/guide/index.md +27 -17
  32. package/workspace/guide/initiatives-roadmap.md +130 -0
  33. package/workspace/guide/initiatives-screen.md +89 -0
  34. package/workspace/guide/initiatives-timeline.md +57 -0
  35. package/workspace/guide/integrated-work.md +94 -0
  36. package/workspace/guide/knowledge-graph.md +3 -68
  37. package/workspace/guide/layout.md +98 -32
  38. package/workspace/guide/live-notes.md +3 -3
  39. package/workspace/guide/pm-only-acts.md +89 -0
  40. package/workspace/guide/pm-only-lines.md +61 -0
  41. package/workspace/guide/reports-page.md +80 -0
  42. package/workspace/guide/reports.md +73 -0
  43. package/workspace/guide/timeline.md +70 -0
  44. package/workspace/guide/today.md +85 -0
  45. package/workspace/guide/validate-with-typesafe.md +1 -1
  46. package/workspace/lib/actor.js +91 -0
  47. package/workspace/lib/board-cache.js +32 -2
  48. package/workspace/lib/board-cli.js +108 -0
  49. package/workspace/lib/board-fold.js +232 -0
  50. package/workspace/lib/breakdown-export.js +80 -0
  51. package/workspace/lib/capture.js +98 -0
  52. package/workspace/lib/engine/plan-items-stage.js +271 -0
  53. package/workspace/lib/engine/workflow-state.js +28 -2
  54. package/workspace/lib/factory-join.js +158 -0
  55. package/workspace/lib/grant-mint.js +113 -0
  56. package/workspace/lib/health-rules-factory.js +92 -0
  57. package/workspace/lib/health-rules-plan.js +164 -0
  58. package/workspace/lib/health.js +79 -0
  59. package/workspace/lib/initiative-cli.js +222 -0
  60. package/workspace/lib/initiative-display.js +183 -0
  61. package/workspace/lib/initiative-needs.js +127 -0
  62. package/workspace/lib/initiative-rows.js +206 -0
  63. package/workspace/lib/initiative-writer.js +141 -0
  64. package/workspace/lib/issues.js +206 -0
  65. package/workspace/lib/item-cli.js +195 -0
  66. package/workspace/lib/item-spans.js +137 -0
  67. package/workspace/lib/measure-cli.js +100 -0
  68. package/workspace/lib/measurements.js +189 -0
  69. package/workspace/lib/mobile-nav.js +57 -53
  70. package/workspace/lib/needs-providers.js +120 -0
  71. package/workspace/lib/placements.js +440 -0
  72. package/workspace/lib/plan-items.js +922 -0
  73. package/workspace/lib/plan-ledgers.js +85 -0
  74. package/workspace/lib/plan-rules.js +72 -0
  75. package/workspace/lib/plan-tree.js +367 -0
  76. package/workspace/lib/pm-guard.js +174 -0
  77. package/workspace/lib/pm-lines-needs.js +331 -0
  78. package/workspace/lib/pmos-verbs.js +66 -0
  79. package/workspace/lib/proactive.js +7 -4
  80. package/workspace/lib/report-cli.js +152 -0
  81. package/workspace/lib/report-draft.js +579 -0
  82. package/workspace/lib/report-needs.js +213 -0
  83. package/workspace/lib/route-modules.js +128 -0
  84. package/workspace/lib/routes-board.js +91 -0
  85. package/workspace/lib/routes-capture.js +52 -0
  86. package/workspace/lib/routes-initiatives.js +371 -0
  87. package/workspace/lib/routes-reports.js +163 -0
  88. package/workspace/lib/routes-timeline.js +197 -0
  89. package/workspace/lib/routes-today.js +32 -0
  90. package/workspace/lib/today-cli.js +99 -0
  91. package/workspace/lib/today.js +333 -0
  92. package/workspace/lib/triage.js +163 -0
  93. package/workspace/lib/verify-work-cli.js +81 -0
  94. package/workspace/lib/work-check-needs.js +99 -0
  95. package/workspace/package-lock.json +1 -1
  96. package/workspace/package.json +4 -5
  97. package/workspace/public/index.html +29 -19
  98. package/workspace/public/pm/app.js +299 -30
  99. package/workspace/public/pm/bd-board.js +113 -0
  100. package/workspace/public/pm/bd-drag.js +59 -0
  101. package/workspace/public/pm/bd-model.js +152 -0
  102. package/workspace/public/pm/bd-timeline.js +233 -0
  103. package/workspace/public/pm/bd-tree.js +244 -0
  104. package/workspace/public/pm/board-copy.js +57 -0
  105. package/workspace/public/pm/breakdown-api.js +58 -0
  106. package/workspace/public/pm/breakdown-copy.js +138 -0
  107. package/workspace/public/pm/components.css +3054 -0
  108. package/workspace/public/pm/cycle-review.js +125 -0
  109. package/workspace/public/pm/data.js +40 -187
  110. package/workspace/public/pm/dest-board.js +438 -0
  111. package/workspace/public/pm/dest-initiatives.js +134 -0
  112. package/workspace/public/pm/dest-reports.js +270 -0
  113. package/workspace/public/pm/dest-settings.js +217 -0
  114. package/workspace/public/pm/dest-today.js +176 -0
  115. package/workspace/public/pm/dialogs.js +88 -0
  116. package/workspace/public/pm/display-word.js +56 -0
  117. package/workspace/public/pm/dock.js +105 -0
  118. package/workspace/public/pm/fixture.js +8 -227
  119. package/workspace/public/pm/frame-copy.js +94 -0
  120. package/workspace/public/pm/handoff-box.js +82 -0
  121. package/workspace/public/pm/http.js +88 -0
  122. package/workspace/public/pm/icons.js +53 -0
  123. package/workspace/public/pm/initiative-list.js +218 -0
  124. package/workspace/public/pm/initiative-sheet.js +261 -0
  125. package/workspace/public/pm/initiatives-api.js +59 -0
  126. package/workspace/public/pm/initiatives-copy.js +215 -0
  127. package/workspace/public/pm/initiatives-timeline-copy.js +59 -0
  128. package/workspace/public/pm/initiatives-timeline.js +410 -0
  129. package/workspace/public/pm/initiatives-ui.js +123 -0
  130. package/workspace/public/pm/item-sheet.js +251 -0
  131. package/workspace/public/pm/keep-card.js +204 -0
  132. package/workspace/public/pm/lifecycle.js +7 -1
  133. package/workspace/public/pm/mobile.css +49 -20
  134. package/workspace/public/pm/mobile.js +157 -29
  135. package/workspace/public/pm/modes-live.js +7 -883
  136. package/workspace/public/pm/modes.js +32 -1024
  137. package/workspace/public/pm/new-initiative-sheet.js +74 -0
  138. package/workspace/public/pm/next-step-ui.js +3 -2
  139. package/workspace/public/pm/palette-copy.js +51 -0
  140. package/workspace/public/pm/palette.js +312 -0
  141. package/workspace/public/pm/panel-breakdown.js +702 -0
  142. package/workspace/public/pm/panel-cockpit.js +63 -295
  143. package/workspace/public/pm/panel-detail.js +25 -172
  144. package/workspace/public/pm/panel-initiatives.js +1 -19
  145. package/workspace/public/pm/panel-repos.js +31 -81
  146. package/workspace/public/pm/panel-tabs.js +197 -110
  147. package/workspace/public/pm/panel-trees.js +5 -2
  148. package/workspace/public/pm/portfolio-report.js +61 -0
  149. package/workspace/public/pm/primitives.js +656 -0
  150. package/workspace/public/pm/print.css +33 -0
  151. package/workspace/public/pm/provider-cards.js +136 -0
  152. package/workspace/public/pm/registry.js +194 -0
  153. package/workspace/public/pm/release-card.js +110 -0
  154. package/workspace/public/pm/report-view.js +309 -0
  155. package/workspace/public/pm/reports-copy.js +114 -0
  156. package/workspace/public/pm/roadmap.js +271 -0
  157. package/workspace/public/pm/sig-watch.js +41 -0
  158. package/workspace/public/pm/state.js +8 -4
  159. package/workspace/public/pm/status-banner.js +13 -5
  160. package/workspace/public/pm/tab-doc.js +2 -4
  161. package/workspace/public/pm/tab-term.js +12 -2
  162. package/workspace/public/pm/tab-web.js +3 -2
  163. package/workspace/public/pm/timeline-copy.js +48 -0
  164. package/workspace/public/pm/today-cards.js +244 -0
  165. package/workspace/public/pm/today-copy.js +97 -0
  166. package/workspace/public/pm/tokens.css +16 -18
  167. package/workspace/public/pm/topbar.js +102 -0
  168. package/workspace/public/pm/triage-card.js +60 -0
  169. package/workspace/public/pm/undo-hold.js +103 -0
  170. package/workspace/public/pm/view-addrepo.js +2 -1
  171. package/workspace/public/pm/view-livenotes.js +3 -1
  172. package/workspace/public/pm/view-today.js +7 -162
  173. package/workspace/public/vendor/Sortable.min.js +2 -0
  174. package/workspace/public/vendor/lucide-sprite.js +79 -0
  175. package/workspace/replaced-tests.json +2864 -0
  176. package/workspace/run-tests.js +56 -5
  177. package/workspace/server.js +312 -36
  178. package/workspace/sheet-answer.js +61 -0
  179. package/workspace/skills/measure.skill +41 -0
  180. package/workspace/skills/report-biweekly.skill +23 -25
  181. package/workspace/skills/tracker-refresh.skill +50 -0
  182. package/workspace/test-files.json +19 -3
  183. package/workspace/test-lists/base.json +6 -0
  184. package/workspace/test-lists/run2-a.json +6 -0
  185. package/workspace/test-lists/run2-b.json +13 -0
  186. package/workspace/test-lists/run2-c.json +19 -0
  187. package/workspace/test-lists/run2-d.json +22 -0
  188. package/workspace/test-lists/run3-0.json +5 -0
  189. package/workspace/test-lists/run3-a.json +5 -0
  190. package/workspace/test-lists/run3-b.json +6 -0
  191. package/workspace/test-lists/run3-c.json +15 -0
  192. package/workspace/test-lists/run3-d.json +6 -0
  193. package/workspace/test-lists/run4-a.json +8 -0
  194. package/workspace/test-lists/run4-b.json +6 -0
  195. package/workspace/test-lists/run4-c.json +13 -0
  196. package/workspace/test-lists/run4-d.json +9 -0
  197. package/workspace/test-lists/run5-a.json +6 -0
  198. package/workspace/test-lists/run5-b.json +6 -0
  199. package/workspace/test-lists/run5-c.json +15 -0
  200. package/workspace/test-run.js +27 -1
  201. package/workspace/third-party/README.md +44 -0
  202. package/workspace/third-party/lucide-static-1.52.0.LICENSE +43 -0
  203. package/workspace/third-party/sortablejs-1.15.7.LICENSE +21 -0
  204. package/workspace/design-parity.js +0 -673
  205. package/workspace/public/pm/tab-task.js +0 -86
  206. package/workspace/public/pm/view-guide.js +0 -141
  207. package/workspace/public/pm/view-knowledge.js +0 -225
  208. package/workspace/public/pm/view-memory.js +0 -122
  209. package/workspace/public/pm/view-portfolio.js +0 -153
  210. package/workspace/public/pm/view-reports.js +0 -190
  211. package/workspace/public/pm/view-scheduled.js +0 -161
  212. package/workspace/public/pm/view-skills.js +0 -216
@@ -0,0 +1,176 @@
1
+ {
2
+ "ok": true,
3
+ "ws": "w-north",
4
+ "view": "list",
5
+ "sig": {
6
+ "placements": "3f786850e387550fdab836ed7e6dc881de23001b",
7
+ "items": "89e6c98d92887913cadf06b2adb97f26cde4849b",
8
+ "measurements": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
9
+ "records": "2b66fd261ee5c6cfc8de7fa466bab600bcfe4f69"
10
+ },
11
+ "now": "2026-10-05T12:00:00.000Z",
12
+ "rules": {
13
+ "stall_days": 5,
14
+ "dormant_days": 45,
15
+ "report_cycle_days": 14,
16
+ "now_cap": null,
17
+ "via_required_from": null
18
+ },
19
+ "groups": [
20
+ {
21
+ "objective": {
22
+ "id": "O2",
23
+ "title": "Partners self-serve",
24
+ "period": "Q4 2026"
25
+ },
26
+ "anchors": [
27
+ {
28
+ "anchor": "KR 2.1",
29
+ "kind": "kr",
30
+ "title": "Partner sign-in without a ticket",
31
+ "measurement": {
32
+ "value": 41,
33
+ "target": 55,
34
+ "unit": "%",
35
+ "as_of": "2026-10-02",
36
+ "source": "planning/okrs/fy26-q4.md@1a2b3c4"
37
+ },
38
+ "rows": [
39
+ {
40
+ "id": "partner-sso",
41
+ "title": "Partner SSO",
42
+ "lane": "feature",
43
+ "anchor": "KR 2.1",
44
+ "anchor_kind": "kr",
45
+ "horizon": "now",
46
+ "rank": 0,
47
+ "confirmed": true,
48
+ "dormant": false,
49
+ "check_by": "2026-10-30",
50
+ "stage": {
51
+ "id": "build",
52
+ "label": "Build"
53
+ },
54
+ "display": {
55
+ "word": "Build",
56
+ "stage": "build",
57
+ "waitingOn": "pm",
58
+ "act": "approval",
59
+ "idleDays": 1,
60
+ "line2": "Waiting on you: approval"
61
+ },
62
+ "health": {
63
+ "level": "on",
64
+ "reasons": []
65
+ },
66
+ "progress": {
67
+ "done": 7,
68
+ "total": 12,
69
+ "label": "7 of 12"
70
+ },
71
+ "next_due": "2026-11-14",
72
+ "last_activity": "2026-10-04T09:00:00Z"
73
+ }
74
+ ]
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "objective": null,
80
+ "anchors": [
81
+ {
82
+ "anchor": "health:tech",
83
+ "kind": "health",
84
+ "title": "Tech health",
85
+ "measurement": null,
86
+ "rows": [
87
+ {
88
+ "id": "audit-log",
89
+ "title": "Audit log export",
90
+ "lane": "chore",
91
+ "anchor": "health:tech",
92
+ "anchor_kind": "health",
93
+ "horizon": "now",
94
+ "rank": 1,
95
+ "confirmed": false,
96
+ "dormant": false,
97
+ "check_by": "2026-10-01",
98
+ "stage": {
99
+ "id": "evaluate",
100
+ "label": "Evaluate"
101
+ },
102
+ "display": {
103
+ "word": "Evaluate",
104
+ "stage": "evaluate",
105
+ "waitingOn": "agent",
106
+ "act": "rubric",
107
+ "idleDays": 1,
108
+ "line2": "Waiting on agent: rubric"
109
+ },
110
+ "health": {
111
+ "level": "at-risk",
112
+ "reasons": [
113
+ {
114
+ "level": "at-risk",
115
+ "code": "check-by-passed",
116
+ "text": "check-by 1 Oct passed",
117
+ "source": "planning/runs/placements.jsonl"
118
+ }
119
+ ]
120
+ },
121
+ "progress": {
122
+ "done": 3,
123
+ "total": 5,
124
+ "label": "3 of 5"
125
+ },
126
+ "next_due": "2026-10-20",
127
+ "last_activity": "2026-09-29T15:00:00Z"
128
+ },
129
+ {
130
+ "id": "old-import",
131
+ "title": "Legacy importer",
132
+ "lane": "chore",
133
+ "anchor": "health:tech",
134
+ "anchor_kind": "health",
135
+ "horizon": "later",
136
+ "rank": 0,
137
+ "confirmed": true,
138
+ "dormant": true,
139
+ "check_by": null,
140
+ "stage": {
141
+ "id": "intake",
142
+ "label": "Intake"
143
+ },
144
+ "display": {
145
+ "word": "Intake",
146
+ "stage": "intake",
147
+ "waitingOn": null,
148
+ "act": null,
149
+ "idleDays": 1,
150
+ "line2": ""
151
+ },
152
+ "health": {
153
+ "level": "on",
154
+ "reasons": []
155
+ },
156
+ "progress": {
157
+ "done": 0,
158
+ "total": 0,
159
+ "label": "no breakdown"
160
+ },
161
+ "next_due": null,
162
+ "last_activity": "2026-07-01T10:00:00Z"
163
+ }
164
+ ]
165
+ }
166
+ ]
167
+ }
168
+ ],
169
+ "flags": [
170
+ {
171
+ "kind": "unreadable",
172
+ "init": null,
173
+ "why": "line 9: not JSON"
174
+ }
175
+ ]
176
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "ok": false,
3
+ "status": 403,
4
+ "error": "only the PM can move an item to Now, from the page; this request has no Origin header"
5
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ok": true,
3
+ "written": 1,
4
+ "sig": {
5
+ "placements": "3f786850e387550fdab836ed7e6dc881de23001b",
6
+ "items": "89e6c98d92887913cadf06b2adb97f26cde4849b",
7
+ "measurements": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
8
+ "records": "2b66fd261ee5c6cfc8de7fa466bab600bcfe4f69"
9
+ }
10
+ }
@@ -0,0 +1,208 @@
1
+ {
2
+ "ok": true,
3
+ "ws": "w-north",
4
+ "view": "roadmap",
5
+ "sig": {
6
+ "placements": "3f786850e387550fdab836ed7e6dc881de23001b",
7
+ "items": "89e6c98d92887913cadf06b2adb97f26cde4849b",
8
+ "measurements": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
9
+ "records": "2b66fd261ee5c6cfc8de7fa466bab600bcfe4f69"
10
+ },
11
+ "now": "2026-10-05T12:00:00.000Z",
12
+ "rules": {
13
+ "stall_days": 5,
14
+ "dormant_days": 45,
15
+ "report_cycle_days": 14,
16
+ "now_cap": null,
17
+ "via_required_from": null
18
+ },
19
+ "header": {
20
+ "now": {
21
+ "count": 2,
22
+ "kr": 1,
23
+ "health": 1,
24
+ "cap": null
25
+ },
26
+ "next": {
27
+ "count": 1
28
+ },
29
+ "later": {
30
+ "count": 0,
31
+ "dormant": 1
32
+ }
33
+ },
34
+ "horizons": {
35
+ "now": [
36
+ {
37
+ "id": "partner-sso",
38
+ "title": "Partner SSO",
39
+ "lane": "feature",
40
+ "anchor": "KR 2.1",
41
+ "anchor_kind": "kr",
42
+ "horizon": "now",
43
+ "rank": 0,
44
+ "confirmed": true,
45
+ "dormant": false,
46
+ "check_by": "2026-10-30",
47
+ "stage": {
48
+ "id": "build",
49
+ "label": "Build"
50
+ },
51
+ "display": {
52
+ "word": "Build",
53
+ "stage": "build",
54
+ "waitingOn": "pm",
55
+ "act": "approval",
56
+ "idleDays": 1,
57
+ "line2": "Waiting on you: approval"
58
+ },
59
+ "health": {
60
+ "level": "on",
61
+ "reasons": []
62
+ },
63
+ "progress": {
64
+ "done": 7,
65
+ "total": 12,
66
+ "label": "7 of 12"
67
+ },
68
+ "next_due": "2026-11-14",
69
+ "last_activity": "2026-10-04T09:00:00Z"
70
+ },
71
+ {
72
+ "id": "audit-log",
73
+ "title": "Audit log export",
74
+ "lane": "chore",
75
+ "anchor": "health:tech",
76
+ "anchor_kind": "health",
77
+ "horizon": "now",
78
+ "rank": 1,
79
+ "confirmed": false,
80
+ "dormant": false,
81
+ "check_by": "2026-10-01",
82
+ "stage": {
83
+ "id": "evaluate",
84
+ "label": "Evaluate"
85
+ },
86
+ "display": {
87
+ "word": "Evaluate",
88
+ "stage": "evaluate",
89
+ "waitingOn": "agent",
90
+ "act": "rubric",
91
+ "idleDays": 1,
92
+ "line2": "Waiting on agent: rubric"
93
+ },
94
+ "health": {
95
+ "level": "at-risk",
96
+ "reasons": [
97
+ {
98
+ "level": "at-risk",
99
+ "code": "check-by-passed",
100
+ "text": "check-by 1 Oct passed",
101
+ "source": "planning/runs/placements.jsonl"
102
+ }
103
+ ]
104
+ },
105
+ "progress": {
106
+ "done": 3,
107
+ "total": 5,
108
+ "label": "3 of 5"
109
+ },
110
+ "next_due": "2026-10-20",
111
+ "last_activity": "2026-09-29T15:00:00Z"
112
+ }
113
+ ],
114
+ "next": [
115
+ {
116
+ "id": "billing-v2",
117
+ "title": "Billing v2",
118
+ "lane": "feature",
119
+ "anchor": "KR 1.3",
120
+ "anchor_kind": "kr",
121
+ "horizon": "next",
122
+ "rank": 0,
123
+ "confirmed": true,
124
+ "dormant": false,
125
+ "check_by": null,
126
+ "stage": {
127
+ "id": "spec",
128
+ "label": "Spec"
129
+ },
130
+ "display": {
131
+ "word": "Spec",
132
+ "stage": "spec",
133
+ "waitingOn": null,
134
+ "act": null,
135
+ "idleDays": 1,
136
+ "line2": ""
137
+ },
138
+ "health": {
139
+ "level": "on",
140
+ "reasons": []
141
+ },
142
+ "progress": {
143
+ "done": 0,
144
+ "total": 0,
145
+ "label": "no breakdown"
146
+ },
147
+ "next_due": null,
148
+ "last_activity": "2026-09-20T10:00:00Z"
149
+ }
150
+ ],
151
+ "later": []
152
+ },
153
+ "dormant": [
154
+ {
155
+ "id": "old-import",
156
+ "title": "Legacy importer",
157
+ "lane": "chore",
158
+ "anchor": "health:tech",
159
+ "anchor_kind": "health",
160
+ "horizon": "later",
161
+ "rank": 0,
162
+ "confirmed": true,
163
+ "dormant": true,
164
+ "check_by": null,
165
+ "stage": {
166
+ "id": "intake",
167
+ "label": "Intake"
168
+ },
169
+ "display": {
170
+ "word": "Intake",
171
+ "stage": "intake",
172
+ "waitingOn": null,
173
+ "act": null,
174
+ "idleDays": 1,
175
+ "line2": ""
176
+ },
177
+ "health": {
178
+ "level": "on",
179
+ "reasons": []
180
+ },
181
+ "progress": {
182
+ "done": 0,
183
+ "total": 0,
184
+ "label": "no breakdown"
185
+ },
186
+ "next_due": null,
187
+ "last_activity": "2026-07-01T10:00:00Z"
188
+ }
189
+ ],
190
+ "proposals": [
191
+ {
192
+ "eid": "p0q1r2s3t4u5",
193
+ "initiative": "billing-v2",
194
+ "title": "Billing v2",
195
+ "horizon": "now",
196
+ "after": "audit-log",
197
+ "by": "agent:sess-7",
198
+ "at": "2026-10-04T11:00:00Z"
199
+ }
200
+ ],
201
+ "flags": [
202
+ {
203
+ "kind": "unreadable",
204
+ "init": null,
205
+ "why": "line 9: not JSON"
206
+ }
207
+ ]
208
+ }
@@ -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
+ }