Now, as a week

The single focus card was meant to be calming and was interrogating instead — one item, no view of what sits behind it, and a reader who fills the gap themselves. So Now becomes a period with a bounded set inside it: a few things, ordered so the work never catches up with them, and you choose which one to pick up. The set holds until the week ends. Nothing refills mid-week, which is how a list that shrinks can report progress without ever printing a fraction.

1 · The week, one row per decision
Cap of five. One carries a date and keeps the hero; the other four are the ramp. Drawn first because it is the version that fails — read it against frame 2.
The whole week is cabinets, and that is the failure

Four of the five slots went to one order from one supplier, because cabinets is a single workstream at sort_order 350 carrying seven library decisions, and four of them are open in this kitchen at once. The ordering is correct — these genuinely are next — and the week still reads as though the house has stopped being a house and become a cabinet catalog. Nothing in the bathroom, nothing outside, nothing the reader can switch to when they stall on cabinet doors. The freedom the period was supposed to buy is gone, spent on adjacent variations of one question.

The dated one keeps the hero, and only it

Island electrical is the one decision with a real needed-by inside the period, so it takes the top rung of the hero and the card shape 10 already earned for it, teardrop intact. Everything under it is the ramp, as rows of equals. The hierarchy is date or no date — not importance, not a score.

The money came off this card — ruled 2026-08-15

Settled by Thursday $0 against Settled after $1,200 is the most persuasive pair of figures in the product, and it is 102px on a card that now has a list under it to protect. Both figures move one tap in, to the decision itself, together: the pair rule says the two are meaningless apart, so this is a removal and never a trim. What survives here is the consequence in words — after that it's a wall to open — which is the same argument at a tenth of the height. The rule for when the pair is drawn is now positional rather than per-screen: the hero shows the pair when the hero is the only thing on the screen, which is true on frame 8 and on no other frame in this deck.

Monday fills the gaps — and only Monday

Settling something removes it and pulls nothing in. A steady-state five that always reads five is a queue, and a queue never feels finished; a set that empties as you work it is the only progress signal this screen is allowed, since it may not print a fraction. Carryover takes priority over new arrivals at roll-over, so a week nobody touched cannot hand the next week ten.

2 · The same week, clustered
Identical cap, identical ordering, one rule added: three or more decisions sharing a workstream collapse to a single row and spend a single slot. Four rooms instead of one.
Nobody has this one moved to the bottom — ruled 2026-08-15

10 put it first among the bands, and it was right for the screen it was written on: one card, one band, and leading was the only way to be seen. Against a five-row week it cost the entire ramp its place above the fold to say one thing about one decision in a mudroom. It is unowned, which is a fact about who is on the hook — not a claim that it is next, and lane order on this screen means next. It keeps its own header, its Take it affordance and its guarantee of never being omitted. It just stops going first.

A cluster spends one slot, not four

Three or more open decisions sharing a primary workstream collapse into one row, and the cap counts rows. The three slots that frees go to the next three items in ramp order, which is how the same five-item week grows from one room to two and from one trade to four. Nothing was hidden and nothing was reordered: the four cabinet decisions are still first, still next, still one tap away.

The threshold is three, and two is deliberately not enough

Two rows naming themselves are clearer than one row hiding two, and a reader who opens a cluster to find a pair has been made to work for nothing. Three is where the label stops being a lie about how much it saves you.

The cost, stated plainly

A row is now sometimes a decision and sometimes a container, which is a thing the reader has to learn once. It is paid for with the ring, the count and the chevron — three signals on one row, which is more than any other row on this screen carries, precisely because it is the one row that behaves differently when you touch it.

Grouped by workstream, not by room

Rooms are the obvious grouping and the wrong one. decision_zones is many-to-many — the island electrical on the card above is Kitchen and Electrical — so a room grouping has to duplicate rows or pick a winner arbitrarily. A workstream is what a decision feeds, exactly one of them is primary, and it is already the axis the ramp is sorted on. Room stays where it reads best: the caption, and a filter.

3 · The week with no dates in it
Every project in production today, because decisions.due_date is 0 of 282 rows and has no writer. The hero's bottom rung, which needs no date, no phase and no pulse answer: it names the rooms the week touches and says the one thing that is true when nothing carries a clock.
This is the frame that has to work, because it is the only one that runs today

Every date on frames 1 and 2 is aspirational. decisions.due_date exists as a column and is populated on nothing; lead_times is empty; builder_lead_time_days is 0 of 222; projects.current_phase_id has no writer anywhere in the new stack. A design that needs any of them to draw a first screen does not ship. This one needs none: workstream sort_order is authored content that is already in the repo.

The hero this frame used to refuse — and why the refusal was wrong

