Skip to content

PE hyperstack: reflect panel mode - every relevant lens at once - #132

Merged
KailasMahavarkar merged 1 commit into
mainfrom
f-PE-hyperstack-reflect-panel
Jul 18, 2026
Merged

PE hyperstack: reflect panel mode - every relevant lens at once#132
KailasMahavarkar merged 1 commit into
mainfrom
f-PE-hyperstack-reflect-panel

Conversation

@KailasMahavarkar

Copy link
Copy Markdown
Collaborator

Adds panel mode to reflect: truly generalist reflection - the screen reviewed from every RELEVANT lens at once, each in its own voice, tensions surfaced with winners, blocker classes vetoing. Builds on the 8-archetype roster from #131.

Changes

File Intent
src/plugins/reflect/snippets/rules/panel-protocol.txt new MCP-served protocol: relevance-based assembly (3-5 lenses; Sam on every interactive-screen panel), own-voice rule, named collisions with per-product winners, class-owned blocker vetoes, verdict synthesis
src/plugins/reflect/tools/get-panel.ts new reflect_get_panel tool (4th): protocol + voice rules + seated lens docs in one call; optional ids scope
skills/reflect/SKILL.md Panel mode section + description trigger ("get everyone's read")
personas/reflect/{persona.json, LIFECYCLE.md} multi-persona-panel capability + panel lifecycle
tests/reflect-behaviour.test.ts get_panel scoping test (ids subset excludes unseated lenses; full call seats all)
bootstrap bullet + INDEX recompiled/regenerated

Key protocol rules

  • Relevance, not headcount - seat the 3-5 lenses the product actually has as customers; all 8 only on request.
  • Own voice or it failed - if two lens lines could swap speakers, the panel is one lens repeated.
  • Collisions get winners - speed vs trust, depth vs 8-second patience, polish vs accessibility: named, with who wins for THIS product.
  • Vetoes belong to the class, not the seat - an accessibility/security/compliance breach fires even when its natural owner is unseated (gap found live by the pressure test, closed here).

Pressure-test evidence

Scenario: "get me everyone's read" on a devtool pricing page (card-required free tier, seat pricing, checkout-revealed annual billing, Escape-proof modal, pulsing badge).

  • Seated Kenji + Sandra + Zoe + Sam exactly per the protocol's devtool prescription; Morgan/Diane/Max/Riley correctly left out.
  • 4 distinct voices (self-report: only one near-swap, defensible convergence); 3 collisions named with winners; verdict table + one panel call.
  • Sam's keyboard-trap veto fired per the veto line; the checkout-reveal billing exposed the seat-bound compliance-veto gap - protocol now class-owned.

Verification

  • bun test: 87 pass, 0 fail (was 86; +1 panel test)
  • tsc --noEmit: clean
  • bun run compile:context + skills:index: regenerated
  • em-dash sweep: clean

Truly generalist reflection: a panel of the lenses the product actually
has as customers, not one archetype at a time.

- rules/panel-protocol.txt (new, MCP-served): relevance-based assembly
  (3-5 seated lenses; Sam on every interactive-screen panel), own-voice
  rule (swappable lines = failed panel), named collisions with a winner
  per collision for THIS product, blocker vetoes that belong to the
  CLASS not the seat (accessibility, security/data, compliance/deceptive
  practice fire even when their natural owner is unseated), one panel
  call + veto-clearing fix named before highest-leverage fix
- reflect_get_panel (new tool, 4th): protocol + shared voice rules +
  seated lens docs in one call; optional ids scope the panel
- SKILL/LIFECYCLE/persona.json/bootstrap bullet wired for panel mode

Pressure evidence: devtool pricing page panel seated Kenji+Sandra+Zoe+Sam
per protocol, voices stayed distinct, 3 collisions named with winners,
Sam's keyboard-trap veto fired; test surfaced the seat-bound compliance
veto gap - closed by making vetoes class-owned. 87 tests pass (new
get_panel scoping test).
@KailasMahavarkar
KailasMahavarkar merged commit 24bebd5 into main Jul 18, 2026
3 checks passed
@KailasMahavarkar
KailasMahavarkar deleted the f-PE-hyperstack-reflect-panel branch July 18, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant