create-pmos 0.47.0 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/package.json +1 -1
  2. package/payload/AGENTS-HUMAN.md +1 -1
  3. package/payload/AGENTS.md +1 -1
  4. package/payload/KIT-VERSION +1 -1
  5. package/payload/mods/pmos-cockpit/.claude-plugin/plugin.json +1 -1
  6. package/payload/mods/pmos-cockpit/README.md +4 -2
  7. package/payload/mods/pmos-cockpit/hooks/lib/commands.mjs +34 -6
  8. package/payload/mods/pmos-cockpit/hooks/lib/grants.mjs +22 -3
  9. package/payload/mods/pmos-cockpit/hooks/lib/guard.mjs +16 -3
  10. package/payload/mods/pmos-cockpit/hooks/register.tsx +37 -18
  11. package/payload/planning/evals/eval-calibration.md +1 -1
  12. package/payload/planning/okrs/health-budgets.md +1 -1
  13. package/payload/scripts/pmos-log.sh +18 -8
  14. package/payload/scripts/pmos-model.js +233 -2
  15. package/payload/scripts/status-facts.js +204 -0
  16. package/payload/scripts/workflow-state.js +52 -0
  17. package/payload/state/discoveries.md +1 -1
  18. package/workspace/README.md +2 -2
  19. package/workspace/bin/live-notes.js +133 -0
  20. package/workspace/design-parity.js +328 -21
  21. package/workspace/doc-category-bench.js +165 -0
  22. package/workspace/fixtures/doc-category-labelled.json +167 -0
  23. package/workspace/guide/initiatives-and-next-steps.md +15 -2
  24. package/workspace/guide/knowledge-graph.md +83 -1
  25. package/workspace/guide/layout.md +29 -2
  26. package/workspace/guide/proactive-engine.md +6 -2
  27. package/workspace/guide/validate-with-typesafe.md +16 -1
  28. package/workspace/lib/claims.js +51 -2
  29. package/workspace/lib/doc-category-corrections.js +113 -0
  30. package/workspace/lib/doc-category-writeback.js +110 -0
  31. package/workspace/lib/doc-category.js +225 -0
  32. package/workspace/lib/engine/pmos-model.js +233 -2
  33. package/workspace/lib/engine/status-facts.js +204 -0
  34. package/workspace/lib/engine/workflow-state.js +52 -0
  35. package/workspace/lib/jev-categorize.js +399 -0
  36. package/workspace/lib/jev-claims.js +59 -15
  37. package/workspace/lib/jev-route.js +129 -0
  38. package/workspace/lib/kg-cli.js +3 -1
  39. package/workspace/lib/kg.js +6 -1
  40. package/workspace/lib/learn.js +5 -3
  41. package/workspace/lib/live-notes.js +890 -0
  42. package/workspace/lib/typesafe-settings.js +10 -2
  43. package/workspace/package-lock.json +1 -1
  44. package/workspace/package.json +5 -4
  45. package/workspace/public/pm/app.js +148 -79
  46. package/workspace/public/pm/data.js +58 -0
  47. package/workspace/public/pm/fixture.js +40 -2
  48. package/workspace/public/pm/modes-live.js +216 -18
  49. package/workspace/public/pm/panel-cockpit.js +636 -0
  50. package/workspace/public/pm/panel-detail.js +210 -8
  51. package/workspace/public/pm/panel-initiatives.js +9 -9
  52. package/workspace/public/pm/panel-newsess.js +145 -86
  53. package/workspace/public/pm/panel-repos.js +34 -17
  54. package/workspace/public/pm/panel-tabs.js +145 -27
  55. package/workspace/public/pm/state.js +45 -4
  56. package/workspace/public/pm/tab-doc.js +244 -16
  57. package/workspace/public/pm/tab-term.js +11 -1
  58. package/workspace/public/pm/tokens.css +4 -3
  59. package/workspace/public/pm/view-addrepo.js +207 -0
  60. package/workspace/public/pm/view-files.js +197 -0
  61. package/workspace/public/pm/view-guide.js +141 -0
  62. package/workspace/public/pm/view-knowledge.js +225 -0
  63. package/workspace/public/pm/view-memory.js +122 -0
  64. package/workspace/public/pm/view-portfolio.js +153 -0
  65. package/workspace/public/pm/view-reports.js +190 -0
  66. package/workspace/public/pm/view-scheduled.js +161 -0
  67. package/workspace/public/pm/view-skills.js +216 -0
  68. package/workspace/public/pm/view-today.js +168 -0
  69. package/workspace/public/pm/view-validate.js +171 -0
  70. package/workspace/server.js +290 -7
  71. package/workspace/skills/live-notes.skill +58 -0
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: live-notes
3
+ label: "Live notes"
4
+ description: "Take the talking points of a conversation, place each against the open initiatives, add a short cited context note where one is needed, and propose titles for new-initiative candidates. Proposals only; nothing is created, changed or decided."
5
+ run: agent
6
+ agent: claude
7
+ tier: balanced
8
+ version: 1.1.0
9
+ owner: wawan
10
+ risk: low
11
+ scope: read:connectors, read:state, write:state/live-notes
12
+ output:
13
+ - Placed talking points
14
+ - Context notes
15
+ - Candidates for new initiatives
16
+ - Sources reached and not reached
17
+ ---
18
+
19
+ /live-notes — place a conversation against this repository's initiatives (jev-live-notes). Work only from the text you are given or can read with the connectors you already have. Do not guess.
20
+
21
+ Rules that always hold:
22
+ 1. PROPOSALS ONLY. Never create, edit, accept, close or hold an initiative. Never write a decision, an acceptance or a run row. A candidate for a new initiative becomes one only when the PM presses through pmos-router.
23
+ 2. READ-ONLY on every source. Never send, reply, post, comment, create, edit, label or delete anything in a connected source.
24
+ 3. NOTHING LEAVES THIS MACHINE UNLESS THE COMMAND SAYS SO. Send a talking point to Typesafe only when the command's `path` line says `jev-agent`, and then only the point's words and the option list, never a speaker's name, a file or a key. On any other path, send nothing to any outside service. Report the path as the command says it.
25
+ 4. NOTHING INVENTED. A source you cannot reach is reported as not reached. A note you cannot support from the repository's own text says the text did not settle the point.
26
+ 5. PRIVATE STAYS PRIVATE. Skip anything marked private, personal, confidential or HR. The command withholds secret-shaped text; never paste it back.
27
+ 6. SHORT. A context note is at most 600 characters and cites the repository's own words exactly.
28
+
29
+ Procedure (each step ends with a check that shows it is done):
30
+ 1. Find the segments. Segments are one per line in a file: plain text, or a JSON object with "text", "speaker", "source". If the PM gave you a file, use it. Otherwise use the source step below, or ask the PM for the text.
31
+ Done when: you can name the segments file, or you have said no text was available.
32
+ Source step, Wispr Flow meetings (use it only when the PM asked for a meeting, or for what was said since the last time): run `pmos proactive settings` and read the `wispr` line under "brief sources". If it is off, say "wispr: off" and stop; do not read it. If it is on:
33
+ a. List meetings with the Wispr Flow `search_meetings` tool, `since` the time of the last meeting you ingested (keep that cursor in your own notes for this session; with none, ask the PM which meeting). Use only the meeting's title, time, id, share link and whether it has a transcript.
34
+ b. Skip any meeting whose title or folder says private, personal, confidential or HR. Count the skipped ones and say the count; do not read them.
35
+ c. For each other meeting that has a transcript, read it with `get_meeting` and `view_transcript`, one bounded range at a time, using the continuation offset until it ends. Write the transcript text to a file in the scratch folder. Never copy the meeting's notes or summary anywhere.
36
+ d. Run `node workspace/bin/live-notes.js ingest --repo . --transcript <that file> --source "wispr:<meeting id>" --session <id>`. It adds only what is new, so reading a growing transcript again is safe. The pointer on each point names the meeting; give the PM the share link in your final message.
37
+ e. If the connector is not available in this session, or a call fails, say "wispr: not reached" with the reason. Do not make up a transcript.
38
+ Done when: each meeting you tried is read, skipped (counted) or not reached, and ingest printed its session and any duplicates skipped.
39
+ 2. Run `node workspace/bin/live-notes.js run --repo . --segments <file> --session <id>`. Give `--anchor domain:<id>` when it says too many initiatives match. It prints the path it ran, any withheld lines, and a prompt.
40
+ Done when: the command printed a session id and either rows or a prompt.
41
+ 3. Answer the prompt it printed, in its exact shape: one `LIVENOTE {json}` line per talking point, to a file in the scratch folder. Use "answers" only when the point answers a named open question, and name it. If the prompt says to use the Typesafe skill, use it for the initiative and relation choices and write "by":"jev"; if the skill or the key is missing, or a call fails, decide yourself and write "by":"agent". Never write "by":"jev" for a choice you made yourself. Then run `node workspace/bin/live-notes.js run --repo . --session <id> --answers <that file>`.
42
+ Done when: every talking point has a proposed row, or the command named why one was refused.
43
+ 4. Run `node workspace/bin/live-notes.js plan --repo . --session <id>`. For each context note it lists, read the files it names, then write one `LIVECONTEXT {json}` line: `{"segment":"<id>","note":"<at most 600 characters>","settled":true,"cites":[{"path":"<repository path>","quote":"<an exact passage of that file, at least 8 characters>"}]}`. Set "settled" to false when the initiative's own text does not decide the point. Use the tier the plan names for each step: ask `pmos-model recommend "<the work>" --skill live-notes` if you can launch a sub-task on a model.
44
+ For each candidate it lists, write one `LIVECANDIDATE {json}` line: `{"candidate":"<id>","title":"<at most 80 characters>","lane":"feature|discovery|chore|incident|content|prototype"}`. Run the pmos-router sharpness and prior-rejection questions in your head first; the command records the prior-rejection check on the title.
45
+ Put all the lines in one file and run `node workspace/bin/live-notes.js context --repo . --session <id> --answers <that file>`. Read any rejection, fix the line and run it once more. Do not work around a refusal.
46
+ Done when: the command says how many notes and drafts it accepted and nothing is left rejected.
47
+ 5. Show the PM the list and wait. The PM's accept, change and reject go in through `node workspace/bin/live-notes.js decide`, one per point, only when the PM says so. Do not decide for them.
48
+ Done when: you have shown the list and recorded nothing the PM did not say.
49
+ 6. When the PM says the conversation is over, run `node workspace/bin/live-notes.js close --repo . --session <id>`. It appends a section to today's requirements note and deletes the raw transcript.
50
+ Done when: the command printed the note path and "transcript: deleted", or the retention date the PM set.
51
+ 7. Finish by saying in two lines how many points were placed, how many are still unanswered, which path ran, and which sources were not reached. Do not commit; the PM's Sync carries the files.
52
+ Done when: the two lines are said once and no commit was made.
53
+
54
+ Output contract — produce EXACTLY these sections in your final message:
55
+ - Placed talking points
56
+ - Context notes
57
+ - Candidates for new initiatives
58
+ - Sources reached and not reached