@cubis/foundry 0.3.62 → 0.3.63

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.
@@ -33,7 +33,7 @@ Rules:
33
33
  2. Otherwise choose the best workflow by intent from `.agent/workflows` and use matching `.gemini/commands/*.toml` when available.
34
34
  3. For cross-domain tasks, use orchestrated delegation with `@orchestrator`.
35
35
  4. Keep one primary workflow; use others only as supporting references.
36
- 5. Before executing any workflow, check if a matching skill exists via `skill_search`; load with `skill_get` to prime context before the workflow runs (→ §5 MCP Skill Engine).
36
+ 5. Before loading any skill, inspect the repo/task locally first. Use MCP skill tools only when the user names a skill explicitly or local grounding still leaves the domain unclear (→ §5 MCP Skill Engine).
37
37
 
38
38
  ## 3) Request Classifier
39
39
 
@@ -72,9 +72,11 @@ Use the best specialist first:
72
72
 
73
73
  Before handing off to any specialist agent, prime context with the relevant domain skill (→ §5 MCP Skill Engine):
74
74
 
75
- 1. Run `skill_search <domain>` to find the best matching skill.
76
- 2. If a strong match exists, load it with `skill_get <id>` before delegating.
77
- 3. Include the loaded skill ID in the Decision Log for the routing decision.
75
+ 1. Validate user-named exact skills with `skill_validate <id>` before loading them.
76
+ 2. If the domain is still unclear after local grounding, run one narrow `skill_search <domain>` and then validate the chosen exact ID with `skill_validate <id>`.
77
+ 3. Load the core skill with `skill_get <id>` using `includeReferences:false` by default.
78
+ 4. Pull one sidecar markdown file at a time with `skill_get_reference` when the skill or task requires it.
79
+ 5. Include the validated skill ID in the Decision Log for the routing decision.
78
80
 
79
81
  This ensures the specialist starts with accurate domain knowledge, not just role intent.
80
82
 
@@ -86,33 +88,40 @@ The Foundry MCP server is the primary knowledge layer. Use tools decisively —
86
88
 
87
89
  | Prefix | Tools | When to use |
88
90
  | ----------- | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
89
- | `skill_*` | `skill_list_categories`, `skill_search`, `skill_browse_category`, `skill_get`, `skill_budget_report` | Domain expertise for any implementation, debug, or review task |
91
+ | `skill_*` | `skill_list_categories`, `skill_search`, `skill_validate`, `skill_browse_category`, `skill_get`, `skill_get_reference`, `skill_budget_report` | Domain expertise for implementation, debug, or review without loading the full catalog |
90
92
  | `postman_*` | `postman_get_mode`, `postman_set_mode`, `postman_get_status` | API testing or Postman configuration tasks |
91
93
  | `stitch_*` | `stitch_get_mode`, `stitch_set_profile`, `stitch_get_status` | Stitch data pipeline tasks |
92
94
 
93
- ### Discovery Flow (Mandatory Order)
95
+ ### Validated Skill Flow (Mandatory Order)
94
96
 
95
- Stop at the earliest step that gives enough signal. Do not jump ahead.
97
+ Stop at the earliest step that gives enough signal. Do not jump ahead or front-load skill discovery.
96
98
 
97
- 1. `skill_list_categories` run once per session if domain is unknown; see what exists
98
- 2. `skill_search <keyword>` fast keyword match across all skills; always try this first
99
- 3. `skill_browse_category <category>` explore if search is too broad or returns 0 results
100
- 4. `skill_get <id>` load full skill content; only when committed to using it
101
- 5. `skill_budget_report` verify token cost internally; do not emit budget details unless requested
99
+ 1. Inspect the codebase/task locally first; do not start with `skill_search`
100
+ 2. If the user names an exact skill ID, call `skill_validate <id>` directly
101
+ 3. Otherwise, if local grounding still leaves the domain unclear, run one narrow `skill_search <keyword>`
102
+ 4. Validate the selected exact skill ID with `skill_validate <id>` before any load
103
+ 5. Load only the core `SKILL.md` with `skill_get <id>` and `includeReferences:false`
104
+ 6. Load at most one sidecar markdown file at a time with `skill_get_reference <id> <path>`
105
+ 7. Use `skill_list_categories` or `skill_browse_category` only as fallback when targeted search fails
106
+ 8. Use `skill_budget_report` internally only when the user explicitly asks for context accounting
102
107
 
103
108
  ### Postman Intent Trigger (Required)
104
109
 
105
110
  When user intent includes Postman workflows (for example: workspace, collection, environment, runCollection, monitor, mock, or "run Postman tests"):
106
111
 
