@squadrules/mcp 5.12.0 → 5.13.0

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.
Files changed (74) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/embed-docs/mem/README.md +11 -11
  3. package/dist/embed-docs/mem/adapter-migration.md +7 -7
  4. package/dist/embed-docs/mem/author-adapter.md +4 -4
  5. package/dist/embed-docs/mem/bulk-insert-adapters-via-cli.md +1 -1
  6. package/dist/embed-docs/mem/challenge-type-guide.md +28 -18
  7. package/dist/embed-docs/mem/critic-loop-guide.md +5 -6
  8. package/dist/embed-docs/mem/critic-loop.md +3 -3
  9. package/dist/embed-docs/mem/protocol-linking-guide.md +11 -12
  10. package/dist/embed-docs/mem/refine-search.md +1 -1
  11. package/dist/resources/embedded-mcp-resources.js +9 -9
  12. package/dist/resources/embedded-mcp-resources.js.map +1 -1
  13. package/dist/services/memory/validate-protocol-structure.d.ts.map +1 -1
  14. package/dist/services/memory/validate-protocol-structure.js +39 -17
  15. package/dist/services/memory/validate-protocol-structure.js.map +1 -1
  16. package/dist/services/proof-of-work-store.d.ts +4 -5
  17. package/dist/services/proof-of-work-store.d.ts.map +1 -1
  18. package/dist/services/proof-of-work-store.js.map +1 -1
  19. package/dist/tools/forward-contract-match.d.ts +20 -0
  20. package/dist/tools/forward-contract-match.d.ts.map +1 -0
  21. package/dist/tools/forward-contract-match.js +45 -0
  22. package/dist/tools/forward-contract-match.js.map +1 -0
  23. package/dist/tools/forward-helpers.js +2 -2
  24. package/dist/tools/forward-helpers.js.map +1 -1
  25. package/dist/tools/forward-trace.d.ts.map +1 -1
  26. package/dist/tools/forward-trace.js +5 -8
  27. package/dist/tools/forward-trace.js.map +1 -1
  28. package/dist/tools/forward-view.d.ts.map +1 -1
  29. package/dist/tools/forward-view.js +5 -7
  30. package/dist/tools/forward-view.js.map +1 -1
  31. package/dist/tools/forward_schema.d.ts +25 -25
  32. package/dist/tools/forward_schema.d.ts.map +1 -1
  33. package/dist/tools/forward_schema.js +16 -24
  34. package/dist/tools/forward_schema.js.map +1 -1
  35. package/dist/tools/next-pow-challenge-shape.d.ts.map +1 -1
  36. package/dist/tools/next-pow-challenge-shape.js +43 -12
  37. package/dist/tools/next-pow-challenge-shape.js.map +1 -1
  38. package/dist/tools/next-pow-helpers.d.ts.map +1 -1
  39. package/dist/tools/next-pow-helpers.js +19 -14
  40. package/dist/tools/next-pow-helpers.js.map +1 -1
  41. package/dist/tools/next-previous-step.js +4 -4
  42. package/dist/tools/next-previous-step.js.map +1 -1
  43. package/dist/tools/next-proof-types.d.ts +2 -4
  44. package/dist/tools/next-proof-types.d.ts.map +1 -1
  45. package/dist/tools/next_schema.d.ts +20 -18
  46. package/dist/tools/next_schema.d.ts.map +1 -1
  47. package/dist/tools/next_schema.js +11 -13
  48. package/dist/tools/next_schema.js.map +1 -1
  49. package/dist/tools/squadrules-challenge-display.d.ts.map +1 -1
  50. package/dist/tools/squadrules-challenge-display.js +8 -11
  51. package/dist/tools/squadrules-challenge-display.js.map +1 -1
  52. package/dist/tools/tool-registry.d.ts +12 -11
  53. package/dist/tools/tool-registry.d.ts.map +1 -1
  54. package/dist/types/memory.d.ts +7 -5
  55. package/dist/types/memory.d.ts.map +1 -1
  56. package/dist/ui/assets/{AccountPage-rmFJddfQ.js → AccountPage-BYsjWf0l.js} +1 -1
  57. package/dist/ui/assets/ChallengeCard-CdDjzVMc.js +1 -0
  58. package/dist/ui/assets/{ProtocolDetailPage-kPGgNobg.js → ProtocolDetailPage-DaLHkEk6.js} +1 -1
  59. package/dist/ui/assets/ProtocolEditPage-si6FjgFJ.js +5 -0
  60. package/dist/ui/assets/RunGuidedPage-51zvt69k.js +1 -0
  61. package/dist/ui/assets/{SkillBundlePage-DV9CXjfI.js → SkillBundlePage-DjISl_TJ.js} +1 -1
  62. package/dist/ui/assets/{export-skill-zip-seCWjJSV.js → export-skill-zip-CHfMqCRE.js} +1 -1
  63. package/dist/ui/assets/index-CLF3sr9I.css +2 -0
  64. package/dist/ui/assets/{index-D_BmxEln.js → index-eenbUXjQ.js} +3 -3
  65. package/dist/ui/index.html +2 -2
  66. package/package.json +1 -1
  67. package/dist/tools/mcp-contract-match.d.ts +0 -21
  68. package/dist/tools/mcp-contract-match.d.ts.map +0 -1
  69. package/dist/tools/mcp-contract-match.js +0 -78
  70. package/dist/tools/mcp-contract-match.js.map +0 -1
  71. package/dist/ui/assets/ChallengeCard-DVXo4j0b.js +0 -1
  72. package/dist/ui/assets/ProtocolEditPage-IvFbUiUS.js +0 -5
  73. package/dist/ui/assets/RunGuidedPage-Db_CQ-9q.js +0 -1
  74. package/dist/ui/assets/index-BGjXjHf7.css +0 -2
