Skip to content

What the agent runs asked for: page lines, m0 new ., a board template, skills - #569

Merged
codetalcott merged 2 commits into
mainfrom
agent-runs-followups
Oct 7, 2026
Merged

codetalcott merged 2 commits into
mainfrom
agent-runs-followups

Conversation

@codetalcott

@codetalcott codetalcott commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

The follow-ups the agent usability runs asked for (docs/notes/agent-usability-runs.md): the lines each page lacked, three changes to m0, and the two skills. The record is docs/notes/what-the-agent-runs-asked-for.md; SPEC N27 (amended) and N52 (new); DECISIONS D66.

Pages

  • Both quickstarts serve on --host 127.0.0.1 and say the default is every interface.
  • The Python quickstart says libpython comes from PATH's python3, what publish() does with a line break and what its return value means, and that a form post meets Django's CSRF check.
  • The home page and the Mojo overview point an agent at llms.txt and each page's .md twin.
  • The Mojo overview maps the API to its pages and drops "no form library".
  • The views page gives reply and reply.problem's four arguments, and Datastar 1.0's rule that an action's answer applies only on a 200 (read off the 1.0.4 bundle).
  • The host and views pages say where a send from a view reaches.
  • The scaffold's AGENTS.md names the host and views pages by URL before the installed source.

m0

  • m0 new . writes the empty current directory, named for it.
  • The printed next step serves on 127.0.0.1.
  • --template board: a list every tab shares whose sender is a view. A POST appends and publishes the whole board through the state's DatastarStream, then answers a 200 signal patch that empties the poster's input. Every stateful view is on_loop=True; the list is one process (max_workers() -> 1, D66: ViewsApp does not forward sse_peer_frame).
  • Fixed: live's stream was refused 409 behind a handler pool (--blocking-threads), because its stream view was not on_loop and its handler answered only stateless loop routes.

Skills

skills/m0serve/SKILL.md and skills/m0/SKILL.md, in this public repository so they change with the product. scripts/agent_runs.py run --plugin-dir loads a plugin into each session and records its version and file hash.

Gates

  • smoke-scaffold: all four templates. board and live are served behind --blocking-threads 2, and every template's new phase covers m0 new ..
  • smoke-m0-wheel (45 unit tests), check-templates, smoke-quickstart-mojo and check-docs pass.
  • smoke-quickstart passes all 15 blocks once the second page's process count is adjusted for a launchd m0serve on this machine; unadjusted, it fails on that count alone, as recorded before.
  • sabotage-scaffold: all 14 new rules caught, each run once:
    • board: a post reaches no stream; the post, the stream and the document each off the loop; a message rendered raw; a late stream sent nothing; the poster's input not emptied; the docstring's backticks; the template's own test; smoke.sh's status.
    • live: the stream off the loop; the handler answering only stateless loop routes.
    • m0 new: the current directory refused; the next command binding every interface.

Measured: the Python track with the m0serve skill loaded met the contract five of five in 8 tool calls (median; range 7–10), against 13 (13–15) without it, at $0.27 a session against $0.37. Not measured yet: the doc lines reach an agent once the site deploys, and the m0 changes once an m0 release publishes them, so the Mojo track waits for that release.

🤖 Generated with Claude Code

codetalcott and others added 2 commits October 7, 2026 10:25
…, skills

The follow-ups from docs/notes/agent-usability-runs.md, recorded in
docs/notes/what-the-agent-runs-asked-for.md (SPEC N27 amended, N52 new,
DECISIONS D66).

Pages:
- Both quickstarts serve on --host 127.0.0.1 and say the default is every
  interface.
- The Python quickstart says libpython comes from PATH's python3, what
  publish() does with a line break and what it returns, and that a form
  post meets Django's CSRF check.
- The home page and the Mojo overview point an agent at llms.txt and each
  page's .md twin; the overview maps the API to its pages.
- The views page gives reply and reply.problem's four arguments, and
  Datastar 1.0's rule that an action's answer applies only on a 200.
- The host and views pages say where a send from a view reaches.
- The scaffold's AGENTS.md names the reference pages before the source.

m0:
- m0 new . writes the empty current directory, named for it.
- The printed next step serves on 127.0.0.1.
- --template board: a list every tab shares whose sender is a view. Its
  stateful views run on the loop, and the gate serves it behind a pool.
- Fixed: live's stream was refused 409 behind a handler pool. Its stream
  view is now on_loop, and its handler answers on-loop routes with the
  state. The gate serves live behind a pool too.

Skills: skills/m0serve and skills/m0, canonical here. agent_runs.py
gains --plugin-dir, which loads a plugin into each session and records
its version and a hash of its files.

Gates: smoke-scaffold (all four templates), smoke-m0-wheel, check-templates,
smoke-quickstart-mojo, smoke-quickstart (all 15 blocks, with the
foreign-m0serve count adjusted) and check-docs pass. sabotage-scaffold
catches all 14 new rules.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codetalcott
codetalcott merged commit 3d99aa2 into main Oct 7, 2026
19 checks passed
@codetalcott
codetalcott deleted the agent-runs-followups branch October 7, 2026 15:16
@codetalcott codetalcott mentioned this pull request Oct 7, 2026
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