107
- 1. Run `skill_search "postman"` first.
108
- 2. If `postman` skill exists, load `skill_get "postman"` before workflow/agent routing.
109
- 3. Prefer Postman MCP tools (`postman.*`) over Newman/CLI fallback unless the user explicitly asks for fallback.
110
- 4. If `--postman` was installed but `postman` skill cannot be found, report installation drift and suggest reinstall with `cbx workflows install ... --postman`.
112
+ 1. Validate `postman` directly with `skill_validate "postman"` when the exact skill ID is known.
113
+ 2. If validation fails and local grounding is still insufficient, run a narrow `skill_search "postman"` and validate the selected exact ID.
114
+ 3. Load `skill_get "postman"` with `includeReferences:false` before workflow/agent routing.
115
+ 4. Prefer Postman MCP tools (`postman.*`) over Newman/CLI fallback unless the user explicitly asks for fallback.
116
+ 5. If `--postman` was installed but `postman` skill cannot be found, report installation drift and suggest reinstall with `cbx workflows install ... --postman`.
111
117
 
112
118
  **Hard rules:**
113
119
 
114
- - Never call `skill_get` without a prior `skill_search` or `skill_browse_category`
120
+ - Never call `skill_get` from fuzzy search output without first validating the exact ID via `skill_validate`
121
+ - Never skip local repo inspection and jump straight to `skill_search`
115
122
  - Never call `skill_get` with a workflow ID — `workflow-*` are routes, not skills; keep workflow mentions in the Decision Log
123
+ - Never call `skill_get` with `includeReferences:true` by default in agent workflows
124
+ - Never bulk-load sibling/reference markdown files when one targeted `skill_get_reference` will do
116
125
  - Never reload a skill already loaded this session — reuse content already in context
117
126
  - If `skill_search` returns 0 results, try `skill_browse_category`, then fall back to built-in knowledge
118
127
 
@@ -142,12 +151,23 @@ After `skill_get`, include at most one short line:
142
151
 
143
152
  Do not append budget tables or token summaries unless the user explicitly asks.
144
153
 
154
+ ### Reference Files (Required When Relevant)
155
+
156
+ Reference markdown files are first-class skill context, but they must be loaded selectively.
157
+
158
+ 1. Use `skill_validate` to see `availableReferences` for the exact skill
159
+ 2. Start with `skill_get(..., includeReferences:false)` to load only the core skill body
160
+ 3. If the skill points to a reference or the task clearly needs sidecar detail, load one file with `skill_get_reference`
161
+ 4. Only load another reference if the first one still leaves a concrete gap
162
+
145
163
 
146
164
  ### Anti-Patterns (Never Do These)
147
165
 
148
166
  - Loading skills speculatively "just in case" they might be useful
149
- - Calling `skill_get` before running `skill_search` or `skill_browse_category`
167
+ - Calling `skill_get` before `skill_validate`
150
168
  - Using partial or guessed skill IDs in `skill_get`
169
+ - Treating `skill_search` results as an implicit final selection
170
+ - Starting a task with `skill_list_categories` or broad catalog browsing
151
171
  - Publishing verbose budget fields (`full_catalog_est_tokens`, `loaded_est_tokens`, etc.) in responses
152
172
  - Re-emitting the ctx stamp multiple times within a single response
153
173
  - Treating workflow IDs as skill IDs in any MCP tool call
@@ -244,66 +264,25 @@ Selection policy:
244
264
  <!-- cbx:workflows:auto:end -->
245
265
 
246
266
  <!-- cbx:mcp:auto:start version=1 -->
