@@ -185,7 +185,7 @@ core publication and do not claim managed admission.
185185
186186## Field rules
187187
188- < h3 id = " f01 " > F01 Source form or path</ h3 >
188+ ### F01 Source form or path
189189
190190Formatting, comments, order, and a source path change are ` no-op ` only when all
191191normalized fields, render plans, task IDs, fallback ` cwd ` , exact resolved paths,
@@ -197,7 +197,7 @@ Authoring: [pinned discovery, identity, and host][evals-discovery]. st2 source:
197197[ KDL parser] ( ../../../crates/agent-spec/src/kdl_format.rs ) . Evidence:
198198[ discovery] ( ../../../crates/agent-spec/src/discovery.rs ) .
199199
200- < h3 id = " f02 " > F02 Agent < code >id</ code > and legacy < code > identity</ code ></ h3 >
200+ ### F02 Agent ` id ` and legacy ` identity `
201201
202202The target ` id ` field is the immutable catalog-global agent ID. IDs are unique
203203across live and structurally archived subjects, across hosts and desired states.
@@ -238,7 +238,7 @@ writer emits it yet; positional `identity` is still the durable key. That gap is
238238fenced by
239239[ DELTA-003] ( ../.delta/DELTA-003-agent-address-not-implemented.md ) .
240240
241- < h3 id = " f03 " > F03 < code > host</ code ></ h3 >
241+ ### F03 ` host `
242242
243243Each supervisor evaluates only local membership. A complete present-to-absent
244244change removes locally; absent-to-present adds locally. This is not migration,
@@ -249,7 +249,7 @@ Authoring: [pinned discovery and host][evals-discovery]. st2 source:
249249[ ` AgentSpec::host ` ] ( ../../../crates/agent-spec/src/spec.rs ) . Evidence:
250250[ host filtering] ( ../../../src/reconcile.rs ) .
251251
252- < h3 id = " f04 " > F04 < code > type</ code ></ h3 >
252+ ### F04 ` type `
253253
254254An omitted value and ` service ` have the same effect. Any other value refuses
255255changes to the related agent, tasks, and files before launch, write, or teardown.
@@ -258,7 +258,7 @@ Authoring: [pinned complete declaration][evals-fields]. st2 source:
258258[ ` JobType ` and ` RawSpec::job_type ` ] ( ../../../crates/agent-spec/src/spec.rs ) .
259259Evidence: [ validation] ( ../../../src/validate.rs ) .
260260
261- < h3 id = " f05 " > F05 < code > role</ code ></ h3 >
261+ ### F05 ` role `
262262
263263Update observable declaration metadata only. Do not change the fingerprint,
264264workspace files, notification state, or a healthy task.
@@ -267,7 +267,7 @@ Authoring: [pinned complete declaration][evals-fields]. st2 source:
267267[ ` AgentSpec::role ` ] ( ../../../crates/agent-spec/src/spec.rs ) . Evidence:
268268[ KDL lowering] ( ../../../crates/agent-spec/src/kdl_format.rs ) .
269269
270- < h3 id = " f06 " > F06 < code > workspace</ code ></ h3 >
270+ ### F06 ` workspace `
271271
272272For a healthy survivor, keep the process and commit the new live context. After
273273commit, write one durable event with the old and new paths, then try
@@ -281,7 +281,7 @@ Authoring: [pinned complete declaration][evals-fields]. st2 source:
281281[ ` AgentSpec::workspace ` ] ( ../../../crates/agent-spec/src/spec.rs ) . Evidence:
282282[ ` cwd ` resolution] ( ../../../src/run.rs ) .
283283
284- < h3 id = " f07 " > F07 Resource < code > name</ code > or < code > uri</ code ></ h3 >
284+ ### F07 Resource ` name ` or ` uri `
285285
286286Update Resource data without changing the launch fingerprint. Notify a
287287survivor once after commit. New or replaced work reads the latest state at boot
@@ -292,7 +292,7 @@ st2 `9887b28` predate Resource bindings. Current st2 source:
292292[ ` Resource ` ] ( ../../../crates/agent-spec/src/spec.rs ) . Evidence:
293293[ declared Resource projection] ( ../../../src/agents.rs ) .
294294
295- < h3 id = " f08 " > F08 < code > render {}</ code > operation, template, or resolved target</ h3 >
295+ ### F08 ` render {} ` operation, template, or resolved target
296296
297297Prove ownership for every affected local owner before writing. Conflicts refuse
298298all affected owners. Write changed bytes and enforce the declared mode. The
@@ -307,7 +307,7 @@ declaration.
307307Authoring: [ pinned render contract] [ evals-render ] . st2 implementation and
308308evidence: [ materializer] ( ../../../src/materialize.rs ) .
309309
310- < h3 id = " f09 " > F09 Task set: < code > pty</ code >, < code > exec</ code > , or compact < code > ding</ code ></ h3 >
310+ ### F09 Task set: ` pty ` , ` exec ` , or compact ` ding `
311311
312312Add only the unique missing child. Remove and clean only an old child with exact
313313ownership proof. A compact DING is a derived child: it starts only after its
@@ -329,7 +329,7 @@ Authoring: [pinned compact and explicit tasks][evals-tasks]. st2 source:
329329[ ` Task ` and ` TaskKind ` ] ( ../../../crates/agent-spec/src/spec.rs ) . Evidence:
330330[ task reconciliation] ( ../../../src/reconcile.rs ) .
331331
332- < h3 id = " f10 " > F10 Task < code > name</ code > or explicit < code >id</ code ></ h3 >
332+ ### F10 Task ` name ` or explicit ` id `
333333
334334Remove the exact old ID and add the new ID. Do not infer one incarnation.
335335Report both actions, or ` hold ` or ` refuse ` when ownership proof is missing.
@@ -338,7 +338,7 @@ Authoring: [pinned explicit tasks][evals-tasks]. st2 source:
338338[ ` Task::name ` and ` Task::id ` ] ( ../../../crates/agent-spec/src/spec.rs ) . Evidence:
339339[ task reconciliation] ( ../../../src/reconcile.rs ) .
340340
341- < h3 id = " f11 " > F11 Spawn inputs</ h3 >
341+ ### F11 Spawn inputs
342342
343343Task ` kind ` , ` command ` , ` argv ` , explicit ` cwd ` , and task ` env ` , plus agent
344344` env ` , ` tags ` , ` supervisor ` , and any other start input form the versioned launch
@@ -354,7 +354,7 @@ Authoring: [pinned tasks][evals-tasks] and [environment][evals-environment]. The
354354Current st2 source: [ ` AgentSpec ` and ` Task ` ] ( ../../../crates/agent-spec/src/spec.rs ) .
355355Evidence: [ spawn construction] ( ../../../src/run.rs ) .
356356
357- < h3 id = " f12 " > F12 Future policy (R31)</ h3 >
357+ ### F12 Future policy (R31)
358358
359359``` text
360360canonical catalog folder + host = supervisor scope
@@ -416,7 +416,7 @@ Authoring: [pinned complete declaration][evals-fields]. The
416416[ ` execute ` ] ( ../../../src/run.rs ) . Evidence:
417417[ policy planning] ( ../../../src/reconcile.rs ) .
418418
419- < h3 id = " f13 " > F13 < code > retired #true</ code ></ h3 >
419+ ### F13 ` retired #true `
420420
421421Fence, stop, and clean every declared task ID with exact ownership proof, and
422422prevent relaunch. Retirement preserves the agent ID, removes the subject from
@@ -429,7 +429,7 @@ Authoring: [pinned complete declaration][evals-fields]. st2 source:
429429[ ` AgentDesiredState ` ] ( ../../../crates/agent-spec/src/spec.rs ) . Evidence:
430430[ retirement planning] ( ../../../src/reconcile.rs ) .
431431
432- < h3 id = " f14 " > F14 Compact agent fields</ h3 >
432+ ### F14 Compact agent fields
433433
434434Compact ` command ` , ` argv ` , ` env ` , ` lifecycle ` , and ` ding ` convert to the
435435generated agent PTY and derived sidecar. The tasks use F09, F11, and F12;
@@ -441,7 +441,7 @@ predate compact `argv` and `lifecycle`. Current st2 source:
441441[ KDL fields] ( ../../../crates/agent-spec/src/kdl_format.rs ) . Evidence:
442442[ ` RawSpec ` lowering] ( ../../../crates/agent-spec/src/spec.rs ) .
443443
444- < h3 id = " f15 " > F15 Provider and ignored fields</ h3 >
444+ ### F15 Provider and ignored fields
445445
446446Core st2 ignores ` harness ` , ` model ` , ` persona ` , ` permissions ` , ` transport ` ,
447447` strategy ` , ` meta ` , and provider extensions. They do not change core equality,
@@ -452,7 +452,7 @@ Authoring: [pinned complete declaration][evals-fields]. st2 source:
452452[ KDL field boundary] ( ../../../crates/agent-spec/src/kdl_format.rs ) . Evidence:
453453[ ` RawSpec ` lowering] ( ../../../crates/agent-spec/src/spec.rs ) .
454454
455- < h3 id = " f16 " > F16 Invalid or incomplete state</ h3 >
455+ ### F16 Invalid or incomplete state
456456
457457Refuse changes to an agent, task, or file when its desired or actual state is
458458unreadable, invalid, ambiguous, or conflicting. Keep last-known-good ownership
@@ -464,7 +464,7 @@ source: [`RawSpec` and `AgentSpec`](../../../crates/agent-spec/src/spec.rs).
464464Evidence: [ validation] ( ../../../src/validate.rs ) and
465465[ reconciliation] ( ../../../src/reconcile.rs ) .
466466
467- < h3 id = " f18 " > F18 < code > desired-state</ code > and < code > reason</ code ></ h3 >
467+ ### F18 ` desired-state ` and ` reason `
468468
469469` desired-state ` is one of ` running ` , ` suspended ` , or ` retired ` . Its omission is
470470running. A suspended or new-style retired declaration carries exactly one
@@ -517,7 +517,7 @@ st2 source: [`AgentDesiredState`](../../../crates/agent-spec/src/spec.rs),
517517[ authoring] ( ../../../tests/agent_desired_state.rs ) , and
518518[ planning] ( ../../../tests/reconcile.rs ) .
519519
520- < h3 id = " f17 " > F17 Agent < code > name</ code > and < code > description</ code ></ h3 >
520+ ### F17 Agent ` name ` and ` description `
521521
522522Update observable declaration and runtime presentation metadata only. Neither
523523field participates in agent ID, address routing, selection, authorization,
@@ -546,11 +546,11 @@ change lands. st2 source: [`AgentSpec`](../../../crates/agent-spec/src/spec.rs),
546546Evidence: parser, roster, exact-ID metadata, and no-restart presentation tests.
547547
548548
549- < h3 id = " f19 " > F19 Agent < code > stream</ code ></ h3 >
549+ ### F19 Agent ` stream `
550550
551551A ` stream "<name>" {} ` declares one agent-owned event ingress endpoint. Names
552- are 1..=40 characters matching
553- ` [a-z0-9]([a-z0-9-]*[a-z0-9])? ` and cannot collide with an authored task named
552+ are 1..=40 lowercase alphanumeric characters with optional interior hyphens
553+ and cannot collide with an authored task named
554554` stream-<name> ` . The declaration contains at most one launch: ` command ` is an
555555opaque shell command, ` argv ` is a non-empty structured argument vector, and an
556556empty body means external ingress. Unknown children, including the reserved
@@ -571,7 +571,7 @@ lands. st2 source: [`Stream`](../../../crates/agent-spec/src/spec.rs),
571571[ ` streams_are_typed_and_only_launched_streams_lower_to_derived_exec_tasks ` ] ( ../../../crates/agent-spec/tests/discovery.rs )
572572and stream lifecycle tests in [ ` tests/run.rs ` ] ( ../../../tests/run.rs ) .
573573
574- < h3 id = " f20 " > F20 Agent < code > address</ code ></ h3 >
574+ ### F20 Agent ` address `
575575
576576` address ` is an optional mutable semantic alias for human routing. Its omission
577577uses positional ` identity ` as the effective legacy address. Its presence
0 commit comments