create-pmos 0.124.0 → 0.125.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/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/scripts/nine-stages.js +81 -0
- package/payload/scripts/workflow-state.js +2 -0
- package/payload/state/discoveries.md +1 -1
- package/payload/state/log.md +1 -1
- package/workspace/c3-one-home-test.js +131 -0
- package/workspace/fixtures/initiatives-api/list.json +171 -3
- package/workspace/fixtures/initiatives-api/roadmap.json +228 -4
- package/workspace/fixtures/initiatives-api/sheet.json +57 -1
- package/workspace/fixtures/one-home-baseline.json +83 -0
- package/workspace/guide/layout.md +2 -0
- package/workspace/lib/engine/nine-stages.js +81 -0
- package/workspace/lib/engine/workflow-state.js +2 -0
- package/workspace/lib/facts-async.js +51 -0
- package/workspace/lib/item-steps.js +52 -0
- package/workspace/lib/jira-status.js +8 -3
- package/workspace/lib/jobs-to-be-done.js +52 -0
- package/workspace/lib/outbox-store.js +87 -0
- package/workspace/lib/pm-items.js +115 -0
- package/workspace/lib/route-modules.js +21 -0
- package/workspace/lib/routes-briefing.js +100 -0
- package/workspace/lib/routes-c3-init.js +53 -0
- package/workspace/lib/routes-c3-life.js +119 -0
- package/workspace/lib/routes-c3-strategy.js +169 -0
- package/workspace/lib/routes-c3-timeline.js +191 -0
- package/workspace/lib/routes-calendar-import.js +60 -0
- package/workspace/lib/routes-calendar-views.js +61 -0
- package/workspace/lib/routes-doc-health.js +79 -0
- package/workspace/lib/routes-doc-sheet.js +169 -0
- package/workspace/lib/routes-forecast.js +85 -0
- package/workspace/lib/routes-hooks.js +121 -0
- package/workspace/lib/routes-initiatives.js +3 -0
- package/workspace/lib/routes-intake.js +24 -0
- package/workspace/lib/routes-outbox.js +97 -0
- package/workspace/lib/routes-pm-items.js +216 -0
- package/workspace/lib/routes-records.js +61 -0
- package/workspace/lib/routes-releases.js +129 -0
- package/workspace/lib/routes-report-facts.js +84 -0
- package/workspace/lib/routes-report-families.js +32 -0
- package/workspace/lib/routes-roadmap-ops.js +141 -0
- package/workspace/lib/routes-runs.js +119 -0
- package/workspace/lib/routes-signals.js +50 -0
- package/workspace/lib/run-answers.js +69 -0
- package/workspace/package-lock.json +2 -2
- package/workspace/package.json +1 -1
- package/workspace/public/c3.html +26 -0
- package/workspace/public/pm/briefing-deck.js +415 -0
- package/workspace/public/pm/briefing-model.js +176 -0
- package/workspace/public/pm/c3-breakdown.js +240 -0
- package/workspace/public/pm/c3-brief.js +278 -0
- package/workspace/public/pm/c3-cal-strategy.js +528 -0
- package/workspace/public/pm/c3-case.js +173 -0
- package/workspace/public/pm/c3-demo-brief-ix.js +350 -0
- package/workspace/public/pm/c3-demo-cal-ix.js +74 -0
- package/workspace/public/pm/c3-demo-cal2.js +66 -0
- package/workspace/public/pm/c3-demo-cal3.js +173 -0
- package/workspace/public/pm/c3-demo-data.js +560 -0
- package/workspace/public/pm/c3-demo-init.js +373 -0
- package/workspace/public/pm/c3-demo-life.js +77 -0
- package/workspace/public/pm/c3-demo-misc2.js +46 -0
- package/workspace/public/pm/c3-demo-plan2.js +30 -0
- package/workspace/public/pm/c3-demo-rep-ix.js +126 -0
- package/workspace/public/pm/c3-demo-rep2.js +92 -0
- package/workspace/public/pm/c3-demo-term.js +153 -0
- package/workspace/public/pm/c3-demo-time.js +49 -0
- package/workspace/public/pm/c3-demo-work-ix.js +80 -0
- package/workspace/public/pm/c3-demo-work2.js +13 -0
- package/workspace/public/pm/c3-demo.js +113 -0
- package/workspace/public/pm/c3-doc-sheet.js +314 -0
- package/workspace/public/pm/c3-dock.js +180 -0
- package/workspace/public/pm/c3-docs.js +290 -0
- package/workspace/public/pm/c3-expand.js +96 -0
- package/workspace/public/pm/c3-init-extras.js +170 -0
- package/workspace/public/pm/c3-lifecycle-panels.js +476 -0
- package/workspace/public/pm/c3-misc-panels.js +89 -0
- package/workspace/public/pm/c3-plan-panels.js +163 -0
- package/workspace/public/pm/c3-plan.js +192 -0
- package/workspace/public/pm/c3-roadmap.js +249 -0
- package/workspace/public/pm/c3-sheet.js +107 -0
- package/workspace/public/pm/c3-shell.js +637 -0
- package/workspace/public/pm/c3-signals.js +196 -0
- package/workspace/public/pm/c3-strategy-panels.js +45 -0
- package/workspace/public/pm/c3-swipe.js +138 -0
- package/workspace/public/pm/c3-terminal-data.js +26 -0
- package/workspace/public/pm/c3-terminal-edge.js +91 -0
- package/workspace/public/pm/c3-terminal-icons.js +41 -0
- package/workspace/public/pm/c3-terminal-results.js +141 -0
- package/workspace/public/pm/c3-terminal.js +52 -0
- package/workspace/public/pm/c3-tickets.js +163 -0
- package/workspace/public/pm/c3-timeline.js +201 -0
- package/workspace/public/pm/c3-toast.js +16 -0
- package/workspace/public/pm/calendar-views.js +1015 -0
- package/workspace/public/pm/console3-lift.md +220 -0
- package/workspace/public/pm/console3.css +1480 -0
- package/workspace/public/pm/dest-initiatives.js +16 -3
- package/workspace/public/pm/dest-mywork.js +8 -1
- package/workspace/public/pm/dest-reports.js +47 -1
- package/workspace/public/pm/dest-today.js +55 -1
- package/workspace/public/pm/doc-health-panel.js +110 -0
- package/workspace/public/pm/doc-rail.js +9 -3
- package/workspace/public/pm/lifecycle-lens-model.js +228 -0
- package/workspace/public/pm/lifecycle-lens.js +261 -0
- package/workspace/public/pm/new-initiative-sheet.js +116 -21
- package/workspace/public/pm/outbox-panel.js +125 -0
- package/workspace/public/pm/pm-work-view.js +919 -0
- package/workspace/public/pm/releases-view.js +248 -0
- package/workspace/public/pm/report-families-view.js +503 -0
- package/workspace/public/pm/run-card.js +244 -0
- package/workspace/public/pm/sessions-panel.js +149 -0
- package/workspace/public/pm/shell-bell.js +162 -0
- package/workspace/public/pm/shell-model.js +83 -0
- package/workspace/public/pm/shell-phone.js +124 -0
- package/workspace/public/pm/shell-readaloud.js +53 -0
- package/workspace/public/pm/shell-recording.js +110 -0
- package/workspace/public/pm/shell-ticker.js +90 -0
- package/workspace/public/pm/slide-confirm.js +163 -0
- package/workspace/public/pm/timeline-forecast-view.js +164 -0
- package/workspace/public/pm/today-day.js +8 -2
- package/workspace/public/pm/tokens.css +1 -0
- package/workspace/server.js +5 -2
- package/workspace/test-files.json +8 -0
- package/workspace/test-lists/browser-suites-green.json +5 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Reference
|
|
3
|
+
title: console3 lift note for Work, Briefing and Calendar
|
|
4
|
+
timestamp: 2026-10-10
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# console3 lift note
|
|
8
|
+
|
|
9
|
+
Source: `prototype/pmos-console-handoff/mockups/console3.html` (git ref `feat/console3-merge`, 5,241 lines). The mockup is the
|
|
10
|
+
UI for the Work, Briefing and Calendar views (PM instruction, reconciliation R4a). This note says what came from where. Line
|
|
11
|
+
numbers are lines of that file.
|
|
12
|
+
|
|
13
|
+
## The stylesheet: `pm/console3.css`
|
|
14
|
+
|
|
15
|
+
Generated from the mockup's `<style>` block (lines 5 to 966), not hand-copied.
|
|
16
|
+
|
|
17
|
+
- Lifted: every rule the three views use. Each selector is prefixed with `.c3`, so a view's root (class `c3`) is the only scope.
|
|
18
|
+
The mockup's `.ph` phone class becomes `.c3.ph`; the views toggle it under 640px (`c3Phone` in `pm-work-view.js`).
|
|
19
|
+
- Colours: the mockup's own variables map to D38 tokens (`--bg` background, `--fg` foreground, `--mfg` muted-foreground, `--ok`
|
|
20
|
+
success, `--warn` warning, `--bad` destructive, `--opp` purple, `--acc` brand-mark). `--card`, `--muted`, `--border`, `--ring`,
|
|
21
|
+
`--mono`, `--sans` already share their names with `tokens.css`. The sizes (`--fs-1..6`, `--sp-1..5`), the soft accent
|
|
22
|
+
(`--accw`) and the shadows (`--sh1..3`, `--hi`) are declared on `.c3`, with a light variant under `[data-pm-theme="light"]`.
|
|
23
|
+
- Kept as written: `#fff` text on the blue accent, shadow and scrim alphas, mask gradients (no token exists).
|
|
24
|
+
- Keyframes are renamed `c3-NAME`.
|
|
25
|
+
- Left out: the shell, dock, sheets, palette, toast, banner (fixed), phone tray and one-screen phone layout (`.ph1`, `.cph`,
|
|
26
|
+
`.tray`, `.tickrow`), and the Initiatives, Reports and Releases classes. None of the three views draws them.
|
|
27
|
+
- Added (marked "console3.css addition" at the end of the file): a disabled look for `.slt` and `.pill`, `.xp:not(.open)` content
|
|
28
|
+
hidden, and `touch-action:pan-x` on `.fc` so a vertical swipe on a card does not scroll the page.
|
|
29
|
+
|
|
30
|
+
Loaded by `ensureC3Css()` in `pm-work-view.js`, called from each of the three view modules (a `<link data-c3>` appended to
|
|
31
|
+
`document.head` once, the way `primitives.js` links `components.css`). `index.html` is not edited. The same call places the
|
|
32
|
+
mockup's icon sprite (lines 970 to 1026, ids renamed `c3i-*`, plus the `edit` and `trash` symbols of line 4515) in the body.
|
|
33
|
+
|
|
34
|
+
## Work: `pm/pm-work-view.js`
|
|
35
|
+
|
|
36
|
+
Lifted (markup and behaviour):
|
|
37
|
+
- Lens bar: `.calbar > .seg` with icon, label and `.bdg.g` count, the group toggle as `.ib` (lines 3207, 3281).
|
|
38
|
+
- Add line: `.c3add > .form` plus `.chips2` with the live chips: "adds to", `.tag`, `.chip2`, `.fl pN`, `.st.warn` (lines 4573 to 4578).
|
|
39
|
+
- Rows: `li.nrow.wrow` with `.rv.l`, `.rv.r`, `.ki(.hot)`, `.nb > .tt + .chips + .xp > .xi`, and `.qa` quick actions (lines 3258 to 3261).
|
|
40
|
+
- Swipe: the 8px start, the `--dx` follow, the `.rv` reveal and the 90px commit (lines 2425 to 2438); the `e` and `n` keys (line 2467).
|
|
41
|
+
- Case file: `.case > .sit`, `.c3jf` fields, `.c3steps` (`.c3sh`, `li > .c3sg .c3stt .chips2`), `.cft` footer (lines 4595 to 4605, 4651).
|
|
42
|
+
- Lens header `.lh`, list `section.card.sect > .sh2`, group-by-job cards, `.fold` empty state, `.brief.sbb > .bcols > .bcol.l/.r` (lines 3262 to 3281, 3348).
|
|
43
|
+
- Jobs card: `section.card.sect`, `.nrow` with `.pbar` and a case file (lines 4667 to 4671).
|
|
44
|
+
- Undo toast: the mockup's toast-with-Undo, on the real `toast()` primitive and the real `/undo` route.
|
|
45
|
+
|
|
46
|
+
Adapted: the data (every row comes from `GET /api/pm-items`, writes go through `pmPost`); the case file fields are the real
|
|
47
|
+
edit fields (title, due, priority, waiting on, job) in the `.c3jf` grid; actions are `.pill` buttons; the case file is drawn
|
|
48
|
+
only while a row is open and opens in place so the `.xp` transition plays; the lens header has no ring (the API gives no
|
|
49
|
+
done count per lens).
|
|
50
|
+
|
|
51
|
+
Not lifted: the card deck above the list (`workCards`, `WC`, lines 3283 to 3340) and the hero graphics (lines 3366 to 3405):
|
|
52
|
+
their text and numbers are invented sample data. The flow card (line 3344): its counts are not served. The microphone button
|
|
53
|
+
of the add line (line 4636): nothing real transcribes. The slide-to-confirm: Work has no outward send. The `Options` pill stays
|
|
54
|
+
disabled as before. The phone one-screen layout (line 3411).
|
|
55
|
+
|
|
56
|
+
## Briefing: `pm/briefing-deck.js` (and `pm/briefing-model.js`)
|
|
57
|
+
|
|
58
|
+
Lifted:
|
|
59
|
+
- Stance bar with the day-part switch: `.stance`, `.ki`, `.seg.dp` (lines 2206, 2332).
|
|
60
|
+
- Running line: `.tick > .tkt > .tki`, drawn twice for the loop (lines 539 to 545).
|
|
61
|
+
- Banner: the mockup's `.incident` block (line 99) for a pinned Critical, since the mockup's `.banner` is a fixed toast.
|
|
62
|
+
- Deck: `.deck`, `.fc` with `.ff`, `.cf` (`.cfa`, `.cfh .hero`, `.cfk .kp`, `.cff .cfx .cfr`), `.flipg`, `.fb` (`.fh`, `.case`), dots `.dk .dkd` (lines 2324 to 2331, 3088, 764 to 768).
|
|
63
|
+
- Heroes: `.hn` (line), `.hr` with the ring (ring), `.hbs .hbr` (bars), `.hrw .hrr` (text kinds) (lines 3095 to 3101).
|
|
64
|
+
- Case file: `.sit`, `.chgl`, `.opts .opt(.rec)`, `.slt`, `.cft` (lines 2275 to 2294).
|
|
65
|
+
- Behaviour: flip with `.fl-out`/`.fl-in` (line 2403), tilt (line 2414), `deckSync` and the dots (line 2163), arrow keys and Escape (lines 2198, 2463).
|
|
66
|
+
|
|
67
|
+
Adapted: the cards, ticker, banner and tags come from `GET /api/briefing` through `cardView`; tags map to the mockup's tag
|
|
68
|
+
table by `TAG_STYLE` in `briefing-model.js` (line 2207, real token colours), the lens blurb by `PART_STYLE` (line 2206).
|
|
69
|
+
`data-tag` carries the mockup's lowercase key (`critical`, `justin`, `opp`, `small`, `big`); the engine's label is in
|
|
70
|
+
`data-tag-label`. The swipe is vertical (up opens the case file, down closes it, `swipeDir`), as the mockup's help text says,
|
|
71
|
+
on top of the mockup's horizontal scroll deck. The case-file options are read-only text; the slide is a disabled placeholder.
|
|
72
|
+
|
|
73
|
+
Not lifted: the clock-driven `PARTS` times and the invented `CARDC` and `focusCards2` content (lines 2206 to 2322, 2306 to 2323);
|
|
74
|
+
the needs, review and handled-for-you sections, the time-lens ribbon, the notification sheet and bell (lines 2342 to 2361,
|
|
75
|
+
2472 onwards): other data, other views. The `.cfr` rows use only the engine's suggested move.
|
|
76
|
+
|
|
77
|
+
## Calendar: `pm/calendar-views.js`
|
|
78
|
+
|
|
79
|
+
Lifted:
|
|
80
|
+
- Zoom bar: `.calbar > .lens > .ib + .seg + .ib`, prev and next `.ib`, the `.tdy` Today chip (lines 2584, 2790 to 2800).
|
|
81
|
+
- Lens header `.lh` (line 2582), animation classes `.zi .zo .sn .sp` (lines 558 to 563).
|
|
82
|
+
- Day: `.vday` with `.hr`, `.vb`, `.vnow` placed by time (line 1400). Week and quarter or year rows: the `.nrow` day list (line 2620). Month: `.cal > .dh/.cd` with `.heat` (line 1555).
|
|
83
|
+
- Gantt: the `svg.pg` chart and `.pgl` legend, rebuilt from `progSVG` (lines 2712 to 2735): label column, day ticks, today column, status text, promised diamond.
|
|
84
|
+
- Strategy lens: the direction card `.fc.solo.on.dir` with `.dial` and `.sevs` (lines 2958 to 2966), the key-result rows `.krg`, `.krt`, `.chip-s` (line 2863), and the `.fold` notes.
|
|
85
|
+
- Gestures: sideways swipe over 80px, `+` and `-`, `t`, arrow keys (lines 2689 to 2698).
|
|
86
|
+
|
|
87
|
+
Adapted: all values come from `GET /api/calendar-views`. The mockup's gantt draws actual progress and a forecast overrun from
|
|
88
|
+
sample data; here the planned bar, the forecast bar (coloured by the server's status), the promised date and the slip in days
|
|
89
|
+
are drawn, and nothing else. The `.krt` bar shows how far a KR is behind its expected line (the only measure the server
|
|
90
|
+
sends), not a position between baseline and target. The dial is derived by the lens's own rules: pivot signal, else early
|
|
91
|
+
warning, else (when something is scored) persevere, else no highlight.
|
|
92
|
+
|
|
93
|
+
Not lifted: the meeting card, prep pack, stage switch and notes (lines 2586 to 2597): meetings carry no prep or stage data;
|
|
94
|
+
the week SVG of meeting hours (line 2606): events have no hours except an optional start; the summary and focus cards (lines
|
|
95
|
+
2762 to 2784): invented text; early signals, synergy, maturity and bets cards (lines 2884 to 2960): no source; pinch zoom and
|
|
96
|
+
the ctrl-wheel zoom (lines 2683, 2693).
|
|
97
|
+
|
|
98
|
+
# R4b: the remaining views
|
|
99
|
+
|
|
100
|
+
Same source (`console3.html`, ref `feat/console3-merge`, 5,241 lines) and the same method. The stylesheet grew by an appended block
|
|
101
|
+
("R4b" in `console3.css`): the same generator run over the mockup's `<style>` block (lines 5 to 966) with only the shell dropped, and
|
|
102
|
+
only the rules these views draw added (`.lc` (nine columns), `.lkrow`, `.hx`, `.mk`, `.dpn .dsec .dfi`, `.sntrack .snh`, `.c3rel .c3dt`,
|
|
103
|
+
`.c3ag .c3res2 .c3strip .c3mv`). That block supersedes the header's "left out: the Initiatives, Reports and Release classes". Three
|
|
104
|
+
deliberate differences: the mockup's `.sn` (a timeline point) is scoped as `.sntrack .sn`, because `.calbody.sn` is the Calendar's animation
|
|
105
|
+
class; `.c3.c3e` (an embedded root: block layout, no page-level grid or container) for the views that mount where no `.c3` root exists
|
|
106
|
+
(the document rail, the outbox, the slide, the sessions panel, the sheet body); and a few small additions marked "console3.css addition".
|
|
107
|
+
Every view calls `ensureC3Css()`. Where a view has its own root (lifecycle, releases, forecast, reports) it carries `c3` and `c3Phone`.
|
|
108
|
+
No `innerHTML` is used with real data: the mockup's string templates are `el()` calls. Every `data-*` hook the views already emitted stays.
|
|
109
|
+
Press controls stay presses (Allow, Deny, Accept, Revise, Reject, Add, Save, Create): the mockup turns some into slides, but the routes and
|
|
110
|
+
tests assume a press, and no outbound channel exists.
|
|
111
|
+
|
|
112
|
+
## Lifecycle lens: `pm/lifecycle-lens.js` (and `lifecycle-lens-model.js`, unchanged)
|
|
113
|
+
|
|
114
|
+
Lifted: view bar `.calbar` with the nine stages as `.seg` buttons (icon, label, `.bdg.g` count) and the scope as `.chips2 .pill` (iniHead,
|
|
115
|
+
3576; icons from ILI 3437 and 4686); `.lh` (3579); `.calwrap > .calbody > .brief.sbb > .bcols` (3600); `.cdeck > .deck > .fc` with the dots
|
|
116
|
+
`.dk .dkd` (iniDeck 3580; the card is the Briefing's `.ff > .cf > .cfa .cfh .cff`); the lifecycle line `.lc` (3487, nine cells); the stage
|
|
117
|
+
list `section.card.sect > .sh2 + ul.list > li.nrow` with a case file in `.xp > .xi` (c3needs 4714, c3parkRow 4719: Park and Kill with a reason).
|
|
118
|
+
Adapted: data is the Initiatives ctx rows; the deck has one card per initiative at the stage (five at most, none invented), a ring of
|
|
119
|
+
done stages over signalled stages; the lens header says "no signal yet" or "skipped by the lane" from `stageNote`; Park and Kill are `.pill`s
|
|
120
|
+
that call `setLifecycle`. Not lifted: the five invented cards per stage (3490 to 3562), the hypothesis, idea, score and chart lists and the
|
|
121
|
+
right-hand charts, the case file's "have the agent draft it" options with slides, the Build and Deliver ticket and release lists (4730 to
|
|
122
|
+
4760; Releases is its own view), the phone one-screen layout (3604).
|
|
123
|
+
|
|
124
|
+
## Releases: `pm/releases-view.js`
|
|
125
|
+
|
|
126
|
+
Lifted: `.lh` (4941), `.bcols`, the list with a "New release" row (`.ki` with the soft accent and plus) and one `li.nrow` per release with
|
|
127
|
+
initiative chips, `.tag` tags, date chips, `.st` flags and the case file `.case > .sit + .c3rel` (c3relRow 4867, c3relList 4869,
|
|
128
|
+
C3.cases.rl 4880, c3wizard 4903); the create form as `.c3rel` with initiative pills, type pills and `.c3dt` date and time labels; tag
|
|
129
|
+
detection and gap flags as a tag row and `.chgl` rows; the summary lines as `.form.row` (text and source select) with a refused line
|
|
130
|
+
flagged. Adapted: all from `GET /api/releases`; "accepted by the PM" replaces the mockup's "shipped" (acceptance is not shipping); the open
|
|
131
|
+
rules card says no freeze rule is set and no Jira tag is created from here. Not lifted: the invented releases and Jira tags (C3.REL, C3.JV,
|
|
132
|
+
4851 to 4862), the ticket table `.tbl` (no tickets in the payload), ready-to-ship checks, the freeze chip and its example rule, sync from
|
|
133
|
+
Jira and the demo button, the outward options (tag, person update, calendar hold: each needs the slide and an outbox), the promises card,
|
|
134
|
+
the "Jira release tags" bars.
|
|
135
|
+
|
|
136
|
+
## Timeline and forecast: `pm/timeline-forecast-view.js`
|
|
137
|
+
|
|
138
|
+
Lifted: `.lh`, `.bcols`, the Timeline card `section.card > h3 + .snh + .sntrack + svg.pg + .pgl` (timeLeft 4036, scrubHtml 4015); the Gantt
|
|
139
|
+
redrawn from ganttTix (4016): label column with the critical-path dot, Monday ticks, the today column, dependency elbows with arrowheads
|
|
140
|
+
(red when both ends are critical), planned bar with the thin forecast bar under it, the red dot where the forecast passes the plan, the status
|
|
141
|
+
text on the right; the "what changed" `ul.hx` (4038); capacity as `.hbr` bars (capCard 4442). Adapted: the time machine has five points
|
|
142
|
+
(today and four earlier days) instead of the mockup's named plan checks, and Replay steps through them; a point lists the plan as it stood
|
|
143
|
+
(`/api/forecast/at` returns items, not forecasts, so the Gantt does not redraw for a past day); the slider of the earlier view is the track.
|
|
144
|
+
Apply stays disabled with its title. Not lifted: the dashed "where it was before" ghost bars (no earlier forecast is served), the promised
|
|
145
|
+
line (no promise is served), progress fill (none served; a done item is filled), calendar sync, scope-creep and drift charts (4038 to 4040,
|
|
146
|
+
invented), the forecast matrix (4042).
|
|
147
|
+
|
|
148
|
+
## Reports: `pm/report-families-view.js`
|
|
149
|
+
|
|
150
|
+
Lifted: the family switch `.calbar > .seg` and variant pills (r2head 4320); `.lh` (4330) and the facts row `.lkrow > .chip2` (4324);
|
|
151
|
+
`.bcols`; the report card with one `li.nrow` per section (rsRow 4285: `.ki`, `.tt`, traced, stale and needs-input chips, `.xp` for where
|
|
152
|
+
the claims come from) ending in the send row with the slide (r2composer 4334); the claims check as `.hbs > .hbr` (r2claims 4341); the
|
|
153
|
+
who-holds-what list as `ul.hx` (r2right 4343). Adapted: families, variants and the claims check are the real routes; the send slide is the
|
|
154
|
+
disabled placeholder used on Briefing, with `SEND_WHY` as its title. Not lifted: the invented reports, sections and sources (R2R, pjSecs,
|
|
155
|
+
pdSecs, 4224 to 4258), audience pills, the card deck (rp1 to pe4), swipe to approve or cut a section (no approve record), the
|
|
156
|
+
communications queue (the outbox panel is that), the sent history, the document button, benchmark and portfolio cards.
|
|
157
|
+
|
|
158
|
+
## Slide: `pm/slide-confirm.js`
|
|
159
|
+
|
|
160
|
+
Lifted: the markup `.slt > span.lb + button.th` (caseHtml 2290) and the drag (2439 to 2447: thumb follows the pointer, `--p` fills the track,
|
|
161
|
+
a short drag nudges and says a tap is not enough). Kept from before: the hash binding, hold Enter and four ArrowRights, `role=slider`,
|
|
162
|
+
reduced motion. The control sets `--tc` itself (a bare slide has no `.case`).
|
|
163
|
+
|
|
164
|
+
## Outbox: `pm/outbox-panel.js`
|
|
165
|
+
|
|
166
|
+
Lifted: `section.card.sect > .sh2 + ul.list > li.nrow` with `.ki`, `.tt`, `.chips` and the case file `.case > .sit + textarea + .chgl +
|
|
167
|
+
.slt` (cmRow 4280, r2queue 4338). Claim check rows are `.chgl`. Not lifted: the swipe on a message row, the draft, held and sent
|
|
168
|
+
states and the "external, you approve" chip (the entry carries none of them).
|
|
169
|
+
|
|
170
|
+
## Document panel: `pm/doc-health-panel.js`
|
|
171
|
+
|
|
172
|
+
Lifted: `.dpn` with the shield and "N of M checks pass", `ul.chgl` rows (`li.ok` or `li.bad`), the revision list `ul.hx`, the diff as
|
|
173
|
+
`.dpn.dfi > .dsec > p` with `ins` and `del` (docPanel 4090 to 4104, diffHtml 4075, history 4102). Fixed on the way: "Fix with the agent" and
|
|
174
|
+
"Accept" were built with `disabled: ''`, which leaves a button enabled; they are now truly disabled, with their titles. Not lifted: the
|
|
175
|
+
Read, Edit and Relations modes (the rail has its own), per-check fix chips, section flags, the document graph (no relations data here).
|
|
176
|
+
|
|
177
|
+
## New initiative: `pm/new-initiative-sheet.js`
|
|
178
|
+
|
|
179
|
+
Lifted: the one-line add `.c3add > .form` with the spark button, the suggestion as `section.card.sect` with `.case > .sit + .chgl` rows
|
|
180
|
+
(lane guess, anchor, prior rejection with `.tag`), fields as `.c3jf` label rows (c3niLine 4786, c3niCard 4787). The dialog is still the
|
|
181
|
+
real `sheet()`; Cancel and Add stay in its footer. Not lifted: the microphone, "try" example pills, the four-step progress list, the lane
|
|
182
|
+
options with slides, anchor pills (the anchor stays a `select`, which the page and its tests set by value), the phone bottom sheet.
|
|
183
|
+
|
|
184
|
+
## Sessions and the agent card: `pm/sessions-panel.js`, `pm/run-card.js`
|
|
185
|
+
|
|
186
|
+
Lifted: `section.card.sect > .sh2` with `.bdg.g` counts, `li.nrow > .ki > .mk` (w, n, b) with the agent block in `.xp.open > .xi`, the Automatic
|
|
187
|
+
switch as a `.pill` with `aria-pressed` (c3sessList 5183); the agent block `.c3ag` with the working strip `.fold.a` and `.c3spin`, the result
|
|
188
|
+
`.c3res2` with claims as `.chgl` plus a `.tag` for the basis, the moves as `.chips2.c3mv` pills with the mockup's icons, the revise and
|
|
189
|
+
reject chips, the permission as a case file with the command in `.term` (agBlock 5100, agResultHtml 5082, agMoves 5076, agWorkHtml 5054).
|
|
190
|
+
Moves, revise options and reject reasons come from the card, not the mockup's lists. Not lifted: the invented runs and results (AM, table,
|
|
191
|
+
deck, diagram, file), the reply tray text field and voice (the host's `onReply`), the Rules and "demo" cards, past-run timelines and
|
|
192
|
+
"Continue" (not served), the step strip and helpers (the card has no steps), undo.
|
|
193
|
+
|
|
194
|
+
# E2b: the shell strip, bell, banner, recording group, read-aloud, haptics and phone tiles
|
|
195
|
+
|
|
196
|
+
Same source and method. Files: `pm/shell-model.js` (pure logic, tested by `scripts/tests/shell-model.test.js`), `shell-ticker.js` (also the one
|
|
197
|
+
shared read of `GET /api/briefing`, kept 60 s), `shell-bell.js` (bell, list, banner, popup, `buzz`), `shell-recording.js`, `shell-readaloud.js`,
|
|
198
|
+
`shell-phone.js` (the strip and the four tiles). `app.js` has one added line in `setupFrame`: a lazy `import('./shell-phone.js')` that calls
|
|
199
|
+
`mountShell({ parent: root, after: bar.node, go })`. The CSS is the "E2b" block at the end of `console3.css`.
|
|
200
|
+
|
|
201
|
+
Lifted: ticker `.tick > .tkt > .tki` (lines 539 to 545, 2478 to 2484); bell and `.nbdg` (2476, 2477, 490); the notification list as `.sheet.bs` with
|
|
202
|
+
`.scrim`, `.grab`, `.sh2` and `.nli` rows (2503 to 2506, 489 to 505); `.banner` (492, 2507); `.eq` and the speaker control (512, 2518 to 2530);
|
|
203
|
+
`.recg`, `.recdot` (916 to 924, 4385 to 4400); `.tickrow`, `.tray`, tile `button.tl` (539 to 552, 2486 to 2492).
|
|
204
|
+
|
|
205
|
+
Rewritten (el() calls, never innerHTML): all of it. Data: ticker lines and banner are the route's `ticker` and `banner`; the bell counts cards
|
|
206
|
+
(`bellCount`); read-aloud says `readText(card)`: the card's own tag, headline, facts and deadline text, nothing added. Haptics are
|
|
207
|
+
`hapticFor(kind, reduced)` and a guarded `navigator.vibrate`. The recording group reads `note-dock.js recordState()` and calls its
|
|
208
|
+
`highlightNow`, `pauseNow`, `resumeNow`, `stopNow` and `openDock`; it never starts a recording (that stays the Record control's job).
|
|
209
|
+
|
|
210
|
+
Differences, on purpose:
|
|
211
|
+
- The strip sits directly under the top bar, not inside it: `topbar.js` rebuilds its children on every update, which would remove a slot
|
|
212
|
+
added there. The tools (recording group, speaker, bell) are at the right end of the strip.
|
|
213
|
+
- Under prefers-reduced-motion the ticker shows its lines one at a time, the recording dot is static, and haptics are off.
|
|
214
|
+
- The phone tiles are Briefing, Calendar, Work and More (the places the phone has), not the mockup's Needs you, Review, Next and Handled, whose
|
|
215
|
+
counts are sample data. Calendar and Briefing both open Today. A tile count appears only where a real number exists (cards, My work).
|
|
216
|
+
- The tile class `.tl` is scoped `.tray .tl` (the mockup also uses `.tl` for the timeline).
|
|
217
|
+
- The red dot is placed on the Notes tab (`[data-fr-dest="notes"]`); this app has no Calendar tab, and the phone's tab bar has no Notes tab, so
|
|
218
|
+
on a phone the recording group (in the strip) is the indicator.
|
|
219
|
+
- Not lifted: the mockup's invented notifications and timed live arrival; the spoken day-part intro. The read-aloud button reads the top
|
|
220
|
+
card of the briefing, because the deck exposes no "open card" hook.
|