247
- ## Cubis Foundry MCP Tool Catalog (auto-managed)
248
-
249
- The Foundry MCP server provides progressive-disclosure skill discovery and integration management tools.
250
-
251
- ### Skill Vault
252
-
253
- - **123** skills across **22** categories
254
- - Estimated full catalog: ~109,067 tokens
255
-
256
- Categories:
257
- - `ai`: 1 skill(s)
258
- - `api`: 3 skill(s)
259
- - `architecture`: 3 skill(s)
260
- - `backend`: 14 skill(s)
261
- - `data`: 4 skill(s)
262
- - `design`: 6 skill(s)
263
- - `devops`: 20 skill(s)
264
- - `documentation`: 3 skill(s)
265
- - `frontend`: 9 skill(s)
266
- - `game-dev`: 1 skill(s)
267
- - `general`: 26 skill(s)
268
- - `localization`: 1 skill(s)
269
- - `marketing`: 2 skill(s)
270
- - `mobile`: 7 skill(s)
271
- - `observability`: 1 skill(s)
272
- - `payments`: 1 skill(s)
273
- - `performance`: 2 skill(s)
274
- - `practices`: 5 skill(s)
275
- - `saas`: 1 skill(s)
276
- - `security`: 4 skill(s)
277
- - `testing`: 6 skill(s)
278
- - `tooling`: 3 skill(s)
279
-
280
- ### Built-in Tools
281
-
282
- **Skill Discovery:**
283
- - `skill_list_categories`: List all skill categories available in the vault. Returns category names and skill counts.
284
- - `skill_browse_category`: Browse skills within a specific category. Returns skill IDs and short descriptions.
285
- - `skill_search`: Search skills by keyword. Matches against skill IDs and descriptions.
286
- - `skill_get`: Get full content of a specific skill by ID. Returns SKILL.md content and referenced files.
287
- - `skill_budget_report`: Report estimated context/token budget for selected and loaded skills.
288
-
289
- **Postman Integration:**
290
- - `postman_get_mode`: Get current Postman MCP mode from cbx_config.
291
- - `postman_set_mode`: Set Postman MCP mode in cbx_config.
292
- - `postman_get_status`: Get Postman integration status and active profile.
293
-
294
- **Stitch Integration:**
295
- - `stitch_get_mode`: Get Stitch MCP mode from cbx_config.
296
- - `stitch_set_profile`: Switch active Stitch profile in cbx_config.
297
- - `stitch_get_status`: Get Stitch integration status and active profile.
298
-
299
- ### Skill Discovery Flow
300
-
301
- Use progressive disclosure to minimize context usage:
302
- 1. `skill_list_categories` → see available categories and counts
303
- 2. `skill_browse_category` → browse skills in a category with short descriptions
304
- 3. `skill_search` → search by keyword across all skills
305
- 4. `skill_get` → load full content of a specific skill (only tool that reads full content)
306
- 5. `skill_budget_report` → check token usage for selected/loaded skills; use result to emit the § Context Budget Tracking stamp
267
+ ## Cubis Foundry MCP (auto-managed)
268
+
269
+ Keep MCP context lazy and exact. Do not front-load the skill catalog.
270
+
271
+ ### Compact Tool Map
272
+
273
+ - Skill tools: `skill_search`, `skill_validate`, `skill_get`, `skill_get_reference`, `skill_budget_report`
274
+ - Fallback browsing only: `skill_list_categories`, `skill_browse_category`
275
+ - Config tools: `postman_*`, `stitch_*`
276
+
277
+ ### Validated Skill Flow
278
+
279
+ 1. Inspect the repo/task locally first. Do not start with `skill_search`.
280
+ 2. If the user names an exact skill, run `skill_validate` directly. Otherwise use one narrow `skill_search` only if local grounding still leaves the domain unclear.
281
+ 3. Always run `skill_validate` on the exact selected ID before `skill_get`.
282
+ 4. Call `skill_get` with `includeReferences:false` by default.
283
+ 5. Load at most one sidecar markdown file at a time with `skill_get_reference`.
284
+ 6. Use `skill_list_categories` or `skill_browse_category` only as fallback when targeted search fails.
285
+ 7. Never print catalog counts or budget details unless the user asks.
307
286
 
308
287
  ### Connection
309
288
 
@@ -27,7 +27,7 @@ Rules:
27
27
  Skills and workflows are the two primary execution layers. **Skills** deliver domain expertise via the Foundry MCP server (see §5 MCP Skill Engine). **Workflows** orchestrate task execution via slash commands. They work together — never in isolation.
28
28
 
29
29
  1. Codex operates primarily through **Skills** and **Rules**; the Foundry MCP server (`cbx-mcp`) is the delivery mechanism for all domain skills.
30
- 2. Before implementing any non-trivial task, run `skill_search` to check if a matching skill exists load it before writing a single line of code.
30
+ 2. Before loading any skill, inspect the repo/task locally first. Use MCP skill tools only when the user names a skill explicitly or local grounding still leaves the domain unclear.
31
31
  3. Complex multi-domain tasks: compose multiple skill loads within a single $workflow-orchestrate execution.
32
32
  4. Workflow and skill namespaces are distinct — never mix workflow IDs (`workflow-*`) with skill IDs in MCP calls.
33
33
 
@@ -69,9 +69,11 @@ Use the best specialist first:
69
69
 
70
70
  Before handing off to any specialist agent, prime context with the relevant domain skill (→ §5 MCP Skill Engine):
71
71
 
72
- 1. Run `skill_search <domain>` to find the best matching skill.
73
- 2. If a strong match exists, load it with `skill_get <id>` before delegating.
74
- 3. Include the loaded skill ID in the Decision Log for the routing decision.
72
+ 1. Validate user-named exact skills with `skill_validate <id>` before loading them.
73
+ 2. If the domain is still unclear after local grounding, run one narrow `skill_search <domain>` and then validate the chosen exact ID with `skill_validate <id>`.
74
+ 3. Load the core skill with `skill_get <id>` using `includeReferences:false` by default.
75
+ 4. Pull one sidecar markdown file at a time with `skill_get_reference` when the skill or task requires it.
76
+ 5. Include the validated skill ID in the Decision Log for the routing decision.
75
77
 
