oficina / sheets Public
Review brief — the "next three" slice spec
You are carrying out the §Review pass that AGENTS.md requires:
> Every spec and every branch is reviewed by the highest-capability model > available before it is approved or merged. Not the model that happened > to write it.
You did not write this spec. Attack it.
Read, in this order
AGENTS.md— binding. Quote it rather than paraphrasing it; a paraphrase of a binding rule has produced a confident false positive here before.PRODUCT.mddocs/superpowers/specs/2026-08-30-sheets-design.md— the design. §1 is the settled-decisions table, §4.2 is the row/column identity section, §5 is the formula engine, §13 is sequencing, §14 is "Deliberately not built yet" with a written trigger per row.docs/superpowers/specs/2026-09-03-sheets-next-three.md— the spec under review.- The code it describes:
internal/sheets/calc/,handlers_grid.go,handlers_table.go,handlers_format.go,handlers_sheets.go,viewspec.go,store/,templates/table.html,templates/sheet.html.
What to attack
Verify every factual claim against the code and the design, and say which are wrong. In particular:
- §2.1's claim that 32 functions are registered, and that the named missing ones are genuinely missing. Count them yourself.
- §3.1's claim that the cell API is already tab-scoped and that
openTabchecks the tab against the sheet. If a route bypassesopenTab, name it — that is a live authorisation bug, not a spec defect. - §3.3's claim that no migration is needed. Check the
tabstable and its columns against what add/name/switch would write. - §4.1's claim that the table view has no formatting at all, and §4.2's claim that
POST .../formatis form-ready. - §5.3's claim that
loadViewis called from exactly one place. - §5's closing bug claim about the 100×26 window. Is a cell past row 100 genuinely invisible on the grid page, and genuinely reachable?
Then judge the spec itself:
- Does anything here relitigate a settled §1 ruling, or contradict §4.2, §5 or §14?
- Is any of the three a subsystem wearing a feature's name? §13 caught three of those already; the spec claims tabs is moderate because the plumbing exists. Test that claim.
- Are the triggers in §6 checkable, or are they wishes? A deferred thing without a real trigger is a thing forgotten.
- Is §1's decision E (one format route, two callers) actually achievable given how
handleFormatPostdecodes today, or does it need a shape the spec has not thought about? - What is missing. Name anything that should be in the top three and is not, and anything in §5's "Paul's to rule" list that does not in fact need a ruling.
- Is the sealing rule respected throughout? A tab name is content (§2.1). Does anything in this spec put one in a log, an error string, a URL or a metric label?
How to answer
Write to ./REVIEW-OUT.md:
- A verdict line: APPROVE, APPROVE WITH CHANGES, or REQUEST CHANGES.
- Findings, most serious first. For each: the claim, whether it is true, the evidence (file and line), and what to do.
- Say plainly which of the three you would cut, if any, and why.
Be specific and cite paths. Do not be agreeable.