Repository navigation
FE-1652: Keep Brunch planning protocols outside the product repository - #9810
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryMedium Risk Overview Removes the headless runbook construction path: deletes CI and Turbo follow the slimmer tree: the prune action no longer copies Reviewed by Cursor Bugbot for commit 5c01631. Bugbot is set up for automated code reviews on this repo. Configure here. |
TimDiekmann
left a comment
There was a problem hiding this comment.
infra ✅, still requires code reviewer.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9810 +/- ##
==========================================
+ Coverage 65.56% 65.83% +0.27%
==========================================
Files 1896 1900 +4
Lines 201506 209432 +7926
Branches 8028 8185 +157
==========================================
+ Hits 132115 137884 +5769
- Misses 67841 70002 +2161
+ Partials 1550 1546 -4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Merging this PR will improve performance by 18.61%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ⚡ | bit_matrix/dense/iter_row[64] |
169.2 ns | 140 ns | +20.83% |
| ⚡ | bit_matrix/dense/iter_row[200] |
206.7 ns | 177.5 ns | +16.43% |
as_constant |
< 1 ns | < 1 ns | N/A | |
constant_equal |
< 1 ns | < 1 ns | N/A | |
constant_not_equal |
< 1 ns | < 1 ns | N/A | |
access |
< 1 ns | < 1 ns | N/A | |
runtime_equal |
< 1 ns | < 1 ns | N/A | |
runtime_not_equal |
< 1 ns | < 1 ns | N/A |
Tip
Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ln/reduce-brunch-process (5c01631) with main (2b08b38)1
Footnotes
Benchmark results
|
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 2002 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 1002 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: high, policies: 3314 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: medium, policies: 1527 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 2078 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 1033 | Flame Graph |
policy_resolution_medium
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 102 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 52 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: high, policies: 269 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: medium, policies: 108 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 133 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 63 | Flame Graph |
policy_resolution_none
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 2 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 2 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 8 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 3 | Flame Graph |
policy_resolution_small
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 52 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 26 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: high, policies: 94 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: seeded, selectivity: medium, policies: 27 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 66 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | Flame Graph | |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 29 | Flame Graph |
read_scaling_complete
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_id;one_depth | 1 entities | Flame Graph | |
| entity_by_id;one_depth | 10 entities | Flame Graph | |
| entity_by_id;one_depth | 25 entities | Flame Graph | |
| entity_by_id;one_depth | 5 entities | Flame Graph | |
| entity_by_id;one_depth | 50 entities | Flame Graph | |
| entity_by_id;two_depth | 1 entities | Flame Graph | |
| entity_by_id;two_depth | 10 entities | Flame Graph | |
| entity_by_id;two_depth | 25 entities | Flame Graph | |
| entity_by_id;two_depth | 5 entities | Flame Graph | |
| entity_by_id;two_depth | 50 entities | Flame Graph | |
| entity_by_id;zero_depth | 1 entities | Flame Graph | |
| entity_by_id;zero_depth | 10 entities | Flame Graph | |
| entity_by_id;zero_depth | 25 entities | Flame Graph | |
| entity_by_id;zero_depth | 5 entities | Flame Graph | |
| entity_by_id;zero_depth | 50 entities | Flame Graph |
read_scaling_linkless
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_id | 1 entities | Flame Graph | |
| entity_by_id | 10 entities | Flame Graph | |
| entity_by_id | 100 entities | Flame Graph | |
| entity_by_id | 1000 entities | Flame Graph | |
| entity_by_id | 10000 entities | Flame Graph |
representative_read_entity
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/block/v/1
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1
|
Flame Graph | |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1
|
Flame Graph |
representative_read_entity_type
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| get_entity_type_by_id | Account ID: bf5a9ef5-dc3b-43cf-a291-6210c0321eba
|
Flame Graph |
representative_read_multiple_entities
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_property | traversal_paths=0 | 0 | |
| entity_by_property | traversal_paths=255 | 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true | |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false | |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true | |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true | |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true | |
| link_by_source_by_property | traversal_paths=0 | 0 | |
| link_by_source_by_property | traversal_paths=255 | 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true | |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false | |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true | |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true | |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true |
scenarios
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| full_test | query-limited | Flame Graph | |
| full_test | query-unlimited | Flame Graph | |
| linked_queries | query-limited | Flame Graph | |
| linked_queries | query-unlimited | Flame Graph |
There was a problem hiding this comment.
Nice cleanup! Easier to navigate, and removing planning material from product and CI paths makes sense.
A few notes:
The deleted ADRs and mission archive were historical, but held rationale for the current core/plugin shape. If that moves elsewhere, could the README link to it?
ARCHITECTURE.md omits draft_petrinaut_experiment, while EVALUATIONS.md lists seven of eight cases. Pointing to tool-catalogue.ts and --list-cases would avoid duplicate inventories.
client-integration.mdx still links to the deleted topology.md.
Non-blocking; noting for follow-up. Approving.
🌟 What is the purpose of this PR?
Brunch's repository guidance had accumulated branch-specific planning machinery — missions, successor spines, ADRs, agent workflow protocols, archived research, evidence ledgers, evaluation protocols and oracles — alongside the durable product and development guidance. That made temporary process look like part of Brunch's permanent operating contract, and it forced CI to copy those directories into pruned builds.
This PR removes that planning machinery from the product repository and replaces it with two short documents describing what exists now: an implementation
ARCHITECTURE.mdand anEVALUATIONS.mdfor the one retained evaluation surface (browser-visible persona runs). Runtime code, prompts, skills and persona cases are unchanged apart from comment and guidance pointers.🔗 Related links
🚫 Blocked by
None.
🔍 What does this change?
AGENTS.md,CLAUDE.md,CONTEXT.md,MISSION.mdandMISSION.next.md, plusdocs/adr/,docs/agents/,docs/archive/,docs/evidence/,docs/mission-*,docs/reference/,docs/research/anddocs/specs/.evaluations/, keeping only the persona cases (opening-message.mdandsituation-pack.md).runbook:headless,src/evaluations/runbook/construction-run.ts) and its README section.libs/@hashintel/brunch-agent/ARCHITECTURE.md(runtime composition, conversation and workpiece authority, invariants) andEVALUATIONS.md(persona-run operation and limits), and rewrites the BrunchREADME.mdas a package map.apps/brunch-agent/AGENTS.mdto HASH root guidance plus the application's dependency boundary, and restates the Flue/Pi patch boundary as a whole.libs/@hashintel/brunch-agent/{docs,evaluations}in theprune-repositoryaction and removes those paths from@apps/brunch-agenttest inputs inturbo.json.apps/petrinaut-website/MISSION.md, the persona-testing guide and anet-ledger.tscomment so nothing points at the deleted mission documents.Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
turbo.json's have been updated to reflect thisEVALUATIONS.mdlists seven maintained persona cases, butevaluations/cases/support-desk-staffing/is also retained and discoverable by the launcher.apps/brunch-agent/test/fixtures/provider-accounting/,plugin-sdcpn/test/fixtures/reconciliation/) still namedocs/evidence/...paths as the provenance of their checked-in fixtures. The fixtures remain self-contained; only the provenance references now point at deleted history.apps/petrinaut-website/README.mdstill refers to itsMISSION.mdas current, while this PR marks that file as historical FE-1722 scope.🐾 Next steps
🛡 What tests cover this?
@apps/brunch-agentand Brunch package suites pass in CI without the removed directories in the pruned build inputs.❓ How to test this?
git grep -nE 'MISSION(\.next)?\.md|CONTEXT\.md|docs/adr|brunch-agent/docs/evidence' -- apps libs/@hashintel/brunch-agent .githubreturns only the fixture provenance and website README references listed under known issues.yarn brunch:persona --list-casesstill lists the persona cases.yarn workspace @apps/brunch-agent test:unitStack created with GitHub Stacks CLI • Give Feedback 💬