The skill: download build-your-agent for your coding agent
The Build your agent room as a skill your coding agent can run: a SKILL.md in the Agent Skills format that says when each step happens, what it produces and where to stop, while every how stays on a page of this record. Eight non-negotiables, where the files go, ten steps with what done means, the progress file, how the skill adapts to any niche, and templates that are copies of this record's own. Download the zip, drop it in your tool's skills folder, attach the record, and start.
- Status
- stable
- Trust
- human-reviewedHuman: Raza Rizwan ·
- Owner
- Human: Raza Rizwan
- Approved
- Human: Raza Rizwan ·
The pages before this one are knowledge: what is true, cited to the book and to the installed SDK. A coding agent also needs the other half, the procedure: what to read first, what to produce, when "done" is done, and where to stop and ask. The book keeps the two apart as well. Its loop has a skill, project knowledge written down once so no run starts from nothing, 1 and its labs hand the coding agent a brief that says what to build, in what order, and what wins when the brief and the installed SDK disagree. 2 This page is that half for this room.
Download
Download build-your-agent-skill.zip
(version 2.2, 2026-10-12). The same procedure is this page, so a tool with
no skills folder can read it as plain text at
https://sor.razarizwan.com/md/agent/build-your-agent-skill.md.
Inside, one folder named build-your-agent:
| File | What it is |
|---|---|
SKILL.md | The instructions: eight non-negotiables, the layout, ten steps written as when, read, produce, done, stop; adapting to any niche; the quality bar; when to stop |
references/record-map.md | Every record page a step reads, with its stable id and URL; a copy of the map on the overview |
scripts/probe_sdk.py | The SDK probe from the build page as one script; the one deterministic step |
assets/progress.md | The memory between sessions; a copy of the progress file on this page |
assets/delegation-map.md | Step 1; a copy of the one-page map on understand the work |
assets/gates.md | Step 2; the three gates, the proven runs, the four promotions, the shape |
assets/experience-brief.md | Step 3; a copy of the eleven-section brief on design the experience |
assets/spec.md, assets/plan.md | Steps 4 and 7; copies of the shapes on write the spec |
assets/governance-record.md | Step 5; a copy of the Governance Record on govern it |
assets/opening-round.md | Before step 1; a copy of the opening round on demo or production |
assets/worker-page.py | Steps 7 and 9; the page template from the worker's page, page HTML included |
README.md | Install and start, the short version of this page |
How it is written
The skill follows the page on writing skills, which is
to say the book's rules and OpenAI's. It is in the Agent Skills format: a
folder whose name matches the name in SKILL.md, a description that
says what the skill does and when to use it, and a body under 500 lines so
an agent loads it whole once it decides the skill applies.
3 The description front-loads the situations and the
phrases that should trigger it, and says when it should not, because a host
with many skills installed may shorten descriptions to fit its budget.
4
The body is instructions, not a script. OpenAI's guidance is to prefer
instructions over scripts unless deterministic behaviour or external tooling
is needed, to keep each skill focused on one job, and to rely on progressive
disclosure: the host loads only the name and description at first, and the
full SKILL.md when the skill is selected. 4 So the
skill says how to think through each step, names the record page that
settles it, and leaves the knowledge in the record. The one deterministic
step, probing the installed SDK, is a script.
The skill says when; the record says how. Nothing in the skill is
knowledge that is not on a page of this record. Each step names the page to
read before the step, every template in assets/ is a copy of a template on
a page and names that page, and when a copy and its page differ, the page
wins. This is what makes the record the one place the method lives. The
first version of this skill held method of its own: it asked for a single
spec.md and nothing else, and no page said otherwise, so the worker built
from it had no research, no plan and a four-section spec, while the book
behind the spec page already asked for four artifacts.
5 Two places that each hold their own version of the method is the
failure this rule exists to prevent.
Install
Unzip into the skills directory your tool reads, keeping the folder name.
mkdir -p .claude/skills
unzip build-your-agent-skill.zip -d .claude/skills
# then, inside Claude Code: /build-your-agentClaude Code reads .claude/skills/<name>/SKILL.md in the project and
~/.claude/skills/<name>/SKILL.md for all projects, follows the Agent Skills
open standard, and runs a skill when its description matches or when you
type /name. 6 Codex scans .agents/skills in the
working directory, its parents and the repository root, plus
~/.agents/skills, and activates a skill explicitly with $skill-name or
implicitly when a request matches its description. 7 OpenCode
searches .opencode/skills, .claude/skills and .agents/skills in the
project, and their global equivalents, and loads a skill by name.
8 A tool with no skills folder gets the same procedure by
pasting SKILL.md as the first message of the session.
Attach the record
The skill reads the record through MCP when the server is attached:
https://sor.razarizwan.com/mcp, three tools, search, outline and
read. The door answers only with an access key, which takes a minute to
get at razarizwan.com/access: enter an
email, type the code it receives, and the address arrives with the key
inside it. The key is the last segment of the address, so no client has to
send a header (?key=YOUR_KEY after /mcp is accepted as well). In Claude
Code that is one command, and /mcp afterwards shows the server as
connected: 9
claude mcp add --transport http raza-sor "https://sor.razarizwan.com/mcp/YOUR_KEY"In Codex, OpenCode, ChatGPT or claude.ai, add the same address with the key
in the tool's MCP or connector settings, authentication "none". The server
is required: when the skill finds no raza-sor tools in its tool list it
stops and sends the person to the access page rather than building from
anything else. Only when an attached server fails does it fall back to each
page's raw markdown at https://sor.razarizwan.com/md/agent/<page>.md,
which needs no key, and it records which pages came from the fallback. Either
way, the knowledge comes from the record, and the skill only says which
page to read when.
Start
One line and your work, in your words:
Use build-your-agent. Here is the job my team does and how: ...The agent creates progress.md and sends one opening message: what it
assumes about the depth (a demo, unless you say production), the model and
whether it is free or paid, and the rest of the blanks, each already filled
in from your words for you to correct. Then it reads the work with you into
a delegation map, answers the three gates, and stops for your approval of
the spec before it writes a line of code. Whatever the depth, you are handed
one page with a password, an upload, a Run button and a chat box.
The eight non-negotiables
These are in SKILL.md, and they are the record's rules, not new ones:
- Record first, memory never. Every rule the agent applies comes from a page it read this session, and the page id goes beside the work in the progress file. What the record does not cover is said to be uncovered, with what was searched, never invented.
- No code before the human approves the spec in their own words, recorded with the date. The agent never writes the approval line.
- Tests before tool bodies, the probe before SDK code. The installed SDK and its live documentation win over any page here.
- Anything that must hold regardless of the model lives in code: a threshold, a category rule, a duplicate check, an ownership filter, computed in a tool body and tested there. Identity comes from the harness, never from chat. The rule and its reasons are on the build page.
- A worker that talks to people is natural by design. The five rules on the experience page are acceptance criteria: every record a person owns has a tool that lists it; the private part of a message is refused while the public part is answered; a well-formed question never ends in a hard error; a fact appended by code belongs to the question; unscripted questions are graded beside the golden set.
- Every instruction the agent writes is a prompt, written under the AI prompting guide.
- Secrets never enter code, chat, a commit or an image. Deploying, spending money, sending anything outside the project, and any tool that changes the world need the human's word, recorded.
- Never invent a human, a task, a proven run or an example to satisfy a gate. The progress file is read first and updated last; commit after every step, and a step with no commit is not done.
How it talks to the person
The person on the other side is usually not an engineer, and the record's pages carry the rules for talking to them; the skill only says when they apply. Every question is still asked, because a skipped question is a default the model fills and the worker goes wrong there; what changes is the pace.
- The opening round first. Before the work is read, one message proposes the depth (demo by default, or production), the model provider and free or paid, and every other blank it can fill from the person's words, each answer pre-selected and marked as the assumption, so the person corrects only what is wrong (demo or production, "The opening round").
- Rounds, not single questions. The blanks a step needs are gathered into one message, as a short list, so the person answers a round at a time (spec page, "How this record runs the interview").
- Three answers with every question, the third always "in your own words". A proposed answer is accepted or corrected, never assumed.
- Plain words, technical blanks last. Which system holds the data, which platform, a path or a key are placeholders on the map until the tools are wired at step 9 (understand the work, "How to ask for the blanks").
- Proven runs are proposed, then corrected, when none are ready; a run stays PROPOSED until the person confirms it, and the gate counts only confirmed runs (from plan to worker).
- The person is handed a page, not an API: one page with a password, an upload, a Run button and a chat box that answers in the person's own language and politely refuses what is outside the work, plus three plain lines: the address, where the password lives, and where the code lives with the command that runs it again (the worker's page, "What the person is handed").
Where the files go
The book's rule is that every feature ships with its spec in specs/, with
the constitution in the rules file at the root, CLAUDE.md or AGENTS.md,
and the research, the spec and the plan as files in the feature's folder.
5 This room extends that rule to every document about one worker, so
a stranger opening the repository finds the whole decision trail in one
folder:
AGENTS.md the constitution, six to eight lines
progress.md the memory between sessions, read first, updated last
specs/<worker>/
delegation-map.md step 1: the person's steps, owners, criteria, gates, baseline
gates.md step 2: the three gates, proven runs, promotions, the shape
experience-brief.md step 3: the eleven sections and the natural-behaviour criteria
research.md step 4: the one-page findings document
spec.md step 4: behaviour only, six sections, approved by the human
governance-record.md step 5: case, data, capability, people, evidence
plan.md step 7: the how, reviewed by the human before code
src/<worker>/ the factory, the tools, the guardrails, the CLI, the door
tests/ one test per acceptance criterion, and the loop test
datasets/golden.json the golden set, an origin on every case
datasets/unscripted.json the unscripted set
scripts/run_evals.py the runner
Dockerfile, Dockerfile.vercel the sealed bundle, and the Vercel buildThe task list is the agent's own tracked checklist, one commit per task, so
the git log reads like the list; it is written out as tasks.md in the same
folder only when the tool has no task tool or the human wants the breakdown
reviewed as a document. 5 The templates in the skill's assets/
folder fill the first seven of those files.
The ten steps
Each step names the page that settles it. The agent reads the page before the step, quotes its rules rather than paraphrasing them, and checks the step against the "Done when" column and the closing list of the page before calling it done.
The table is the production depth. At demo depth, the default, every step
is kept and produces less, as the step-by-step table on
demo or production says; the depth chosen in the
opening round is written at the top of progress.md.
| # | Step | When | Reads | Produces | Done when | Human gate |
|---|---|---|---|---|---|---|
| 1 | Understand the work | First, before any tool is placed; again whenever the workflow changes | understand the work, count your workflow | delegation-map.md in the person's words | The task definition has all five components in the person's words; every number the output depends on is on the compute list; every step passed the window test or is marked human; every row has an owner, one criterion and a carried-by; every human step names a person, a moment and what they check; the map has an owner and a next review date; the baseline was measured before any change; connection details are placeholders marked for step 9, not blockers | Blanks are questions asked in rounds with three answers offered, never defaults |
| 2 | Gates and shape | The map exists, before any design | gates, promotions, shape | gates.md: three gates, proven runs with dates, four promotions, the five answers, the objection | The done-check is verifiable in under a minute; at least three runs by hand confirmed by the human, dated, any run the agent proposed labelled PROPOSED until confirmed; the five questions answered with the page's tests; the pattern named; the objection written and answered | Stop if tool, chatbot, Mode 1, fewer than three confirmed runs after proposing three for correction, or a fixed pipeline |
| 3 | Design the experience | The shape is chosen, before the spec | experience | experience-brief.md, eleven sections | Every action has an autonomy stop and irreversible actions are pinned in the loop; the wait names the current step; undo, apology, corrective action and a path to a human exist for every failure the map predicted; tool names say the action and errors carry a next step; the five natural-behaviour rules are acceptance criteria | |
| 4 | Constitution and spec | The brief exists | spec, prompting | AGENTS.md, research.md, spec.md, the interview | AGENTS.md is six to eight lines, each passing "would removing it let the AI make a mistake?"; the spec has the six sections, describes behaviour only, and every acceptance criterion is checkable; the interview ran in rounds with three answers offered per question, nothing skipped, until nothing was left to misread | Stop for approval, in the human's words, with the date |
| 5 | Govern it | The spec is approved, before any tool is built or turned on | governance | governance-record.md | Classification with its deciding factor and a gate as who, what, when; data tier, whether identifiers are needed, the route; the five checks on every tool, skill and connector, this skill included; who is affected, exclusions sampled, the disclosure decision; the evidence block; the architecture tells the same story as the record | Every OPEN QUESTION goes to the person who holds the answer |
| 6 | Probe and tests | Before any SDK code | build page, tests, another model for the provider chosen in the opening round | Probe output, the pin, one failing test per criterion, a scripted-model loop test | The probe exits 0 and the version, default model and pin are recorded; every acceptance criterion has a failing test against a plain function; the loop test fails until the agent exists; the tests fail for a missing implementation, not a missing runner | Stop if the probe fails |
| 7 | Plan, worker and harness | The tests are red | spec Phase 4, build page, harness, the worker's page | plan.md, the tracked task list, the factory, tools, guardrails, approval, sessions, streaming, tracing; the rules, caps, allow / ask / deny, hook, typed output; the worker's page with its four chat rules | The plan matches the constitution and reuses what exists; each task cites its requirement and the last task is verification; build_agent() names no model; every owned record has a list tool and a get tool scoped by harness identity; needs_approval matches the autonomy ladder; max_turns on every run; the six items of the basic harness are present; the tests are green; the CLI answers a proven input; the guardrail, the approval gate and max_turns each fire; no function exists that the agent never calls; one commit per task | Stop for the plan review before any code |
| 8 | Evals | The worker answers, before it ships, after every change | evals | Golden set with origins, unscripted set, runner, calibration, baseline, hold-outs | The page's eight steps are done; every case has an origin, including one injection and one false green; the unscripted set was written by someone who has not read the spec; the grader was graded once with zero false passes on the cases that matter; the baseline carries its date, judge model and rubric version; the unscripted rate is on its own line | |
| 9 | Ship and prove | The baseline is recorded | deploy, checklist, the worker's page | main.py, Dockerfile, Dockerfile.vercel, deploy notes, the five-stage table | /health and /runs exist; the deploy notes name every variable the human sets; every row of the five-stage table carries the command that proved it, including one cold start; the page opens behind its password at the live address and its four chat rules were checked live once; the person was handed the address, where the password lives, the project's path on disk and the run command, in plain words | Stop before the first deploy |
| 10 | Report and keep alive | Every row proven; again whenever the worker disappoints or changes | diagnose, record, spec "Keep the spec alive" | The report; for a change, the spec first, the failing test, the suite, the probe if the SDK moved | The report says what the worker does, then names the human gate, then what it refuses, never "fully automated"; the live address and where the code lives; what was left out and where the record continues; the three things to watch: the spend cap, the review dates on the SDK pages, the session living in the container |
The progress file
The harness page gives the spine: a progress file the
run reads first and updates last, with what is done, what is in progress and
what needs a human. 1 This room's version adds the gates the human
passed in their own words, the commits, and the facts each step must leave
behind, so that a new session, or a new agent, can continue without a
transcript. The skill ships it as assets/progress.md.
# progress.md
Task (one line, in the human's words):
Started:
Record read from: (MCP / raw markdown / web)
## Steps
| # | Step | Status | Proof (file, command, date) | Record pages read |
| --- | --- | --- | --- | --- |
| 1 | Understand the work (delegation map, baseline) | | | |
| 2 | Gates, proven runs, shape (STOP if rejected) | | | |
| 3 | Experience brief | | | |
| 4 | Constitution, research, spec (STOP for approval) | | | |
| 5 | Governance record (OPEN QUESTIONS routed) | | | |
| 6 | SDK probe, failing tests | | | |
| 7 | Plan (STOP for review), worker and harness | | | |
| 8 | Evals: golden set, unscripted set, baseline | | | |
| 9 | Ship (STOP before deploy), five-stage checklist | | | |
| 10 | Report | | | |
## Human gates (the human's own words, with the date; never written by the agent)
Task given by:
Proven runs by hand (dates; PROPOSED until the human confirms):
Spec approved by:
Governance open questions answered by:
Plan reviewed by:
Deploy approved by:
## Commits
| Step | Commit |
| --- | --- |
## SDK
Installed openai-agents version:
Provider (OpenAI default / other):
Default model the probe printed:
Pin written to pyproject.toml:
Probe run on (date):
## Shape
Five answers (Q1 to Q5):
Pattern chosen:
Most likely objection, and the answer:
## Harness
- Constitution file:
- Spend cap set by the human (yes/no):
- Tools: allow / ask (needs_approval, with the autonomy stop) / deny (not given):
- Listing and lookup tools scoped by identity:
- Pre-commit hook:
- Typed output where parsed:
- Three stops (success condition, limit, no-progress check):
- Streaming and tracing wired:
## Evals
Golden set size, categories, origins:
Unscripted set size and author:
Validation script:
Rubric version and bars per category:
Grader calibration (agreement, false passes):
Baseline (date, judge model, overall, by category, unscripted on its own line):
Schedule and hold-outs:
## End-to-end checklist
| Stage | Done when | Proof |
| --- | --- | --- |
| Laptop | Boots clean; /health ok; /docs lists both endpoints; smoke test exits 0 | |
| Container | Image builds; /health ok from inside; smoke passes; rebuild after one edit is fast | |
| Live URL | /health ok over HTTPS from another device; smoke passes; one cold start recovered | |
| Behaviour | Golden set and unscripted set pass their bars against the live /runs, across several runs | |
| Gates | Guardrail blocks; approval pauses and resumes on approve, stops on reject; max_turns ends a run | |
## Handed over
Live address:
Project path:
Run command:
## Done
- (date): what was proven
## In progress
-
## Open, needs a human
-Adapting to any niche
The record teaches how to read work, not one business, and the skill is written so that it can build a worker for a niche this record never named. The agent derives the worker from the person's own workflow:
- Every noun they manage becomes a read tool; every record they own becomes
a list tool and a get tool, scoped by the identity the harness supplies;
every action becomes a draft-and-propose tool behind
needs_approval; every number that matters becomes a computation in a tool body; every DECISION row on their step table becomes a constitution line and a check in code. - Their real runs become golden cases with origins; their own words become the unscripted set; their gates become the approval tests; their measured baseline becomes the number to beat.
- Their vocabulary names the tools, plainly, for the action; their language is the language of the instructions.
- The worked example is a teaching illustration. An agent that finds itself copying it has stopped reading the person's work.
Updating a worker that already exists
A spec is written once and then kept alive, never frozen; the record's rule
on the spec page is to change the spec first, in the
same commit as the code, then re-derive the code. The skill carries that as
part of step 10: read progress.md and spec.md; change the spec first, or
interview until the change can be written into it; write the failing test,
then the code; rerun the whole eval suite and add the new case to the golden
set; re-run the SDK probe if the SDK moved; record the change and the commit
in progress.md.
What changed in version 2.0
Version 1.1 was a phase-by-phase list of files to produce, and it held method of its own. Its first real run showed what a list does: a coding agent followed the phases it could tick and skipped the ones it could not, wrote the "user" and the proven runs itself, and never committed. Version 1.1 answered that with rules. A second test build, a support worker for a fictional shop built from this record and the skill and reviewed by the owner with sixteen questions that were not in its test set, passed every scripted question and failed the natural ones: no tool listed the person's own records, a message with a private half and a public half was refused whole, a boilerplate sentence was appended to the wrong answer, and a well-formed question ended in an error. 10 The same build had one spec file with four sections and no research or plan, because the skill had asked for exactly that, while the book asks for four artifacts. 5 None of that was a missing rule. It was a skill that told the agent what files to write instead of where the method lives and what a good worker feels like to the person using it.
So version 2.0 changes the shape. The skill says when; the record says how. It is written as judgement, what each step is for, what to read, what to produce, where to stop, with every how on a page and every template a copy of one. It adds the delegation map, the shape decision, the experience brief, the governance record, the plan reviewed before code, the unscripted eval set and the five natural-behaviour rules, all from the pages added to this room on 2026-09-09, and the folder layout above. The install and the download URL are unchanged, and the MCP attachment now carries the access key described above, so a copy installed from version 1.1 is replaced by unzipping version 2.0 over it.
What changed in version 2.1
Two builds from version 2.0, a support worker in Claude and a shop assistant in Codex, both from this record over MCP, produced sound maps, gates and specs, and both wore the owner out on the way: one question per message for the whole interview, technical blanks (which system, which platform, a repository path) asked before the work itself, a hard stop on three dated runs the owner had not written down, developer words the owner had to look up, and a finished build that was a folder of files rather than an address to open. None of that is a missing rule; it is the pace and the words.
Version 2.1 keeps every question and every gate and changes how they reach the person, on the pages: the interview runs in rounds with three answers offered per question (write the spec); connection details are placeholders until the deploy step and proven runs are proposed for correction, labelled until confirmed (understand the work, from plan to worker); and the deploy step hands over the live address, the code's path and the run command in plain words (deploy page). The map gains a connections block and the gates file a confirmed column. Install and download are unchanged; unzip version 2.1 over version 2.0.
What changed in version 2.2
A demo build from version 2.1, a mortgage follow-up worker on invented data from a production-grade brief, did everything the record asked and still failed its owner three ways: it took far too long, it used more than half of the owner's model allowance on one project, and it was handed over as an API behind a token that only a terminal could test. A switch of provider at the end cost a second round of work. (demo or production, "What a test build showed".)
Version 2.2 decides the size of the build before it starts, and changes what the person receives:
- An opening round proposes the depth (a demo by default, or production) and the model provider, free or paid, with every other blank pre-filled for correction (demo or production).
- Two depths of the same ten steps, and an upgrade path from demo to production that changes the spec first and never rebuilds.
- One page for every worker, at both depths: a password, an upload, a Run button whose numbers come from code, and a chat box that replies in the person's own language and script, answers anything about the work, politely refuses the rest, and keeps to a daily limit (the worker's page).
- Claude and Grok wired and checked, beside Gemini on its free tier, so no build guesses a provider's endpoint or model id (use another model).
The package gains assets/opening-round.md and assets/worker-page.py.
Install and download are unchanged; unzip version 2.2 over version 2.1.
Keeping it current
The skill points at pages; the pages carry the dates. When the SDK pages
reach their review date and are re-verified, the skill needs no change. When
a step changes in the record, the version on this page changes with it, and
the zip is rebuilt; the skill's metadata.version and this page always say
the same number.
Footnotes
-
Loop Engineering: A Crash Course, Concept 2, the six parts of a loop, and the progress file as the loop's memory between runs. The AI Agent Factory, Panaversity, 2026. ↩ ↩2
-
deploying-agents-base companion,
AGENTS.md: "You are the coding agent... The human reads, decides, and pastes prompts. You build, boot, and report." Panaversity, 2026. ↩ -
Agent Skills specification: directory structure, the
nameanddescriptionfields and their constraints, progressive disclosure ("keep your main SKILL.md under 500 lines"). agentskills.io. ↩ -
Build skills: "Front-load the key use case and trigger words so a host can still match the skill if descriptions are shortened"; "descriptions may be shortened if many skills are installed"; "Prefer instructions over scripts unless you need deterministic behavior or external tooling"; "Keep each skill focused on one job"; "hosts initially load only name and description, then load full SKILL.md when selected". OpenAI developer documentation, retrieved 2026-09-09. ↩ ↩2
-
Spec-Driven Development: A Crash Course: the four artifacts (constitution,
spec.md,plan.md,tasks.md); the constitution inCLAUDE.md/AGENTS.md; research, spec and plan as files inspecs/; the task list as the agent's own tracked checklist. The AI Agent Factory, Panaversity, 2026. ↩ ↩2 ↩3 ↩4 -
Extend Claude with skills: skill locations (personal and project), invocation, and the note that Claude Code skills follow the Agent Skills open standard. Claude Code documentation. ↩
-
Build skills: skill discovery locations and invocation with
$skill-name. Codex documentation, OpenAI. ↩ -
Agent Skills: discovery directories and the
skilltool. OpenCode documentation. ↩ -
Connect Claude Code to tools via MCP:
claude mcp add --transport http <name> <url>, and/mcpto verify the connection. Claude Code documentation. ↩ -
Owner's review, 9 September 2026: a support worker built from this record and its skill as a test on a fictional shop, not client work; sixteen unscripted questions after 28 of 28 scripted evaluations passed; one
spec.mdof four sections, no research file and no plan; the four natural failures and the rules drawn from them are on the experience page. ↩
Sources
- [^agentskills-spec]Agent Skills specification: directory structure, SKILL.md frontmatter, progressive disclosure. agentskills.io
- [^openai-build-skills]Build skills. OpenAI developer documentation, retrieved 2026-09-09
- [^claude-code-skills]Extend Claude with skills. Claude Code documentation
- [^claude-code-mcp]Connect Claude Code to tools via MCP: adding a remote HTTP server. Claude Code documentation
- [^codex-skills]Build skills. Codex documentation, OpenAI
- [^opencode-skills]Agent Skills. OpenCode documentation
- [^af-19]Spec-Driven Development: A Crash Course. The AI Agent Factory, Panaversity, 2026
- [^af-21]Loop Engineering: A Crash Course. The AI Agent Factory, Panaversity, 2026
- [^af-50-companion]deploying-agents-base, the companion code for the deployment crash course (AGENTS.md, the coding agent's brief). Panaversity, 2026
- [^raza-test-build]Owner's review of a support agent built from this record as a test, 9 September 2026 (attestation)
Write a skill: the description is the trigger, the body is the instructions
How to write a skill a coding agent will actually reach for, from The AI Agent Factory and OpenAI's skill guidance: progressive disclosure and what it costs, the description formula and the delete-the-keyword test, an imperative body with real examples and edge cases, what belongs in a script instead of a sentence, one skill or several, where skills live, how to test the trigger, and why a skill has no scope of its own.
Use another model: Gemini, Claude, Grok, DeepSeek or a local one, in the same harness
The book's two ways to switch the model under the OpenAI Agents SDK, a base-URL swap for any OpenAI-compatible endpoint and LiteLLM for everything else, with the key check, the tracing caveat, the economy-versus-frontier split per agent, and what was verified on 2026-09-04: Gemini through both paths with a tool call, and a local llama.cpp model through the base-URL path; and on 2026-10-12, Claude through Anthropic's OpenAI-compatible endpoint and LiteLLM and Grok through xAI's Responses and Chat Completions endpoints and LiteLLM, each route reaching the provider, plus Gemini's free-tier gemini-3.1-flash-lite through both paths with a tool call.