Development analyses

How this portfolio is being built, and what the agents building it have learned: every experiment on the prompts and instructions, the process backlog, process and drift reports, data-backed studies, and the friction each run reported. The numeric dashboard (merges, CI, cost) is one level up at How it is built.

Read first
Experiments logged
119
119 awaiting a verdict
Process backlog
60
9 open · 47 done
Process reports
2
critiques of how work gets done
Drift reports
32
does the work match the owner’s words?
Studies
33
measured, with code
Run records
4253
2905 friction reports

What runs keep tripping on

Each run record names the instructions that were wrong, stale or costly (doc_friction). Files with the most reports are where an edit saves the most time. Source: prompts/runs/.

FileReportsLatestMost recent report
research/CLAUDE.md4262026-10-31pick_track.py drew track 14 (codesign), but the programme table says advance a programme; I took aerolog-scaling's logged Next instead. (research record)
CLAUDE.md2982026-10-31bare python3 lacks numpy/PIL; pyenv.py returned /usr/bin/python3.13 which worked. (research record)
research/PROJECTS.md2982026-10-28pick_track draw sent two overlapping sessions to the same programme milestone within hours; the claim check (open PRs/branches) came too late because the other PR was opened after my run started 40 min of training. (research record)
prompts/process/prompt-1.md1712026-10-30Backlog had no agent-owned item; main_health.py found the live fault (a run record with pr null) quickly. Git push to the work branch returned Internal Server Error 4 times before succeeding. (process record)
portfolio/flagships.yaml1562026-10-31Main briefly held committed merge-conflict markers, which broke allocate.py until #12044. (ventures record)
prompt.md1342026-10-31step 0 fetches origin security-alerts, which does not exist on the remote (fatal); no fallback stated. (research record)
portfolio/router/allocate.py902026-10-27shallow-clone fetch exceeded 50s and printed partial counts (ventures record)
prompts/review/prompt-1.md872026-10-31validate fails on other in-flight runs' records (pr null) and a 73-char seo_title, blocking step 8's clean validate (review record)
prompts/ventures/prompt-1.md822026-10-31Flagship next: for ai-bookkeeper asks for real inputs, but recent runs keep adding synthetic gap probes; I did the same since no real data was available. (ventures record)
prompts/promptctl.py742026-10-31`route` drew redteam for an owner request that was plainly distribution/venture work; no 'distribution' track exists, so the record uses ventures/1. (ventures record)
prompts/research/prompt-0.md732026-10-31pick_track drew a focus track but sim2real-inference-style programmes are all at owner-only steps; took build-data milestone 1 instead (research record)
prompts/redteam/prompt-0.md662026-10-31campaign without --record prints the mutants but saves nothing; the first campaign had to be rerun (the --record flag is easy to skip when following the example order). (redteam record)
prompts/creative/prompt-0.md462026-10-31Says Hearth & Horizon stories run 3,500+ words in BIBLE; my draft is 3,365 words and no test enforces it. (creative record)
portfolio/ledger/session_gate.py422026-10-24Printed advice pointed at DIRECTION.md 'Current priority' (cut 2026-10-21) and named deploy-settings as pending (granted 2026-09-06). (review record)
research/PROGRAMMES.md362026-10-31pick_track.py drew build-data with an empty CLAIM CHECK; another run built the same milestone 1 within the same 30 minutes (PR 12049), so about 40 minutes were duplicated. A claim PR in the first minutes would have… (research record)

Runs and friction by day

DayRunscreativeexploreperfpolishprocessredteamresearchreviewventuresFriction reports / run
2026-11-0910100000000.00
2026-10-311522452131012341510.64
2026-10-302202951092212496780.48
2026-10-2920012100181722444730.56
2026-10-282142312072921576590.51
2026-10-271922111001317566680.53
2026-10-26208207001821586780.55
2026-10-25206239002314584750.55
2026-10-242762617103713809930.73
2026-10-2325828150021228310790.56
2026-10-22257246002322827930.68
2026-10-2128721180032217981080.84
2026-10-2029501300441610661100.92
2026-10-1928801700292796101090.89

Experiments on the prompt system

Every change the review track makes to prompts and instructions, the metric it should move, and its verdict at the next review. Full text: all experiments · source.