76
78
  This ensures the specialist starts with accurate domain knowledge, not just role intent.
77
79
 
@@ -83,34 +85,41 @@ The Foundry MCP server is the primary knowledge layer. Use tools decisively —
83
85
 
84
86
  | Prefix | Tools | When to use |
85
87
  | ----------- | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
86
- | `skill_*` | `skill_list_categories`, `skill_search`, `skill_browse_category`, `skill_get`, `skill_budget_report` | Domain expertise for any implementation, debug, or review task |
88
+ | `skill_*` | `skill_list_categories`, `skill_search`, `skill_validate`, `skill_browse_category`, `skill_get`, `skill_get_reference`, `skill_budget_report` | Domain expertise for implementation, debug, or review without loading the full catalog |
87
89
  | `postman_*` | `postman_get_mode`, `postman_set_mode`, `postman_get_status` | API testing or Postman configuration tasks |
88
90
  | `stitch_*` | `stitch_get_mode`, `stitch_set_profile`, `stitch_get_status` | Stitch data pipeline tasks |
89
91
 
90
- ### Discovery Flow (Mandatory Order)
92
+ ### Validated Skill Flow (Mandatory Order)
91
93
 
92
- Stop at the earliest step that gives enough signal. Do not jump ahead.
94
+ Stop at the earliest step that gives enough signal. Do not jump ahead or front-load skill discovery.
93
95
 
94
- 1. `skill_list_categories` run once per session if domain is unknown; see what exists
95
- 2. `skill_search <keyword>` fast keyword match across all skills; always try this first
96
- 3. `skill_browse_category <category>` explore if search is too broad or returns 0 results
97
- 4. `skill_get <id>` load full skill content; only when committed to using it
98
- 5. `skill_budget_report` verify token cost internally; do not emit budget details unless requested
96
+ 1. Inspect the codebase/task locally first; do not start with `skill_search`
97
+ 2. If the user names an exact skill ID, call `skill_validate <id>` directly
98
+ 3. Otherwise, if local grounding still leaves the domain unclear, run one narrow `skill_search <keyword>`
99
+ 4. Validate the selected exact skill ID with `skill_validate <id>` before any load
100
+ 5. Load only the core `SKILL.md` with `skill_get <id>` and `includeReferences:false`
101
+ 6. Load at most one sidecar markdown file at a time with `skill_get_reference <id> <path>`
102
+ 7. Use `skill_list_categories` or `skill_browse_category` only as fallback when targeted search fails
103
+ 8. Use `skill_budget_report` internally only when the user explicitly asks for context accounting
99
104
 
100
105
  ### Postman Intent Trigger (Required)
101
106
 
102
107
  When user intent includes Postman workflows (for example: workspace, collection, environment, runCollection, monitor, mock, or "run Postman tests"):
103
108
 
104
- 1. Run `skill_search "postman"` first.
105
- 2. If `postman` skill exists, load `skill_get "postman"` before workflow/agent routing.
106
- 3. Prefer Postman MCP tools (`postman.*`) over Newman/CLI fallback unless the user explicitly asks for fallback.
107
- 4. If `--postman` was installed but `postman` skill cannot be found, report installation drift and suggest reinstall with `cbx workflows install ... --postman`.
108
- 5. Do not default to raw Postman REST JSON payloads or curl for execution when Postman MCP tools are available.
109
+ 1. Validate `postman` directly with `skill_validate "postman"` when the exact skill ID is known.
110
+ 2. If validation fails and local grounding is still insufficient, run a narrow `skill_search "postman"` and validate the selected exact ID.
111
+ 3. Load `skill_get "postman"` with `includeReferences:false` before workflow/agent routing.
112
+ 4. Prefer Postman MCP tools (`postman.*`) over Newman/CLI fallback unless the user explicitly asks for fallback.
113
+ 5. If `--postman` was installed but `postman` skill cannot be found, report installation drift and suggest reinstall with `cbx workflows install ... --postman`.
114
+ 6. Do not default to raw Postman REST JSON payloads or curl for execution when Postman MCP tools are available.
109
115
 
110
116
  **Hard rules:**
111
117
 
112
- - Never call `skill_get` without a prior `skill_search` or `skill_browse_category`
118
+ - Never call `skill_get` from fuzzy search output without first validating the exact ID via `skill_validate`
119
+ - Never skip local repo inspection and jump straight to `skill_search`
113
120
  - Never call `skill_get` with a workflow ID — `workflow-*` are routes, not skills; keep workflow mentions in the Decision Log using raw $workflow-\* wrappers
