What BPOS runs · Learn
Beyond SKILL.md.
A skill that learns from every run.
Agent skills have become the way to teach a model a procedure. SKILL.md does that well. This is what we added on top, why it keeps the intelligence outside the model, and what it lets us see that a skill file cannot.
A BPOS skillset is a set of pages, one per stage of a procedure. Each page declares the tools its stage may ask for, the model it runs on and the form its answer must take. The links between stages learn from the outcome of every run, and the pages are served over HTTP, so every search, hop and miss is recorded.
This article belongs to What BPOS runs. Nodes, not agents covers how a skillset turns a node into an agent for one stage; this one covers the skillset itself.
What SKILL.md does well
A skill, in the Agent Skills open standard, is a folder with a SKILL.md file: a short description that tells the model when the skill applies, instructions for what to do, and supporting files loaded only when needed. It is simple, portable across tools, and cheap: until a skill is used, it costs only its description.
Claude Code has taken it further, as its documentation sets out. A skill can pre-approve tools for the turn that invokes it, override the model and the effort level for that turn, run as a subagent, and attach hooks. Its skill-creator compares a task done with and without a skill, and tests one version of a skill against another. And its bundled verify skill records the recipe that worked for building and running your app, then rewrites it only when it steered a run wrong. That last idea, a procedure corrected by its own failures, is close to ours. We credit it.
The intelligence lives outside the model
The reason we went further is a single conviction: the logic of how work gets done should not live in the model. If it does, every model change is a migration, and what one model learned leaves with it.
In the 30 days to 9 October 2026, 2,854 of BPOS's 2,858 agent executions ran on Gemini models, and the models changed underneath: Gemini 3.5 Flash and 3.1 Flash-Lite last ran on 22 September, and Gemini 3.8 Flash and 3.5 Flash-Lite carry the work today. A change of model is not a change of procedure, because the procedure, the tools and the answer forms live in the pages, where a model change does not touch them. The models are interchangeable.
Five things a skillset declares, or records
1. Tools, as data
A SKILL.md grants permission over the tools its host already has. A skillset page names instruments: things a stage may ask the platform to read for it, such as a file, a symbol's references or a claim from the knowledge graph. Instruments are declared as data, 32 of them today, and a stage is offered one only if the platform can actually serve it. The step asks by name, and the platform runs it. Nothing the router offers is a promise the platform cannot keep.
2. Models named on the graph, chosen by the page
In Claude Code, a skill can switch the model for its turn. In BPOS, no model is chosen in the platform's code at all; a test fails the build if one appears there. Each model is declared on the graph, with its provider, its limits and its prices. A skillset names a pair, a planning model and a working model, declared once as a page of its own; today the default pair is Gemini 3.8 Flash and Gemini 3.5 Flash-Lite. Moving a skillset to another pair is one line on a page, with no release. Judging always uses the same pair, whatever pair the work runs on, so a score means the same thing from one job to the next. And a stage that produces media still names its own model: Gemini 3.1 Flash Image for frames, Veo 3.1 Fast for clips.
3. A procedure that learns
A SKILL.md is prose that stays as written until someone, or an evaluation, changes it. A skillset is pages joined by links: 436 say what a stage must read, 30 say when a transition applies. When a job's outcome is known, every link its steps walked is reweighted by it, stronger where the work ended well and weaker where it did not. That is the difference between a recipe and a procedure. Nobody Types the Weights covers the rule; Nodes, not agents covers why use alone teaches nothing.
4. The form of the answer
A SKILL.md has no field for what the answer must look like. A skillset page can declare a schema for its stage's answer, and the step must answer under it, enforced through the model's own response schema. Or the page can declare that the answer is the deliverable itself, an image or a clip, and the step returns that. Either way, the next stage receives something it can rely on.
5. A record of use
This is the dimension a skill file cannot have. A SKILL.md is loaded into a context; nothing records what the model looked for inside it, or failed to find. Our skillsets are served over HTTP, and the server keeps the log for free. In the 30 days to 10 October 2026 it recorded 8,486 page requests, 7,809 hops from one page to the next, and 98 searches that found no page at all. A miss keeps the need in the agent's own words, such as "ts/edit: Imports makeData from ../model/sampleData matching signature …".
That gives our procedural graph a second dimension. The links learn from outcomes. The traffic shows demand and navigation: which pages agents search for, how they move, where they loop, and which pages should exist and do not. The misses are read back, by our site audit as demand not supplied and by the round that asks why each job ended where it did. One rule keeps the two apart: traffic is never evidence for a link's weight, because use is not success. It is evidence of what agents need. It is the same discipline we apply to people's clicks in HikrLink, applied to agents: LLM observability that reads like web analytics.
Where we are short
- Few skillsets can run a whole job. Today only the coding skillset holds a procedure that runs a unit of work from start to finish.
- One pair does most of the work. Most skillsets run on the default pair. Moving one to another pair, Google's or Anthropic's, is one line on its page, with no release.
- The misses are a backlog. Ninety-eight unanswered searches a month are pages we have not written yet, and 353 requests failed to route.
- Portability. A SKILL.md moves between tools. A skillset runs where BPOS runs.
Common questions
What is the difference between a SKILL.md and a BPOS skillset?
A SKILL.md is a portable recipe: a description, instructions and supporting files, with optional settings for tools and, in Claude Code, the model. A BPOS skillset is a set of pages, one per stage of a procedure, each declaring its tools, its model and its answer form, joined by links whose weights move with the outcome of every run, and served so that every search, hop and miss is logged.
Can a SKILL.md set tools and the model?
Yes, within limits. In Claude Code, allowed-tools pre-approves tools for the turn that invokes the skill and model overrides the model for that turn. The open Agent Skills standard keeps allowed-tools but not model. Neither declares an output schema, and the skill does not learn from outcomes on its own.
Why keep a skill's logic outside the model?
Because then the model is interchangeable. In the 30 days to 9 October 2026, BPOS ran its work on four Gemini models. A change of model does not touch the procedure, the tools or the answer forms, because they live in the pages, not in the model.
Sources
- Anthropic, Extend Claude with skills, Claude Code documentation, read 10 October 2026.
- Agent Skills, the open standard.
- Our own records: agent executions by model over the 30 days to 9 October 2026; instruments, stage model declarations and links as of 9 October; page requests, hops and misses over the 30 days to 10 October.
Related writing
- BPOS: AI agent orchestration, from a goal to shipped work. The whole machine.
- Nodes, not agents. How a skillset makes an agent for one stage.
- A Hand-Written Map Can Be Worse Than No Map. Why a procedure that cannot learn can make agents worse.
- Nobody Types the Weights. The rule the links learn by.
- A context graph in production. The same idea applied to a company's knowledge.