Safe, reusable automation authored by agents

Agents that write their own orchestration. Safe. Auditable. Yours.

Skillscript lets an agent capture a routine as a durable, versioned skill instead of reasoning it from scratch on every run. Declarative, non-Turing-complete, and inspectable before it ever executes.

Why this?

AI agents are mostly transient. Every routine task is re-derived from prose reasoning. The agent that summarized a thread yesterday will summarize one tomorrow by reasoning from scratch about how to summarize threads, burning frontier inference on a procedure with a known shape, a known output format, and known failure modes.

The waste compounds in three directions: cost (every routine operation runs through the most expensive reasoning layer in the system), latency (every operation pays the full inference cost), and drift (the same task produces slightly different results each time because nothing crystallizes).

The usual answers don't quite get there.

Most agent infrastructure today focuses on memory: episodic recall, retrieval-augmented context, conversation summarization. Those projects answer "what does the agent know." They don't answer "what can the agent do" in any persistent, executable, inspectable form. There's no hard form. No place for an agent to crystallize a learned procedure into something cheap to execute, cheap to inspect, and cheap to improve.

Skillscript began with a question: what would a Makefile look like if it built skills instead of binaries? Make is declarative and dependency-driven, and it is deliberately not where you write arbitrary logic. You name the steps and let tools do the work. Skillscript points to the same shape as agent automation and adds the part Make never needed: an approval boundary and connector-mediated access to the outside world.

Skills (in the markdown sense) are instructions describing behavior. Skillscript is the behavior itself: the orchestration the agent would otherwise have to re-derive every invocation, crystallized into a compiled artifact the runtime can execute on a schedule, in response to an event, or at the agent's request. The procedure runs the same way every time because the procedure is the source of record, not a prompt that has to be re-interpreted. Frontier inference is reserved for the work that actually needs it.

And because a skillscript is a written artifact, not a runtime prompt, you can read it. You can version it. You can compose it with others. You can lint it before it runs. You can update it when the world changes, once, in one place, and every skillscript that depends on it picks up the change.

That inspectability is also what lets the review keep pace. Auditing arbitrary code means reasoning about everything a script could do, which needs a skilled reader for every one. A skillscript puts its whole effect surface on the page, so approving it stays tractable even when agents are authoring faster than anyone can read code. And the person who knows what a system should allow can approve on the declared effects, without having to be the one who could have written the code.

This is what we mean by autonomy you can audit.

Features

Declarative & auditable

Skills are ordered steps of well-defined operations. You read the exact tool calls before anything runs, not a postmortem after.

Safe by design

Non-Turing-complete (it’s a recipe, not a program), and only the connectors you configure are callable. The language itself is the boundary, not a parser bolted on top.

Substrate-neutral

Swap data stores, models (frontier or local), and agent backends without rewriting your skills. Contracts up front, internals behind them.

Agent- and human-friendly

Authored by an agent over MCP, audited by a human. Lint, compile, approve, run.

Local model & MCP

Agents write skillscripts that can directly use local models and MCP servers without the agent having to be the orchestrator over and over.

Quick Start

Skills are agent-centric. This one checks GitHub for open PRs and hands a cold agent a complete briefing, the list plus what to do with it, needing no prior context. Pure gather-and-instruct: no scheduler, no model, just a safe shell call and a body-text template delivered to the agent.

# Skill: pr-review-prep
# Status: Approved
# Description: Before reviewing the repo's open PRs, pull the list and brief the agent on what to check.
# Output: agent: assistant

You've been asked to prep a pull-request review. You need no prior context — everything is below.

Open PRs on sshwarts/skillscript:

${PRS}

For each PR awaiting review: read the diff, write a 2-3 line summary, and flag anything risky. Surface your findings to me and wait — do not approve or merge anything yourself.

prep:
    shell(argv=["gh","pr","list","--repo","sshwarts/skillscript"]) -> PRS (fallback: "No current PRs.")
default: prep

To limit which shell commands a skill can reach, for example allowlisting a read-only gh wrapper instead of the full CLI, see the adopter playbook's 'Shell binary allowlist' section.

FAQ

Is Skillscript Turing-complete?

No, deliberately. No unbounded loops, no arbitrary code. The language itself is the safety boundary, which is exactly what lets you approve a skillscript by reading it.

Who writes the skillscripts, agents or people?

Agents author them over MCP. Humans can, but the normal process is agents author, humans approve.

What can a skillscript actually call?

Only the connectors you configure: data stores, models, agent endpoints, an allowlisted shell. Nothing else is reachable, no matter what the skill says.

How do I stay in control of what my agents do?

Skillscripts are declarative and diffable, so you can read exactly what one does before it runs. Connector and shell allowlists are default-deny in every mode, so a skill can only reach what you have exposed. In secured mode, only skills you have approved can perform effectful operations, no matter how they are triggered. Autonomy you can audit.

How are skillscripts run?

Skillscripts can run automatically from a cron or event trigger. They optionally can wake an agent or simply leave information for an agent to reason over later. Skillscripts are also run directly by the agent.

How does an agent know how to write a skill?

The language was designed to be familiar to agents. No training or fine-tuning required, the MCP server teaches it at author time. The agent calls `help` for a language quickstart and topic deep-dives, drafts the skill, then runs `lint` and `compile` to catch mistakes before it's ever stored. The language is small and non-Turing-complete, so the surface to get right is narrow. In secured mode, nothing effectful runs until you approve it.