72b77566c5
CROSSES TWO BOUNDARIES OUTSIDE THIS AGENT'S GROUND, deliberately and reported: web/demo.improv and harness/tests/contract.spec.js. Dropping the invented Default view takes the shipped demo from two views to one, and the spec asserted the phantom in two places -- improvise-m4rv's acceptance criteria name the spec directly. The load-bearing half is the improvise-iioi click test, which needs the view panel to hold two rows so that a click can name a DIFFERENT row than the cursor does; with one view both readings give the same answer and the test stops discriminating. The phantom was supplying that second row by accident. So the demo gains a real second view, Season -- a genuine alternate pivot (Quarter by measure, paged by Product) rather than an auto-arrangement. Plan stays first and stays Initial View, so the cursor still starts at index 0 and tests/web_demo_model.rs is unaffected: every visible cell of the ACTIVE view is still a Record (gotcha 46). Verified by cargo. The spec's axis assertion at index 0 moves from the phantom's "R:Product C:Quarter" to Plan's own "R:Product P:Quarter", derived from viewmodel::view_axis_summary rather than guessed. NOT VERIFIED: harness/ has no node_modules and web/pkg is unbuilt here, so Playwright could not be run. These edits are mechanical substitutions and need a browser-job run before they are believed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FC2jVn8Au7E9JPkw6bwXXH
66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
v2025-04-09
|
|
# Corner Coffee — 2025
|
|
Initial View: Plan
|
|
|
|
## View: Plan
|
|
Product: row
|
|
_Measure: column
|
|
Quarter: page, Q1
|
|
_Index: none
|
|
_Dim: none
|
|
format: ,.0
|
|
|
|
## View: Season
|
|
Quarter: row
|
|
_Measure: column
|
|
Product: page, Latte
|
|
_Index: none
|
|
_Dim: none
|
|
format: ,.0
|
|
|
|
## Formulas
|
|
- Profit = Revenue - Cost
|
|
|
|
## Category: _Measure
|
|
- Revenue, Cost
|
|
|
|
## Category: Product
|
|
- Espresso, Latte, |Cold Brew|, Pastry
|
|
|
|
## Category: Quarter
|
|
- Q1, Q2, Q3, Q4
|
|
|
|
## Data
|
|
Product=Espresso, Quarter=Q1, _Measure=Revenue = 18400
|
|
Product=Espresso, Quarter=Q1, _Measure=Cost = 6200
|
|
Product=Espresso, Quarter=Q2, _Measure=Revenue = 17100
|
|
Product=Espresso, Quarter=Q2, _Measure=Cost = 5900
|
|
Product=Espresso, Quarter=Q3, _Measure=Revenue = 15800
|
|
Product=Espresso, Quarter=Q3, _Measure=Cost = 5400
|
|
Product=Espresso, Quarter=Q4, _Measure=Revenue = 20300
|
|
Product=Espresso, Quarter=Q4, _Measure=Cost = 6900
|
|
Product=Latte, Quarter=Q1, _Measure=Revenue = 24600
|
|
Product=Latte, Quarter=Q1, _Measure=Cost = 9100
|
|
Product=Latte, Quarter=Q2, _Measure=Revenue = 23800
|
|
Product=Latte, Quarter=Q2, _Measure=Cost = 8800
|
|
Product=Latte, Quarter=Q3, _Measure=Revenue = 22400
|
|
Product=Latte, Quarter=Q3, _Measure=Cost = 8300
|
|
Product=Latte, Quarter=Q4, _Measure=Revenue = 27900
|
|
Product=Latte, Quarter=Q4, _Measure=Cost = 10200
|
|
Product=|Cold Brew|, Quarter=Q1, _Measure=Revenue = 9200
|
|
Product=|Cold Brew|, Quarter=Q1, _Measure=Cost = 3400
|
|
Product=|Cold Brew|, Quarter=Q2, _Measure=Revenue = 14600
|
|
Product=|Cold Brew|, Quarter=Q2, _Measure=Cost = 5300
|
|
Product=|Cold Brew|, Quarter=Q3, _Measure=Revenue = 17300
|
|
Product=|Cold Brew|, Quarter=Q3, _Measure=Cost = 6200
|
|
Product=|Cold Brew|, Quarter=Q4, _Measure=Revenue = 8100
|
|
Product=|Cold Brew|, Quarter=Q4, _Measure=Cost = 3000
|
|
Product=Pastry, Quarter=Q1, _Measure=Revenue = 11500
|
|
Product=Pastry, Quarter=Q1, _Measure=Cost = 5200
|
|
Product=Pastry, Quarter=Q2, _Measure=Revenue = 10900
|
|
Product=Pastry, Quarter=Q2, _Measure=Cost = 4900
|
|
Product=Pastry, Quarter=Q3, _Measure=Revenue = 10200
|
|
Product=Pastry, Quarter=Q3, _Measure=Cost = 4600
|
|
Product=Pastry, Quarter=Q4, _Measure=Revenue = 13400
|
|
Product=Pastry, Quarter=Q4, _Measure=Cost = 6000
|