@event4u/agent-config 12.0.0 → 12.1.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +122 -0
- package/agents/templates/.ai-council.yml.example +46 -3
- package/dist/agent-src/contexts/model-recommendations.md +6 -4
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -0
- package/dist/agent-src/scripts/roadmap_gates.ts +30 -2
- package/dist/agent-src/scripts/update_roadmap_progress.ts +32 -1
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +7 -7
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +41 -3
- package/dist/cli/registry.js +1 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/chunk-K34QTSD5.js +3895 -0
- package/dist/cli-delegate/{chunk-L565YFXH.js → chunk-LKZ5DOYW.js} +557 -297
- package/dist/cli-delegate/{chunk-NN4KW4HZ.js → chunk-O52B4F5S.js} +123 -2338
- package/dist/cli-delegate/cmd_conformance.js +4 -4
- package/dist/cli-delegate/cmd_doctor.js +2 -2
- package/dist/cli-delegate/cmd_export.js +1 -1
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +1 -1
- package/dist/cli-delegate/cmd_uninstall.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +4 -4
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +2574 -1080
- package/dist/install/install.mjs +744 -482
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +113 -10
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/model_tier.js +9 -0
- package/dist/scripts/_lib/model_tier.js.map +1 -1
- package/dist/scripts/condense.js +50 -0
- package/dist/scripts/condense.js.map +1 -1
- package/docs/MIGRATION.md +20 -1
- package/package.json +1 -1
- package/src/agent-src/scripts/roadmap_gates.ts +30 -2
- package/src/agent-src/scripts/update_roadmap_progress.ts +32 -1
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +39 -9
- package/src/config/gate-violation-baselines.json +6 -0
- package/src/config/hook-token-budget.json +7 -1
- package/src/config/preamble-payload-budget.json +28 -0
- package/src/scripts/_dispatch.bash +10 -0
- package/src/scripts/_lib/git_common_dir.ts +173 -0
- package/src/scripts/_lib/model_tier.ts +9 -0
- package/src/scripts/_lib/release_highlights.ts +108 -7
- package/src/scripts/_lib/skill_catalogue.ts +862 -0
- package/src/scripts/ai_council/clients.ts +182 -3
- package/src/scripts/ai_council/config.ts +16 -1
- package/src/scripts/ai_council/low_impact.ts +14 -1
- package/src/scripts/ai_council/orchestrator.ts +14 -1
- package/src/scripts/ai_council/transport_resolver.ts +32 -2
- package/src/scripts/capture_skill_catalogue.ts +185 -328
- package/src/scripts/check_branch_freshness.ts +7 -1
- package/src/scripts/check_release_published.ts +6 -2
- package/src/scripts/check_release_trunk_sync.ts +18 -2
- package/src/scripts/condense.ts +50 -1
- package/src/scripts/dispatch_r2_reviewer.ts +15 -5
- package/src/scripts/evidence_report.ts +15 -4
- package/src/scripts/hook_manifest.yaml +47 -13
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/orchestration_record_hook.ts +21 -0
- package/src/scripts/hooks/tool_result_bytes_hook.ts +219 -0
- package/src/scripts/hot_context_hook.ts +13 -1
- package/src/scripts/install.ts +129 -0
- package/src/scripts/janitor.ts +77 -2
- package/src/scripts/lint_plan_risk_register.ts +22 -9
- package/src/scripts/lint_roadmap_blockers.ts +109 -6
- package/src/scripts/lint_scheduled_deprecations.ts +738 -0
- package/src/scripts/migration_status.ts +17 -1
- package/src/scripts/probe_review_binding_drift.ts +731 -0
- package/src/scripts/release.ts +95 -1
- package/src/scripts/schemas/command.schema.json +2 -2
- package/src/scripts/schemas/skill.schema.json +2 -1
- package/src/scripts/schemas/subagent.schema.json +2 -2
- package/src/scripts/session_eol_report.ts +81 -0
- package/src/scripts/workspace_doctor.ts +464 -0
- package/src/scripts/worktree_cleanup_check.ts +2 -1
- package/dist/cli-delegate/chunk-AYKQGIBG.js +0 -1594
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"artefact_count": 607,
|
|
4
4
|
"scanner_version": "de0a22b4ac4c"
|
|
5
5
|
},
|
|
6
|
-
"generated_at": "2026-08-
|
|
6
|
+
"generated_at": "2026-08-16",
|
|
7
7
|
"package": {
|
|
8
8
|
"description": "Governed skills, rules and commands for AI coding tools (Claude Code, Cursor, Windsurf, Copilot) \u2014 every claim machine-checked, including \"zero runtime daemon\".",
|
|
9
9
|
"homepage": "https://event4u-app.github.io/agent-config",
|
|
10
10
|
"name": "@event4u/agent-config",
|
|
11
11
|
"repository": "https://github.com/event4u-app/agent-config",
|
|
12
|
-
"version": "12.
|
|
12
|
+
"version": "12.1.0"
|
|
13
13
|
},
|
|
14
14
|
"registries": [
|
|
15
15
|
{
|
package/dist/mcp/server.json
CHANGED
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"transport": {
|
|
10
10
|
"type": "stdio"
|
|
11
11
|
},
|
|
12
|
-
"version": "12.
|
|
12
|
+
"version": "12.1.0"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"repository": {
|
|
16
16
|
"source": "github",
|
|
17
17
|
"url": "https://github.com/event4u-app/agent-config"
|
|
18
18
|
},
|
|
19
|
-
"version": "12.
|
|
19
|
+
"version": "12.1.0"
|
|
20
20
|
}
|
package/dist/mcp/server.mjs
CHANGED
|
@@ -18909,7 +18909,10 @@ function parse_blockers(raw_text) {
|
|
|
18909
18909
|
owner: _blockerField(body, "Owner") ?? "user",
|
|
18910
18910
|
blocks: _blockerField(body, "Blocks") ?? "(unspecified)",
|
|
18911
18911
|
todo: _blockerTodo(body),
|
|
18912
|
-
resolvedWhen: _blockerField(body, "Resolved when") ?? "(unspecified)"
|
|
18912
|
+
resolvedWhen: _blockerField(body, "Resolved when") ?? "(unspecified)",
|
|
18913
|
+
recommendation: _blockerField(body, "Recommendation") ?? "",
|
|
18914
|
+
ifNothing: _blockerField(body, "If you do nothing") ?? "",
|
|
18915
|
+
question: _blockerField(body, "Question") ?? ""
|
|
18913
18916
|
});
|
|
18914
18917
|
}
|
|
18915
18918
|
}
|
|
@@ -18935,7 +18938,10 @@ function parse_blockers(raw_text) {
|
|
|
18935
18938
|
owner: "user",
|
|
18936
18939
|
blocks: "entire roadmap",
|
|
18937
18940
|
todo: [parts.join(" ")],
|
|
18938
|
-
resolvedWhen: "condition described above clears"
|
|
18941
|
+
resolvedWhen: "condition described above clears",
|
|
18942
|
+
recommendation: "",
|
|
18943
|
+
ifNothing: "",
|
|
18944
|
+
question: ""
|
|
18939
18945
|
});
|
|
18940
18946
|
}
|
|
18941
18947
|
return blockers;
|
|
@@ -19207,6 +19213,12 @@ function render(roadmaps, bundles = null) {
|
|
|
19207
19213
|
lines.push("**Blockers**\n");
|
|
19208
19214
|
for (const b of openBlockers) {
|
|
19209
19215
|
lines.push(`- **${b.id}** (owner: ${b.owner}) \u2014 blocks ${b.blocks}`);
|
|
19216
|
+
if (b.recommendation) {
|
|
19217
|
+
lines.push(` - **Recommendation:** ${b.recommendation}`);
|
|
19218
|
+
}
|
|
19219
|
+
if (b.ifNothing) {
|
|
19220
|
+
lines.push(` - **If you do nothing:** ${b.ifNothing}`);
|
|
19221
|
+
}
|
|
19210
19222
|
lines.push(" - **What to do:**");
|
|
19211
19223
|
for (const step of b.todo) {
|
|
19212
19224
|
lines.push(` ${step}`);
|
|
@@ -19535,7 +19547,7 @@ var init_update_roadmap_progress = __esm({
|
|
|
19535
19547
|
BLOCKER_HEADING_RE = /^###[ \t]+blocker:[ \t]*(.+?)[ \t]*$/gim;
|
|
19536
19548
|
NEXT_H2_RE = /^##[ \t]+\S/m;
|
|
19537
19549
|
LEGACY_BLOCKED_UNTIL_RE = /^>[ \t]*Blocked until:?[ \t]*(.+)$/im;
|
|
19538
|
-
BLOCKER_FIELD_RE = /^-[ \t]*\*\*(Status|Owner|Blocks|Resolved when|What to do):\*\*/i;
|
|
19550
|
+
BLOCKER_FIELD_RE = /^-[ \t]*\*\*(Status|Owner|Blocks|Resolved when|What to do|Recommendation|If you do nothing|Question):\*\*/i;
|
|
19539
19551
|
ArgparseExit = class extends Error {
|
|
19540
19552
|
code;
|
|
19541
19553
|
constructor(code) {
|
|
@@ -25792,6 +25804,7 @@ __export(clients_exports, {
|
|
|
25792
25804
|
AnthropicCliClient: () => AnthropicCliClient,
|
|
25793
25805
|
AnthropicClient: () => AnthropicClient,
|
|
25794
25806
|
CLI_CALLS_FILENAME: () => CLI_CALLS_FILENAME,
|
|
25807
|
+
CODEX_MEASURED_UNSERVABLE: () => CODEX_MEASURED_UNSERVABLE,
|
|
25795
25808
|
CliClient: () => CliClient,
|
|
25796
25809
|
CliClientError: () => CliClientError,
|
|
25797
25810
|
CouncilResponse: () => CouncilResponse,
|
|
@@ -25813,6 +25826,7 @@ __export(clients_exports, {
|
|
|
25813
25826
|
KeyGateError: () => KeyGateError,
|
|
25814
25827
|
MANUAL_END_MARKER: () => MANUAL_END_MARKER,
|
|
25815
25828
|
ManualClient: () => ManualClient,
|
|
25829
|
+
OPENAI_CLI_VENDOR_DEFAULT: () => OPENAI_CLI_VENDOR_DEFAULT,
|
|
25816
25830
|
OPENAI_KEY_FILENAME: () => OPENAI_KEY_FILENAME,
|
|
25817
25831
|
OPENAI_KEY_PATH: () => OPENAI_KEY_PATH,
|
|
25818
25832
|
OpenAICliClient: () => OpenAICliClient,
|
|
@@ -26435,7 +26449,7 @@ function _defaultStdin() {
|
|
|
26435
26449
|
}
|
|
26436
26450
|
};
|
|
26437
26451
|
}
|
|
26438
|
-
var _modelCeilingMemo, ANTHROPIC_KEY_FILENAME, OPENAI_KEY_FILENAME, ANTHROPIC_KEY_PATH, OPENAI_KEY_PATH, DEFAULT_ANTHROPIC_MODEL, DEFAULT_OPENAI_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_XAI_MODEL, DEFAULT_PERPLEXITY_MODEL, DEFAULT_OPENAI_CLI_MODEL, DEFAULT_ANTHROPIC_CLI_MODEL, DEFAULT_GEMINI_CLI_MODEL, XAI_BASE_URL, PERPLEXITY_BASE_URL, DEFAULT_MAX_TOKENS, UNLIMITED_TOKENS_FALLBACK, _REASONING_PREFIXES, KeyGateError, CliClientError, DEFAULT_PROMPT_CACHE_TTL, CouncilResponse, _monotonicSource, ExternalAIClient, AnthropicClient, OpenAIClient, GeminiClient, _OpenAICompatibleClient, XAIClient, PerplexityClient, CLI_CALLS_FILENAME, DEFAULT_CLI_TIMEOUT_SECONDS, SubprocessError, CliClient, AnthropicCliClient, OpenAICliClient, GeminiCliClient, XAICliClient, PerplexityCliClient, MANUAL_END_MARKER, ManualClient, ValueError3, JSONDecodeError;
|
|
26452
|
+
var _modelCeilingMemo, ANTHROPIC_KEY_FILENAME, OPENAI_KEY_FILENAME, ANTHROPIC_KEY_PATH, OPENAI_KEY_PATH, DEFAULT_ANTHROPIC_MODEL, DEFAULT_OPENAI_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_XAI_MODEL, DEFAULT_PERPLEXITY_MODEL, OPENAI_CLI_VENDOR_DEFAULT, CODEX_MEASURED_UNSERVABLE, DEFAULT_OPENAI_CLI_MODEL, DEFAULT_ANTHROPIC_CLI_MODEL, DEFAULT_GEMINI_CLI_MODEL, XAI_BASE_URL, PERPLEXITY_BASE_URL, DEFAULT_MAX_TOKENS, UNLIMITED_TOKENS_FALLBACK, _REASONING_PREFIXES, KeyGateError, CliClientError, DEFAULT_PROMPT_CACHE_TTL, CouncilResponse, _monotonicSource, ExternalAIClient, AnthropicClient, OpenAIClient, GeminiClient, _OpenAICompatibleClient, XAIClient, PerplexityClient, CLI_CALLS_FILENAME, DEFAULT_CLI_TIMEOUT_SECONDS, SubprocessError, CliClient, AnthropicCliClient, OpenAICliClient, GeminiCliClient, XAICliClient, PerplexityCliClient, MANUAL_END_MARKER, ManualClient, ValueError3, JSONDecodeError;
|
|
26439
26453
|
var init_clients = __esm({
|
|
26440
26454
|
"src/scripts/ai_council/clients.ts"() {
|
|
26441
26455
|
"use strict";
|
|
@@ -26454,7 +26468,13 @@ var init_clients = __esm({
|
|
|
26454
26468
|
DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
|
|
26455
26469
|
DEFAULT_XAI_MODEL = "grok-4";
|
|
26456
26470
|
DEFAULT_PERPLEXITY_MODEL = "sonar-pro";
|
|
26457
|
-
|
|
26471
|
+
OPENAI_CLI_VENDOR_DEFAULT = "codex-default";
|
|
26472
|
+
CODEX_MEASURED_UNSERVABLE = /* @__PURE__ */ new Map([
|
|
26473
|
+
["gpt-4o", "2026-08-15"],
|
|
26474
|
+
["gpt-5", "2026-08-15"],
|
|
26475
|
+
["gpt-5.1-codex", "2026-08-15"]
|
|
26476
|
+
]);
|
|
26477
|
+
DEFAULT_OPENAI_CLI_MODEL = OPENAI_CLI_VENDOR_DEFAULT;
|
|
26458
26478
|
DEFAULT_ANTHROPIC_CLI_MODEL = "claude-sonnet-4-5";
|
|
26459
26479
|
DEFAULT_GEMINI_CLI_MODEL = "gemini-2.5-pro";
|
|
26460
26480
|
XAI_BASE_URL = "https://api.x.ai/v1";
|
|
@@ -26677,7 +26697,7 @@ var init_clients = __esm({
|
|
|
26677
26697
|
_client;
|
|
26678
26698
|
constructor(opts = {}) {
|
|
26679
26699
|
super();
|
|
26680
|
-
this.model = opts.model
|
|
26700
|
+
this.model = opts.model === void 0 || opts.model === OPENAI_CLI_VENDOR_DEFAULT ? DEFAULT_OPENAI_MODEL : opts.model;
|
|
26681
26701
|
if (opts.client !== void 0 && opts.client !== null) {
|
|
26682
26702
|
this._client = opts.client;
|
|
26683
26703
|
return;
|
|
@@ -26997,6 +27017,19 @@ ${user_prompt}`;
|
|
|
26997
27017
|
} catch {
|
|
26998
27018
|
}
|
|
26999
27019
|
}
|
|
27020
|
+
/**
|
|
27021
|
+
* Refuse a call this transport cannot serve, BEFORE spawning.
|
|
27022
|
+
*
|
|
27023
|
+
* `null` means "nothing known to be wrong" — deliberately not "verified
|
|
27024
|
+
* servable". No vendor CLI here publishes the set of models its
|
|
27025
|
+
* subscription tier accepts, so an allow-list would be invented and would
|
|
27026
|
+
* reject valid pins the day the vendor adds one. What CAN be stated is the
|
|
27027
|
+
* complement: models this estate has MEASURED being rejected. Subclasses
|
|
27028
|
+
* override; the base transport knows of none.
|
|
27029
|
+
*/
|
|
27030
|
+
_preflight_transport() {
|
|
27031
|
+
return null;
|
|
27032
|
+
}
|
|
27000
27033
|
/** Return text to send on stdin, or `null` to inherit caller's stdin. */
|
|
27001
27034
|
_stdin_payload(system_prompt, user_prompt) {
|
|
27002
27035
|
void system_prompt;
|
|
@@ -27123,6 +27156,17 @@ ${user_prompt}`;
|
|
|
27123
27156
|
});
|
|
27124
27157
|
}
|
|
27125
27158
|
}
|
|
27159
|
+
const preflight = this._preflight_transport();
|
|
27160
|
+
if (preflight !== null) {
|
|
27161
|
+
return new CouncilResponse({
|
|
27162
|
+
provider: this.name,
|
|
27163
|
+
model: this.model,
|
|
27164
|
+
text: "",
|
|
27165
|
+
latency_ms: _elapsedMs(t0),
|
|
27166
|
+
error: preflight.code,
|
|
27167
|
+
metadata: { cli: true, transport: this.transport, detail: preflight.detail }
|
|
27168
|
+
});
|
|
27169
|
+
}
|
|
27126
27170
|
const cmd = this._build_command(system_prompt, user_prompt, max_tokens);
|
|
27127
27171
|
const stdinPayload = this._stdin_payload(system_prompt, user_prompt);
|
|
27128
27172
|
let proc;
|
|
@@ -27354,7 +27398,23 @@ ${user_prompt}`;
|
|
|
27354
27398
|
void system_prompt;
|
|
27355
27399
|
void user_prompt;
|
|
27356
27400
|
void max_tokens;
|
|
27357
|
-
|
|
27401
|
+
const modelArgs = this.model === OPENAI_CLI_VENDOR_DEFAULT ? [] : ["--model", this.model];
|
|
27402
|
+
return [this.binary, "exec", "--json", "--skip-git-repo-check", ...modelArgs, "-"];
|
|
27403
|
+
}
|
|
27404
|
+
/**
|
|
27405
|
+
* Refuse a pin this estate has measured the transport rejecting.
|
|
27406
|
+
*
|
|
27407
|
+
* The remedy is named because it is not guessable: removing the `model:`
|
|
27408
|
+
* line is the fix, and "remove a setting" is the last thing an operator
|
|
27409
|
+
* tries when a member is silent.
|
|
27410
|
+
*/
|
|
27411
|
+
_preflight_transport() {
|
|
27412
|
+
const measuredOn = CODEX_MEASURED_UNSERVABLE.get(this.model);
|
|
27413
|
+
if (measuredOn === void 0) return null;
|
|
27414
|
+
return {
|
|
27415
|
+
code: "model_unsupported_on_transport",
|
|
27416
|
+
detail: `openai member pins model \`${this.model}\`, which the codex CLI (subscription transport) refused when measured on ${measuredOn}: "The '${this.model}' model is not supported when using Codex with a ChatGPT account." The CLI publishes no list of models it DOES accept, so there is no supported set to offer here \u2014 the one configuration measured to work is no pin at all. Fix: remove the \`model:\` line from the openai member (or set it to \`codex-default\`) to use the CLI's own default. A pinned model is only reachable on the API transport (\`api_key_ref:\` without \`mode: cli\`).`
|
|
27417
|
+
};
|
|
27358
27418
|
}
|
|
27359
27419
|
/**
|
|
27360
27420
|
* System and user prompt travel as ONE stdin payload, because `codex exec`
|
|
@@ -27376,6 +27436,7 @@ ${user_prompt}`;
|
|
|
27376
27436
|
let text = "";
|
|
27377
27437
|
let input_tokens = 0;
|
|
27378
27438
|
let output_tokens = 0;
|
|
27439
|
+
let failure = null;
|
|
27379
27440
|
const meta = {};
|
|
27380
27441
|
for (let line of _splitlines6(stdout)) {
|
|
27381
27442
|
line = line.trim();
|
|
@@ -27418,6 +27479,12 @@ ${user_prompt}`;
|
|
|
27418
27479
|
text = chunks.join("\n").trim();
|
|
27419
27480
|
}
|
|
27420
27481
|
}
|
|
27482
|
+
if (_dictGet(itemObj, "type", void 0) === "agent_message") {
|
|
27483
|
+
const flat = _pyStr3(_dictGet(itemObj, "text", "")).trim();
|
|
27484
|
+
if (flat) {
|
|
27485
|
+
text = flat;
|
|
27486
|
+
}
|
|
27487
|
+
}
|
|
27421
27488
|
if (_pyTruthy2(_dictGet(itemObj, "id", void 0))) {
|
|
27422
27489
|
meta["item_id"] = _pyStr3(itemObj["id"]);
|
|
27423
27490
|
}
|
|
@@ -27436,8 +27503,36 @@ ${user_prompt}`;
|
|
|
27436
27503
|
if (_pyTruthy2(_dictGet(ev, "session_id", void 0))) {
|
|
27437
27504
|
meta["session_id"] = _pyStr3(ev["session_id"]);
|
|
27438
27505
|
}
|
|
27506
|
+
} else if (event_type === "turn.failed") {
|
|
27507
|
+
let err = _dictGet(ev, "error", null);
|
|
27508
|
+
if (!_pyTruthy2(err)) err = {};
|
|
27509
|
+
if (_isPlainObject7(err)) {
|
|
27510
|
+
const raw = _pyStr3(_dictGet(err, "message", ""));
|
|
27511
|
+
if (raw) failure = raw;
|
|
27512
|
+
}
|
|
27439
27513
|
}
|
|
27440
27514
|
}
|
|
27515
|
+
if (failure !== null && !text) {
|
|
27516
|
+
const unsupported = /not supported when using Codex/i.test(failure);
|
|
27517
|
+
return new CouncilResponse({
|
|
27518
|
+
provider: this.name,
|
|
27519
|
+
model: this.model,
|
|
27520
|
+
text: "",
|
|
27521
|
+
input_tokens,
|
|
27522
|
+
output_tokens,
|
|
27523
|
+
error: unsupported ? "model_unsupported_on_transport" : "turn_failed",
|
|
27524
|
+
metadata: {
|
|
27525
|
+
...meta,
|
|
27526
|
+
// The vendor's own sentence, kept because it names the
|
|
27527
|
+
// model and the account type — the two facts an operator
|
|
27528
|
+
// needs and neither of which the error code carries.
|
|
27529
|
+
detail: failure.slice(0, 400),
|
|
27530
|
+
...unsupported ? {
|
|
27531
|
+
hint: "the codex subscription transport serves no explicitly pinned model measured so far \u2014 remove the `model:` line from the openai member to use the CLI default"
|
|
27532
|
+
} : {}
|
|
27533
|
+
}
|
|
27534
|
+
});
|
|
27535
|
+
}
|
|
27441
27536
|
return new CouncilResponse({
|
|
27442
27537
|
provider: this.name,
|
|
27443
27538
|
model: this.model,
|
|
@@ -28828,7 +28923,7 @@ function _build_member(name, cfg, default_mode = "auto", ignored = []) {
|
|
|
28828
28923
|
}
|
|
28829
28924
|
entries.push(entry);
|
|
28830
28925
|
}
|
|
28831
|
-
if (member_enabled && model && !entries.includes(model)) {
|
|
28926
|
+
if (member_enabled && model && model !== OPENAI_CLI_VENDOR_DEFAULT && !entries.includes(model)) {
|
|
28832
28927
|
throw new CouncilConfigError(
|
|
28833
28928
|
`members.${name}.model_ladder must include the active \`model\` (${_pyReprStr(model)}); got ${_pyRepr6(entries)}.`
|
|
28834
28929
|
);
|
|
@@ -29066,6 +29161,7 @@ var init_config = __esm({
|
|
|
29066
29161
|
"use strict";
|
|
29067
29162
|
import_yaml5 = __toESM(require_dist(), 1);
|
|
29068
29163
|
init_user_global_paths();
|
|
29164
|
+
init_clients();
|
|
29069
29165
|
init_quorum();
|
|
29070
29166
|
_VALID_PROVIDERS = /* @__PURE__ */ new Set([
|
|
29071
29167
|
"anthropic",
|
|
@@ -29716,6 +29812,9 @@ function classifyCliFailure(raw) {
|
|
|
29716
29812
|
if (s === "cli_unsupported" || s === "unsupported" || s === "parse_failed") {
|
|
29717
29813
|
return "cli_unsupported";
|
|
29718
29814
|
}
|
|
29815
|
+
if (s.startsWith("model_unservable") || s.includes("is not supported when using codex")) {
|
|
29816
|
+
return "model_unservable";
|
|
29817
|
+
}
|
|
29719
29818
|
if (s === "timeout") return "timeout";
|
|
29720
29819
|
if (s === "cli_quota_exhausted" || s === "quota_exhausted") return "quota_exhausted";
|
|
29721
29820
|
if (/^exit_5\d\d$/.test(s) || s === "server_error" || s === "os") return "server_error";
|
|
@@ -44353,7 +44452,8 @@ ${body}`);
|
|
|
44353
44452
|
function _render_quorum_line(q) {
|
|
44354
44453
|
const verdict = q.status === "concluded" ? "concluded" : "INCONCLUSIVE \u2014 release gate holds";
|
|
44355
44454
|
const solo = isSoloConcluded(q) ? " \xB7 **solo** \u2014 one voice concluded this pass" : "";
|
|
44356
|
-
|
|
44455
|
+
const degraded = q.present < q.total ? ` \u26A0\uFE0F DEGRADED \u2014 ${String(q.total - q.present)} member(s) did not answer; this is not convergence.` : "";
|
|
44456
|
+
return `**Quorum:** ${q.present}/${q.total} present, needed ${q.threshold} \u2014 ${verdict}.${solo}${degraded}`;
|
|
44357
44457
|
}
|
|
44358
44458
|
function _render_absent_members(absent) {
|
|
44359
44459
|
const lines = ["### Absent Members", ""];
|
|
@@ -45714,7 +45814,9 @@ function resolve_low_impact(question_text, plan, clients, price_table = null, no
|
|
|
45714
45814
|
const pinned = model_downgrade.model_tier_override?.[member.name];
|
|
45715
45815
|
const cheapest = member.model_ladder.length > 0 ? member.model_ladder[0] : null;
|
|
45716
45816
|
const target = pinned && pinned.length > 0 ? pinned : cheapest;
|
|
45717
|
-
|
|
45817
|
+
const unpinned = client.model === OPENAI_CLI_VENDOR_DEFAULT;
|
|
45818
|
+
const overrideWins = pinned !== void 0 && pinned.length > 0;
|
|
45819
|
+
if (target && target !== client.model && (!unpinned || overrideWins)) {
|
|
45718
45820
|
client.model = target;
|
|
45719
45821
|
}
|
|
45720
45822
|
}
|
|
@@ -46020,6 +46122,7 @@ var init_low_impact = __esm({
|
|
|
46020
46122
|
"src/scripts/ai_council/low_impact.ts"() {
|
|
46021
46123
|
"use strict";
|
|
46022
46124
|
init_value_ladder();
|
|
46125
|
+
init_clients();
|
|
46023
46126
|
init_orchestrator();
|
|
46024
46127
|
_INPUT_RATIO = 0.6;
|
|
46025
46128
|
FastPathPlan = class {
|
package/dist/router.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schema_version":2,"kernel":["agent-authority","ask-when-uncertain","commit-policy","direct-answers","language-and-tone","no-cheap-questions","non-destructive-by-default","scope-control","verify-before-complete"],"tier_1":[{"id":"architecture","triggers":[{"keyword":"controller"},{"keyword":"service"},{"keyword":"module"}],"routes_to":["skill:module-detect-on-the-fly"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"artifact-engagement-recording","triggers":[{"phrase":"/implement-ticket"},{"phrase":"/work"},{"keyword":"telemetry"}],"routes_to":["contract:artifact-engagement-flow"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"autonomous-execution","triggers":[{"keyword":"personal.autonomy"},{"phrase":"autonomy mode"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"command-suggestion-policy","triggers":[{"phrase":"free-form prompt"},{"phrase":"command suggestion"}],"routes_to":["contract:command-suggestion-flow"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"context-hygiene","triggers":[{"keyword":"3-failure"},{"phrase":"long conversation"}],"routes_to":["guideline:agent-infra/context-hygiene-mechanics"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"copilot-routing","triggers":[{"keyword":"copilot"},{"phrase":"copilot-instructions"},{"phrase":"copilot pr review"}],"routes_to":["skill:copilot-config"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"devcontainer-routing","triggers":[{"keyword":"devcontainer"},{"keyword":"codespaces"},{"keyword":"codespace"},{"phrase":"devcontainer.json"}],"routes_to":["skill:devcontainer"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"docker-commands","triggers":[{"keyword":"docker"},{"keyword":"artisan"},{"keyword":"composer"},{"phrase":"inside the container"}],"routes_to":["skill:docker"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"fast-path-marker-visibility","triggers":[{"keyword":"low-impact council"},{"keyword":"fast-path"},{"keyword":"Resolved via low-impact council"},{"keyword":"low_impact"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"laravel-routing","triggers":[{"keyword":"laravel"},{"keyword":"artisan"},{"keyword":"eloquent"},{"keyword":"FormRequest"}],"routes_to":["skill:laravel"],"workspaces":["engineering"],"packs":["laravel"]},{"id":"low-impact-corpus-privacy-floor","triggers":[{"path_prefix":"agents/decisions/low-impact-decisions"},{"keyword":"low-impact-decisions"},{"keyword":"low-impact corpus"},{"keyword":"learn-low-impact"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"no-attribution-footers","triggers":[{"keyword":"co-authored"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"no-decorative-emojis-in-git-surfaces","triggers":[{"keyword":"gh pr create"},{"keyword":"git commit"},{"keyword":"🤖"},{"keyword":"🚀"},{"keyword":"🎉"},{"keyword":"✨"},{"keyword":"🔥"},{"keyword":"💡"},{"keyword":"👍"},{"keyword":"❤️"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"no-roadmap-references","triggers":[{"path_prefix":"agents/roadmaps/"},{"path_prefix":"agents/runtime/council/questions/"},{"path_prefix":"agents/runtime/council/responses/"},{"path_prefix":"agents/runtime/council/sessions/"}],"routes_to":["skill:agent-docs-writing","skill:ai-council"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"onboarding-gate","triggers":[{"phrase":"first turn"},{"keyword":"onboarding"},{"path_prefix":".agent-settings.yml"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"php-coding","triggers":[{"file_pattern":"*.php"},{"keyword":"phpstan"},{"keyword":"ecs"}],"routes_to":["guideline:php/php-coding-patterns"],"workspaces":["engineering"],"packs":["php"]},{"id":"question-not-instruction","triggers":[{"phrase":"warum"},{"phrase":"wieso"},{"phrase":"weshalb"},{"keyword":"why"},{"phrase":"what do you think"},{"phrase":"was denkst du"},{"phrase":"was hältst du"},{"phrase":"geht das"},{"phrase":"kannst du"},{"phrase":"sollte ich"},{"phrase":"should i"},{"phrase":"is it possible"}],"routes_to":[],"workspaces":["engineering"],"packs":["meta"]},{"id":"roadmap-progress-sync","triggers":[{"path_prefix":"agents/roadmaps/"},{"command":"/roadmap:process-step"},{"command":"/roadmap:process-phase"},{"command":"/roadmap:process-full"}],"routes_to":["guideline:agent-infra/roadmap-progress-mechanics"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"skill-quality","triggers":[{"path_prefix":"src/skills/"}],"routes_to":["guideline:agent-infra/skill-quality-checklist"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"slash-command-routing-policy","triggers":[{"keyword":"/create-pr"},{"keyword":"/commit"},{"keyword":"/fix-ci"},{"phrase":"slash command"}],"routes_to":["skill:command-routing"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"source-confidentiality","triggers":[{"path_prefix":"src/skills/"},{"path_prefix":"src/rules/"},{"path_prefix":"src/domains/"},{"path_prefix":"docs/"},{"path_prefix":"agents/evidence/"},{"path_prefix":"agents/roadmaps/"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"source-of-truth","triggers":[{"path_prefix":"dist/agent-src/"},{"path_prefix":".augment/"},{"path_prefix":".claude/"},{"path_prefix":".cursor/"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"symfony-routing","triggers":[{"keyword":"symfony"},{"keyword":"doctrine"},{"keyword":"twig"},{"keyword":"messenger"}],"routes_to":["skill:symfony-workflow"],"workspaces":["engineering"],"packs":["symfony"]},{"id":"user-interaction","triggers":[{"keyword":"option"},{"keyword":"recommendation"},{"phrase":"what do you recommend"},{"phrase":"was empfiehlst du"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]}],"tier_2":[{"id":"active-remediation","triggers":[{"keyword":"refactor"},{"keyword":"duplicate"},{"keyword":"legacy"},{"keyword":"deprecated"},{"keyword":"modernize"},{"keyword":"upgrade"},{"keyword":"cleanup"},{"keyword":"technical debt"}],"routes_to":["guideline:agent-infra/active-remediation-mechanics"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"artifact-drafting-protocol","triggers":[{"phrase":"new skill"},{"phrase":"new rule"},{"phrase":"new command"},{"phrase":"new guideline"},{"phrase":"neue Regel"},{"phrase":"bau mir ein Skill"}],"routes_to":["guideline:agent-infra/artifact-drafting-protocol-mechanics"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"augment-edit-discipline","triggers":[{"path_prefix":".augment/"},{"path_prefix":"src/"},{"keyword":"portable"},{"keyword":"rename"},{"keyword":"delete"}],"routes_to":["guideline:augment-portability-patterns","skill:agent-docs-writing"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"brand-source-of-truth","triggers":[{"keyword":"brand"},{"keyword":"on-brand"},{"keyword":"off-brand"},{"keyword":"brand tokens"},{"keyword":"brand voice"},{"keyword":"brand guide"},{"keyword":"brand profile"},{"phrase":"brand consistency"},{"phrase":"on brand"},{"phrase":"brand source of truth"}],"routes_to":[],"workspaces":["engineering"],"packs":["brand"]},{"id":"broken-access-control","triggers":[{"keyword":"endpoint"},{"keyword":"route"},{"keyword":"authorization"},{"keyword":"tenant"},{"keyword":"IDOR"},{"keyword":"session"},{"keyword":"login"},{"keyword":"controller"},{"keyword":"findById"}],"routes_to":["skill:authz-review","skill:multi-tenancy","skill:threat-modeling"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"cli-output-handling","triggers":[{"keyword":"git"},{"keyword":"phpstan"},{"keyword":"rector"},{"keyword":"phpunit"},{"keyword":"composer"},{"keyword":"npm"},{"keyword":"pnpm"},{"keyword":"yarn"},{"keyword":"eslint"},{"keyword":"tsc"},{"keyword":"vitest"},{"keyword":"jest"},{"keyword":"pytest"},{"keyword":"ruff"},{"keyword":"mypy"},{"keyword":"pyright"},{"keyword":"cargo"},{"keyword":"golangci-lint"},{"keyword":"docker"},{"keyword":"kubectl"},{"keyword":"terraform"},{"phrase":"go test"},{"phrase":"go build"}],"routes_to":["skill:rtk-output-filtering"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"code-comment-discipline","triggers":[{"keyword":"comment"},{"keyword":"docblock"},{"keyword":"phpdoc"},{"keyword":"jsdoc"},{"keyword":"docstring"},{"keyword":"implement"},{"keyword":"class"},{"keyword":"method"},{"keyword":"refactor"}],"routes_to":["guideline:code-clarity"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"code-provenance","triggers":[{"keyword":"port this"},{"keyword":"adapt this"},{"keyword":"based on this repo"},{"keyword":"similar implementation"},{"keyword":"found this on GitHub"},{"keyword":"borrow"},{"keyword":"vendored"},{"keyword":"reference implementation"},{"keyword":"harvest"},{"keyword":"adopt from"}],"routes_to":["skill:license-compliance-audit","skill:license-compliance-borrow-check","skill:license-compliance-credits"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"commit-conventions","triggers":[{"keyword":"commit"},{"keyword":"branch"},{"phrase":"conventional commits"}],"routes_to":["skill:conventional-commits-writing"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"communication-through-line","triggers":[{"phrase":"reporting progress"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"content-quoting-floor","triggers":[{"keyword":"quote"},{"keyword":"excerpt"},{"keyword":"verbatim"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"council-availability","triggers":[{"keyword":"council"},{"keyword":"ai council"},{"keyword":"ai-council"},{"keyword":"council:status"},{"keyword":"second opinion"},{"phrase":"cross-check with another model"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"cross-source-consistency","triggers":[{"keyword":"ticket"},{"keyword":"refine"},{"keyword":"acceptance criteria"},{"keyword":"mockup"},{"keyword":"screenshot"},{"keyword":"attachment"},{"keyword":"roadmap"},{"keyword":"estimate"},{"phrase":"plan this ticket"},{"phrase":"refine this ticket"},{"phrase":"is this ticket clear"},{"phrase":"implement the ticket"}],"routes_to":["guideline:agent-infra/cross-source-consistency-mechanics"],"workspaces":["engineering","product"],"packs":["engineering-base","product-basic"]},{"id":"decision-revisit-gate","triggers":[{"keyword":"don't relitigate"},{"keyword":"honest null"},{"keyword":"already decided"},{"keyword":"locked decision"},{"keyword":"budget blocks"}],"routes_to":["skill:decision-review"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"delegation-policy","triggers":[{"keyword":"delegate"},{"keyword":"orchestrate"},{"keyword":"subagent"},{"keyword":"parallel"},{"phrase":"review these"},{"phrase":"analyze the codebase"},{"phrase":"for each"},{"keyword":"analyse"},{"keyword":"analyze"}],"routes_to":["skill:subagent-orchestration"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"design-fidelity","triggers":[{"keyword":"prototype"},{"keyword":"mockup"},{"keyword":"wireframe"},{"keyword":"design system"},{"keyword":"design spec"},{"keyword":"Figma"},{"keyword":"handoff"},{"keyword":"Claude Design"},{"phrase":"match the design"},{"phrase":"build this design"},{"phrase":"design fidelity"},{"phrase":"stick to the design"},{"phrase":"design.html"},{"phrase":"attached artifact"},{"phrase":"provided artifact"},{"phrase":"übernimm das design"},{"phrase":"baue das nach"},{"phrase":"bau das nach"},{"phrase":"1:1 um"},{"phrase":"1:1 nach"},{"phrase":"claude.site/artifacts"},{"file_pattern":"*design.html"},{"path_prefix":".claude/design-system/"}],"routes_to":["guideline:design-fidelity-mechanics"],"workspaces":["engineering"],"packs":["engineering-base","frontend-design"]},{"id":"design-review-after-ui-write","triggers":[{"path_prefix":"resources/views/"},{"path_prefix":"resources/js/"},{"path_prefix":"components/"},{"path_prefix":"src/components/"},{"path_prefix":"pages/"},{"file_pattern":"*.vue"},{"file_pattern":"*.svelte"},{"file_pattern":"*.tsx"},{"file_pattern":"*.jsx"},{"file_pattern":"*.blade.php"},{"keyword":"component"},{"keyword":"design token"}],"routes_to":["skill:accessibility-auditor","skill:design-review"],"workspaces":["agent-config-maintainer","engineering"],"packs":["frontend-design"]},{"id":"doc-screenshot-hygiene","triggers":[{"keyword":"screenshot"},{"keyword":"screenshots"},{"keyword":"screen capture"},{"keyword":"screen grab"},{"keyword":"admin panel screenshot"},{"keyword":"dashboard screenshot"},{"keyword":"docs site"},{"keyword":"Starlight"},{"phrase":"add a screenshot"},{"phrase":"screenshot for the docs"},{"phrase":"screenshot in the readme"},{"phrase":"embed an image in the docs"},{"phrase":"put a screenshot"},{"phrase":"generate a docs site"},{"phrase":"capture the ui"},{"path_prefix":"docs/media/"}],"routes_to":["skill:screenshot-hygiene"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"domain-adoption-policy","triggers":[{"keyword":"mobile track"},{"keyword":"ml track"},{"keyword":"blockchain track"},{"path_prefix":"src/skills/"}],"routes_to":["guideline:agent-infra/domain-adoption-gates"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"domain-safety-disclaimer","triggers":[{"keyword":"legal brief"},{"keyword":"contract redline"},{"keyword":"terms of service"},{"keyword":"privacy policy"},{"keyword":"diagnosis"},{"keyword":"symptoms"},{"keyword":"dosage"},{"keyword":"medication"},{"keyword":"investment memo"},{"keyword":"tax position"},{"keyword":"strategic recommendation"},{"keyword":"board memo"},{"keyword":"executive summary"},{"phrase":"review this contract"},{"phrase":"is this symptom"},{"phrase":"should I invest"},{"phrase":"what should we do"}],"routes_to":["skill:brand-identity","skill:brand-strategy","skill:contracts-cognition","skill:dcf-modeling","skill:decision-record","skill:privacy-review","skill:scenario-modeling","skill:stakeholder-tradeoff"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"domain-safety-pii","triggers":[{"keyword":"support macro"},{"keyword":"ticket response"},{"keyword":"help desk"},{"keyword":"Zendesk"},{"keyword":"Intercom"},{"keyword":"testimonial"},{"keyword":"case study"},{"keyword":"customer story"},{"keyword":"candidate"},{"keyword":"interview notes"},{"keyword":"scorecard"},{"keyword":"rejection email"},{"keyword":"offer letter"},{"keyword":"invoice"},{"keyword":"accounts receivable"},{"keyword":"accounts payable"},{"keyword":"finance memo"},{"keyword":"log"},{"keyword":"logger"},{"keyword":"Sentry"},{"keyword":"Datadog"},{"keyword":"structured log"},{"keyword":"export to CSV"},{"keyword":"data export"},{"keyword":"partner integration"},{"phrase":"draft a response to"},{"phrase":"marketing email featuring"},{"phrase":"draft feedback for"},{"phrase":"log the user"},{"phrase":"send them the spreadsheet"}],"routes_to":["skill:data-handling-judgment","skill:logging-monitoring","skill:privacy-review","skill:secrets-management"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"domain-safety-retention","triggers":[{"keyword":"retention policy"},{"keyword":"data retention"},{"keyword":"record retention"},{"keyword":"ticket retention"},{"keyword":"CRM retention"},{"keyword":"delete financial"},{"keyword":"purge invoice"},{"keyword":"DSAR"},{"keyword":"data subject request"},{"keyword":"right to be forgotten"},{"phrase":"how long should we keep"},{"phrase":"when can we delete"},{"phrase":"delete customer data"},{"phrase":"how long do we keep tickets"}],"routes_to":["skill:data-handling-judgment","skill:privacy-review"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"downstream-changes","triggers":[{"keyword":"callers"},{"keyword":"imports"},{"keyword":"downstream"},{"phrase":"api changed"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"engineering-safety-floor","triggers":[{"keyword":"production"},{"keyword":"deploy"},{"keyword":"migration"},{"keyword":"schema change"},{"keyword":"DROP TABLE"},{"keyword":"TRUNCATE"},{"keyword":"force push"},{"keyword":"rebase main"},{"keyword":"rollback"},{"keyword":"secrets rotation"},{"keyword":"IAM"},{"keyword":"DNS"},{"keyword":"terraform apply"},{"keyword":"kubectl apply"},{"phrase":"ship to prod"},{"phrase":"deploy to production"},{"phrase":"merge to main"},{"phrase":"release this"}],"routes_to":["skill:launch-readiness","skill:threat-modeling"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"evaluator-independence","triggers":[{"keyword":"blind review"},{"keyword":"blind pass"},{"keyword":"honest null"},{"keyword":"no-findings"},{"keyword":"adversarial review"},{"keyword":"judge"},{"phrase":"review my own"},{"phrase":"commission a review"},{"phrase":"second opinion on my"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"external-code-graph-interop","triggers":[{"keyword":"scip"},{"keyword":"code-graph"},{"keyword":"code graph"},{"phrase":"graph.json"},{"phrase":"who calls"},{"phrase":"call graph"},{"phrase":"find references"},{"phrase":"where is this used"}],"routes_to":[],"workspaces":["engineering"],"packs":["meta"]},{"id":"external-reference-deep-dive","triggers":[{"keyword":"github.com/"},{"keyword":"source of truth"},{"phrase":"reference repo"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"finance-safety-floor","triggers":[{"keyword":"runway"},{"keyword":"burn"},{"keyword":"valuation"},{"keyword":"DCF"},{"keyword":"IRR"},{"keyword":"MOIC"},{"keyword":"LTV"},{"keyword":"payback"},{"keyword":"sensitivity"},{"keyword":"fundraise"},{"keyword":"term sheet"},{"keyword":"dilution"},{"keyword":"NRR"},{"keyword":"EBITDA"},{"keyword":"free cash flow"},{"phrase":"what's it worth"},{"phrase":"how long do we have"},{"phrase":"should we raise"},{"phrase":"model the scenarios"}],"routes_to":["skill:dcf-modeling","skill:forecasting","skill:runway-cognition","skill:scenario-modeling","skill:unit-economics-modeling"],"workspaces":["finance"],"packs":["finance-advanced","finance-basic"]},{"id":"framework-neutrality-in-generic-skills","triggers":[{"path_prefix":"src/skills/"},{"path_prefix":"src/rules/"},{"path_prefix":"src/agent-src/commands/"},{"keyword":"FormRequest"},{"keyword":"PHPStan"},{"keyword":"php artisan"},{"keyword":"composer.json"},{"keyword":"Eloquent"},{"keyword":"Pest"},{"keyword":"Blade"},{"keyword":"vendor/bin"},{"keyword":"Artisan"},{"keyword":"Rector"},{"phrase":"every controller"},{"phrase":"all controllers"},{"phrase":"generic skill"}],"routes_to":["guideline:agent-infra/framework-neutrality-patterns"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"git-history-discipline","triggers":[{"keyword":"git rebase"},{"keyword":"rebase --onto"},{"keyword":"reset --hard"},{"keyword":"fixup"},{"keyword":"--amend"},{"keyword":"force-push"},{"keyword":"--force-with-lease"},{"keyword":"squash-merge"},{"phrase":"branch diverged"},{"phrase":"pull --rebase failed"},{"phrase":"ahead and behind"},{"phrase":"unexpected commits on the branch"},{"phrase":"commits I did not create"}],"routes_to":["skill:git-workflow"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"history-discipline","triggers":[{"keyword":"audit"},{"keyword":"audit log"},{"keyword":"activity log"},{"keyword":"history"},{"keyword":"event sourcing"},{"keyword":"changelog"},{"phrase":"who changed"},{"phrase":"wer hat was"},{"phrase":"track changes"},{"phrase":"change history"}],"routes_to":["skill:history-design"],"workspaces":["engineering"],"packs":["history-discipline"]},{"id":"icon-consistency","triggers":[{"keyword":"icon"},{"keyword":"iconography"},{"keyword":"lucide"},{"keyword":"heroicons"},{"keyword":"icon set"},{"phrase":"icon system"}],"routes_to":[],"workspaces":["engineering"],"packs":["frontend-design"]},{"id":"image-likeness-and-rights","triggers":[{"keyword":"/image:"},{"keyword":"image generation"},{"keyword":"generate an image"},{"keyword":"logo"},{"keyword":"likeness"},{"keyword":"trademark"},{"keyword":"brand mark"},{"path_prefix":"scripts/ai-image/adapters/"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-image"]},{"id":"improve-before-implement","triggers":[{"keyword":"refactor"},{"keyword":"implement"},{"keyword":"migration"}],"routes_to":["guideline:agent-infra/agent-interaction-and-decision-quality"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"invite-challenge","triggers":[{"keyword":"plan"},{"keyword":"design"},{"keyword":"architecture"},{"keyword":"approach"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"laravel-translations","triggers":[{"path_prefix":"lang/"},{"keyword":"translation"},{"keyword":"__()"},{"keyword":"trans("}],"routes_to":["skill:laravel"],"workspaces":["engineering"],"packs":["laravel"]},{"id":"legal-safety-floor","triggers":[{"keyword":"NDA"},{"keyword":"DPA"},{"keyword":"data processing agreement"},{"keyword":"contract review"},{"keyword":"redline"},{"keyword":"clause"},{"keyword":"GDPR"},{"keyword":"Art. 28"},{"keyword":"controller"},{"keyword":"processor"},{"keyword":"privilege"},{"keyword":"work product"},{"phrase":"review this contract"},{"phrase":"is this a legal problem"},{"phrase":"check this NDA"}],"routes_to":["skill:contract-review","skill:dpa-review","skill:legal-intake-triage","skill:nda-triage"],"workspaces":["legal-review-prep"],"packs":["legal-review-prep"]},{"id":"lethal-trifecta-guard","triggers":[{"path_prefix":"src/skills/"},{"path_prefix":"src/agent-src/commands/"},{"keyword":"lethal trifecta"},{"keyword":"untrusted content"},{"keyword":"exfiltration"},{"keyword":"data exfil"},{"phrase":"fetch and send"},{"phrase":"read the file and post"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"linked-projects-onboarding-gate","triggers":[{"keyword":"linked project"},{"keyword":"cross-repo"},{"keyword":"sibling repo"},{"path_prefix":".idea/modules.xml"},{"path_prefix":".idea/vcs.xml"}],"routes_to":["guideline:agent-infra/linked-projects-onboarding-gate"],"workspaces":["agent-config-maintainer","engineering"],"packs":["engineering-base"]},{"id":"markdown-safe-codeblocks","triggers":[{"keyword":"triple backticks"},{"file_pattern":"*.md"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"media-governance-routing","triggers":[{"keyword":"/video:"},{"keyword":"/image:"},{"keyword":"/audio:"},{"keyword":"deepfake"},{"keyword":"voice clone"},{"keyword":"voice cloning"},{"keyword":"likeness"},{"keyword":"brand impersonation"},{"phrase":"in the style of"},{"phrase":"in the voice of"},{"phrase":"as [public figure]"},{"phrase":"impersonate"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-image","ai-video"]},{"id":"media-sync-ground-truth","triggers":[{"keyword":"lip-sync"},{"keyword":"lip sync"},{"keyword":"lipsync"},{"keyword":"music video"},{"keyword":"beat-cut"},{"keyword":"/video:from-song"},{"keyword":"vocal map"},{"phrase":"cut to the beat"},{"phrase":"sing the"},{"phrase":"mit den lippen"},{"phrase":"lippen passend"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-video"]},{"id":"minimal-safe-diff","triggers":[{"keyword":"drive-by"},{"keyword":"rewrite"},{"keyword":"fix"},{"phrase":"from scratch"},{"phrase":"second system"}],"routes_to":["guideline:agent-infra/minimal-safe-diff-mechanics"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"missing-tool-handling","triggers":[{"keyword":"command not found"},{"keyword":"not installed"}],"routes_to":["guideline:agent-infra/missing-tool-handling"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"model-recommendation","triggers":[{"phrase":"switch task"},{"phrase":"new task"},{"phrase":"which model"},{"keyword":"model_tier"}],"routes_to":["guideline:agent-infra/model-recommendation"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"no-pr-progress-comments","triggers":[{"keyword":"gh pr comment"},{"keyword":"PullRequestComment"},{"phrase":"status comment"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"notes-first-reasoning","triggers":[{"keyword":"debug"},{"keyword":"investigate"},{"keyword":"hypothesis"},{"keyword":"root cause"},{"phrase":"figure out why"},{"phrase":"should we use"}],"routes_to":["skill:memory-consolidation"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"output-discipline","triggers":[{"keyword":"// rest of component"},{"keyword":"for brevity"},{"keyword":"rest follows the same pattern"},{"phrase":"similar pattern"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"persona-governance","triggers":[{"path_prefix":"src/agent-src/personas/"},{"path_prefix":"dist/agent-src/personas/"},{"keyword":"persona"},{"keyword":"personas"},{"phrase":"new persona"},{"phrase":"add a persona"},{"phrase":"specialist persona"},{"phrase":"review lens"}],"routes_to":["contract:persona-schema"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"prefer-enums-over-literals","triggers":[{"keyword":"enum"},{"keyword":"status"},{"keyword":"kind"},{"keyword":"category"},{"keyword":"migration"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"preservation-guard","triggers":[{"keyword":"Iron Law"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"provider-lifecycle-discipline","triggers":[{"keyword":"/video:"},{"keyword":"/image:"},{"keyword":"/audio:"},{"keyword":"ai-video"},{"keyword":"ai-image"},{"keyword":"ai-audio"},{"keyword":"adapter"},{"keyword":"provider"},{"path_prefix":"scripts/ai-video/adapters/"},{"path_prefix":"scripts/ai-image/adapters/"},{"path_prefix":"scripts/media/lib/"},{"path_prefix":"agents/.ai-video.xml"},{"phrase":"lifecycle"},{"phrase":"default provider"}],"routes_to":["contract:provider-lifecycle"],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-image","ai-video"]},{"id":"reviewer-awareness","triggers":[{"keyword":"reviewer"},{"phrase":"suggest reviewers"},{"phrase":"risk hotspot"},{"phrase":"ownership map"},{"phrase":"review this pr"}],"routes_to":["skill:review-routing"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"roadmap-ci-steps-policy","triggers":[{"path_prefix":"agents/roadmaps/"},{"path_prefix":"{module_root}/"},{"keyword":"task ci"},{"keyword":"make test"},{"keyword":"npm run check"},{"keyword":"pnpm run check"},{"keyword":"yarn check"},{"keyword":"composer test"},{"phrase":"run the quality pipeline"},{"phrase":"run task ci"},{"phrase":"run the full ci"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"role-mode-adherence","triggers":[{"keyword":"active_role"},{"keyword":"role-mode"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"rule-type-governance","triggers":[{"path_prefix":"src/rules/"}],"routes_to":["guideline:agent-infra/rule-type-governance"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"runtime-safety","triggers":[{"keyword":"execution"},{"keyword":"automated"},{"keyword":"assisted"},{"keyword":"handler"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"scale-discipline","triggers":[{"keyword":"migration"},{"keyword":"index"},{"keyword":"N+1"},{"keyword":"eager load"},{"keyword":"pagination"},{"keyword":"queue"},{"keyword":"job"},{"keyword":"retention"},{"keyword":"schema"},{"keyword":"SELECT *"},{"phrase":"will this scale"},{"phrase":"review this migration"},{"phrase":"add a table"},{"phrase":"send an email on"}],"routes_to":["skill:schema-review"],"workspaces":["engineering"],"packs":["scale-discipline"]},{"id":"secret-vcs-guard","triggers":[{"keyword":"secret"},{"keyword":"password"},{"keyword":"credential"},{"keyword":"api key"},{"keyword":"token"},{"keyword":".env"},{"keyword":"commit"},{"keyword":"git add"},{"keyword":"svn commit"},{"keyword":"hg commit"},{"keyword":"push"}],"routes_to":["skill:secrets-management"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"security-sensitive-stop","triggers":[{"keyword":"auth"},{"keyword":"billing"},{"keyword":"tenant"},{"keyword":"webhook"},{"keyword":"oauth"},{"keyword":"signing key"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"self-repair-loop","triggers":[{"keyword":"self-repair"},{"keyword":"self-repair-queue"},{"phrase":"nicht richtig gearbeitet"},{"phrase":"du hast das falsch"},{"phrase":"you ignored the rule"},{"phrase":"that was wrong"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"senior-engineering-discipline","triggers":[{"keyword":"implement"},{"keyword":"endpoint"},{"keyword":"query"},{"keyword":"migration"},{"keyword":"component"},{"keyword":"seeder"},{"keyword":"dependency"},{"keyword":"refactor"}],"routes_to":["skill:ai-code-blindspots","skill:frontend-render-security","skill:supply-chain-intake","skill:testing-anti-patterns"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"session-canary","triggers":[{"keyword":"canary"},{"keyword":"canary_name"},{"phrase":"session canary"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"settings-ask-protocol","triggers":[{"keyword":"settings:set"},{"keyword":"canary_name"},{"keyword":"rich_skills"},{"keyword":"adversarial_council"},{"keyword":"learn_on_session_end"},{"keyword":"open_edited_files"},{"phrase":"ask about a setting"},{"phrase":"settings question"},{"phrase":"should I enable"},{"phrase":"nickname"},{"path_prefix":"docs/contracts/settings-classes.md"}],"routes_to":["contract:settings-classes"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"skill-improvement-trigger","triggers":[{"phrase":"after completing"},{"keyword":"improvement"},{"keyword":"pipeline"}],"routes_to":["skill:skill-improvement-pipeline"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"source-discovery-gate","triggers":[{"keyword":"schema"},{"keyword":"endpoint"},{"phrase":"new API"},{"phrase":"unknown API"},{"phrase":"new vendor package"},{"phrase":"which fields"}],"routes_to":["skill:source-discovery"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"spreadsheet-source-quality","triggers":[{"keyword":"financial data"},{"keyword":"financial model"},{"keyword":"stock price"},{"keyword":"revenue figures"},{"keyword":"market data"},{"phrase":"pull the numbers"}],"routes_to":[],"workspaces":["finance"],"packs":["finance-basic"]},{"id":"strategy-safety-floor","triggers":[{"keyword":"vision"},{"keyword":"positioning"},{"keyword":"moat"},{"keyword":"competitive"},{"keyword":"market entry"},{"keyword":"OKR"},{"keyword":"build vs buy"},{"keyword":"buy vs partner"},{"keyword":"beachhead"},{"keyword":"GTM"},{"keyword":"category"},{"keyword":"where to play"},{"keyword":"where not to play"},{"phrase":"what's our strategy"},{"phrase":"should we enter"},{"phrase":"what's our moat"},{"phrase":"where should we focus"},{"phrase":"should we reorg"}],"routes_to":["skill:build-buy-partner","skill:competitive-moat-analysis","skill:market-entry-analysis","skill:okr-tree-modeling","skill:positioning-strategy","skill:vision-articulation"],"workspaces":["founder"],"packs":["founder-strategy"]},{"id":"think-before-action","triggers":[{"phrase":"before coding"},{"phrase":"before debugging"},{"phrase":"before modifying"},{"keyword":"implement"},{"keyword":"debug"},{"keyword":"refactor"},{"keyword":"fix"},{"keyword":"optimize"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"token-budget-discipline","triggers":[{"keyword":"token_budget_class"},{"keyword":"rich skill"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"token-efficiency","triggers":[{"keyword":"minimize tool calls"},{"phrase":"fetching logs"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"token-optimizer-maintenance","triggers":[{"keyword":"cli-output-handling"},{"keyword":"rtk-output-filtering"},{"keyword":"token-efficiency"},{"keyword":"agent-handoff"},{"keyword":"markitdown"},{"keyword":"token-optimizer"}],"routes_to":["skill:token-optimizer"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"tool-safety","triggers":[{"keyword":"allowed_tools"},{"keyword":"tool registry"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"ui-audit-gate","triggers":[{"path_prefix":"resources/views/"},{"path_prefix":"resources/js/"},{"path_prefix":"components/"},{"path_prefix":"src/components/"},{"path_prefix":"pages/"},{"file_pattern":"*.vue"},{"file_pattern":"*.svelte"},{"file_pattern":"*.tsx"},{"file_pattern":"*.jsx"},{"file_pattern":"*.blade.php"},{"keyword":"component"},{"keyword":"design token"}],"routes_to":["skill:existing-ui-audit","skill:iconography","skill:typography-system"],"workspaces":["agent-config-maintainer","engineering"],"packs":["frontend-design"]},{"id":"untrusted-input-defense","triggers":[{"keyword":"untrusted"},{"keyword":"fetched content"},{"keyword":"tool output"},{"keyword":"web page"},{"keyword":"RAG"},{"keyword":"converted"},{"phrase":"treat as instructions"},{"phrase":"from the web"},{"phrase":"scraped"}],"routes_to":["guideline:agent-infra/untrusted-input-spotlighting"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"upstream-proposal","triggers":[{"phrase":"after creating"},{"phrase":"after improving"},{"keyword":"upstream"}],"routes_to":["skill:upstream-contribute"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"user-interrupt-priority","triggers":[{"keyword":"weiter"},{"keyword":"resume"},{"keyword":"continue"},{"phrase":"stop that"},{"phrase":"mach stattdessen"},{"command":"work"},{"command":"roadmap:process-full"},{"command":"roadmap:process-phase"},{"command":"implement-ticket"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]}],"profiles":{"minimal":["__kernel__"],"essential":["__kernel__","downstream-changes"],"full":["__kernel__","__tier_1__","__tier_2__"]}}
|
|
1
|
+
{"schema_version":2,"kernel":["agent-authority","ask-when-uncertain","commit-policy","direct-answers","language-and-tone","no-cheap-questions","non-destructive-by-default","scope-control","verify-before-complete"],"tier_1":[{"id":"architecture","triggers":[{"keyword":"controller"},{"keyword":"service"},{"keyword":"module"}],"routes_to":["skill:module-detect-on-the-fly"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"artifact-engagement-recording","triggers":[{"phrase":"/implement-ticket"},{"phrase":"/work"},{"keyword":"telemetry"}],"routes_to":["contract:artifact-engagement-flow"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"autonomous-execution","triggers":[{"keyword":"personal.autonomy"},{"phrase":"autonomy mode"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"command-suggestion-policy","triggers":[{"phrase":"free-form prompt"},{"phrase":"command suggestion"}],"routes_to":["contract:command-suggestion-flow"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"context-hygiene","triggers":[{"keyword":"3-failure"},{"phrase":"long conversation"}],"routes_to":["guideline:agent-infra/context-hygiene-mechanics"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"copilot-routing","triggers":[{"keyword":"copilot"},{"phrase":"copilot-instructions"},{"phrase":"copilot pr review"}],"routes_to":["skill:copilot-config"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"devcontainer-routing","triggers":[{"keyword":"devcontainer"},{"keyword":"codespaces"},{"keyword":"codespace"},{"phrase":"devcontainer.json"}],"routes_to":["skill:devcontainer"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"docker-commands","triggers":[{"keyword":"docker"},{"keyword":"artisan"},{"keyword":"composer"},{"phrase":"inside the container"}],"routes_to":["skill:docker"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"fast-path-marker-visibility","triggers":[{"keyword":"low-impact council"},{"keyword":"fast-path"},{"keyword":"Resolved via low-impact council"},{"keyword":"low_impact"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"laravel-routing","triggers":[{"keyword":"laravel"},{"keyword":"artisan"},{"keyword":"eloquent"},{"keyword":"FormRequest"}],"routes_to":["skill:laravel"],"workspaces":["engineering"],"packs":["laravel"]},{"id":"low-impact-corpus-privacy-floor","triggers":[{"path_prefix":"agents/decisions/low-impact-decisions"},{"path_prefix":"data/low-impact-decisions-seed"},{"keyword":"low-impact-decisions"},{"keyword":"low-impact corpus"},{"keyword":"learn-low-impact"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"no-attribution-footers","triggers":[{"keyword":"co-authored"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"no-decorative-emojis-in-git-surfaces","triggers":[{"keyword":"gh pr create"},{"keyword":"git commit"},{"keyword":"🤖"},{"keyword":"🚀"},{"keyword":"🎉"},{"keyword":"✨"},{"keyword":"🔥"},{"keyword":"💡"},{"keyword":"👍"},{"keyword":"❤️"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"no-roadmap-references","triggers":[{"path_prefix":"agents/roadmaps/"},{"path_prefix":"agents/runtime/council/questions/"},{"path_prefix":"agents/runtime/council/responses/"},{"path_prefix":"agents/runtime/council/sessions/"}],"routes_to":["skill:agent-docs-writing","skill:ai-council"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"onboarding-gate","triggers":[{"phrase":"first turn"},{"keyword":"onboarding"},{"path_prefix":".agent-settings.yml"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"php-coding","triggers":[{"file_pattern":"*.php"},{"keyword":"phpstan"},{"keyword":"ecs"}],"routes_to":["guideline:php/php-coding-patterns"],"workspaces":["engineering"],"packs":["php"]},{"id":"question-not-instruction","triggers":[{"phrase":"warum"},{"phrase":"wieso"},{"phrase":"weshalb"},{"keyword":"why"},{"phrase":"what do you think"},{"phrase":"was denkst du"},{"phrase":"was hältst du"},{"phrase":"geht das"},{"phrase":"kannst du"},{"phrase":"sollte ich"},{"phrase":"should i"},{"phrase":"is it possible"}],"routes_to":[],"workspaces":["engineering"],"packs":["meta"]},{"id":"roadmap-progress-sync","triggers":[{"path_prefix":"agents/roadmaps/"},{"command":"/roadmap:process-step"},{"command":"/roadmap:process-phase"},{"command":"/roadmap:process-full"}],"routes_to":["guideline:agent-infra/roadmap-progress-mechanics"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"skill-quality","triggers":[{"path_prefix":"src/skills/"}],"routes_to":["guideline:agent-infra/skill-quality-checklist"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"slash-command-routing-policy","triggers":[{"keyword":"/create-pr"},{"keyword":"/commit"},{"keyword":"/fix-ci"},{"phrase":"slash command"}],"routes_to":["skill:command-routing"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"source-confidentiality","triggers":[{"path_prefix":"src/skills/"},{"path_prefix":"src/rules/"},{"path_prefix":"src/domains/"},{"path_prefix":"docs/"},{"path_prefix":"agents/evidence/"},{"path_prefix":"agents/roadmaps/"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"source-of-truth","triggers":[{"path_prefix":"dist/agent-src/"},{"path_prefix":".augment/"},{"path_prefix":".claude/"},{"path_prefix":".cursor/"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"symfony-routing","triggers":[{"keyword":"symfony"},{"keyword":"doctrine"},{"keyword":"twig"},{"keyword":"messenger"}],"routes_to":["skill:symfony-workflow"],"workspaces":["engineering"],"packs":["symfony"]},{"id":"user-interaction","triggers":[{"keyword":"option"},{"keyword":"recommendation"},{"phrase":"what do you recommend"},{"phrase":"was empfiehlst du"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]}],"tier_2":[{"id":"active-remediation","triggers":[{"keyword":"refactor"},{"keyword":"duplicate"},{"keyword":"legacy"},{"keyword":"deprecated"},{"keyword":"modernize"},{"keyword":"upgrade"},{"keyword":"cleanup"},{"keyword":"technical debt"}],"routes_to":["guideline:agent-infra/active-remediation-mechanics"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"artifact-drafting-protocol","triggers":[{"phrase":"new skill"},{"phrase":"new rule"},{"phrase":"new command"},{"phrase":"new guideline"},{"phrase":"neue Regel"},{"phrase":"bau mir ein Skill"}],"routes_to":["guideline:agent-infra/artifact-drafting-protocol-mechanics"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"augment-edit-discipline","triggers":[{"path_prefix":".augment/"},{"path_prefix":"src/"},{"keyword":"portable"},{"keyword":"rename"},{"keyword":"delete"}],"routes_to":["guideline:augment-portability-patterns","skill:agent-docs-writing"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"brand-source-of-truth","triggers":[{"keyword":"brand"},{"keyword":"on-brand"},{"keyword":"off-brand"},{"keyword":"brand tokens"},{"keyword":"brand voice"},{"keyword":"brand guide"},{"keyword":"brand profile"},{"phrase":"brand consistency"},{"phrase":"on brand"},{"phrase":"brand source of truth"}],"routes_to":[],"workspaces":["engineering"],"packs":["brand"]},{"id":"broken-access-control","triggers":[{"keyword":"endpoint"},{"keyword":"route"},{"keyword":"authorization"},{"keyword":"tenant"},{"keyword":"IDOR"},{"keyword":"session"},{"keyword":"login"},{"keyword":"controller"},{"keyword":"findById"}],"routes_to":["skill:authz-review","skill:multi-tenancy","skill:threat-modeling"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"cli-output-handling","triggers":[{"keyword":"git"},{"keyword":"phpstan"},{"keyword":"rector"},{"keyword":"phpunit"},{"keyword":"composer"},{"keyword":"npm"},{"keyword":"pnpm"},{"keyword":"yarn"},{"keyword":"eslint"},{"keyword":"tsc"},{"keyword":"vitest"},{"keyword":"jest"},{"keyword":"pytest"},{"keyword":"ruff"},{"keyword":"mypy"},{"keyword":"pyright"},{"keyword":"cargo"},{"keyword":"golangci-lint"},{"keyword":"docker"},{"keyword":"kubectl"},{"keyword":"terraform"},{"phrase":"go test"},{"phrase":"go build"}],"routes_to":["skill:rtk-output-filtering"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"code-comment-discipline","triggers":[{"keyword":"comment"},{"keyword":"docblock"},{"keyword":"phpdoc"},{"keyword":"jsdoc"},{"keyword":"docstring"},{"keyword":"implement"},{"keyword":"class"},{"keyword":"method"},{"keyword":"refactor"}],"routes_to":["guideline:code-clarity"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"code-provenance","triggers":[{"keyword":"port this"},{"keyword":"adapt this"},{"keyword":"based on this repo"},{"keyword":"similar implementation"},{"keyword":"found this on GitHub"},{"keyword":"borrow"},{"keyword":"vendored"},{"keyword":"reference implementation"},{"keyword":"harvest"},{"keyword":"adopt from"}],"routes_to":["skill:license-compliance-audit","skill:license-compliance-borrow-check","skill:license-compliance-credits"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"commit-conventions","triggers":[{"keyword":"commit"},{"keyword":"branch"},{"phrase":"conventional commits"}],"routes_to":["skill:conventional-commits-writing"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"communication-through-line","triggers":[{"phrase":"reporting progress"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"content-quoting-floor","triggers":[{"keyword":"quote"},{"keyword":"excerpt"},{"keyword":"verbatim"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"council-availability","triggers":[{"keyword":"council"},{"keyword":"ai council"},{"keyword":"ai-council"},{"keyword":"council:status"},{"keyword":"second opinion"},{"phrase":"cross-check with another model"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"cross-source-consistency","triggers":[{"keyword":"ticket"},{"keyword":"refine"},{"keyword":"acceptance criteria"},{"keyword":"mockup"},{"keyword":"screenshot"},{"keyword":"attachment"},{"keyword":"roadmap"},{"keyword":"estimate"},{"phrase":"plan this ticket"},{"phrase":"refine this ticket"},{"phrase":"is this ticket clear"},{"phrase":"implement the ticket"}],"routes_to":["guideline:agent-infra/cross-source-consistency-mechanics"],"workspaces":["engineering","product"],"packs":["engineering-base","product-basic"]},{"id":"decision-revisit-gate","triggers":[{"keyword":"don't relitigate"},{"keyword":"honest null"},{"keyword":"already decided"},{"keyword":"locked decision"},{"keyword":"budget blocks"}],"routes_to":["skill:decision-review"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"delegation-policy","triggers":[{"keyword":"delegate"},{"keyword":"orchestrate"},{"keyword":"subagent"},{"keyword":"parallel"},{"phrase":"review these"},{"phrase":"analyze the codebase"},{"phrase":"for each"},{"keyword":"analyse"},{"keyword":"analyze"}],"routes_to":["skill:subagent-orchestration"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"design-fidelity","triggers":[{"keyword":"prototype"},{"keyword":"mockup"},{"keyword":"wireframe"},{"keyword":"design system"},{"keyword":"design spec"},{"keyword":"Figma"},{"keyword":"handoff"},{"keyword":"Claude Design"},{"phrase":"match the design"},{"phrase":"build this design"},{"phrase":"design fidelity"},{"phrase":"stick to the design"},{"phrase":"design.html"},{"phrase":"attached artifact"},{"phrase":"provided artifact"},{"phrase":"übernimm das design"},{"phrase":"baue das nach"},{"phrase":"bau das nach"},{"phrase":"1:1 um"},{"phrase":"1:1 nach"},{"phrase":"claude.site/artifacts"},{"file_pattern":"*design.html"},{"path_prefix":".claude/design-system/"}],"routes_to":["guideline:design-fidelity-mechanics"],"workspaces":["engineering"],"packs":["engineering-base","frontend-design"]},{"id":"design-review-after-ui-write","triggers":[{"path_prefix":"resources/views/"},{"path_prefix":"resources/js/"},{"path_prefix":"components/"},{"path_prefix":"src/components/"},{"path_prefix":"pages/"},{"file_pattern":"*.vue"},{"file_pattern":"*.svelte"},{"file_pattern":"*.tsx"},{"file_pattern":"*.jsx"},{"file_pattern":"*.blade.php"},{"keyword":"component"},{"keyword":"design token"}],"routes_to":["skill:accessibility-auditor","skill:design-review"],"workspaces":["agent-config-maintainer","engineering"],"packs":["frontend-design"]},{"id":"doc-screenshot-hygiene","triggers":[{"keyword":"screenshot"},{"keyword":"screenshots"},{"keyword":"screen capture"},{"keyword":"screen grab"},{"keyword":"admin panel screenshot"},{"keyword":"dashboard screenshot"},{"keyword":"docs site"},{"keyword":"Starlight"},{"phrase":"add a screenshot"},{"phrase":"screenshot for the docs"},{"phrase":"screenshot in the readme"},{"phrase":"embed an image in the docs"},{"phrase":"put a screenshot"},{"phrase":"generate a docs site"},{"phrase":"capture the ui"},{"path_prefix":"docs/media/"}],"routes_to":["skill:screenshot-hygiene"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"domain-adoption-policy","triggers":[{"keyword":"mobile track"},{"keyword":"ml track"},{"keyword":"blockchain track"},{"path_prefix":"src/skills/"}],"routes_to":["guideline:agent-infra/domain-adoption-gates"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"domain-safety-disclaimer","triggers":[{"keyword":"legal brief"},{"keyword":"contract redline"},{"keyword":"terms of service"},{"keyword":"privacy policy"},{"keyword":"diagnosis"},{"keyword":"symptoms"},{"keyword":"dosage"},{"keyword":"medication"},{"keyword":"investment memo"},{"keyword":"tax position"},{"keyword":"strategic recommendation"},{"keyword":"board memo"},{"keyword":"executive summary"},{"phrase":"review this contract"},{"phrase":"is this symptom"},{"phrase":"should I invest"},{"phrase":"what should we do"}],"routes_to":["skill:brand-identity","skill:brand-strategy","skill:contracts-cognition","skill:dcf-modeling","skill:decision-record","skill:privacy-review","skill:scenario-modeling","skill:stakeholder-tradeoff"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"domain-safety-pii","triggers":[{"keyword":"support macro"},{"keyword":"ticket response"},{"keyword":"help desk"},{"keyword":"Zendesk"},{"keyword":"Intercom"},{"keyword":"testimonial"},{"keyword":"case study"},{"keyword":"customer story"},{"keyword":"candidate"},{"keyword":"interview notes"},{"keyword":"scorecard"},{"keyword":"rejection email"},{"keyword":"offer letter"},{"keyword":"invoice"},{"keyword":"accounts receivable"},{"keyword":"accounts payable"},{"keyword":"finance memo"},{"keyword":"log"},{"keyword":"logger"},{"keyword":"Sentry"},{"keyword":"Datadog"},{"keyword":"structured log"},{"keyword":"export to CSV"},{"keyword":"data export"},{"keyword":"partner integration"},{"phrase":"draft a response to"},{"phrase":"marketing email featuring"},{"phrase":"draft feedback for"},{"phrase":"log the user"},{"phrase":"send them the spreadsheet"}],"routes_to":["skill:data-handling-judgment","skill:logging-monitoring","skill:privacy-review","skill:secrets-management"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"domain-safety-retention","triggers":[{"keyword":"retention policy"},{"keyword":"data retention"},{"keyword":"record retention"},{"keyword":"ticket retention"},{"keyword":"CRM retention"},{"keyword":"delete financial"},{"keyword":"purge invoice"},{"keyword":"DSAR"},{"keyword":"data subject request"},{"keyword":"right to be forgotten"},{"phrase":"how long should we keep"},{"phrase":"when can we delete"},{"phrase":"delete customer data"},{"phrase":"how long do we keep tickets"}],"routes_to":["skill:data-handling-judgment","skill:privacy-review"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"downstream-changes","triggers":[{"keyword":"callers"},{"keyword":"imports"},{"keyword":"downstream"},{"phrase":"api changed"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"engineering-safety-floor","triggers":[{"keyword":"production"},{"keyword":"deploy"},{"keyword":"migration"},{"keyword":"schema change"},{"keyword":"DROP TABLE"},{"keyword":"TRUNCATE"},{"keyword":"force push"},{"keyword":"rebase main"},{"keyword":"rollback"},{"keyword":"secrets rotation"},{"keyword":"IAM"},{"keyword":"DNS"},{"keyword":"terraform apply"},{"keyword":"kubectl apply"},{"phrase":"ship to prod"},{"phrase":"deploy to production"},{"phrase":"merge to main"},{"phrase":"release this"}],"routes_to":["skill:launch-readiness","skill:threat-modeling"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"evaluator-independence","triggers":[{"keyword":"blind review"},{"keyword":"blind pass"},{"keyword":"honest null"},{"keyword":"no-findings"},{"keyword":"adversarial review"},{"keyword":"judge"},{"phrase":"review my own"},{"phrase":"commission a review"},{"phrase":"second opinion on my"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"external-code-graph-interop","triggers":[{"keyword":"scip"},{"keyword":"code-graph"},{"keyword":"code graph"},{"phrase":"graph.json"},{"phrase":"who calls"},{"phrase":"call graph"},{"phrase":"find references"},{"phrase":"where is this used"}],"routes_to":[],"workspaces":["engineering"],"packs":["meta"]},{"id":"external-reference-deep-dive","triggers":[{"keyword":"github.com/"},{"keyword":"source of truth"},{"phrase":"reference repo"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"finance-safety-floor","triggers":[{"keyword":"runway"},{"keyword":"burn"},{"keyword":"valuation"},{"keyword":"DCF"},{"keyword":"IRR"},{"keyword":"MOIC"},{"keyword":"LTV"},{"keyword":"payback"},{"keyword":"sensitivity"},{"keyword":"fundraise"},{"keyword":"term sheet"},{"keyword":"dilution"},{"keyword":"NRR"},{"keyword":"EBITDA"},{"keyword":"free cash flow"},{"phrase":"what's it worth"},{"phrase":"how long do we have"},{"phrase":"should we raise"},{"phrase":"model the scenarios"}],"routes_to":["skill:dcf-modeling","skill:forecasting","skill:runway-cognition","skill:scenario-modeling","skill:unit-economics-modeling"],"workspaces":["finance"],"packs":["finance-advanced","finance-basic"]},{"id":"framework-neutrality-in-generic-skills","triggers":[{"path_prefix":"src/skills/"},{"path_prefix":"src/rules/"},{"path_prefix":"src/agent-src/commands/"},{"keyword":"FormRequest"},{"keyword":"PHPStan"},{"keyword":"php artisan"},{"keyword":"composer.json"},{"keyword":"Eloquent"},{"keyword":"Pest"},{"keyword":"Blade"},{"keyword":"vendor/bin"},{"keyword":"Artisan"},{"keyword":"Rector"},{"phrase":"every controller"},{"phrase":"all controllers"},{"phrase":"generic skill"}],"routes_to":["guideline:agent-infra/framework-neutrality-patterns"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"git-history-discipline","triggers":[{"keyword":"git rebase"},{"keyword":"rebase --onto"},{"keyword":"reset --hard"},{"keyword":"fixup"},{"keyword":"--amend"},{"keyword":"force-push"},{"keyword":"--force-with-lease"},{"keyword":"squash-merge"},{"phrase":"branch diverged"},{"phrase":"pull --rebase failed"},{"phrase":"ahead and behind"},{"phrase":"unexpected commits on the branch"},{"phrase":"commits I did not create"}],"routes_to":["skill:git-workflow"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"history-discipline","triggers":[{"keyword":"audit"},{"keyword":"audit log"},{"keyword":"activity log"},{"keyword":"history"},{"keyword":"event sourcing"},{"keyword":"changelog"},{"phrase":"who changed"},{"phrase":"wer hat was"},{"phrase":"track changes"},{"phrase":"change history"}],"routes_to":["skill:history-design"],"workspaces":["engineering"],"packs":["history-discipline"]},{"id":"icon-consistency","triggers":[{"keyword":"icon"},{"keyword":"iconography"},{"keyword":"lucide"},{"keyword":"heroicons"},{"keyword":"icon set"},{"phrase":"icon system"}],"routes_to":[],"workspaces":["engineering"],"packs":["frontend-design"]},{"id":"image-likeness-and-rights","triggers":[{"keyword":"/image:"},{"keyword":"image generation"},{"keyword":"generate an image"},{"keyword":"logo"},{"keyword":"likeness"},{"keyword":"trademark"},{"keyword":"brand mark"},{"path_prefix":"scripts/ai-image/adapters/"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-image"]},{"id":"improve-before-implement","triggers":[{"keyword":"refactor"},{"keyword":"implement"},{"keyword":"migration"}],"routes_to":["guideline:agent-infra/agent-interaction-and-decision-quality"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"invite-challenge","triggers":[{"keyword":"plan"},{"keyword":"design"},{"keyword":"architecture"},{"keyword":"approach"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"laravel-translations","triggers":[{"path_prefix":"lang/"},{"keyword":"translation"},{"keyword":"__()"},{"keyword":"trans("}],"routes_to":["skill:laravel"],"workspaces":["engineering"],"packs":["laravel"]},{"id":"legal-safety-floor","triggers":[{"keyword":"NDA"},{"keyword":"DPA"},{"keyword":"data processing agreement"},{"keyword":"contract review"},{"keyword":"redline"},{"keyword":"clause"},{"keyword":"GDPR"},{"keyword":"Art. 28"},{"keyword":"controller"},{"keyword":"processor"},{"keyword":"privilege"},{"keyword":"work product"},{"phrase":"review this contract"},{"phrase":"is this a legal problem"},{"phrase":"check this NDA"}],"routes_to":["skill:contract-review","skill:dpa-review","skill:legal-intake-triage","skill:nda-triage"],"workspaces":["legal-review-prep"],"packs":["legal-review-prep"]},{"id":"lethal-trifecta-guard","triggers":[{"path_prefix":"src/skills/"},{"path_prefix":"src/agent-src/commands/"},{"keyword":"lethal trifecta"},{"keyword":"untrusted content"},{"keyword":"exfiltration"},{"keyword":"data exfil"},{"phrase":"fetch and send"},{"phrase":"read the file and post"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"linked-projects-onboarding-gate","triggers":[{"keyword":"linked project"},{"keyword":"cross-repo"},{"keyword":"sibling repo"},{"path_prefix":".idea/modules.xml"},{"path_prefix":".idea/vcs.xml"}],"routes_to":["guideline:agent-infra/linked-projects-onboarding-gate"],"workspaces":["agent-config-maintainer","engineering"],"packs":["engineering-base"]},{"id":"markdown-safe-codeblocks","triggers":[{"keyword":"triple backticks"},{"file_pattern":"*.md"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"media-governance-routing","triggers":[{"keyword":"/video:"},{"keyword":"/image:"},{"keyword":"/audio:"},{"keyword":"deepfake"},{"keyword":"voice clone"},{"keyword":"voice cloning"},{"keyword":"likeness"},{"keyword":"brand impersonation"},{"phrase":"in the style of"},{"phrase":"in the voice of"},{"phrase":"as [public figure]"},{"phrase":"impersonate"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-image","ai-video"]},{"id":"media-sync-ground-truth","triggers":[{"keyword":"lip-sync"},{"keyword":"lip sync"},{"keyword":"lipsync"},{"keyword":"music video"},{"keyword":"beat-cut"},{"keyword":"/video:from-song"},{"keyword":"vocal map"},{"phrase":"cut to the beat"},{"phrase":"sing the"},{"phrase":"mit den lippen"},{"phrase":"lippen passend"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-video"]},{"id":"minimal-safe-diff","triggers":[{"keyword":"drive-by"},{"keyword":"rewrite"},{"keyword":"fix"},{"phrase":"from scratch"},{"phrase":"second system"}],"routes_to":["guideline:agent-infra/minimal-safe-diff-mechanics"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"missing-tool-handling","triggers":[{"keyword":"command not found"},{"keyword":"not installed"}],"routes_to":["guideline:agent-infra/missing-tool-handling"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"model-recommendation","triggers":[{"phrase":"switch task"},{"phrase":"new task"},{"phrase":"which model"},{"keyword":"model_tier"}],"routes_to":["guideline:agent-infra/model-recommendation"],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"no-pr-progress-comments","triggers":[{"keyword":"gh pr comment"},{"keyword":"PullRequestComment"},{"phrase":"status comment"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"notes-first-reasoning","triggers":[{"keyword":"debug"},{"keyword":"investigate"},{"keyword":"hypothesis"},{"keyword":"root cause"},{"phrase":"figure out why"},{"phrase":"should we use"}],"routes_to":["skill:memory-consolidation"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"output-discipline","triggers":[{"keyword":"// rest of component"},{"keyword":"for brevity"},{"keyword":"rest follows the same pattern"},{"phrase":"similar pattern"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"persona-governance","triggers":[{"path_prefix":"src/agent-src/personas/"},{"path_prefix":"dist/agent-src/personas/"},{"keyword":"persona"},{"keyword":"personas"},{"phrase":"new persona"},{"phrase":"add a persona"},{"phrase":"specialist persona"},{"phrase":"review lens"}],"routes_to":["contract:persona-schema"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"prefer-enums-over-literals","triggers":[{"keyword":"enum"},{"keyword":"status"},{"keyword":"kind"},{"keyword":"category"},{"keyword":"migration"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"preservation-guard","triggers":[{"keyword":"Iron Law"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"provider-lifecycle-discipline","triggers":[{"keyword":"/video:"},{"keyword":"/image:"},{"keyword":"/audio:"},{"keyword":"ai-video"},{"keyword":"ai-image"},{"keyword":"ai-audio"},{"keyword":"adapter"},{"keyword":"provider"},{"path_prefix":"scripts/ai-video/adapters/"},{"path_prefix":"scripts/ai-image/adapters/"},{"path_prefix":"scripts/media/lib/"},{"path_prefix":"agents/.ai-video.xml"},{"phrase":"lifecycle"},{"phrase":"default provider"}],"routes_to":["contract:provider-lifecycle"],"workspaces":["agent-config-maintainer","engineering","gtm"],"packs":["ai-image","ai-video"]},{"id":"reviewer-awareness","triggers":[{"keyword":"reviewer"},{"phrase":"suggest reviewers"},{"phrase":"risk hotspot"},{"phrase":"ownership map"},{"phrase":"review this pr"}],"routes_to":["skill:review-routing"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"roadmap-ci-steps-policy","triggers":[{"path_prefix":"agents/roadmaps/"},{"path_prefix":"{module_root}/"},{"keyword":"task ci"},{"keyword":"make test"},{"keyword":"npm run check"},{"keyword":"pnpm run check"},{"keyword":"yarn check"},{"keyword":"composer test"},{"phrase":"run the quality pipeline"},{"phrase":"run task ci"},{"phrase":"run the full ci"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"role-mode-adherence","triggers":[{"keyword":"active_role"},{"keyword":"role-mode"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"rule-type-governance","triggers":[{"path_prefix":"src/rules/"}],"routes_to":["guideline:agent-infra/rule-type-governance"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"runtime-safety","triggers":[{"keyword":"execution"},{"keyword":"automated"},{"keyword":"assisted"},{"keyword":"handler"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"scale-discipline","triggers":[{"keyword":"migration"},{"keyword":"index"},{"keyword":"N+1"},{"keyword":"eager load"},{"keyword":"pagination"},{"keyword":"queue"},{"keyword":"job"},{"keyword":"retention"},{"keyword":"schema"},{"keyword":"SELECT *"},{"phrase":"will this scale"},{"phrase":"review this migration"},{"phrase":"add a table"},{"phrase":"send an email on"}],"routes_to":["skill:schema-review"],"workspaces":["engineering"],"packs":["scale-discipline"]},{"id":"secret-vcs-guard","triggers":[{"keyword":"secret"},{"keyword":"password"},{"keyword":"credential"},{"keyword":"api key"},{"keyword":"token"},{"keyword":".env"},{"keyword":"commit"},{"keyword":"git add"},{"keyword":"svn commit"},{"keyword":"hg commit"},{"keyword":"push"}],"routes_to":["skill:secrets-management"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"security-sensitive-stop","triggers":[{"keyword":"auth"},{"keyword":"billing"},{"keyword":"tenant"},{"keyword":"webhook"},{"keyword":"oauth"},{"keyword":"signing key"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"self-repair-loop","triggers":[{"keyword":"self-repair"},{"keyword":"self-repair-queue"},{"phrase":"nicht richtig gearbeitet"},{"phrase":"du hast das falsch"},{"phrase":"you ignored the rule"},{"phrase":"that was wrong"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"senior-engineering-discipline","triggers":[{"keyword":"implement"},{"keyword":"endpoint"},{"keyword":"query"},{"keyword":"migration"},{"keyword":"component"},{"keyword":"seeder"},{"keyword":"dependency"},{"keyword":"refactor"}],"routes_to":["skill:ai-code-blindspots","skill:frontend-render-security","skill:supply-chain-intake","skill:testing-anti-patterns"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"session-canary","triggers":[{"keyword":"canary"},{"keyword":"canary_name"},{"phrase":"session canary"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"settings-ask-protocol","triggers":[{"keyword":"settings:set"},{"keyword":"canary_name"},{"keyword":"rich_skills"},{"keyword":"adversarial_council"},{"keyword":"learn_on_session_end"},{"keyword":"open_edited_files"},{"phrase":"ask about a setting"},{"phrase":"settings question"},{"phrase":"should I enable"},{"phrase":"nickname"},{"path_prefix":"docs/contracts/settings-classes.md"}],"routes_to":["contract:settings-classes"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"skill-improvement-trigger","triggers":[{"phrase":"after completing"},{"keyword":"improvement"},{"keyword":"pipeline"}],"routes_to":["skill:skill-improvement-pipeline"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"source-discovery-gate","triggers":[{"keyword":"schema"},{"keyword":"endpoint"},{"phrase":"new API"},{"phrase":"unknown API"},{"phrase":"new vendor package"},{"phrase":"which fields"}],"routes_to":["skill:source-discovery"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"spreadsheet-source-quality","triggers":[{"keyword":"financial data"},{"keyword":"financial model"},{"keyword":"stock price"},{"keyword":"revenue figures"},{"keyword":"market data"},{"phrase":"pull the numbers"}],"routes_to":[],"workspaces":["finance"],"packs":["finance-basic"]},{"id":"strategy-safety-floor","triggers":[{"keyword":"vision"},{"keyword":"positioning"},{"keyword":"moat"},{"keyword":"competitive"},{"keyword":"market entry"},{"keyword":"OKR"},{"keyword":"build vs buy"},{"keyword":"buy vs partner"},{"keyword":"beachhead"},{"keyword":"GTM"},{"keyword":"category"},{"keyword":"where to play"},{"keyword":"where not to play"},{"phrase":"what's our strategy"},{"phrase":"should we enter"},{"phrase":"what's our moat"},{"phrase":"where should we focus"},{"phrase":"should we reorg"}],"routes_to":["skill:build-buy-partner","skill:competitive-moat-analysis","skill:market-entry-analysis","skill:okr-tree-modeling","skill:positioning-strategy","skill:vision-articulation"],"workspaces":["founder"],"packs":["founder-strategy"]},{"id":"think-before-action","triggers":[{"phrase":"before coding"},{"phrase":"before debugging"},{"phrase":"before modifying"},{"keyword":"implement"},{"keyword":"debug"},{"keyword":"refactor"},{"keyword":"fix"},{"keyword":"optimize"}],"routes_to":[],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"token-budget-discipline","triggers":[{"keyword":"token_budget_class"},{"keyword":"rich skill"}],"routes_to":[],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"token-efficiency","triggers":[{"keyword":"minimize tool calls"},{"phrase":"fetching logs"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]},{"id":"token-optimizer-maintenance","triggers":[{"keyword":"cli-output-handling"},{"keyword":"rtk-output-filtering"},{"keyword":"token-efficiency"},{"keyword":"agent-handoff"},{"keyword":"markitdown"},{"keyword":"token-optimizer"}],"routes_to":["skill:token-optimizer"],"workspaces":["agent-config-maintainer"],"packs":["meta"]},{"id":"tool-safety","triggers":[{"keyword":"allowed_tools"},{"keyword":"tool registry"}],"routes_to":[],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"ui-audit-gate","triggers":[{"path_prefix":"resources/views/"},{"path_prefix":"resources/js/"},{"path_prefix":"components/"},{"path_prefix":"src/components/"},{"path_prefix":"pages/"},{"file_pattern":"*.vue"},{"file_pattern":"*.svelte"},{"file_pattern":"*.tsx"},{"file_pattern":"*.jsx"},{"file_pattern":"*.blade.php"},{"keyword":"component"},{"keyword":"design token"}],"routes_to":["skill:existing-ui-audit","skill:iconography","skill:typography-system"],"workspaces":["agent-config-maintainer","engineering"],"packs":["frontend-design"]},{"id":"untrusted-input-defense","triggers":[{"keyword":"untrusted"},{"keyword":"fetched content"},{"keyword":"tool output"},{"keyword":"web page"},{"keyword":"RAG"},{"keyword":"converted"},{"phrase":"treat as instructions"},{"phrase":"from the web"},{"phrase":"scraped"}],"routes_to":["guideline:agent-infra/untrusted-input-spotlighting"],"workspaces":["engineering"],"packs":["engineering-base"]},{"id":"upstream-proposal","triggers":[{"phrase":"after creating"},{"phrase":"after improving"},{"keyword":"upstream"}],"routes_to":["skill:upstream-contribute"],"workspaces":["agent-config-maintainer","engineering"],"packs":["meta"]},{"id":"user-interrupt-priority","triggers":[{"keyword":"weiter"},{"keyword":"resume"},{"keyword":"continue"},{"phrase":"stop that"},{"phrase":"mach stattdessen"},{"command":"work"},{"command":"roadmap:process-full"},{"command":"roadmap:process-phase"},{"command":"implement-ticket"}],"routes_to":[],"workspaces":["agent-config-maintainer","construction","engineering","finance","founder","gtm","legal-review-prep","ops","product","small-business"],"packs":["meta"]}],"profiles":{"minimal":["__kernel__"],"essential":["__kernel__","downstream-changes"],"full":["__kernel__","__tier_1__","__tier_2__"]}}
|
|
@@ -23,7 +23,16 @@
|
|
|
23
23
|
import fs from "node:fs";
|
|
24
24
|
// Tier → Claude model. The ONLY per-vendor mapping the package maintains
|
|
25
25
|
// (ADR-035 § 3); other agents resolve the tier band to their own line-up.
|
|
26
|
+
//
|
|
27
|
+
// `frontier` was added by ADR-232, which amends ADR-035 § Decision 1 on that
|
|
28
|
+
// record's own reopen condition. The asymmetry that triggered it is worth
|
|
29
|
+
// keeping visible here: `MODEL_FAMILIES` in the orchestration-record hook has
|
|
30
|
+
// enumerated four families since it shipped, while this map named three — so a
|
|
31
|
+
// dispatch on the fourth band was recordable but not declarable. Adding the row
|
|
32
|
+
// here rather than a second table elsewhere is what keeps ADR-035 § 3 intact:
|
|
33
|
+
// one mapping, one owner, no two-clocks drift.
|
|
26
34
|
export const TIER_TO_CLAUDE_MODEL = {
|
|
35
|
+
frontier: "fable",
|
|
27
36
|
high: "opus",
|
|
28
37
|
medium: "sonnet",
|
|
29
38
|
lite: "haiku",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model_tier.js","sourceRoot":"","sources":["../../../src/scripts/_lib/model_tier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,yEAAyE;AACzE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,kCAAkC,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,qEAAqE;IACrE,+CAA+C;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,IAAY;IAC/D,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,yCAAyC;QACzC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,qEAAqE;IACrE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"model_tier.js","sourceRoot":"","sources":["../../../src/scripts/_lib/model_tier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,yEAAyE;AACzE,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,kCAAkC,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,qEAAqE;IACrE,+CAA+C;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,IAAY;IAC/D,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,yCAAyC;QACzC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,qEAAqE;IACrE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC"}
|