skillscript-runtime 0.19.8 → 0.19.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -59,14 +59,11 @@ A skillscript skill is a declarative recipe, a small program with a dependency D
59
59
  # Description: The canonical first-run example.
60
60
  # Vars: WHO=world
61
61
 
62
- greet:
63
- emit(text="Hello, ${WHO}!")
64
- emit(text="Welcome to Skillscript.")
65
-
66
- default: greet
62
+ Hello, ${WHO}!
63
+ Welcome to Skillscript.
67
64
  ```
68
65
 
69
- That's a complete, runnable skill. Five lines, no dependencies, no boilerplate. The same shape scales to multi-stage DAGs that classify inputs, dispatch to LLMs, query data stores, branch on conditions, and orchestrate sub-agents, all in the same declarative grammar.
66
+ That's a complete, runnable skill — and the body text **is** the output. No target, no boilerplate, no `emit()` ceremony: the runtime renders the body against the skill's variables and publishes it. The same shape scales to multi-stage DAGs that classify inputs, dispatch to LLMs, query data stores, branch on conditions, and orchestrate sub-agents, all in the same declarative grammar.
70
67
 
71
68
  ## Why a new language
72
69
 
@@ -119,7 +116,19 @@ Every skillscript skill is one of three shapes, determined by the relationship t
119
116
 
120
117
  The kinds compose. A Headless monitor fires on cron, evaluates a condition, and routes into an Augmenting skill that wakes an agent with context, which itself references a Template skill for the agent to execute.
121
118
 
122
- The three kinds describe the skill's *role* (who consumes the output). Orthogonal to that is the skill's *delivery channel* — the actual op that ships the result. Three channels are first-class: `emit(text="...")` for embedded prompt-context, `$ data_write content="..." addressed_to="<agent>"` for data handoff, and `file_write(path="...", content="...")` for file handoff. A single skill can use any combination. See the [Language Reference](docs/language-reference.md) §1 for the full taxonomy.
119
+ The three kinds describe the skill's *role* (who consumes the output). Orthogonal to that is *how* the result ships. The default is the **body-text output template**: any non-op text in the skill body is rendered against the skill's final variables and published as its canonical output no ceremony, as in the `hello` skill above. For what the template can't express, three explicit delivery ops are first-class: `emit(text="...")` for incremental or per-item output, `$ data_write content="..." recipients=[...]` for data handoff, and `file_write(path="...", content="...")` for file handoff. Template and ops coexist the body template is the canonical output, `emit` lines are additional. See the [Language Reference](docs/language-reference.md) §1 for the full taxonomy.
120
+
121
+ The canonical use for `emit` is per-item output inside a loop, where there's no single template to render — one line per iteration:
122
+
123
+ ```
124
+ # Vars: TICKETS=[...]
125
+
126
+ process:
127
+ foreach T in ${TICKETS}:
128
+ emit(text="${T.id}: ${T.urgency}")
129
+
130
+ default: process
131
+ ```
123
132
 
124
133
  ### Local models as tools for the frontier
125
134
 
@@ -134,14 +143,17 @@ The cost shape that follows: routine work runs at local-model cost (free at scal
134
143
  A skill can invoke another skill via `execute_skill(...)`:
135
144
 
136
145
  ```
146
+ Extracted: ${RESULT.final_vars.VALUE|trim}
147
+
137
148
  parent:
138
- execute_skill(skill_name="extract-json-number", JSON_BLOB="${RAW}", FIELD_PATH="total_count") -> RESULT
139
- emit(text="Extracted: ${RESULT.final_vars.VALUE|trim}")
149
+ execute_skill(name="extract-json-number", JSON_BLOB="${RAW}", FIELD_PATH="total_count") -> RESULT
150
+
151
+ default: parent
140
152
  ```
141
153
 
142
154
  The child skill runs to completion against the runtime's wired connectors, returns its full execution record (final vars, transcript, outputs), and binds to the parent's named variable. Field access on the bound result (`${RESULT.final_vars.X}`) lets the parent reach into whatever the child produced.
143
155
 
144
- Composition is what makes skill libraries accumulate. Utility skills (`extract-json-number`, `summarize-thread`, `classify-urgency`) get authored once and orchestrated forever. The composition primitive is symmetric across the MCP surface — `execute_skill({skill_name, inputs?, mechanical?})` works the same way at the runtime entry point as it does inside a skill body. `mechanical: true` previews the dispatch graph without firing real ops, propagating through nested composition calls. TestFlight your multi-skill chains before commitment.
156
+ Composition is what makes skill libraries accumulate. Utility skills (`extract-json-number`, `summarize-thread`, `classify-urgency`) get authored once and orchestrated forever. The composition primitive is symmetric across the MCP surface — `execute_skill({name, inputs?, mechanical?})` works the same way at the runtime entry point as it does inside a skill body. `mechanical: true` previews the dispatch graph without firing real ops, propagating through nested composition calls. TestFlight your multi-skill chains before commitment.
145
157
 
146
158
  ### Waking agents
147
159
 
@@ -175,7 +187,7 @@ This is what makes *"Headless monitor → wake agent with context"* a real compo
175
187
 
176
188
  Skills have an execution model orthogonal to their kind. A **dynamic skill** requires the Skillscript runtime to execute — the runtime walks the DAG, fires dispatches against wired connectors, threads outputs. A **static skill** compiles to a portable artifact that any agent capable of reading prose can execute without the runtime.
177
189
 
178
- The static case matters for shareable artifacts. A skill whose body has only `emit(...)` ops (no `$ tool` MCP dispatches, no `shell(...)`, no `file_read`/`file_write`) compiles to a self-contained recipe. Email it, post it, hand it to a frontier agent in a different environment — they read the compiled output and execute the steps using their own tools. The skill becomes the deliverable.
190
+ The static case matters for shareable artifacts. A skill whose body is just an output template or `emit(...)` lines no `$ tool` MCP dispatches, no `shell(...)`, no `file_read`/`file_write` compiles to a self-contained recipe. Email it, post it, hand it to a frontier agent in a different environment — they read the compiled output and execute the steps using their own tools. The skill becomes the deliverable.
179
191
 
180
192
  Template-kind skills are the canonical static shape; their compiled artifact is the prompt the receiving agent acts on. Headless and Augmenting skills are usually dynamic. The axes are independent — author the combination the work calls for.
181
193
 
@@ -185,12 +197,9 @@ Template-kind skills are the canonical static shape; their compiled artifact is
185
197
  # Status: Approved
186
198
  # Vars: TICKETS_JSON=[...]
187
199
 
188
- walk:
189
- emit(text="For each ticket in the input, classify urgency as critical/normal/low.")
190
- emit(text="For critical tickets, suggest immediate owner from the runbook.")
191
- emit(text="Input: ${TICKETS_JSON}")
192
-
193
- default: walk
200
+ For each ticket in the input, classify urgency as critical/normal/low.
201
+ For critical tickets, suggest immediate owner from the runbook.
202
+ Input: ${TICKETS_JSON}
194
203
  ```
195
204
 
196
205
  That compiles to a procedure + data bundle a recipient can run anywhere.
@@ -223,18 +232,13 @@ If that bet is wrong, skillscript stays a nice niche tool. If it's right, skills
223
232
  # Install (global for single-instance use)
224
233
  npm install -g skillscript-runtime
225
234
 
226
- # Author your first skill — body text IS the output
235
+ # Author your first skill — body text IS the output, no target needed
227
236
  mkdir -p ./skills && cat > ./skills/hello.skill.md <<'EOF'
228
237
  # Skill: hello
229
238
  # Status: Approved
230
239
  # Vars: WHO=world
231
240
 
232
241
  Hello, ${WHO}!
233
-
234
- greet:
235
- $set _ = "noop"
236
-
237
- default: greet
238
242
  EOF
239
243
 
240
244
  # Start the runtime + dashboard
@@ -344,7 +348,7 @@ Two credential shapes:
344
348
 
345
349
  ## CLI
346
350
 
347
- 15 commands cover the full authoring + ops lifecycle:
351
+ The CLI covers the full authoring + ops lifecycle:
348
352
 
349
353
  | Command | Purpose |
350
354
  |---|---|
@@ -368,7 +372,7 @@ Run `skillfile <command> --help` for per-command flags. Use `serve` for producti
368
372
 
369
373
  ## MCP server surface
370
374
 
371
- The runtime exposes 17 tools over MCP (HTTP at `/rpc`) for cold-client authoring + observability. v0.19.0 also serves `POST /event` for external HTTP-triggered skills when `SKILLSCRIPT_EVENT_INGRESS_ENABLED=true`:
375
+ The runtime exposes its tools over MCP (HTTP at `/rpc`) for cold-client authoring + observability. It also serves `POST /event` for external HTTP-triggered skills when `SKILLSCRIPT_EVENT_INGRESS_ENABLED=true`:
372
376
 
373
377
  | Category | Tools |
374
378
  |---|---|
@@ -377,10 +381,10 @@ The runtime exposes 17 tools over MCP (HTTP at `/rpc`) for cold-client authoring
377
381
  | Authoring | `lint_skill`, `compile_skill` |
378
382
  | Composition | `execute_skill` |
379
383
  | Triggers | `list_triggers`, `register_trigger`, `unregister_trigger`, `set_trigger_enabled` |
380
- | Observability | `health_metrics`, `blocked_shell_attempts` (v0.18.9) |
384
+ | Observability | `health_metrics`, `blocked_shell_attempts` |
381
385
  | Discovery | `runtime_capabilities`, `help` |
