Skip to content

Build a chain contract

Declare which components may invoke which others, so inter-component invocation is explicit and safe (Standard sec 3.6).

Only when a skill or subagent invokes another component (it declares a chain: in its frontmatter). A plugin that does not chain ships no contract - this is a conditional MUST, not a ceremony.

Invoke askit-build-chain-contract (create mode). It scans chain: declarations and authors agents/_chain-permitted.yaml, one entry per caller (copying templates/chain-permitted.yaml if needed):

askit-build-skill:
- askit-skill-author
node scripts/evaluate.mjs . --json

Resolve any S4 findings: an orphan (a chain: invocation not permitted) means add the caller: [callee] line; a phantom (an entry naming a missing component) means fix the name, remove the entry, or create the component. Iterate to 0 error(s).