pi-bro 0.10.0 → 0.11.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/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to pi-bro are documented here.
4
4
 
5
+ ## [0.11.0] - 2026-09-09
6
+
7
+ ### Changed
8
+
9
+ - Rewrote the `/bro show` prompt from single-diagram shrinking to subject-first decomposition: find what the user actually wanted and what is true now, never diagram tool chronology (tool invocations, retries, git/gh commands, test runs) unless the process itself is the subject, and treat fetching, reading, editing, and testing as sub-steps rather than separate concerns. One concern still yields exactly one shape; multiple concerns yield a small overview plus 2–4 focused shapes that each add information instead of restating one another. Read-only pages, reviews, and analyses now keep their substance instead of collapsing to labels, while incidental orientation reads and process noise are omitted. Prose and research subjects degrade to a compact outline or comparison.
10
+
11
+ ### Development
12
+
13
+ - Added a `/bro show` decomposition validation set under `benchmark/fixtures/decomposition/`: seven serialized-transcript fixtures mined from real pi-bro sessions (one shallow single-concern baseline, four medium multi-concern, one deep, one cross-cutting stretch case), a manifest recording each window's expected concerns and expected shape count, and a 15-check binary rubric (coverage, decomposition, simplicity, coherence, traceability, usefulness) for grading outputs without 1–5 scores. Personal emails in the fixtures are redacted. Grading is manual; nothing here runs in `npm test`.
14
+
15
+ ## [0.10.1] - 2026-09-09
16
+
17
+ ### Development
18
+
19
+ - Added release automation: merging a PR that bumps the version now tags it, publishes to npm through trusted publishing (OIDC, with provenance), and creates the matching GitHub release. CI validates the bump against npm before merge, and a daily sync check reports any npm/GitHub drift. No packaged files changed in this release.
20
+
5
21
  ## [0.10.0] - 2026-09-07
6
22
 
7
23
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-bro",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "An Earendil Pi extension that explains pasted text, assistant responses, local documents, public webpages, and recent session turns (as shapes) in a context-isolated window.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/prompt.ts CHANGED
@@ -30,9 +30,13 @@ export function buildDefaultPrompt(response: string, mode: BroMode): string {
30
30
  // docs/plans/2026-09-07-bro-show-visual-design.md, "Separation decision".
31
31
  export const SHOW_PROMPT = `You are helping a developer understand what just happened in a coding session. Reply with shapes, not paragraphs.
32
32
 
33
+ Find the subject first: what did the user actually want to know or accomplish, and what is true now as a result? Build every shape around that subject, never around the order in which tools were run. A session transcript is raw material, not a structure to reproduce. Do not draw tool invocations, retries, git/gh commands, or test runs unless the user explicitly asked about that process. A call tree renders the target code's own function-call structure, not the assistant's tool sequence.
34
+
33
35
  Begin immediately with the first shape's single framing line — no greeting, no intro, no summary of what you are about to do. Each shape gets one short framing line above it and nothing below it.
34
36
 
35
- Pick the smallest view that makes the point. Use one or a few shapes, never every form at once:
37
+ Decompose second, then draw. Identify distinct concerns as separate questions or areas of change (runtime flow, file ownership, state change, UI structure, config, release steps, etc.), not sub-steps or intermediate artifacts of one task. For one concern, one concern → one shape: output exactly one focused shape — no overview and no secondary shape. Fetching, reading, editing, and testing are usually sub-steps, not separate concerns; show them only when the process itself is the subject. For multiple concerns, output one small overview that relates the parts, then one focused shape per concern: overview + 2–4 focused shapes at most, never a full document, never every form at once. Each focused shape must add information rather than restating another shape. Split when concerns cross boundaries or answer different questions; never merge distinct dimensions (layout vs runtime vs diff) into one god-diagram. Order shapes as a logical progression (context/cause → effect/diff) matching the subject, not tool chronology.
38
+
39
+ Pick the smallest view that makes the point. Use one form per shape, kept shallow (depth ≤ 3–4 levels). Preserve substance, not just labels: if a read-only file, page, review, or analysis contains the actual answer, include its relevant content. Omit only incidental orientation reads, file inventories, temporary artifacts, and process noise. For prose or research subjects, prefer a compact outline or comparison over a technical activity diagram:
36
40
  - Pseudocode for logic or an algorithm
37
41
  - A call tree for runtime control flow
38
42
  - A component tree for UI structure, including the state and module boundaries that matter, with file paths in parentheses
@@ -42,7 +46,7 @@ Pick the smallest view that makes the point. Use one or a few shapes, never ever
42
46
  - The whole block when most of it is new, when omitted context would hide ownership or order, or when the reader needs a copyable target shape
43
47
 
44
48
  Hard rules:
45
- - Traceability: every path, function, command, flag, and number in your output must appear verbatim in the quoted source. Never invent, guess, or complete a name from world knowledge; if a name might not be in the source, leave it out.
49
+ - Traceability: every path, function, command, flag, and number in your output must appear verbatim in the quoted source. Every drawn relationship or arrow must correspond to an explicit call, import, or execution event in the transcript — never connect two co-present tokens without evidence. Never invent, guess, or complete a name from world knowledge; if a name might not be in the source, leave it out.
46
50
  - Every terminal shape — pseudocode, trees, diffs — is a fenced monospace block in the reply body.
47
51
  - Never wrap identifiers or paths in Markdown links; write them as plain text.
48
52
  - At most one \`\`\`html fenced block, only as the very last block of the reply, self-contained with no external resources, reserved for layout, state comparison, or concepts too dense for text. Mermaid syntax only inside that html fence; never write bare mermaid.