Skip to content

Instantly share code, notes, and snippets.

@jonasvanderhaegen
Last active June 3, 2026 21:50
Show Gist options
  • Select an option

  • Save jonasvanderhaegen/58879561188f50b0ed97b20bebc51d07 to your computer and use it in GitHub Desktop.

Select an option

Save jonasvanderhaegen/58879561188f50b0ed97b20bebc51d07 to your computer and use it in GitHub Desktop.
The period, May 29 - June 3 2026: six days of sessions read back against 'The method' (where it holds, where it diverges)

The period: 2026-05-29 → 06-03, read back from the sessions

This is my read of six days of Claude Code sessions (Friday May 29 through June 3, 2026), written against "The method", which was extracted from a single arc on the final day. The question: does the week match the doc, and where doesn't it.

Method for this doc: five parallel analysis agents read the prompt timelines and transcripts per project area (the code-graph indexer, the Go daemon and binaries, the web monorepo, the workflow library, misc), cross-checked against git logs, release tags, and the gist trail. Numbers below are measured, not estimated, unless marked.

1. What the corpus actually is

Numbers first, because they reframe the whole question:

  • ~3,800 transcript files touched in the window, ~615 MB. 2,772 contain at least one user turn.
  • ~4,900 prompt turns extracted from substantive sessions. Roughly 2,200 of them, June 1 alone, are the wiki feature calling claude -p once per code community ("You are a code documentation assistant..."). Hundreds more are timer wakeups, Stop-hook continuations, and batch-annotation runs. Well over half the "user" prompts in this corpus were not typed by a human.
  • ~485 commits across 11 repos. Per day: 52, 130, 90, 72, 78, 62.
  • Eight npm versions of skyline (1.0.0 → 1.0.7) shipped in one day, June 3.
  • One overnight Stop-hook session ("finish as much github issues as possible ... before saturday 3am") closed 19 issues, verified done-on-main.
  • A public read-only content MCP server went from GitHub issue (07:14) to deployed on a custom domain with rate limiting and full-text search (14:00) the same morning, six PRs.

The method doc describes an operator prompting an agent. The corpus shows an operator who spent the week building and steering a system in which most prompts are generated by the system itself. That is the headline divergence, and it is one of scope, not accuracy.

2. What shipped, condensed

  • May 29: intel workflows (snapshot-claude-state with binary introspection, track-anthropic-changes), email notifications with a shared error-code crate, a batch of issues filed, then the overnight 19-issue grind under a Stop hook.
  • May 30: the Dark Factory ladder, rungs 1–6, authored between 00:09 and 02:07. Triage ships with DRY_RUN on by default; close-loop ships disabled behind a kill switch. The verify rung gets a hardened judge prompt with a 26-case eval suite plus a cross-tier Haiku validator the same day, gate = judge AND validator AND CI, disagree fails closed. Also: directory-form workflows, lefthook + lint CI moved to self-hosted runners ("avoid hosted-Actions billing"), a usage-boost workflow that watches the weekly quota reset to "signal ramp-Opus". On the web side, an OffscreenCanvas dither worker shipped and was reverted ~90 minutes later when it made mobile worse, with a written field report.
  • May 31: ~25 simultaneous agents batch-annotated the workflow library into the ※id※ syntax; block-span tooling audited against its reference implementation and four correctness gaps backported; six parallel worktree sessions on separate issues; the DAG visualizer built in a 53-commit day.
  • June 1: the wiki LLM fan-out (~2,200 product-initiated sessions), caught mid-run using OpenAI instead of Claude ("why openai? you have claude code") and rewired the same morning; a KuzuDB mmap exhaustion fix; daemon CRUD/webhook/relay coverage; conductor mode begins ("turn into the conductor").
  • June 2: the great renames (sky → skyway, hashline → skyhawk, cartographer → skyline), a kubectl-style sky dispatcher baked into all three binaries, a unified Docker image, and a 14-item roadmap executed via ~15 Solo subagents, ~10 PRs merged in a day. A clean-state smoketest agent found two release-blocking bugs the dev tree could never show: a Docker image silently shipping a 20-byte dispatcher stub, and vector search silently degrading to BM25 because the HNSW index didn't survive a database close. On the web side, six hours of pixel-level art direction on the orbit slider, then the CMS pivot ("the slides should be generated from a supabase into static content during deployment").
  • June 3: skyhawk renamed skyline and released 1.0.0 → 1.0.7 with benchmarks, observability, blind end-user evaluation, debrief, corrections published; LSP phase 1 and phase 2 (workspace symbols, diagnostics, rename) landed by 23:17; the content MCP server shipped; the method gist itself was written, commented on by two agents, and now this.

3. Where the method doc holds, week-wide

Every core claim in the doc re-tested against days and projects it wasn't extracted from. Most hold.