121
+ - Never call `skill_get` with `includeReferences:true` by default in agent workflows
122
+ - Never bulk-load sibling/reference markdown files when one targeted `skill_get_reference` will do
114
123
  - Never reload a skill already loaded this session — reuse content already in context
115
124
  - If `skill_search` returns 0 results, try `skill_browse_category`, then fall back to built-in knowledge
116
125
 
@@ -140,12 +149,23 @@ After `skill_get`, include at most one short line:
140
149
 
141
150
  Do not append budget tables or token summaries unless the user explicitly asks.
142
151
 
152
+ ### Reference Files (Required When Relevant)
153
+
154
+ Reference markdown files are first-class skill context, but they must be loaded selectively.
155
+
156
+ 1. Use `skill_validate` to see `availableReferences` for the exact skill
157
+ 2. Start with `skill_get(..., includeReferences:false)` to load only the core skill body
158
+ 3. If the skill points to a reference or the task clearly needs sidecar detail, load one file with `skill_get_reference`
159
+ 4. Only load another reference if the first one still leaves a concrete gap
160
+
143
161
 
144
162
  ### Anti-Patterns (Never Do These)
145
163
 
146
164
  - Loading skills speculatively "just in case" they might be useful
147
- - Calling `skill_get` before running `skill_search` or `skill_browse_category`
165
+ - Calling `skill_get` before `skill_validate`
148
166
  - Using partial or guessed skill IDs in `skill_get`
167
+ - Treating `skill_search` results as an implicit final selection
168
+ - Starting a task with `skill_list_categories` or broad catalog browsing
149
169
  - Publishing verbose budget fields (`full_catalog_est_tokens`, `loaded_est_tokens`, etc.) in responses
150
170
  - Re-emitting the ctx stamp multiple times within a single response
151
171
  - Treating workflow IDs as skill IDs in any MCP tool call
@@ -237,66 +257,25 @@ Selection policy:
237
257
  <!-- cbx:workflows:auto:end -->
238
258
 
239
259
  <!-- cbx:mcp:auto:start version=1 -->
240
- ## Cubis Foundry MCP Tool Catalog (auto-managed)
241
-
242
- The Foundry MCP server provides progressive-disclosure skill discovery and integration management tools.
243
-
244
- ### Skill Vault
245
-
246
- - **123** skills across **22** categories
247
- - Estimated full catalog: ~109,067 tokens
248
-
249
- Categories:
250
- - `ai`: 1 skill(s)
251
- - `api`: 3 skill(s)
252
- - `architecture`: 3 skill(s)
253
- - `backend`: 14 skill(s)
254
- - `data`: 4 skill(s)
255
- - `design`: 6 skill(s)
256
- - `devops`: 20 skill(s)
257
- - `documentation`: 3 skill(s)
258
- - `frontend`: 9 skill(s)
259
- - `game-dev`: 1 skill(s)
260
- - `general`: 26 skill(s)
261
- - `localization`: 1 skill(s)
262
- - `marketing`: 2 skill(s)
263
- - `mobile`: 7 skill(s)
264
- - `observability`: 1 skill(s)
265
- - `payments`: 1 skill(s)
266
- - `performance`: 2 skill(s)
267
- - `practices`: 5 skill(s)
268
- - `saas`: 1 skill(s)
269
- - `security`: 4 skill(s)
270
- - `testing`: 6 skill(s)
271
- - `tooling`: 3 skill(s)
272
-
273
- ### Built-in Tools
274
-
275
- **Skill Discovery:**
276
- - `skill_list_categories`: List all skill categories available in the vault. Returns category names and skill counts.
277
- - `skill_browse_category`: Browse skills within a specific category. Returns skill IDs and short descriptions.
278
- - `skill_search`: Search skills by keyword. Matches against skill IDs and descriptions.
279
- - `skill_get`: Get full content of a specific skill by ID. Returns SKILL.md content and referenced files.
280
- - `skill_budget_report`: Report estimated context/token budget for selected and loaded skills.
281
-
282
- **Postman Integration:**
283
- - `postman_get_mode`: Get current Postman MCP mode from cbx_config.
284
- - `postman_set_mode`: Set Postman MCP mode in cbx_config.
285
- - `postman_get_status`: Get Postman integration status and active profile.
286
-
287
- **Stitch Integration:**
288
- - `stitch_get_mode`: Get Stitch MCP mode from cbx_config.
289
- - `stitch_set_profile`: Switch active Stitch profile in cbx_config.
290
- - `stitch_get_status`: Get Stitch integration status and active profile.
291
-
292
- ### Skill Discovery Flow
293
-
294
- Use progressive disclosure to minimize context usage:
295
- 1. `skill_list_categories` → see available categories and counts
296
- 2. `skill_browse_category` → browse skills in a category with short descriptions
297
- 3. `skill_search` → search by keyword across all skills
298
- 4. `skill_get` → load full content of a specific skill (only tool that reads full content)
299
- 5. `skill_budget_report` → check token usage for selected/loaded skills; use result to emit the § Context Budget Tracking stamp
260
+ ## Cubis Foundry MCP (auto-managed)
261
+
262
+ Keep MCP context lazy and exact. Do not front-load the skill catalog.
263
+
264
+ ### Compact Tool Map
265
+
266
+ - Skill tools: `skill_search`, `skill_validate`, `skill_get`, `skill_get_reference`, `skill_budget_report`
267
+ - Fallback browsing only: `skill_list_categories`, `skill_browse_category`
268
+ - Config tools: `postman_*`, `stitch_*`
269
+
270
+ ### Validated Skill Flow
271
+
272
+ 1. Inspect the repo/task locally first. Do not start with `skill_search`.
273
+ 2. If the user names an exact skill, run `skill_validate` directly. Otherwise use one narrow `skill_search` only if local grounding still leaves the domain unclear.
274
+ 3. Always run `skill_validate` on the exact selected ID before `skill_get`.
275
+ 4. Call `skill_get` with `includeReferences:false` by default.
276
+ 5. Load at most one sidecar markdown file at a time with `skill_get_reference`.
277
+ 6. Use `skill_list_categories` or `skill_browse_category` only as fallback when targeted search fails.
278
+ 7. Never print catalog counts or budget details unless the user asks.
300
279
 
