Skip to content

docs(todo): the next-session handoff — ranked build work with file pointers - #38

Merged
linhdmn merged 1 commit into
mainfrom
docs/next-session
Sep 21, 2026
Merged

linhdmn merged 1 commit into
mainfrom
docs/next-session

Conversation

@linhdmn

@linhdmn linhdmn commented Sep 21, 2026

Copy link
Copy Markdown
Member

The index said "the three remaining stub tools, the model-driven planner and tier-combo names are the next milestone". Three of those four landed in this session (#33 execution, #34 the reasoner, #35 tier routing), so that note was stale and the real next step was unnamed.

Rewritten as a handoff. Every item was verified against the code, not recalled:

# Item Evidence
1 The loop cannot read a file 4 tools, none returns file content. query returns graph elements with a 400-char excerpt plus a rung — it is not a reader. So the reasoner locates parseConfig, learns it is at config.go:41, and cannot look at it — which is exactly why the live demo wrote func parseConfig() {}. write_file's description already promises a "read twin" that does not exist
2 The run has no answer goal_met stores its synthesis in PartialSynthesis — a field named for the bound case — and the model's rationale sits in a step's why
3 Success criteria are prose ps.Success appears exactly once in the codebase: as prompt text in reason.go:219. Nothing evaluates it
4 web_search the last stub; either build the onegw kind=searxng call or delete the tool
5 Guardrail gaps #37 recorded reply-out unscreened; ~740 ms/call unmetered by BudgetGuard
6 Planning is a rule table no longer blocking — the chooser carries runs

Each carries the files a doer actually needs to open.

Also in here, because a new session loses time rediscovering it

Checks

make check green: PRD OK (12/12, and --selftest 12/12). Docs only — no code changed.

CI shows red — the org's Actions billing limit is still unraised (#31's caveat, recorded in USAGE §2).

…inters

The index said "the three remaining stub tools, the model-driven planner and
tier-combo names are the next milestone". Three of those four are now landed
(#33 execution, #34 the reasoner, #35 tier routing), so the note was stale and
the real next step was unnamed.

Rewritten as a handoff, with each item verified against the code rather than
recalled:

  1. **The loop cannot read a file** — four tools, none of which returns file
     *content*. `query` returns graph elements with a 400-char excerpt and a
     rung; it is not a reader. So the reasoner locates parseConfig, learns it
     is in config.go:41, and cannot look at it — which is exactly why the live
     demo wrote `func parseConfig() {}`. `write_file`'s description already
     promises a "read twin" that does not exist.
  2. **The run has no answer** — `goal_met` stores its synthesis in
     `PartialSynthesis`, a field named for the bound case, and the model's
     rationale sits in a step's `why`.
  3. **Success criteria are prose** — `ps.Success` appears exactly once in the
     codebase: as prompt text in reason.go. Nothing evaluates it.
  4. `web_search` is the last stub (or should be deleted).
  5. The two gaps #37 recorded: reply-out unscreened, ~740ms/call unmetered.
  6. Planning is still a rule table (no longer blocking — the chooser carries).

Plus the working notes a new session loses time rediscovering: the worktree
rule, `make check` as the gate, the shell quirks (nohup for backgrounded
servers, pkill matching its own command line, ports 8080/9699 taken), and the
one that matters most — every defect this repo shipped lately was a check that
could not fail (#25, #29, #32, #37, and #8's checklist ticked on the author's
behalf). Verify by breaking the thing, not by watching it pass.
@linhdmn
linhdmn merged commit ee31867 into main Sep 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant