create-pmos 0.516.0 → 0.518.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 +33 -65
- package/payload/KIT-VERSION +1 -1
- package/payload/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/state/discoveries.md +1 -1
- package/workspace/changelog.json +32 -0
- package/workspace/ev-everywhere-test.js +3 -3
- package/workspace/guide/board.md +7 -63
- package/workspace/guide/breakdown.md +8 -108
- package/workspace/guide/briefing-premium.md +5 -526
- package/workspace/guide/console-calendar.md +7 -206
- package/workspace/guide/data-freshness.md +26 -4
- package/workspace/guide/docs.md +10 -125
- package/workspace/guide/home.md +8 -5
- package/workspace/guide/index.md +78 -79
- package/workspace/guide/initiatives-and-next-steps.md +6 -19
- package/workspace/guide/layout.md +23 -230
- package/workspace/guide/live-notes.md +5 -7
- package/workspace/guide/my-work.md +8 -172
- package/workspace/guide/notes.md +14 -21
- package/workspace/guide/people.md +6 -39
- package/workspace/guide/report-design.md +2 -2
- package/workspace/guide/report-structure.md +1 -1
- package/workspace/guide/reports-set-up.md +9 -10
- package/workspace/guide/reports.md +17 -1
- package/workspace/guide/settings.md +16 -69
- package/workspace/guide/today.md +12 -188
- package/workspace/lib/refresh-run.js +39 -2
- package/workspace/lib/report-checks.js +3 -0
- package/workspace/lib/report-cli.js +112 -3
- package/workspace/lib/report-engine.js +779 -0
- package/workspace/lib/report-export.js +36 -1
- package/workspace/lib/report-pyramid.js +20 -0
- package/workspace/lib/routes-ready-reports.js +3 -1
- package/workspace/lib/routes-report-design.js +7 -2
- package/workspace/lib/routes-report-setups.js +17 -2
- package/workspace/lib/routes-sources.js +6 -2
- package/workspace/lib/source-heal.js +140 -0
- package/workspace/package-lock.json +2 -2
- package/workspace/package.json +1 -1
- package/workspace/public/pm/cozy-evmodel.js +18 -1
- package/workspace/public/pm/cozy-evui.js +1 -0
- package/workspace/public/pm/cozy-nav.js +9 -6
- package/workspace/public/pm/cozy-settings.js +15 -9
- package/workspace/public/pm/premium-vw-guide.css +36 -0
- package/workspace/public/pm/premium-vw-guide.js +137 -0
- package/workspace/public/pm/premium-vw-open.js +4 -1
- package/workspace/public/pm/premium-vw-page.js +2 -1
- package/workspace/run-tests.js +6 -0
- package/workspace/skills/report-biweekly.skill +7 -0
- package/workspace/skills/report-daily.skill +7 -0
- package/workspace/skills/report-monthly.skill +7 -0
- package/workspace/skills/report-special.skill +2 -0
- package/workspace/skills/report-template.skill +8 -1
- package/workspace/skills/report-weekly.skill +7 -0
- package/workspace/skills/report-write.skill +44 -0
- package/workspace/test-lists/report-engine.json +5 -0
- package/workspace/guide/ask-the-agent.md +0 -46
- package/workspace/guide/briefing-cards.md +0 -52
- package/workspace/guide/briefing.md +0 -159
- package/workspace/guide/calendar-popup.md +0 -46
- package/workspace/guide/command-palette.md +0 -77
- package/workspace/guide/console3-sessions.md +0 -147
- package/workspace/guide/document-sheet.md +0 -89
- package/workspace/guide/initiative-boards.md +0 -123
- package/workspace/guide/initiatives-screen.md +0 -179
- package/workspace/guide/initiatives-timeline.md +0 -55
- package/workspace/guide/phone-companion.md +0 -89
- package/workspace/guide/reports-dashboards.md +0 -70
- package/workspace/guide/reports-page.md +0 -87
- package/workspace/guide/timeline.md +0 -70
|
@@ -1,535 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: Guide
|
|
3
|
-
title: "
|
|
4
|
-
description: "
|
|
3
|
+
title: "Claude's leads: pmos lead"
|
|
4
|
+
description: "What a lead is, how an agent saves one with pmos lead, and how the workspace keeps leads up to date. The premium Briefing page that showed them is now Home."
|
|
5
5
|
timestamp: 2026-11-03
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Claude's leads: pmos lead
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
The premium Briefing is a page of its own at `/premium.html`. The console at `/` stays the default page. This page reads the repositories of the products you pick (see "Products"). It writes only when you press a button that says it records (see "What the buttons record"), plus one derived copy of its last answer, described below.
|
|
13
|
-
|
|
14
|
-
Every premium page uses the console's type: Space Grotesk for text, IBM Plex Mono for times and labels, and the same sizes and weights as the console. A premium page and the console at the same place read at the same size.
|
|
15
|
-
|
|
16
|
-
A rail on the left has five places: Briefing, My work, **Chat**, Board and Insights. Chat is in the middle, a large round button, because the chat is the main place to work. Each place is a page; Chat is at `/premium-chat.html`. On a phone the rail is a bar at the bottom of the screen, and Chat rises above it. A grey band marks the page you are on; on the Chat page the solid Chat button is that mark, so no band is drawn under it. It stays at the bottom after you type in a field and the keyboard closes.
|
|
17
|
-
|
|
18
|
-
**On a large screen** (1440 px wide and up) the pages grow with the screen, and the text is one size larger; from 1920 px it is two sizes larger. A full-screen chat dialog gives the conversation and the viewer half the width each. Below 1440 px nothing changes.
|
|
19
|
-
|
|
20
|
-
Every premium page has the same top bar. On the left is where you are. On the right are the **Sources** chip, the bell and one **⋯** menu.
|
|
21
|
-
|
|
22
|
-
- **Chat** (in the rail) opens the Chat page on a conversation with Claude about the page you were on: the Briefing, My work, the board, or the initiative. It is the same conversation the page's chat has always kept, so its history comes with it. From Insights, or opened on its own, the Chat page opens your own chat, which is about no page. An orange dot on Chat means one or more sessions are Ready or Maybe blocked; the button's name says how many.
|
|
23
|
-
- **Sources** has a green dot when every source was read recently, and an orange dot when a source is old, was never read, failed, or the page could not read it. Hover to see which. A press opens the Sources dialog (see "Sources" below).
|
|
24
|
-
- **The bell** is your inbox of agent results: see [The bell: what the agent has for you](#the-bell-what-the-agent-has-for-you).
|
|
25
|
-
- **The ⋯ menu** holds **Search** (Ctrl K), **Console**, **Theme** (Light, Dark or Auto) and **Settings**. On the Board it also holds **Open initiatives** as Page or Popup. An orange dot on ⋯ means a newer PMOS is ready, and **Settings** then shows the version.
|
|
26
|
-
- **On a phone** the bar is one row: the page name, the bell and ⋯. Sources moves into the ⋯ menu.
|
|
27
|
-
- **Menus.** An option that is too long for one line wraps onto the next line, and its row grows to hold it.
|
|
28
|
-
|
|
29
|
-
**Search** (Ctrl K, or `/`) opens the search over places, initiatives, documents and your running sessions; Enter opens the result. Search and the bell only read; neither changes a record. **Settings** opens one dialog. **Updates** comes first: the PMOS version you have, the newest published version, **Check now** and, when a newer one is ready, **Update**. Update does what the console's Settings › Updates does: it updates the kit in each workspace that is behind, then PMOS itself, which stops for about a minute and reloads the page. PMOS that runs from a checkout says to use `git pull` instead. Each repository is a row with its kit version. A git worktree of a repository has no row of its own: it shares its repository's kit. PMOS checks once a day while a page is open (the console's **Check for updates** setting turns this off). **What's new** lists each published kit, newest first and grouped by day: its version, when it published, and one entry per pull request it carries: the pull request's title in bold, with its number, and under it the first sentence of its "After:" paragraph. Both are copied from the pull request when the kit is published; a parenthesis that holds code or a decision number is left out, and a pull request with no "After:" paragraph shows its title only. Kits newer than yours are tinted, and yours is marked. Five show per day; **Show more** opens the rest. Then come two choices. **Workspaces** lists the repositories PMOS works in, with Add (a folder path) and Remove; Remove forgets the address and never deletes the folder, and a refusal shows the server's reason. **Connectors** has an On/Off switch for each source the Briefing reads, then a row for every other connector your Claude session has (for example BigQuery). PMOS reads the connector names from the default profile, or from Claude Code's own settings when no profile is set. Your Claude sessions can use every connector whatever its switch says; a switch chooses only what PMOS reads on its own. Such a row is Off until you switch it on, and it says that nothing in PMOS reads it on its own yet: the switch saves your choice for a reader to come. Each press saves that one record. Every other setting runs on a default and stays in the console; the dialog links to it. Remove needs the page's launch nonce, so an agent session cannot call it.
|
|
30
|
-
|
|
31
|
-
**Sources** is a dialog that lists each tracked source (Repository, Initiatives, Calendar, Jira status, My work and Tracker items) with its own state and the time it was last read. Each source except the repository has **Refresh**, and **Refresh all** reads them all again. Slack and email are read as part of My work, so they have no row of their own. A source PMOS does not track has no row: the dialog shows only what PMOS can say it read.
|
|
32
|
-
|
|
33
|
-
The first line of **Sources** says whether PMOS's background work is running. When everything is on time it reads like "Background on · brief 06:52 · sources 06:49": the time today's morning brief was saved and the time of the last source read. It turns orange when something is late, such as a source that missed its scheduled read by more than an hour, or Git sync that keeps failing. It turns red when something stopped: no morning brief 45 minutes after its time, a source whose last run failed, a session whose prompt was typed but not sent, or background checks that stopped. The line gives the reason in plain words, and other problems are listed under it. The Sources dot takes the same colour, and a stop is also added to the bell, once a day. When the morning brief is due, it first refreshes Calendar, Jira and My work if they are more than 2 hours old, then builds from them. It waits for them for at most 30 minutes.
|
|
34
|
-
|
|
35
|
-
**The Chat page** is the chat as a page of its own. On a desktop it has the session list and the conversation; the viewer is closed until something opens in it, such as a file Claude names. Then the viewer opens beside the conversation and the list folds to its strip of icons for as long as the viewer is open. The **×** at the top of the viewer closes it, and the **Viewer** chip in the head, with the number of things it holds, opens it again. When more tabs are open than fit, the last one is a **+N** menu with the rest. It has no close button; the rail takes you to another place. On a phone it fills the screen above the bar and opens on the conversation; the **Sessions** chip opens the list. It has no Detail switch: the viewer opens over the whole screen, and **‹ Chat** (or Escape) takes you back to the conversation. A chat dialog elsewhere (a row's Conversation tab) still shows the list when it is full screen. The standing note under the message box ("This is a Claude Code session…") shows only while you write in the box; any other note there, such as Sent, an error or Claude is waiting, always shows.
|
|
36
|
-
|
|
37
|
-
- **Groups.** **Goals** holds a chat whose goal is started or waiting on you. **Yours** holds the other sessions you started. **Started by PMOS** holds schedules, the day run, the Driver, the Checker, notes, document syncs and other background runs. A PMOS session shows only when it needs you. The rest fold into one line, "N more working on their own · Show".
|
|
38
|
-
- **Dots.** An orange dot means **Ready**: the session finished its turn and waits for you. A green dot means **Running**. An orange ring means **Maybe blocked**: a call is open and nothing moves, often a permission question. No dot means idle. Ready sessions come first and are bold. Hold the pointer over a row to see its state in words.
|
|
39
|
-
- **Switch.** Press a row to switch the dialog to that session. A chat opens its own conversation. Any other session shows its conversation from Claude Code's record. You can write to it and answer its permission questions, as in a chat. The viewer shows the session's facts, the question a background run asks with the options it offered, and **Stop**. Stop asks first, and if the session has not exited yet it says so and offers Stop again.
|
|
40
|
-
- **Fold.** The button at the top of the list folds it to a strip of icons with dots. In a full-screen chat dialog on another page, the button at the top of the viewer folds the viewer to a strip, so the conversation gets the width; press anywhere on the strip, or anything that opens in the viewer, to open it again. PMOS remembers both in this browser. When the conversation is hidden, the viewer always shows, so the panel is never empty.
|
|
41
|
-
- **End.** Every row has an **End** button (×) on its right: it shows when the pointer is over the row, and always on a touch screen. An idle session ends at once. A session that is Running, Ready or Maybe blocked asks first, in the row, with **End** and **Keep**. Ending stops the process and removes the row; files it already wrote stay. If it has not exited yet, the toast says so and the row stays.
|
|
42
|
-
- **Idle shells.** A terminal shell with no agent in it and no output for a while folds under **Yours** into one line, "N more idle · Show", with **End all idle**. End all idle ends only those shells, never a goal or a session that needs you. PMOS opens one shell when it starts with no live session; it now checks after your sessions come back, so a restart no longer adds a shell each time.
|
|
43
|
-
- **When the chat is not full screen,** a chip in the dialog's header shows the loudest dot and, for example, "2 ready". Press it to go full screen with the list. On a phone, it opens the list over the dialog, and a tap on a row switches to that session.
|
|
44
|
-
- **The dot on Chat** in the rail shows when sessions are Ready or Maybe blocked. The Chat page shows the list beside the conversation.
|
|
45
|
-
- When more than six agents are working at once, a note at the top of the list says how many, and suggests stopping the ones you are not watching. Nothing is stopped for you.
|
|
46
|
-
- Terminals and new sessions stay in the console. Writing, answering and Stop need the page's launch nonce, so an agent session cannot call them.
|
|
47
|
-
|
|
48
|
-
## Products
|
|
49
|
-
|
|
50
|
-
You work across products, and a conversation in email, the calendar or Confluence cannot be tied to one product. So the Briefing reads more than one workspace and merges what needs you into one list.
|
|
51
|
-
|
|
52
|
-
- **By default** it reads every registered workspace except the home one (PMOS itself). PMOS is the tool, not a product you manage, so it is left out until you ask.
|
|
53
|
-
- **Products**, at the top of the **Sources** dialog, lists every registered workspace, the home one included, each with a box. Tick a box to read that workspace, clear it to stop. The button says how many are on, for example "2 of 3". "Back to the default" returns to every workspace except the home one.
|
|
54
|
-
- **Your choice is saved** as the setting `ws.briefing.include` (a list of workspace ids) in this computer's state folder, so it stays when you reload or restart.
|
|
55
|
-
- **A workspace that is not ticked is not read at all.** Its decisions, blocked work, merges and runs do not count in the hero, the list or the dock.
|
|
56
|
-
- **Each row says which product it belongs to**, in a small tag before its line. Two products can hold an initiative or a kill condition of the same name. They stay separate rows, and a press is written into the journal of the product the row names.
|
|
57
|
-
- **The order** is the same across products: blocked work first, then decisions only you can make, then what has waited longest. A failed-review row is made for each product, so a count is never added across products.
|
|
58
|
-
- **The header** names what is read and what is not, for example "IDPF and microsites · pmos not included". A product that is still being read or could not be read is named there too, and the others still show.
|
|
59
|
-
- **`/premium.html?ws=<id>`** shows that one workspace, whether or not it is ticked. It does not change the pick. A change in the product picker saves the pick and opens Home without `?ws=`.
|
|
60
|
-
- **The product picker** on Home, the Board and Insights writes the same setting. **All** saves `["*"]`, so a product added later is read too.
|
|
61
|
-
- **Mail, Jira and Confluence** come from today's morning brief, which a scheduled skill in an agent session writes to the state folder (the server reaches none of those services). See "Mail, Jira and Confluence" below.
|
|
62
|
-
|
|
63
|
-
## Mail, Jira and Confluence
|
|
64
|
-
|
|
65
|
-
The page reads today's morning brief (`briefs/<date>.json` in the state folder) and the Jira tickets assigned to you. Nothing is sent, posted or recorded from these rows.
|
|
66
|
-
|
|
67
|
-
- **Rows.** The brief's items become rows in "What you need to do" when you own them, when they mention you, or when they are worth asking, whatever their source: calendar, Wispr Flow, mail, Slack, Jira, Confluence, GitHub, Drive, Figma or website. The row names the source. Items the agent owns that do not mention you are left out, and so are PMOS's own derived items. A row shows its source and sender, then the verb and the prepared line, then why it is on the list. Only fields the item holds are shown.
|
|
68
|
-
- **Tickets.** An assigned Jira ticket becomes a row when it is overdue, due today, blocked or a decision, and your Work list has not marked it done or put it aside.
|
|
69
|
-
- **The tag.** A row names a product only when the item names an initiative that belongs to exactly one product you included. Every other row reads "Across products". The page never guesses a product.
|
|
70
|
-
- **The order.** These rows follow the repository rows: tickets first, then the brief's items in the brief's own order. The cap of seven rows is shared, and the rest are counted as more.
|
|
71
|
-
- **The dialog** opens the item's link, when it is an https address, in a new tab. It records nothing. The conversation beside it is a Claude Code session about the row (see "The chat panel is a Claude Code session").
|
|
72
|
-
- **Today** lists one item per digest (a watched Slack channel, Jira project or Confluence space) with the decisions, open lines and goals the brief holds, under a Digests filter that appears when the brief has digests.
|
|
73
|
-
- **The header** says "no morning brief for today" when there is none, or that the brief could not be read, or that it did not reach a source (mail, Jira, Confluence or Slack).
|
|
74
|
-
- **`?ws=<id>`** does not show these rows.
|
|
75
|
-
|
|
76
|
-
## The bell: what the agent has for you
|
|
77
|
-
|
|
78
|
-
The agent's results are in the bell, not in the list. Each open proposal from the Initiative Driver, and each goal that is done, stopped or needs you, is one item. The list keeps your own work. Under it, one line says how many agent results wait on you, how many are new, and how old the oldest is. **Open Needs you** opens the bell.
|
|
79
|
-
|
|
80
|
-
- **New from the agent** shows one item per result that came in after you last looked, the newest first. Each item has its main action: **Review** for a proposal, **Read** for a document draft, **Answer** for a goal that needs you, and **See result** for a goal that is done. **Session** opens the conversation with the agent about that piece of work. The badge on the bell counts the new items.
|
|
81
|
-
- **Still waiting** shows one line per piece of work: its name, how many proposals it has and how old the oldest is. A press opens Agent proposals on that piece of work.
|
|
82
|
-
- **Review** opens Agent proposals on that one proposal, where Keep, Send back and Drop are. **Talk to the agent** opens its conversation, and **Back to Needs you** opens the bell again. On another page, a press opens the Briefing with that proposal open.
|
|
83
|
-
- **Seen is not done.** When you close the bell, the new items it showed move to Still waiting. **Mark all seen** moves them all. An item leaves only when you decide it, wherever you decide it.
|
|
84
|
-
- **A toast** names a new result while a premium page is open: at most one every 15 minutes, with several new results bundled into one. Its button opens the result, or the bell.
|
|
85
|
-
- **What counts.** The bell lists the proposals Agent proposals shows (a board in Shadow or Off mode raises none) and the goal rows. Portfolio document drafts stay in the list, because they are your own documents.
|
|
86
|
-
- **Links.** `premium.html?open=prop:<id>&pws=<workspace>` opens one proposal. `?open=target:initiative:<id>&pws=<workspace>` opens one piece of work. `?open=row:<key>` opens an agent or goal row with its conversation.
|
|
87
|
-
|
|
88
|
-
The bell reads `GET /api/inbox`. The only thing it writes is your seen marks, in `inbox-seen.jsonl` in the state folder. They need the page's launch nonce.
|
|
89
|
-
|
|
90
|
-
## The agent's drafts
|
|
91
|
-
|
|
92
|
-
The Initiative Driver's rows ("Agent has 4 drafts on <initiative>" and "<initiative> is waiting on you: the drafts are 6 days old") are read from each included product's Driver ledger. They are in the bell, and a Session press opens one. Nothing is recorded from these rows.
|
|
93
|
-
|
|
94
|
-
- **The dialog** shows only what the Driver's row holds: the cause, the draft count, the age, and the confidence, recommendation, reversibility and effort the agent stated when it filed. A fact nobody stated is left out. **Review the drafts** opens Around you's Agent proposals, where Keep, Send back and Drop are.
|
|
95
|
-
- **Pressing a row** opens Around you's Agent proposals on the Briefing, with only that initiative's or Work item's drafts. The **more on other work** row lists every one. A row never opens the console.
|
|
96
|
-
- **Core-document drafts** open the initiative page or the Board page that holds the documents. Portfolio drafts open in the document sheet on the Briefing, with **Issue it** and **Draft it again**, the same sheet the Board page uses.
|
|
97
|
-
|
|
98
|
-
## How long it takes to load
|
|
99
|
-
|
|
100
|
-
Two reads feed the page. The quick read takes the kill conditions, the failed-review verdicts, today's merges and agent runs, and the calendar. It finishes in seconds. The slow read derives the state of every initiative from git history. It takes about half a minute on a fast machine, and much longer on a machine that is busy. The page never waits on the slow read:
|
|
101
|
-
|
|
102
|
-
- **The first time**, the page says "Reading the repository for the first time" and counts the seconds. As soon as the quick read ends it draws what that read holds, and says in the header, the list and the dock that it is "still reading initiative state". Until then it does not say that nothing needs you. Blocked work, prototypes that wait for you and failed reviews appear when the slow read ends.
|
|
103
|
-
- **After that**, a reload answers at once with the last read. A read older than 5 minutes is refreshed in the background, and the header says when it was read.
|
|
104
|
-
- **The slow read runs only when the repository changed.** If you are on the same commit and nothing under `planning/` or `scripts/` changed, the page reuses the last initiative state. It runs at low priority, so it does not starve the machine.
|
|
105
|
-
- **After a restart**, the last read comes back from a file in the workspace's state folder, one `briefing-premium-products-<id>.json` for each product (`briefing-premium-model.json` for the one-workspace view). The file is a copy of derived data. You can delete it.
|
|
106
|
-
- **If a read fails**, the header says "the latest read failed" with the reason, and the page stops saying it is still reading. The server waits two minutes before it tries again, so a failing read does not run in a loop. A slow read that failed is always tried again on the next refresh, even when the repository has not changed.
|
|
107
|
-
- **If one record cannot be read**, only that record is left out. The header says how many were left out. A row or a Today item whose detail cannot be built still opens, with what the row itself says.
|
|
108
|
-
|
|
109
|
-
## The header
|
|
110
|
-
|
|
111
|
-
The Briefing's **Sources** dialog is one list in three groups. **Sources · read on this machine** and **Sources · read through your connectors** are the raw sources, each with its last read. **Derived content** is what PMOS builds from those stored reads, never from a tool: the morning brief, core documents and the horizon scan. Each derived row says when it was built and from which reads, with their times. Under it, **This Briefing was built from** lists each source the page reads, with its state: **Read**, **Not read**, **Not included** or **Off**, and the reason. Examples: `planning/runs/agent-runs.jsonl` is missing in that repository; the product is not chosen under **Products**; the source is switched off under **Settings → Connectors**; the morning brief could not reach it. A source that cannot be read adds nothing. The page does not guess. **Products** is the product picker (see "Products").
|
|
112
|
-
|
|
113
|
-
Each card ends with a read line: the sources it shows and when each was read, from the same read as Sources. **What you need to do** names Initiatives, My work and the brief. **Calendar** names Calendar. An orange dot means one of them is old, failed or not read yet. While **Refresh all** runs, a line under the headline says which step it is on: reading the sources, or writing the brief from them.
|
|
114
|
-
|
|
115
|
-
On the Briefing, **Refresh all** also reads every included repository again now, without waiting for the 5-minute age. If a read is already running, it does not start a second one. A read that failed is tried again at once.
|
|
116
|
-
|
|
117
|
-
## The hero sentence
|
|
118
|
-
|
|
119
|
-
The headline is the same paragraph as **The brief** on the console Briefing. It uses the same reads (the briefing, your own items, the agent's drafts, today's calendar and the portfolio plan), the same Needs you rows and the same wording, so both pages give the same counts. If those reads fail, the page shows the records-only sentences below instead. Those sentences are the fallback.
|
|
120
|
-
|
|
121
|
-
The hero is one short paragraph. Each part of it comes from one record:
|
|
122
|
-
|
|
123
|
-
- **Merges.** How many changes reached `main` today.
|
|
124
|
-
- **Corrections.** The human corrections per 100 agent runs in the last 7 days, against the 7 days before. The page shows the figure only when both weeks have at least 10 runs.
|
|
125
|
-
- **What is stuck.** The blocked initiatives, a prototype that waits for your decision, a kill condition whose date has passed with no decision on record, and review verdicts that failed and are still open.
|
|
126
|
-
- **Drift.** The share of recent work that is upkeep (anchored to a health budget), and how many initiatives have had no activity for a month.
|
|
127
|
-
|
|
128
|
-
A part with no record is left out. With nothing to say, the hero says so.
|
|
129
|
-
|
|
130
|
-
## What you need to do
|
|
131
|
-
|
|
132
|
-
The list is the console's **Needs you**: the same rows, in the same order, from the same reads. A decision opens here, with what its record says and a link to its source. Choose its option on the console Briefing. Your own item opens on My work, on that item. An agent row opens Agent proposals, with that initiative's or Work item's drafts. These rows have no "If you skip" line and no link to a meeting, because no record holds them. The header, the dock and the bell count the same rows. If the console reads fail, the page shows the records-only rows below instead.
|
|
133
|
-
|
|
134
|
-
Each row is a thing that waits for you. The order is fixed: blocked work first, then decisions only you can make, then what has waited longest. The first row is tagged "Do this first".
|
|
135
|
-
|
|
136
|
-
A row has two lines: a verb-first title, then the subject and what the repository says is next, joined by a dot.
|
|
137
|
-
|
|
138
|
-
**Blocked work is Claude's ✦ proposal.** A blocked initiative shows as a row only when Claude can propose a way through. The title names the proposal (for example, **Draft the PRD**, **Anchor it** or **Start a prototype**), and the second line says what Claude will do: "✦ I'll draft the PRD with its done-criteria…". The initiative page and the chat show the same proposal ("Also waiting on you: ✦ Draft the PRD · Review"), not a question. Press the proposal to approve it, and Claude starts an agent session that does it. Two blocks are never a row: routing, because the initiative's workflow routes it, and an order violation in git history, which no draft can fix. When the line is too long it ends in "…"; the full text is in the row's dialog. "If you skip", which says what stays blocked, is in the dialog too. Press a row to open it. Detail opens first, and the conversation sits beside it. On a phone, the Detail tab is first.
|
|
139
|
-
|
|
140
|
-
The header counts "N of M done". A row counts as done when the record behind it changes, so a row clears by itself. Nothing on this page presses Done for you. The count starts again each day and is kept on this device.
|
|
141
|
-
|
|
142
|
-
The pin on a row keeps it at the top for this session. On a desktop it shows when you point at the row; on a phone it shows only on a pinned row, and **Pin to the top** is in the row's dialog.
|
|
143
|
-
|
|
144
|
-
## Calendar
|
|
145
|
-
|
|
146
|
-
The Calendar card holds the week and the day. Its top row is a strip of Monday to Friday: each day shows its meeting time from the calendar PMOS holds, and blocks for items done and due that day from your list. Today is picked when the page opens. Press another day to list its meetings; press today to come back. My work has no calendar: this card is the one place it shows.
|
|
147
|
-
|
|
148
|
-
The chevron in the card header hides the card down to one line: the next meeting today (or "Nothing more today"), the week's meeting count and the items due. Press the line or the chevron to show the card again. The page remembers this in this browser. With nothing remembered, the card starts open on a computer and hidden on a phone.
|
|
149
|
-
|
|
150
|
-
With today picked, the card lists the day in time order: what is ahead, a marker for the time the data was read, and what came earlier. It has three sources: the calendar PMOS holds, merges to `main`, and agent runs. The filter button turns a source on or off. Press an item to read it.
|
|
151
|
-
|
|
152
|
-
Above the list, with today picked, a ring shows how many of the meetings still ahead are prepped. A meeting is prepped when no open item is linked to it as "Before you go". The line names the meeting that is on now or next. The ring reads the same day as the console's. With no meeting left, or with another day picked, it is not shown.
|
|
153
|
-
|
|
154
|
-
### Another day
|
|
155
|
-
|
|
156
|
-
With another day picked, the card lists that day's meetings from the calendar PMOS holds, and the items due that day. It reads the week once when the page opens. If the calendar cannot be read, the card says "Calendar not read" and gives the reason, and does not guess. A meeting in the past is shown dimmer. Picking a day changes only what the card shows and records nothing.
|
|
157
|
-
|
|
158
|
-
**The full calendar.** **Full calendar** in the card's ⋯ menu opens the calendar in a dialog. **Day**, **Week** and **Month** each read the calendar PMOS holds for that range; the arrows move one day, week or month, and **Today** comes back. The calendar fills the dialog; the dialog's conversation button brings the conversation back beside it. Day and Week are drawn the way the console's Calendar draws them. Week is a timeline from Monday to Sunday, with the weekend shaded and today tinted. Each day's head shows the day (press it to open that day), its meeting hours and a load bar. The **dates** row shows all-day meetings and the dated marks the Calendar reads (a promised date, a plan item, a release, a report, your own due items): four a day in a week, and a **+N** that opens the day. Every hour from 08:00 to 18:00 (wider when a meeting is earlier or later) has its label. Meetings at the same time sit side by side. A routine meeting (a stand-up, a 1:1, or one tied to no initiative, prep or record) is grey. In a narrow dialog, such as on a phone, Week is a list of days and Day stays a timeline. In Month, press a day to open it. Press a meeting to open its meeting dialog; the calendar stays as a **Calendar** tab beside it, at the same view. An empty range says "No meetings in this week" (or day, or month), and a calendar that cannot be read says "Calendar not read" with the reason.
|
|
159
|
-
|
|
160
|
-
Press a meeting, from today or from another day, to open the meeting dialog. It shows the time, the people, and what the meeting is about. It also shows the notes (decisions, next steps and open questions), the material, and, when a recording was kept, its length and the key points. Each part appears only when a record holds it.
|
|
161
|
-
|
|
162
|
-
When the meeting is not linked, the dialog has a **Link it** press. You choose the portfolio, a board, an initiative or none. The press writes one calendar link, through a check that only a real press from this page can pass, so an agent session is refused. After the write, the page reads the week again. The **Material** part has **Add material** and a **Remove** on each row. Add material opens a sheet in the dialog with three ways to pick: **Suggested** (the documents of the meeting's initiative and the newest report cycles), **Find in PMOS** (type two letters or more) and **Paste a link** (an https address). A **For** choice says whether the material belongs to this meeting or to every meeting in the series. Before you press Add, the sheet says what it records: one line in PMOS's own record of the meeting. The calendar invite is never changed. After a write, the list is read again from the record. Remove names its scope and says the document itself is not changed. A few seconds of **Undo** put a removed item back.
|
|
163
|
-
|
|
164
|
-
In **Notes**, each next step has **Make task** when the note is linked to an initiative. It adds the step to the first stage of that initiative's breakdown, with its owner and due day when the step names them, and the status says where it went. **Undo** withdraws the task. A note with no initiative explains that it must be linked first, and writes nothing. Both writes need the page's launch nonce, so an agent session is refused. A refused write shows its reason and changes nothing on screen.
|
|
165
|
-
|
|
166
|
-
**Record.** A meeting of today that ended less than 10 minutes ago, or has not started, has a **Record** press in the dialog. Before the first press, the dialog says "Tell everyone first" and what the press does: it makes the meeting's note, or uses the one it has, and starts to listen to your microphone and the sound of the meeting. The audio and the notes stay on this machine. The console's own sheet asks where the meeting's sound comes from. It looks as it does in the console, in the premium colours. While it records, the dialog shows the clock, **Pause** and **Stop**. A paused meeting stays open for one hour and has **Resume**. **Stop** asks first, because a stopped meeting cannot be resumed, and offers **Pause instead**. A refusal shows the reason and changes nothing. What the dialog shows comes from the recorder and from the notes the server holds, not from the last press. Only one meeting records at a time. A row in Today or in the week shows **Recording** or **Paused** when its note is in that state.
|
|
167
|
-
|
|
168
|
-
**The Record control.** The Briefing's top bar has a round microphone. When a meeting of today has not ended more than 10 minutes ago, a press lists those meetings, each with its time and **Now**, **Recording** or **Paused**, and **New note**. With no such meeting, a press goes straight to a new note: an untitled note that listens to your microphone and the sound of the meeting. The first start on the page asks "Tell everyone first". The control hides while a note records, because only one note records at a time. The other premium pages have no Record control, because only the Briefing can hold the microphone.
|
|
169
|
-
|
|
170
|
-
**Live notes.** A started note opens its meeting's dialog (or a dialog of its own when it has no meeting) with a **Live notes** tab beside the detail. The tab reads the note every 3 seconds while it is shown: Recording with the clock, or Paused with the time it stays open until, and **Highlight**, **Pause** or **Resume**, and **Stop**. **Highlight** keeps the last 30 seconds and the next ones as a highlight, written from the transcript when the window closes, as the console does. **Stop** asks first. **Private** asks first, because it deletes the note's audio, transcript and screen shots now. **Your notes** is saved when you leave the box, through the console's save. The tab lists the highlights and the live transcript with who spoke, as the note holds them. **Focus** opens a **Focus** tab next to it when the note belongs to a calendar meeting.
|
|
171
|
-
|
|
172
|
-
**Focus tab.** Focus in a tab reads the meeting every 3 seconds while the tab is shown, and stops while it is hidden. It shows the bar of talk by topic, the topic now and its sentence, the topics, the counts captured so far, what is being said and the material. A PMOS deck in the material has **Present** (the console's presenter view, with speaker notes) and **Audience view** (a window with the slides only). Google Slides has **Present**, which opens it in present mode in a new tab. A link has **Open**. Other material only names itself.
|
|
173
|
-
|
|
174
|
-
**The recording chip.** While a note records or is paused, every premium page shows a chip at the bottom left with its name, **Open** and **Stop**. On the Briefing, while it records there, the chip has **Highlight**, **Pause**, **Focus**, **Open** (the Live notes tab) and **Stop**; a paused note has **Open**, **Resume** and **Stop**. The browser can capture audio only while the Briefing is open, because each premium page is its own page. If you leave the Briefing while it records, the browser asks first. If you leave anyway, the meeting is paused, so the record does not say "recording" for audio that nobody captures. The chip on the next page says "Paused", and **Open** takes you back to resume. A note that the server marks as recording, while the Briefing holds no recorder, shows "marked recording, but this page is not capturing audio".
|
|
175
|
-
|
|
176
|
-
**Focus.** The meeting dialog has **Focus** in its **More** menu. Focus shows the meeting as it is now: the state (starts in, recording, paused, ended), a bar of the stretches by topic, the topic now (or the first topic before the start), the last lines of the talk with who said them, the topics, the material and the counts of decisions, next steps and questions. It reads the meeting every 3 seconds while it is open and stops when you leave it. While the note records, PMOS's companion, a read-only Claude run that sends nothing, may read the last minutes of the talk at most every 40 seconds and writes its own notes. The dialog says this before the first read. **Change** lists the topics. A press records one correction on the meeting through the console's route. If the companion is off, has not answered or has failed, Focus says so and shows only the talk. It shows no topic, line or count that the record does not hold.
|
|
177
|
-
|
|
178
|
-
**Replay.** When a recording is kept, the Replay part has a **Replay** press. Replay opens wide and hides the conversation panel; **Back to the meeting** puts both back. The header shows the meeting's day, start and end, length, the number of people, and the position as m:ss and as the time of day. The player plays the note's audio, with Back 10 s and 1x, 1.5x or 2x. Under it is a bar of the stretches by topic and, above the bar, one marker for each decision, next step, question and PMOS note that has a time. A ring marks a point that needs you (a question still open, or a next step with no owner). A shaded part of the bar is a gap where the recording was off. The line under the bar shows the topic being talked about and the key points near the playhead. Below are two panels: **On screen**, with the screen shot kept for that time and a strip of all shots, and **Conversation**, with the transcript and PMOS's notes. The Conversation panel is as tall as the On screen panel, and its list scrolls. Each line is shown in full, however long it is. Its tabs show all lines, only the key-point lines or only PMOS's notes, and a search box narrows the lines. The key points sit in three columns: decisions, questions and next steps. **Confirm all** makes a task of each next step in the note's initiative, under its first stage; when the note has no initiative, it says to link one first. A press on a marker, stretch, key point, line or shot plays from there, and the current line is marked. A key point with no time has no play press. If no audio was kept, the playhead keeps its own clock.
|
|
179
|
-
|
|
180
|
-
In the **Add material** sheet, a **Topic** choice ties the item to one of the meeting's topics, so Focus can bring it up. It appears only when the meeting has topics.
|
|
181
|
-
|
|
182
|
-
**Notes.** The Calendar card's ⋯ menu has **Notes**, with **Filter sources** and **Full calendar**; the header itself shows only ⋯ and the fold. On a phone the header has no room, so **Notes** sits under the day; show the card first if it is hidden. It opens the dialog with every meeting note in the detail pane, as the console's Calendar › Notes lists them. The notes are grouped by what each one is about: Portfolio, each board in the portfolio's order, Initiatives, then Not linked. A row shows the meeting's day and time, its length, its initiative or a "board" tag, "no meeting" when the note has no meeting, "recording" or "paused", and a count when statements differ from a file. The notes of one meeting series are one row with the number of meetings and how many next steps are still open. The chevron folds it open to its newest three notes, each with the first line of its summary. Type in the search field to filter by title, meeting, initiative or summary at once. After a moment PMOS also searches what was said, the decisions and the transcripts, and adds the notes it finds. A private note is found by its title only.
|
|
183
|
-
|
|
184
|
-
Press a note to open it as a tab beside the list, with **Before**, **During** and **After** as the meeting dialog has. Press a series to open its newest note, then page through the series with the arrows. The tab's head shows the note's meeting and what it is about. **Change** (or **Choose what it is about**) lists the Portfolio, each board and its initiatives; **Save** writes the note's link, as the console's picker does, and the note moves into its group. Linking a note to another calendar event stays in the console. Make task writes the next step to the note's initiative, as in the meeting dialog.
|
|
185
|
-
|
|
186
|
-
Not built in premium: translation, Present and the slides stage, Ask PMOS quietly, Park and Add topic, the phone companion and the Meet extension view. The console keeps them.
|
|
187
|
-
|
|
188
|
-
## Around you
|
|
189
|
-
|
|
190
|
-
Under Today, the **Around you** card holds what the agents and the outside world have left for you. It has six rows. A row opens a dialog and states what it found in one line. The caption says how many rows wait on you, or "quiet". If a source cannot be read, its row says so and gives the reason. It never reads as empty.
|
|
191
|
-
|
|
192
|
-
- **Agent proposals.** Every open draft of the Initiative Driver, for initiatives and for Work items, when the agent mode for that kind is Approve. Each draft is one card: what it is, its target, and the draft in two lines, with **Read more** for the why and the sources. Press a card to choose it. The bar at the bottom acts on the chosen card. **Keep** is the main press, and **Send back** and **Drop** sit next to it. The notes about undo and the agent mode are behind the ⓘ line. **Keep** records that you accept it and applies it (a problem statement, a stage move, a next step). **Send back** needs a note and starts a new run. **Drop** counts as a correction. None of the three can be undone. A decided proposal stays in the list and says what was recorded.
|
|
193
|
-
- **Mentions.** The people who named you in Slack, Jira, Confluence or mail, from today's morning brief. (Home's own Mentions row keeps every unanswered ask and the last 7 days: see [Home](home.md).) The row names who waits on a reply. **Make it a task** adds one Work item. **Mark read** hides the mention, and **Mark unread** brings it back. **Open in Slack** (or Jira, Confluence, mail) opens the original in a new tab. Nothing here replies, reacts or posts. The Mentions dialog has its own chat, like every popup.
|
|
194
|
-
- **Portfolio pulse.** How many initiatives are late or at risk, by the Calendar's own status: the promised date against the forecast, or the Jira read. It is read only and it is not a forecast of its own. **Open the initiative** goes to its page.
|
|
195
|
-
- **Horizon scan.** When the scan last ran, when it runs next, its reports and their proposals. Each proposal says what **Approve** does before you press it. **Dismiss** asks for a reason and counts as a correction, and **Undo** takes a dismissal back. **Scan now** starts an agent that reads the public web and the repository, and says how many manual scans are left. The row on the card says it too, before you open the dialog. A scan that is switched off says so and the button stays off.
|
|
196
|
-
- **Report found.** What the report finder found in your calendar, Slack and the subjects of mail you sent: each finding with its name, why, its evidence lines and how sure it is (Likely or Not sure). **Set up** creates the recurring report and drafts its first cycle on this machine. **Not a report** tells the finder not to raise it again. PMOS drafts only and nothing is sent. **Change first** and the finder settings stay in Insights and the console. A finder that is off says so.
|
|
197
|
-
- **Data freshness.** When each source was last read and its schedule. **Refresh** reads one source again. **Refresh all** reads every source except the repository. A source outside the machine is read by a skill, in an agent session, with your own connection. The page never says "up to date".
|
|
198
|
-
|
|
199
|
-
With one product picked, the dialogs show its data. With several, each product's part has its own heading, and the counts are not added across products. The agent mode, the scan's watch list and setting and the report documents stay in the console.
|
|
200
|
-
|
|
201
|
-
## The phone card
|
|
202
|
-
|
|
203
|
-
On a phone (640 pixels wide or narrower) the Briefing opens with one card above "What you need to do". It says what the day is doing now, and it changes with the clock. It has eight moments: a meeting under way, a meeting about to start, a meeting that just ended, a free stretch, the morning, working hours, the evening recap and the night. The card is chosen again every minute and when you return to the page. On a wider screen the card does not show, and the page does not read the day for it.
|
|
204
|
-
|
|
205
|
-
- **Open the meeting** opens the same dialog as a row in Today. If the calendar PMOS holds does not list the meeting, the card says so and opens nothing.
|
|
206
|
-
- **Done** marks one of your own items as done, and shows **Undo** on the same line. A refused press shows the reason. The card never says "Done" when the record was not written.
|
|
207
|
-
- The card does not ask to record a meeting, and it does not say that notes exist unless the meeting holds them. If a read fails, the card names it.
|
|
208
|
-
|
|
209
|
-
## The dock
|
|
210
|
-
|
|
211
|
-
When you scroll past the hero, the hero folds into a bar at the top. The bar shows how many rows need you and the next item in Today.
|
|
212
|
-
|
|
213
|
-
## What a dialog holds
|
|
214
|
-
|
|
215
|
-
A row or a Today item opens a dialog with the same parts every time. At the top is a short log of what PMOS read, for example the kill-condition file and `pm-decisions.md`. Under it is one plain sentence. Then one card holds the evidence and, for a decision, the options. The record sits on the right, without the title again, because the top of the dialog already shows it: a draft `pm-decisions.md` entry for a decision, the initiative record for blocked work, the commit for a merge.
|
|
216
|
-
|
|
217
|
-
The right side can hold more than one item. When the dialog opens a related item there, such as a document, a meeting or a ticket, the item opens as a tab beside the dialog's own detail. The first tab is always the dialog's own detail. You can have up to four more tabs; a fifth closes the oldest. Click a tab or use the arrow keys to move between them. Use the **×** on a tab, or press Delete, to close it. The tabs close when the dialog closes. With no extra item, there are no tabs.
|
|
218
|
-
|
|
219
|
-
**An initiative or a task as a tab.** On the Board (with initiatives set to open as a popup), an initiative's dialog has **Open the full record**. On the initiative page, the initiative's own dialog has the same press, and a task's dialog has **Open the initiative**. The initiative opens as a tab with its record (lane, stage, anchor, status, owner, planned finish, progress), the next step, the checks with their evidence, its tasks and its links (the record files and the documents that have a file). Press a task to open it as its own tab: type, reference, source, owner, start, due date and status, with a link back to its initiative. The tabs read what the initiative page reads and change nothing. While the board is still reading, the tab says so; if the read fails, the tab says what failed.
|
|
220
|
-
|
|
221
|
-
### The document page
|
|
222
|
-
|
|
223
|
-
Every markdown document opens as one page in a tab: a PRD, a new document or any other `.md` file. On a document sheet, click **Open as a page**. A report is edited in its own dialog instead (see **Report files** under Insights).
|
|
224
|
-
|
|
225
|
-
- **Page** shows the document as it reads. **Edit** lets you type on the page itself, with a toolbar, a **/** menu for blocks, and Ctrl+S to save. **Markdown** shows the source text. Only the sections you changed are written; the other sections and the front matter keep their exact text. A line that is only an HTML comment, such as `<!-- pmos:note … -->` or `<!-- pmos:slide … -->`, is not shown on the page, and a save writes it back as it was.
|
|
226
|
-
- When the agent proposes an edit, the page shows it applied and highlighted. Click a highlight to see the old text, and click **Put it back** to restore it. The bar above the page has **Keep as vN**, which keeps the changes that remain, and **Undo all**, which asks first and then rejects the whole edit.
|
|
227
|
-
- **Health**, **Links** and **Copies** under the toolbar show the document's checks, the documents it links to, and its linked copies. The checks only read the file.
|
|
228
|
-
- **The page follows the file.** When a chat changes the document, the page shows the new text within a few seconds. You do not refresh the page, and the chat does not need to commit. A document of an initiative is read from that initiative's own folder (its git worktree) when its chat works there. If you are editing and have not saved, your edit stays: the page says the file changed, and **Cancel** shows the new text. A report and a document opened from the Board follow the file in the same way.
|
|
229
|
-
|
|
230
|
-
### Confluence pages and Google Docs
|
|
231
|
-
|
|
232
|
-
A Confluence page or Google Doc opens as a tab too. From a document's **Copies**, press **Preview** on a copy. If the last check found the same text in both, the PMOS file is shown as the page, with **Same as PMOS** and the check time. If the copy changed, the tab says so and shows the PMOS version dimmed. **Use the … version** writes the copy's text into the PMOS file after five seconds; press **Undo** to stop it. From a meeting's **Material**, press the page icon on a Google Doc or Confluence link. PMOS holds only the address of such a page, so the tab says so. **Read it now** starts one session that reads the page with your connector and keeps the text in PMOS; it changes nothing in Google Docs or Confluence. The tab then shows the text with when it was read. Press **Read again** for later edits.
|
|
233
|
-
|
|
234
|
-
A table in any Markdown page (a document, a copy's text, a chat answer) shows as a table. This includes a table exported from Google Docs whose first row is empty and whose header is on the next row: that row becomes the header. Each column keeps its alignment, and cells keep their bold, code and links. A wide table keeps short cells on one line and scrolls sideways, and its first column stays in view.
|
|
235
|
-
|
|
236
|
-
A decision opens with no option chosen, because no recommendation is on record. Its card shows the evidence as label and value rows, the options, and one **Why** field. One bar at the bottom holds a quiet **Later ▾** and the only main button, named after your choice (for example **Record: Extend the date**). Choose one and the draft entry on the right changes. Nothing is written. The main button, "Not yet" and "Return this run to the agent" are off in this version, and each says why.
|
|
237
|
-
|
|
238
|
-
## The conversation
|
|
239
|
-
|
|
240
|
-
The conversation panel in a dialog is off in this version. It arrives in the next one.
|
|
241
|
-
|
|
242
|
-
## What the buttons record
|
|
243
|
-
|
|
244
|
-
Each button writes one record, through a check that only a real press from this page can pass. An agent session is refused. If a write is refused, nothing changes and the dialog shows the reason and keeps what you typed.
|
|
245
|
-
|
|
246
|
-
| Button | What it writes | Where |
|
|
247
|
-
|---|---|---|
|
|
248
|
-
| Record: promote, iterate or kill (a prototype) | A dated entry with the choice and your reason | `pm-decisions.md`, appended |
|
|
249
|
-
| Record: reshape, extend or retire (a missed tripwire) | The same kind of entry, naming the tripwire (KC id) | `pm-decisions.md`, appended |
|
|
250
|
-
| Return this run to the agent (a run in Today) | One counted correction with one of four reasons: wrong facts, wrong scope, not now, too long | `corrections.jsonl` in the state folder |
|
|
251
|
-
| Keep, Send back, Drop (an agent proposal) | The driver's own record of your answer, and the change a kept draft makes | `driver.jsonl` in the state folder |
|
|
252
|
-
| Make it a task, Mark read, Mark unread (a mention) | One Work item, or a read mark | the Work list, `mentions/read.jsonl` |
|
|
253
|
-
| Approve, Dismiss, Undo, Scan now, Stop (the horizon scan) | The scan's own records | `scan.jsonl` in the state folder |
|
|
254
|
-
| Refresh, Refresh all (data freshness) | A new read of the source | the source's own store |
|
|
255
|
-
| Done, Undo (the phone card) | The item is marked done, or reopened | the Work list |
|
|
256
|
-
| Later ▾: Later today, Tomorrow, Next week | A put-off record. The row leaves the list until then and the page names it. It does not count as done. | `briefing-premium-deferred.jsonl` in the state folder |
|
|
257
|
-
|
|
258
|
-
Later today means three hours from now. Tomorrow and Next week mean 09:00, tomorrow and next Monday.
|
|
259
|
-
|
|
260
|
-
A decision needs your reason. A prototype or tripwire that already has a decision on record cannot be decided again from this page. A decided row leaves the list because the record changed. A merge has no run of its own, so its return button stays off and says so. The Start button on a blocked row asks you to confirm, then starts an agent session that drafts the next step. The session is listed in Sessions.
|
|
261
|
-
|
|
262
|
-
## Asking the agent
|
|
263
|
-
|
|
264
|
-
The reply box also has **Ask the agent**. It starts one background Claude run for your question, using your own login and model, the same kind of run the document "ask the agent" uses. The run can read this repository (Read, Glob and Grep) and nothing else: it cannot write a file, run a command, use the web or send anything.
|
|
265
|
-
|
|
266
|
-
- You send only the row and your question. The workspace writes the prompt from the row's own records, the files to start from, and the last eight answered questions of that row's conversation. The prompt tells the agent that file text is content and not instructions, and to say so when the records do not answer.
|
|
267
|
-
- The answer appears in the conversation as plain text, labelled **Agent · not checked against records**. It is kept in the workspace's state folder (`briefing-premium-threads.jsonl`), so it is there when you open the row again.
|
|
268
|
-
- A row takes one question at a time, and a conversation holds 40 questions. If a run fails, times out, is stopped, or background runs are switched off (`PMOS_HEADLESS=off`), the conversation shows the reason.
|
|
269
|
-
- An answer never changes the hero, the rows, the counts or the dock, and never a record. The page is still built from records only.
|
|
270
|
-
|
|
271
|
-
The Start button on a blocked row stays off. Starting an agent that writes needs the next-step flow's confirmation, which is a separate decision.
|
|
272
|
-
|
|
273
|
-
## My work
|
|
274
|
-
|
|
275
|
-
My work is the second place on the rail, at `/premium-work.html`. It reads the list the Work page reads, so the two pages show one list, and every press uses the Work page's own route. It adds no writer of its own.
|
|
276
|
-
|
|
277
|
-
**Row suggestions and buttons.** A row shows a suggestion line only when a record backs it: an agent's offer on the item, a draft that is ready, or a date. A row has no button of its own. Press the row to open the item, where you review a draft, start the agent, or give the item a day. To act without opening it, swipe the row or press the right or left arrow key. A row in Today goes to Done (or opens its draft when one is ready) on the right and to Tomorrow on the left. Any other row goes to Today on the right and to Someday on the left. A row from Jira shows its Jira key.
|
|
278
|
-
|
|
279
|
-
**Weekly review.** A card lists five steps: sort the inbox, place what you added, check who owes you, review agent drafts, and look at what sat untouched. Each step shows a count from your list and opens its first item. **Start the review** opens the first step that has something. On a Friday the card reads Friday review. PMOS keeps no review schedule and no timing, so the card shows none. Answers, ideas and reports an agent files by itself are not shown, because PMOS holds no records for them.
|
|
280
|
-
|
|
281
|
-
**Decide.** An inbox row shows a **Decide** button that opens the item, where you give it a day, put it in Someday or drop it.
|
|
282
|
-
|
|
283
|
-
**Work queue.** One full-width card holds everything you sort, as tabs: **Today** and **Inbox** in the row, and **Upcoming**, **Someday**, **Kept** and **Done** under **More**. Each tab shows its count, and the card opens on Today (or on the first tab that has something). A tab you pick under More takes its place in the row while it is chosen. Rows sit in two columns, one column on a narrow screen. The left and right arrow keys move between tabs. **Inbox** shows what is new from Jira and Slack first, then what you added. **Kept** gathers items you pressed Keep on, and **Done** shows what you added and marked done in the last 7 days. An item shows in one place tab only. Kept is a mark on an item, not a place, so a kept item also shows where it was placed. The card replaces the earlier On your plate, With agents and tray cards.
|
|
284
|
-
|
|
285
|
-
**The item dialog.** The conversation gets the whole body. Two controls sit beside the Detail / Conversation switch, on both tabs: **Edit ▾** and **Done**. On a wide screen the row also shows where the item is. **Edit ▾** opens a sheet with one labelled field for each choice. Each field shows its value from the record and opens when you press it: **When** (Today, Later today, Tomorrow, Next week, Not before a date, Someday), **Waiting on**, **Who does it** (the steps) and **Priority · Due** (the edit panel). **Keep it** and **Drop it** are at the bottom of the sheet. The sheet closes when you press Edit again, press outside it, or press Escape. **Waiting on** is not shown when the item cannot wait and waits on nobody. An agent that only can draft is a field in the sheet. An agent that is working, has a draft, or stopped stays in the conversation, because it needs you. Every action stays reachable.
|
|
286
|
-
|
|
287
|
-
**Where an item came from.** An item from the morning brief opens on its source. Claude's first line says why it is here now and what was asked, for example "Claudia Loo asks: Can the form text hold images?". The right side shows who asked and where, their messages or words, the sources the brief read, and **Open in Slack** (or Jira, mail, and so on) when the brief kept a link. The title is not drawn there again. The item's own fields (place, due date, who asked) are behind **Details**. All of this is what the brief stored when it was written: opening the item reads nothing new. An item you added yourself still shows its fields.
|
|
10
|
+
The premium Briefing page is now Home. [Home](home.md) describes it. This page keeps the part of it that still works from a terminal: Claude's leads.
|
|
288
11
|
|
|
289
12
|
**Claude's lead in a popup.** A popup such as a task, a document, a report or a measure opens on Claude's short lead, written ahead of time: why the thing matters now, what is asked or blocking, and what to do. Under it is when the lead was written and what Claude read for it. Opening a popup starts nothing: the lead is read from what is stored. **Refresh** asks the popup's own Claude Code session to write the lead again from the stored reads, and the new lead replaces the old one. A popup with no lead yet says so and offers **Write the lead**. An agent session saves a lead with `pmos lead put --key <popup key> --text "<lead>" --cite "<what it read, when>"`, and `pmos lead show [<key>]` prints what is stored. `pmos lead` calls no tool.
|
|
290
13
|
|
|
291
|
-
**Leads written after each refresh.** PMOS keeps a short list of the popups you opened in the last 14 days, with what each one showed. Forms such as Add a task and Settings are left out. Opening a popup only adds it to that list and starts nothing. When a read of your tools ends well, and once no other read is going, one **Popup leads** session writes the lead of each popup on the list whose lead is missing or older than the newest stored read, at most 12. Refresh all runs it after the reads
|
|
292
|
-
|
|
293
|
-
**A Jira ticket's header and description.** The header shows the key and the ticket's title, for example "MSD-4329 Try out the different options". The description is PMOS's copy, from the initiative's ticket draft, so it says **PMOS's copy, Jira may differ**. PMOS does not read the description in Jira. Status and the other facts come from the Jira read.
|
|
294
|
-
|
|
295
|
-
**A Jira ticket PMOS has not read.** A task's Jira tab first looks in the initiative's ticket draft and the sprint reads. When neither holds the ticket, it shows the newest Jira check that read it, or else what the stored Jira read says about it, and names which one. When nothing stored holds it, the tab says **Not read yet**, gives the time of the last Jira read, and offers **Read it now**. Read it now asks the popup's own Claude session to read that one ticket with your Atlassian connection, read only, and to save the popup's lead. Nothing reads Jira when the tab opens.
|
|
296
|
-
|
|
297
|
-
**A Board measure popup.** On Insights, a measure's popup first says what the numbers are: this week's value, the change from last week, and the target. For Merged a week it also says when the trunk was last fetched, and the details list it as **Trunk read**. When the last two weeks are 0 after a busy week, it says that is a quiet trunk or an old fetch, and gives the fetch time, so you can tell which. PMOS does not fetch when the popup opens.
|
|
298
|
-
|
|
299
|
-
**A document with no file of its own.** Some initiative documents, such as the Problem statement or Research notes, have no file. When the initiative's PRD has a section that covers one, its popup shows that section first, under **From the PRD**, with the PRD's path. A long section is cut short, and the PRD has the rest. The first line names the section. When no section matches, the popup says what the document is for and who writes it.
|
|
300
|
-
|
|
301
|
-
**The agent's draft.** The draft shows as formatted text in the detail panel on the right, labelled as the agent's and not checked, with **Open** and **Copy**. Its heading names the item ("Draft for IDPF-2989", or "Draft for you"), the round and the time of the latest round, and an approved step shows as "Step when you approve". A long draft is cut short, with **Show all**. It appears there as soon as the agent finishes, even while the dialog is open. The left column keeps the conversation (with **View round**) and the decision cards, in the console's words: **Post it to Jira** (marked outward, with exactly the text that goes), **Edit the draft**, **Keep it as a draft** and **Mark it done**. Post asks you to confirm the exact text first, and nothing is posted before that.
|
|
302
|
-
|
|
303
|
-
**An agent's offer.** When an agent has offered to draft an item, the dialog shows three choices: let the agent draft it (suggested), do it today, or not before next Monday. You pick one and press its button. A row with steps says how many it has and how many an agent can do. PMOS does not record that a step is done, so it shows no "done" count.
|
|
304
|
-
|
|
305
|
-
- **The hero** is built from counts of your list: new in the inbox, overdue, due today, people who owe you something (and the longest wait), agent drafts to review, and items untouched for seven days. A clause with no record is left out.
|
|
306
|
-
- **One count.** "To clear" is the inbox, plus today, plus agent drafts to review. The hero, the card and the dock use it.
|
|
307
|
-
- **Add** takes one line, read by the Work page's own parser (`Reply to Rina about SSO by Friday !p1`). A new item with no date waits in the **Inbox** tab, under Added by you. The card opens on that tab and the item's dialog opens at once, so you can place it. An item with a date goes where its date says.
|
|
308
|
-
- **What you added** and have not placed is not counted to clear until you place it (Do today, Later, Not yet, Waiting, Done or Drop).
|
|
309
|
-
- **The Work queue's place tabs** are Today, Inbox, Upcoming and Someday. A row shows where it came from (Yours, Jira, Slack, Board) and a due chip only when a date was set. The round check marks it done, with Undo for a few seconds. "Do this first" appears only on an overdue item.
|
|
310
|
-
- **Agent state on a row.** There is no Agents tab. An item that an agent works on stays in the tab where it waits, and a chip on its row shows the agent's state: **Draft ready**, **Agent working** or **Agent stopped**. A draft that is ready and a run that stopped also wait in the bell (top right), so you see them even when the item is in Someday. A press in the bell opens that item on My work. A draft is labelled "Agent draft, not checked" and is never counted as done. The agent itself is started, stopped, edited, sent back or approved in the item's dialog (see below).
|
|
311
|
-
- **Waiting on others** lists who you wait for and for how long. There is no nudge.
|
|
312
|
-
- **An item's dialog** offers Done, Drop (with Undo), and Keep for an item untouched for seven days, in the bar at the bottom. Its fields hold the rest, each through the Work page's own route:
|
|
313
|
-
- **When** shows where the item is (Today, Inbox, Upcoming, Waiting, Someday, or Not before a day). It offers Today, Not yet (later today, tomorrow, next week), Not before a date and Someday.
|
|
314
|
-
- **Waiting on** shows who you wait on, or Nobody. Type a name and press **Wait for them**.
|
|
315
|
-
- **Priority · Due** opens the edit panel. It changes the title, due day, priority, who you wait on and the job. A title that Jira, the breakdown or the morning brief owns is read-only, and the panel says so. Only the fields you changed are saved, and Undo writes the old values back.
|
|
316
|
-
- **Who does it** names who does the steps and how many there are. It lists the item's steps. Each step is done by You, the Agent drafts it, or the Agent does it. A step that sends something to a person is only ever drafted by the agent, and the page says when it set that for you. **Add** adds a step.
|
|
317
|
-
- **Not before a date** (in When) hides the item until a day: Tomorrow, Monday, In a week, or a date you pick. **Clear the date** brings it back.
|
|
318
|
-
- **Someday** (in When) sends the item to Someday. On an item already there, **Bring back from Someday** brings it back.
|
|
319
|
-
- **The agent on an item** appears at the top of the dialog when the item has one. A *suggestion* is a field, **The agent**, that opens to show what the agent will do (you can change the words) and **Let the agent draft this**. A *queued or working* agent shows its state and **Stop**. A *ready* draft is labelled the agent's and unchecked. **Post it to Jira** (or Slack, email and so on, from where the item came) first asks, names the place, shows exactly the text and posts nothing until you press **Post it now**. **Edit the draft** lets you change the text, and the post sends your text. **Send it back with a note** needs a note. **Mark it done** posts nothing. A failed run says why and offers **Try again** and **Stop**. An item you added has no place to post to, so it has no Post.
|
|
320
|
-
- **Focus** is a chip in the Work queue's head that says how many things PMOS suggests for today (at most three), grouped by the job they serve. The rows of the first suggestion carry a quiet "Suggested focus" tag. Press **Focus** to see them with Accept, Not today and Clear, and your jobs with their open counts, and **Add a job** takes one line (`when …, I want …, so …`). An accepted group tags its Today rows with Focus. The hint under the add line shows while you type there. On a phone, a row's agent hint is a ✦ at the row's end; the row's dialog has the full hint. Focus starts empty each day. Editing and deleting a job stay in the console.
|
|
321
|
-
- **Keys and swipe** work on the rows of the Work queue. J and K move between rows. The right arrow, or a drag to the right past 90 px, does Done on a Today row and In Today elsewhere; the left arrow, or a drag to the left, does Tomorrow on a Today row and Someday elsewhere. A Today row whose draft is ready offers Review on the right. A row in Waiting has none. Each one offers Undo, and under reduced motion the row does not slide.
|
|
322
|
-
|
|
323
|
-
Not drawn, because no record backs them: answers and ideas an agent files by itself, "fold the laundry", the "Next day" demo control, shelf life and "composts soon", the week bars and the capacity figure, and the mockup's suggested place on an inbox item.
|
|
324
|
-
|
|
325
|
-
## Board
|
|
326
|
-
|
|
327
|
-
Board is the fourth place on the rail, after Chat, at `/premium-board.html`. It reads what the production Initiatives page reads, for one board at a time, and shows a switcher only when more than one board is registered. The first time it takes a few seconds, because the routes derive every initiative. The page says "Reading the board" with the seconds, shows nothing in place of a guess, and asks again.
|
|
328
|
-
|
|
329
|
-
- **The header** counts the board's open initiatives: how many are on track, at risk, late and on hold, with a bar. A zero is shown.
|
|
330
|
-
- **The top bar** has two tabs, **Initiatives** and **Shared**. The Board has no Documents tab: open an initiative's **Documents** fold, or use Search's **Documents** filter. On the Timeline, one chip shows the span (Sprint, Quarter, Half, Year, 2 yr or 5 yr); press it to pick another. One pill shows what needs a look: a dot and a number for new asks, late, at risk, blocked and idle. A count of zero is not shown, and the pill is not shown when all counts are zero. Press the pill to see the rows. Press a row to open the asks or that count's trend, where **Show only** filters the Board; press a row that filters to stop the filter. On the Timeline, the **(i)** icon shows what the bars mean. Jira is Adler's small face at the end of the row. It has an amber dot when Jira was not read in the last day and a half. Hold the pointer on it to see when Jira was read, and press it to read Jira again.
|
|
331
|
-
- **The view chip** in the Initiatives head says which view is shown (List, By stage or Timeline); press it to pick another.
|
|
332
|
-
- **List** shows the late and at-risk initiatives first, then the board's now view, up to 100 loaded and 25 on screen at a time. A row shows the owner and lane, a status chip when it is not on track, how far through the workflow it is (and "derived" when the workflow engine placed it), a progress bar only when a record holds progress, and the planned finish only when an end date was set ("Not planned" otherwise). "Do this first" appears only when the first row is late.
|
|
333
|
-
- **By stage** has one column for each stage of the board's workflow with the board's own count and its first five initiatives.
|
|
334
|
-
- **List** and **Timeline** show ten tasks a page with Previous and Next; **By stage** shows six cards a column with Show more. **Timeline** draws a bar for each initiative that has dates, with the days left or over, and counts the rest. A bar runs from the earliest start to the latest due date of the initiative's breakdown items and its tasks. Every stage shows, Monitor and Evaluate too. The ◇ at the end of a bar names a dated milestone task of the initiative. When the initiative has no dated milestone task, the ◇ names the ◆ stage of the initiative's own workflow: on Product feature that is Deliver, or Evaluate after Deliver. When the workflow has no ◆ stage, the bar ends with no ◇ and no label. A bar never shows Deliver for a workflow that has no Deliver stage, and never shows Deliver next to a named milestone. Under a program, every initiative of the program has a row; one with no dates says **No dates** beside today. A product whose initiatives all have no dates keeps its row too, with each initiative saying **No dates**, so the product is never missing from the Board. In each group the rows run by start date, then end date, and the ones with no dates come last; the status dot still marks a late or at-risk initiative. With no dates on record it says so and draws nothing. A gap in the plan that overlaps a hold still leaves out the days outside the hold, also when the hold has no return date.
|
|
335
|
-
- **Sprint** appears when an agent session has read Jira for the board. Otherwise it says there is none. Press it to open the sprint's facts, with the sprint as a board in a second tab: **To do**, **In progress** and **Done** columns from the last Jira read, with the dates, the days left and the points. The sprint goal is the one the Jira status check writes from the sprint's tickets, as on the console's Sprints tab, with its summary; Jira's own goal shows under it only as a reference (**In Jira: "…"**). Until the check has written one, the tab says **No goal yet**. The active and next sprints are buttons at the top. The closed sprints are behind **Past sprints**, which is shut until you press it. Press any card to open its ticket in another tab. A ticket that is on no initiative of this board shows what the sprint read holds (title, status, points and its Jira link). The board is read only: Jira owns each ticket's status and sprint, so you move tickets in Jira. Tickets with no sprint are not in this read. **Coming up** shows the next release, from the releases ledger.
|
|
336
|
-
- **Open the backlog** is in the Sprint dialog and on its sprint tab. It opens the board's Jira backlog in a tab beside the dialog: the open sprints (active, then next) and then **Backlog**, the tickets in no sprint and not done. A row shows the key, title, status, points and initiative, and why a blocked ticket is blocked. **All**, **Blocked** and **Bugs** filter it (Bugs appears only when the Jira read holds the issue type). A row opens its ticket. The list holds only the tickets the board's initiatives pushed to Jira or hold under their epics, in key order: the Jira read has no rank, assignee or capacity. You move and rank tickets in Jira. With no Jira read, the tab says so.
|
|
337
|
-
- **Next release** shows the next release that carries an initiative of this board, the one planned after it, and the three latest past releases (**Released** when accepted, else **Past**). It reads the release records (`releases/releases.jsonl`, written from the console's Releases view); Jira fix versions alone do not make a release. With no release planned it says so and still lists the past ones. With none at all it says "No release is on record for this board, past or planned."
|
|
338
|
-
- **Metrics** appears above the Initiatives card on the board of any workspace except the home one (PMOS itself), and counts from that workspace's own repository. It counts by week only, so its period shows as one **Week** chip. A tile still being read says Reading; open it to see why. It has four tiles. **Corrections per 100 runs** is the corrections logged on the week's runs in `planning/runs/agent-runs.jsonl`; a week with fewer than 10 runs is left blank. **Merged a week** counts the commits on the first-parent line of the trunk. **Blocked** and **Idle for a month** come from the workflow engine, which keeps no history. From the first day the card is read, PMOS keeps their counts once a day in the workspace's state folder (`board-metric-history.jsonl`), so their charts start on that day and their caption says **history starts today** (later, the date). Earlier weeks read **Not kept yet**. Move over a chart, or use the arrow keys, to read a week. A tile that cannot be counted says **Not read** and why; a repository with no run log says **No runs yet**. The line above the tiles starts with how many tiles need a look, and those tiles have a **Needs a look** chip and an orange outline. The line ends with **open Insights**, which opens the same board's Insights page. Press a tile for its definition and values, with the read-only agent beside it. A target is set on Insights, not here. A measure with a target shows it under the value, draws it as a dashed line, and carries **On target** or its gap (for example **2 short**); off target, it also has the orange outline. A measure without a target draws no line. Day and Month are off. It was tested only on made-up repositories, not on a real IDPF or microsite repository.
|
|
339
|
-
- **The top bar** names the page and the board. With more than one board a menu switches between them, and **Chat** in the rail opens the Chat page on the board's conversation.
|
|
340
|
-
- **Core documents** lists the board's documents with their state, cadence and writer, a summary (drafts to review, not started, up to date), a progress bar, a filter and a search. A document with a file opens in the dialog, read only, with its path and state; a draft there has **Issue it**, which marks it issued through the console's own route and sends nothing, and **Draft it again**, which starts a new draft that replaces this one (a board draft has no Edit tab). **Draft it** starts the existing read-only run that writes a draft and sends nothing; **Draft the N not started** does that for each document that can be drafted. **Open** stays on premium pages: the backlog goes to this page's initiatives, new asks to its New asks card, releases to the release dialog, a Horizon scan to the Briefing's Horizon scan, and **Set it up** for a report to Insights. **Add a document** opens a form (title, who writes it, where it lives) and saves a document the core set does not cover on the board's record, in `custom-docs.jsonl`. A document with no link reads "Not started". A document with a link to Confluence or Google Docs reads "Linked" and shows its address. PMOS does not read or sync the linked page, so a linked document is never counted as up to date. Issue and Drop are not on this page.
|
|
341
|
-
- **Opening an initiative.** A click on an initiative opens its page (see "Initiative page"). **Open initiatives** (Page or Popup) in the ⋯ menu changes that: Popup opens the initiative's dialog instead, which shows its record as a grid and the path of its file, with the read-only agent beside it. The choice is kept in this browser. The dialog holds no press.
|
|
342
|
-
- **New asks** sits at the top of the right column on a team board. Each ask shows where it came from and the drafted title, lane and anchor. **Accept** makes it an initiative in the first stage, through the console's accept route; **Decline** asks for a reason first. The card says when nothing is left to triage.
|
|
343
|
-
- **New initiative** (beside the Initiatives heading, team boards only) asks for a title, a lane and an anchor (a KR or a health budget). It writes an ask and accepts it, as the console does. An unanchored initiative is refused on the page.
|
|
344
|
-
- **The stage chip** on an initiative's stage card (and the bar under an initiative page's heading) moves it to the next or another stage, puts it on hold with a reason and a check-back day, marks it Won't do with a reason, or archives it. **⋯** holds the short menu, with **Delete** last (see the Home guide). Each press writes one line through the console's route, says what it recorded, and offers Undo for a few seconds. An on-hold row offers Resume; a cancelled one offers Reopen; an archived one offers Restore. Cancelled and archived initiatives leave the list and sit under a fold below it. On the PMOS board the workflow engine places each initiative, so the moves are not offered and New asks and New initiative are hidden.
|
|
345
|
-
|
|
346
|
-
Not drawn, because PMOS holds no record for them: the mockup's demo measures (Activation, Partner uptime, API p95), targets, and the mockup's demo boards.
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
## Initiative page
|
|
350
|
-
|
|
351
|
-
The initiative page is at `/premium-initiative.html?id=<initiative>`. A click on a Board initiative opens it. The round back button at the top leads back to the Board. Like the Board it reads the records of the production Initiatives sheet, and the first read takes a few seconds, because the routes derive every initiative. Until they have, the page says so and shows nothing.
|
|
352
|
-
|
|
353
|
-
- **The top bar** has a back button to the board, then the initiative's name with a menu of the board's initiatives. **Chat** in the rail opens the Chat page on the initiative's conversation.
|
|
354
|
-
- Long file names in the evidence of a check wrap inside the card instead of running past its edge.
|
|
355
|
-
- **The header** shows a status chip, the owner and the planned finish. Each appears only when a record holds it. Under it, the stage strip shows how far through the board's workflow the initiative is.
|
|
356
|
-
- **Overview** shows the description (the part of the record's title after " — "), then the next step with its reason, its action and what happens if you wait, as the workflow engine states them, and who it waits on. **PMOS can help** offers up to three presses that do something real: a draft of the first core document not started (the existing read-only run) and a question for the read-only agent. The health reasons and the board's warnings are shown as written.
|
|
357
|
-
- **Overview** is one full-width card, as in the mockup; there is no separate Checks card. A blocked step shows as a note, and "All N workflow steps" lists every step of the engine with the evidence each states.
|
|
358
|
-
- **Tasks** lists the PRD requirements and the board's tracker items for this initiative. The repository records no result for each requirement, so a requirement says "No result" and is never drawn as done or open. **By stage** groups them by state. **Timeline** draws a bar for each task that has both a start and a due date, and lists the rest. Press a task to read its record; every Core documents row opens too: a document with no file shows what it is for, who writes it and what a draft will contain, with Draft it where a draft can run; for a PMOS task you can change its status. **Add a task** writes a PMOS task to the board's own record; with no dates the board plans it from tomorrow for a week. Jira tickets stay read-only. A Jira task also opens its ticket in a second tab. The tab shows the key, the title, the status, the sprint, the points, the priority and size, the ticket's text from the Jira draft, how many subtasks are done, the links to other tickets and the PRD, and **Open in Jira**. The assignee, comments, history and the other fields stay in Jira, because the Jira read holds no people. A ticket with no record says what is missing. **Add a document** works as on the Board, with a phase as well, and saves on the initiative's record.
|
|
359
|
-
- **Core documents** has the same counts, filter and search as the Board's card, for this initiative. **Draft it** starts the existing read-only run that writes a draft and sends nothing. Technical documents (the record, the rubric, the stories, the review and the explainer) are grouped and not counted.
|
|
360
|
-
- **The document sheet.** A document that has a file opens in a dialog with **Read** (the file's text, its front matter as a grid and an outline), **Edit** (the file as plain Markdown, a reason, and **Save**), **Proposals** (**Ask the agent**, the open proposals with **Accept** and **Reject**, and the closed ones), **Edit log** (the revisions and other entries of the document sheet; **Show change** on a revision marks the words it added and removed against the revision before), **Health** (the document-health checks; a check with no input is not counted) and **Relations** (the documents it draws on, its goals, and the documents that use it, from the document library; a related file opens in the same sheet, and a goal or a missing file is listed but cannot be opened). The status line also names each **copy in another tool** (a Confluence page or Google Doc, with its state: in step, behind, both changed and so on), or offers **Link a copy**. Pressing it opens a panel with each copy's state, a link to open it, **Check now** (one agent session reads the copies with your connectors) and a box to paste a link. The sheet never writes to a copy; updating one is in the console. The file changes only when you press Save or Accept, and every change is kept in the Edit log with its reason. Save and Reject need a reason. A proposal made on text that has since changed shows which sections are out of date and cannot take them. The agent beside the sheet still only reads. A draft shows a bar above its text: **Issue it** marks the draft issued, through the console's own route, and sends nothing; it refuses while the Edit tab holds unsaved changes. Bold and undo buttons and Drop are not built on this page.
|
|
361
|
-
|
|
362
|
-
Not drawn, because PMOS holds no record for them: the mockup's demo tasks, its Jira data, and the owner "Agents" on a requirement.
|
|
363
|
-
|
|
364
|
-
## Insights
|
|
365
|
-
|
|
366
|
-
Insights is the fifth place on the rail, at `/premium-insights.html`. Its product picker is the chip that Home and the Board use, with the same saved pick. With one product ticked, Insights shows that product. With several, it opens the **Portfolio** of the ticked products, grouped by product. Outcomes and the Library read one product at a time, so they show the first ticked product and say so. It reads the KR metric records of the board's workspace, your saved dashboards, and the report files and report setups the console's Reports tab lists. It writes only when you press a button: a dashboard goes to the workspace's state folder (`premium-dashboards.jsonl`), and a report press goes to the report ledger through the console's own report routes. An agent session cannot make either write.
|
|
367
|
-
|
|
368
|
-
- **Charts.** One chart for each KR metric that holds at least two readings. The line runs through the readings at their dates, so a month with no reading is a gap and not a zero. The dashed line is the metric's target. The chip is the record's own line status: on its line, behind it, or well behind it. Pressing a chart, or its Details link, opens the metric's record in the dialog with the read-only agent beside it.
|
|
369
|
-
- **The insight.** The page opens with one finding across the board's measures, in a large line, with the reason and its numbers under it, up to two more findings, **Ask PMOS why** (opens the measure's dialog on the Conversation tab) and **See the chart**. A measure that is short of its target, with a target date after its last reading, gets a projection: a straight line through its last four readings (all, when fewer), carried to the target date. When the line lands short, the finding says the measure will miss its target on that date at this pace, where it lands, how far short, and when it would get there. When the line lands on or past the target, it says the measure is on course. The page says how the projection is made, and no forecast line is drawn on a chart. With no KR metric, or none with two readings, the page says there is no insight yet and why.
|
|
370
|
-
- **The pinned dashboard.** The card under the insight shows the pinned dashboard: its insight band (the next findings on it, past the one the page leads with), and its charts. Its **⋯** holds **Unpin** (or **Pin**, with Not pinned when nothing is pinned), **Back to** the pinned one, **Edit** and **New chart**, and its **ⓘ** says what the dashboard is for. When nothing can be charted yet, the card is hidden and All measures is a row of the list; the insight's explanation is then behind the **ⓘ** next to Insight. Pressing a dashboard in the list shows it in this card. One dashboard per board is pinned, All measures included; pillar groups cannot be pinned. The pin is a line in `premium-dashboards.jsonl` and shows on Insights only.
|
|
371
|
-
- **Dashboards and reports.** One list holds the dashboards (All measures, your saved ones, then the pillars the metrics name) and then the reports (your set-up reports, then the report files). One chip in the card's head (**All** with its count) opens **All**, **Dashboards** and **Reports**, and shows only when the list holds both kinds; it shows six rows to a page, with page numbers. A dashboard row shows its top finding and a pin. A report has one row, whatever number of cycles it has: the row quotes the opening sentence of its latest cycle and counts its cycles (for example **1 draft**, **3 issued**). Archived cycles are hidden here: a report whose cycles are all archived has no row (a set-up report keeps its set-up row). An archived cycle is still listed under **Archived** in the report's cycle chip. A set-up report with no file says no draft is written yet. **New** offers **Dashboard** or **Report**. Your requests and what PMOS found in your work stay at the top of the list. A saved dashboard draws its charts in the order you saved them. A chart whose record is gone, or that has fewer than two readings, is listed in its place with the reason and is not drawn.
|
|
372
|
-
- **Make or change a dashboard, a chart or a report in a chat.** There is no Insight Studio. **+**, then **Dashboard** or **Report**, and **New chart** in the dashboard's **⋯**, open the Chat page with a first line in the message box ("Make a dashboard of ") for you to finish and send. **Edit** on a saved dashboard or one of your charts, and **Shape it in a chat** on a report drawn from your work, open the Chat page with it in its tab beside the conversation. See [Reports from a chat](#reports-from-a-chat).
|
|
373
|
-
- **The findings.** Each finding is one sentence with its reason, taken from the series: will miss its target at this pace, on course, behind its line for three readings in a row, behind and still moving away from the target, closing in, slipped, reached its target, or a large one-step move. No cause is given.
|
|
374
|
-
- **A drafted fix.** When a finding says a goal is behind, the ✦ strip can show one fix that Claude drafted, under the finding. Press **✓** to make it, and **Undo** in the message, or **Undo** beside **Done**, to take it back. The fix is one of three. **Ask for a new date**: an initiative that moves the goal is past its end date and has an owner and a Jira epic, so a comment to the owner goes to the outbox. Nothing is sent until you send it from the outbox. **Anchor an initiative**: nothing active moves the goal, and exactly one active initiative has no anchor that resolves and shares a word with the goal, so its `parent_kr` is set to the goal. **Move the target date**: the goal will miss its target at this pace, so its date moves to the day the line through its readings gets there. A finding with no fix has no ✓. Each ✓ and Undo is one line in the workspace's state folder (`insight-moves.jsonl`).
|
|
375
|
-
- **A weekly report from what you open.** Intelligence notes the view you open, once a day for each view, in the workspace's runtime folder on this computer (`page-opens.jsonl`). It is not in the repository and is not sent. When you open the same view in each of the last three weeks, the ✦ strip asks if it should make that view a report that drafts itself before the day you open it most. **See the draft**, **Not now** and **✓ Set it up** work as for the other reports the strip proposes. A view that a report covers already is not proposed.
|
|
376
|
-
- **Board measures.** The same four tiles as the Board's Metrics card, counted from the board's repository and drawn the same way. Choose **8 weeks**, **26 weeks** or **52 weeks**; the page keeps your choice. Press a measure to read its definition and values and to set its target: type a number and press **Save target**, or press **Clear target**. For Corrections, Blocked and Idle, lower is better, so the target is the most you accept; for Merged a week it is the least. The target goes to the workspace's state folder (`board-metric-targets.jsonl`) and the Board draws it too. An agent session cannot set one.
|
|
377
|
-
- **No series recorded.** A KR metric with one reading or none is listed with the reason and is not drawn.
|
|
378
|
-
- **Ask PMOS to set up a report.** The card has one rounded input, under the list. Type what the report is for and press the round send button inside it. The **+** at its left offers Dashboard or Report. The line under the input says it only proposes; its **ⓘ** shows the longer note. A background run proposes a report and does nothing else. The request is listed as Working, then Ready to review. A ready request opens with its proposal: **Set it up**, **Change it** (say what to change; the run revises it), or **Cancel**.
|
|
379
|
-
- **Found in your work.** Up to three reports PMOS found in your calendar, mail or documents, each with why and what it saw. **Set it up** records the report and drafts its first cycle as a file. **Not a report** hides it and records it after 5 seconds, unless you press **Undo**. If the finding changed while the window was open, the window says what happened. It was already set up, it was marked not a report, or a new scan replaced it. The list is read again. Close the window and open the report from the list. If PMOS does not hear back, the window says nothing was recorded. Press the button to try again.
|
|
380
|
-
- **Set up.** A recurring report with no cycle yet, with its schedule and next draft. It opens with **Draft it now** (for a report drawn from your work) and **Pause** or **Resume**. Once it has a cycle, its row opens the report itself.
|
|
381
|
-
- **A report.** Pressing a report row opens its latest cycle on the page. Under the report's name, the cycle chip (for example **12 Oct · 4 cycles**) lists every cycle of the report, grouped **Draft**, **Issued** and **Archived**; pick one to read it. Over the report there is one row of icon buttons. Hold the pointer on a button, or focus it, to see its name:
|
|
382
|
-
- **Slides** and **Page** pick the view. Slides is a title slide, then one slide for each section, with the arrow keys and a strip of slides. Page is the document as it reads.
|
|
383
|
-
- **Brief** opens the report's brief in its own tab (see below).
|
|
384
|
-
- The state (**Draft**, **Issued** or **Archived**) and the schedule (for example **Mon 09:00**, **Off** or **None**). Press the schedule to change it: daily, weekly or every two weeks on a day, monthly, or **Off**, which pauses it. A report drawn from your work also has **Draft the next cycle now** there. A report with no template has no schedule; its menu says so and opens a chat to set one up.
|
|
385
|
-
- **Edit** (a draft only) edits in the same place: on Slides the slide editor, on Page the words. **Save** or **Cancel** brings the report back. No other tab opens.
|
|
386
|
-
- **Present** shows the slide on the whole screen; the arrow keys move and Escape stops.
|
|
387
|
-
- **Share** makes a link to a copy of the report as it is now, with a password if you want one, and an end date. The Brief is never shared.
|
|
388
|
-
- **Issue** (a draft only) first says what it does, then **Issue it** freezes the cycle as you read it. If the file changed since you opened it, nothing is issued and the reader shows the new words.
|
|
389
|
-
- **⋯** names the file, then has **Download** (PowerPoint, Word, Excel, CSV or the Markdown file; the files carry the words, not the look), **Print or save as PDF** (one slide to a page), and **Discard this draft** or, for an issued cycle, **Archive** and **Bring back**. Discard and Archive ask once. An issued report is never deleted.
|
|
390
|
-
- Copies in Confluence or other tools are made in the console. Nothing is sent from this page.
|
|
391
|
-
- **Edit the slides.** **Edit** on Slides opens the slide editor in the report's place. The rail on the left lists the slides. Drag a slide to move it, or use the up and down buttons on it; the buttons also duplicate and delete a slide, and **+ Slide** adds one from a layout. On the slide, click an item to select it, drag it to move it (a line shows when it is centred), and drag a corner to resize it. Double-click text to type. The toolbar adds text, an image, a chart, a table or a shape, and changes the layout of the slide or the theme of the deck. The bar under it changes the selected item: text style, alignment and colour; bars or a line and **Edit data** for a chart; rows and columns for a table. An image is a file that is already in the workspace: type its path, such as `planning/design/screen.png`. Speaker notes go in the box under the slide. **Undo** and **Redo** cover every change. **Present** opens the presenter view: the slide, the next slide, your speaker notes (you can type in them) and a timer. The arrow keys move, and Escape stops. **Slides only** hides the notes. **Audience window** opens a second window with the slide alone, for the screen you share; it follows your slide and closes when you stop. **Save** asks why the slides change, then writes the file and brings the report back; the reason goes in the Edit log. **Cancel** asks first if you changed something. The file stays markdown: each slide is a heading with its text under it, and a hidden comment keeps the layout and the notes. If someone changed the text of a slide in the file, the editor shows the file's text and says so. If the file changed while the slides were open, Save stops and tells you to open the slides again.
|
|
392
|
-
- **Shape a report's look.** On a draft, say how it should look in the box under the conversation. The clip in the box attaches a sample (a PDF, PowerPoint, Word, PNG or JPG file) to follow; each sample is a chip above the box, with an **×** that removes it. When PMOS has drawn a new look, one line over the report says **New look ready**, with the request it came from, and shows it. **Use it** saves it as the report's design, and PMOS draws the cycle to match. **Keep current** goes back to the look you had. An issued cycle is frozen with its look.
|
|
393
|
-
- **The Brief.** The Brief explains how the report is made. It is not part of the report. It reads what PMOS keeps for the report and says it in words: **At a glance** (what it is, who it is for, the decision, the schedule, the format, what makes it), **Questions it answers**, **In and out of scope**, **How it is structured**, **Where the data comes from** (with whether each source was reached), **How each number is worked out** (from where, how, compared with what, and when it is flagged), **Checks and caveats**, **Why it looks like this** (the samples, what stays the same, what changes, what it learned from you, and the earlier looks, each with **Go back to it**), **What changed**, and **Please confirm**. Where a record says nothing, the Brief says **not said** and lists the question under Please confirm; the head counts them (**2 to confirm**). **Correct** on a section puts `Correct "<section>":` in the box; finish the sentence and send it. PMOS writes a new version of the brief, and **Use it** at the top of the Brief keeps it. A report with no template has no brief to correct yet. PMOS keeps no glossary of terms, so the Brief has no section for what the words mean.
|
|
394
|
-
|
|
395
|
-
Not built: a second measure next to a chart, bar highlights, speaker notes and notes on a slide, changing a set-up report's audience or format, tile sizes and free layout, the finder's settings, and any measure no record holds. The console's own dashboards are separate and unchanged. KR metric records belong to a workspace, so every board of a workspace shows the same charts.
|
|
396
|
-
|
|
397
|
-
## Welcome
|
|
398
|
-
|
|
399
|
-
The premium Welcome page is retired. `/premium-welcome.html` and `/welcome` open the setup conversation in Home. See [First run](welcome.md).
|
|
400
|
-
|
|
401
|
-
## The default page
|
|
402
|
-
|
|
403
|
-
Home is the default page: `/` and `/index.html` open it. The console and the classic page are deleted. The old addresses `/console.html`, `/c3.html` and `/classic.html` open Home with the same query. One address stays: `/console.html?capture=1` is the popup page of the PMOS Chrome extension.
|
|
404
|
-
|
|
405
|
-
## The dialog on a phone and the document sheet's views
|
|
406
|
-
|
|
407
|
-
**The short head.** On a phone or tablet every dialog has a short head: no category line, a title of two lines at most and a sub line of one line. The **Sessions** chip shows only its dot and count. Press the title to see the whole title, the category line and the whole sub line; press it again to make the head short. When you scroll the detail, the head keeps only the title and the tools, so the detail gets most of the screen. Scroll back to the top to see the sub line and the Detail and Conversation switch again.
|
|
408
|
-
|
|
409
|
-
**Focus.** On a phone or tablet the dialog's head has a **Focus** button. Press it and the dialog takes the whole screen: the head keeps only the title and the button, and on the Chat page the bar at the bottom moves away. Press it again to see everything again. Nothing hides by itself when you scroll or type.
|
|
410
|
-
|
|
411
|
-
On a phone or tablet (under 1000 px) every dialog opens on **Detail**. On a touch screen every text field, the reply box included, uses 16 px type, so typing in one does not zoom the page. A card's label and value rows (for example **Blocked at** and **Initiative** in "The way through") stay as two columns, one row per label. A **Detail / Conversation** switch sits under the title, and **Open it** at the foot of Detail brings the conversation when an action waits there. The header holds only **Close**. A document sheet picks its view (**Read**, **Edit**, **Proposals**, **Edit log**, **Health**, **Relations**) from one button with a menu.
|
|
412
|
-
|
|
413
|
-
**ⓘ explanations.** The text that says what a page or card reads and records sits behind one ⓘ button, with the same words. Each premium page (Briefing, My work, Board, Initiative, Insights) ends with **ⓘ About this page**. The Board's **Metrics** card and the Insights **Board measures** card show only their need-a-look count, for example "2 of 4 need a look.", with an ⓘ next to the heading. If the measures cannot be read, the reason stays in view. On Insights, the Ask line and the chart count have their own ⓘ. Press ⓘ again to fold the text away.
|
|
414
|
-
|
|
415
|
-
A dialog's detail panel opens with the record's path, its heading and one lead line. A decision's evidence reads as a list. A measure's dialog draws the measure's chart above its facts and readings.
|
|
416
|
-
|
|
417
|
-
A calendar meeting's panel is one scroll, with no Before, During and After switch. On a phone the dialog's head is short: the title, then the day and the time. When you scroll the detail, the head keeps only the title and the tools, so the detail gets most of the screen. Scroll back to the top to see the Detail and Conversation switch again.
|
|
418
|
-
|
|
419
|
-
The detail starts with the meeting's state (when it starts, on now, or done) and its people as a count, for example **5 people**. Press the count to see the names. A line says what the meeting is about when it is linked. When the meeting is part of a series, the series line names it with "N of M" and has a press for the meeting before and the one after. Each opens that meeting's notes as a tab in the viewer, and the tab pages through the series.
|
|
420
|
-
|
|
421
|
-
**Record** is the one press up front, and only for a meeting that can be recorded now. **More** holds the rest: **Focus**, **Change what it is about** (or **Choose what it is about**, the link choice), **Not part of this series** when the meeting is in a series, and **What Record and Focus do**. A note taken out of its series shows **Put it back** on the series line.
|
|
422
|
-
|
|
423
|
-
Then the parts. The part that fits the meeting comes first and open: **Transcript and live notes** while the note records or is paused, **Notes and next steps** once there are notes, and **Prep and material** otherwise. The other parts follow, folded. Press a part's head to open or fold it. A part you open stays open while the dialog is open.
|
|
424
|
-
|
|
425
|
-
- **Prep and material**: first the meeting prep the console's Calendar card shows: In short, What matters today (To settle in planning for a planning meeting), Since the last one with its decisions and the steps From last time, To be ready, and the meeting's links. When the note already carries in the meeting before, Since the last one is left to it. The prep is read once when the detail opens; that read is not a Focus read, and Focus still reads nothing until you open it. Then the open steps carried in from the meeting before, the agenda with each item marked when the transcript heard it, what the meeting is for, what to have ready, what to read first and the people. **Prepared for you** (what it is about, the first two people and how many more, material and the last meeting, each Ready only when PMOS holds that record), **Material** with **Add material**, **Previous meetings** and **Topics** follow.
|
|
426
|
-
- **Transcript and live notes**: the transcript the note holds, with times. On the Briefing, while the note records or is paused there, this part is the live capture instead, the same as the **Live notes** tab: Recording or Paused, **Highlight**, **Pause** or **Resume**, **Stop**, **Private**, **Your notes**, the highlights and the live transcript.
|
|
427
|
-
- **Notes and next steps**: **Since the last one** (each step from the meeting before as Done, Raised again or Not mentioned, and the new steps), the replay, the summary, a table of decisions with their why, a table of next steps with owner, due and **Make task**, the open questions, the screenshots of the shared screen and the transcript, folded.
|
|
428
|
-
|
|
429
|
-
A part with no record behind it says so. A private note shows none of its notes. A meeting's note opened as a viewer tab uses the same parts in one scroll.
|
|
430
|
-
|
|
431
|
-
A document opens in one sheet on both the Board and the initiative page. Its status line shows the state, the version, the checks, the file and the last change; the file's path and front matter sit behind the file chip. The outline lists the headings at their depth, with **Find a heading** when there are many and **Hide the outline**. The body shows lists, tables, bold, code and links. A board draft keeps **Issue it** and **Draft it again**.
|
|
432
|
-
|
|
433
|
-
## The chat panel is a Claude Code session
|
|
434
|
-
|
|
435
|
-
The conversation beside every premium dialog is a real Claude Code session. Anything you can do in a Claude Code chat, you can do here.
|
|
436
|
-
|
|
437
|
-
Every popup has this chat, including the ones that have no row of their own: a task, a document with no file, a set-up report, a measure, a meeting on another day, Sources, Settings, the Around-you rows and the forms (Add a task, Add a document, the board actions). Its conversation belongs to that one thing, so it is there again the next time you open it. Opening a popup starts nothing; the session starts when you send the first message, and Claude starts from what the popup shows: its title, its sub line and its facts. A draft report keeps its own **Say how it should look** box.
|
|
438
|
-
|
|
439
|
-
- **Your first message** in a dialog starts one session for that row, the page or the initiative, in its repository. Claude gets the row as the page shows it: the title, what the page says, the facts and the files to start from. Then it gets your words.
|
|
440
|
-
- **The message box** takes several lines. **Enter** sends; **Shift+Enter** starts a new line. The box grows as you type, up to about eight lines, and then scrolls. The send button stays at its foot, also with a phone keyboard open.
|
|
441
|
-
- **Your message shows at once.** When you send, the box empties and your message appears in the chat straight away, a little lighter with **Sending…** until PMOS takes it, then with **You · HH:MM**. If the message could not be sent, it leaves the chat and your words go back in the box, so you can send them again. This is the same in every chat: Home, an initiative, a new workflow, and the Board and Intelligence chat.
|
|
442
|
-
- **Later messages** in the same dialog go to the same session. Write `/compact`, `/clear` or any other slash command, and Claude Code runs it.
|
|
443
|
-
- **What it may do** is set by your own Claude Code settings. Claude can change files and run commands. When your settings say to ask first, the question shows in the panel with its options; press one to answer.
|
|
444
|
-
- **Claude's questions** show as a card in the conversation. Claude Code's question picker cannot show in the panel, so the session does not open it: the card shows each question with its options as buttons. Press an option to answer a single question. When Claude asks several questions, or a question takes more than one answer, press the options and then **Send answers**. You can also write your own answer in the box. A session that started before this change still opens the picker: end it in the session list, and your next message resumes the same conversation without it.
|
|
445
|
-
- **Open in terminal** is the terminal icon at the top right of the conversation. It shows when the conversation has a session. While the session runs, it opens that same session in the console's terminal in a new tab: the same process, not a second copy, so what you type there and in the panel reaches the same Claude. On a phone it opens the same terminal. When the session has ended, the icon copies the line that resumes it, for example `cd '/Users/you/pmos' && claude --resume <id>`, for Terminal on the computer PMOS runs on. Writing in the chat also resumes it.
|
|
446
|
-
- **Stop** shows while Claude works. It presses Esc in the session. If Claude was stopped, the conversation shows a grey "Stopped" line.
|
|
447
|
-
- **The conversation** is Claude Code's own record, word for word. Claude's answers are formatted as Claude Code formats them: headings, bold, lists, code, tables, quotes and links (links open in a new tab). Your messages keep their line breaks, and a paste shows without the tags Claude Code wraps around it. A run of tool calls shows as one small grey line, for example "Used Read ×2, slack_read_thread". A connector tool shows its short name.
|
|
448
|
-
- **While a session runs**, the panel reads it again every 2 seconds and changes only when there is something new. The messages already on screen stay still, so nothing blinks beside the viewer.
|
|
449
|
-
- **A file Claude names** (a path such as `briefs/drafts/plan.md`, or a link to one) is underlined. Press it to read the file beside the conversation, as a tab in the viewer; on a phone, the Detail side shows it (on the Chat page, the viewer opens over the conversation). Markdown shows as a page, an HTML file shows as the page it draws (press **Source** for its code), and other text files show as code. An HTML page runs its own scripts, so its toggles and charts work, but it cannot reach PMOS or the internet: a web font falls back to the system font. It is read-only. While the tab is open it shows the newest version, so a file Claude is still writing stays current. A file in a workspace PMOS serves, in a git worktree of one, or in the folder a session runs in opens here. Any other file says "Not in a workspace" and is not read.
|
|
450
|
-
- **Download a file** with the download icon at the right of its name in the viewer. An HTML file saves as **HTML** (as it is) or **PDF**. A markdown file saves as **Markdown**, **Word .docx** or **PDF**. Other text files save at once as they are, with no menu. PDF opens your browser's print window: choose **Save as PDF** there. An HTML page prints with no access to PMOS or the internet, as in the viewer. Word holds the note's headings, paragraphs, lists and tables.
|
|
451
|
-
- **Share a file** with the share icon beside download. On a phone, **Send a copy** comes first: it opens the phone's share sheet with the file, and no link is made. **Public link** makes a link to a copy of the file as it is now, for someone with no PMOS or Cloudflare login. The password is on, with a generated one you can change or turn off. The link ends after 7 days; press **1 day** or **30 days** to change it. Press **Create link**, then **Copy link and password**, and send the password in a different message. The same popover lists your **open links** with their end date and views; **Turn off** (pressed twice) deletes the copy at once. A file with a key or token in it is not shared. Links need Online and one more tunnel rule: see REMOTE.md, "Share links".
|
|
452
|
-
- **What an answer worked with** shows as buttons under it: the files Claude wrote, changed or read, the Jira tickets and Slack channels it used, and the links it named. The first one is the main one: a file Claude wrote comes first, then what it named in its words, then what it only read. When Claude only read two or more things, they fold into one **+N read**; press it to see them. When an answer finishes while the chat is open, its main one opens in the viewer by itself, once; answers that were there when you opened the chat open nothing. On a phone a bar over the message box offers it instead (**View**), so the conversation stays in view. A Jira ticket shows what PMOS last read from Jira for a board or initiative it syncs, with **Open in Jira**; a ticket PMOS has not read says so. A Slack channel or message opens with **Open in Slack**, as PMOS keeps no copy of Slack messages.
|
|
453
|
-
- **A link to a Google Doc or a Confluence page** opens beside the conversation too, as the viewer shows a copy: the text PMOS has read, or **Read it now**. **A Claude artifact link** opens a tab with **Open in Claude**: claude.ai does not let another site show an artifact inside it. Other links open in a new browser tab.
|
|
454
|
-
- **The session** is also listed in **Sessions** and in the console, where you can open its terminal.
|
|
455
|
-
- **Ending a session ends only its process.** Whether you press End in the session list, or PMOS ends an idle chat, the conversation stays with the row: the panel and the session's own view still show every turn, read from Claude Code's record (in whichever Claude login ran it, such as `~/.claude-personal`). PMOS also keeps a copy in its own state folder (`chat-history/`), so the conversation stays after Claude Code removes old records. Files the session wrote are never touched. Your next message picks up the same conversation.
|
|
456
|
-
- Answers from the older read-only agent stay above the session, marked "Earlier read-only answer".
|
|
457
|
-
|
|
458
|
-
Sending and the option presses need the page's launch nonce, so an agent session cannot type into your chat.
|
|
459
|
-
|
|
460
|
-
### Reports from a chat
|
|
461
|
-
|
|
462
|
-
Any chat can become a report. There is no button for it: say it in the chat, for example "make this a report for the growth leads" or "make it weekly on Wednesdays". Claude answers in a few lines, and the **Report** tab opens beside the conversation (on a phone, a bar over the message box offers it). The chip under Claude's answer opens the tab again.
|
|
463
|
-
|
|
464
|
-
- **A new report** asks a few questions first, and Claude's picks are filled in: **Format**, **Readers**, **Goes out** (**Once** or **Repeats**, with how often, the day and the time), **Look** (the standard PMOS look, 16:9 slides) and **Sources**. The chip under Claude's answer says **Answer a few questions, then Draft it**. Change any answer, then press **Draft it**. Nothing goes out. That press records the report and its first template (T1), and the report drafts in its own session, not in your chat. While it drafts, the tab says so. If the session ends with no draft, **Draft it again** starts it again.
|
|
465
|
-
- **The report's current state.** When a report is set up, the chip under Claude's answer says **Open the report**, and the tab opens its latest draft in the reader. Under a draft that is not issued, Claude's review reads it as your readers would and lists what to fix, in the ✦ pattern: **Do it** passes one fix to the report's own session, **Do all** passes them all, and **Not now** hides one. The checks that found nothing are named under it. There is no score.
|
|
466
|
-
- **A change from the chat.** Ask for a change to the draft in the chat, for example "use 30 Jun on both slides". The chip says **Change to the draft** and passes it to the report's own session. Your chat does not draft the report.
|
|
467
|
-
- **Talk to Claude about the report.** The chat icon in the reader's header, beside the template icon, opens the report's own conversation in Home's chat, with the report beside it (on a phone the chat takes the page). Claude knows which report and draft it is. Say what to change, then press the chip to pass it to the report's session; the draft beside the chat changes. From another page the icon takes you to Home.
|
|
468
|
-
- **Template versions.** The template icon in the reader's header opens the questions with the current answers. A changed answer is marked and said in words, for example "Format: Slides → Document". **Make a different template** saves it as the next version (T2, T3, …), and **Keep the current template** leaves it. **Template history** lists each version with the cycles issued under it, and **Go back** makes an earlier one current. Nothing is deleted. **Sections, look and cycles** opens the structure, the design and the cycles below.
|
|
469
|
-
- **A template keeps its sections and look.** Each version also holds the report's **Sections** (shown as chips, in order) and its **Look** (a small title slide, its name and the sample it follows). To change them, ask in the chat. Sections you name, or a look Claude made from your words, wait in the template as one ✦ **Make T4**, with the change in words (for example "Sections: + Customers" and "Look: D1 → D2") and a **changed** tag on each row. Press ✕ to drop it or ✓ to make it. Nothing is saved before ✓, and the open draft stays as it is. Each earlier version says what **Go back** restores: format, readers, schedule, sections and look. Cycles already made keep the look they were made with. Saving sections or a look in **Sections, look and cycles** also makes a new version.
|
|
470
|
-
- **A goal with a report in it.** When a goal names a report, that point counts only when you issue the report. If only report points are open, the goal waits for you to issue it.
|
|
471
|
-
- **Your own sections.** Name them in the chat, for example "use these sections: Decision question; Current position; Options and recommendation; Open items; Sources". The tab shows them as the slides. ✓ saves them as the report's structure (S1), and the first draft follows them. Your first section is the report's lead, the one before Sources holds the asks to the readers, and Sources is always last. If you describe a change without a list, **Structure and look** shows the change: the first draft uses the seven standard sections, Claude starts the change right after ✓, and **Use this** keeps it. When you press **Use this**, Claude writes the draft again with the new sections.
|
|
472
|
-
- **A look to follow.** Say how the report should look, or name a file for it to follow, such as your draft deck (a PDF, PowerPoint, Word file or picture). **Structure and look** shows **Look** with the file's name. After ✓, Claude adds the file as the look's sample and makes the look from it.
|
|
473
|
-
- **While Claude works.** When Claude reshapes the sections, makes the look or writes the draft again, a line with a pulsing dot says so on the report and in the tab, and says how long it takes. The line goes when the work is done, and the new draft opens in its place.
|
|
474
|
-
- **Schedule** is a chip on the tab. Press it to pick **Off**, **Daily**, **Weekly**, **Every two weeks** or **Monthly**, and a day for a weekly one. Or say it in the chat; Claude's proposal shows with **Change the schedule**. Off pauses the template and keeps its schedule for later.
|
|
475
|
-
- **Structure** and **Design** show the report's versions (S1, S2, … and D1, D2, …). Say a change in the chat ("leave out the timeline", "use the theme of my sample"); the tab shows it with **Make the next version**. **Use this** or **This is it** saves the version shown, and **Undo** goes back one.
|
|
476
|
-
- **Reports** lists the template's cycles. A **draft** can be discarded until it is issued, also while Claude makes a new version. An **issued** report is kept for good: it can be archived (hidden) and brought back, never deleted.
|
|
477
|
-
- **Delete template** stops its schedule now. Its issued reports and its open draft stay, with its name.
|
|
478
|
-
|
|
479
|
-
Charts and dashboards work the same way. Say "chart partner activation as bars" or "make a dashboard for the Monday partner review", and the **Chart** or **Dashboard** tab opens beside the conversation.
|
|
480
|
-
|
|
481
|
-
- **A chart** is drawn from the readings of one KR metric record, as Insights draws it. **Line**, **Bars**, **Number** and **Meter** redraw it; a meter needs a target. **Save chart** saves it, and it shows on Insights under Your charts. A saved chart has **Delete chart**, which asks first.
|
|
482
|
-
- **A dashboard** draws its charts in order and names any measure with fewer than two readings. **Save dashboard** saves it to the list on Insights, where you pin it. A saved dashboard has **Delete dashboard**, which asks first. Its charts and records stay.
|
|
483
|
-
- To change a saved one, ask in the chat; the tab shows the change with **Save the change**.
|
|
484
|
-
|
|
485
|
-
Claude never sets up, schedules or deletes a report, a chart or a dashboard itself. Every change is a press on the tab, and the routes refuse an agent session.
|
|
486
|
-
|
|
487
|
-
### Notes
|
|
488
|
-
|
|
489
|
-
Notes is a notepad for each conversation. Open it from **+** › **Notes**. It opens in the viewer beside the conversation. On a phone, it opens on the viewer tab.
|
|
490
|
-
|
|
491
|
-
- A conversation can have more than one note. The head shows the title of the note (its first line) and how many notes there are. Press the title to see the list and pick a note. **Delete this note** is at the end of the list. It asks first.
|
|
492
|
-
- The **+** button in the head makes a new note.
|
|
493
|
-
- Each note is saved as you type, as a Markdown file on this machine (`chat-files/<conversation>/notes/`). It never goes into a repository. The head says **Saved**.
|
|
494
|
-
- To format, type a start at the beginning of a line and then a space: `#`, `##` or `###` for a heading, `-` for a bullet, `1.` for a numbered list and `[]` for a checkbox. Ctrl+B (Cmd+B on a Mac) makes text bold and Ctrl+I makes it italic. Press a checkbox to tick it.
|
|
495
|
-
- In a checkbox list, Enter makes the next checkbox. Enter on an empty checkbox ends the list.
|
|
496
|
-
- The two buttons at the bottom have icons only. Hold the pointer on a button to see its name.
|
|
497
|
-
- **Add selection to message** (the arrow into a line) puts the words you selected into the message box. With nothing selected, it puts the whole note there. Nothing is sent.
|
|
498
|
-
- **Share with Claude** (the arrow up out of a box) puts the note on your message as a file, like an attachment. Claude reads the note when you send. Your message shows it as a **Note** chip. Press the chip to open the note.
|
|
499
|
-
- The old Scratchpad text of a conversation becomes its first note when you open Notes. Nothing is lost.
|
|
500
|
-
- A dialog with no conversation has no Notes.
|
|
501
|
-
|
|
502
|
-
### Attach files and photos
|
|
503
|
-
|
|
504
|
-
Press **+** at the left of the message box. The menu has three items: **Add files or photos**, **Slash commands** and **Notes**.
|
|
505
|
-
|
|
506
|
-
- **Add files or photos** opens the file chooser. You can pick more than one file. On a phone, the phone shows its own choices, such as Take Photo and Photo Library.
|
|
507
|
-
- On a computer, you can also drag a file onto the conversation, or paste a screenshot into the message box.
|
|
508
|
-
- Each file shows as a chip above the message box. A photo shows a small picture. The chip says **Saving** until the file is saved, then it shows the size. Press **×** to remove a file before you send.
|
|
509
|
-
- A message can have 10 files at most. Each file can be 20 MB at most. You can send files without words.
|
|
510
|
-
- The files are saved on this machine, in the PMOS state folder (`chat-files/`). They never go into a repository.
|
|
511
|
-
- When you send, the message tells Claude the full path of each file. Claude reads the files itself: photos, screenshots, PDFs and text files. The chat session can read that folder without asking you first.
|
|
512
|
-
- In the conversation, your message shows its files as chips above your words. Press a chip to open the file in the viewer. A photo shows as the picture and a PDF shows as the document. For other files, the viewer gives **Download**.
|
|
513
|
-
- A dialog with no conversation has no **+**.
|
|
514
|
-
|
|
515
|
-
### Open a file Claude names
|
|
516
|
-
|
|
517
|
-
A PDF that Claude names opens in the Viewer, in the browser's own PDF viewer. It takes the whole width and height of the Viewer, with its path under it. On a phone, where the browser shows only the first page, the Viewer draws every page itself, one under the other. Other files show as text.
|
|
518
|
-
|
|
519
|
-
### Give Claude a goal with `/goal`
|
|
520
|
-
|
|
521
|
-
Type `/` in the box to see the commands: `/goal`, `/compact` and `/clear`. Use the arrow keys and Enter, or press one.
|
|
522
|
-
|
|
523
|
-
- **`/goal <what you want>`** asks Claude to make the goal SMART before any work. Claude reads the records first, then asks only what it could not find out: at most 5 questions, one at a time, about how you will know it is done, by when, whether it can be done here, and what it serves.
|
|
524
|
-
- **Each question** shows its answers as buttons, with the recommended one marked. Press one, or answer in your own words. A pressed answer turns blue and says **Sent**, and the others wait until Claude answers. While the goal is agreed, the Viewer shows the goal so far. Your bubble shows only what you typed, never the rule PMOS adds. A message you send while Claude works waits under the conversation with "Claude reads it after this tool call"; that line goes as soon as Claude has read it, so it never stays above later turns. **Start with defaults** stops the questions; a value you did not give is marked "assumed".
|
|
525
|
-
- **The goal card** is in the viewer, in a **Goal** tab, like Notes. The conversation shows only a small Goal chip with the goal's state; press it to open the tab. On a phone the tab covers the page, and **Back** returns to the conversation.
|
|
526
|
-
- **The card** shows the goal, its done points, what Claude may do, what it serves, the deadline and the round limit. Nothing runs until you press **Start** (under Claude's message or in the Goal tab). **Change something** lets you say what to change; **Cancel** drops the goal.
|
|
527
|
-
- **Start** tells Claude to work on the goal until every done point is met. Merging follows your standing rule (merge once required CI is green). Claude asks before anything that is sent to other people.
|
|
528
|
-
|
|
529
|
-
- **While it works**, the Goal tab shows the round, each done point met or open, and the deadline. Claude keeps its to-do list as the done points, so each point ticks the moment Claude marks it done, inside the round; the round's own report still decides at its end. The points are Claude's own report, so the card says "unverified". Each time Claude would stop with a point still open, it is told to keep going.
|
|
530
|
-
- **It stops by itself** when Claude reports every point met (Done), when it needs you (Needs you: answer it in the box and it goes on), at the deadline, after the round limit (12 unless the goal says fewer), or after 3 rounds that met no new point. The card says which.
|
|
531
|
-
- **When the goal changes** (it starts, a point is met, it stops, it needs you, it is done), the Goal tab opens by itself on a desktop. On a phone a bar over the box offers it, so the conversation stays in view.
|
|
532
|
-
- **Stop the goal** is in the Goal tab. It presses Esc in the session and ends the goal.
|
|
533
|
-
- **In the bell**, a goal that is done, stopped or needs you is an item. Pressing it opens the goal's own conversation. The item goes when you write in that conversation, or after a week.
|
|
534
|
-
|
|
535
|
-
Start, Cancel and Stop need the page's launch nonce too. The goal and each round are kept in `goal-runs.jsonl` in the state folder.
|
|
14
|
+
**Leads written after each refresh.** PMOS keeps a short list of the popups you opened in the last 14 days, with what each one showed. Forms such as Add a task and Settings are left out. Opening a popup only adds it to that list and starts nothing. When a read of your tools ends well, and once no other read is going, one **Popup leads** session writes the lead of each popup on the list whose lead is missing or older than the newest stored read, at most 12. Refresh all runs it after the reads. It reads only the stored reads and the repository, never a tool, and runs only when a lead is due. `pmos lead due` lists the popups it will write for.
|