This frame originally opened on a bare list, argued as a principle: the hero is what a date looks like, so with no dates the screen raises nothing. It is a coherent rule and it produced an unfinished screen for the only state that actually runs. A week is a thing you plan, and a plan opens by saying where you are. The hero is now unconditional and this is its floor: it names the rooms and it says nothing is late. It still does not promote a decision, still does not manufacture urgency out of ordering, and it is still true that a white teardrop card with an amber chip means a clock. What changed is that the absence of a clock now has a shape of its own instead of a hole where one goes.

Sage lost, and the picture won — ruled 2026-08-15

This rung was a sage card for one draft, on the argument that the tint vocabulary already says settled and the reader could then tell the two hero states apart at arm's length: white and amber is a clock, sage is a plan. It was coherent and it is superseded. The hero is now one shape with two fills — the same white teardrop card on every frame, carrying a kitchen elevation with an amber chip and a CTA when something has a clock, and the house with a single line when nothing does. The distinction the tint was making is made by the drawing instead, which is louder, is legible at arm's length for the same reason a photograph is, and does not spend a color that the rest of the deck needs for settled decisions. No frame on this page draws card-sage now.

"Pick whichever one you have the energy for" is the whole thesis, and it moved up

The single focus card said this one, now. It was a ranking presented as an instruction, and a reader who did not want to do that particular thing had nowhere to go but away. Ordering still happens — these five are genuinely the next five — but within the set the choice is handed back. That sentence used to sit under the list, where it read as a footnote to an instruction already given. It is in the hero now, above the list, where it is the frame the list is read through.

Three icons, and they are not the row icons repeated

The rows below already carry a zone marker each, so the strip is only worth its height if it says something the rows do not. It does: three icons is the answer to "is this week one room or my whole house", available before a single row has been read. Frame 1 would draw one icon here and frame 2 draws three, which is the argument those two frames exist to make — and the only place on this page it is visible from inside the phone rather than from an annotation beside it. The title above it deliberately does not name the rooms as well; it did in the first draft, and a card that says the same thing twice in two shapes is 56px of nothing.

Your money came back, and it should never have gone

10 frame 2 carries a contingency bar under a Your money header, ruled 2026-08-10, and this page quietly dropped it while replacing frames 1 through 4. Not a decision, an omission — found by reading the frames it claims to replace rather than by anybody noticing it missing. It is back, verbatim, on every frame that draws a full week.

It also belongs here more than it did on the single card, because the contingency pool is where the hero's second figure comes from. Settled after: $1,200 and Committed: $5,250 are the same money seen at two distances, and a screen that shows what a late decision costs and not what is left to absorb it has told half a fact. The loan bar stays on 13: a loan is a draw schedule, and this screen is about decisions.

And it is a fill this screen is allowed

The first prohibition bans fractions and fills, and .segbar is a fill. It is not a violation and 10 already worked out why: the ban is on a fraction against a moving total — a contract sum, 26 of 47 — because that answers how far through am I, which nothing can be done about. Contingency is a fixed pool set aside once, where spending against it does not grow the total, and how much is left is a question the reader can act on today. Two of the product's figures earn a fill, this and 13's loan, and both for that reason.

Measured, at 390 by 844 — and the fold is currently lost

Re-measured 2026-08-16, after the permanent On site now block and the hero drawings landed. The first ramp row now lands at 853px against a 748px fold, so none of the five clear it. Three things moved it: the block costs 70px at two categories and pushes everything under it down, the hero took a 16/9 drawing, and the rooms strip left the hero for a card of its own. The same measurement across the page — frame 1's first row at 798, frame 2's at 821, frame 9's at 798, frame 12's at 773. Every full-week frame now opens on the hero alone.

Ruled 2026-08-16: the screen stands as drawn, and it is the fold rule that is retired rather than the screen that failed it. The draft this replaced put the first row at 396 and cleared four of five, and this paragraph argued the numbers were the whole point: a week view that has to be scrolled before it looks like a week has already failed. That was written when the hero was the only thing above the list and the list was the only thing on the screen that said week. Neither is true now. What the 457px bought is what a week view opens with: where you are, what is on site, and a picture of it. A plan says where you are before it says what to do, so the rows are the second thing read on purpose, and a thumb reaches them in one motion.

The measurements stay because the next person to add forty pixels to this head should have to see what the head already costs. Two hundred are recoverable by dropping the drawing on the undated rungs, and that is the first thing to trade if anything ever has to be. The block is the last, because it is the only writer this screen has.

Why sort_order guarantees "before it is needed"