@@ -19,7 +19,7 @@ observable verification over polished but weak wording.
19
19
  **Autonomy (AI-ownership).** The bundle is written for autonomous execution:
20
20
  adapters resolve intent from context, run critic-loop in a loop until it returns
21
21
  `PASS`, and gate irreversible remote mutations with objective pre/post contracts
22
- (shell/mcp) rather than human confirmation. They do **not** stop to ask a human to
22
+ (shell/forward) rather than human confirmation. They do **not** stop to ask a human to
23
23
  approve or acknowledge. Human escalation is reserved for genuinely ambiguous intent
24
24
  or a hard blocker (a required tool/auth that cannot be established automatically).
25
25
 
@@ -28,9 +28,9 @@ observable verification available:
28
28
 
29
29
  1. `shell` — for file/state/command verification. **`interpreter` is REQUIRED**
30
30
  (allowed: `bash`, `sh`, `python3`, `python`, `node`).
31
- 2. `mcp` — **forward-links only**. Must use `tool_name: "forward"` with
32
- `arguments.uri` matching `squadrules://adapter/<slug>`. Bare tool-name-only
33
- mcp contracts are not valid.
31
+ 2. `forward` — **links to another adapter**. Must set `forward.target` matching
32
+ `squadrules://adapter/<slug>`. Bare MCP tool calls are not valid forward
33
+ contracts — delegate them inside a `subagent` (rung 3).
34
34
  3. `subagent` — for delegated work that requires multi-step reasoning or tool
35
35
  orchestration by another agent.
36
36
  4. `user_input` — only for genuine human decisions.