382
386
 
383
- This is the "agent reaches MCP" path — an external agent (Claude, GPT, anything that speaks MCP) can author, validate, and deploy skills entirely over the wire. `help()` is the entry point — call with no arguments for a ~500-token quickstart, or with `{topic: "ops" | "frontmatter" | "examples" | "connectors" | "lint-codes"}` for deeper sections. `execute_skill` runs a skill end-to-end against the runtime's connectors in either of two modes: `{skill_name}` invokes a stored skill (subject to the v0.9.0 hash-token approval gate); `{source}` runs an ad-hoc inline body that's never persisted (one-off scripting without polluting the store). Both modes honor `mechanical: true` for dispatch-graph preview, and (v0.14.1) enforce the mutation gate at runtime so `$ data_write` / `file_write` without `# Autonomous: true` / `??` / `approved=...` throw `UnconfirmedMutationError` regardless of which mode invoked them.
387
+ This is the "agent reaches MCP" path — an external agent (Claude, GPT, anything that speaks MCP) can author, validate, and deploy skills entirely over the wire. `help()` is the entry point — call with no arguments for a ~500-token quickstart, or with `{topic: "ops" | "frontmatter" | "examples" | "connectors" | "lint-codes"}` for deeper sections. `execute_skill` runs a skill end-to-end against the runtime's connectors in either of two modes: `{name}` invokes a stored skill (subject to the hash-token approval gate); `{source}` runs an ad-hoc inline body that's never persisted (one-off scripting without polluting the store). Both modes honor `mechanical: true` for dispatch-graph preview, and enforce the mutation gate at runtime so `$ data_write` / `file_write` without `# Autonomous: true` / `??` / `approved=...` throw `UnconfirmedMutationError` regardless of which mode invoked them.
384
388
 
385
389
  ## Examples
386
390
 
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/connectors/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/connectors/config.ts"],"names":[],"mappings":"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"}
@@ -258,6 +258,23 @@ export function loadConnectorsConfig(opts) {
258
258
  errors.push(`connectors.json: entry '${name}' field 'config' must be an object. Got: ${Array.isArray(rawConfig) ? "array" : typeof rawConfig}.`);
259
259
  continue;
260
260
  }
261
+ // v0.19.9 — SECURITY: misplaced `allowed_tools` guard. Closes the
262
+ // adopter `14609652` silent-allow-all bypass: writing the allowlist
263
+ // inside `config:` (the natural intuitive placement — it's a
264
+ // per-connector restriction) instead of at the entry top-level
265
+ // silently allows ALL tools, no lint flag, no warning, no signal.
266
+ // Hard-error here because this is a security control; silent-allow-all
267
+ // on misplacement is the worst-case failure mode (operator wrote an
268
+ // allowlist with intent to restrict; runtime treats the restriction
269
+ // as nonexistent). The doc shape is entry-level sibling to `class` /
270
+ // `config`; refuse to load when we detect the wrong placement.
271
+ if (rawConfig["allowed_tools"] !== undefined) {
272
+ errors.push(`connectors.json: entry '${name}' has 'allowed_tools' inside the 'config:' block — that placement is silently ignored. ` +
273
+ `'allowed_tools' is a per-connector security policy, not connector-class config. Move it to the entry top-level (sibling to 'class' and 'config'):\n` +
274
+ ` "${name}": { "class": "...", "config": {...}, "allowed_tools": ["tool1", "tool2"] }\n` +
275
+ `Refused to load to prevent a silent allow-all bypass.`);
276
+ continue;
277
+ }
261
278
  // v0.4.1 env-block-as-scope: resolve `config.env` against process.env
262
279
  // FIRST, then merge into the substitution scope for the rest of the