301
280
  ### Connection
302
281
 
@@ -30,7 +30,7 @@ Rules:
30
30
  2. Otherwise choose the best workflow by intent from `.github/copilot/workflows` and reuse `.github/prompts/workflow-*.prompt.md` when available.
31
31
  3. For cross-domain tasks, use `/orchestrate` and `@orchestrator`.
32
32
  4. Keep one primary workflow; use others only as supporting references.
33
- 5. Before executing any workflow, check if a matching skill exists via `skill_search`; load with `skill_get` to prime context before the workflow runs (→ §6 MCP Skill Engine).
33
+ 5. Before loading any skill, inspect the repo/task locally first. Use MCP skill tools only when the user names a skill explicitly or local grounding still leaves the domain unclear (→ §6 MCP Skill Engine).
34
34
 
35
35
  ## 3) Request Classifier
36
36
 
@@ -69,9 +69,11 @@ Use the best specialist first:
69
69
 
70
70
  Before handing off to any specialist agent, prime context with the relevant domain skill (→ §6 MCP Skill Engine):
71
71
 
72
- 1. Run `skill_search <domain>` to find the best matching skill.
73
- 2. If a strong match exists, load it with `skill_get <id>` before delegating.
74
- 3. Include the loaded skill ID in the Decision Log for the routing decision.
72
+ 1. Validate user-named exact skills with `skill_validate <id>` before loading them.
73
+ 2. If the domain is still unclear after local grounding, run one narrow `skill_search <domain>` and then validate the chosen exact ID with `skill_validate <id>`.
74
+ 3. Load the core skill with `skill_get <id>` using `includeReferences:false` by default.
75
+ 4. Pull one sidecar markdown file at a time with `skill_get_reference` when the skill or task requires it.
76
+ 5. Include the validated skill ID in the Decision Log for the routing decision.
75
77
 
76
78
  This ensures the specialist starts with accurate domain knowledge, not just role intent.
77
79
 
@@ -91,33 +93,40 @@ The Foundry MCP server is the primary knowledge layer. Use tools decisively —
91
93
 
92
94
  | Prefix | Tools | When to use |
93
95
  | ----------- | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
94
- | `skill_*` | `skill_list_categories`, `skill_search`, `skill_browse_category`, `skill_get`, `skill_budget_report` | Domain expertise for any implementation, debug, or review task |
96
+ | `skill_*` | `skill_list_categories`, `skill_search`, `skill_validate`, `skill_browse_category`, `skill_get`, `skill_get_reference`, `skill_budget_report` | Domain expertise for implementation, debug, or review without loading the full catalog |
95
97
  | `postman_*` | `postman_get_mode`, `postman_set_mode`, `postman_get_status` | API testing or Postman configuration tasks |
96
98
  | `stitch_*` | `stitch_get_mode`, `stitch_set_profile`, `stitch_get_status` | Stitch data pipeline tasks |
97
99
 
98
- ### Discovery Flow (Mandatory Order)
100
+ ### Validated Skill Flow (Mandatory Order)
99
101
 