@@ -61,7 +61,7 @@ author-adapter (Author) → forward(squadrules://adapter/critic-loop) → critic
61
61
  | File | Slug | Purpose |
62
62
  |------|------|---------|
63
63
  | [challenge-type-guide.md](challenge-type-guide.md) | `challenge-type-guide` | Challenge type selection, interpreter choice, and verification patterns |
64
- | [protocol-linking-guide.md](protocol-linking-guide.md) | `protocol-linking-guide` | Layers vs chains, `activate` vs `forward` + slug, chain-root collapsing, MCP forward-link validation |
64
+ | [protocol-linking-guide.md](protocol-linking-guide.md) | `protocol-linking-guide` | Layers vs chains, `activate` vs `forward` + slug, chain-root collapsing, forward-link validation |
65
65
  | [critic-loop-guide.md](critic-loop-guide.md) | `critic-loop-guide` | Critic-loop integration rules, mutation gates, solution check vs critic decision table |
66
66
 
67
67
  ## Cross-Adapter Linking
@@ -94,17 +94,17 @@ call forward with squadrules://adapter/implement-terraform and no solution to st
94
94
  Slugs are globally unique (enforced by `train`), so resolution is
95
95
  deterministic — no scoring, no ambiguity.
96
96
 
97
- ### MCP forward-link contracts
97
+ ### Forward-link contracts
98
98
 
99
- All `mcp` contracts must be forward-links with arguments:
99
+ All `forward` contracts must name their target adapter:
100
100
 
101
101
  ```json
102
- {"contract":{"type":"mcp","mcp":{"tool_name":"forward","arguments":{"uri":"squadrules://adapter/code-review-policy"}},"required":true}}
102
+ {"contract":{"type":"forward","forward":{"target":"squadrules://adapter/code-review-policy"},"required":true}}
103
103
  ```
104
104
 
105
- The server validates that `solution.mcp.arguments` is a superset of the
106
- contract's `mcp.arguments` (subset/deep matching). This proves the agent
107
- called `forward` with the correct slug, not just any `forward` call.
105
+ The server validates that the submitted `evidence.target` equals the contract's
106
+ `forward.target`. This proves the agent called `forward` with the correct slug,
107
+ not just any `forward` call.
108
108
 
109
109
  ### When to use `activate` vs `forward` + slug
110
110
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.12.0"
2
+ version: "5.13.0"
3
3
  slug: adapter-migration
4
4
  title: Adapter Migration Workflow
5
5
  ---
@@ -78,7 +78,7 @@ Export every adapter from the target space using bulk export:
78
78
  If the space has no adapters, report this and stop.
79
79
 
80
80
  ```json
81
- {"contract":{"type":"subagent","subagent":{"instruction":"Export all adapters from the target space using the export tool with all_adapters: true. Record the total count and extract slug, URI, and content for each adapter."},"required":true}}
81
+ {"contract":{"type":"subagent","subagent":{"context":"Export all adapters from the target space using the export tool with all_adapters: true. Record the total count and extract slug, URI, and content for each adapter."},"required":true}}
82
82
  ```
83
83
 
84
84
  ## Analyze and Transform
@@ -97,8 +97,8 @@ For each exported adapter, perform structural analysis and apply migrations.
97
97
  (do NOT auto-split; report as manual review needed).
98
98
  5. **Shell interpreter** — every shell contract must include `"interpreter"`
99
99
  field with an allowed value (`bash`, `sh`, `python3`, `python`, `node`).
100
- 6. **MCP forward-link** — every mcp contract must use `tool_name: "forward"`
101
- with `arguments.uri` matching `squadrules://adapter/<slug>`.
100
+ 6. **Forward link** — every `forward` contract must set `forward.target`
101
+ matching `squadrules://adapter/<slug>`.
102
102
 
103
103
  ### Transformation rules
104
104
 
@@ -114,7 +114,7 @@ For each adapter, produce:
114
114
  - `transformed_content`: the full updated markdown (when `needs_changes`)
115
115
 
116
116
  ```json
117
- {"contract":{"type":"subagent","subagent":{"instruction":"Analyze each exported adapter against structural checks (heading order, contract fences, frontmatter, line count, shell interpreter, mcp forward-link). Apply conservative transformations and produce per-adapter status, changes, warnings, and transformed content."},"required":true}}
117
+ {"contract":{"type":"subagent","subagent":{"context":"Analyze each exported adapter against structural checks (heading order, contract fences, frontmatter, line count, shell interpreter, forward link). Apply conservative transformations and produce per-adapter status, changes, warnings, and transformed content."},"required":true}}
118
118
  ```
119
119
 
120
120
  ## Report Changes
@@ -152,7 +152,7 @@ For each `needs_changes` adapter, apply the structural changes:
152
152
  Do NOT change the adapter's space assignment during migration.
153
153
 
154
154
  ```json
155
- {"contract":{"type":"subagent","subagent":{"instruction":"Execute the migration: for each needs_changes adapter, call tune (content-level fixes) or train with force_update (structural changes). Record success/failure per adapter."},"required":true}}
155
+ {"contract":{"type":"subagent","subagent":{"context":"Execute the migration: for each needs_changes adapter, call tune (content-level fixes) or train with force_update (structural changes). Record success/failure per adapter."},"required":true}}
156
156
  ```
157
157
 
158
158
  ## Verify and Report
@@ -187,7 +187,7 @@ scheme. Every adapter has:
187
187
  - Correct heading order (Activation Patterns first, Reward Signal last).
188
188
  - Proper ` ```json ` contract fences.
189
189
  - Shell contracts with `interpreter` field.
190
- - MCP contracts as forward-links with `arguments.uri`.
190
+ - Forward contracts with a `forward.target` adapter URI.
191
191
  - Valid frontmatter with `slug` and optional `version`.
192
192
  - Been verified post-migration for structural compliance.
193
193
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  slug: author-adapter
3
- version: "5.12.0"
3
+ version: "5.13.0"
4
4
  title: Author Adapter (Create / Review / Refactor)
5
5
  ---
6
6
 
@@ -87,7 +87,7 @@ inferred operation and target, then continue. Escalate to the user only when
87
87
  the request is genuinely ambiguous and no reasonable default exists.
88
88
 
89
89
  ```json
90
- {"contract":{"type":"subagent","subagent":{"instruction":"Resolve the authoring operation (create/review/update) and target adapter from user context. Record the decision."},"required":true}}
90
+ {"contract":{"type":"subagent","subagent":{"context":"Resolve the authoring operation (create/review/update) and target adapter from user context. Record the decision."},"required":true}}
91
91
  ```
92
92
 
93
93
  ## Gather Requirements
@@ -121,7 +121,7 @@ Export the target adapter, read the current markdown, identify the exact gap or
121
121
  error, and plan the minimal change.
122
122
 
123
123
  ```json
124
- {"contract":{"type":"subagent","subagent":{"instruction":"Gather requirements for the resolved operation: collect pattern/details for create, audit checklist for review, or identify the specific issue for update."},"required":true}}
124
+ {"contract":{"type":"subagent","subagent":{"context":"Gather requirements for the resolved operation: collect pattern/details for create, audit checklist for review, or identify the specific issue for update."},"required":true}}
125
125
  ```
126
126
 
127
127
  ## Draft Markdown
@@ -167,7 +167,7 @@ For `review`: write a structured gap report to `$REVIEW_FINDINGS_FILE`.
167
167
  For `update`: apply the identified change and show a diff-style summary.
168
168
 
169
169
  ```json
170
- {"contract":{"type":"subagent","subagent":{"instruction":"Draft the adapter markdown (create), findings report (review), or corrected markdown (update) following all shared drafting rules."},"required":true}}
170
+ {"contract":{"type":"subagent","subagent":{"context":"Draft the adapter markdown (create), findings report (review), or corrected markdown (update) following all shared drafting rules."},"required":true}}
171
171
  ```
172
172
 
173
173
  ## Critic-Loop Review (create and update only)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  slug: bulk-insert-adapters-via-cli
3
- version: "5.12.0"
3
+ version: "5.13.0"
4
4
  title: Bulk Insert Adapters via SQUADRULES CLI
5
5
  ---
6
6
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.12.0"
2
+ version: "5.13.0"
3
3
  slug: challenge-type-guide
4
4
  title: Challenge Type Selection Guide
5
5
  ---
@@ -46,7 +46,7 @@ code — use `shell` or `subagent` instead.
46
46
 
47
47
  **Mode before challenge type:**
48
48
  - **clarify / approve** → `user_input`
49
- - **chain to another adapter** → `mcp` (forward-link only)
49
+ - **chain to another adapter** → `forward` (link to another adapter)
50
50
  - **execute or verify local state** → `shell`
51
51
  - **delegate to another agent** → `subagent`
52
52
  - **pure reasoning with no observable artifact** → `comment`
@@ -55,7 +55,7 @@ code — use `shell` or `subagent` instead.
55
55
 
56
56
  ```
57
57
  Does the step chain to another adapter via forward?
58
- ├─ YES → "mcp" forward-link (tool_name: "forward", arguments.uri: squadrules://adapter/<slug>)
58
+ ├─ YES → "forward" (target: squadrules://adapter/<slug>)
59
59
  └─ NO → Does the step produce or verify a file, command result, or system state?
60
60
  ├─ YES → "shell" (with interpreter)
61
61
  └─ NO → Does the step require human approval or choice?
@@ -76,28 +76,38 @@ Allowed interpreters: `bash`, `sh`, `python3`, `python`, `node`. Build tools
76
76
  (`terraform`, `docker`, `npm`, etc.) are **not** interpreters — wrap them in a
77
77
  `bash` command instead.
78
78
 
79
- **mcp** (forward-link only — bare tool_name checks are not valid)
79
+ **forward** (links to another adapter — bare MCP tool calls are not valid)
80
80
  ```json
81
- {"contract":{"type":"mcp","mcp":{"tool_name":"forward","arguments":{"uri":"squadrules://adapter/<slug>"}},"required":true}}
81
+ {"contract":{"type":"forward","forward":{"target":"squadrules://adapter/<slug>"},"required":true}}
82
82
  ```
83
83
 
84
- The server validates that `solution.mcp.arguments` is a superset of the
85
- contract's `mcp.arguments` (subset/deep matching), proving the agent called
86
- `forward` with the correct target slug.
84
+ The server validates that the submitted `evidence.target` equals the contract's
85
+ `forward.target`, proving the agent called `forward` with the correct target
86
+ slug. Bare MCP tool calls belong in a `subagent.mcp` list (rung 3), never here.
87
87
 
88
88
  **user_input**
89
89
  ```json
90
90
  {"contract":{"type":"user_input","user_input":{"prompt":"<specific question>"},"required":true}}
91
91
  ```
92
92
 
93
- **subagent**
93
+ **subagent** (rung 2 — delegated judgment)
94
94
  ```json
95
- {"contract":{"type":"subagent","subagent":{"instruction":"<task description>"},"required":true}}
95
+ {"contract":{"type":"subagent","subagent":{"context":"<task description>"},"required":true}}
96
96
  ```
97
97
 
98
- Use `subagent` when a step delegates work to another agent (human or AI) rather
99
- than executing it directly. The `instruction` field provides task-specific
100
- guidance. Evidence of completion is collected via the anti-cheat evidence gate.
98
+ Use `subagent` when a step delegates work to another agent rather than executing
99
+ it directly. The `context` field provides task-specific guidance; the mandatory
100
+ delegation instruction is appended automatically. Proof is `evidence.report` —
101
+ the subagent's actual report, not your summary of it.
102
+
103
+ **subagent.mcp** (rung 3 — delegated MCP tool work; optional)
104
+ ```json
105
+ {"contract":{"type":"subagent","subagent":{"context":"Export all adapters and report slugs and versions","mcp":[{"tool_name":"export","arguments":{"all_adapters":true}}]},"required":true}}
106
+ ```
107
+
108
+ `subagent.mcp` names the real MCP tool calls the **subagent** must make. The tool
109
+ transcript stays in the subagent's context and never reaches yours; proof is
110
+ still `evidence.report`. Omit the field for rung-2 judgment work.
101
111
 
102
112
  **comment** (last resort — max 1 per adapter, closing ACK only)
103
113
  ```json
@@ -123,14 +133,14 @@ Every solution follows the same envelope:
123
133
  {"type":"shell","outcome":"success","evidence":{"exit_code":0,"stdout":"...","stderr":"","duration_seconds":1.2}}
124
134
  ```
125
135
 
126
- **mcp solution**
136
+ **forward solution**
127
137
  ```json
128
- {"type":"mcp","outcome":"success","evidence":{"tool_name":"forward","arguments":{"uri":"squadrules://adapter/critic-loop"},"response":{}}}
138
+ {"type":"forward","outcome":"success","evidence":{"target":"squadrules://adapter/critic-loop","success":true}}
129
139
  ```
130
140
 
131
141
  **subagent solution**
132
142
  ```json
133
- {"type":"subagent","outcome":"success","evidence":{"agent_id":"agent-uuid","artifacts":["path/to/output"],"summary":"Task completed"}}
143
+ {"type":"subagent","outcome":"success","evidence":{"report":"<the subagent's actual report>"}}
134
144
  ```
135
145
 
136
146
  **comment solution**
@@ -226,7 +236,7 @@ shell, then call `critic-loop` for adversarial review.
226
236
  specific adapter slug. Use when the adapter exceeds 350 lines or needs
227
237
  multi-path routing. Example:
228
238
  ```json
229
- {"contract":{"type":"mcp","mcp":{"tool_name":"forward","arguments":{"uri":"squadrules://adapter/implement-plan"}},"required":true}}
239
+ {"contract":{"type":"forward","forward":{"target":"squadrules://adapter/implement-plan"},"required":true}}
230
240
  ```
231
241
 
232
242
  ## Artifacts for Shell Contracts
@@ -255,6 +265,6 @@ The agent can now:
255
265
  2. match challenge type to the step's mode
256
266
  3. choose the right interpreter (bash, python3, node)
257
267
  4. apply working-directory and security rules
258
- 5. use forward-link mcp contracts for chain links
268
+ 5. use forward contracts for chain links
259
269
  6. use subagent contracts for delegated work
260
270
  7. apply stronger verification patterns instead of weak comment checks
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.12.0"
2
+ version: "5.13.0"
3
3
  slug: critic-loop-guide
4
4
  title: Critic Loop Integration and Mutation Gate Guide
5
5
  ---
@@ -121,13 +121,12 @@ it happens — for example, confirm you are on a throwaway worktree and branch (
121
121
  ## How to Chain Critic-Loop into an Adapter
122
122
 
123
123
  Use `forward` + slug to invoke `critic-loop` at phase boundaries. The standard
124
- pattern is a `mcp` contract that requires calling `forward` with the
125
- `critic-loop` slug:
124
+ pattern is a `forward` contract naming the `critic-loop` slug:
126
125
 
127
126
  ### After a planning phase
128
127
 
129
128
  ```json
130
- {"contract":{"type":"mcp","mcp":{"tool_name":"forward","arguments":{"uri":"squadrules://adapter/critic-loop"}},"required":true}}
129
+ {"contract":{"type":"forward","forward":{"target":"squadrules://adapter/critic-loop"},"required":true}}
131
130
  ```
132
131
 
133
132
  ### After an implementation phase
@@ -225,7 +224,7 @@ objective, machine-checkable contracts instead:
225
224
 
226
225
  ### Pre-mutation readiness (objective, no human prompt)
227
226
 
228
- Assert the preconditions with a shell or mcp contract so the action only runs from a
227
+ Assert the preconditions with a shell or forward contract so the action only runs from a
229
228
  valid state — never with a `user_input` "are you sure?" prompt:
230
229
 
231
230
  ```json
@@ -239,7 +238,7 @@ Use a `subagent` contract when the verification requires multi-step reasoning
239
238
  or tool orchestration beyond a single shell command:
240
239
 
241
240
  ```json
242
- {"contract":{"type":"subagent","subagent":{"instruction":"Verify the remote mutation took effect: read back the created/updated resource and confirm its state matches the intended outcome."},"required":true}}
241
+ {"contract":{"type":"subagent","subagent":{"context":"Verify the remote mutation took effect: read back the created/updated resource and confirm its state matches the intended outcome."},"required":true}}
243
242
  ```
244
243
 
245
244
  The guarantee comes from critic-loop (truth of intent) plus these objective
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.12.0"
2
+ version: "5.13.0"
3
3
  slug: critic-loop
4
4
  title: Critic Loop
5
5
  ---
@@ -158,7 +158,7 @@ never guessed at.
158
158
  **Output:** resolved work inventory for the audit
159
159
 
160
160
  ```json
161
- {"contract":{"type":"subagent","subagent":{"instruction":"Resolve the work submission into reviewable material: read the manifest, resolve each item by kind from work.root, and record the resolved inventory with per-item status."},"required":true}}
161
+ {"contract":{"type":"subagent","subagent":{"context":"Resolve the work submission into reviewable material: read the manifest, resolve each item by kind from work.root, and record the resolved inventory with per-item status."},"required":true}}
162
162
  ```
163
163
 
164
164
  ## Audit
@@ -219,7 +219,7 @@ Any `missing` item — or any `partial` high-risk item — forces FAIL with
219
219
  **Output:** structured audit findings for the verdict step
220
220
 
221
221
  ```json
222
- {"contract":{"type":"subagent","subagent":{"instruction":"Perform bounded adversarial audit: extract claims, investigate with scope discipline, gather evidence by priority hierarchy, produce claim verdicts, review phase boundary, and check requirement coverage."},"required":true}}
222
+ {"contract":{"type":"subagent","subagent":{"context":"Perform bounded adversarial audit: extract claims, investigate with scope discipline, gather evidence by priority hierarchy, produce claim verdicts, review phase boundary, and check requirement coverage."},"required":true}}
223
223
  ```
224
224
 
225
225
  ## Verdict
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.12.0"
2
+ version: "5.13.0"
3
3
  slug: protocol-linking-guide
4
4
  title: Adapter Linking Guide
5
5
  ---
@@ -125,21 +125,20 @@ call forward with squadrules://adapter/implement-terraform ...
125
125
  Slugs are globally unique (enforced by `train`), so resolution is
126
126
  deterministic — no scoring, no ambiguity.
127
127
 
128
- ## MCP forward-link contracts for chain links
128
+ ## Forward-link contracts for chain links
129
129
 
130
- All `mcp` contracts MUST be forward-links with `tool_name: "forward"` and
131
- `arguments.uri` pointing to the target adapter slug:
130
+ All `forward` contracts MUST set `forward.target` to the target adapter slug:
132
131
 
133
132
  ```json
134
- {"contract":{"type":"mcp","mcp":{"tool_name":"forward","arguments":{"uri":"squadrules://adapter/code-review-policy"}},"required":true}}
133
+ {"contract":{"type":"forward","forward":{"target":"squadrules://adapter/code-review-policy"},"required":true}}
135
134
  ```
136
135
 
137
- The server validates that `solution.mcp.arguments` is a superset of the
138
- contract's `mcp.arguments` (subset/deep matching). This proves the agent
139
- called `forward` with the correct slug, not just any `forward` call.
136
+ The server validates that the submitted `evidence.target` equals the contract's
137
+ `forward.target`. This proves the agent called `forward` with the correct slug,
138
+ not just any `forward` call.
140
139
 
141
- Bare `mcp` contracts that check only a tool name (without `arguments.uri`)
142
- are **not valid** — every mcp contract must specify the forward target.
140
+ A `forward` contract without `forward.target` is **not valid** — every forward
141
+ contract must specify its target adapter.
143
142
 
144
143
  ## Chain-root collapsing
145
144
 
@@ -181,7 +180,7 @@ and directing the agent to start from the chain root if those inputs are missing
181
180
  | Personal adapter (MCP database) | **Nothing** — must be self-contained | Only via `activate` (runtime discovery) |
182
181
 
183
182
  Personal adapters use `subagent` or `comment` contracts to describe what the
184
- agent should do next, not `mcp forward` contracts to other personal adapters.
183
+ agent should do next, not `forward` contracts to other personal adapters.
185
184
  A personal adapter that chains to `squadrules://adapter/some-personal-slug`
186
185
  will fail at runtime when that slug does not exist in the caller's MCP database.
187
186
 
@@ -197,7 +196,7 @@ The agent can now:
197
196
  1. decide when to use layers vs chains
198
197
  2. choose `activate` vs `forward` + slug correctly
199
198
  3. use slug-based linking for all adapters (system and user)
200
- 4. write valid mcp forward-link contracts with arguments
199
+ 4. write valid forward contracts with a target adapter URI
201
200
  5. implement `chain_root` collapsing with defense-in-depth safeguards
202
201
  6. document chaining back (`chain_root` + prerequisites) and chaining forward
203
202
  (`forward` with known slugs) for root + extension families
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.12.0"
2
+ version: "5.13.0"
3
3
  slug: refine-search
4
4
  title: Get help refining your search
5
5
  ---