pmx-canvas 0.8.2 → 0.9.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/.github/extensions/pmx-canvas/runtime.json +1 -1
- package/.github/extensions/pmx-canvas/tools.json +601 -22
- package/CHANGELOG.md +49 -0
- package/Readme.md +131 -532
- package/dist/canvas/global.css +2724 -476
- package/dist/canvas/index.js +168 -107
- package/dist/canvas/mcp-app.html +2899 -596
- package/dist/json-render/index.js +20 -20
- package/dist/types/client/canvas/BarHint.d.ts +12 -2
- package/dist/types/client/canvas/BoardLinkDialog.d.ts +3 -1
- package/dist/types/client/canvas/BoardPinButton.d.ts +10 -0
- package/dist/types/client/canvas/BoardSwitcher.d.ts +1 -1
- package/dist/types/client/canvas/CanvasViewport.d.ts +1 -1
- package/dist/types/client/canvas/CommandBar.d.ts +3 -4
- package/dist/types/client/canvas/ConnectionBanner.d.ts +2 -1
- package/dist/types/client/canvas/ContextChip.d.ts +3 -0
- package/dist/types/client/canvas/CrossBoardReferences.d.ts +5 -0
- package/dist/types/client/canvas/EdgeLayer.d.ts +14 -3
- package/dist/types/client/canvas/EmptyState.d.ts +4 -4
- package/dist/types/client/canvas/HomeGraphView.d.ts +2 -0
- package/dist/types/client/canvas/HomeMapView.d.ts +1 -0
- package/dist/types/client/canvas/HomeReviewView.d.ts +6 -0
- package/dist/types/client/canvas/HomeView.d.ts +9 -7
- package/dist/types/client/canvas/KnowledgeDialog.d.ts +4 -0
- package/dist/types/client/canvas/LifecycleChrome.d.ts +5 -0
- package/dist/types/client/canvas/LifecycleFields.d.ts +7 -0
- package/dist/types/client/canvas/LifecyclePanel.d.ts +1 -0
- package/dist/types/client/canvas/MemoryInspector.d.ts +7 -0
- package/dist/types/client/canvas/NearPinLayer.d.ts +14 -0
- package/dist/types/client/canvas/NodeContextMark.d.ts +40 -7
- package/dist/types/client/canvas/RelationPresetsDialog.d.ts +4 -0
- package/dist/types/client/canvas/RelationsPanel.d.ts +4 -0
- package/dist/types/client/canvas/SessionPanel.d.ts +2 -0
- package/dist/types/client/canvas/canvas-area.d.ts +1 -1
- package/dist/types/client/canvas/graph-geometry.d.ts +27 -0
- package/dist/types/client/canvas/graph-model.d.ts +37 -0
- package/dist/types/client/canvas/memory-layout.d.ts +23 -0
- package/dist/types/client/canvas/use-chrome-height.d.ts +2 -0
- package/dist/types/client/canvas/use-focus-trap.d.ts +1 -0
- package/dist/types/client/canvas/use-memory-graph.d.ts +8 -0
- package/dist/types/client/canvas/use-pan-zoom.d.ts +4 -1
- package/dist/types/client/icons.d.ts +0 -10
- package/dist/types/client/nodes/AxStepControls.d.ts +1 -1
- package/dist/types/client/nodes/InlineMarkdownEditor.d.ts +4 -4
- package/dist/types/client/nodes/MarkdownNode.d.ts +5 -1
- package/dist/types/client/nodes/McpAppNode.d.ts +4 -4
- package/dist/types/client/nodes/viewer-runtime-state.d.ts +1 -1
- package/dist/types/client/state/boards-store.d.ts +81 -9
- package/dist/types/client/state/canvas-store.d.ts +14 -1
- package/dist/types/client/state/context-chip-store.d.ts +22 -0
- package/dist/types/client/state/context-status-store.d.ts +35 -0
- package/dist/types/client/state/intent-bridge.d.ts +11 -8
- package/dist/types/client/state/knowledge-store.d.ts +22 -0
- package/dist/types/client/state/near-pin-store.d.ts +44 -1
- package/dist/types/client/state/presence-store.d.ts +4 -4
- package/dist/types/client/state/presentation.d.ts +28 -0
- package/dist/types/client/state/relation-store.d.ts +10 -0
- package/dist/types/client/state/session-store.d.ts +41 -2
- package/dist/types/client/state/workspace-settings.d.ts +7 -0
- package/dist/types/client/types.d.ts +13 -1
- package/dist/types/client/utils/keyboard.d.ts +2 -0
- package/dist/types/client/utils/time-ago.d.ts +4 -0
- package/dist/types/mcp/context-uri-template.d.ts +3 -1
- package/dist/types/server/agent-presence.d.ts +10 -3
- package/dist/types/server/ax-context.d.ts +1 -1
- package/dist/types/server/canvas-db.d.ts +30 -7
- package/dist/types/server/canvas-operations.d.ts +24 -2
- package/dist/types/server/canvas-provenance.d.ts +22 -2
- package/dist/types/server/canvas-serialization.d.ts +2 -0
- package/dist/types/server/canvas-state.d.ts +93 -15
- package/dist/types/server/canvas-validation.d.ts +1 -1
- package/dist/types/server/context-brief.d.ts +94 -6
- package/dist/types/server/context-reads.d.ts +33 -7
- package/dist/types/server/edit-summary.d.ts +20 -0
- package/dist/types/server/index.d.ts +71 -10
- package/dist/types/server/knowledge-lifecycle.d.ts +221 -0
- package/dist/types/server/lifecycle-status.d.ts +10 -0
- package/dist/types/server/memory-graph.d.ts +9 -0
- package/dist/types/server/mutation-history.d.ts +2 -0
- package/dist/types/server/operations/ops/ax-shared.d.ts +1 -1
- package/dist/types/server/operations/ops/boards.d.ts +2 -1
- package/dist/types/server/operations/ops/lifecycle.d.ts +2 -0
- package/dist/types/server/operations/ops/memory-graph.d.ts +2 -0
- package/dist/types/server/operations/ops/nodes.d.ts +5 -0
- package/dist/types/server/operations/ops/query.d.ts +23 -0
- package/dist/types/server/operations/registry.d.ts +1 -0
- package/dist/types/server/placement.d.ts +7 -0
- package/dist/types/server/scope-fence.d.ts +2 -1
- package/dist/types/server/spatial-analysis.d.ts +6 -3
- package/dist/types/server/tour-control.d.ts +32 -0
- package/dist/types/server/wiki-links.d.ts +14 -0
- package/dist/types/server/workbench-auth.d.ts +2 -0
- package/dist/types/shared/agent-context.d.ts +2 -0
- package/dist/types/shared/agent-presence.d.ts +15 -12
- package/dist/types/shared/auto-arrange.d.ts +1 -0
- package/dist/types/shared/boards.d.ts +4 -4
- package/dist/types/shared/knowledge-lifecycle.d.ts +41 -0
- package/dist/types/shared/knowledge-presets.d.ts +6 -0
- package/dist/types/shared/lifecycle-status.d.ts +24 -0
- package/dist/types/shared/memory-graph.d.ts +53 -0
- package/dist/types/shared/relations.d.ts +68 -0
- package/dist/types/shared/semantic-attention.d.ts +2 -0
- package/dist/types/shared/tour.d.ts +38 -0
- package/dist/types/shared/workspace-settings.d.ts +11 -0
- package/docs/RELEASE.md +21 -3
- package/docs/adr-001-bun-only-runtime.md +7 -1
- package/docs/adr-002-shared-product-separate-runtimes.md +93 -0
- package/docs/api-reference.md +109 -0
- package/docs/ax-host-adapter-contract.md +1 -1
- package/docs/ax-state-contract.md +5 -4
- package/docs/cli.md +153 -15
- package/docs/demos/pmx-canvas-demo.mp4 +0 -0
- package/docs/design/AgentContext.dc.html +3 -3
- package/docs/design/BoardPins.dc.html +37 -22
- package/docs/design/Categories.dc.html +208 -0
- package/docs/design/CategoryEditor.dc.html +33 -0
- package/docs/design/Chrome.dc.html +52 -9
- package/docs/design/ContextChip.dc.html +224 -0
- package/docs/design/ContextChip600.dc.html +136 -0
- package/docs/design/EmptyState.dc.html +45 -0
- package/docs/design/Flows.dc.html +23 -1
- package/docs/design/HeaderMarks.dc.html +183 -0
- package/docs/design/Home.dc.html +19 -1
- package/docs/design/HomeGraph.dc.html +86 -202
- package/docs/design/HomeMap.dc.html +23 -1
- package/docs/design/HomeTeam.dc.html +32 -14
- package/docs/design/Lifecycle.dc.html +22 -0
- package/docs/design/Lifecycle600.dc.html +18 -0
- package/docs/design/LifecycleVariants.dc.html +157 -0
- package/docs/design/LinkAuthorship.dc.html +139 -0
- package/docs/design/LinksChanged.dc.html +203 -0
- package/docs/design/LinksOptions.dc.html +137 -0
- package/docs/design/LinksOptions600.dc.html +134 -0
- package/docs/design/NearPin.dc.html +9 -10
- package/docs/design/Pane600.dc.html +4 -3
- package/docs/design/Relations.dc.html +3 -2
- package/docs/design/Restore.dc.html +152 -0
- package/docs/design/SeeChange.dc.html +267 -0
- package/docs/design/Uses.dc.html +12 -6
- package/docs/design/canvas.json +146 -19
- package/docs/design.md +449 -16
- package/docs/environment.md +0 -1
- package/docs/evals/curation-effect.md +128 -0
- package/docs/http-api.md +459 -37
- package/docs/mcp.md +146 -18
- package/docs/node-types.md +58 -3
- package/docs/plans/design-gaps-2026-10-08.md +53 -0
- package/docs/plans/plan-009-tech-debt-backlog.md +379 -0
- package/docs/plans/plan-016-context-made-visible-wave-1.md +150 -5
- package/docs/plans/plan-017-knowledge-categories-and-lifecycle.md +175 -0
- package/docs/plans/plan-018-connected-memory-wave-2.md +594 -0
- package/docs/plans/plan-019-post-0.9-roadmap.md +198 -0
- package/docs/product-context-vision-2026-09.md +17 -1
- package/docs/product-vision-2026-09.md +1082 -43
- package/docs/product-vision-review-2026-09.md +13 -1
- package/docs/screenshots/workbench-live-dark.png +0 -0
- package/docs/screenshots/workbench-live-light.png +0 -0
- package/docs/sdk.md +62 -2
- package/package.json +1 -1
- package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/runtime.json +1 -1
- package/plugins/pmx-canvas/plugin.json +1 -1
- package/plugins/pmx-canvas/runtime.json +1 -1
- package/plugins/pmx-canvas/tools.json +601 -22
- package/skills/pmx-canvas/SKILL.md +216 -42
- package/skills/pmx-canvas/references/full-reference.md +120 -21
- package/skills/pmx-canvas/references/github-copilot-app-adapter.md +2 -2
- package/skills/pmx-canvas/references/importing-context.md +132 -0
- package/skills/pmx-canvas/references/installing-pmx-canvas.md +6 -6
- package/skills/pmx-canvas/references/tours-and-recording.md +16 -1
- package/skills/pmx-canvas-testing/SKILL.md +20 -0
- package/src/cli/agent.ts +2 -0
- package/src/cli/commands/ax.ts +12 -0
- package/src/cli/commands/boards.ts +87 -11
- package/src/cli/commands/edges.ts +28 -0
- package/src/cli/commands/groups.ts +7 -0
- package/src/cli/commands/nodes.ts +1 -0
- package/src/cli/commands/query.ts +34 -2
- package/src/cli/commands/record.ts +199 -48
- package/src/cli/index.ts +6 -1
- package/src/client/App.tsx +177 -70
- package/src/client/canvas/AttentionHistory.tsx +0 -2
- package/src/client/canvas/BarHint.tsx +40 -2
- package/src/client/canvas/BoardCopyDialog.tsx +1 -1
- package/src/client/canvas/BoardFolderDialog.tsx +7 -7
- package/src/client/canvas/BoardLinkDialog.tsx +138 -33
- package/src/client/canvas/BoardPinButton.tsx +33 -0
- package/src/client/canvas/BoardSwitcher.tsx +26 -40
- package/src/client/canvas/CanvasNode.tsx +360 -237
- package/src/client/canvas/CanvasViewport.tsx +45 -7
- package/src/client/canvas/CommandBar.tsx +29 -23
- package/src/client/canvas/CommandPalette.tsx +5 -12
- package/src/client/canvas/ConnectionBanner.tsx +3 -3
- package/src/client/canvas/ContextChip.tsx +296 -0
- package/src/client/canvas/ContextMenu.tsx +63 -5
- package/src/client/canvas/CrossBoardReferences.tsx +60 -0
- package/src/client/canvas/EdgeLayer.tsx +339 -76
- package/src/client/canvas/EmptyState.tsx +33 -18
- package/src/client/canvas/ExpandedNodeOverlay.tsx +72 -40
- package/src/client/canvas/ExternalWriters.tsx +57 -42
- package/src/client/canvas/HomeGraphView.tsx +942 -0
- package/src/client/canvas/HomeMapView.tsx +641 -0
- package/src/client/canvas/HomeReviewView.tsx +167 -0
- package/src/client/canvas/HomeView.tsx +687 -160
- package/src/client/canvas/IntentLayer.tsx +19 -12
- package/src/client/canvas/KnowledgeDialog.tsx +488 -0
- package/src/client/canvas/LifecycleChrome.tsx +133 -0
- package/src/client/canvas/LifecycleFields.tsx +91 -0
- package/src/client/canvas/LifecyclePanel.tsx +533 -0
- package/src/client/canvas/MemoryInspector.tsx +104 -0
- package/src/client/canvas/Minimap.tsx +3 -3
- package/src/client/canvas/NearPinLayer.tsx +187 -0
- package/src/client/canvas/NodeContextMark.tsx +175 -97
- package/src/client/canvas/Presentation.tsx +23 -57
- package/src/client/canvas/RelationPresetsDialog.tsx +413 -0
- package/src/client/canvas/RelationsPanel.tsx +82 -0
- package/src/client/canvas/SelectionBar.tsx +3 -6
- package/src/client/canvas/SessionPanel.tsx +90 -50
- package/src/client/canvas/SessionReceipt.tsx +311 -39
- package/src/client/canvas/ShortcutOverlay.tsx +1 -1
- package/src/client/canvas/SnapshotPanel.tsx +27 -36
- package/src/client/canvas/ToolRail.tsx +367 -192
- package/src/client/canvas/TopBar.tsx +354 -124
- package/src/client/canvas/canvas-area.ts +10 -3
- package/src/client/canvas/graph-geometry.ts +195 -0
- package/src/client/canvas/graph-model.ts +254 -0
- package/src/client/canvas/memory-layout.ts +106 -0
- package/src/client/canvas/use-chrome-height.ts +20 -0
- package/src/client/canvas/use-focus-trap.ts +31 -5
- package/src/client/canvas/use-memory-graph.ts +58 -0
- package/src/client/canvas/use-node-drag.ts +2 -1
- package/src/client/canvas/use-pan-zoom.ts +64 -7
- package/src/client/icons.tsx +0 -63
- package/src/client/mcp-app/style.css +0 -6
- package/src/client/nodes/AxStepControls.tsx +74 -50
- package/src/client/nodes/BoardNode.tsx +5 -1
- package/src/client/nodes/ContextNode.tsx +18 -11
- package/src/client/nodes/ExtAppFrame.tsx +0 -1
- package/src/client/nodes/FileNode.tsx +46 -42
- package/src/client/nodes/HtmlNode.tsx +32 -0
- package/src/client/nodes/ImageNode.tsx +1 -1
- package/src/client/nodes/InlineFormatBar.tsx +6 -9
- package/src/client/nodes/InlineMarkdownEditor.tsx +56 -17
- package/src/client/nodes/MarkdownNode.tsx +377 -109
- package/src/client/nodes/McpAppNode.tsx +50 -20
- package/src/client/nodes/MdFormatBar.tsx +21 -18
- package/src/client/nodes/PromptNode.tsx +1 -1
- package/src/client/nodes/ResponseNode.tsx +1 -1
- package/src/client/nodes/viewer-runtime-state.ts +54 -22
- package/src/client/state/attention-bridge.ts +64 -15
- package/src/client/state/boards-store.ts +193 -39
- package/src/client/state/canvas-store.ts +99 -12
- package/src/client/state/context-chip-store.ts +70 -0
- package/src/client/state/context-status-store.ts +53 -0
- package/src/client/state/intent-bridge.ts +51 -30
- package/src/client/state/knowledge-store.ts +43 -0
- package/src/client/state/near-pin-store.ts +115 -6
- package/src/client/state/presence-store.ts +7 -10
- package/src/client/state/presentation.ts +91 -0
- package/src/client/state/relation-store.ts +81 -0
- package/src/client/state/session-store.ts +144 -18
- package/src/client/state/sse-bridge.ts +206 -29
- package/src/client/state/workspace-settings.ts +11 -0
- package/src/client/theme/global.css +2724 -476
- package/src/client/types.ts +12 -0
- package/src/client/utils/keyboard.ts +10 -0
- package/src/client/utils/time-ago.ts +14 -0
- package/src/json-render/renderer/index.tsx +31 -0
- package/src/mcp/canvas-app.ts +12 -2
- package/src/mcp/context-uri-template.ts +7 -4
- package/src/mcp/server.ts +63 -41
- package/src/mcp/workbench-app.ts +39 -6
- package/src/server/agent-presence.ts +128 -28
- package/src/server/ax-context.ts +27 -13
- package/src/server/board-export.ts +12 -1
- package/src/server/canvas-db.ts +331 -42
- package/src/server/canvas-operations.ts +195 -83
- package/src/server/canvas-provenance.ts +53 -22
- package/src/server/canvas-serialization.ts +2 -0
- package/src/server/canvas-state.ts +950 -122
- package/src/server/canvas-validation.ts +9 -2
- package/src/server/context-brief.ts +345 -38
- package/src/server/context-reads.ts +178 -30
- package/src/server/demo-state.json +355 -24
- package/src/server/edit-summary.ts +74 -0
- package/src/server/html-surface.ts +8 -1
- package/src/server/index.ts +181 -11
- package/src/server/knowledge-lifecycle.ts +304 -0
- package/src/server/lifecycle-status.ts +232 -0
- package/src/server/memory-graph.ts +166 -0
- package/src/server/mutation-history.ts +18 -6
- package/src/server/operations/composites.ts +32 -11
- package/src/server/operations/http.ts +7 -2
- package/src/server/operations/index.ts +4 -0
- package/src/server/operations/mcp.ts +26 -1
- package/src/server/operations/ops/ax-presence.ts +1 -1
- package/src/server/operations/ops/ax-read.ts +57 -6
- package/src/server/operations/ops/ax-timeline.ts +28 -2
- package/src/server/operations/ops/backup.ts +5 -3
- package/src/server/operations/ops/batch.ts +35 -4
- package/src/server/operations/ops/boards.ts +188 -47
- package/src/server/operations/ops/canvas-wire.ts +31 -1
- package/src/server/operations/ops/edges.ts +36 -2
- package/src/server/operations/ops/groups.ts +6 -1
- package/src/server/operations/ops/lifecycle.ts +262 -0
- package/src/server/operations/ops/memory-graph.ts +45 -0
- package/src/server/operations/ops/nodes.ts +107 -24
- package/src/server/operations/ops/query.ts +281 -68
- package/src/server/operations/ops/snapshots.ts +73 -1
- package/src/server/operations/ops/validate.ts +5 -1
- package/src/server/operations/ops/viewport.ts +97 -3
- package/src/server/operations/registry.ts +74 -25
- package/src/server/placement.ts +29 -0
- package/src/server/scope-fence.ts +78 -6
- package/src/server/server.ts +115 -16
- package/src/server/spatial-analysis.ts +48 -23
- package/src/server/tour-control.ts +82 -0
- package/src/server/wiki-links.ts +137 -0
- package/src/server/workbench-auth.ts +11 -0
- package/src/shared/agent-context.ts +3 -0
- package/src/shared/agent-presence.ts +15 -15
- package/src/shared/auto-arrange.ts +2 -0
- package/src/shared/boards.ts +4 -4
- package/src/shared/knowledge-lifecycle.ts +22 -0
- package/src/shared/knowledge-presets.ts +80 -0
- package/src/shared/lifecycle-status.ts +26 -0
- package/src/shared/memory-graph.ts +74 -0
- package/src/shared/relations.ts +98 -0
- package/src/shared/semantic-attention.ts +15 -1
- package/src/shared/tour.ts +23 -5
- package/src/shared/workspace-settings.ts +13 -0
- package/dist/types/client/canvas/ContextPinBar.d.ts +0 -1
- package/dist/types/client/canvas/FocusFieldLayer.d.ts +0 -1
- package/dist/types/client/canvas/kind-colors.d.ts +0 -3
- package/dist/types/server/agent-context.d.ts +0 -22
- package/src/client/canvas/ContextPinBar.tsx +0 -25
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Eval: how much does curation change the work?
|
|
2
|
+
|
|
3
|
+
**Status:** ready to run; no runs scored yet. Written 2026-10-07. A benchmark rerun on every
|
|
4
|
+
release, for continuous improvement, not a one-off verdict (decided with the maintainer,
|
|
5
|
+
2026-10-07). **Scheduled last (2026-10-19):** the first run and the per-release reruns wait
|
|
6
|
+
until the end of the [post-0.9.0 plan](../plans/plan-019-post-0.9-roadmap.md); until then
|
|
7
|
+
they gate nothing.
|
|
8
|
+
**Source:** [vision](../product-vision-2026-09.md#part-1-the-foundation) Part 1, item 4 (effect);
|
|
9
|
+
[plan 016](../plans/plan-016-context-made-visible-wave-1.md) slice 6.
|
|
10
|
+
**Fixture:** [`scripts/eval-curation/board.ts`](../../scripts/eval-curation/board.ts), guarded by
|
|
11
|
+
`tests/unit/eval-curation-board.test.ts`.
|
|
12
|
+
|
|
13
|
+
The board, task and rubric are fixed so scores compare across releases. Changing one voids
|
|
14
|
+
the comparison with earlier results; add a new case beside this one instead of editing it.
|
|
15
|
+
|
|
16
|
+
## The question
|
|
17
|
+
|
|
18
|
+
The same task, with the brief delivered, on a curated and an uncurated copy of the same board.
|
|
19
|
+
How good is the work in each condition, what does retrieval cost, and what contribution does
|
|
20
|
+
curation make? Improve useful outcomes, not the size of the difference between conditions.
|
|
21
|
+
With one real user this is a test case, not statistics; real sessions only confirm or
|
|
22
|
+
contradict it.
|
|
23
|
+
|
|
24
|
+
## The board
|
|
25
|
+
|
|
26
|
+
"Team tier pricing — Q4": 30 Markdown cards written over a quarter, oldest first. It holds early
|
|
27
|
+
research, a first decision (Team to $20, August) that a later one supersedes (Team to $24,
|
|
28
|
+
September), a finance ceiling ($25 until the Q2 billing migration), a churn readout, a competitor
|
|
29
|
+
price update (Rival to $29), and realistic distractors (roadmap, hiring, transcripts, glossary).
|
|
30
|
+
|
|
31
|
+
- **Curated:** the current decision, the finance ceiling, the churn readout and the competitor
|
|
32
|
+
update are pinned (`PINNED_KEYS`), with the reason "what this task rests on".
|
|
33
|
+
- **Uncurated:** the same cards, order and layout, no pins.
|
|
34
|
+
|
|
35
|
+
Since 2026-10-07 the brief is a map, not a dump: every card arrives as its title and a short
|
|
36
|
+
summary (with its relations, and why it was pinned), and the agent pulls whatever it wants in
|
|
37
|
+
full. So both boards deliver all 30 cards. Curation changes what the agent is told matters: the
|
|
38
|
+
four pinned cards lead the curated brief, marked `pinned`, while the uncurated brief runs oldest
|
|
39
|
+
first, with the superseded $20 decision ahead of the current $24 one. The fixture test guards
|
|
40
|
+
exactly that.
|
|
41
|
+
|
|
42
|
+
## What it measures
|
|
43
|
+
|
|
44
|
+
Given the same map, does curation make the agent pull and use the right cards? Score the
|
|
45
|
+
answer (rubric below) and record **which cards it pulled in full** (`canvas_ax_timeline {
|
|
46
|
+
action: "read-status", board }` after the run: a card is read only when pulled). The pulls
|
|
47
|
+
explain the score: a missed current decision that was never pulled is a curation or ranking
|
|
48
|
+
miss; one that was pulled and misread is a model miss.
|
|
49
|
+
|
|
50
|
+
Record retrieval cost separately from the answer rubric: brief-page requests, full-card pulls
|
|
51
|
+
(including repeats), elapsed task time, and host-reported tokens when available. Count only the
|
|
52
|
+
run's reads, not the evaluator's inspection calls. Keep character counts and estimated tokens
|
|
53
|
+
distinct from measured tokens; missing instrumentation is unknown, not zero. Lower cost is an
|
|
54
|
+
improvement at comparable quality, not a reason to skip evidence needed for a correct answer.
|
|
55
|
+
|
|
56
|
+
## Protocol
|
|
57
|
+
|
|
58
|
+
1. **Scratch workspace.** Start a server on a scratch workspace or database, never your real
|
|
59
|
+
boards: `PMX_CANVAS_DB_PATH=<scratch>/canvas.db pmx-canvas serve --daemon --port=<port>`.
|
|
60
|
+
2. **Seed.** `PMX_CANVAS_URL=http://127.0.0.1:<port> bun run scripts/eval-curation/seed.ts`.
|
|
61
|
+
It prints both board ids and leaves Home open.
|
|
62
|
+
3. **One run** = open the run's board (`canvas_board open`), start a **fresh** agent
|
|
63
|
+
session with PMX Canvas connected and no other context, and send `TASK_PROMPT` from
|
|
64
|
+
`board.ts` verbatim. Save the final answer as `run-<random id>.md`, and note the id and board
|
|
65
|
+
in a separate key file, with the cards the agent pulled (step 4).
|
|
66
|
+
4. **Delivery check, every run.** After the run, `canvas_ax_timeline { action: "read-status",
|
|
67
|
+
board }` and the read log must show a brief read during the session, with the four pins in
|
|
68
|
+
its delivered pins for curated runs. Record the cards read (pulled in full). A run without a confirmed brief read is a delivery failure: record it, do not
|
|
69
|
+
score it, and fix the adapter rather than doubt the thesis.
|
|
70
|
+
5. **Runs.** Three per board with the same host and model: 6 runs. Alternate curated and
|
|
71
|
+
uncurated. Record host, model, relevant configuration, product version, date and per-run
|
|
72
|
+
retrieval costs. Keep those conditions comparable between releases; changing the model or
|
|
73
|
+
host starts a separate comparison series. Three runs per condition are diagnostic, not
|
|
74
|
+
enough to make small score differences a statistical release gate.
|
|
75
|
+
6. **Blind scoring.** Score the answer files in shuffled order without the key file, using the
|
|
76
|
+
rubric below, then join scores to the key.
|
|
77
|
+
|
|
78
|
+
## Rubric (0–10 per run)
|
|
79
|
+
|
|
80
|
+
| # | Criterion | 2 | 1 | 0 |
|
|
81
|
+
|---|---|---|---|---|
|
|
82
|
+
| R1 | Current decision | Recommends $25 or less and identifies $24 (September) as the current decision | Recommends $25 or less without the current decision | Treats $20 as current, or recommends more than $25 for Q4 |
|
|
83
|
+
| R2 | Finance ceiling | States the $25 ceiling until the Q2 billing migration | Mentions a finance or billing limit vaguely | Absent |
|
|
84
|
+
| R3 | Churn evidence | Cites churn 2.2% vs 2.1% and the higher small-team churn | Cites one of the two | Absent or wrong |
|
|
85
|
+
| R4 | Competitor | Uses Rival at $29 | Uses the July $22 and flags it may be stale | Uses $22 as current, or absent |
|
|
86
|
+
| R5 | Small teams | Addresses teams under 10 seats (a separate price or plan) | Mentions small teams without a recommendation | Absent |
|
|
87
|
+
|
|
88
|
+
Penalties: **−2** for presenting the superseded $20 decision as current; **−2** for any number
|
|
89
|
+
stated as fact that is not on the board. The minimum score is 0.
|
|
90
|
+
|
|
91
|
+
## How results are used
|
|
92
|
+
|
|
93
|
+
From [plan 019](../plans/plan-019-post-0.9-roadmap.md) step 6 onward, run the eval on every release
|
|
94
|
+
that touches the brief, pins, budgets or adapters, and at least once per minor version. Record absolute scores and retrieval costs for **both conditions**,
|
|
95
|
+
all run scores (not only means), delivery failures, and the cards each run pulled. Also record
|
|
96
|
+
the **curation gap**: curated mean minus uncurated mean, with delivery confirmed in every
|
|
97
|
+
scored run. Excluding a delivery failure from scoring does not remove it from the report.
|
|
98
|
+
|
|
99
|
+
- **Quality first; cost alongside it.** Improve absolute answer quality and delivery reliability
|
|
100
|
+
in both conditions. At comparable quality, fewer unnecessary reads, lower token use or shorter
|
|
101
|
+
task time are useful improvements. Make quality/cost tradeoffs explicit rather than collapsing
|
|
102
|
+
them into a single score.
|
|
103
|
+
- **Use the gap diagnostically, not as a target.** Curated 8 → 9 and uncurated 5 → 8 narrows the
|
|
104
|
+
gap from 3 to 1 while both improve. Curated 8 → 8 and uncurated 5 → 3 widens it from 3 to 5
|
|
105
|
+
while one condition regresses. Neither gap direction alone establishes product improvement.
|
|
106
|
+
- **Investigate regressions.** Broken delivery is a defect to fix before release. A lower
|
|
107
|
+
absolute score or higher retrieval cost under comparable conditions triggers inspection of
|
|
108
|
+
the lost rubric points and repeat runs. Reproducible quality loss is a regression; unexplained
|
|
109
|
+
cost increases need resolution or a documented quality tradeoff. Do not block a release merely
|
|
110
|
+
because the gap shrank or a small diagnostic sample varied.
|
|
111
|
+
- **Read the misses.** For each run below 10, note which rubric line it lost and why (not
|
|
112
|
+
delivered, delivered but ignored, misread). That note is the improvement backlog.
|
|
113
|
+
- **Add cases, keep this one.** New boards (another domain, a larger board, cross-board pins)
|
|
114
|
+
sit beside this case so the history of this one stays comparable.
|
|
115
|
+
|
|
116
|
+
## Results
|
|
117
|
+
|
|
118
|
+
Per release:
|
|
119
|
+
|
|
120
|
+
| Version | Host / model / config | Date | Curated mean | Uncurated mean | Gap | Delivery failures / attempts | Costs by condition | Notes (lost lines, variation) |
|
|
121
|
+
|---|---|---|---|---|---|---|---|---|
|
|
122
|
+
|
|
123
|
+
Per run (kept for the misses):
|
|
124
|
+
|
|
125
|
+
| Run id | Version | Board | Delivery | Cards pulled | Brief requests / full pulls | Elapsed time | Tokens (measured / estimated / unknown) | R1 | R2 | R3 | R4 | R5 | Penalty | Total | Lost lines, why |
|
|
126
|
+
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
127
|
+
|
|
128
|
+
Not yet run.
|