Build a chain contract
How to build a chain contract
Section titled “How to build a chain contract”Declare which components may invoke which others, so inter-component invocation is explicit and safe (Standard sec 3.6).
When you need one
Section titled “When you need one”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.
1. Create
Section titled “1. Create”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-author2. Validate
Section titled “2. Validate”node scripts/evaluate.mjs . --jsonResolve 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).