100
- Stop at the earliest step that gives enough signal. Do not jump ahead.
102
+ Stop at the earliest step that gives enough signal. Do not jump ahead or front-load skill discovery.
101
103
 
102
- 1. `skill_list_categories` run once per session if domain is unknown; see what exists
103
- 2. `skill_search <keyword>` fast keyword match across all skills; always try this first
104
- 3. `skill_browse_category <category>` explore if search is too broad or returns 0 results
105
- 4. `skill_get <id>` load full skill content; only when committed to using it
106
- 5. `skill_budget_report` verify token cost internally; do not emit budget details unless requested
104
+ 1. Inspect the codebase/task locally first; do not start with `skill_search`
105
+ 2. If the user names an exact skill ID, call `skill_validate <id>` directly
106
+ 3. Otherwise, if local grounding still leaves the domain unclear, run one narrow `skill_search <keyword>`
107
+ 4. Validate the selected exact skill ID with `skill_validate <id>` before any load
108
+ 5. Load only the core `SKILL.md` with `skill_get <id>` and `includeReferences:false`
109
+ 6. Load at most one sidecar markdown file at a time with `skill_get_reference <id> <path>`
110
+ 7. Use `skill_list_categories` or `skill_browse_category` only as fallback when targeted search fails
111
+ 8. Use `skill_budget_report` internally only when the user explicitly asks for context accounting
107
112
 
108
113
  ### Postman Intent Trigger (Required)
109
114
 
110
115
  When user intent includes Postman workflows (for example: workspace, collection, environment, runCollection, monitor, mock, or "run Postman tests"):
111
116
 
112
- 1. Run `skill_search "postman"` first.
113
- 2. If `postman` skill exists, load `skill_get "postman"` before workflow/agent routing.
114
- 3. Prefer Postman MCP tools (`postman.*`) over Newman/CLI fallback unless the user explicitly asks for fallback.
115
- 4. If `--postman` was installed but `postman` skill cannot be found, report installation drift and suggest reinstall with `cbx workflows install ... --postman`.
117
+ 1. Validate `postman` directly with `skill_validate "postman"` when the exact skill ID is known.
118
+ 2. If validation fails and local grounding is still insufficient, run a narrow `skill_search "postman"` and validate the selected exact ID.
119
+ 3. Load `skill_get "postman"` with `includeReferences:false` before workflow/agent routing.
120
+ 4. Prefer Postman MCP tools (`postman.*`) over Newman/CLI fallback unless the user explicitly asks for fallback.
121
+ 5. If `--postman` was installed but `postman` skill cannot be found, report installation drift and suggest reinstall with `cbx workflows install ... --postman`.
116
122
 
117
123
  **Hard rules:**
118
124
 
119
- - Never call `skill_get` without a prior `skill_search` or `skill_browse_category`
125
+ - Never call `skill_get` from fuzzy search output without first validating the exact ID via `skill_validate`
126
+ - Never skip local repo inspection and jump straight to `skill_search`
120
127
  - Never call `skill_get` with a workflow ID — `workflow-*` are routes, not skills; keep workflow mentions in workflow decisions (`/workflow`) and keep skill logs skill-only
128
+ - Never call `skill_get` with `includeReferences:true` by default in agent workflows
129
+ - Never bulk-load sibling/reference markdown files when one targeted `skill_get_reference` will do
121
130
  - Never reload a skill already loaded this session — reuse content already in context
122
131
  - If `skill_search` returns 0 results, try `skill_browse_category`, then fall back to built-in knowledge
123
132
 
@@ -147,12 +156,23 @@ After `skill_get`, include at most one short line:
147
156
 
148
157
  Do not append budget tables or token summaries unless the user explicitly asks.
149
158
 
159
+ ### Reference Files (Required When Relevant)
160
+
161
+ Reference markdown files are first-class skill context, but they must be loaded selectively.
162
+
163
+ 1. Use `skill_validate` to see `availableReferences` for the exact skill
164
+ 2. Start with `skill_get(..., includeReferences:false)` to load only the core skill body
165
+ 3. If the skill points to a reference or the task clearly needs sidecar detail, load one file with `skill_get_reference`
166
+ 4. Only load another reference if the first one still leaves a concrete gap
167
+
150
168
 
151
169
  ### Anti-Patterns (Never Do These)
152
170
 
153
171
  - Loading skills speculatively "just in case" they might be useful
154
- - Calling `skill_get` before running `skill_search` or `skill_browse_category`
172
+ - Calling `skill_get` before `skill_validate`
155
173
  - Using partial or guessed skill IDs in `skill_get`
174
+ - Treating `skill_search` results as an implicit final selection
175
+ - Starting a task with `skill_list_categories` or broad catalog browsing
156
176
  - Publishing verbose budget fields (`full_catalog_est_tokens`, `loaded_est_tokens`, etc.) in responses
