@shiftleftpt/sbd-toe-mcp 0.10.3 → 0.11.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 (47) hide show
  1. package/assets/agent-guide.md +33 -0
  2. package/consumed-bundle.json +8 -8
  3. package/data/entities/proportionality.json +2 -2
  4. package/data/entities/sdlc_integration.json +2 -2
  5. package/data/publish/indexes/canonical_chunks.jsonl +4903 -4903
  6. package/data/publish/indexes/publication_manifest.json +4 -4
  7. package/data/publish/ontology/sbdtoe-ontology.yaml +1699 -21
  8. package/data/publish/overlay/framework_overlay_index.json +121 -11
  9. package/data/publish/overlay/overlay_mappings.jsonl +935 -646
  10. package/data/publish/runtime/artifact_requirements.json +218 -311
  11. package/data/publish/runtime/artifacts.json +82 -55
  12. package/data/publish/runtime/controls.json +870 -311
  13. package/data/publish/runtime/deterministic_manifest.json +2 -2
  14. package/data/publish/runtime/evidence_patterns.json +162 -162
  15. package/data/publish/runtime/requirement_control_links.json +2271 -1708
  16. package/data/publish/runtime/v1/manual_threat_mitigation.jsonl +233 -233
  17. package/data/publish/runtime/v1/v1_manifest.json +6 -4
  18. package/data/reports/run_manifest.json +4 -4
  19. package/dist/index.js +107 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/serving/affordances.d.ts +1 -0
  22. package/dist/serving/affordances.js +12 -3
  23. package/dist/serving/affordances.js.map +1 -1
  24. package/dist/serving/selection.d.ts +56 -0
  25. package/dist/serving/selection.js +289 -0
  26. package/dist/serving/selection.js.map +1 -0
  27. package/dist/tools/consult-security-requirements.d.ts +7 -0
  28. package/dist/tools/consult-security-requirements.js +38 -0
  29. package/dist/tools/consult-security-requirements.js.map +1 -1
  30. package/dist/tools/generate-sbd-toe-skill.js +7 -2
  31. package/dist/tools/generate-sbd-toe-skill.js.map +1 -1
  32. package/dist/tools/get-threat-landscape.js +36 -13
  33. package/dist/tools/get-threat-landscape.js.map +1 -1
  34. package/dist/tools/map-review-scope.d.ts +6 -0
  35. package/dist/tools/map-review-scope.js +19 -0
  36. package/dist/tools/map-review-scope.js.map +1 -1
  37. package/dist/tools/ontology-loader.d.ts +8 -0
  38. package/dist/tools/ontology-loader.js +9 -0
  39. package/dist/tools/ontology-loader.js.map +1 -1
  40. package/dist/tools/prepare-codegen-context.d.ts +625 -5
  41. package/dist/tools/prepare-codegen-context.js +1185 -81
  42. package/dist/tools/prepare-codegen-context.js.map +1 -1
  43. package/dist/tools/select-requirements.d.ts +53 -0
  44. package/dist/tools/select-requirements.js +99 -0
  45. package/dist/tools/select-requirements.js.map +1 -0
  46. package/package.json +4 -3
  47. package/prompts/sbd-toe-grounded-codegen.md +10 -0
