oficina / sheets Public

Clone
git clone https://amadan.net/oficina/sheets

Plain git — no account needed to clone.

Download

Download this file

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

  1. AGENTS.md — binding. Quote it rather than paraphrasing it; a paraphrase of a binding rule has produced a confident false positive here before.
  2. PRODUCT.md
  3. docs/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.
  4. docs/superpowers/specs/2026-09-03-sheets-next-three.md — the spec under review.
  5. 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 openTab checks the tab against the sheet. If a route bypasses openTab, name it — that is a live authorisation bug, not a spec defect.
  • §3.3's claim that no migration is needed. Check the tabs table 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 .../format is form-ready.
  • §5.3's claim that loadView is 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 handleFormatPost decodes 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.