157
177
  - Re-emitting the ctx stamp multiple times within a single response
158
178
  - Treating workflow IDs as skill IDs in any MCP tool call
@@ -244,66 +264,25 @@ Selection policy:
244
264
  <!-- cbx:workflows:auto:end -->
245
265
 
246
266
  <!-- cbx:mcp:auto:start version=1 -->
247
- ## Cubis Foundry MCP Tool Catalog (auto-managed)
248
-
249
- The Foundry MCP server provides progressive-disclosure skill discovery and integration management tools.
250
-
251
- ### Skill Vault
252
-
253
- - **123** skills across **22** categories
254
- - Estimated full catalog: ~109,067 tokens
255
-
256
- Categories:
257
- - `ai`: 1 skill(s)
258
- - `api`: 3 skill(s)
259
- - `architecture`: 3 skill(s)
260
- - `backend`: 14 skill(s)
261
- - `data`: 4 skill(s)
262
- - `design`: 6 skill(s)
263
- - `devops`: 20 skill(s)
264
- - `documentation`: 3 skill(s)
265
- - `frontend`: 9 skill(s)
266
- - `game-dev`: 1 skill(s)
267
- - `general`: 26 skill(s)
268
- - `localization`: 1 skill(s)
269
- - `marketing`: 2 skill(s)
270
- - `mobile`: 7 skill(s)
271
- - `observability`: 1 skill(s)
272
- - `payments`: 1 skill(s)
273
- - `performance`: 2 skill(s)
274
- - `practices`: 5 skill(s)
275
- - `saas`: 1 skill(s)
276
- - `security`: 4 skill(s)
277
- - `testing`: 6 skill(s)
278
- - `tooling`: 3 skill(s)
279
-
280
- ### Built-in Tools
281
-
282
- **Skill Discovery:**
283
- - `skill_list_categories`: List all skill categories available in the vault. Returns category names and skill counts.
284
- - `skill_browse_category`: Browse skills within a specific category. Returns skill IDs and short descriptions.
285
- - `skill_search`: Search skills by keyword. Matches against skill IDs and descriptions.
286
- - `skill_get`: Get full content of a specific skill by ID. Returns SKILL.md content and referenced files.
287
- - `skill_budget_report`: Report estimated context/token budget for selected and loaded skills.
288
-
289
- **Postman Integration:**
290
- - `postman_get_mode`: Get current Postman MCP mode from cbx_config.
291
- - `postman_set_mode`: Set Postman MCP mode in cbx_config.
292
- - `postman_get_status`: Get Postman integration status and active profile.
293
-
294
- **Stitch Integration:**
295
- - `stitch_get_mode`: Get Stitch MCP mode from cbx_config.
296
- - `stitch_set_profile`: Switch active Stitch profile in cbx_config.
297
- - `stitch_get_status`: Get Stitch integration status and active profile.
298
-
299
- ### Skill Discovery Flow
300
-
301
- Use progressive disclosure to minimize context usage:
302
- 1. `skill_list_categories` → see available categories and counts
303
- 2. `skill_browse_category` → browse skills in a category with short descriptions
304
- 3. `skill_search` → search by keyword across all skills
305
- 4. `skill_get` → load full content of a specific skill (only tool that reads full content)
306
- 5. `skill_budget_report` → check token usage for selected/loaded skills; use result to emit the § Context Budget Tracking stamp
267
+ ## Cubis Foundry MCP (auto-managed)
268
+
269
+ Keep MCP context lazy and exact. Do not front-load the skill catalog.
270
+
271
+ ### Compact Tool Map
272
+
273
+ - Skill tools: `skill_search`, `skill_validate`, `skill_get`, `skill_get_reference`, `skill_budget_report`
274
+ - Fallback browsing only: `skill_list_categories`, `skill_browse_category`
275
+ - Config tools: `postman_*`, `stitch_*`
276
+
277
+ ### Validated Skill Flow
278
+
279
+ 1. Inspect the repo/task locally first. Do not start with `skill_search`.
280
+ 2. If the user names an exact skill, run `skill_validate` directly. Otherwise use one narrow `skill_search` only if local grounding still leaves the domain unclear.
281
+ 3. Always run `skill_validate` on the exact selected ID before `skill_get`.
282
+ 4. Call `skill_get` with `includeReferences:false` by default.
283
+ 5. Load at most one sidecar markdown file at a time with `skill_get_reference`.
284
+ 6. Use `skill_list_categories` or `skill_browse_category` only as fallback when targeted search fails.
285
+ 7. Never print catalog counts or budget details unless the user asks.
307
286
 
308
287
  ### Connection
309
288