@@ -0,0 +1,56 @@
1
+ import { type ActivationResult, type ActivationTraceEntry, type NormalizedInput } from "../tools/prepare-codegen-context.js";
2
+ export type SelectionRiskLevel = "L1" | "L2" | "L3";
3
+ export interface SelectionTraceEntry {
4
+ layer: "baseline" | "domain_specific" | "agents_wave" | "named_rule";
5
+ source: ActivationTraceEntry["source"] | "context_chapter" | "agents_wave" | "named_rule";
6
+ trigger: string;
7
+ score: number;
8
+ reason: string;
9
+ }
10
+ export interface SelectedRequirement {
11
+ requirement_id: string;
12
+ name: string;
13
+ category: string;
14
+ type: string;
15
+ source_chapter: number;
16
+ selection_trace: SelectionTraceEntry[];
17
+ }
18
+ export interface NarrowedOutGroup {
19
+ category: string;
20
+ count: number;
21
+ requirement_ids: string[];
22
+ reason: string;
23
+ }
24
+ export interface ActivatedChapter {
25
+ chapter: string;
26
+ source: "changed_file" | "technology" | "concern" | "stack";
27
+ trigger: string;
28
+ }
29
+ export interface SelectionResult {
30
+ risk_level: SelectionRiskLevel;
31
+ eligible_count: number;
32
+ selected: SelectedRequirement[];
33
+ narrowed_out: NarrowedOutGroup[];
34
+ activated_chapters: ActivatedChapter[];
35
+ activated_categories: string[];
36
+ activation: ActivationResult;
37
+ input: NormalizedInput;
38
+ notes: string[];
39
+ }
40
+ export interface SelectionContextInput {
41
+ task?: string;
42
+ risk_level: SelectionRiskLevel;
43
+ stack?: string;
44
+ exposure?: string;
45
+ data_sensitivity?: string;
46
+ concerns?: string[];
47
+ changed_files?: string[];
48
+ technologies?: string[];
49
+ }
50
+ /**
51
+ * Run the MP1 selection. Deterministic; every inclusion carries a trace and every
52
+ * eligible exclusion is listed with a reason.
53
+ */
54
+ export declare function runSelection(context: SelectionContextInput): SelectionResult;
55
+ /** Variant for callers that already ran the activation engine (prepare). */
56
+ export declare function runSelectionWithActivation(input: NormalizedInput, activation: ActivationResult, technologies?: readonly string[]): SelectionResult;
@@ -0,0 +1,289 @@
1
+ /**
2
+ * selection — the MP1 selection operation (G-mp1a, O2; ciclo MP1 P2, 2026-08-31).
3
+ *
4
+ * Implements the reference semantics DECLARED by the published ontology
5
+ * (`requirement_selection_model`, sbdtoe-ontology v2.2, served since contract v1.14):
6
+ *
7
+ * selection = baseline(cap. 02, `type: base`, by risk level)
8
+ * ∪ domain_specific(chapters activated by CONTEXT)
9
+ * ⊕ overlay(extend — the `replace` operator awaits ADR 0014)
10
+ *
11
+ * followed by deterministic, DECLARED narrowing by the task over that eligible set.
12
+ * Two output bands, both listed (never-silent):
13
+ * - `selected[]` — requirement with a declared signal (selection_trace per item)
14
+ * - `narrowed_out[]` — eligible without a signal, grouped by category with reason.
15
+ *
16
+ * The engine consumes the activation machinery of prepare-codegen-context (one
17
+ * audited signal table for the whole serving layer — D4: the concern lexicon is ONE
18
+ * signal among task terms, compound phrases, changed_files, stack, exposure,
19
+ * data_sensitivity and explicit concerns) and the path→chapter knowledge of
20
+ * map_sbd_toe_review_scope. It never invents requirements and never consults a model.
21
+ */
22
+ import { getOntologyData } from "../tools/ontology-loader.js";
23
+ import { activate, categoriesForConcerns, normalizeInput } from "../tools/prepare-codegen-context.js";
24
+ import { bundlesForChangedFiles } from "../tools/map-review-scope.js";
25
+ /** Concern → the domain chapter(s) whose catalogue it activates (aligned with the
26
+ * ontology's `activation_examples` and the applicability model; audited table). */
27
+ const CONCERN_TO_DOMAIN_CHAPTERS = {
28
+ deployment: ["09-containers-imagens", "11-deploy-seguro"],
29
+ iac: ["08-iac-infraestrutura"],
30
+ build: ["07-cicd-seguro"],
31
+ release: ["11-deploy-seguro"],
32
+ supply_chain: ["05-dependencias-sbom-sca"],
33
+ testing: ["10-testes-seguranca"],
34
+ threat_modeling: ["03-threat-modeling"],
35
+ monitoring: ["12-monitorizacao-operacoes"],
36
+ architecture: ["04-arquitetura-segura"],
37
+ };
38
+ /** Technology vocabulary → chapters (mirrors map_sbd_toe_applicability). */
39
+ const TECHNOLOGY_TO_CHAPTERS = {
40
+ containers: ["08-iac-infraestrutura", "09-containers-imagens"],
41
+ kubernetes: ["08-iac-infraestrutura", "09-containers-imagens"],
42
+ iac: ["08-iac-infraestrutura"],
43
+ "ci-cd": ["07-cicd-seguro"],
44
+ "sca-sbom": ["05-dependencias-sbom-sca"],
45
+ sast: ["10-testes-seguranca"],
46
+ dast: ["10-testes-seguranca"],
47
+ monitoring: ["12-monitorizacao-operacoes"],
48
+ };
49
+ /**
50
+ * The agentic-governance wave: `agents` selects the domain-specific requirements
51
+ * whose published name/description carries the agentic vocabulary (mandate,
52
+ * autonomy, kill-switch, tool-call, AI agent). Deterministic lexical rule over
53
+ * published fields — declared per match, never a model call.
54
+ */
55
+ /**
56
+ * R1 (decisão pós-P2 do programme lead, 2026-08-31, GC-07): o concern `agents` activa,
57
+ * como regra NOMEADA e declarada no selection_trace, o conjunto "principal não-humano" —
58
+ * o agente é um principal (ARC-015: least privilege para agentes): {ACC-002 menor
59
+ * privilégio, AUT-006 credenciais em claro, ENC-006 segredos expostos} ∪ {DEP-011,
60
+ * DEP-013, DEP-014 — supply chain AI do cap. 05}.
61
+ */
62
+ const R1_RULE_ID = "R1:principal-nao-humano";
63
+ const R1_PRINCIPAL_SET = ["ACC-002", "AUT-006", "ENC-006", "DEP-011", "DEP-013", "DEP-014"];
64
+ /**
65
+ * R2 (decisão pós-P2 do programme lead, 2026-08-31, GC-02): SES-* resolve-se por
66
+ * narrowing de sinais — sem sinais de sessão/login/token DE UTILIZADOR na tarefa, a
67
+ * categoria SES sai para `narrowed_out` com razão declarada; com eles, fica. O
68
+ * `concernsMap` do loader (`auth → [AUT, ACC, SES]`) NÃO é alterado neste ciclo; a via
69
+ * de dados fica anotada para avaliação futura no loader.
70
+ */
71
+ const R2_RULE_ID = "R2:narrowing-de-sinais-SES";
72
+ const SESSION_SIGNAL_PATTERN = /sess[ãa]o|session|login|logout|sign.?in|\bjwt\b|cookie|token de utilizador|user token|refresh token|autentica[çc][ãa]o de utilizador|user authentication|utilizador(es)? autenticado/i;
73
+ const AGENTIC_WAVE_PATTERN = /\bagente|\bagent\b|agêntic|agentic|autonom|kill.?switch|mandate|tool.?call/i;
74
+ /** Chapters activated by the CONTEXT (changed files, technologies, stack, concerns). */
75
+ function activateChapters(input, technologies, activation) {
76
+ const out = [];
77
+ const seen = new Set();
78
+ const push = (chapter, source, trigger) => {
79
+ const key = `${chapter}`;
80
+ if (seen.has(key))
81
+ return;
82
+ seen.add(key);
83
+ out.push({ chapter, source, trigger });
84
+ };
85
+ const fileMap = bundlesForChangedFiles(input.changed_files);
86
+ for (const [file, bundles] of fileMap) {
87
+ for (const bundle of bundles)
88
+ push(bundle, "changed_file", file);
89
+ }
90
+ for (const tech of technologies) {
91
+ for (const chapter of TECHNOLOGY_TO_CHAPTERS[tech] ?? [])
92
+ push(chapter, "technology", tech);
93
+ }
94
+ const stackLower = (input.stack ?? "").toLowerCase();
95
+ for (const [token, chapters] of Object.entries(TECHNOLOGY_TO_CHAPTERS)) {
96
+ if (stackLower.includes(token))
97
+ for (const chapter of chapters)
98
+ push(chapter, "stack", token);
99
+ }
100
+ for (const concern of activation.concerns) {
101
+ for (const chapter of CONCERN_TO_DOMAIN_CHAPTERS[concern] ?? [])
102
+ push(chapter, "concern", concern);
103
+ }
104
+ return out;
105
+ }
106
+ /**
107
+ * Run the MP1 selection. Deterministic; every inclusion carries a trace and every
108
+ * eligible exclusion is listed with a reason.
109
+ */
110
+ export function runSelection(context) {
111
+ const input = normalizeInput({
112
+ task: context.task ?? "",
113
+ risk_level: context.risk_level,
114
+ ...(context.stack ? { stack: context.stack } : {}),
115
+ ...(context.exposure ? { exposure: context.exposure } : {}),
116
+ ...(context.data_sensitivity ? { data_sensitivity: context.data_sensitivity } : {}),
117
+ ...(context.concerns ? { concerns: context.concerns } : {}),
118
+ ...(context.changed_files ? { changed_files: context.changed_files } : {}),
119
+ });
120
+ const activation = activate(input);
121
+ return runSelectionWithActivation(input, activation, context.technologies ?? []);
122
+ }
123
+ /** Variant for callers that already ran the activation engine (prepare). */
124
+ export function runSelectionWithActivation(input, activation, technologies = []) {
125
+ const level = (input.risk_level ?? "L2");
126
+ const ontology = getOntologyData();
127
+ const atLevel = (r) => r.applicable_levels?.[level] === true;
128
+ const activatedChapters = activateChapters(input, technologies, activation);
129
+ const chapterSet = new Set(activatedChapters.map((c) => c.chapter));
130
+ const activatedCategories = categoriesForConcerns(activation.concerns);
131
+ const concernByCategory = new Map();
132
+ for (const entry of activation.trace) {
133
+ const produced = entry.produced;
134
+ for (const category of categoriesForConcerns([produced])) {
135
+ const existing = concernByCategory.get(category);
136
+ if (!existing || entry.score > existing.score)
137
+ concernByCategory.set(category, entry);
138
+ }
139
+ }
140
+ // Layer 1 — eligibility.
141
+ const baselineEligible = ontology.requirements.filter((r) => r.type === "base" && atLevel(r));
142
+ const domainEligible = ontology.requirements.filter((r) => r.type !== "base" && atLevel(r) && r.source_bundle !== undefined && chapterSet.has(r.source_bundle));
143
+ const agentsActive = activation.concerns.includes("agents");
144
+ const agentsWave = agentsActive
145
+ ? ontology.requirements.filter((r) => r.type !== "base" &&
146
+ atLevel(r) &&
147
+ !domainEligible.includes(r) &&
148
+ AGENTIC_WAVE_PATTERN.test(`${r.name} ${r.description ?? ""}`))
149
+ : [];
150
+ // Layer 2 — narrowing into the two declared bands.
151
+ const selected = [];
152
+ const narrowedByCategory = new Map();
153
+ const pushSelected = (r, trace) => {
154
+ selected.push({
155
+ requirement_id: r.requirement_id,
156
+ name: r.name,
157
+ category: r.category,
158
+ type: r.type,
159
+ source_chapter: r.source_chapter,
160
+ selection_trace: trace,
161
+ });
162
+ };
163
+ const sessionSignals = SESSION_SIGNAL_PATTERN.test(input.task ?? "");
164
+ let r2Applied = false;
165
+ for (const r of baselineEligible) {
166
+ const signal = concernByCategory.get(r.category);
167
+ if (r.category === "SES" && !sessionSignals && (signal || activatedCategories.has(r.category))) {
168
+ // R2: SES elegível com sinal de categoria (via auth) mas SEM sinal de sessão na tarefa.
169
+ r2Applied = true;
170
+ const list = narrowedByCategory.get(r.category) ?? [];
171
+ list.push(r.requirement_id);
172
+ narrowedByCategory.set(r.category, list);
173
+ continue;
174
+ }
175
+ if (signal || activatedCategories.has(r.category)) {
176
+ const entry = signal ?? {
177
+ source: "explicit_concern",
178
+ produced: r.category,
179
+ trigger: r.category,
180
+ score: 1,
181
+ confidence: "deterministic",
182
+ reason: "categoria activada",
183
+ };
184
+ pushSelected(r, [
185
+ {
186
+ layer: "baseline",
187
+ source: entry.source,
188
+ trigger: entry.trigger,
189
+ score: entry.score,
190
+ reason: `baseline cap. 02 (${level}); categoria ${r.category} com sinal: ${entry.reason}`,
191
+ },
192
+ ]);
193
+ }
194
+ else {
195
+ const list = narrowedByCategory.get(r.category) ?? [];
196
+ list.push(r.requirement_id);
197
+ narrowedByCategory.set(r.category, list);
198
+ }
199
+ }
200
+ for (const r of domainEligible) {
201
+ const via = activatedChapters.find((c) => c.chapter === r.source_bundle);
202
+ pushSelected(r, [
203
+ {
204
+ layer: "domain_specific",
205
+ source: via && via.source === "changed_file" ? "changed_file" : "context_chapter",
206
+ trigger: via?.trigger ?? r.source_bundle ?? "",
207
+ score: 0.9,
208
+ reason: `capítulo ${r.source_bundle} activado pelo contexto (${via?.source ?? "context"}: ${via?.trigger ?? ""})`,
209
+ },
210
+ ]);
211
+ }
212
+ for (const r of agentsWave) {
213
+ pushSelected(r, [
214
+ {
215
+ layer: "agents_wave",
216
+ source: "agents_wave",
217
+ trigger: "agents",
218
+ score: 0.85,
219
+ reason: "concern `agents`: requisito domain-specific da onda agêntica (nome/descrição publicados casam o vocabulário mandate/autonomia/kill-switch/tool-call)",
220
+ },
221
+ ]);
222
+ }
223
+ // R1 — named rule: the agent is a non-human principal.
224
+ let extraEligible = 0;
225
+ let r1Added = 0;
226
+ if (agentsActive) {
227
+ const already = new Set(selected.map((s) => s.requirement_id));
228
+ for (const rid of R1_PRINCIPAL_SET) {
229
+ if (already.has(rid))
230
+ continue;
231
+ const r = ontology.requirements.find((x) => x.requirement_id === rid);
232
+ if (!r || !atLevel(r))
233
+ continue;
234
+ pushSelected(r, [
235
+ {
236
+ layer: "named_rule",
237
+ source: "named_rule",
238
+ trigger: R1_RULE_ID,
239
+ score: 0.95,
240
+ reason: `regra nomeada ${R1_RULE_ID} (decisão pós-P2 2026-08-31): o agente é um principal não-humano (ARC-015 — least privilege para agentes); conjunto {ACC-002, AUT-006, ENC-006} ∪ {DEP-011, DEP-013, DEP-014}`,
241
+ },
242
+ ]);
243
+ r1Added += 1;
244
+ const parked = narrowedByCategory.get(r.category);
245
+ if (parked) {
246
+ const at = parked.indexOf(rid);
247
+ if (at >= 0)
248
+ parked.splice(at, 1);
249
+ if (parked.length === 0)
250
+ narrowedByCategory.delete(r.category);
251
+ }
252
+ if (!baselineEligible.includes(r) && !domainEligible.includes(r))
253
+ extraEligible += 1;
254
+ }
255
+ }
256
+ selected.sort((a, b) => a.requirement_id.localeCompare(b.requirement_id));
257
+ const narrowed_out = [...narrowedByCategory.entries()]
258
+ .sort(([a], [b]) => a.localeCompare(b))
259
+ .map(([category, ids]) => ({
260
+ category,
261
+ count: ids.length,
262
+ requirement_ids: ids.sort(),
263
+ reason: category === "SES" && r2Applied
264
+ ? `${R2_RULE_ID} (decisão pós-P2 2026-08-31): sem sinais de sessão/login/token de utilizador na tarefa, SES-* sai por narrowing declarado (o concernsMap do loader mantém auth → [AUT, ACC, SES]); com esses sinais na tarefa, fica`
265
+ : `elegível na baseline ${level} (cap. 02) sem sinal na tarefa/contexto — excluído pelo narrowing, nunca em silêncio`,
266
+ }));
267
+ const notes = [];
268
+ if (r1Added > 0) {
269
+ notes.push(`${R1_RULE_ID}: ${r1Added} requisitos do principal não-humano seleccionados por regra nomeada (decisão pós-P2 2026-08-31).`);
270
+ }
271
+ if (r2Applied) {
272
+ notes.push(`${R2_RULE_ID}: categoria SES excluída por narrowing de sinais — sem sinais de sessão/login/token de utilizador na tarefa.`);
273
+ }
274
+ if (agentsActive && agentsWave.length > 0) {
275
+ notes.push(`agents_wave: ${agentsWave.length} requisitos domain-specific seleccionados pelo vocabulário agêntico publicado.`);
276
+ }
277
+ return {
278
+ risk_level: level,
279
+ eligible_count: baselineEligible.length + domainEligible.length + agentsWave.length + extraEligible,
280
+ selected,
281
+ narrowed_out,
282
+ activated_chapters: activatedChapters,
283
+ activated_categories: [...new Set([...activatedCategories, ...selected.map((s) => s.category)])].sort(),
284
+ activation,
285
+ input,
286
+ notes,
287
+ };
288
+ }
289
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/serving/selection.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,11 @@ export interface McpProvenance {
85
85
  source_data: string;
86
86
  note: string;
87
87
  }