Short high-trust prompts. Confirmed everywhere. "merge it", "go fir it yes", "fix.it.", "yes go", single-letter option picks. Direction changes consistently cost under ten words across all five project areas.

Never accept the first result. Confirmed beyond the skyline arc: "don't guess, check if it's merged into main" (May 28), "confirm claims first" (Jun 1), "check with advisor if it all checks out and it's true" (Jun 1), "audit the quotes against the raw transcript" (Jun 3, aimed at the method gist itself). The week's single best catch came from this reflex applied by an agent: the method doc's own arc was mislabeled, skyhawk wearing a skyline name.

Reproduce on clean state under end-user conditions. The strongest pattern of the week, and it predates the arc the doc was written from. A May 28 session ran install/uninstall round-trips from the home directory hunting for leftover data dirs. The June 2 smoketest agent wiped target/ to prove binary independence and found the stub-dispatcher and HNSW bugs. The June 3 blind test was the third instance of the same instinct, not the first.

End-user lifecycle questions. Recurring and productive: "what's the install flow for those whom want this app in a container?" (May 30), "think of it in perception of the end user, I buy skyline, it automatically installs skyhawk with it" (Jun 2), "is the daemon now actually booting up when the user restarts their device?" (Jun 3, still unbuilt).

Research before relying, detours as roadmap. Confirmed: the hashline-editor caveats research (Jun 1) preceded the parity push; "research online whether lsp helps or confuses the llm" preceded the LSP build; a competitor analysis was cut short with "START FUCKING PROGRAMMING" and its one good idea (tiered L0 retrieval) was absorbed into code within the hour, the same move the doc describes for the rejected trust-attestation dependency.

Everything becomes an artifact. 22 gists on the account, 16 created inside this window. Scratchpads numbered into the 90s. Field reports written for reverts. Failure-as-spec is real and mechanical: three scaffolding mistakes on June 1 were written back into the authoring skill as MUST NOT rules, then the scaffold was re-run to confirm the rules now catch them.

Pushback wins in both directions. Confirmed, including against the operator's own instructions ("I didn't say anything about skyway being flat, you made that decision") and from agents narrowing an operator's "commit everything" when the diff held throwaway state.

4. Three operating modes, not one

The doc describes a single loop. The week ran three distinct modes, and the method differs by mode:

  1. Interactive delegation (binaries, daemon): the doc's loop, as written. Scope in a sentence, delegate, verify claims, ship.
  2. Art direction (landing page): the doc's "no implementation micromanagement, ever" is false here, necessarily. The blank-card animation alone took ~25 micro-correction turns ("it fades in too quick", "i said when it's expanded, not the last 10%"). The operator's eye is the acceptance criterion, so the loop cannot be delegated. This is also where agent failure concentrated: a six-hour SVG-border replication attempt on May 30 ended with all changes discarded; a fresh session succeeded the next morning. Multi-step visual iteration without screenshots is the highest-failure activity in the corpus.
  3. Factory mode (Dark Factory, Stop hooks, conductor + Solo agents, timers): the operator writes conditions and contracts, not prompts. Quality here does not come from the trust/verify conversation at all. It comes from deterministic gates: lint walls, judges with eval suites shipped before activation, kill switches, fail-closed defaults, blind smoketests on clean state. The doc's section 4 skeleton is, in effect, reverse-engineering what factory mode already does.

The interesting part: the doc was written from mode 1 evidence on the very day modes 2 and 3 were carrying most of the volume.