263
280
  // config. Lets authors compose values like:
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/connectors/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/connectors/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-remote.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp-remote.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,kDAAkD;IAClD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsBD,iFAAiF;AACjF,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,WAAW,EAAE,OAAO,CAAC;gBACzB,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO;CAKnD;AAED,qBAAa,kBAAmB,YAAW,YAAY;IAgEzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IA/DnC,MAAM,CAAC,kBAAkB,IAAI,wBAAwB;IAarD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB;IAgCtE,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAEd,MAAM,EAAE,eAAe;IAOpD;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;YAMX,OAAO;IAoDf,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IA2Bb,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAoBxD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B,uFAAuF;IACvF,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAMtC,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,gBAAgB;CAOzB"}
1
+ {"version":3,"file":"mcp-remote.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp-remote.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,kDAAkD;IAClD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsBD,iFAAiF;AACjF,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,WAAW,EAAE,OAAO,CAAC;gBACzB,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO;CAKnD;AAED,qBAAa,kBAAmB,YAAW,YAAY;IAgEzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IA/DnC,MAAM,CAAC,kBAAkB,IAAI,wBAAwB;IAarD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB;IAgCtE,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAA2C;IAC1D,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAEd,MAAM,EAAE,eAAe;IAOpD;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;YAMX,OAAO;IAoDf,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IA2Bb,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAoBxD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B,uFAAuF;IACvF,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAMtC,OAAO,CAAC,WAAW;IAwCnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -258,7 +258,16 @@ export class RemoteMcpConnector {
258
258
  return new Promise((resolve, reject) => {
259
259
  const timeoutHandle = setTimeout(() => {
260
260
  this.pending.delete(id);
261
- reject(new RemoteMcpDispatchError(`${method} timed out after ${timeoutMs}ms`));
261
+ // v0.19.9 — clearer init-timeout error. A timed-out `initialize` is
262
+ // very often a framing mismatch (child speaks newline-delimited but
263
+ // we sent LSP, or vice versa) — the child can't parse the request
264
+ // and never replies. Closes the adopter `14609652` finding 2:
265
+ // mcp-remote (and most MCP stdio servers per spec) use
266
+ // newline-delimited; default 'lsp' framing silently hangs.
267
+ const hint = method === "initialize"
268
+ ? ` Framing in use: '${this.framing}'. If the server speaks the other framing (e.g., the npm 'mcp-remote' package and most spec-compliant MCP stdio servers use newline-delimited), set "framing": "newline" or "framing": "lsp" explicitly in this connector's config. Other causes: child process exited before handshake (check spawn logs), wrong --header / auth, server requires capabilities the client didn't advertise.`
269
+ : "";
270
+ reject(new RemoteMcpDispatchError(`${method} timed out after ${timeoutMs}ms.${hint}`));
262
271
  }, timeoutMs);
263
272
  this.pending.set(id, { resolve, reject, timeoutHandle });
264
273
  this.child.stdin?.write(encoded, (err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-remote.js","sourceRoot":"","sources":["../../src/connectors/mcp-remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-remote.js","sourceRoot":"","sources":["../../src/connectors/mcp-remote.ts"],"names":[],"mappings":"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"}
@@ -140,6 +140,8 @@ $ my_store.search query="customer feedback" region="eu-west" cluster="prod" -> C
140
140
 
141
141
  This skill body is locked to `my_store` — its specific kwargs (`region`, `cluster`) and response shape. To move to a different substrate, every call site has to be rewritten.
142
142
 
143
+ **⚠ Programmatic `bootstrap()` adopters: `connectors.json` is NOT auto-loaded.** The CLI (`skillfile dashboard` / `serve`) discovers and loads `$SKILLSCRIPT_HOME/connectors.json` automatically. The programmatic path does NOT — `bootstrap()` only reads `connectors.json` when you pass `connectorsConfigPath`. Skip it and your `$ name.tool` calls fail at runtime with `unknown-connector` and no hint that the file simply wasn't read. See §"Programmatic bootstrap path" below for the explicit-wiring pattern. (Same CLI-auto-vs-programmatic-explicit asymmetry as `.env` and `SKILLSCRIPT_*` env vars — three instances of the same pattern now.)
144
+
143
145
  ### Picking — the tradeoff
144
146
 
145
147
  | Aspect | Case 1 (typed) | Case 2 (MCP) |
@@ -199,7 +201,7 @@ Create `skillscript.config.json` in your `$SKILLSCRIPT_HOME`:
199
201
 
200
202
  Two security knobs that adopters wiring real substrates should know about:
201
203
 
202
- - **Per-connector tool allowlists** — `allowed_tools` on each `connectors.json` MCP connector entry restricts which tools that connector can dispatch. Three-state (`undefined` = allow all, `[]` = allow none, listed = exactly those). Tier-1 `disallowed-tool` lint + runtime defense-in-depth refuse out-of-list dispatch. See `docs/configuration.md` §"Named MCP connector instances" for the JSON shape.
204
+ - **Per-connector tool allowlists** — `allowed_tools` on each `connectors.json` MCP connector entry restricts which tools that connector can dispatch. Three-state (`undefined` = allow all, `[]` = allow none, listed = exactly those). Tier-1 `disallowed-tool` lint + runtime defense-in-depth refuse out-of-list dispatch. **`allowed_tools` belongs at the entry top-level**, sibling to `class` and `config` — NOT inside the `config` block. The loader hard-errors on misplacement (placing it inside `config:` would silently allow-all every tool — the worst-case failure mode for a security control). See `docs/configuration.md` §"Named MCP connector instances" for the JSON shape.
203
205
  - **Shell-execution discipline** — `shell(command="...")` runs structured-spawn by default (binary on PATH, whitespace-tokenized argv, no bash). `shell(command="...", unsafe=true)` opts into bash interpretation (pipes, `$VAR`, command substitution) and refuses to fire unless the runtime is configured with `enable_unsafe_shell = true` in `config.toml`. Lint flags every `unsafe=true` op tier-2 to keep audit posture visible. See `scaffold/config.toml` for the documented default + `help({topic:"lint-codes"})` for the `unsafe-shell-disabled` rule.
204
206
 
205
207
  If you have a custom JSON-instantiable `McpConnector` class, register it with `registerConnectorClass` before loading config:
@@ -289,12 +291,20 @@ Running the audit *after* the break is fine but adopter-unfriendly — operators
289
291
 
290
292
  ### Programmatic bootstrap path (`bootstrap()` adopters)
291
293
 
292
- The CLI path auto-loads `$SKILLSCRIPT_HOME/.env` and reads `SKILLSCRIPT_SHELL_ALLOWLIST` from `process.env`. The programmatic path (`bootstrap()` from your own embedder code) does NOT auto-load `.env` that's intentionally CLI-only to keep `bootstrap()` decoupled from the dotenv convention and `SKILLSCRIPT_HOME`.
294
+ **The CLI-auto-vs-programmatic-explicit asymmetry.** The CLI (`skillfile dashboard` / `serve`) does several discovery steps automatically — load `$SKILLSCRIPT_HOME/.env`, read `SKILLSCRIPT_*` env vars, load `$SKILLSCRIPT_HOME/connectors.json`. The programmatic path (`bootstrap()` from your own embedder code) does NOT do any of these automatically. Each surface needs explicit wiring on the programmatic path:
295
+
296
+ | Surface | CLI path | Programmatic path |
297
+ |---|---|---|
298
+ | `.env` (env vars in a dotfile) | auto-loaded from `$SKILLSCRIPT_HOME/.env` | call `process.loadEnvFile()` yourself BEFORE `bootstrap()` |
299
+ | `SKILLSCRIPT_*` env vars | read from `process.env` automatically | read automatically once env is loaded (v0.18.9+ env fallback) |
300
+ | `connectors.json` (MCP wiring) | auto-discovered at `$SKILLSCRIPT_HOME/connectors.json` | pass `connectorsConfigPath: "/path/to/connectors.json"` to `bootstrap()` |
301
+
302
+ Skip any of these and you get silent-empty surprises — a missing env var, an undeclared connector, etc. — with no hint that the file wasn't loaded. This is intentional: `bootstrap()` stays decoupled from the dotenv + `SKILLSCRIPT_HOME` convention so embedders can drive every input explicitly. The cost is doc-prominence — three surfaces, all silent-empty on omission, all noted here.
293
303
 
294
304
  For your shell allowlist to work on the programmatic path, ensure the env var is in `process.env` BEFORE calling `bootstrap()`. Two patterns:
295
305
 
296
306
  ```typescript
297
- // Pattern A — load .env yourself before bootstrap
307
+ // Pattern A — load .env yourself + pass connectorsConfigPath
298
308
  import { join } from "node:path";
299
309
  import { bootstrap } from "skillscript-runtime";
300
310
 
@@ -303,14 +313,16 @@ try { process.loadEnvFile(join(home, ".env")); } catch {} // Node 22+ built-in
303
313
  const { mcpServer, scheduler } = bootstrap({
304
314
  skillsDir: join(home, "skills"),
305
315
  traceDir: join(home, "traces"),
306
- // shellAllowlist intentionally omitted → bootstrap reads env (v0.18.9+)
316
+ connectorsConfigPath: join(home, "connectors.json"),
317
+ // shellAllowlist intentionally omitted → bootstrap reads env
307
318
  });
308
319
 
309
- // Pattern B — pass shellAllowlist explicitly (env-independent)
320
+ // Pattern B — fully explicit (env-independent, no .env, no connectors.json)
310
321
  const { mcpServer, scheduler } = bootstrap({
311
322
  skillsDir: join(home, "skills"),
312
323
  traceDir: join(home, "traces"),
313
324
  shellAllowlist: ["curl", "git", "jq"],
325
+ // No connectorsConfigPath — adopter constructs Registry by hand
314
326
  });
315
327
  ```
316
328
 
@@ -294,8 +294,10 @@ Per-host MCP connector wiring. Each top-level key (other than `substrate`) defin
294
294
  "config": {
295
295
  "command": "npx",
296
296
  "args": ["mcp-remote", "https://example.youtrack.cloud/mcp"],
297
+ "framing": "newline",
297
298
  "env": { "AUTH_HEADER": "Bearer ${YOUTRACK_TOKEN}" }
298
- }
299
+ },
300
+ "allowed_tools": ["list_issues", "get_issue", "create_comment"]
299
301
  },
300
302
 
301
303
  "github": {
@@ -310,7 +312,16 @@ Each entry needs:
310
312
 
311
313
  - **`class`** — a class from the closed-set registry. Today: `RemoteMcpConnector` (stdio-bridged remote MCP). Adopters can register custom classes via `registerConnectorClass()` from their bootstrap.
312
314
  - **`config`** — passed to the class's `fromConfig()` factory. Schema is class-specific.
313
- - **`allowed_tools`** (optional) — per-connector tool allowlist. `undefined` = allow all; `[]` = allow none; listed array = exactly those.
315
+ - **`allowed_tools`** (optional) — per-connector tool allowlist at the entry top-level (sibling to `class` / `config`, NOT inside `config`). `undefined` = allow all; `[]` = allow none; listed array = exactly those. **Placing `allowed_tools` inside the `config:` block is a hard parse error** — the loader refuses to load to prevent a silent allow-all bypass (a security control quietly doing nothing on misplacement is the worst-case failure mode).
316
+
317
+ #### `RemoteMcpConnector` config — stdio framing
318
+
319
+ `RemoteMcpConnector` speaks JSON-RPC over the spawned child's stdio. Two framing conventions are supported via the `framing` config key:
320
+
321
+ - **`"newline"`** — one JSON-RPC message per line, newline-delimited. **This is what `mcp-remote` (the npm package) and most spec-compliant MCP stdio servers use.** Recommended for almost all adopters.
322
+ - **`"lsp"`** (legacy default) — `Content-Length: N\r\n\r\n<body>` per the LSP convention. Only set this if your specific MCP server explicitly uses LSP-style framing.
323
+
324
+ With the wrong framing, the connector hangs to `init_timeout` because the child can't parse the request. **Set `framing` explicitly in your connector config to avoid the silent hang** — the v0.19.9 init-timeout error message now names framing as a likely cause, but the explicit setting is the durable fix.
314
325
 
315
326
  ### Credential discipline
316
327
 
@@ -18,12 +18,9 @@ These are features designed or anticipated but not yet implemented in the curren
18
18
 
19
19
  - **Array aggregation primitives** — `|max`, `|min`, `|sum`, `|reduce` over arrays. Today the language tops out at "shape one record" — aggregating across an array requires `foreach` accumulator ceremony. Planned as a design question: is `foreach` the deliberate ceiling for aggregation, or do we add primitives?
20
20
 
21
- ## Triggers (parse-clean today, don't fire no event-bus surface yet)
21
+ ## Triggers — note
22
22
 
23
- - `event:` — generic event-bus subscription
24
- - `agent-event:` — agent-emitted events
25
- - `file-watch:` — filesystem change events
26
- - `sensor:` — continuous sensor channels
23
+ Trigger sources are `cron` + `event` only (see the Triggers section). There is no separate `agent-event:` / `file-watch:` / `sensor:` trigger source anything that isn't time-based is an external adapter that POSTs to the `/event` ingress. So there's nothing pending here on the trigger axis; the entry remains only to point readers who expect those sources at the adapter-POST pattern.
27
24
 
28
25
  ## Synchronous agent exchange
29
26
 
@@ -48,7 +45,9 @@ $set NAME = value scope=session
48
45
 
49
46
  Scopes: skill-local (persists across fires of this skill, not visible to other skills), agent-global (visible to all skills of the same agent), session (alive for the duration of the current session, cleared at session end). Backed by a configured data-records connector.
50
47
 
51
- ## Sensors as a language category
48
+ ## Sensors as a read-channel category
49
+
50
+ > `sensor:` is not a trigger source — to fire a skill on a sensor signal, a sensor adapter POSTs to `/event` (see Triggers). The concept below is the separate *read-channel* idea — continuous values an agent reads, distinct from triggering — which remains a future possibility if demand surfaces.
52
51
 
53
52
  Distinct from triggers. Sensors are continuous channels the agent reads but doesn't emit on. Planned syntax:
54
53
 
@@ -72,7 +71,7 @@ Most "right time" reasoning is relative, not wall-clock.
72
71
 
73
72
  ## Other planned
74
73
 
75
- - **Absence-as-trigger** — `# Triggers: idle: 5m` fire-on-quiet primitive
74
+ - **Absence-as-trigger** — `# Triggers: idle: 5m` fire-on-quiet primitive (would be a new trigger source beyond `cron`|`event`, or an adapter that POSTs on a timer)
76
75
  - **Time-windowed aggregation** — filter-like primitives across firings (e.g., "user has shown frustration in 3 of 5 recent turns")
77
76
  - **Debounce / rate-limit / coalesce** — declarative queueing policy headers
78
77
  - **Suppression as valid output** — explicit "fire-and-suppress" (different from `# Output: none`)
@@ -95,35 +94,37 @@ Skillscript is a constrained domain-specific language for authoring agent workfl
95
94
 
96
95
  Every skill follows the same shape:
97
96
 
98
- 1. **Trigger** — what fires the skill: cron, command, session-start, agent-event, file-watch, webhook, etc.
97
+ 1. **Trigger** — what fires the skill autonomously: `cron` (time-based) or `event` (an external HTTP POST to the runtime's `/event` ingress). (A skill can also be invoked explicitly — by an agent mid-conversation or via the execute API — with no trigger at all.)
99
98
  2. **Process** — pull data (MCP / data store / file), classify or compose via sub-LLM + iteration, build the deliverable.
100
- 3. **Deliver** — emit the result via one or more delivery channels (see below).
99
+ 3. **Deliver** — produce the result via the **body-text output template** (declarative — the skill body *is* the output) or via `emit()` (imperative, for dynamic output), then route it through one or more delivery channels (see below; production detail in Output).
101
100
 
102
101
  Skillscript's job is to express this pipeline declaratively. When there is an agent above the skill, the agent's job is to act on the delivered artifact. When there isn't (autonomous fires), the delivery channel IS the outcome.
103
102
 
104
103
  **Declarative DAG, not imperative script.** A skillscript declares targets and their dependencies (`needs:` keyword); the interpreter topologically sorts and executes them in dependency order. Write blocks in any order — the runtime walks the graph.
105
104
 
106
- **Goal-directed, not entry-point-directed.** The `default:` declaration names the *goal target* — the terminal node whose result is the skill's output. The runtime walks dependencies backward from the goal through the topo-sort. A skill with a single target obscures this (goal == entry trivially); skills with multi-target DAGs make the shape visible.
105
+ **Goal-directed, not entry-point-directed.** The `default:` declaration names the *goal target* — the terminal node whose result is the skill's output. The runtime walks dependencies backward from the goal through the topo-sort. A skill with a single target obscures this (goal == entry trivially); skills with multi-target DAGs make the shape visible. (A skill with *no* target is also valid — a body-template-only skill; see Output.)
107
106
 
108
107
  ## Two execution paths
109
108
 
110
- **Runtime-mediated** — the interpreter walks ops and dispatches them directly through configured connectors. Used for autonomous fires (cron, session-triggered, event-triggered). Safety boundary is the connector config + per-op gating (see Ops Reference).
109
+ **Runtime-mediated** — the interpreter walks ops and dispatches them directly through configured connectors. Used for autonomous fires (cron- or event-triggered). Safety boundary is the connector config + per-op gating (see Ops Reference).
111
110
 
112
111
  **Agent-mediated** — the compiler renders the skill as a prompt; an agent reads the prompt and executes ops through its own tools. Used when an agent invokes a skill mid-conversation. Safety boundary is the agent's harness tool permissions.
113
112
 
114
113
  The language is identical in both paths. The execution model is a deployment-time + invocation-time decision.
115
114
 
116
- ## Three delivery channels
115
+ ## Output production and delivery channels
116
+
117
+ **Production:** a skill's output is produced either declaratively by the **body-text template** (the skill body, with `${var}` interpolation — the clean default for fixed-shape output) or imperatively by **`emit()`** (for variable-cardinality / conditional-shape / transcript output). See Output for the when-which rule. The template, when present, is the canonical output; `emit` feeds the transcript.
117
118
 
118
- A skill delivers its work via one or more of three channels. Delivery channel is not a property of skill type — it's just which ops a skill ends with.
119
+ **Delivery:** the produced output is routed by the `# Output:` kind to one or more channels. Delivery channel is not a property of skill type — it's just the `# Output:` declaration.
119
120
 
120
- | Channel | Op | When you'd use it |
121
+ | Channel | Declaration | When you'd use it |
121
122
  |---|---|---|
122
- | **Augmenting (context to agent)** | `emit(text="...")` + `# Output: agent: <name>` | Skill output is augment-kind payload for the receiving agent's next turn; joined emit stream becomes the delivered context. Pattern: agent-augmenting skills (briefing skills, session-start prepared context). |
123
- | **Template (playbook to agent)** | `emit(text="...")` + `# Output: template: <name>` | Skill output is a template-kind payload (recipe/playbook) the receiving agent executes. Pattern: instructional skills, reusable recipes. |
123
+ | **Augmenting (context to agent)** | body template or `emit()` + `# Output: agent: <name>` | Output is augment-kind payload for the receiving agent's next turn. Pattern: agent-augmenting skills (briefings, session-start prepared context). |
124
+ | **Template (playbook to agent)** | body template or `emit()` + `# Output: template: <name>` | Output is a template-kind payload (recipe/playbook) the receiving agent executes. Pattern: instructional skills, reusable recipes. |
124
125
  | **Data handoff** | `$ data_write content="..." recipients=[<agent>] -> R` | Skill writes data the target agent picks up via mailbox at next session. Pattern: async carrier skills, autonomous fires that hand off to a future session. |
125
126
 
126
- A single skill can use any combination. An autonomous cron-fired sweep might write data to one agent AND emit augment-kind context to another. The combinations are unconstrained — the per-op gating model governs which mutating ops are authorized, not which channels a skill uses.
127
+ A single skill can use any combination. An autonomous cron-fired sweep might write data to one agent AND deliver augment-kind context to another. The combinations are unconstrained — the per-op gating model governs which mutating ops are authorized, not which channels a skill uses.
127
128
 
128
129
  ## Three op classes
129
130
 
@@ -160,12 +161,12 @@ Substrate config syntax + the three-form configuration shape lives in the adopte
160
161
 
161
162
  ## Anatomy of a skill
162
163
 
163
- A canonical example exercising trigger → process → deliver against the augmenting channel:
164
+ A canonical example exercising trigger → process → deliver against the augmenting channel. (Output here is built with `emit()` because the per-issue count is variable — the right case for `emit`; a fixed-shape skill would use a body template instead.)
164
165
 
165
166
  ```
166
167
  # Skill: morning-showstopper-sweep
167
168
  # Description: Pre-triage open showstoppers before the human arrives; deliver as augmenting context to the on-call agent.
168
- # Triggers: cron:"0 8 * * MON-FRI"
169
+ # Triggers: cron: 0 8 * * MON-FRI
169
170
  # Output: agent: oncall
170
171
  # Vars: PROJECT = "INFRA"
171
172
 
@@ -187,7 +188,7 @@ sweep:
187
188
  default: sweep
188
189
  ```
189
190
 
190
- The joined `emit()` stream becomes the augment-kind payload delivered to the on-call agent (per `# Output: agent: oncall` declaration). The agent sees the briefing inline at next-turn dispatch.
191
+ The joined `emit()` stream becomes the augment-kind payload delivered to the on-call agent (per `# Output: agent: oncall`). The agent sees the briefing inline at next-turn dispatch.
191
192
 
192
193
  **Three layers of declaration:**
193
194
  1. **Header metadata** (`# Key: value` lines) — name, description, declared variables (`# Vars:`), declared returns (`# Returns:` — the export surface, output-side mirror of `# Vars:`; see Composition), triggers, `# Output:` routing, optional `# Autonomous:` flag, error fallbacks
@@ -276,7 +277,7 @@ The conditional grammar (`==` / `<` / `>` / `in` / `and` / `or` / `not`) lives i
276
277
 
277
278
  When you reach for a primitive that isn't in the language (`|max` over an array, modular arithmetic, regex substitution, date math), the stopping rule isn't "feature shelved." It's: *can a tool do this work, and can the skill body invoke that tool via `$` or `shell`?* Almost always yes.
278
279
 
279
- **The universal computation escape is `shell + standard CLI tools.**
280
+ **The universal computation escape is `shell` + standard CLI tools.**
280
281
 
281
282
  ```
282
283
  shell(command="echo ${RAW|shell} | jq -r '[.weather[0].hourly[] | .chanceofrain | tonumber] | max'", unsafe=true) -> MAX_RAIN
@@ -418,20 +419,17 @@ Per-output-kind consumption semantics: presentation surfaces (`# Output: agent:
418
419
  ```
419
420
  notify(agent="oncall", message="Threshold breached at ${COUNT}")
420
421
  notify(agent="ops", message="ticket TR-1234 is a showstopper", event_type="ticket-911", correlation_id="${INCIDENT_ID}")
421
- notify(agent="cc@kitchen-terminal", message="look here now")
422
422
  ```
423
423
 
424
424
  Synchronous alert to a named agent via wired AgentConnector(s). **Contrast with `emit`:** `emit` accumulates into end-of-skill bulk delivery via the `# Output: agent: <name>` lifecycle hook; `notify` fires mid-execution to interrupt or page an agent before the skill completes.
425
425
 
426
- - `agent` — target agent id (required). **Address-routing**: a bare identifier (`"perry"`) routes to `AgentConnector.deliver()` (mailbox-class — the agent's inbox); an `agent@session` composite (`"cc@kitchen-terminal"`) routes to `AgentConnector.wake()` (session-targeted interrupt). The `@session` suffix IS the wake signal — there's no `wake=true` kwarg. Substrate sees the opaque composite on `wake()` and decomposes per the v0.18.2 contract.
427
- - `message` — alert body (optional; defaults to accumulated emissions so far). For wake-routed dispatches, the message rides as `WakeOpts.context` (preamble for the interrupt signal).
428
- - `event_type` — adopter-defined routing label (optional; flows to `DeliveryMeta.event_type` on deliver-class dispatches; ignored on wake-class since wake has no envelope).
429
- - `correlation_id` — reply-correlation id (optional; required for future `exchange()` / `request_response()` paths).
430
- - `connectors` — JSON array restricting which wired AgentConnector(s) receive the dispatch (optional).
431
-
432
- Returns ACK `{agent, dispatched: [{connector, ok, route?, error?}]}` — `route` is `"deliver"` or `"wake"` per address-routing. Fire-and-forget callers ignore the binding; check-delivery callers inspect ACK.
426
+ - `agent` — target agent id (required)
427
+ - `message` — alert body (optional; defaults to accumulated emissions so far)
428
+ - `event_type` — adopter-defined routing label (optional; flows to `DeliveryMeta.event_type`; overrides `# Event-type:` frontmatter)
429
+ - `correlation_id` — reply-correlation id (optional; required for future `exchange()` / `request_response()` paths)
430
+ - `connectors` — JSON array restricting which wired AgentConnector(s) receive the dispatch (optional)
433
431
 
434
- The same address rule applies to lifecycle hooks: `# Output: agent: perry` routes to deliver; `# Output: agent: cc@kitchen-terminal` routes to wake. See Output targets below.
432
+ Returns ACK `{agent, dispatched: [{connector, ok, error?}]}` fire-and-forget callers ignore the binding; check-delivery callers inspect ACK.
435
433
 
436
434
  ### `shell` — sandboxed or unsafe shell exec
437
435
 
@@ -1224,36 +1222,32 @@ Skills are orchestration, not computation. When the conditional logic feels Turi
1224
1222
 
1225
1223
  ## Triggers — # Triggers: header, declarative + imperative registration, source types
1226
1224
 
1227
- Triggers declare what events fire a skill autonomously. A skill without triggers must be invoked explicitly (via a compile/execute API call); a skill with triggers fires automatically when matching events occur.
1225
+ Triggers declare what fires a skill autonomously. A skill without triggers must be invoked explicitly (the compile/execute API); a skill with triggers fires automatically when its trigger condition occurs.
1228
1226
 
1229
- ## Declarative registration via `# Triggers:` header
1227
+ The trigger surface is **two sources: `cron` (time) and `event` (external signal)**. `session`, `agent-event`, `file-watch`, and `sensor` are not trigger sources — anything that isn't time-based is an external adapter that POSTs to the `/event` ingress. The runtime owns time (`cron`) and the event endpoint; source-specific watching (a file-watcher, a sensor stream, an agent-event bridge) is the adapter's job.
1230
1228
 
1231
- The skill body declares triggers via metadata header. Multiple triggers permitted, comma-separated or one per line.
1229
+ ## Declarative registration via `# Triggers:` header
1232
1230
 
1233
1231
  ```
1234
- # Triggers: cron: 0 8 * * *, session: start
1232
+ # Triggers: cron: 0 8 * * *
1233
+ # Triggers: event: deploy-finished
1235
1234
  ```
1236
1235
 
1237
- On skill write, the runtime's trigger registry parses the header and auto-registers each trigger. Editing the skill body updates registrations.
1236
+ The trigger registry parses the header and registers each trigger. A skill re-registering **its own** event_name is a silent upsert — the declarative re-save path stays friction-free.
1238
1237
 
1239
1238
  ## Imperative registration
1240
1239
 
1241
- For dynamic, one-shot, or runtime-decided triggers, use the imperative `registerTrigger` API:
1242
-
1243
1240
  ```
1244
1241
  registerTrigger({
1245
- skill_name: "my-skill",
1246
- source: "cron",
1247
- name: "55 2 * * *",
1248
- expires_at: 1779107400 // optional auto-cleanup
1242
+ skill_name: "notify-deploy",
1243
+ source: "event", // "cron" | "event"
1244
+ name: "deploy-finished" // cron expression for cron; the event_name for event
1249
1245
  })
1250
1246
  ```
1251
1247
 
1252
- Imperative triggers default to a 30-day expiration (cleanup via expiry sweep). Pass `null` for indefinite retention; author must clean up via the corresponding `unregisterTrigger` API.
1248
+ Imperative triggers default to 30-day expiry (`expires_at`); pass `null` for indefinite and clean up via `unregisterTrigger`.
1253
1249
 
1254
- ## Trigger sources
1255
-
1256
- ### `cron: <expression>` — time-based
1250
+ ## Source: `cron: <expr>` — time-based
1257
1251
 
1258
1252
  Standard 5-field cron. Sliding-window evaluation by a 30s poll loop. No catch-up replay if the runtime was down at fire time.
1259
1253
 
@@ -1261,184 +1255,212 @@ Standard 5-field cron. Sliding-window evaluation by a 30s poll loop. No catch-up
1261
1255
  # Triggers: cron: 0 3 * * *
1262
1256
  ```
1263
1257
 
1264
- ### `session: start | end` session lifecycle hooks
1258
+ ## Source: `event: <event_name>`external HTTP signal
1265
1259
 
1266
- Fires when an agent session begins (`session: start`) or ends (`session: end`). The load-bearing primitive for prepping context at session boundaries — a session-start skill produces `agent:` output that prepends to the next inference.
1260
+ A skill fires when an external caller POSTs its `event_name` to the runtime's `/event` ingress.
1267
1261
 
1268
- ```
1269
- # Triggers: session: start
1270
- # Output: agent: <agent-name>
1271
- ```
1262
+ **`event_name` is the public contract.**
1263
+ - Case-insensitive (normalized at register + lookup).
1264
+ - **1:1** one `event_name` → exactly one skill, unique per deployment.
1265
+ - Posters address the **event_name**, never the skill — so you can swap the skill behind an event without breaking callers, and no POST can reach an arbitrary skill.
1266
+ - **Rebind:** re-registering an already-bound `event_name` is allowed (last-write-wins). Same skill → silent upsert. A repoint to a **different** skill is **audit-logged** (`event_name 'X' rebound: skill A → skill B`), so a cross-skill takeover is never silent.
1272
1267
 
1273
- ### `event: <event-name>`runtime-host-emitted events (parse-only)
1268
+ **Params auto-derive from the skill's `# Vars:`.** You do NOT declare params separately on the trigger the event's accepted parameter set *is* the skill's declared `# Vars:`. A POST supplies values for those names. (Both the declarative and imperative registration paths derive params from `# Vars:`.)
1274
1269
 
1275
- Header parses cleanly today but the event bus that would emit `event:` triggers isn't wired yet. Cross-reference: see "Not yet implemented, but planned" at top.
1270
+ ```
1271
+ # Skill: notify-deploy
1272
+ # Vars: SERVICE="", VERSION=""
1273
+ # Triggers: event: deploy-finished
1274
+ ```
1275
+ → the `deploy-finished` event accepts params `SERVICE`, `VERSION`.
1276
1276
 
1277
- Example event categories (deployment-defined):
1278
- - `event: thread.replied` — a thread receives a new reply
1279
- - `event: mailbox.dangle` — an addressed item expires unprocessed
1280
- - `event: classifier.flagged` — a background classifier surfaces an urgent finding
1281
- - (extensible via runtime-host event registration)
1277
+ ## The `/event` HTTP ingress
1282
1278
 
1283
- ### `agent-event: <agent>.<event>` cross-agent event hooks (parse-only)
1279
+ - **Off by default.** Enable with `SKILLSCRIPT_EVENT_INGRESS_ENABLED=true`.
1280
+ - Runs on the **DashboardServer** (reuses the dashboard port — no second server).
1281
+ - **Binds localhost by default.** Reach beyond localhost only via explicit bind config.
1282
+ - **Optional bearer auth:** set `SKILLSCRIPT_EVENT_INGRESS_AUTH_TOKEN`; when set, every POST must carry `Authorization: Bearer <token>`.
1284
1283
 
1285
- Subscribes to another agent's events. Same parse-only status as `event:`.
1284
+ **Request:** `POST /event`, JSON body `{ "event_name": "...", "params": { ... } }`.
1286
1285
 
1287
- ```
1288
- # Triggers: agent-event: builder.task.completed
1289
- ```
1286
+ **Param validation (strict):** all declared params present, no unknown params, no defaults, no type coercion (JSON types pass through; a type mismatch surfaces at the consuming op, not at the ingress).
1290
1287
 
1291
- ### `file-watch: <path>` — filesystem change (parse-only)
1288
+ **Responses:**
1289
+ - `200` — accepted + queued. Body: `{ "run_id": "<trace_id>", "durability": "in-process" }`
1290
+ - `400` — missing or unknown params (body names the offending set)
1291
+ - `401` — missing/wrong bearer token (when auth is configured)
1292
+ - `404` — unknown `event_name`
1293
+ - `405` — wrong method
1292
1294
 
1293
- Fires when the named path changes. Relies on inotify (Linux) or kqueue (macOS) on the host.
1295
+ **Async semantics (important):** `200` means **accepted into the in-process queue, NOT skill-completed.** The skill runs asynchronously; the response never reflects skill success/failure. `durability: "in-process"` is self-describing: the queue is **best-effort, not durable across a restart** — the same property `cron` has (no catch-up replay). For at-least-once delivery the caller retries; durable queuing is not provided.
1294
1296
 
1295
- Open spec question: recursive vs directory-only default. Current lean: directory-only by default, opt-in via `file-watch-recursive:` or `file-watch: <path> (recursive)`.
1297
+ **`run_id` = `trace_id`.** The `run_id` in the 200 is the fire's `trace_id` — it round-trips to the fire record (the `fires` query / dashboard `/fires` view / the trace file on disk), so a caller can later check whether its fire completed.
1296
1298
 
1297
- ### `sensor: <sensor-name>`external sensor stream (parse-only)
1299
+ ## Canonical examplecalling `/event`
1298
1300
 
1299
- Extension surface for multimodal inputs — camera, microphone, presence, screen state. Designed as a category distinct from tools: sensors are continuous channels the agent reads but doesn't emit on. Privacy gating is a structural precondition.
1301
+ The `notify-deploy` skill above, fired by an external deploy pipeline:
1300
1302
 
1301
1303
  ```
1302
- # Triggers: sensor: presence
1304
+ curl -X POST http://localhost:7878/event \
1305
+ -H "Authorization: Bearer $SKILLSCRIPT_EVENT_INGRESS_AUTH_TOKEN" \
1306
+ -H "Content-Type: application/json" \
1307
+ -d '{"event_name":"deploy-finished","params":{"SERVICE":"api","VERSION":"1.2.3"}}'
1308
+ # → 200 {"run_id":"7f3c...","durability":"in-process"}
1303
1309
  ```
1304
1310
 
1305
- ## Trigger context
1311
+ **This is the pattern for every external trigger source.** A file-watcher, a sensor stream, an agent-event bridge, a webhook relay — each is just an external adapter that watches its source and POSTs to `/event`. (A file-watch adapter, e.g.: watch a path; on change, `POST {event_name, params:{path, kind}}`.)
1306
1312
 
1307
- When a skill fires from a trigger, the runtime populates ambient refs accessible inside the skill body:
1313
+ ## Trigger context
1308
1314
 
1309
- - `${TRIGGER_TYPE}` the trigger source (`cron`, `session`, etc.)
1315
+ When a skill fires from a trigger, the runtime populates ambient refs:
1316
+ - `${TRIGGER_TYPE}` — `cron` | `event`
1310
1317
  - `${TRIGGER_PAYLOAD}` — source-specific data
1311
- - `${EVENT.*}` event-payload fields for `event:` / `agent-event:` triggers
1318
+ - For event fires, the POSTed params land in the skill's vars (per `# Vars:`).
1312
1319
 
1313
1320
  ## Trigger lifecycle
1314
1321
 
1315
- - **Registration:** declarative via header (auto on skill write) or imperative via the `registerTrigger` API
1316
- - **Storage:** registered triggers are records owned by the registering agent, indexed by source + name + agent_id + skill_id; the storage backend is connector-defined
1317
- - **Inspection:** `listTriggers({ skill_name?, agent_id?, source? })` returns the live registry
1318
- - **Archival:** `unregisterTrigger(trigger_id)` archives the trigger (audit trail preserved); declarative triggers are removed by editing the skill body to drop the declaration
1322
+ - **Register:** declarative (auto on skill write) or imperative (`registerTrigger`).
1323
+ - **Inspect:** `listTriggers({ skill?, source? })`.
1324
+ - **Remove:** `unregisterTrigger(trigger_id)` (archives; audit trail preserved). Declarative triggers are removed by editing the `# Triggers:` line out of the skill body.
1319
1325
 
1320
1326
  ## Multiple triggers
1321
1327
 
1322
- A skill may declare multiple triggers; each fires an independent execution. The compiled output is identical regardless of trigger; the runtime distinguishes via `${TRIGGER_TYPE}`.
1323
-
1324
- Open spec question: dedup on near-simultaneous fires. If `cron: 0 8 * * *` and `event: user.present` both fire within seconds, the runtime currently runs the skill twice (one per trigger). Author dedups via state if needed.
1328
+ A skill may declare multiple triggers; each fires an independent execution. The compiled output is identical regardless of trigger; the runtime distinguishes via `${TRIGGER_TYPE}`. Near-simultaneous dedup is the author's responsibility (via state).
1325
1329
 
1326
1330
  ## Output targets — # Output: header, delivery kinds
1327
1331
 
1328
- The `# Output:` header declares where a skill's result is delivered. Default behavior (no header) is `text` — return string to caller.
1332
+ A skill's **body text is its output template**, and the `# Output:` header declares where that output is delivered. Default delivery (no `# Output:` header) is `text` — returned to the caller.
1329
1333
 
1330
- ## Output kinds
1334
+ ## Two ways to produce output: the template vs `emit` — and when to use each
1331
1335
 
1332
- ### `text` (default, bare-only)
1336
+ A skill produces output two ways. Choosing the right one is the difference between a clean skill and a confusing one:
1337
+
1338
+ - **Body-text template (declarative) — for fixed-shape output.** Write the output literally in the body, interpolating `${vars}`. Use it when you know the output's shape and are just filling in values.
1339
+ - **`emit(...)` (imperative) — for output whose shape or count is decided at runtime.** `emit` is NOT deprecated; it's the right tool for:
1340
+ 1. **Variable-cardinality output** — `foreach IT in ${LIST}: emit(...)` produces a number of lines decided at runtime, which a single template can't express.
1341
+ 2. **Conditional whole-output** — branches that produce genuinely different output *shapes* (not merely different values).
1342
+ 3. **Reasoning / transcript trace** — `emit` always writes to the transcript channel for debugging.
1343
+
1344
+ **Rule of thumb:** if you can write the output as one block of text with `${vars}` filled in, use the template. If the output's *shape or count* varies at runtime, use `emit`.
1345
+
1346
+ **They are complementary channels, not competitors.** When a body template is present, it owns the *canonical output*; `emit` always feeds the *transcript* channel. A skill may use both — a clean declarative output plus a rich transcript — with no conflict.
1333
1347
 
1334
- Returns the skill's result as a string to whatever invoked the skill via API or read the compiled prompt artifact. Bare-only no target accepted; parse error if a target is supplied.
1348
+ ## The body-text output template
1349
+
1350
+ Body text — at the top, the bottom, or between targets — is the output template (it may appear **anywhere a target doesn't**; see Grammar). It interpolates, at runtime:
1351
+ - `# Vars:` declared inputs, and
1352
+ - any variable bound by the body (`$set`, `-> VAR`).
1335
1353
 
1336
1354
  ```
1337
- # Output: text
1355
+ # Skill: get-weather
1356
+ # Vars: LOCATION="", UNITS="imperial"
1357
+
1358
+ ${AREA}: ${TEMP}${UNIT} and ${DESC}. High ${HIGH}${UNIT}, low ${LOW}${UNIT}.
1359
+
1360
+ fetch:
1361
+ shell(command="curl -s --max-time 10 https://wttr.in/${LOCATION|url}?format=j1") -> RAW
1362
+ $ json_parse ${RAW} -> W
1363
+ $set AREA = "${W.nearest_area.0.areaName.0.value}"
1364
+ $set DESC = "${W.current_condition.0.weatherDesc.0.value|trim}"
1365
+ if ${UNITS} == "metric":
1366
+ $set TEMP = "${W.current_condition.0.temp_C}" $set UNIT = "°C" # + HIGH/LOW
1367
+ else:
1368
+ $set TEMP = "${W.current_condition.0.temp_F}" $set UNIT = "°F" # + HIGH/LOW
1369
+ default: fetch
1338
1370
  ```
1371
+ Renders to the canonical output: `Valdese: 81°F and Sunny. High 93°F, low 64°F.` — no `emit`.
1339
1372
 
1340
- ### `agent: <agent-name>` augmenting context to a named agent
1373
+ **Lint:** every `${var}` in the template must be a `# Vars:` input or bound by the body. An unbound reference is a tier-1 error (`unset-template-var`). The coupling is mechanical (variable names), so it is checkable.
1341
1374
 
1342
- The Augmenting-kind delivery. Output prepends to the named agent's next-turn prompt context as augment-kind payload.
1375
+ **Branching stays single-shape:** resolve a fork *inside the block* into vars (metric/imperial `TEMP`/`UNIT`) so the template is one shape. Whole-output conditionals are an `emit` job, not a template job.
1343
1376
 
1377
+ **A body-template-only skill is valid.** A skill that is just a template + inputs, with **no compute block / no target**, compiles and runs — the template alone is the skill. `hello-world` is exactly this:
1344
1378
  ```
1345
- # Output: agent: <agent-name>
1346
- # Output: agent: cc@kitchen-terminal
1379
+ # Skill: hello-world
1380
+ # Status: Approved
1381
+ # Vars: WHO=world
1382
+
1383
+ Hello, ${WHO}!
1347
1384
  ```
1385
+ No target required. (A tier-3 `body-template-detected` advisory fires on a static template with no `${...}` interpolations and no text-consuming `# Output:` — a gentle "is this output, or did you mean a `#` comment?" intent check; harmless on a genuinely-static line.)
1348
1386
 
1349
- Used to bring an agent into the next turn pre-shaped — context that would normally require a session-start retrieval is pre-positioned. Wired end-to-end via the runtime host's prompt-prepend surface + a synchronous trigger-fire endpoint with timeout-fallback so the next-turn dispatch isn't blocked on slow skill execution.
1387
+ ## `# Output:` delivery kinds
1350
1388
 
1351
- **Address-routing** same rule as `notify()`. A bare `<agent-name>` routes to `AgentConnector.deliver()` (mailbox-class). An `<agent>@<session>` composite routes to `AgentConnector.wake()` (session-targeted interrupt); the joined emit stream rides as `WakeOpts.context`. The `@session` suffix IS the wake signal — no separate `wake=true` form.
1389
+ The body template (or, absent one, the emit/`-> VAR` result) is delivered according to the `# Output:` kind:
1352
1390
 
1353
- ### `template: <agent-name>` — playbook delivered to a named agent
1391
+ ### `text` (default, bare-only)
1392
+ Returns the result as a string to whatever invoked the skill via API or read the compiled artifact. Bare-only — a target is a parse error.
1393
+ ```
1394
+ # Output: text
1395
+ ```
1354
1396
 
1355
- The Template-kind delivery. Output renders as a playbook the named agent executes itself — the runtime doesn't dispatch the ops, it hands the agent a recipe to follow.
1397
+ ### `agent: <agent-name>` augmenting context to a named agent
1398
+ The output prepends to the named agent's next-turn prompt context as augment-kind payload — bringing an agent into the next turn pre-shaped. Wired via the runtime host's prompt-prepend surface + a synchronous trigger-fire endpoint with timeout-fallback so next-turn dispatch isn't blocked on slow execution.
1399
+ ```
1400
+ # Output: agent: <agent-name>
1401
+ ```
1356
1402
 
1403
+ ### `template: <agent-name>` — playbook delivered to a named agent
1404
+ The output renders as a playbook the named agent executes itself — the runtime hands over a recipe rather than dispatching the ops.
1357
1405
  ```
1358
1406
  # Output: template: <agent-name>
1359
- # Output: template: cc@browser-tab-3
1360
1407
  ```
1361
1408
 
1362
- Used for reusable recipes: a skill that, when compiled, produces instructions another agent follows.
1363
-
1364
- **Address-routing**: same as `agent:` above. Bare → deliver(); `@session` → wake().
1365
-
1366
1409
  ### `file: <path>` — write to file
1367
-
1368
- Header parses; file router not yet implemented. See "Not yet implemented, but planned" at top.
1410
+ Header parses; file router not yet implemented. See "Not yet implemented, but planned."
1369
1411
 
1370
1412
  ### `none` (bare-only)
1371
-
1372
- Side-effects only — the skill's purpose is the writes / shell ops it performs, not the returned value. Bare-only; parse error if a target is supplied.
1373
-
1413
+ Side-effects only — the skill's purpose is its writes / shell ops, not a returned value. Bare-only.
1374
1414
  ```
1375
1415
  # Output: none
1376
1416
  ```
1377
1417
 
1378
1418
  ## Multiple output targets
1379
-
1380
- A skill may declare multiple output targets, one per line. Each target receives the same content.
1381
-
1419
+ A skill may declare multiple output targets, one per line; each receives the same content.
1382
1420
  ```
1383
1421
  # Output: agent: ops-channel
1384
1422
  # Output: agent: assistant
1385
1423
  ```
1386
1424
 
1387
- A morning-brief skill, for example, can deliver to a team-channel agent and to an assistant agent's session-start prompt context simultaneously.
1388
-
1389
- ## Skill categories — Augmenting / Template / Headless
1390
-
1391
- The output kind declaration determines the skill's category for discovery purposes (see SkillStore `skill_list` discovery surface):
1392
-
1393
- | Category | Determined by | Discovery group |
1394
- |---|---|---|
1395
- | **Augmenting** | Has `# Output: agent: <name>` declared | `receives` |
1396
- | **Template** | Has `# Output: template: <name>` declared OR no agent/template output but agent-invokable (no triggers) | `skills` |
1397
- | **Headless** | Output is `text` / `file:` / `none` AND has autonomous triggers | `headless` (filtered out of default agent discovery) |
1398
-
1399
- The derivation: ANY `output.kind === "agent"` → Augmenting; else ANY `output.kind === "template"` → Template; else if no autonomous triggers → Template (agent-invokable inference); else → Headless.
1400
-
1401
- Agent discovery via `skill_list()` defaults to `receives` + `skills` groups. Headless skills are filtered out of the default view (admin views can opt in via `filter: { audience: "all" }`).
1402
-
1403
1425
  ## Per-kind output value semantics
1404
1426
 
1405
- Different output kinds consume the skill's execution result differently:
1427
+ What each kind consumes as the output, in precedence order:
1428
+ - **Presentation surfaces** (`agent:`, `template:`): the body template if present; otherwise joined emissions (all `emit()` ops concatenated in execution order).
1429
+ - **Programmatic surfaces** (`text`, `file:`): the body template if present; otherwise the `lastBoundVar` (most recent `-> VAR`).
1406
1430
 
1407
- - **Presentation surfaces** (`agent:`, `template:`) consume joined emissions all `emit()` ops in the skill body concatenated in execution order
1408
- - **Programmatic surfaces** (`text`, `file:`) consume the `lastBoundVar` — the most recently bound `-> VAR` value from any op
1431
+ A present body template is the canonical output for every kind; `emit` output continues to populate the transcript independently. Single source of truth in the executor's `perKindOutput()`; routers stay dumb. (Note: the `lastBoundVar` fallback is forgiving — a skill that binds a value but writes no template still outputs that last value — but it *masks* a forgotten template; prefer an explicit template when the output is fixed-shape.)
1409
1432
 
1410
- Single source of truth in the executor's `perKindOutput()` function; routers stay dumb (just consume what the executor hands them per kind).
1433
+ ## Skill categories Augmenting / Template / Headless
1411
1434
 
1412
- ## Augmenting / Template companion header
1435
+ The output kind determines the skill's discovery category (see `skill_list`):
1413
1436
 
1414
- Skills with `agent:` or `template:` output kinds can declare a companion header that rides along with the delivery payload. Optional; has no effect on Headless skills.
1437
+ | Category | Determined by | Discovery group |
1438
+ |---|---|---|
1439
+ | **Augmenting** | Has `# Output: agent: <name>` | `receives` |
1440
+ | **Template** | Has `# Output: template: <name>`, OR no agent/template output but agent-invokable (no triggers) | `skills` |
1441
+ | **Headless** | Output is `text` / `file:` / `none` AND has autonomous triggers | `headless` (filtered from default agent discovery) |
1415
1442
 
1416
- ### `# Event-type: <string>`
1443
+ Derivation: ANY `output.kind === "agent"` → Augmenting; else ANY `template` → Template; else no autonomous triggers → Template; else → Headless. `skill_list()` defaults to `receives` + `skills`; headless is opt-in via `filter:{audience:"all"}`.
1417
1444
 
1418
- Adopter-defined routing vocabulary; flows to `DeliveryMeta.event_type` on lifecycle-hook deliveries as the frontmatter fallback. `notify(event_type=...)` kwarg takes precedence per-emit.
1445
+ ## Augmenting / Template companion header `# Event-type:`
1419
1446
 
1447
+ Skills with `agent:`/`template:` output may declare a routing tag that rides with the delivery payload (no effect on Headless):
1420
1448
  ```
1421
1449
  # Output: agent: perry
1422
1450
  # Event-type: ticket-911
1423
1451
  ```
1424
-
1425
- The receiving agent reads `event_type` for routing decisions ("this is a 911 — surface immediately" vs "this is a routine check — fold into next brief").
1426
-
1427
- ### Lint coverage
1428
-
1429
- A tier-2 lint rule `unused-augmenting-header` fires when `# Event-type:` appears on a Headless skill (no `agent:` or `template:` output declared). Headless skills have no AgentConnector dispatch path, so the header would silently no-op — the lint warns the author to either change the output kind or remove the header.
1430
-
1431
- Legacy `# Delivery-context:` header was renamed to `# Event-type:` for vocab consistency. A tier-2 advisory `legacy-frontmatter-header` fires on the legacy form with a rename suggestion.
1452
+ The receiving agent reads `event_type` for routing ("911 — surface now" vs "routine — fold into next brief"). Flows to `DeliveryMeta.event_type`; `notify(event_type=...)` takes precedence per-emit. A tier-2 lint `unused-augmenting-header` fires when `# Event-type:` appears on a Headless skill. (Legacy `# Delivery-context:` → renamed `# Event-type:`; tier-2 `legacy-frontmatter-header` advisory on the old form.)
1432
1453
 
1433
1454
  ## Grammar
1434
1455
 
1435
- - Kinds with no target (`text`, `none`) are bare-only — `# Output: text` is valid, `# Output: text: anything` is a parse error.
1436
- - Kinds with a target (`agent`, `template`, `file`) require `<kind>: <target>` `# Output: agent` without a target is a parse error.
1437
- - Authoring friction-fix: parse errors on bare-only kinds suggest the corrected shape inline.
1456
+ - Bare-only kinds (`text`, `none`): `# Output: text` valid; `# Output: text: anything` is a parse error.
1457
+ - Targeted kinds (`agent`, `template`, `file`): require `<kind>: <target>`; bare form is a parse error.
1458
+ - **Template/target boundary (position-free):** a **target** is a `<name>:` line followed by an indented op-block. **Any other line** — including a `word: value` line with no op-block beneath it (`Summary: hot today`) — is **template text**, wherever it sits (top, bottom, or between targets). So the output template can go where the author's instinct puts it. Declaring **two separate template regions** in one skill is an error — pick one location.
1459
+ - Parse errors on bare-only kinds suggest the corrected shape inline.
1438
1460
 
1439
1461
  ## Output routing failures
1440
1462
 
1441
- If `# Output: agent: <name>` fires and the wired AgentConnector throws, the delivery routes through `else:` / `# OnError:` machinery. The receipt surface (`agent_delivery_receipts[]`) records the failure for the scheduler to log.
1463
+ If `# Output: agent: <name>` fires and the wired AgentConnector throws, delivery routes through `else:` / `# OnError:`; the failure is recorded on `agent_delivery_receipts[]` for the scheduler to log.
1442
1464
 
1443
1465
  ## Lifecycle and status — # Status: header, six canonical states, compile + runtime enforcement
1444
1466
 
@@ -1966,16 +1988,18 @@ Skill discovery via `skill_list()` (see SkillStore docs) closes the related visi
1966
1988
 
1967
1989
  Design rationale for planned features. The user-facing list of "what's coming" lives in the "Not yet implemented, but planned" section at top; this section documents the *why* behind each planned addition. When the language extends, the relevant grammar moves into its canonical section (Ops reference, Variables, Triggers, etc.) and the design-rationale entry here is replaced with a cross-reference.
1968
1990
 
1969
- ## Sensors as a language category
1991
+ ## Sensors as a read-channel category
1970
1992
 
1971
- Currently `# Triggers:` includes `sensor:` as a trigger source. The planned redesign splits sensors into their own category:
1993
+ > `sensor:` is **not a trigger source** — to *fire* a skill on a sensor signal, a sensor adapter POSTs to the `/event` ingress like any other external source (see Triggers). What remains a future idea is the separate concept below: sensors as a continuous **read channel**, decoupled from triggering.
1994
+
1995
+ The read-channel idea: a skill declares sensors it reads, distinct from what fires it:
1972
1996
 
1973
1997
  ```
1974
1998
  # Sensors: presence, screen-state, voice-prosody
1975
1999
  # Triggers: cron: 0 8 * * *
1976
2000
  ```
1977
2001
 
1978
- **Distinction:** Sensors are continuous channels the agent reads but doesn't emit on. Triggers are discrete events that fire the skill. Conflating them in one header produces a worse language for both — sensors need different semantics (continuous read, accessible via ambient refs, privacy-gated) than triggers (discrete fire, dispatch semantics).
2002
+ **Distinction:** Sensors (read-channel) are continuous values the agent reads but doesn't emit on. Triggers are discrete signals that fire the skill. The two are different semantics — sensors need continuous read, ambient-ref access, and privacy gating; triggers need discrete fire + dispatch. (Conflating them in one `sensor:` trigger source was the old design; the trigger half folds into `event`, the read-channel half stays future.)
1979
2003
 
1980
2004
  Pending: ambient refs for sensor values (`${SENSOR.presence}`, `${SENSOR.voice-prosody.affect}`) and the privacy-gating discipline that determines when a sensor is readable.
1981
2005
 
@@ -1999,7 +2023,7 @@ Different shape from event triggers — "fire if user hasn't messaged in N minut
1999
2023
  # Triggers: idle: 5m
2000
2024
  ```
2001
2025
 
2002
- Runtime tracks the relevant idleness counter and fires when the threshold crosses. Separate dispatch mechanism from event triggers.
2026
+ Runtime tracks the relevant idleness counter and fires when the threshold crosses. Would be a **new trigger source beyond the current `cron`|`event`** — or, absent a new source, an adapter that POSTs to `/event` on a timer. Separate dispatch mechanism from event triggers either way.
2003
2027
 
2004
2028
  ## Time-windowed aggregation
2005
2029
 
@@ -2132,7 +2156,7 @@ Runtime fails-fast on missing capabilities. Trust precondition for sensor work
2132
2156
  ## Build order rationale
2133
2157
 
2134
2158
  Some features depend on others:
2135
- - Suppression + persistent state should land before sensors (sensor work would compound problems without them)
2159
+ - Suppression + persistent state should land before the sensor read-channel (sensor work would compound problems without them)
2136
2160
  - Pub-sub needs sensors producing traffic before it has anything to route
2137
2161
  - Introspection is ergonomic, not foundational — useful but skippable
2138
2162
  - Capability declarations are the trust gate that makes sensor + privacy work socially defensible
@@ -2158,33 +2182,31 @@ Should `${ERROR}` be an ambient ref inside `else:` blocks, populated with the er
2158
2182
 
2159
2183
  ## 3. Multiple triggers — concurrency
2160
2184
 
2161
- If `cron: 0 8 * * *` and `event: user.present` both fire within seconds, does the skill run twice (independent) or get deduped? Lean: independent. Author dedups via state if needed. Affects dispatch layer.
2185
+ If `cron: 0 8 * * *` and `event: user-present` both fire within seconds, does the skill run twice (independent) or get deduped? Lean: independent. Author dedups via state if needed. Affects dispatch layer.
2162
2186
 
2163
2187
  ## 4. `execute_skill()` invocation vs trigger firing
2164
2188
 
2165
2189
  When skill A invokes skill B via `execute_skill()`, do skill B's `# Triggers:` fire? Almost certainly no — `execute_skill()` is direct invocation, distinct from the trigger event surface. Worth saying explicitly.
2166
2190
 
2167
- ## 5. File-watch path semantics
2168
-
2169
- Recursive or directory-only by default? Inotify supports both. Lean: directory-only default; offer recursive via `file-watch-recursive:` or `file-watch: <path> (recursive)`. Affects dispatch layer when the file-watch trigger source actually fires (currently parse-only).
2170
-
2171
- ## 6. Output target delivery failures
2191
+ ## 5. Output target delivery failures
2172
2192
 
2173
2193
  If a delivery target is unreachable when the skill fires, what happens? Lean: delivery failure is its own retryable error; queue if possible, else error to caller. Worth a separate small spec section. Affects dispatch layer.
2174
2194
 
2175
- ## 7. Skill versioning rollback UX
2195
+ ## 6. Skill versioning rollback UX
2176
2196
 
2177
2197
  Edits via upsert preserve history through substrate versioning (SqliteSkillStore's `skill_versions` table, FilesystemSkillStore's git history), but no first-class "rollback" affordance. Probably needs a `--version <N>` flag on the compile API or a sister tool.
2178
2198
 
2179
- ## 8. Connector capability declarations
2199
+ ## 7. Connector capability declarations
2180
2200
 
2181
2201
  Skills can declare required connector capabilities via `# Requires:` for var resolution. Extending this to "needs semantic search" / "needs structured-extraction model with 32K context" capabilities would be useful for the substrate-portable story. Pending design.
2182
2202
 
2183
- ## 9. Per-op timeouts
2203
+ ## 8. Per-op timeouts
2204
+
2205
+ Hung dispatches hang the skill without explicit timeout configuration. Lean: skill-level `# Timeout:` header + per-op `timeout=N` kwarg + runtime defaults. Pending implementation; see "Not yet implemented, but planned" at top.
2184
2206
 
2185
- Hung dispatches hang the skill without explicit timeout configuration. Lean: skill-level `# Timeout:` header + per-op `timeoutSeconds=N` kwarg + runtime defaults. Pending implementation; see "Not yet implemented, but planned" at top.
2207
+ *(The former "file-watch path semantics" question was removed `file-watch` is no longer a trigger source; filesystem watching is now an external adapter that POSTs to the `/event` ingress, so there are no in-language file-watch path semantics to settle.)*
2186
2208
 
2187
2209
  ---
2188
2210
 
2189
- *Rendered from `skillscript/skillscript-language-reference` — 2026-06-04 11:28 EDT*
2190
- *Source of truth: AMP (`amp_render_document("skillscript/skillscript-language-reference")`)*
2211
+ *Rendered from `skillscript/skillscript-language-reference` — 2026-06-08 17:41 EDT*
2212
+ *Source of truth: AMP (`amp_render_document("skillscript/skillscript-language-reference")`)*
@@ -2,7 +2,7 @@
2
2
  "provenance_version": "1.0",
3
3
  "language_version": "1.0",
4
4
  "compiler_version": "0.1.0-dev",
5
- "compiled_at": "2026-06-08T19:13:30.653Z",
5
+ "compiled_at": "2026-06-09T13:43:10.260Z",
6
6
  "source_skill": {
7
7
  "name": "hello-world"
8
8
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillscript-runtime",
3
- "version": "0.19.8",
3
+ "version": "0.19.9",
4
4
  "description": "Runtime, compiler, lint, CLI, and dashboard for Skillscript — a small declarative language for authoring agent workflows.",
5
5
  "license": "MIT",
6
6
  "author": "Scott Shwarts <scotts@pobox.com>",
@@ -49,13 +49,17 @@
49
49
 
50
50
  "_example_disabled_remote_mcp": {
51
51
  "comment": "Uncomment and adapt to wire any remote MCP server. The example shows the stdio-bridged shape used by `mcp-remote` and similar.",
52
+ "_comment_framing": "framing: 'newline' for mcp-remote and most MCP stdio servers (newline-delimited per the standard MCP stdio spec). Only use 'lsp' (the historical default — Content-Length-framed) if your specific MCP server explicitly uses LSP-style framing. With the wrong framing, the connector hangs to init_timeout with no clear 'wrong framing' signal — set this explicitly.",
53
+ "_comment_allowed_tools": "allowed_tools is a per-connector SECURITY policy and belongs at the ENTRY top-level (sibling to 'class' and 'config'). Placing it INSIDE 'config:' is now a hard parse error (refused to load) — pre-fix it silently allowed all tools, a security bypass on misplacement.",
52
54
  "class": "RemoteMcpConnector",
53
55
  "config": {
54
56
  "command": "npx",
55
57
  "args": ["mcp-remote", "https://example.com/mcp", "--header", "Authorization:${AUTH_HEADER}"],
58
+ "framing": "newline",
56
59
  "env": {
57
60
  "AUTH_HEADER": "Bearer ${YOUR_TOKEN_ENV_VAR}"
58
61
  }
59
- }
62
+ },
63
+ "allowed_tools": ["list_issues", "get_issue", "create_comment"]
60
64
  }
61
65
  }