88
+ export interface ConsultRequirementsIndexEntry {
89
+ category: string;
90
+ count: number;
91
+ requirement_ids: string[];
92
+ }
88
93
  export interface ConsultSecurityRequirementsOutput {
89
94
  provenance: McpProvenance;
90
95
  risk_level: string;
@@ -95,6 +100,8 @@ export interface ConsultSecurityRequirementsOutput {
95
100
  artifacts: ArtifactSlim[];
96
101
  rule_trace: string[];
97
102
  coverage_gaps: ConsultCoverageGaps;
103
+ /** mode: "index" (opt-in, additive): per-category index replacing the full requirement bodies. */
104
+ index?: ConsultRequirementsIndexEntry[];
98
105
  meta: {
99
106
  requirementCount: number;
100
107
  controlCount: number;
@@ -220,6 +220,44 @@ export function _resolveConsultResult(args, ontologyData) {
220
220
  }
221
221
  export function handleConsultSecurityRequirements(args) {
222
222
  const full = _resolveConsultResult(args, getOntologyData());
223
+ // mode: "index" (G-mp1a decision 3, option (c)) — additive opt-in: same filters,
224
+ // same totals, but requirements come back as a per-category index (ids + counts)
225
+ // instead of the full bodies. Default behaviour is byte-unchanged (retro-compat);
226
+ // index-by-default stays flagged for a future major.
227
+ const modeArg = args["mode"];
228
+ const indexMode = modeArg === "index";
229
+ if (modeArg !== undefined && modeArg !== "index" && modeArg !== "full") {
230
+ throw Object.assign(new Error(`Invalid mode: "${String(modeArg)}". Allowed: full, index.`), {
231
+ rpcError: { code: -32602, message: `Invalid mode: "${String(modeArg)}"` }
232
+ });
233
+ }
234
+ if (indexMode) {
235
+ const byCategory = new Map();
236
+ for (const r of full.requirements) {
237
+ const list = byCategory.get(r.category) ?? [];
238
+ list.push(r.requirement_id);
239
+ byCategory.set(r.category, list);
240
+ }
241
+ return {
242
+ provenance: {
243
+ content_type: "derived",
244
+ produced_by: "deterministic_runtime_resolution",
245
+ source_data: "runtime/requirements.json (index projection)",
246
+ note: "mode=index: per-category requirement index (ids + counts) — same filters and totals as the full mode; fetch bodies with mode omitted or resolve_entities."
247
+ },
248
+ risk_level: full.risk_level,
249
+ active_categories: full.active_categories,
250
+ active_domains: full.active_domains,
251
+ requirements: [],
252
+ controls: [],
253
+ artifacts: [],
254
+ rule_trace: [...full.rule_trace, "MODE_INDEX: requirement bodies elided — per-category index returned (declared, not silent)"],
255
+ coverage_gaps: full.coverage_gaps,
256
+ index: [...byCategory.entries()].sort(([a], [b]) => a.localeCompare(b)).map(([category, ids]) => ({ category, count: ids.length, requirement_ids: ids.sort() })),
257
+ meta: { ...full.meta, note: `${full.meta.note} mode=index: controls/artifacts counts in meta; bodies via the default mode.` },
258
+ next: consultAffordances(full.risk_level, full.meta.concernsApplied ?? undefined)
259
+ };
260
+ }
223
261
  return {
224
262
  provenance: {
225
263
  content_type: "derived",
@@ -1 +1 @@
1
- {"version":3,"file":"consult-security-requirements.js","sourceRoot":"","sources":["../../src/tools/consult-security-requirements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consult-security-requirements.js","sourceRoot":"","sources":["../../src/tools/consult-security-requirements.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ const CLIENT_LOCAL_TOOLS = "Read, Write, Edit, Grep, Glob, Bash";
28
28
  const HARNESSED_MCP_TOOLS = [
29
29
  "mcp__sbd-toe__get_guide_by_role",
30
30
  "mcp__sbd-toe__consult_security_requirements",
31
+ "mcp__sbd-toe__select_sbd_toe_requirements",
31
32
  "mcp__sbd-toe__get_threat_landscape",
32
33
  "mcp__sbd-toe__query_sbd_toe_entities",
33
34
  "mcp__sbd-toe__resolve_entities",
@@ -114,10 +115,14 @@ function coverageOf(guide, totalChapters) {
114
115
  function renderCoverageBlock(canonicalRole, riskLevel, coverage, harnessed) {
115
116
  const pathToRest = harnessed
116
117
  ? `For the full Definition-of-Done call \`get_guide_by_role(risk_level="${riskLevel}", role="${canonicalRole}", include_detail=true)\`; ` +
117
- `for requirements use \`consult_security_requirements\`; for threats \`get_threat_landscape\`; ` +
118
+ `for *which requirements apply to a concrete task* use \`select_sbd_toe_requirements\` ` +
119
+ `(selected[] is the recommendation; narrowed_out[] lists what left and why — re-call with the missing signal to recover it); ` +
120
+ `for the catalogue at a level use \`consult_security_requirements\` (mode="index" for a compact id map); for threats \`get_threat_landscape\`; ` +
118
121
  `for the chapters outside your slice \`list_sbd_toe_chapters\` + \`get_sbd_toe_chapter_brief\`.`
119
122
  : `To reach beyond it, re-generate via the SbD-ToE MCP (\`generate_sbd_toe_skill\`) or consult the manual ` +
120
- `chapters listed by \`list_sbd_toe_chapters\` on a connected client.`;
123
+ `chapters listed by \`list_sbd_toe_chapters\` on a connected client — where ` +
124
+ `\`select_sbd_toe_requirements\` narrows the requirements to a concrete task ` +
125
+ `(selected[] recommendation + narrowed_out[] with reasons, never silent).`;
121
126
  return (`## Coverage (declared — nothing hidden)\n` +
122
127
  `This is the **${canonicalRole}** slice at **${riskLevel}**: ${coverage.assignments} assignments, ` +
123
128
  `${coverage.user_stories} user stories, ${coverage.checklist_items} checklist items across ` +
@@ -1 +1 @@
1
- {"version":3,"file":"generate-sbd-toe-skill.js","sourceRoot":"","sources":["../../src/tools/generate-sbd-toe-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-sbd-toe-skill.js","sourceRoot":"","sources":["../../src/tools/generate-sbd-toe-skill.ts"],"names":[],"mappings":"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"}