A decision's phase says when it can be decided; its primary workstream's sort_order says when the work it feeds happens. Kitchen cabinet style is a design_precon decision pointing at cabinets at 350. The gap between the two is the runway, and sorting on the second means the queue is always drained in the order the site will consume it. No dates, no schedule, no estimate — and still nothing arrives late.

4 · The set, open
Not a screen and no longer a card: the same block every other frame carries under the project name, with the categories that are off brought in so they can be tapped. Ruled 2026-08-15 — the pulse stops being a question the app asks once a period and becomes a fact the reader can correct at any time. Chips are workstream category values in sort_order, filtered to the current phase and the next one.
Six chips, and the filter is what keeps it six

Every label here is the authored category value verbatim — Interior Finishes, Fixtures, Electrical, Exterior, Inspections, Closeout — sentence-cased and otherwise untouched, because a chip set that quietly rewords its own source is a mapping nobody wrote down. If any of them needs homeowner-facing language later, that is a rename in the data or a labels table, not a rewrite at the frame. workstreams.json carries twenty category values across 157 streams, which is a menu rather than a question. Filtered to the phase the project is in and the next one, it lands at five or six every time. The next phase is included on purpose: builders start the following phase early far more often than they finish the current one cleanly, and a chip set that cannot express that teaches the reader the question is not worth answering.

Categories, never the 157 streams themselves

A homeowner has no use for slab_prepour_inspection and should never be shown it. The rollup is the product; the streams underneath are how the app does its arithmetic. This is the same argument the Systems axis already won — seven curated labels over an engineering vocabulary, and the mapping is the point.

It is a pulse, not a schedule, and the copy has to keep saying so

No dates asked, no percent complete, no "are you on track". The failure mode this feature has to avoid is becoming a status report the homeowner feels responsible for filing — which is micromanagement wearing a friendly chip. Same as last week is a first-class answer and sits beside Skip, because the two most likely truths on a Monday are "the same thing" and "I have not been out there".

How you get to it — and the answer stopped being "once a period"

The first version of this frame was a screen with no route into it, drawn and reachable by nothing. The second gave it the hero's slot on the first open of each period, which was a real answer and a narrow one: it made the question an event, so correcting a wrong answer on a Thursday meant waiting until Monday or hunting for a control that did not exist. Ruled 2026-08-15: the block is permanent and the answer is editable at any time. There is no route into this frame because there is no frame to route to — it is the same block frames 1 through 12 all carry, with the off categories brought in. What used to be a weekly interrogation is now a fact sitting under the project name that happens to be tappable.

The display is the control, which is why there are two states and not five

