Built to be read by an agent, not just tolerated by one
16 May 2026
Most frameworks were designed for humans and are merely tolerated by an AI agent working through them: guessed conventions, a training-data cutoff standing in for real documentation, no reliable way to check whether a change actually did what it was supposed to. Phlo takes the opposite starting position: if the platform is a closed loop with one source of truth, an agent can genuinely understand it, not just pattern-match against it.
A skill document instead of guesswork
SKILL.md is a complete language and build reference, written specifically so an agent can work on a Phlo codebase without prior training on it. It is not marketing copy, it is the same kind of reference a new engineer would want on day one: syntax rules, the parser's continuation logic, the view rules, all in one place an agent can load directly instead of inferring from scattered examples.
Two planes, on purpose
reflect::context → JSON snapshot: routes, views, errors
build::lint → fast, side-effect-free syntax check
phlo_eval(...) → runs inside the live app, against real data
reflect:: and build:: run outside the running app: fast, and side-effect-free, safe to call constantly while iterating. phlo_eval is the other plane entirely, it executes inside the live app, so an agent can check that a change behaves correctly against real data instead of only checking that it compiles. Keeping these separate matters: an agent that can only lint code never actually verifies behavior, and an agent that can only run against live data has no cheap, safe way to iterate first.
Precise errors are an agent feature too
The line-based parser (no AST, a few hundred lines, covered in an earlier post) means a .phlo source line maps directly to a known line in the generated PHP. An error page names the exact source file and line, with an 8-character reference id logged to data/errors.json. That precision was built for a human debugging their own app, but it pays off identically for an agent: "here is the exact line that failed" is something a model can act on directly, without reconstructing intent from a mangled stack trace through compiled output it never wrote.
Machine-readable, not just human-readable
llms.txt, guide.md, manual.md and /manual/schema expose the same documentation a human reads, as plain text and structured JSON, so an agent fetching the site's own docs gets the real reference, not a scrape of rendered HTML. The same properties that make Phlo legible to a person, one closed loop, source-mapped errors, a single skill document, make it tractable for an agent, and treating that as a first-class goal is how a small team gets to work with an agent as a real collaborator instead of a careful intern.