IdExperimentChangeVerdict
E119Review 2026-10-31 (reduced pass)`land-your-work.md` loses its "Why this has its own prompt" section (the 2026-10-05 stranded-branch story; the opening already says it) and a repeated duplicate-search…pending
E118Review 2026-10-30 night (reduced pass)`steering.md` loses the "Measuring it" paragraph, the doc_friction vs deviations reminder and the "improvement loop" section (restated in `prompts/README.md`), 137 to…pending
E117Review 2026-10-30 (second reduced pass)none to prompts. The 2026-10-30T11:21 friction (post dated one day ahead, "never says to date with `date -u +%F`") is already fixed: the check in…pending
E116Review 2026-10-30 evening (reduced pass)`land-your-work.md` loses its duplicated open-PR search tip (kept in `duplicate-work.md`), 167 to 163 lines (budget 160). Candidates unchanged: ventures 2, process 2,…pending
E115Review 2026-10-30 (reduced pass)`promptctl.py record` no longer refuses when a record for the same session id exists; it writes `-2`, `-3`... (scheduled routines reuse session ids; reports…pending
E114A perf track, about 5% of runs (2026-10-24, owner request)new track `perf` (`prompts/perf/prompt-0.md`) at weight 0.05 in `routing.json`; ventures and research go from 0.315 to 0.29 each (the `polish` track had already taken…pending
E113review 2026-10-30 (reduced pass, fortieth run)`research/CLAUDE.md` torch note says download.pytorch.org was refused by the proxy in three runs on 2026-10-30 (18 to 25 min), so plan for it (reports 2026-10-30T01:35,…pending
E112review 2026-10-30 (reduced pass, thirty-ninth run)`.claude/hooks/check_posts_before_push.py` block message says to fix and commit in a separate Bash call (7 live reports 2026-10-29: a fix chained before `git push` is…pending
E111review 2026-10-29 (reduced pass, thirty-eighth run)`prompts/review/prompt-1.md` step 1 says `wait_for.py` gives up after 100 s (re-poll) and to redirect `measure` plainly, not via a chained subshell (reports…pending
E110review 2026-10-29 (reduced pass, thirty-seventh run)`prompts/redteam/prompt-0.md` says a stdlib `unittest` target needs no `pyenv.py` either (live report 2026-10-29T11:28). No derive re-run.pending
E109review 2026-10-29 (reduced pass, thirty-sixth run)`platform/ci/wait_for.py` docstring warns that piping it or chaining `&& echo` hides its exit 1 (reports 2026-10-29T06:37 and T07:52, which blamed the tool; it does…pending
E108review 2026-10-29 (reduced pass, thirty-fifth run)`prompts/redteam/prompt-0.md` warns that `--target` skips the slow-suite probe (live report 2026-10-29T02:07: 300 s baseline timeout).pending
E107review 2026-10-28 (reduced pass, thirty-fourth run)`CLAUDE.md` says node/venture suites "can" outlast the 120 s tool timeout (the ai-bookkeeper suite, 1748 tests, finished well under it; live report 2026-10-28T22:20)…pending
E106review 2026-10-28 (reduced pass, thirty-third run)`prompts/redteam/prompt-0.md` step 1 names two traps from live reports (2026-10-27): `--test-force-exit` truncating output, and pyenv install blocking a node-target…pending
E105review 2026-10-28 (reduced pass, thirty-second run)only the `derive.py fetch && build` re-run (3624 rows). My `research/CLAUDE.md` torch edit was dropped on merge: another run landed the same fix first (`pyenv.py` now…pending
E104review 2026-10-28 (reduced pass, thirty-first run)`research/CLAUDE.md` torch install line now installs `numpy` with `torch` and says not to use torch in the foreground before the job prints DONE (live report…pending
E103review 2026-10-28 (reduced pass, thirtieth run)`.github/prompts/land-your-work.md` step 2 says a first push with `--force-with-lease` fails with "stale info" on a branch with no remote yet (live report…pending
E102review 2026-10-28 (reduced pass, twenty-ninth run)`prompts/creative/prompt-0.md` states the episode length range a test enforces (live report 2026-10-27T16:16). Re-ran `derive.py fetch && build` (3487 rows).pending
E101review 2026-10-27 (reduced pass, twenty-eighth run)`review/prompt-2.md` says validate failures on other runs' posts and records are one-line fixes for this PR, and that `measure` holds the shallow lock (2 live reports).…pending
E100review 2026-10-27 (reduced pass, twenty-seventh run)`prompts/review/prompt-1.md` step 1 now says `measure` holds git's `shallow.lock`, so run it and `derive.py fetch` one after the other (live report 2026-10-27T16:14).…pending
E99review 2026-10-27 (reduced pass, twenty-sixth run)`prompts/explore/prompt-0.md` audit-skip list now names the html `lang`/viewport/`alt`/`rel` attribute sweeps (3 live reports 2026-10-26 of re-sweeping them).pending
E98review 2026-10-27 (reduced pass, twenty-fifth run)`CLAUDE.md` cloud-session pointer now names the `pkill -f` / `pgrep -f` hook and the bracket workaround (live report 2026-10-27T07:17; it was documented only in…pending
E97review 2026-10-27 (reduced pass, twenty-fourth run)`research/CLAUDE.md` now says to check `import torch` before asking `pyenv.py` for torch, and how to install the CPU wheel (3 live reports in 3 days, one a 35 min CUDA…pending
E96review 2026-10-27 (reduced pass, twenty-third run)`research/CLAUDE.md` now documents the missing `pdflatex` (texlive install about 10 min, needs `apt-get update` first), beside the yosys line. Re-ran `derive.py fetch…pending
E95review 2026-10-26 (reduced pass, twenty-first run)none to prompts or code. Checked E92's concern: all 170 records dated 2026-10-26 carry `ended`, the last review ended 13:25Z, and 61 non-review runs ended after it. At…pending
E94review 2026-10-26 (reduced pass, twenty-second run)`prompts/review/prompt-1.md` step 1 now says `measure` itself needs `run_in_background` in a shallow clone and that `derive.py fetch && build` runs as its own command.…pending
E92review 2026-10-26 (reduced pass, twentieth run)`_landing_order` in `prompts/promptctl.py` ignores any commit that adds more than 50 run records (`BULK_ADD`), and `runs_since_review` breaks ties by the record's…pending
E91review 2026-10-26 (reduced pass, nineteenth run)`loadPosts` in `platform/pages/writing.mjs` now leaves out posts dated after today (E90 finding), so the 30 posts dated 2026-10-27 to 2026-10-29 appear on their dates…pending
E90review 2026-10-26 (reduced pass, eighteenth run)none to prompts or docs. Regenerated `prompts/derived/`. Candidates re-measured: ventures 2, process 2 and review 2 all "keep collecting" (intervals overlap).pending
E89review 2026-10-25 (reduced pass, seventeenth run)none to prompts or docs. Regenerated `prompts/derived/`. Candidates re-measured: ventures 2, process 2 and review 2 all "keep collecting" (intervals overlap). The…pending
E88review 2026-10-25 (reduced pass, sixteenth run)none to prompts or docs. Regenerated `prompts/derived/`. Candidates re-measured: ventures 2, process 2 and review 2 all "keep collecting" (intervals overlap). Live…pending
E87review 2026-10-25 (reduced pass, fifteenth run)`prompts/research/prompt-1.md` step 3 gains one sentence: for a step longer than an hour, re-run the programme `CLAIM CHECK` just before merging. Reason: three live…pending
E86review 2026-10-25 (reduced pass, fourteenth run)none to prompts or docs. Regenerated `prompts/derived/`. Candidates re-measured: ventures 2, process 2 and review 2 are all "keep collecting" (intervals overlap).…pending
E85review 2026-10-24 (reduced pass, thirteenth run)none to prompts or docs. Regenerated `prompts/derived/`. Candidates re-measured: ventures 2, process 2 and review 2 are all "keep collecting" (intervals overlap).…pending
E84review 2026-10-24 (reduced pass, twelfth run)none to prompts or docs. Candidates re-measured after regenerating `prompts/derived/`: ventures 2, process 2 and review 2 are all "keep collecting" (intervals overlap).…pending
E83review 2026-10-24 (reduced pass, eleventh run)none to prompts or docs. Candidates re-measured: ventures 2, process 2 and review 2 are all "keep collecting" (intervals overlap). Regenerated `prompts/derived/`. Top…pending
E82review 2026-10-24 (reduced pass, tenth run)`prompts/review/prompt-1.md` trimmed from 136 to 129 lines, under the 130 budget (friction: "File is 139 lines vs 130 budget").pending
E81review 2026-10-24 (reduced pass, ninth run)`prompts/review/prompt-1.md` step 1 now says `derive.py fetch` takes 2 to 5 min and how to wait for it (friction: 3 reports on fetch stalls and blocked waits).…pending
E80review 2026-10-24 (reduced pass, eighth run)retired research candidate 1 (`routing.json`: candidate `null`, share 0): 3 integrity issues in 184 runs against 7 in 877 for the champion, and `measure` suggests…pending
E79review 2026-10-24 (chronicle and lessons pass)owner asked for a documentation review "from a chronicalling and lesson pov". `portfolio/hosting/README.md` rewritten as current state plus one-line lessons (362 → 122…pending
E78review 2026-10-23 (reduced pass, seventh run)`CLAUDE.md` pyenv pointer notes the first install can exceed the 120 s tool timeout and should run in the background (friction on `research/CLAUDE.md`: pyenv.py took…pending
E77review 2026-10-23 (reduced pass, sixth run)`.github/prompts/cloud-session.md` "Long commands" gained a two-line recipe for waiting with `Monitor` (until-loop on the output file, `echo DONE` at the end); friction…pending
E76review 2026-10-23 (reduced pass, fifth run)`CLAUDE.md` cloud-session pointer names the working `node --test '*.test.mjs'` form (friction on `CLAUDE.md`: `node --test .` fails; the fix lived only in…pending
E75review 2026-10-23 (reduced pass, fourth run)`.github/prompts/cloud-session.md` note on the process-kill hook trap now says the `pgrep` form is refused too (friction on `research/CLAUDE.md` reported two retries on…pending
E74review 2026-10-23 (reduced pass, third run)`research/CLAUDE.md` gained a 3-line note that `wntr` `run_sim` writes `temp.*` in the cwd, so parallel EPANET runs need a distinct `file_prefix`.pending
E73review 2026-10-23 (reduced pass, second run)`.github/prompts/cloud-session.md` "Long commands" gained one sentence: don't chain a long command with commit/push in one call, and use absolute paths for `rm -rf`…pending
E72review 2026-10-23 (reduced pass)`.github/prompts/cloud-session.md` "Python and tests" gained a 3-line fallback for when `pyenv.py` fails (PEP 668, import name differing from the pip name): a plain…pending
E71review 2026-10-22`prompts/steering.md` cut from 161 to 136 lines (budget 120): the rule/guideline example table, the "habits" list, the JSON deviation example and the Measuring…pending
E70review 2026-10-22 (reduced pass)`prompts/review/prompt-1.md` step 1 now names `measure --section` (it exists; the last four reviews still reported "measure is 50KB+ with no section flag").pending
E69review 2026-10-22 (reduced pass)`portfolio/flagships.yaml` wall-framing-takeoff `next:` cut from about 5k to 0.6k characters: open items only, landed history left to the README and ROADMAP (the…pending
E68review 2026-10-22 (reduced pass)`portfolio/flagships.yaml` changepoint-detector `next:` cut from about 11k to 0.4k characters: open items only, landed history left to the README and git (the follow-up…pending
E67review 2026-10-22 (reduced pass)`portfolio/flagships.yaml` einvoice-preflight `next:` cut from about 7.5k to 0.6k characters: open items only, landed history left to the README and git (the follow-up…pending
E66review 2026-10-22 (reduced pass)`portfolio/flagships.yaml` ai-bookkeeper `next:` cut from 18.7k to about 1.1k characters: open items only, landed history left to the README and git. Cause: 3 friction…pending
E65review 2026-10-22 (reduced pass)`prompt.md` trimmed from 103 to 102 lines, budget 100 (the explore/creative paragraph no longer restates percentages that live in `routing.json`). `derived/`…pending
E64review 2026-10-21 (reduced pass, late night)`.github/prompts/cloud-session.md` gains "Browser and process tools": the Playwright/Chromium env vars for cloud sessions and the `pkill -f` self-kill trap (2 reports…pending
E63review 2026-10-21 (reduced pass, late night)`prompts/redteam/prompt-0.md` gives a cutoff for slow suites (`--timeout`; pick another target when baseline x mutants > ~20 min). Cause: 3 reports today of…pending
E62review 2026-10-21 (reduced pass, night)`.github/prompts/cloud-session.md` ("Python and tests") says to install with `"$PY" -m pip` and not to run two pip installs at once (1 report today: pip went to…pending
E61review 2026-10-21 (full pass, evening)`steering.md` "improvement loop" cut from 17 to 7 lines (duplicated `process/prompt-1.md`); 171 -> ~161 lines. `derived/` regenerated.pending
E60review 2026-10-21 (reduced pass, afternoon)`CLAUDE.md` ("Hosting") and `portfolio/hosting/README.md` ("What is served now") name `duncan-haywood.github.io/oss-monorepo/`; the old `/monorepo-projects/` path 404s…pending
E59review 2026-10-21 (reduced pass, morning)`prompts/research/prompt-0.md` and `research/PROJECTS.md` no longer hard-code "nineteen tracks" (there are 21; a count in prose drifts). `derived/` regenerated.pending
E58review 2026-10-21 (reduced pass)`CLAUDE.md` says to fetch branches with `--depth=40` (a bare fetch pulled ~5 GB); `research/CLAUDE.md` names the exact `--write` command instead of "step 4's" (reported…pending
E57review 2026-10-20 (reduced pass, night)`portfolio/router/allocate.py` prints the first 500 characters of a flagship's `next:` in the work queue and points at `flagships.yaml` for the rest (84 friction…pending
E56review 2026-10-20 (night)`runcost.py attach` takes `--human-hours`/`--human-basis` as optional (basis still required with hours); `prompt.md` says so (and is back to its 100-line budget).…pending
E55review 2026-10-20 (reduced pass, evening)none to prompts. `derived/` regenerated. A fix to the retire rule in `promptctl.py verdict` (retire on integrity issues only at two or more, since one self-disclosed…pending
E54review 2026-10-20 (reduced pass, 12:xx)`verify-and-merge.md` line for `--for-changes` now says what to do when it stalls (docs-only diff, or a diff reaching 100+ workflows): run the reached workflows by…pending
E53guidance map and layers, 2026-10-20 (owner-requested, not a review)one map of the guidance (`prompts/SYSTEM.md`, `prompts/system.json`, `promptctl.py map`), with seven layers and precedence. `validate` now fails on a guidance file that…pending
E52review 2026-10-20 (second)`prompt.md` step 1 says which track an owner request that fits none takes (`prompt.md`/`routing.json` friction: 3 reports of forcing a track with no rule).pending
E51review 2026-10-20`research/CLAUDE.md` intro names the root `CLAUDE.md` rules that still apply to research (public-repository and landing rules), not only the ones that do not…pending
E50review 2026-10-19 (tenth)`prompt.md` step 2 gives the `pyenv.py pytest` one-liner (top `CLAUDE.md`/`prompt.md` friction: bare `python3` lacked pytest, runs ran tests by hand). `derived/`…pending
E49review 2026-10-19 (eighth)`prompt.md` step 2 says to retry `create_pull_request` on HTTP 500 (`prompt.md` friction: two 500s before success, no doc mentioned retrying).pending
E48review 2026-10-19 (seventh)`research/CLAUDE.md` pyenv step now tells runs to test-import `pytest` along with the project's libraries before skipping the venv (friction: a plain attempt failed on…pending
E47review 2026-10-19 (sixth)none to prompts or docs. `derived/` regenerated (1372 runs). The "due counter ignores same-day reviews" friction on `prompts/review/prompt-1.md` is already fixed in…pending
E46review 2026-10-19 (fifth)`prompts/research/prompt-0.md` claim step greps `git ls-tree` for a keyword instead of reading the ~670-line listing (`research/CLAUDE.md` friction).pending
E45review 2026-10-19 (fourth)`research/_shared/pick_track.py` says when the drawn track already has 40+ projects, that a redraw is fine, and names the three emptiest tracks (`research/PROJECTS.md`…pending
E44review 2026-10-19 (third)`platform/ci/pyenv.py` tries the private venv before `apt-get` (apt-get update is slow and often fails; PEP 668 pip failures and 120s foreground timeouts were 5+…pending
E43review 2026-10-19 (second)`allocate.py` `rank()` breaks merit ties by least-worked first (ledger entries + portfolio mentions, ascending) before name. Top rows were a merit tie sorted…pending
E42review 2026-10-19`research/CLAUDE.md` pyenv note now says first use can take over 2 minutes and to run it with `run_in_background` (E41 said ~20s; 5 reports of a 120s foreground timeout…pending
E41review 2026-10-18 (seventh)`research/CLAUDE.md` now says the first `pyenv.py` call takes ~20s and prints install chatter on stderr (3 friction reports). The yosys/apt-get reports in `CLAUDE.md`…pending
E40review 2026-10-18 (sixth)`session_gate.py` stale-snapshot reason now says "after your PR merges" up front. It used to say "before anything else" and then, three sentences later, that the script…pending
E39review 2026-10-18 (fifth)no prompt or doc change. Audit sample (recent venture PRs) found one shipped regression (#8038, fixed by #8041); added a header/row cell-count test to…pending
E38review 2026-10-18 (fourth)`research/_shared/pick_track.py` does the track draw that `research/PROJECTS.md` "Picking work" step 1 describes (a report said no script did it); the step is now one…pending
E37review 2026-10-18 (third)`research/PROJECTS.md` "Picking work" step 1 gives the track-draw formula (2 reports said the number-to-track mapping was a guess).pending
E36review 2026-10-18 (second)`redteam.py` runs suites with `PYTHONDONTWRITEBYTECODE=1` (stale `.pyc` kept serving a same-size mutant).pending
E35review 2026-10-18none to prompts or docs. Candidates unchanged (ventures 2 / research 1 overlap their champions; review/2 has 5 runs, fewer than 10). `derived/` regenerated; `pyenv.py`…pending
E34review 2026-10-17 (sixth review that day)`research/PROJECTS.md` step 2 of "Picking work" tells a run to ask a new question when a track's next-step chain has gone to micro-variants (31 reports on…pending
E33review 2026-10-17 (fifth review that day)`sync_tree_counts.py` inserts `gitops/tests` on `sys.path` for its import, so it runs with no `PYTHONPATH` (3 reports of `No module named front_door_mirror`).pending
E32review 2026-10-17 (fourth review that day)`review/prompt-1.md` says `derive.py fetch` is incremental (~30 PRs per call, run once in the background) and that an unrunnable audit is expected, not friction. Cause:…pending
E31review 2026-10-17 (third review that day)`land-your-work.md` trimmed to its 160-line budget (it was over by 3) and says a swept branch whose content is on `main` needs no PR (4 reports); backlog…pending
E30review 2026-10-17`land-your-work.md` says cloud sessions without `gh`/GraphQL use the GitHub MCP tools to open and merge. Cause: a 2026-10-17 `CLAUDE.md` friction report ("merge via PR,…pending
E2924-hour review, 2026-10-16 (owner-requested)`promptctl.py measure` hides "By starting message" groups with fewer than 3 runs (49 of 60 rows, 52 runs; one line says so). Cause: the table is one-off hashes that…pending
E28review 2026-10-16 (tenth of the day)`review_every` 20 → 40 in `prompts/routing.json`. Ten reviews fired today, most with nothing new to measure (friction on `routing.json`, `review/prompt-2.md`).pending
E27review 2026-10-16 (ninth of the day)none to prompts or docs; `prompts/derived/` refreshed, drift report only. No new friction that was fixable at low cost.pending
E26review 2026-10-16 (eighth of the day)none to prompts or docs; `prompts/derived/` refreshed, drift report only. Stale friction (PRODUCT_PLAYBOOK, prompts/README) already fixed.pending
E25review 2026-10-16 (seventh of the day)none to prompts or docs; measurement refresh (`prompts/derived/`) and drift report only. Nothing in the friction table was new and fixable at low cost, and review/2 has…pending
E24review 2026-10-16 (sixth of the day)`prompt.md` step 1 now says to pass `--track` before running `route` when the brief names a task (was after the command; friction: a run drew research for an…pending
E23review 2026-10-16 (fifth of the day)CLAUDE.md checklist gains one line naming `gitops/ci/sync_readme_counts.py`. No prompt changes.pending
E22review 2026-10-16 (fourth of the day)`.github/prompts/land-your-work.md` adopted-drafts bullet condensed (163 -> 159 lines, under its 160 budget). No prompt changes.pending
E21review/2 candidate and BrokenPipe fix (2026-10-16)`review/prompt-2.md` (candidate, share 0.2): the audit step says to decide first whether anything is auditable and log "nothing auditable" if not; step 1 says to run…pending
E20stale doc lines from the same review (2026-10-16)`CLAUDE.md` checklist no longer states a stale count of expected `gitops/tests` failures (said ~26; baseline today was 2); `review/prompt-1.md` step 1 says what to do…pending
E19thirteenth review (2026-10-16)none to prompts or docs; `prompts/derived/runs.json` rebuilt. `derive.py fetch` got HTTP 403 from the GitHub API in this session, so the rebuild used the cached…pending
E18measure PR facts and rework instead of typing them (2026-10-16, owner request)`prompts/derive.py` (new) measures `merged`, PR size, red-CI commits and 14-day rework (reverts, follow-ups, line survival) into `prompts/derived/`.…pending
E17twelfth review (2026-10-16)`promptctl.runs_since_review` no longer counts records mirrored from the upstream research repo (they carry `source`); test added. Acts on E15's proposal.…pending
E16eleventh review of 2026-10-15`prompts/process/backlog/README.md` "Closing" now says to commit `in_progress` first and flip to `done` once the PR number exists (+2 lines).pending
E15tenth review of 2026-10-15none to prompts or docs. ventures/2 reached 10 runs (90% success, 0.1 errors/run) against ventures/1 (29 runs, 90%, 0.24): intervals overlap, so no promote or retire;…pending
E14ninth review of 2026-10-15`prompts/review/prompt-1.md` step 2 says mirrored and doc-only runs are skipped without counting as friction (eight reports of "nothing auditable" came from the review…pending
E13eighth review of 2026-10-15`CLAUDE.md` -1 line net: the "Tool timeout" bullet duplicated "Long suites" (added by E12); merged into one that also names `git fetch --unshallow` and…pending
E12seventh review of 2026-10-15`CLAUDE.md` checklist notes (4 lines) that the pages/marketing/deploy node suites exceed the tool timeout and must run in the background.pending
E11sixth review of 2026-10-15 (due-counter fix)`promptctl.runs_since_review` orders records by when git added them (ties on date were ordered by random session id, so reviews landing mid-day were counted among later…pending
E10fifth review of 2026-10-15`AGENTS.md` 291 → 187 lines ("Ship fast" incident stories moved to `docs/history/claude-md-2026-10-15.md`, rules kept). `promptctl measure` no longer crashes on…pending
E9fourth review of 2026-10-15`review/prompt-1.md` cut 150 → 128 lines (budget 130): removed the first-review backfill step (170+ records exist), tightened drift-audit prose, candidates only for…pending
E8third review of 2026-10-15ventures candidate `prompt-2` replaces the "no near-copies" sentence with a command that counts name suffixes of the newest ventures (share 0.2). `AGENTS.md` cut 335 →…pending
E7Steering by judgment, a process backlog, process track to 10% (2026-10-15, owner request)pending
E6first scheduled review (2026-10-15)review prompt step 1 skips records mirrored from the upstream research repo when filling `merged`. Four local records filled.pending
E5Judgment over rules, depth over count, drift audit (2026-10-15, owner-directed)`goals.md` gains "Judgment over rules" (including a concision rule for rules), the owner's business model (one-click self-deployed copies with a donate link) and the…pending
E4Red team / blue team track (2026-10-15, owner request, PR https://github.com/Duncan-Haywood/oss-monorepo/pull/6987)a new track, `redteam`, routed 7% of runs (owner's request; the 5-10% band is in `goals.md` and enforced by `validate`). With the `process` and `explore` tracks (5%…pending
E3Free-choice track, about 5% of runs (2026-10-15, owner request)new `explore` track (`prompts/explore/prompt-0.md`) at weight 0.05 in `routing.json`; ventures and research went from 0.475 to 0.45 each (E2's `process` track took the…pending
E2A process track, about 5% of runs (2026-10-15, owner request)new track `process` (`prompts/process/prompt-0.md`) with weight 0.05 in `routing.json`; ventures and research go from 0.5 to 0.475 each. A process run studies the…pending
E1Mirror with one writer, archive rather than delete (2026-10-14, owner-directed, PR https://github.com/Duncan-Haywood/oss-monorepo/pull/6984)a direct edit, not a candidate, made at the owner's request to keep the two repositories mirrored with no history loss. - `prompts/research/prompt-0.md` and…pending
E0One repository, one prompt system (2026-10-12)`oss-research-monorepo` was folded into this repository under `research/`. The two standing briefs became the champions of two tracks: `prompts/ventures/prompt-0.md`…pending

Process backlog

Problems in how work gets done, each with evidence, a metric and a baseline. How it works.

IdProblemStatusEffect / costMetricResult
P060perf: one touch to a11y research paths starts 9+ workflows; fold them into one job per trigger set done2 / 2workflows triggered by a change under portfolio/research/a11y-evidence-record/**not measured yet
P059Pre-push post hook judges the pre-edit tree of a compound command (edit && commit && push) done2 / 1doc_friction reports naming check_posts_before_push.py per 3 daysnot measured yet
P058Blog posts dated in the future reach the feed #10384done2 / 1posts dated after today in docs/postshelped: 0 posts in docs/posts dated after 2026-10-25 (baseline 77), checked 2026-10-25 by listing file-name dates
P057ai-bookkeeper's flagship `next:` leans on data hosts the cloud proxy blocks done2 / 1ventures runs on the top flagship that end with no deliverableFallback and probe hint added to the ventures prompt only; flagships.yaml untouched because ai-bookkeeper's `next:` is already 2167 chars…
P056seo: once Search Console reports, find which tool pages Google declines to index and fix those open3 / 2indexed / submitted URLs in Search Consolenot measured yet
P055seo: publish the MCP server to the official MCP registry open2 / 1registry entry exists for the servernot measured yet
P054seo: open the most-searched tool pages with a short, sourced, dated direct answer done2 / 2pilot pages carrying a sourced lead; later, AI-referrer visits once platform/counter…10 pilot pages carry a sourced, dated lead (baseline 0), each figure test-checked against its calc module. AI-referrer effect not…
P053seo: put <lastmod> dates from git history into the hub and product sitemaps #10206done2 / 2share of sitemap URLs with an accurate <lastmod>helped (build tests only): lastmod tests pass; live sitemap lastmod share unreachable from cloud (proxy 403).
P052seo: make the site's llms.txt a short index and move the full text to llms-full.txt done3 / 2llms.txt bytes and blockquote length; llms-full.txt HTTP statushelped (build tests only): 11/11 llms/lastmod tests pass, covering the llms.txt size and blockquote bounds and the llms-full.txt link.…
P051seo: give the GitHub repository a real description, topics and a social preview image open2 / 1repository description and topic count from the GitHub APInot measured yet
P050perf: Portfolio Pages test job redraws the same ~2,500 share cards in every test build #10208done3 / 1wall time of node --test build.test.mjs locally, and the 'Test the site builder' step in…not measured yet
P049perf: every PR push starts ~15 jobs, each with its own checkout, mostly for guards a diff cannot fail dropped3 / 2jobs per PR head (median) and job-minutes per merged PRDropped 2026-10-30: unscoped guards are already cheap (Conflict markers median job 33 s); remaining cost is shared-path fan-out, tracked…
P048perf: CI guard jobs clone the whole 38,800-file tree to do seconds of work #11711done3 / 2checkout share of job-minutes in ci_profile.py --runs 600not measured yet
P047Distribution and link-check code still builds URLs on the dead /monorepo-projects/ Pages path #9958done3 / 2count of files under platform/ containing the dead base URLplatform/ pages-base URLs moved to /oss-monorepo/ (88 replacements, 0 left outside the LEGACY_BASE_URL constant); build.mjs rewrites…
P046Deploy platform/counter on an always-on HTTPS host so site visit counts exist open3 / 1readings in portfolio/usage/site-visits.json with page_loads > 0not measured yet
P045redteam targets gave no suite timing, so slow-suite targets cost campaigns done2 / 1redteam doc_friction entries about slow targets per 10 redteam runs2026-10-22: too few cases to tell. No redteam run record dated after the fix (merged 2026-10-22 15:41 -06:00) exists yet; all 3…
P044Cloud sessions cannot download the Piper voice, so creative runs cannot voice episodes open2 / 2`podcast_tts.py --check` exit 0 at the end of a creative runnot measured yet
P043Retire the dead apex mirror's staleness gate: it still fails PRs for drift they did not cause done2 / 2share of the last 100 completed Portfolio validate pull_request runs that failhelped: 0 of the newest 100 completed Portfolio validate pull_request runs failed (all success; 2026-10-21T12:18Z-20:02Z, mcp actions_list…
P042Turn on GitHub's merge queue for main (owner setting) open2 / 1share of merged PRs whose tested head was not the tip of main at mergenot measured yet
P041concurrency_tax.py does not finish in a cloud session #8873done1 / 1concurrency_tax.py wall time in a cloud session for a 4-day window--local fetches main and refs/pull/*/head into the working repo (--shallow-since): 83 s for PRs #7800-#8871 since 2026-10-17 (baseline: no…
P040research/_homepage/projects.json and research/README.md are the new top conflict files (~24% of PRs) done3 / 2share of PRs merged in a 4-day window that touch research/_homepage/projects.jsonHelped. First-parent merges on origin/main since registry.py landed (2026-10-20T13:00 -06:00, 51 PRs, shallow window): projects.json…
P039The dead apex-mirror staleness step takes 7.5 of Portfolio validate's 10 minutes done2 / 1Portfolio validate job duration on a PR that does not touch gitops/prod/Helped (2026-10-21). mcp actions_list portfolio-validate.yml event=pull_request status=completed, newest 30: successful runs took 3m26s to…
P038Stop each merge from cancelling main's test runs (44% of ventures tests runs on main never finish) #8829done3 / 1cancelled share of the last 100 completed push runs of ventures tests on mainHelped (2026-10-21). mcp actions_list ventures-tests.yml branch=main event=push status=completed, last 100…
P037Verify: Portfolio validate on main pushes is mostly green after the base-ref fix (#8765) done3 / 1share of the last 100 completed push runs of Portfolio validate on main that failed at…No change in the pass rate, but the failing step moved. Last 100 completed push runs of portfolio-validate.yml on main…
P036Finish the deadweight cut: dead workflows, DIRECTION.md, the playbook, the red-team gate #9023done3 / 2total bytes of the twelve steering files listed in…Parts 1-5 and 7 done or confirmed; part 6 needs an owner yes (see decision queue). Remaining retired-tree CI is test-pinned and guards the…
P035Privacy rules went further than the law; bring every rule, check and page copy back to the legal line done3 / 2readings in portfolio/usage/site-visits.json with page_loads > 0 and at least one…No change yet: portfolio/usage/site-visits.json still does not exist (checked 2026-10-23); the rules, validator, counter code and copy are…
P034Red-team random draw is 95% ventures; CI and tooling code is almost never mutated #7808done2 / 1share of recorded campaigns whose target is outside ventures/helped: red-team targets outside ventures/ were 11 of 84 (13%) in records dated 2026-10-15..17 and 12 of 14 (86%) in 2026-10-18 records…
P033Doc-friction section of `measure` repeats complaints that are already fixed done2 / 1share of 'latest' friction entries that still reproduce when a process run samples fivePartly helped (2026-10-25 re-sample of the six untagged 'latest' entries on CLAUDE.md, promptctl.py and prompt-1.md): 3 still real or…
P032Merge freelancer- and self-employed-schedule-c-categorizer into one venture dropped1 / 2Confirmed duplicate pairs mergedDropped: both are published pages linked from ~20 files (build.mjs, launched.json, expense-tracker, self-employment-tax-calculator,…
P031Move venture-only rules from CLAUDE.md to ventures/CLAUDE.md #7603done2 / 1CLAUDE.md bytes a research run loadsCLAUDE.md 21,663 -> 20,095 bytes (helped; -7%). Nested ventures/CLAUDE.md loads only for venture work.
P030Move CLAUDE.md pre-merge checklist block into .github/prompts/verify-and-merge.md done2 / 1CLAUDE.md bytes (baseline 21,663 on 2026-10-17)CLAUDE.md 20,095 -> 17,456 bytes (-2,639) by moving the checklist block to verify-and-merge.md; checklist_coverage.py, its tests and…
P029eBay fee defaults in reverb-fee-calculator: 13.6% FVF and tiered per-order fee (split from P025) #7542done2 / 2grep -rl '13\.25' ventures/reverb-fee-calculator returns nothing and its suite passesreverb-fee-calculator: 13.6% FVF, $0.40 per order (over $10; $0.30 tier and 2.35% band above $7,500 noted, not modelled). grep 13.25…
P028eBay fee defaults in where-to-sell-calculator: 13.6% FVF and tiered per-order fee (split from P025) #7573done2 / 2grep -rl '13\.25' ventures/where-to-sell-calculator returns nothing and its suite passesgrep -rn '13\.25' ventures/where-to-sell-calculator leaves none; suite 229/229 pass. Shipped as 13.6% + $0.40 per order (the model has one…
P027eBay fee defaults in marketplace-fee-compare: 13.6% FVF and tiered per-order fee (split from P025) #7530done2 / 2grep -rl '13\.25' ventures/marketplace-fee-compare returns nothing and its suite passesmarketplace-fee-compare: 13.6% FVF, $0.40 per-order (orders over $10; $0.30 tier and 2.35% band above $7,500 noted, not modelled). grep…
P026eBay fee defaults in ebay-fee-calculator: 13.6% FVF and tiered per-order fee (split from P025) #7581done2 / 3grep -rl '13\.25' ventures/ebay-fee-calculator returns nothing and its suite passesebay-fee-calculator: 13.6% FVF, $0.40 per-order default (tiers/2.35% band noted, not modelled, as in P027); explainer prose recomputed…
P025eBay fee defaults are stale across four ventures (13.25% + $0.30 vs 13.6% + $0.30/$0.40) dropped3 / 3grep -rl '13\.25' ventures returns nothing in these four ventures, and their suites passSplit into P026-P029, one venture each (single PR touched ~76 files and silently stale derived figures; see their evidence).
P024P014 step 3: git rm the committed front-door-tools mirror (~5.8k files) #8638done2 / 2Files under gitops/prod/front-door-tools in gitTree git-rm'd (6,202 files) with a guard test (test_manifests.py) that fails if any file under it is tracked. Tests, regen --verify and…
P023P014 step 2: drop regen lines from the CLAUDE.md checklist and checklist_coverage.py dropped1 / 1checklist lines mentioning regen.mjsPremise wrong: regen.mjs also regenerates and verifies the apex (front-door.mjs: pages, sitemap, feed, llms.txt). Run 2026-10-16: with the…
P022P014 step 1: build the front-door mirror into a temp dir for gitops tests and regen --verify #7424done1 / 2gitops/tests and platform/marketing tests pass with the mirror directory absentHelped: the mirror is no longer tracked (P024), and the gitops/marketing tests run against it absent on main; git ls-tree origin/main…
P021Size backlog items to one run: 8 of 9 partial process runs chipped at items too large for a run #7402done2 / 1Share of process runs with outcome partial, next 20 process runsNo change / too noisy: 15 partial of 56 process runs (27%) vs baseline 9/41 (22%) from prompts/runs/*.json. Newer partials are mostly…
P020Branches leak past branch cleanup: re-pushed spent branches, an unreachable sweep tail, and no-PR branches #7325done2 / 2Remote branch count, and branches whose tip is already in main, a week after the change…Interim, 2026-10-17 (a day after landing, not the week asked for): git ls-remote --heads origin lists 1,000 heads vs baseline 1,465…
P019The home page was a calculator list for two days after the owner asked for a home page for everything #7236done3 / 2On the built hub: research projects reachable from the page body (not only the footer);…helped: built the hub from origin/main 08f9558ec (2026-10-16) with `node platform/pages/build.mjs`. <title> 'Open Tools and Research |…
P018Make the catalogue's sitemap discoverable despite the Pages subpath open3 / 1pages_state.py indexing verdict; pages indexed per Search Console once (2) is donenot measured yet
P017Load instructions by path and task instead of making every run read ~40k tokens #7664done2 / 2Tokens of instruction text a ventures run and a research run must read before starting…helped (chars/4 at ba0c6702e5): CLAUDE.md 6.5k -> 4.4k tokens (checklist moved to verify-and-merge.md, P030; product rules to…
P016Replace ~869 per-venture *-ci.yml workflows with one matrix workflow done2 / 2Workflow files in .github/workflowshelped: .github/workflows 893 -> 520 files on origin/main e731751327 (git ls-tree | wc -l); *-ci.yml 869 -> 490; validate_workflows.py…
P015Find near-duplicate ventures and consider grouping ventures/ by niche #7625done2 / 3Venture directories; confirmed duplicate clusters mergedHelped, narrowly: duplicate clusters now counted (19 pairs, 10 clusters); 0 merged. The one plausible duplicate was checked in P032 and…
P014Stop committing the generated front-door-tools mirror; build it at publish time #7440done2 / 3Files under gitops/prod/front-door-tools in git; merges that later needed a regen-only…Helped: split into P022-P024; the mirror is untracked on main (P024) and gitops/marketing tests build it in a temp dir (P022). P023…
P013Archive the retired Hetzner/k3s tree (bootstrap/, gitops/prod) instead of warning about it #11885done2 / 1Top-level directories describing infrastructure that no longer exists; CLAUDE.md lines…Dropped 2026-10-16: the references are live, as the item's own caveat anticipated. git grep on this checkout: bootstrap/ or gitops/prod is…
P012portfolio-validate is red on main: 63 VENTURE.yaml files lack required fields #7107done3 / 2validate.py problem count on main; `validate` check conclusion on merges to mainhelped: on origin/main b5b9aaf3c0 (2026-10-15) `portfolio/router/validate.py` prints 'All 1257 VENTURE.yaml files are valid' (baseline 231…
P011Get a first usage reading for any product open3 / 2Share of ventures with a usage readingnot measured yet
P010Give run_workflow_locally.py --tree a per-workflow timeout #7077done1 / 1Friction reports naming the tooltoo early: --workflow-timeout (default 300s) and per-step flushed output are in run_workflow_locally.py. 8 run records mention the tool,…
P009resolve-mirror-merge.sh should regenerate generated files, not refuse #7146done1 / 1Friction reports naming the scripttoo early: resolve-mirror-merge friction baseline 1; 2 records mention the script but all are dated 2026-10-15, so none can be ordered…
P008Warn when the front-door mirror silently drops a venture page #7140done2 / 1platform/pages friction reports per runtoo early to call the friction metric (baseline 2 reports/184 records; all 424 records are dated 2026-10-15, so none can be ordered after…
P007Stop launched.json ordering from failing parallel branches #7047done2 / 1launched.json repair commits per weekmechanism holds: `node --test platform/pages/launched.test.mjs` passes 23/0 on b5b9aaf3c0. Repair-commit rate cannot be measured yet: the…
P006Let run records resolve upstream PRs #7091done2 / 1Records with merged knownPartly helped: records with merged known 28 of 369 (7.6%) vs baseline 8 of 184 (4.3%). The `repo` field exists (record --repo) but only 6…
P005Decide who publishes the gh-pages snapshot open2 / 1`pages_state.py` current/stale at the start of a runnot measured yet
P004Make the local checklist green on a clean main #7126done2 / 1Local checklist exit code on clean mainPartly helped, 2026-10-15: platform/ci loop (run per module) listed one failure on main, test_publish_surface, because 5 workflows added…
P003Move CLAUDE.md incident history out of the always-read file #7021done3 / 2CLAUDE.md lines (measure, 'Instruction lines'); CLAUDE.md friction reports per runNot checkable: 'started'/'ended' is null on 281 of 369 records, so friction cannot be split before/after the 2026-10-15T03:55Z merge. Of…
P002Catch duplicate venture slugs and duplicate fixes at push time #7149done3 / 2Closed-unmerged duplicate PRs and repeated '<slug>: new venture' subjects per two weekstoo early: platform/ci/slug_dupe.py exists and runs (--help ok); 1 of 424 run records mentions it. Duplicate-pair counts need a later…
P001One preflight command for a new venture's site-wide invariants #7163done3 / 2Post-merge fix-up commits per 100 new-venture mergestoo early: platform/pages/venture-preflight.mjs exists; 0 of 424 run records mention it, so nobody is using it yet or none have said.…

Process reports

Process study 2026-10-15, addendum (sample audit and full-history counts)

2026-10-15 · source

Another run landed the study for this date first (#7003, merged while this run was working; I checked for an open process: study PR at the start and found none, the race CLAUDE.md "Duplicate PRs" describes). That report did not do the sample audit or --tree, and its clone was…

Process study 2026-10-15

2026-10-15 · source

First study, so no previous report to follow up. Written with AI assistance.

Drift reports

Whether recent work still matches what the owner asked for.

Drift report 2026-10-22

2026-10-22 · source

Mix since the last review (43 merged runs): flagship deepenings (ai-bookkeeper, wall-framing-takeoff), research follow-ups, redteam and process slices. Consistent with "depth over calculators"; no near-copy streak. Owner's words vs output. All starting messages are the routine…

Drift report 2026-10-21

2026-10-21 · source

Mix since 2026-10-20 (48 merged runs): venture deepenings (ai-bookkeeper, wall-framing-takeoff, open-house-plans: flagship-style depth, not new calculators), research follow-ups, redteam, process slices, creative. This matches "depth over calculators" and "deepen existing…

Drift report 2026-10-20

2026-10-20 · source

Mix since the last report: product deepenings (changepoint-detector took most of the week's flagship commits, so runs began skipping it for flagships 3 and 6, as the owner's "real depth" wording allows), research follow-ups, redteam, process. Nothing contradicts the owner's…

Drift report 2026-10-19

2026-10-19 · source

Mix since the last report: venture deepenings, research follow-ups, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Fixed: pyenv first-use time in research/CLAUDE.md (E42). Fixed (second review, PR 8210): allocate.py breaks merit ties least-worked…

Drift report 2026-10-18f

2026-10-18 · source

Mix since the last report: venture deepenings, research follow-ups, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Fixed: the session gate's stale-snapshot message contradicted itself on when to run publish-branch.sh (E40). Not fixed: allocate.py…

Drift report 2026-10-18e

2026-10-18 · source

Mix since the last report: venture deepenings, research follow-ups, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Audit (first one run in days): league-schedule-generator #8038 dropped the Left cell from the standings row template; #8041 restored…

Drift report 2026-10-18d

2026-10-18 · source

Mix since the last report: venture deepenings, research follow-ups, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Fixed: the research track draw is now a script (research/shared/picktrack.py). Not fixed: allocate.py still ranks already-deep…

Drift report 2026-10-18c

2026-10-18 · source

Mix since the last report: venture deepenings, research follow-ups, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Fixed: track-draw formula in research/PROJECTS.md. Not fixed: allocate.py keeps ranking already-deep ventures first (10 reports);…

Drift report 2026-10-18b

2026-10-18 · source

Mix since 2026-10-18: venture deepenings, research follow-ups, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Instruction lines: CLAUDE.md 337, prompt.md 89, review/prompt-1.md 130 (at budget). No file grew. Fixed: prompts/redteam.py runs suites…

Drift report 2026-10-18

2026-10-18 · source

Mix since 2026-10-17f: venture deepenings (fee calculators, schedulers, rosters), research follow-ups, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Venture friction repeats one point: the top allocator candidates are already deep, so runs add a…

Drift report 2026-10-17f

2026-10-17 · source

Mix since 2026-10-17e: research (swe/mimic project pages and follow-ups), venture deepenings, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Instruction lines: CLAUDE.md 337, prompt.md 89, review/prompt-1.md 130, research/PROJECTS.md 1067 (+2 from…

Drift report 2026-10-17e

2026-10-17 · source

Mix since 2026-10-17d: research figure backfills and swe-orgs batches, venture features and deepenings, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Instruction lines: unchanged from 17d (land-your-work.md 160/160, prompt.md 89/100, steering.md…

Drift report 2026-10-17d

2026-10-17 · source

Mix since 2026-10-17c: research figure backfills and swe-orgs batches, venture features, redteam and process runs. Nothing contradicts the owner's quotes in goals.md. Instruction lines: land-your-work.md at its 160 budget, prompt.md 89/100, steering.md 116/120, CLAUDE.md…

Drift report 2026-10-17c

2026-10-17 · source

Mix since the last report: research (figure backfill, swe-orgs batches), venture features, process verify runs. Nothing contradicts the owner's quotes in goals.md. Instruction lines unchanged except research/PROJECTS.md, whose one 10.5k-character progress line was the single…

Review, 2026-10-17

2026-10-17 · source

Window: the 40 runs since the review of 2026-10-16. Source: prompts/runs/ (713 records), promptctl.py measure, derive.py fetch/build.

Drift report, 2026-10-17

2026-10-17 · source

Window: 40 runs since the 2026-10-16 24-hour review. Source: promptctl.py measure.

24-hour review, 2026-10-16

2026-10-16 · source

Requested by the owner ("24 hour review"). Window: the 24 hours to about 21:00 UTC on 2026-10-16. Source: prompts/runs/ (224 records), promptctl.py measure, runcost.py report, git log origin/main.

Drift report, 2026-10-16 (tenth)

2026-10-16 · source

Owner words. None new in the records since the fifth report. Mix. Recent merges: venture depth (league-schedule-generator pool play, shift-roster-builder pins), pages categories, process. No new single-page calculators. Instruction lines. No file grew; nothing cut. Audit.…

Drift report, 2026-10-16 (ninth)

2026-10-16 · source

Owner words. None new in the records since the fifth report. Mix. Recent merges are venture depth, process and research; no new single-page calculators. Instruction lines. CLAUDE.md 385/500, prompt.md 89/100, steering.md 116/120. No file grew; nothing cut. Audit.…

Drift report, 2026-10-16 (eighth)

2026-10-16 · source

Owner words. None new in the records since the fifth report. Mix. Recent merges: venture depth (shift-roster-builder), process, research. No new single-page calculators. Instruction lines. CLAUDE.md 385/500, prompt.md 89/100, steering.md 116/120. Nothing cut; no file grew.…

Drift report, 2026-10-16 (seventh)

2026-10-16 · source

Owner words. None new in the records since the fifth report. Mix. Last 20 merged runs: research figures and elicitation projects, venture depth (league-schedule tiebreaks, fee-compare parity), process, redteam. No new single-page calculators. Matches the standing directions.…

Drift report, 2026-10-16 (fifth)

2026-10-16 · source

Owner words. None new in the records since the fourth report. Mix. Last 20 merged runs are again research, ventures (league-schedule rainouts, sign-keeper, homebrew-tap channel, shift-roster what-if: depth, not new calculators), process and redteam. Matches the standing…

Drift report, 2026-10-16 (fourth)

2026-10-16 · source

Owner words. None new in the records since the third report. One owner-named brief ran (devsec-toolkit, #7285) and was followed as asked. Mix. The 28 runs since the last review: research and ventures dominate (about 40% each), the rest process, redteam, explore. The recent…

Drift report, 2026-10-16 (third)

2026-10-16 · source

Owner words. None new since the earlier reports today. Mix. Open PRs are mostly bot-adopted stranded venture branches (generic comparison pages, new niche calculators) plus platform work (devsec-toolkit, job-search-agent, home page, analyses portal). The owner asked for depth…

Drift report, 2026-10-16 (second)

2026-10-16 · source

Owner words. No new owner messages since the earlier report today. Mix. Open PRs are venture work (internal-link-planner, changelog-keeper, recipe-nutrition-label, ie-sole-trader calculator, ig-media-pipeline) plus site/measurement work (visitor counter, engineering page). The…

Drift report, 2026-10-16

2026-10-16 · source

Owner words. The 2026-10-16 directions (distribution/measurement first, professional site, IaC, sales tools, per-run cost) are already in goals.md and CLAUDE.md; nothing restated without a quote found. Mix. Recent merges: venture deepening (help-keeper, support-desk),…

Drift report, 2026-10-15 (eighth review)

2026-10-15 · source

No new owner messages beyond 2026-10-15.md.

Drift report, 2026-10-15 (seventh review)

2026-10-15 · source

No new owner messages beyond 2026-10-15.md.

Drift report, 2026-10-15 (fifth review)

2026-10-15 · source

No new owner messages beyond 2026-10-15.md.

Drift report, 2026-10-15 (third review)

2026-10-15 · source

No new owner messages beyond those quoted in 2026-10-15.md.

Drift report, 2026-10-15 (second review)

2026-10-15 · source

Short follow-up to 2026-10-15.md, written by the first scheduled review. No new owner messages were available beyond those quoted there.

Drift report, 2026-10-15

2026-10-15 · source

The first drift review. The owner started it in a session and answered its questions there. Later reports follow prompts/review/prompt-1.md, step 6.

Studies

Write-ups that measure something about the portfolio or its market with real data and reproducible code (portfolio/research/). The open research papers have their own home at Research.

Egress reachability, consolidated

2026-10-31 · source

Measured 2026-08-20, re-measured 2026-08-23: all 92 hosts unchanged. One pass each, first-hand. Read-only GETs; no credential, no account, no publication, no spend.

What does TypeScript's checker find in 1,265 ventures of plain JavaScript?

2026-10-21 · source

Measured 2026-10-16 at 10356f6549, TypeScript 5.9.3. Script: measure.mjs. Raw diagnostics: results-2026-10-16.json.

Do the two accessibility engines agree, and is the difference disclosed?

2026-08-24 · source

Built and measured 2026-08-21. Re-runnable, offline, no credentials:

The audit pass, and how much of it a template can decide

2026-08-24 · source

Built and measured 2026-08-20. Re-runnable:

The first gate measurement: what an independent engine checks that ours do not

2026-08-24 · source

Built and measured 2026-08-21. Re-runnable, offline, no credentials:

Audit the thing we actually sell: local-site-studio's generated customer sites

2026-08-24 · source

Built 2026-08-21, extended 2026-08-22. Re-runnable, offline, no credentials:

Run the audit on ourselves: what the engines find on this portfolio's own pages

2026-08-24 · source

Built and measured 2026-08-21. Corpus rebuilt and re-measured 2026-08-21, same day, after Finding 4 found and fixed a gap that had made 1.4.3 silently absent from every number below it. Rebuilt from all 7 apps and re-measured again on 2026-08-22 for Finding 5, which reproduced…

What the theme-recoverable share actually resolves to

2026-08-24 · source

Built and measured 2026-08-20. Re-runnable:

Ask 0 buys a token for four registries this portfolio has never built for

2026-08-24 · source

Added 2026-08-24 by a firing of the screening brief ("research and evaluate potential software business projects that aren't already here").

Demand-signal reachability: publishing is not measuring

2026-08-24 · source

Another firing of the recurring "research and evaluate potential software business projects that aren't already here" brief.

Does the record a customer receives carry the tool's own error rate?

2026-08-23 · source

Question. Every probe in portfolio/pipeline/probes/ has been measured for accuracy, and every one of them renders something a customer would read. Does the second contain the first?

Out-of-sample recall, against an independent third detector

2026-08-22 · source

Built and measured 2026-08-21. Re-runnable, offline, no credentials:

MCP tool-declaration drift: a measured base rate

2026-08-22 · source

Measured 2026-08-19. Primary sources, reproducible from this repo.

Contrast was never checked because no corpus ever included the stylesheet

2026-08-21 · source

Built and measured 2026-08-21. Re-runnable, offline, no credentials:

The one corpus that carries the liability had never been checked for contrast

2026-08-21 · source

Built and measured 2026-08-21. Re-runnable, offline, no credentials:

What rendering actually recovers from the undecidable share

2026-08-21 · source

Built and measured 2026-08-20. Re-runnable:

Forge surface reachability

2026-08-21 · source

Measured 2026-08-21. 20 code forges plus a control, each surface probed separately. Anonymous read-only requests; no credential sent, no account, no publication, no spend.

Register change rate

2026-08-21 · source

Measured 2026-08-20. No credential, no account, no spend — anonymous read-only git ls-remote and blobless git clone against public repositories.

CRA evidence desk: the feed is reachable, the wedge is not, and the triage is worth more than both

2026-08-20 · source

Measured 2026-08-20. Primary sources, reproducible from this repo.

Data reachability: what this environment can actually fetch

2026-08-20 · source

Measured 2026-08-20 by a scheduled run of the screening brief, which per CLAUDE.md's intake gate added no candidate. Reproduce with python3 probereachability.py; raw output in results-2026-08-20.json.

Does the mcp-supply-chain-watch archive accrue? A measurement of its floor

2026-08-20 · source

Measured 2026-08-20. Primary sources, reproducible from this repo, no credentials, nothing published, no spend.

Monetization reachability: the portfolio can build and ship, but cannot get paid

2026-08-20 · source

Eighteenth firing of the recurring "research and evaluate potential software business projects that aren't already here" brief.

What this environment can actually read, and what that costs the pipeline

2026-08-20 · source

Added 2026-08-20 by the thirteenth firing of the screening brief.

Runtime data reachability

2026-08-20 · source

Measured 2026-08-20. No credential, no account, no spend — read-only GETs.

Free-substitute supply for each pipeline candidate's core functions

2026-08-20 · source

Measured 2026-08-20. No credential, no account, no spend — read-only GETs against the npm search API.

Agent reachability: which candidates can be executed from where the agent lives

2026-08-19 · source

Seventeenth firing of the recurring "research and evaluate potential software business projects that aren't already here" brief. No new candidate was screened and PR #79 was not rebuilt — its own intake gate asks future runs not to, and the note at the end of its provenance…

What a cold free listing actually gets

2026-08-19 · source

Measured 2026-08-19 against the public npm registry. Re-runnable: python3 measurelistingdemand.py --out results.json.

What a free listing is worth, not just whether it gets found

2026-08-19 · source

Computed 2026-08-19 from the committed demand-study data. Re-runnable offline: python3 analyzelistingeconomics.py --out results.json.

Winning free-registry discovery does not come with a way to get paid

2026-08-19 · source

Measured 2026-08-19 against the public npm registry. Read-only, no credentials, reproducible from this repo.

Publish-endpoint reachability: what "denied" actually means, per endpoint

2026-08-19 · source

Added 2026-08-19 by the eighteenth firing of the screening brief.

Publish reachability: the free channel the portfolio planned to use is network-denied

2026-08-19 · source

Nineteenth firing of the recurring "research and evaluate potential software business projects that aren't already here" brief.

Does the audience come before the listing?

2026-08-19 · source

Measured 2026-08-19. Primary measurements against the public npm registry, reproducible from this repo.

Ask 0's five registries are not interchangeable, and the biggest one is closed

2026-08-19 · source

Measured 2026-08-19. Read-only, stdlib only, no credentials sent, nothing published or registered. Reproduce with:

Integrity issues runs caught

Problems a run found and fixed before merge (a fabricated figure, a missing licence, a red count on main).

Instructions runs chose not to follow

Recorded deviations, by the file whose instruction was set aside. A file that keeps appearing here is asking to be rewritten.

FileReportsLatestMost recent report
CLAUDE.md2262026-10-31No new blog post: a title-only batch has nothing a reader needs; report in docs/reports instead. (polish record)
prompt.md2172026-10-31No blog post or agent doc this run: a small programme step; the LOG entry carries the write-up. (research record)
prompts/ventures/prompt-1.md1302026-10-31Took a small primary-source correction on a flagship (einvoice-preflight) instead of a large slice; the Ireland page's phase-two claim was wrong. (ventures record)
prompts/creative/prompt-0.md1132026-10-31No post or podcast: audio over 400 MB cap and run short. (creative record)
prompts/research/prompt-0.md982026-10-31pick_track drew sim2real-inference, whose open items are owner-blocked; took build-data (new, same focus list) instead. (research record)
research/PROJECTS.md782026-10-30The drawn programme had no unblocked milestone. (research record)
prompts/goals.md742026-10-31publishing under the portfolio's public name is owner-only; the owner asked for it directly in this session (ventures record)
prompts/review/prompt-1.md602026-10-31reduced pass: no audit or drift report, no new candidate (review record)
portfolio/flagships.yaml582026-10-31Took a small robustness slice on flagship 1 rather than a milestone from its next: list; next: left unchanged. (ventures record)
prompts/redteam/prompt-0.md422026-10-31No blog post/agent doc: small red-team run. (redteam record)