Closed it states what is on. Open it toggles all six. That is the whole component — no sheet, no modal, no expansion panel, no second chooser. The deck has no sheet to borrow (.scrim exists only behind 20's nav dock) and this needed none, which is the strongest argument for the shape: it is the only version of this that adds no new component to the system. The chips open in sort_order, the build sequence, so nothing moves between the two states except by its neighbors arriving.

The ground is not decoration, it is the deck's own signal

--surface-container is exactly what .asof.act puts behind a sentence the moment that sentence stops being read-only. Same meaning borrowed here: there is now something to do in this block. And the reassurance travels with the toggles rather than with the label — nothing goes to your builder is only load-bearing at the instant somebody is about to tap, and printing it permanently would make a calm fact look like a disclaimer.

The week stays visible underneath, and now it always does

Open costs a flat 177px whatever is selected, because open always draws all six — so the reflow is the same every time rather than depending on how busy the site is. The hero and a ramp row stay on screen throughout, which is what says this is a question about your week, and your week is right there rather than a gate to clear. Measured, and it is tight: the dated hero's CTA lands at 724px against a 740px viewport once the dock is allowed for. Sixteen pixels. Anything added to the helper line or the chip padding puts Settle it now under the fold.

And on a builder-connected job it should not be asked at all

Where the builder is actively using their side, the same signal is inferable from what they are already doing — sends, draws, capture ticks, trade visits. The chip screen is the fallback for the homeowner who has no connected builder, which is most of them, rather than the primary path. Asking somebody a question the product can already answer is its own small insult.

What it actually writes

A project-level pulse row, which refines projects.current_phase_id (no writer today) and seeds project_phase_status.started_at (no column today). Those two, plus restoring phases.typical_min_days and typical_max_days, are what let the period tighten from bi-weekly in design to weekly once the site is moving. Until they exist the period is a constant, and the screen still works — it is just never bi-weekly.

Rung 1 · quiet, and honest about why
5 · We do not know yet
The state 10 specified, the model made a first-class outcome, and the shipped screen has never drawn. Carried here because a period model makes the gap easier to hide, not harder.
Third time this has been specified, and it still does not exist

now-model.mmd makes dontknow a first-class outcome and states the rule as "a gap must not render as reassurance". VIEW_MODELS.md claims the state exists. 10 frame 4 draws it. The shipped now_screen.dart renders Nothing needs you this week whenever the focus is null, with nothing distinguishing a computed quiet week from a project nobody has ever walked. Grep of app_en.arb and lib/ui/: no such string, no such widget.

And the period model makes it worse before it makes it better

A capped ramp is rarely empty once decisions exist, which is exactly why this frame has to land with the redesign rather than after it. The emptier a state gets, the rarer it gets, and the rarer it gets, the more confidently the wrong copy sits on top of it. A new homeowner told "nothing needs you" by a screen that has never looked is the same bug the single card had, wearing a friendlier face — and this product exists to reduce that person's anxiety, not to earn their trust and then spend it.

Three states, not two

Never walked is this frame. Everything blocked says what it is waiting on, because "nothing needs you" is false when four things do and all four are stuck behind one prerequisite. Genuinely quiet is frame 6. One condition per screen, and the shipped code currently collapses all three into the third.

Rung 1 · quiet
6 · A genuinely quiet week
Unchanged from 10 frame 3, and that is the point: the period model does not get to fill it. The most valuable message this product sends still has to survive a screen that now has room for five things.
The temptation this redesign creates

A screen built to hold five things has an obvious way to fill an empty week, and the ramp can always produce another row — there are twenty-one open decisions on this house. Every one of them would be honest and none of them would be needed. The cap is a ceiling, not a quota, and the ramp only offers what the work is genuinely about to consume. When it has nothing, the screen says nothing, exactly as it did before.

The slip stays, and its cause stays with it

Three weeks, and the trusses, every single time. Unchanged and unchallenged by anything on this page.

Rung 2 · site known, and the answer is nothing
7 · Answered, and nothing is on site
The third state .oc.none has always styled and no frame has ever drawn: somebody looked and said nothing is happening. A fact, not a gap — frame 5's dashes and frame 6's chips are the other two, and this is deliberately not the same week as either: the site can be quiet while the ramp is not.
Styled since the block existed, and never drawn until now

.oc.none, styled in this page's own sheet rather than the shared hc.css, has carried its rule from the first draft that split the two nothings apart, and no frame ever exercised it. The implementation shipped it from the rule alone: a plain sentence, no ground, no dashes, sitting on the same baseline the chips would have. This frame is the source that rule was always missing.

Deliberately not frame 6's week

Frame 6 pairs a quiet site with a quiet week, which reads as one fact wearing two labels — a reader could reasonably conclude the sentence follows from the ramp being empty. It does not: site_activity and the period's own selection share nothing, not a table, not a query, not a write. This frame keeps frame 1's busy ramp under a quiet site on purpose, so the two facts are visibly not the same fact.

The other Edit, the ordinary one

Frame 5's control asks, because there is nothing yet to amend. This one offers the ordinary Edit, the same link frame 1 and frame 6 carry, because there is something to amend: a real answer that happens to be "nothing". The link is how the reader tells the two states apart at a glance, before reading a word of the sentence beside it.

Not independently measured

Every other full-week frame on this page carries a measured first-ramp-row position — §7.1's ruling rests on those numbers. This one is frame 1's layout with a one-line block in place of frame 1's two-chip one, which should land the row a little higher than frame 1's 798px, and that number was not taken. Recorded rather than assumed, on the same page whose own rule is that a number a doc states about itself has to be re-measured.

8 · One at a time, for whoever wants it
The old screen, expressed as a cap of one rather than as a second design. Same lanes, same ordering, same roll-over — one row of it.
A setting, not a second screen

Cap of one, and every other rule holds: the same two lanes fill it, the same ordering picks the winner, and it still does not refill until the week ends. Nothing here is a special case in the view model, which is the only reason the option is affordable at all — two screens that answer the same question is how a product ends up with two answers.

"Four more are waiting" is what the old screen would not say

The shipped Now shows one decision and never admits to a second. That silence is what a reader fills in themselves, usually with something worse than four. Even at a cap of one, naming the number and offering the way out costs a sentence and removes the whole failure mode.

The money is here because the hero has the screen to itself

The pair comes off the hero on the phone's week, because there it has a list under it and 142px of figures and working costs that list its place above the fold. At a cap of one there is no list: the hero is the screen, and the height is free. Stated positionally so it needs no per-frame exception list — the hero draws the pair when the hero has a column to itself. Here that column is the whole screen; on frame 11 it is the desk's left column; on a phone at cap five the hero shares its column with the week, and the figures move one tap in. One rule, three frames, and no mention of a device in it.

Who this is for

Not the default, and not recommended in the settings copy. It exists because some people genuinely do work best with one thing in front of them, and because a product that took the single card away without leaving a door back is telling those people they were holding it wrong.

9 · When two of them have dates
The hero takes the sooner one and there is only ever one hero. The rest of the dated lane becomes its own band above the ramp, carrying the date it was promoted for.
One hero, always, however many dates there are

The hero is not "the dated ones", it is the soonest one. Two heroes is two answers to what needs me first, and a screen that gives two has given none. Everything else in the dated lane drops to a row and keeps its date on a chip-time, which is the same amber the hero's own chip uses — so the band reads as the same kind of thing at a lower volume rather than as a different feature.

Why it is a band and not just mixed into the ramp

A dated decision and a ramp decision are answers to different questions: this has to happen by Friday against this is next in the order the work needs. Sorting them into one list would make the reader read every date to find out which rows have one. The band costs a section header and removes that scan entirely.

The cap counts every lane, and dated always wins the ties

Five is five: one hero, one dated row, one cluster and two ramp rows here. If six things carried dates, the ramp would be empty that week and the screen would be right to show it — a week with six real deadlines in it does not also want to be told what to get ahead on.

What this frame replaced, and why that idea is dead

This slot used to hold a version with no hero at all: the date became a chip on a tinted row and all five items sat as equals. It got five rows above the fold, which was the honest advantage. Ruled 2026-08-15: the hero stays, and it is now unconditional — the opposite call, and the argument that settled it was that removing the hero fixed one frame and left the four without dates looking unfinished. The fold cost it was answering is real and was paid down three ways instead: the card lost its room drawing, then its late pair, and Nobody has this one moved to the bottom. Together those are worth more than the hero was.

10 · The same week, at a desk
A 1120pt container, which is the nav widget's own wide maximum. The hero and the week stop stacking and sit beside each other, which is the only change worth making: the same set, the same cap, the same order. This is also the only frame that draws the hero one rung up, with the pulse answered.
This week
The Hollis House
On site nowEdit
Interior finishesElectrical
The finishes and the electrical are moving together.

The five beside this are what that work needs next, in the order it needs them. Nothing here is late. Pick whichever one you have the energy for.

Kitchen Primary bath Great room

Settling these now is what keeps them from becoming urgent later.

26 settled and staying that way.

Your money
Contingency
Committed$5,250
Left$36,750

$42,000 set aside. Two change orders have come out of it.

Worth getting ahead on
CabinetsKitchen · Marcus sets them the week after next4
Under-cabinet lightingKitchen · the electrician wants it with the cabinets
Shower valve trimPrimary bath · the valve behind it is already in
Grout selectionPrimary bath · Luis tiles once the trim is picked
Thermostat selectionGreat room · the wire is run and waiting

Whatever you do not get to stays. Monday fills the gaps.

Nobody has this one
Bench and hooksMudroom · matches nothing either of you followsTake it
The cap does not grow with the viewport, and that is the whole discipline

Five here, five on the phone. A desk has room for twenty and every argument for showing them is an argument for a backlog: the cap is a statement about what a week can absorb, not about what a screen can fit. What the width buys is that the reader stops scrolling to hold the hero and the list in mind at once — the same information, no longer sequential. If this frame ever grows a sixth row because it looked empty, the redesign has quietly become the thing it replaced.

The hero, one rung up

Every other frame draws the bottom rung, which names rooms and needs nothing. This one draws the rung the pulse unlocks: the site state leads the card, in the reader's own terms rather than a phase key, and Change sits beside it. The card underneath is otherwise identical — same surface, same rooms strip, same sentence handing the choice back. That is the point of a ladder rather than three cards: an input arriving makes the hero say more, and never makes it a different thing.

Two columns, and the split is by question not by size

Left answers where am I, right answers what wants me. It is the same division the phone makes vertically, so nothing had to be re-decided for the width. There is no money on this frame and there could not be: nothing here carries a date, so nothing here can be late, so there is no figure to draw. Frame 11 is the same layout with the top rung in the left column, and that one does draw it.

Scrolling is the page's, never a panel's

Neither column scrolls independently, here or on the phone. A screen with two scrollers has two places the reader can be lost, and the one thing a week view must never do is hide part of the week behind a scrollbar the reader did not know was there. Ruled 2026-08-15.

11 · The dated week, at the desk
Frame 10's layout with the hero's top rung in the left column. The money comes back here, whole, with its working — because a column of its own is the condition, and this is the first place on the page that has one and a date to spend it on.
This week
The Hollis House
On site nowEdit
Interior finishesElectrical
Thursday 20 May Kitchen
Island electrical

Your electrician roughs in Thursday. After that it's a wall to open.

Settled by Thursday$0
Settled after$1,200

Quoted: the electrician's return call-out. Assumed: opening and closing the island wall a second time.

Settle it now
Your money
Contingency
Committed$5,250
Left$36,750

$42,000 set aside. Two change orders have come out of it.

Worth getting ahead on
CabinetsKitchen · Marcus sets them the week after next4
Under-cabinet lightingKitchen · the electrician wants it with the cabinets
Shower valve trimPrimary bath · the valve behind it is already in
Grout selectionPrimary bath · Luis tiles once the trim is picked

Whatever you do not get to stays. Monday fills the gaps.

Nobody has this one
Bench and hooksMudroom · matches nothing either of you followsTake it
The rule is a column of its own, not a device

The money was cut from the phone's week because 102px of figures on a card with a list under it costs the list its place above the fold. That was never an argument about screen size, and reading it as one produces the wrong rule — desktop gets more is how a product ends up with two answers to what a decision costs. The rule that actually falls out of the reason is the hero draws the pair when the hero has a column to itself. At a cap of one that column is the whole screen (frame 8). At a desk it is the left column. On a phone at cap five the hero shares its column with the week, and there the figures move one tap in. One rule, three frames, no device in it.

And only when there is a figure to draw

Measured, not assumed: 101 of the 159 library decisions carry a cost_if_late_low and cost_if_late_high; 58 carry neither. So on well over a third of dated decisions there is no pair, and the hero is the date, the consequence in words and the CTA — which is exactly what the phone's dated hero already is. Nothing is invented to fill the gap. A $0-against-nothing card would be worse than no card, and a default figure dressed as a quote is the sales tactic money.css spends a paragraph forbidding.

The working comes with it, and it is not optional

money.css states the rule and states why: a frame that prints the figure and hides the working has turned a fact into a sales tactic. So Quoted: the electrician's return call-out. Assumed: opening and closing the island wall a second time. is drawn here at full size, verbatim from 10. This is also the reason the pair could not simply be shrunk to fit the phone's week: pair plus working is 142px, not 102, and there is no honest way to draw only the top half of it.

The right column is identical to frame 10's, deliberately

Same cap, same order, same two bands, same rows. The only thing that changed between the two frames is which rung the hero is on, which is the claim the ladder makes — drawn twice so it can be checked rather than asserted. Note the ramp is four rows here and five on frame 10: the hero is a dated decision and spends a slot, so the cap of five is one hero plus four.

12 · Four trades at once
Appended rather than slotted after frame 4, because renumbering would break a dozen frame references in the prose on this page. Every other frame draws two categories on site; this one draws four, and the only difference is that the set wraps to a second line. That is the point of the frame: there is no rule here to demonstrate, no cap and no overflow behavior, because the block has none.
Four attempts at an overflow rule, and the rule was never the answer

The fact lived in a 230px band over the drawing for three passes, and each pass invented a way to survive six categories: cap at two, a +N counter, a ladder that stopped listing at five and said the whole site is active. All of them were measured and all of them fit. All of them were also solving a width problem that only existed because the fact had been put somewhere narrow. Under the project name the head is full scroll width and can grow downward for the price of a little scroll, so the set wraps and there is nothing to rule on. Four categories is two lines. Six would be three, and would name every one.

What it costs, measured rather than estimated

Closed, this block is 58px at one category and 98px at four — the difference between this frame and frame 1 is 40px and one line of chips. Open it is a flat 177px whatever is selected. The band cost nothing above the hero, which was its one real advantage, and it is the advantage being traded away here: the hero starts 116px lower on a busy week. Everything that matters still clears the fold, and on the dated hero it clears it by sixteen pixels.

Two shapes that looked better in isolation and lost on this screen

Chips with an overflow chip is what the field does — FotMob and BitePal both draw it. Inside the hero it does not transfer, because the card already spends its chip vocabulary on chip-time and chip-count and you get two rows of pills in two languages. In the head it survives, because the drawing sits between the two zones. A six-segment strip lit where the work is fixes the width by construction and shows what is not happening, which nothing else did — but it names nothing at any count. This block gets the strip's one advantage for free: open it, and the unlit chips are the negative space, with their names on them.

What is not settled

Whether the 3–4 rung should lead with the two longest-running categories rather than the first two in sort_order. Sort order is the build sequence, so it currently names whatever is earliest in the phase — which on a busy week may be the thing that has been true for a month and is the least worth saying. There is no started_at on a pulse answer today, so it is not buildable, and it is recorded here rather than solved.

13 · The cluster, pushed — option A, not chosen 2026-08-16
Not chosen. Kept for the record, same as option C below. Tapping Cabinets on frame 2 would have opened a new screen scoped to the workstream, with the week unchanged underneath while it was open.
What this buys

A real screen with its own title and its own room for context — the same "room screen's context for free" the page's closing note already names. It is also the only option here that costs a new route: /now/cluster/:workstreamId, a new query (open decisions by primary workstream) and a new empty state for the case where the last of the four just settled while this screen was open.

What it costs the reader

A tap to get here and a tap to leave, for four rows that were already legible as a count on the week itself. The week is not visible while this is open, which is the thing frame 14 avoids and frame 15 does not need to avoid.

14 · The cluster, opened in place — ruled 2026-08-16
Ruled. Tapping Cabinets keeps its own row in place, its chevron flipped to point up, with its four members appearing indented directly beneath it. The reader never leaves the week. At rest — frame 2, and every other closed cluster on this page — the same row's chevron points down, not right, so the difference from a plain row reads before it is touched.
What this buys

The reader keeps their place. They can settle Cabinet doors, come back to the same scroll position, and settle Drawer fronts next, without the week ever leaving the screen — the "without losing their place" case the page's closing note already names. No new route, no new query: the four rows are the same now_period_items the closed card already held, just re-drawn.

What it costs

The card grows by four rows in place, which pushes Nobody has this one and Your money further down a screen that is already the one this whole page fought the fold over. And it teaches a second interaction on a screen that otherwise has exactly one: tap a row to settle it. This row now also expands.

15 · The cluster, as a shortcut — option C, ruled out 2026-08-16
Ruled out. Kept for the record rather than deleted — the annotation below is why. Tapping Cabinets was the same push every other row already has, straight into Cabinet doors, the soonest of the four, with no list to browse before it.
What this buys

Zero new screens. The row keeps its badge and its chevron — it still reads as "four, tap to act" — but the tap reuses /now/decision/:id, the exact push every plain row already has. The only change from what ships today is the caption, which now says which one you will land on instead of who is doing the work.

What it costs

The badge promises four and the tap delivers one. A reader who wanted Toe-kick trim and got Cabinet doors instead has to settle or back out to find it — there is no browse step to route around it in. This is the option that treats the cluster purely as a queue-jump, not as a room worth entering.

16 · The week, at 1024
One column, which is the shape most screens have. The rail carries all nine doors, the header holds while the river scrolls, and the commit bar spans the body without the dock to argue with. Nothing below 1024 changes.
This week
The Hollis House
Thursday 20 May Kitchen
Island electrical

Your electrician roughs in Thursday. After that it is a wall to open.

Worth getting ahead on
Cabinet packageKitchen · goes on Marcus's cabinet order
Counter materialKitchen · goes on Marcus's cabinet order
Island designKitchen · goes on Marcus's cabinet order
Pantry styleKitchen · goes on Marcus's cabinet order

Whatever you do not get to stays. Monday fills the gaps.

Your money
Contingency
Committed$5,250
Left$36,750

$42,000 set aside. Two change orders have come out of it.

Settling this closes the rough-in · before framing Settle Island electrical
17 · The week, at 1496
The subject column arrives, and only here. It holds the room under discussion and nothing else — not a second list, not a metric. The river does not narrow to make room for it, which is why this tier is 1496 and not 1440.
This week
The Hollis House
The kitchen
Thursday 20 May Kitchen
Island electrical

Your electrician roughs in Thursday. After that it is a wall to open.

Worth getting ahead on
Cabinet packageKitchen · goes on Marcus's cabinet order
Counter materialKitchen · goes on Marcus's cabinet order
Island designKitchen · goes on Marcus's cabinet order
Pantry styleKitchen · goes on Marcus's cabinet order

Whatever you do not get to stays. Monday fills the gaps.

Your money
Contingency
Committed$5,250
Left$36,750

$42,000 set aside. Two change orders have come out of it.

Settling this closes the rough-in · before framing Settle Island electrical

What fills the week

The set is chosen when the period opens and holds until it closes. Settling something removes it and pulls nothing in. At roll-over, unsettled items carry first, then new ones fill the gaps up to the cap. The list shrinking is the only progress signal this screen has, and it is the only one it is allowed.

Two lanes. Dated is anything with a real needed-by inside the period — a builder-written due_date, or one derived from phase start plus typical duration minus lead time. It fills first and takes the hero card. Ramp is everything else, ordered by its primary workstream's sort_order, and it fills the rest. Blocked decisions are excluded from both by the readiness graph that already ships. Ties break on cost_if_late_severity, then on how many decisions the item blocks, then on id.

Rows are decisions, except when three or more share a workstream. Then they collapse to one row that spends one slot. Room is a caption and a filter, never the grouping, because decision_zones is many-to-many and a room grouping has to duplicate or guess.

There is always a hero, and only its fill changes. One slot, four rungs, each needing strictly more than the one below it. Dated is a decision with a clock, on the white teardrop card with its amber chip. Site known names what the site is doing, and needs a pulse answer. Rooms names the rooms the week touches and says nothing is late — and needs nothing that does not already exist, which is why it is the floor and why frame 3 is the frame that ships. The quiet week and the never-walked state are the same slot at rung 1. The pulse question stands in for the hero on the one open a period it is asked; it is never the fallback for a project that has not answered it, because that would open every project in production with an interrogation.

The week ends on Your money, and that is a restoration rather than an addition. 10 frame 2 already carried the contingency bar and this page had dropped it. It sits last, below every band, at the quietest rung on the screen — and it is the pool the hero's settled after figure is spent out of, which is why the two belong on one screen. .segbar is a fill and the first prohibition bans fills; that ban is on a fraction against a moving total, and a fixed pool set aside once is the exception 10 already made for exactly this component. The loan bar stays on 13.

The late pair is drawn when the hero has a column to itself, and only when there is a figure. Ruled 2026-08-15. That is one condition, not two: at a cap of one the column is the whole screen (frame 8), at a desk it is the left column (frame 11), and on a phone at cap five the hero shares its column with the week, so the figures move one tap in. The second half is a data question and it is measured — 101 of the 159 library decisions carry cost_if_late_low and cost_if_late_high and 58 carry neither, so a dated hero with no figure is common and simply shows the date, the consequence in words and the CTA. Nothing is invented to fill it. The pair never appears without its late-why, per money.css.

The cap counts the two lanes and does not count Nobody has this one. That band is a guarantee rather than a selection — a decision matching nobody's tags is computed, never omitted, and never competes for a slot it could lose. So a capped week of five can draw six rows, and the header line says so.

Period length. Bi-weekly while the project is in design and not yet building; weekly once it is. Monthly is dropped. Cap defaults to five weekly and eight bi-weekly, and both the default and a per-account or per-project override are configurable — the numbers here are a starting point with no data behind them yet.

What this page overrules, and what it does not

Overruled: rows are not a denominator. 10 banned fractions and then extended the ban to lists, on the grounds that "a scrollable queue reads as a second denominator by another name". The ban on fractions stands and is untouched — there is no total on this page, no percentage, no fill, and no "5 of 21". The extension to rows does not: a capped, ordered, shrinking set is not a queue, and the single card it forced was itself producing the anxiety the rule exists to prevent.

Overruled: Nobody has this one no longer leads the bands. 10 ruled it first among the bands and always drawn. The second half stands and is strengthened — it is exempt from the cap now, so it cannot be crowded out at all. The first half does not: leading was right against a screen holding one card, and against a five-row week it spent the ramp's entire place above the fold on one decision in a mudroom. Unowned is a fact about who is on the hook, not a claim about what is next, and on this screen order means next. Ruled 2026-08-15: it goes last, and it keeps its header, its Take it and its guarantee.

Standing, unchanged. The quiet week must not be filled (frame 6). The slip never appears without its cause. A data gap must never render as good news (frame 5). The late pair is drawn whole and with its working or not at all, never split and never printed bare — which is why it comes off the phone's week entirely rather than being trimmed, and appears wherever the hero has a column to itself: frames 8 and 11.

The cluster row opens in place. Ruled 2026-08-16 — frame 14. Three options were drawn: push to a new screen (frame 13), open in place (frame 14), and a shortcut straight to the soonest member (frame 15). The shortcut was ruled out first — a badge promising four and a tap delivering one. Between push and open-in-place, open-in-place won: the reader keeps their scroll position and can settle every member of a cluster without leaving the week, which is the same "without losing their place" case this page's very first draft of the question already named as the reason to prefer it. The cost is real and stated on frame 14 — the card grows by as many rows as the cluster has, and the row now carries a second interaction a plain row does not — and it is paid for rather than hidden: a cluster row's chevron points down at rest, not right, so the reader is told before they touch it that this row behaves differently, and flips to point up once open. Frames 13 and 15 stand as drawn, marked not chosen, because the reasoning is the record.

What is not settled

What happens to an item nobody ever picks up. Carryover has priority, so a decision the reader keeps skipping holds its slot indefinitely and slowly starves the ramp behind it. Deferral exists for the case where the reader is genuinely waiting on somebody, but not for the case where they simply do not want to. A cap on carryover generations, or a nudge, or nothing at all — unruled, and it is the most likely thing to go wrong in month three.

The bi-weekly frame. Not drawn. Every frame on this page is a weekly one, because the phase signal that would select bi-weekly has no writer yet and drawing the state before its input exists is how project_phase_status ended up with three columns and no rows.