goal #79 · decision artifact · 2026-08-14
Goal #79 says of itself that “until the app-first plan update lands on #34 and the Phase 1–4 requirements are filed and designed, every increment here is pipeline-advancement; there is nothing implementation-ready to select.” That has been true for 33 days and it is now self-fulfilling: the artifact the goal is waiting for was overtaken by the work it was meant to sequence. This page converts “the plan rewrite is pending” into four decisions with recommendations. Nothing here needs a session to research further — the calls are @jwildfire's.
Status — closed 2026-08-16. A1 and A2 were accepted on 15 August. A3 and A4 were never answered, and @jwildfire closed the page rather than answering them; both moved to the interview on the app goal, whose prep round is #192 and whose sittings and goal ratification are #193. The record, including what A1 and A2 committed to that has not yet been done, is in the Decisions section below.
@jwildfire · 2026-08-15 · in chat
A1 and A2 accepted as recommended; A3 and A4 held open — deferred for further discussion, not rejected.
He also said the app goal itself needs rework: he holds detail about what the app should be that the goal does not yet capture, so a structured interview was designed to draw it out before A3 and A4 are settled or the goal is rewritten. His calls are recorded on discussion #149; this entry summarises them rather than quoting him.
@jwildfire · 2026-08-16 · Operations Dashboard
“I think I’m done with this Decision. Close it out. We’ll work on improving the goal separately soon.”
The page is closed. A3 and A4 are not answered by that and are not recorded as answered here. What ships in version 1.0 of the safetyGraphics replacement and what gets written down as deferred, and whether the demo study repo becomes the canonical template other people fork, are both still open questions — and both are questions about what the app is for, which is the thing he said he wants to work on separately.
They move to the interview he was pointing at. The prep round that builds the material he reacts to is #192, and the sittings that ratify the goal statement are #193. Both already carried these two calls in their own words before this page closed — #192 seeds them into its open-question list and #193 makes answering them a condition of being done — so the transfer is a relabelling of something already in the right place rather than a hand-off that could be dropped. What changed on 17 August is that the answers now get recorded wherever the interview records them, not back on this closed page.
One thing this page should not let pass quietly. A1 and A2 were accepted on 15 August, and almost none of what they committed to has been done. A1 said the July plan report gets a supersession header and the issue tracking it is ratified and closed: the report carries no such header and #34 is still open, untouched since 14 August. A2 said four requirements get filed against surfaces that exist and five unparented app issues get adopted into the goal: none of the four was filed, and of the five, two have since closed on their own, one was adopted into the charts goal instead, and two remain unparented. The goal's own body still tells a selecting session there is nothing implementation-ready to pick, citing the very issue A1 was meant to close. That is an accepted decision that produced no work for two days, and it is recorded here rather than left for someone to discover — the interview will reshape most of it, but the reshaping is a choice someone has to make, not something that happened.
Recorded on this page 2026-08-17. He answered in the local Operations Dashboard on 16 August at 21:37 UTC, the sweep announced it three minutes later, and then nothing applied it for nine hours — which is why the published index went on saying this page was waiting for him, and why he had to ask again the next morning. The pipeline that stopped there is filed as its own requirement, #241.
site branch must be bounded?goals/registry.json, fix its Actions lane, and take the free 34% off the branch. Sizing options: the companion artifact.A1 gates A2 gates A3. A4 is independent and can be answered on its own. If only two get answered, make them A1 and A2 — they are what makes the goal selectable at all.
Between 28 and 29 July the app arc shipped ahead of its own governance: five PRs merged into open.gismo dev (local-first engine, espresso study-site shell, sidebar and the real gsm.viz overview table, the RBQM domain, the Safety domain) and demo-301 published two Project Snapshots to a live Pages site, while the documents meant to sequence that work never moved.
The 2026-07-12 v1.0 plan report is still written local-first even though @jwildfire reversed exactly that premise on 2026-07-19 (D1 — the gh_* GitHub lane is the acceptance path), #34 has sat untouched since 2026-07-24 at milestone backlog, and #79's body still tells a selecting session there is nothing implementation-ready to pick.
The result is sixteen idle days: no Phase 1–4 requirement was ever filed, five live app issues sit under no goal, demo-301 is bound to no goal in goals/registry.json at all, and its weekly pipeline has failed silently on 3 and 10 August without anyone being able to pick the fix up.
The one fact that reframes everything below. D1 made the GitHub Actions lane the acceptance path for v1.0 on 2026-07-19. That lane has never once produced a published snapshot. Both snapshots on the live site record package_snapshot: local-2026-07-29 — they came off a laptop. build-site.yaml has zero runs in its history. run-pipeline.yaml has fired twice on schedule and failed both times at package install. Pages is being served by GitHub's legacy branch builder, not by the repo's own deploy lane. The demo works; the mechanism the demo is about has never run.
| Date | Event | Effect on #34 |
|---|---|---|
| 2026-07-12 | v1.0 plan report published; D1 proposed as “C+” — local-first, GitHub demoted to optional publisher. #34 opened to dispute it. | Issue's reason for existing |
| 2026-07-19 | @jwildfire ratifies D1 = GitHub prerequisite (reversing C+), D2 = stay on the jwildfire fork, D6 = Snapshots in v1. Sequencing set (D5): rewrite the plan first, then file Phase 1–4 requirements. | Decided — but the plan was never rewritten |
| 2026-07-21 | Ruling: Stage-3 Goal 2 (safetyGraphics replacement) and open.gismo v1.0 are the same arc; the rewrite must lead app-first. | Rewrite scope grew |
| 2026-07-28 | A design pass runs instead of the rewrite: two design reports published (directions D-APP0–7, framework D-FW1–8), direction C approved in session, the Domain concept added by @jwildfire, and requirement #134 filed and built the same evening. | Overtaken — better record now exists |
| 2026-07-28/29 | open.gismo PRs #1–#5 merge to dev; demo-301 publishes ps-001 and ps-002; the site goes live. | Overtaken — the plan's Phases 1–2 are largely built |
| 2026-07-29 | policy.json promotes demo-301 and open.csr to auto and clears the open.gismo obotclaw App blocker (obot.agent ac613bf). | #79's stated prerequisite goes stale |
| 2026-08-03 / 08-10 | demo-301's scheduled Run Pipeline fails at package install, twice, unattended. | The D1 acceptance path is broken and unowned |
#34's own gating clause — “the prototype PR stays a draft and no open.gismo requirements are filed until D1 lands” — is doubly stale: D1 landed on 2026-07-19 and PR #1 merged on 2026-07-28. The issue is holding a gate that reality already walked around.
This matters because A1 is a question about whether that document is worth rewriting. The research pass read it line by line against what shipped:
gh_* lane is “deliberately still unproven end-to-end (Phase 3)”. Under D1 that Action is the acceptance gate — and it is still unproven, which is now a defect rather than a plan.ps-001/ps-002 with a snapshots.json index since 2026-07-29.inst/site/index.html; og_app.R has not been touched since PR #1. D4's question no longer describes the choice.What survives: §4 “What was built” is evidence and still accurate, and the two 2026-07-28 design reports are source-grounded and current.
Why now: #34 has been the named gate on everything downstream for 33 days. Its sequencing said rewrite the plan first, then file requirements. The build overtook it 16 days ago, so the gate now only blocks the paperwork.
A1-b — retire the plan report, close #34, anchor on what shipped.
The report's reusable half and its void half separate cleanly. §4 “What was built” is evidence and survives; §3's entire architecture decision rests on the premise D1 reversed, and its own pull quote disqualifies the repo-plus-Action shape that K3 and demo-301 then built. Rewriting would mean re-deriving design that already exists in better form — framework.html's next step ③ asked for exactly this fold-in, its four-layer model is source-grounded and current, and directions.html's shell direction was not merely approved but implemented: espresso masthead, Domain switcher, provenance chip, snapshot timeline are all on the live site.
Unblocks
Closing #34 removes the only stated precondition on filing requirements, so drafting can start in the same session — and #79's boundary prose can be corrected in the same pass, which is what makes the goal selectable by an unattended session at all.
Why now: goal #79 has exactly three sub-issues (#34, #134, #139), none closed, while five real app issues filed on 2026-07-29 — #136, #138, #142, #143, #144 — sit under no goal at all. The goal under-counts its own arc by five, so a session selecting app finds nothing to do.
A2-b — surface-anchored requirements with acceptance criteria measured on the published snapshots, plus adopt the five goalless issues.
The built-ahead-of-spec problem is real but small: the shipped surfaces are testable artifacts, not sketches — two published snapshots with per-workflow and per-step status.json, a five-file publish contract already written into build-site.yaml, and a config-driven domain registry in demo-301's study-config.yaml. Writing acceptance criteria against them is a documentation pass, not a re-derivation. Filing the original phase names instead would import the plan's missing-acceptance-criteria defect and put the D1 gate third in the queue. The membership fix matters as much as the text: #144 and #136 both cite #79 in their bodies and are parented to nothing, so the goal reads as three-issues-idle when the live arc is seven issues wide.
Unblocks
Makes #79 selectable. registry.json already binds it to open.gismo and gsm.safety, and policy.json gives both repos the auto profile — so the moment a requirement carries acceptance criteria, an unattended session can take an increment. The two most immediately implementation-ready: #138's metric cut (blocked only on @jwildfire choosing from five candidates) and #136's phase rename (one open question — whether the published output/3_reports/ path renames alongside the workflow directory).
Why now: D1 made the GitHub lane the acceptance path on 2026-07-19, and it has never run to completion. Both published snapshots carry package_snapshot: local-2026-07-29; build-site.yaml has zero runs; run-pipeline.yaml failed its last two scheduled attempts. Whatever v1.0 means, this is the gap.
2_metrics phase (#138) to the v1.0 line.dev, declare the locally-produced demo the release, leave the Actions lane unproven.A3-a — scope v1.0 to the acceptance path, and put the deferrals in writing.
This is the only scope that makes v1.0 mean what was already decided it means. D1 named the gh_* lane the acceptance path; that lane has never once produced a published snapshot. Everything else on the candidate list is either already demonstrably working (both domain pages, the provenance chip, snapshot compare) or is a new subsystem with unanswered design questions. D-APP0 belongs in scope because directions.html's own recommendation was “decide before requirements — the name lands in Phase 1 scope, the plan rewrite, and the keynote”, and it is now the last unmade call that touches all three.
Unblocks
Turns the Actions install failure into requirement #1 with an unambiguous pass condition — a scheduled run publishes ps-003 without a local og_run() — which is a well-scoped, testable increment an unattended session can take. Explicitly parking #139 and #144 also stops them reading as blockers, which is part of what makes the arc look impassable today.
site branch must be bounded?Why now: demo-301 is the only place the D1 acceptance path can be proved, and it holds the keynote's K3 story — yet it is bound to no goal in goals/registry.json, so no autonomous session can reach it. Its weekly cron has been failing since 3 August and nobody could pick it up. Separately, #143 says the size call must be made “before demo-301 is used as the fork template in the keynote”.
goals/registry.json, fix the Actions install lane there, and bound the site branch — starting with the free lever in the companion artifact.registry.json edit sits inside the policy carve-out, so its PR needs explicit approval even though demo-301 is an auto repo. Bounding the branch means real work in the publish script and a small change to how the app shell resolves snapshot paths.og_init() plus an Actions template the fork story — “setting up a study repo is a command, not an artisanal clone” — and keep demo-301 as a scratch demo nobody forks.PUBLISHING.md's own precondition (“a retention policy belongs in this branch's contract before the schedule is switched on”) was already violated when the schedule went live. demo-301 stays unreachable by goal selection, so the Actions fix never gets picked up autonomously.A4-a — name demo-301 the canonical fork template, bind it to #79 in the registry, fix its Actions lane, and take the free 34% off the branch.
The measured facts reframe #143 rather than confirming its urgency. The ~302 MB figure is exact — 317,274,322 bytes across 689 files — but 103.41 MiB of it is a byte-identical duplicate: the branch root output/ and ps-002/output/ are the same git tree object, d2f3ae3. That is 34% of the checkout, and #143 does not mention it. The genuinely gating half is the other one: full merge grants on demo-301 (auto, integration main, release site, approved 2026-07-29) with zero goal reachability is why two consecutive cron failures went unattended for eleven days.
Unblocks
Makes demo-301 work selectable, which turns the Actions install failure from an unowned defect into a takeable increment; gives #143 a decision instead of an open ceiling; and lets A2's fork-template requirement carry a concrete acceptance test — fork the repo, let the scheduled run fire, get a published snapshot.
Both are stale facts in goal bodies, and sessions never edit a goal issue — so they are proposed as comments and applied by @jwildfire.
jwildfire/open.gismo, “until it is, no merge increment may target that repo”. Cleared 2026-07-29 (policy.json, obot.agent ac613bf) and re-verified tonight against GET /installation/repositories: the installation covers 12 repos including open.gismo. Five PRs have since merged there as obotclaw[bot]. A session reading that line today refuses a merge it is fully granted to make. Proposed on #79.jwildfire/open.csr”). Tonight's installation check lists open.csr too, and policy.json promoted it to auto in the same 2026-07-29 commit. Flagged, not acted on — it is a paused goal.Noted in passing, not proposed: goals/registry.json lists csr with status: "active", while tonight's goal review treats it as paused. Worth reconciling whenever the registry is next touched.
site branch. Nothing was deleted or rewritten; the branch was measured read-only.Re-run directly on 2026-08-14 for this page:
| Claim | How it was checked | Result |
|---|---|---|
| demo-301's scheduled pipeline is failing | gh run list -R jwildfire/demo-301 | Run Pipeline / schedule → failure on 2026-08-10 and 2026-08-03; Build Site has zero runs; every success in history is pages build and deployment (GitHub's legacy branch builder), last on 2026-07-29 |
site branch is ~302 MB | git ls-tree -r -l origin/site | 689 files, 317,274,322 bytes = 302.58 MiB. #143's figure is exact |
| A third of it is duplicated | git rev-parse origin/site:output vs :ps-002/output | Both resolve to tree d2f3ae3cefb8296212dedc628dd8134e8d4a4f50 — byte-identical. output/ 103.41 MiB · ps-002/ 103.45 MiB · ps-001/ 95.36 MiB |
| The obotclaw App is installed on open.gismo and open.csr | GET /installation/repositories with an App token | 12 repositories, including jwildfire/open.gismo, jwildfire/open.csr and jwildfire/demo-301 |
| #79 under-counts its arc | GET /issues/79/sub_issues + issue sweep | Sub-issues: #34, #134, #139 (three, none closed). Goalless app issues: #136, #138, #142, #143, #144 |
| demo-301 is bound to no goal | obot.agent/goals/registry.json | app backlog = jwildfire/open.gismo, jwildfire/gsm.safety. demo-301 appears in no goal's backlog |
| The App blocker was cleared | obot.agent git log on scripts/policy.json | Commit ac613bf, 2026-07-29 — “Apply @jwildfire's decisions: promote open.csr + demo-301, clear the open.gismo blocker” |
Everything else on this page — the plan report's stale sections, the design-report decision ledgers, the open.gismo dev build state, snapshot contents and test counts — was read from source by a parallel research pass over the two 2026-07-28 design reports, the 2026-07-12 plan report, the open.gismo and demo-301 working trees, policy.json, registry.json and the hub issue set. Where a source was thin, the page says so rather than filling the gap.
dev PRs #1–#5