TL;DR
The July shipping sprint worked: safety.viz went v1.0.0 → v1.4.0 in seven days (nine interactive safety renderers, evidence/QC framework, public docs site), the session/ops framework shipped in obot.agent v0.2.0, and the public diary is six blog posts deep. Tonight the portfolio's critical path runs through three items sitting at gates: the gsm.safety v1.0.0 RC merge (CI fix in flight), the FDA static-charts design decisions (D1–D4 on #9, design PR posted tonight), and the open.gismo plan update. Clearing those this week frees August–September for open.gismo v1.0 — the keynote centerpiece. The biggest roadmap gaps: the keynote deck itself (#10) is the least-developed requirement in the portfolio, the Q4 slate is over-committed with no recorded sequencing, and the public roadmap page had drifted from reality — its generator was upgraded tonight (v1.8.0) to show real sub-issue progress and freshness.
Direction update — reviewed live, late 2026-07-21
@jwildfire set the portfolio's stage model right after publication, superseding parts of §3. Stage 2 closes when safety.viz is fully shipped: gsm.safety v1.0.0 merged + tagged, the delivered requirement set closed, the QT demo-data fix released, and Diary #8 telling the ship story. (Correction: Diary #7 — Papers → Prompts → Prototypes — published the morning of Jul 21; the "at the gate" framing below was stale at capture.) Stage 3 is the obot autonomy experiment: a --auto flag on /session-init plus Claude Code's built-in /goal, pursuing two standing goals — ① new charts, static and interactive (§3's chart workstreams become this goal's feed) and ② the user-facing app replacing safetyGraphics with the core gsm tools brought into the gsm.safety framework, decided same-arc as open.gismo v1.0. Phase 4 = talk prep from September. Decision records: comments on #10, #18, and #34.
9
interactive renderers shipped in safety.viz v1.4.0
6
production releases in 7 days (Jul 12–18)
26
requirements on the roadmap · 9 released
7
diary blog posts live · #8 planned for the gsm.safety v1.0 ship
18
portfolio reports published on the hub
49
public diary entries since June
1The story so far
Two distinct eras. June was the research era under the old obot-claw hub: the ten-chapter autonomous-agent framework report, supervision experiments, and the portfolio operating model. July consolidated identity and then shipped: the hub moved to jwildfire/obot.roadmap on July 2, and everything since has been product.
- Jun 05–11Autonomous-agent framework report (10 chapters) — the operating model for AI-led development that everything since runs on.
- Jul 02Hub consolidation — obot-claw archived; jwildfire/obot.roadmap becomes the public hub feeding the R/Pharma 2026 keynote diary.
- Jul 08–11Pilot migrated; agent access solved — safety-histogram nextgen merged to
dev (#2); obot GitHub App gives agents first-class commit/PR identity (#3).
- Jul 12safety.viz v1.0.0 + v1.1.0 — consolidated Chart.js safety-chart library (#1): six renderers, screenshot-baseline evidence pipeline, qualification-grade docs site. obot.agent v0.1.0 lands the same day.
- Jul 13safety.viz v1.2.0 — hep-explorer (eDISH) — the flagship liver-safety explorer migrated (#30).
- Jul 15obot.agent v0.2.0 — the session framework — init/wrapup bookends, session hub, scaffold channel; dogfooded clean the same week (#17, #24).
- Jul 16safety.viz v1.3.0 / v1.3.1 — ae-explorer hierarchical incidence table, pharmaverse ADaM demo data, remaining-renderer sweep (#29).
- Jul 18safety.viz v1.4.0 — QT Safety Explorer Phase 1 — first cardiac-safety renderer (ICH-E14 central tendency, outlier scatter, categorical view; #36) plus the hep composite plot, from colleague ideas scoped three days earlier.
- Jul 19Decision session — review backlog cleared — 7/7 pending decisions ratified in one sitting (open.gismo D1/D2/D6, nepExplorer D1–D3, autonomous-ops Q1–Q4); two PRs merged.
- Jul 21FDA static-displays strategy + design — the ST&F strategy report (60 tables / 22 figures inventoried, Phase 1 identified) published, and the #9 design doc drafted the same night.
Release record: safety.viz (7 releases), obot.agent (2), gsm.safety (v0.1.0 — v1.0.0 pending below).
4Gaps in the roadmap
Seven gaps, ordered by how much they distort planning. G1 and G5 are mechanical hygiene an agent can clear this week; G2–G4 need @jwildfire; G6–G7 are process fixes with proposals attached.
G1 · The board has drifted from reality
Six open issues sit in the board's Released column (#2, #3, #21, #30, #36, #41 — delivered work whose close clicks never happened). 23 cross-repo implementation items are on the board with no Status at all. safety.viz #54/#55 and obot.agent #32 aren't on the board. A stale codex draft (gs PR #29) has squatted in Review since Jun 7.
Fix: one agent hygiene pass (close-or-annotate the six, status the 23, add the three, ask @jwildfire to triage gs #29) — proposed as short-term step 6, then automated as a weekly sweep under #18.
G2 · The keynote deck is the least-developed requirement in the portfolio
Everything in the portfolio ostensibly drives toward the R/Pharma 2026 keynote, yet #10 is a stub: no overview, no data requirement, no design, no tasks — while 25 other requirements are fully dressed. There is no written statement of what the talk argues, which demos it needs live, or what the drop-dead dates are working back from the conference.
Fix: the queued keynote-plan report becomes #10's Overview + Design; the deck requirement then gets sub-issues with real dates. Until then, prioritization calls (e.g., whether #38–#40 matter) have no anchor.
G3 · Q4 is over-committed and nothing records the sequencing
nepExplorer (#35), QT Phase 2 (#37), static charts (#9 — up to 82 displays if unbounded), open.gismo v1.0, and the keynote deck all target the same August–October window. The roadmap has no recorded priority order among them, and #9's D3 (scope commitment) is precisely the decision that keeps it from swallowing the quarter.
Fix: the re-milestone pass (step 6) should encode an explicit order — proposal: open.gismo > keynote assembly > static Phase 1 > nepExplorer P2+ > QT P2 — and D3 should commit to Phase 1 only.
G4 · Decided but unfiled: decisions with no issues behind them
The Jul 19 session ratified open.gismo phasing, the K3 forkable demo-study repo, and K4 standing grants — but none of these exists as a requirement or sub-issue yet. Decisions that live only in diary entries and memory files don't survive contact with a busy month.
Fix: file them this week while the context is fresh: open.gismo Phase 1–4 (step 4), a K3 demo-study-repo requirement, and K4 grant definitions under #18.
G5 · Milestone metadata is drifting
#25 (canonical demo data) is in Development with no milestone. #34 still wears backlog after its decisions were ratified. Eleven open issues carry 2026q3, which closes Sep 30 — several (e.g. #31, #33) plainly won't make it.
Fix: part of the same re-milestone pass; cheap once G3's ordering exists.
G6 · The public story lags the work
The hub exists to make this project legible to outsiders (and to the keynote audience), but its main status page went stale in meaning (§5), and requirement #31 (roadmap transparency) — filed for exactly this problem — has sat in Requirement Gathering since Jul 12.
Fix: tonight's roadmap.html upgrade is the interim patch; this report is the narrative layer. Fold both into #31 as its de-facto requirement gathering, and let #31 decide the durable form (auto-generated exec summary? news-feed integration?).
G7 · One approver, seven gates
Currently queued on @jwildfire: gs PR #39 merge+tag, hub #41 close, #9 D1–D4, open.gismo D3/D4 + og PR #1, gs PR #29 triage, obotclaw installs (open.gismo, jwildfire.github.io), and carried admin (Gilead PR #151, credential retirement). Each is small; together they're the portfolio's rate limiter.
Fix: the Jul 19 review-backlog page cleared seven decisions in one sitting — make that a standing weekly ritual: one consolidated decision page, one sitting, batched clicks. K4 standing grants then shrink the queue structurally.
5roadmap.html — diagnosis and fixes
The complaint: "not very useful or up to date." Both are right, but neither is a pipeline failure — the page rebuilds daily and on every push, and last deployed successfully this morning. The staleness is semantic: the page faithfully renders inputs that themselves went stale.
Diagnosis — five findings
| # | Finding | Effect on the reader |
| 1 | The Tasks column reads inline ### Tasks checklists, but the lifecycle moved to sub-issues as the canonical tracker months of work ago. | Most rows show "—"; the few numbers shown are stale checkbox counts. The one progress signal on the page is dead. |
| 2 | The page mirrors the project board's Status field, and the board has closeout lag (Gap G1). | Open, active work appears under "Released"; the Design column is empty even while a design PR is open. |
| 3 | The version badge is a manually-maintained changelog (last bumped Jul 19), and no row shows any date. | The page announces itself as days old even minutes after a rebuild, and nothing distinguishes an issue touched yesterday from one dormant since June. |
| 4 | Backlog is the first section; active work (Development, Review) is two screens down; released work is a closed <details>. | The first thing a visitor sees is the least important content on the page. |
| 5 | Hub-repo requirement issues only — the cross-repo implementation layer (safety.viz, gsm.safety, obot.agent sub-issues) and the releases/reports/diary narrative are invisible. | A reader cannot see that six releases shipped in seven days. The page under-reports the project's actual velocity. |
Shipped tonight (generator v1.8.0)
Four incremental fixes to scripts/build_roadmap.mjs, live on the next deploy:
- Real progress numbers — the Tasks column now reads the GitHub sub-issues rollup (
subIssuesSummary), falling back to checkbox counts only where sub-issues don't exist.
- An Updated column — per-row last-activity date, so recency is visible without clicking through.
- Honest state labels — an open issue sitting in the Released group now wears a "still open" pill instead of silently passing as done.
- Attention-first ordering — sections now run Development → Review → Design → Requirement Gathering → Backlog; in-flight work is the first thing on the page.
Recommended next (for @jwildfire's call — not implemented)
| Recommendation | Rationale | Effort |
| "Shipped this week" strip at the top: latest releases + reports pulled from the news feed the site already builds. | Fixes finding 5 — the page finally shows velocity, not just inventory. | Small — the news generator already collects this. |
| Retire the manual changelog badge in favor of the generated timestamp in the header (keep the audit modal, auto-append entries from board diffs). | Fixes finding 3 at the root; the badge currently manufactures staleness. | Small–medium; needs a decision because it changes the audit-log contract in AGENTS.md. |
| Per-requirement drill-down: expand each row to its cross-repo sub-issues (the rollup data is already fetched). | Makes the page the one place to answer "what is actually happening on #28?" | Medium. |
| Weekly automated hygiene sweep (board status vs. issue state, unstatused items, stale Review entries) filing a report or fixing trivial drift — under #18. | The page can only be as truthful as the board; this keeps the board truthful without ritual human effort. | Medium — natural first cron for #18's autonomous ops. |
| Fold this report's format into #31 as a periodically regenerated executive summary linked from the roadmap header. | Tables answer "what exists"; executives ask "how is it going" — that needs narrative. | Decision first: manual cadence vs. generated. |