5. The absorption pipeline (the third leg the doc doesn't name)

Reading the week as a whole surfaces a standing pattern the method doc files under "curiosity detours", which undersells it. It is a deliberate pipeline, and it ran at least nine times in six days:

signal → clone → investigate/SWOT → extract the one good idea → reimplement native → smoketest → ship → move on

Three trigger types feed it:

  • External signal (a post, a competitor, a reference repo): oh-my-pi (block-span audited against it, four correctness gaps backported, then its hashline modules ported to Rust); OpenViking (cloned, SWOT cut short with "START FUCKING PROGRAMMING", its L0 tiered-retrieval idea in code within the hour, absorption plan committed as a doc); ast-grep and ripgrep (cloned to a reference dir, ast-grep became sgrep, ripgrep's grep-searcher/grep-regex crates swapped in); a competing hashline-edit server (competitive audit, "make ours win 100% all battles", parity gaps closed); feynman (cloned, fed into a best-in-class agent); an archon command (adapted into the fix-ci-tests workflow); claudemarketplaces.com and osmo.supply (structure and easings for the landing site).
  • Personal irritation: three binaries with three CLI surfaces bothered the operator, so kubectl's plugin convention (sky-* PATH discovery) was absorbed and a shared sky dispatcher baked into all three binaries plus a unified Docker image, in one day.
  • End-user questions: "I buy skyline, it automatically installs skyhawk with it" is the dispatcher's actual spec, stated before the build.

The key property that makes this assimilation rather than frankensteining: the donor dependency almost never survives. AgentLair was rejected but mined for its manifest-digest idea. ccquota was absorbed into a native sky usage command and deleted from the stack the same day. OB1 was investigated and dropped. The part stays foreign in a stitched monster; here the idea gets reimplemented native (Rust port, CGO-free, behind the project's own gates) and the donor is discarded. Ideas in, dependencies out.

Three pressure points, honestly:

  1. Test debt rides the speed. Absorbed features arrive fast and ship the same day, which is exactly where the small-n benchmark problem concentrates. The clean-state smoketests are real and catch real bugs, but the OffscreenCanvas worker shipped before the research that would have killed it.
  2. License and provenance hygiene is absent. No session in the corpus checked a clone's license before ideas or code moved over. Ideas are fine; literal fixes and ported modules deserve a license pass and an attribution line in the commit. Cheap now, expensive to retrofit.
  3. Consolidation fallout can outlast the code. The dispatcher was the right call and took hours to build, but freeing up the sky name forced the rename cascade (sky → skyway, skyhawk → skyline, cartographer → skyline → skybox) that trailed cleanup commits for days. The identity churn cost more than the feature.

6. Where the week diverges from the doc

The register is wider than "casual". The doc says prompts are short, lowercase, typo-tolerant. True, but the truthful version includes escalation as a steering instrument: "97 agents are you out of your mind?" (a research task that over-spawned and was killed), "are you daft?" (naming conventions), caps-lock corrections during visual work. The escalations are not noise; they cluster precisely on the two tasks agents repeatedly failed (visual iteration, naming/prefix discipline), and they functioned as a priority signal the agents responded to. A method doc that omits the failure register overstates how often five words suffice.

Naming churn is a real cost the doc skips. One project went cartographer → skyline → skybox in 72 hours; another went hashline → skyhawk → skyline; the CLI went sky → skyway while sky became a dispatcher. Each rename trailed cleanup commits for days (".gitignore .skybox not .skyline") and made the method doc itself ambiguous: "skyline" had been a different project's name 24 hours before the doc was written, which the first agent comment on it had to untangle. Renames were the single most repeated Stop-hook condition of the week.

The privacy rule and practice diverged once. The doc's standing rule says privacy-scrub before anything leaves the machine. During the week a vendor API key was pasted directly into a session and a warning about it was waved off ("shut up about the sendgrid key"). It stayed on-machine, and the published gists are clean as far as I checked, but the standing rule is doing less work in chat than the doc implies. Worth one habit change: keys go in config stores, never in prompts, because transcripts are exactly the kind of artifact this week proves get re-read later (this document exists because they do).

Open loops: the diagnosis is right, the proposed fix may be wrong. The doc proposes an open-loops tracker. The week's evidence suggests the working fix already exists and it isn't a tracker: loops that were turned into Stop-hook conditions closed (renames, epic #39, the 19-issue grind); loops that stayed questions did not (daemon autostart, asked at least three separate times across two days, still unbuilt at period end). The lesson is sharper than "groom a list": a loop closes when it is given a hook and a deadline, and not otherwise.

Small-n persists, with counter-movement. Published numbers still ride on small samples, as the doc admits. But the week also built the machinery to fix it: a 26-case eval suite for the judge, a retrieval eval harness with a baseline on June 3. The fix is no longer "known but not enforced anywhere"; it is enforced in two places and absent in the rest.

One pattern the doc credits to the operator has migrated. By June 3, much of the adversarial verification was self-imposed by agents (re-running subagent acceptance checks, advisor passes before patching, schema re-checks). One of the gist comments already flags this: the quality floor is set by whoever does the attacking, and right now that discipline lives partly in agent habit rather than in an encoded gate. Factory mode encodes it; interactive mode still depends on someone remembering.

7. Verdict

In line, with an asterisk the size of the factory. As a portrait of the interactive loop, the method doc is accurate and the week confirms it repeatedly, on days and repos it was not extracted from. The trust/verify split, the clean-state testing instinct, the artifact discipline, the detours out-yielding the roadmap: all real, all reproducible, all observed before and after the arc that inspired the doc.

What the doc misses is that by this week the interactive loop was no longer where most of the work happened. The defining engineering act of the period was not prompting well; it was wrapping prompting in deterministic machinery (lint gates, judges with eval suites, kill switches, blind smoketests, Stop-hook deadlines) so that the trust/verify loop survives without the operator in the room. The .sky workflow the doc wants to encode in its section 4 was, by the time it was written, already half-built and running. The doc should be read as the spec for the factory's interactive fallback mode, and the week as evidence the factory mostly works: 485 commits, 8 releases, 19 issues closed in one night, two release-blocking bugs caught by a smoketest no human ran, and one API key that should never have been in a prompt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment