@event4u/agent-config 7.1.0 → 7.3.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 +2 -1
- package/CHANGELOG.md +80 -0
- package/README.md +9 -10
- package/dist/agent-src/rules/brand-source-of-truth.md +10 -0
- package/dist/agent-src/rules/delegation-policy.md +1 -0
- package/dist/agent-src/rules/legal-safety-floor.md +42 -4
- package/dist/agent-src/rules/output-discipline.md +85 -0
- package/dist/agent-src/rules/telegraph-speak.md +4 -1
- package/dist/agent-src/rules/token-budget-discipline.md +94 -0
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +20 -5
- package/dist/agent-src/skills/blade-ui/SKILL.md +9 -0
- package/dist/agent-src/skills/bug-analyzer/evals/evals.json +13 -0
- package/dist/agent-src/skills/code-review/evals/evals.json +21 -0
- package/dist/agent-src/skills/contract-review/SKILL.md +3 -2
- package/dist/agent-src/skills/dashboard-design/SKILL.md +21 -5
- package/dist/agent-src/skills/design-intelligence/SKILL.md +96 -0
- package/dist/agent-src/skills/design-review/SKILL.md +83 -0
- package/dist/agent-src/skills/design-system-capture/SKILL.md +234 -0
- package/dist/agent-src/skills/design-tokens/SKILL.md +1 -0
- package/dist/agent-src/skills/dpa-review/SKILL.md +3 -2
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +15 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +98 -16
- package/dist/agent-src/skills/flux/SKILL.md +8 -0
- package/dist/agent-src/skills/iconography/SKILL.md +1 -0
- package/dist/agent-src/skills/legal-intake-triage/SKILL.md +3 -2
- package/dist/agent-src/skills/legal-practice-profile/SKILL.md +3 -2
- package/dist/agent-src/skills/livewire/SKILL.md +8 -0
- package/dist/agent-src/skills/nda-triage/SKILL.md +3 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +21 -9
- package/dist/agent-src/skills/skill-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +7 -10
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +17 -7
- package/dist/agent-src/skills/typography-system/SKILL.md +14 -0
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +9 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +123 -59
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +18 -15
- package/dist/discovery/trust-report.md +5 -5
- package/dist/discovery/workspaces.json +15 -12
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/router.json +1 -1
- package/dist/server/routes/wizard.js +4 -3
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +9 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/{index-CoQo90sz.js → index-UjcTG_9O.js} +2 -2
- package/dist/ui/assets/index-UjcTG_9O.js.map +1 -0
- package/dist/ui/index.html +1 -1
- package/docs/RELEASE_STORY_TEMPLATE.md +37 -0
- package/docs/architecture.md +3 -3
- package/docs/contracts/capability-boundary.md +64 -0
- package/docs/contracts/discovery-manifest.schema.json +2 -2
- package/docs/contracts/governance-enforcement-projection.md +154 -0
- package/docs/contracts/package-self-orientation.md +3 -0
- package/docs/contracts/subagent-boundary.md +54 -0
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +13 -0
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +19 -0
- package/docs/enforcement-by-host.md +35 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/domain-pack-architecture.md +1 -0
- package/docs/guidelines/design-antipatterns-triggers.json +17 -0
- package/docs/guidelines/design-antipatterns.md +170 -0
- package/docs/guidelines/design-modes.md +97 -0
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +31 -0
- package/src/config/discovery/packs.yml +16 -5
- package/src/config/discovery/workspaces.yml +4 -4
- package/src/scripts/_lib/eval_discrimination.ts +95 -0
- package/src/scripts/_lib/trigger_routers.ts +268 -0
- package/src/scripts/bench_ab_v2_run.ts +38 -0
- package/src/scripts/check_trunk_drift.ts +67 -0
- package/src/scripts/cross_model_smoke.ts +245 -0
- package/src/scripts/lint_design_quality.ts +321 -0
- package/src/scripts/lint_discovery_vocabulary.ts +4 -4
- package/src/scripts/lint_legal_pack.ts +62 -4
- package/src/scripts/lint_output_slop.ts +223 -0
- package/src/scripts/lint_pack_risk_class.ts +79 -0
- package/src/scripts/run_skill_evals.ts +38 -0
- package/src/scripts/schemas/agent-settings.schema.json +12 -0
- package/src/scripts/schemas/skill.schema.json +5 -0
- package/src/scripts/skill_linter.ts +26 -10
- package/dist/ui/assets/index-CoQo90sz.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"checksum": "sha256:
|
|
3
|
-
"generated_at": "2026-06-
|
|
2
|
+
"checksum": "sha256:7ac282ee829a39d0fd4f16c8deaca3f449ff9ebe101e8decba1549453156a638",
|
|
3
|
+
"generated_at": "2026-06-25T19:49:27Z",
|
|
4
4
|
"packs": [
|
|
5
5
|
{
|
|
6
6
|
"always_on": false,
|
|
7
|
-
"artefact_count":
|
|
7
|
+
"artefact_count": 96,
|
|
8
8
|
"artefacts": [
|
|
9
9
|
"src/domains/engineering-base/mission/upgrade/command.md",
|
|
10
10
|
"src/rules/commit-conventions.md",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"src/rules/linked-projects-onboarding-gate.md",
|
|
21
21
|
"src/rules/minimal-safe-diff.md",
|
|
22
22
|
"src/rules/non-destructive-by-default.md",
|
|
23
|
+
"src/rules/output-discipline.md",
|
|
23
24
|
"src/rules/scope-control.md",
|
|
24
25
|
"src/rules/security-sensitive-stop.md",
|
|
25
26
|
"src/rules/source-discovery-gate.md",
|
|
@@ -103,14 +104,14 @@
|
|
|
103
104
|
"src/skills/verify-completion-evidence/SKILL.md"
|
|
104
105
|
],
|
|
105
106
|
"by_lifecycle": {
|
|
106
|
-
"active":
|
|
107
|
+
"active": 95,
|
|
107
108
|
"archived": 0,
|
|
108
109
|
"deprecated": 0,
|
|
109
110
|
"experimental": 1
|
|
110
111
|
},
|
|
111
112
|
"by_trust_level": {
|
|
112
113
|
"advisory": 0,
|
|
113
|
-
"core":
|
|
114
|
+
"core": 94,
|
|
114
115
|
"experimental": 1,
|
|
115
116
|
"professional": 1,
|
|
116
117
|
"restricted": 0
|
|
@@ -520,23 +521,24 @@
|
|
|
520
521
|
},
|
|
521
522
|
{
|
|
522
523
|
"always_on": false,
|
|
523
|
-
"artefact_count":
|
|
524
|
+
"artefact_count": 6,
|
|
524
525
|
"artefacts": [
|
|
525
526
|
"src/rules/icon-consistency.md",
|
|
526
527
|
"src/skills/design-intelligence/SKILL.md",
|
|
528
|
+
"src/skills/design-system-capture/SKILL.md",
|
|
527
529
|
"src/skills/design-tokens/SKILL.md",
|
|
528
530
|
"src/skills/iconography/SKILL.md",
|
|
529
531
|
"src/skills/typography-system/SKILL.md"
|
|
530
532
|
],
|
|
531
533
|
"by_lifecycle": {
|
|
532
|
-
"active":
|
|
534
|
+
"active": 6,
|
|
533
535
|
"archived": 0,
|
|
534
536
|
"deprecated": 0,
|
|
535
537
|
"experimental": 0
|
|
536
538
|
},
|
|
537
539
|
"by_trust_level": {
|
|
538
540
|
"advisory": 0,
|
|
539
|
-
"core":
|
|
541
|
+
"core": 2,
|
|
540
542
|
"experimental": 0,
|
|
541
543
|
"professional": 4,
|
|
542
544
|
"restricted": 0
|
|
@@ -1063,17 +1065,17 @@
|
|
|
1063
1065
|
"restricted": 0
|
|
1064
1066
|
},
|
|
1065
1067
|
"cluster": null,
|
|
1066
|
-
"description": "NOT LEGAL ADVICE — a research/drafting aid, not a substitute for a lawyer.
|
|
1068
|
+
"description": "NOT LEGAL ADVICE — a research/drafting aid to PREPARE for attorney review, not a substitute for a lawyer. EU/DE-scoped contract/NDA/DPA review and triage, procedure-only (no default legal positions); general information + templates only, never individual-case examination; every output a draft for attorney review. Opt-in + council-gated. See LEGAL_NOTICE.md.",
|
|
1067
1069
|
"domain": "legal",
|
|
1068
|
-
"id": "legal",
|
|
1069
|
-
"label": "Legal",
|
|
1070
|
+
"id": "legal-review-prep",
|
|
1071
|
+
"label": "Legal Review Prep",
|
|
1070
1072
|
"requires": [],
|
|
1071
1073
|
"requires_hint": [],
|
|
1072
1074
|
"size_class": "medium",
|
|
1073
1075
|
"suggests": [],
|
|
1074
1076
|
"trust_level_default": "experimental",
|
|
1075
1077
|
"workspaces": [
|
|
1076
|
-
"legal"
|
|
1078
|
+
"legal-review-prep"
|
|
1077
1079
|
]
|
|
1078
1080
|
},
|
|
1079
1081
|
{
|
|
@@ -1194,7 +1196,7 @@
|
|
|
1194
1196
|
},
|
|
1195
1197
|
{
|
|
1196
1198
|
"always_on": true,
|
|
1197
|
-
"artefact_count":
|
|
1199
|
+
"artefact_count": 247,
|
|
1198
1200
|
"artefacts": [
|
|
1199
1201
|
"src/agent-src/templates/agents/proposal.example.md",
|
|
1200
1202
|
"src/domains/ai-video/image/analyse/command.md",
|
|
@@ -1372,6 +1374,7 @@
|
|
|
1372
1374
|
"src/rules/source-confidentiality.md",
|
|
1373
1375
|
"src/rules/source-of-truth.md",
|
|
1374
1376
|
"src/rules/telegraph-speak.md",
|
|
1377
|
+
"src/rules/token-budget-discipline.md",
|
|
1375
1378
|
"src/rules/token-efficiency.md",
|
|
1376
1379
|
"src/rules/token-optimizer-maintenance.md",
|
|
1377
1380
|
"src/rules/tool-safety.md",
|
|
@@ -1444,14 +1447,14 @@
|
|
|
1444
1447
|
"src/skills/verify-repair-loop/SKILL.md"
|
|
1445
1448
|
],
|
|
1446
1449
|
"by_lifecycle": {
|
|
1447
|
-
"active":
|
|
1450
|
+
"active": 246,
|
|
1448
1451
|
"archived": 0,
|
|
1449
1452
|
"deprecated": 0,
|
|
1450
1453
|
"experimental": 1
|
|
1451
1454
|
},
|
|
1452
1455
|
"by_trust_level": {
|
|
1453
1456
|
"advisory": 0,
|
|
1454
|
-
"core":
|
|
1457
|
+
"core": 246,
|
|
1455
1458
|
"experimental": 1,
|
|
1456
1459
|
"professional": 0,
|
|
1457
1460
|
"restricted": 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Discovery — Trust Report
|
|
2
2
|
|
|
3
|
-
- Generated: `2026-06-
|
|
3
|
+
- Generated: `2026-06-25T19:49:27Z`
|
|
4
4
|
- Workspaces tracked: **9**
|
|
5
5
|
- Human-review-required artefacts: **3**
|
|
6
6
|
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
|
|
9
9
|
| Workspace | core | professional | experimental | advisory | restricted |
|
|
10
10
|
|---|---|---|---|---|---|
|
|
11
|
-
| `agent-config-maintainer` |
|
|
12
|
-
| `engineering` |
|
|
11
|
+
| `agent-config-maintainer` | 275 | 0 | 2 | 0 | 0 |
|
|
12
|
+
| `engineering` | 105 | 55 | 1 | 0 | 0 |
|
|
13
13
|
| `finance` | 2 | 3 | 0 | 1 | 0 |
|
|
14
14
|
| `founder` | 7 | 0 | 0 | 1 | 0 |
|
|
15
15
|
| `gtm` | 0 | 12 | 0 | 0 | 0 |
|
|
16
|
-
| `legal` | 0 | 0 | 0 | 6 | 0 |
|
|
16
|
+
| `legal-review-prep` | 0 | 0 | 0 | 6 | 0 |
|
|
17
17
|
| `ops` | 0 | 8 | 0 | 0 | 0 |
|
|
18
18
|
| `product` | 0 | 15 | 0 | 0 | 0 |
|
|
19
19
|
| `small-business` | 6 | 0 | 18 | 0 | 0 |
|
|
@@ -23,6 +23,6 @@
|
|
|
23
23
|
| Path | Workspaces | Trust |
|
|
24
24
|
|---|---|---|
|
|
25
25
|
| `src/rules/finance-safety-floor.md` | finance | advisory |
|
|
26
|
-
| `src/rules/legal-safety-floor.md` | legal | advisory |
|
|
26
|
+
| `src/rules/legal-safety-floor.md` | legal-review-prep | advisory |
|
|
27
27
|
| `src/rules/strategy-safety-floor.md` | founder | advisory |
|
|
28
28
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"checksum": "sha256:
|
|
3
|
-
"generated_at": "2026-06-
|
|
2
|
+
"checksum": "sha256:7ac282ee829a39d0fd4f16c8deaca3f449ff9ebe101e8decba1549453156a638",
|
|
3
|
+
"generated_at": "2026-06-25T19:49:27Z",
|
|
4
4
|
"scanner_version": "47c9a32fb265",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
{
|
|
7
|
-
"artefact_count":
|
|
7
|
+
"artefact_count": 170,
|
|
8
8
|
"default_packs": [
|
|
9
9
|
"engineering-base",
|
|
10
10
|
"git"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
],
|
|
28
28
|
"packs": [
|
|
29
29
|
{
|
|
30
|
-
"artefact_count":
|
|
30
|
+
"artefact_count": 96,
|
|
31
31
|
"artefacts": [
|
|
32
32
|
"src/domains/engineering-base/mission/upgrade/command.md",
|
|
33
33
|
"src/rules/commit-conventions.md",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"src/rules/linked-projects-onboarding-gate.md",
|
|
44
44
|
"src/rules/minimal-safe-diff.md",
|
|
45
45
|
"src/rules/non-destructive-by-default.md",
|
|
46
|
+
"src/rules/output-discipline.md",
|
|
46
47
|
"src/rules/scope-control.md",
|
|
47
48
|
"src/rules/security-sensitive-stop.md",
|
|
48
49
|
"src/rules/source-discovery-gate.md",
|
|
@@ -226,10 +227,11 @@
|
|
|
226
227
|
"id": "python"
|
|
227
228
|
},
|
|
228
229
|
{
|
|
229
|
-
"artefact_count":
|
|
230
|
+
"artefact_count": 6,
|
|
230
231
|
"artefacts": [
|
|
231
232
|
"src/rules/icon-consistency.md",
|
|
232
233
|
"src/skills/design-intelligence/SKILL.md",
|
|
234
|
+
"src/skills/design-system-capture/SKILL.md",
|
|
233
235
|
"src/skills/design-tokens/SKILL.md",
|
|
234
236
|
"src/skills/iconography/SKILL.md",
|
|
235
237
|
"src/skills/typography-system/SKILL.md"
|
|
@@ -540,11 +542,11 @@
|
|
|
540
542
|
{
|
|
541
543
|
"artefact_count": 6,
|
|
542
544
|
"default_packs": [
|
|
543
|
-
"legal"
|
|
545
|
+
"legal-review-prep"
|
|
544
546
|
],
|
|
545
|
-
"description": "In-house legal — contract/NDA/DPA review
|
|
546
|
-
"id": "legal",
|
|
547
|
-
"label": "Legal",
|
|
547
|
+
"description": "In-house legal review-prep — EU/DE-scoped contract/NDA/DPA review and triage to PREPARE for attorney review. Not legal advice; opt-in + council-gated.",
|
|
548
|
+
"id": "legal-review-prep",
|
|
549
|
+
"label": "Legal Review Prep",
|
|
548
550
|
"optional_packs": [],
|
|
549
551
|
"packs": [
|
|
550
552
|
{
|
|
@@ -557,12 +559,12 @@
|
|
|
557
559
|
"src/skills/legal-practice-profile/SKILL.md",
|
|
558
560
|
"src/skills/nda-triage/SKILL.md"
|
|
559
561
|
],
|
|
560
|
-
"id": "legal"
|
|
562
|
+
"id": "legal-review-prep"
|
|
561
563
|
}
|
|
562
564
|
]
|
|
563
565
|
},
|
|
564
566
|
{
|
|
565
|
-
"artefact_count":
|
|
567
|
+
"artefact_count": 271,
|
|
566
568
|
"default_packs": [
|
|
567
569
|
"meta",
|
|
568
570
|
"memory",
|
|
@@ -575,7 +577,7 @@
|
|
|
575
577
|
"optional_packs": [],
|
|
576
578
|
"packs": [
|
|
577
579
|
{
|
|
578
|
-
"artefact_count":
|
|
580
|
+
"artefact_count": 247,
|
|
579
581
|
"artefacts": [
|
|
580
582
|
"src/agent-src/templates/agents/proposal.example.md",
|
|
581
583
|
"src/domains/ai-video/image/analyse/command.md",
|
|
@@ -753,6 +755,7 @@
|
|
|
753
755
|
"src/rules/source-confidentiality.md",
|
|
754
756
|
"src/rules/source-of-truth.md",
|
|
755
757
|
"src/rules/telegraph-speak.md",
|
|
758
|
+
"src/rules/token-budget-discipline.md",
|
|
756
759
|
"src/rules/token-efficiency.md",
|
|
757
760
|
"src/rules/token-optimizer-maintenance.md",
|
|
758
761
|
"src/rules/tool-safety.md",
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"discovery": {
|
|
3
|
-
"artefact_count":
|
|
3
|
+
"artefact_count": 514,
|
|
4
4
|
"scanner_version": "47c9a32fb265"
|
|
5
5
|
},
|
|
6
|
-
"generated_at": "2026-06-
|
|
6
|
+
"generated_at": "2026-06-25",
|
|
7
7
|
"package": {
|
|
8
8
|
"description": "Universal AI Agent OS \u2014 audited skills, governance rules, commands, and templates for AI coding tools (Claude Code, Cursor, Windsurf, Copilot).",
|
|
9
9
|
"homepage": "https://github.com/event4u-app/agent-config#readme",
|
|
10
10
|
"name": "@event4u/agent-config",
|
|
11
11
|
"repository": "https://github.com/event4u-app/agent-config",
|
|
12
|
-
"version": "7.
|
|
12
|
+
"version": "7.3.0"
|
|
13
13
|
},
|
|
14
14
|
"registries": [
|
|
15
15
|
{
|
package/dist/router.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schema_version":1,"kernel":["agent-authority","ask-when-uncertain","commit-policy","direct-answers","language-and-tone","no-cheap-questions","non-destructive-by-default","scope-control","user-interrupt-priority","verify-before-complete"],"tier_1":[{"id":"architecture","triggers":[{"keyword":"controller"},{"keyword":"service"},{"keyword":"module"},{"intent":"structural decision"}],"routes_to":[]},{"id":"artifact-engagement-recording","triggers":[{"phrase":"/implement-ticket"},{"phrase":"/work"},{"keyword":"telemetry"}],"routes_to":["contract:artifact-engagement-flow"]},{"id":"autonomous-execution","triggers":[{"intent":"trivial workflow question"},{"intent":"autonomy mode"},{"keyword":"personal.autonomy"}],"routes_to":[]},{"id":"command-suggestion-policy","triggers":[{"phrase":"free-form prompt"},{"phrase":"command suggestion"}],"routes_to":["contract:command-suggestion-flow"]},{"id":"context-hygiene","triggers":[{"intent":"long conversation"},{"intent":"tool loop"},{"intent":"fresh chat"},{"keyword":"3-failure"}],"routes_to":[]},{"id":"copilot-routing","triggers":[{"keyword":"copilot"},{"phrase":"copilot-instructions"},{"phrase":"copilot pr review"}],"routes_to":["skill:copilot-config"]},{"id":"devcontainer-routing","triggers":[{"keyword":"devcontainer"},{"keyword":"codespaces"},{"keyword":"codespace"},{"phrase":"devcontainer.json"}],"routes_to":["skill:devcontainer"]},{"id":"docker-commands","triggers":[{"keyword":"docker"},{"keyword":"artisan"},{"keyword":"composer"},{"phrase":"inside the container"}],"routes_to":["skill:docker"]},{"id":"fast-path-marker-visibility","triggers":[{"keyword":"low-impact council"},{"keyword":"fast-path"},{"keyword":"Resolved via low-impact council"},{"keyword":"low_impact"},{"intent":"low-impact council dispatch"}],"routes_to":[]},{"id":"laravel-routing","triggers":[{"keyword":"laravel"},{"keyword":"artisan"},{"keyword":"eloquent"},{"keyword":"FormRequest"}],"routes_to":["skill: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":[]},{"id":"no-attribution-footers","triggers":[{"intent":"PR body"},{"intent":"commit message"},{"intent":"Jira comment"},{"keyword":"co-authored"}],"routes_to":[]},{"id":"no-decorative-emojis-in-git-surfaces","triggers":[{"intent":"PR title"},{"intent":"PR body"},{"intent":"commit message"},{"intent":"issue title"},{"intent":"post PR comment"},{"keyword":"gh pr create"},{"keyword":"git commit"}],"routes_to":[]},{"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/"},{"intent":"link from stable artifact"},{"intent":"link to council artefact"}],"routes_to":["skill:ai-council"]},{"id":"onboarding-gate","triggers":[{"phrase":"first turn"},{"keyword":"onboarding"},{"path_prefix":".agent-settings.yml"}],"routes_to":[]},{"id":"php-coding","triggers":[{"file_pattern":"*.php"},{"keyword":"phpstan"},{"keyword":"ecs"}],"routes_to":["guideline:php/php-coding-patterns"]},{"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"]},{"id":"skill-quality","triggers":[{"path_prefix":".agent-src.uncondensed/skills/"}],"routes_to":["guideline:agent-infra/skill-quality-checklist"]},{"id":"slash-command-routing-policy","triggers":[{"keyword":"/create-pr"},{"keyword":"/commit"},{"keyword":"/fix-ci"},{"phrase":"slash command"}],"routes_to":["skill:command-routing"]},{"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/"},{"intent":"adopt or harvest from an external repo"},{"intent":"compare against another package"},{"intent":"attribute an idea to an external source"}],"routes_to":[]},{"id":"source-of-truth","triggers":[{"path_prefix":"dist/agent-src/"},{"path_prefix":".augment/"},{"path_prefix":".claude/"},{"path_prefix":".cursor/"}],"routes_to":[]},{"id":"symfony-routing","triggers":[{"keyword":"symfony"},{"keyword":"doctrine"},{"keyword":"twig"},{"keyword":"messenger"}],"routes_to":["skill:symfony-workflow"]},{"id":"telegraph-speak","triggers":[{"intent":"any reply"}],"routes_to":[]},{"id":"user-interaction","triggers":[{"intent":"ask user a question"},{"intent":"numbered options"},{"intent":"summarizing progress"}],"routes_to":[]}],"tier_2":[{"id":"artifact-drafting-protocol","triggers":[{"intent":"create new skill"},{"intent":"create new rule"},{"intent":"create new command"},{"intent":"create new guideline"}],"routes_to":[]},{"id":"augment-edit-discipline","triggers":[{"path_prefix":".augment/"},{"path_prefix":".agent-src.uncondensed/"},{"keyword":"portable"},{"keyword":"rename"},{"keyword":"delete"}],"routes_to":["guideline:augment-portability-patterns","skill:agent-docs-writing"]},{"id":"brand-consistency","triggers":[{"keyword":"brand"},{"keyword":"on-brand"},{"keyword":"off-brand"},{"keyword":"brand voice"},{"keyword":"brand tokens"},{"phrase":"brand consistency"},{"phrase":"on brand"}],"routes_to":[]},{"id":"brand-source-of-truth","triggers":[{"keyword":"brand tokens"},{"keyword":"brand voice"},{"keyword":"brand guide"},{"keyword":"brand profile"},{"phrase":"brand source of truth"}],"routes_to":[]},{"id":"cli-output-handling","triggers":[{"keyword":"git"},{"keyword":"phpstan"},{"keyword":"rector"},{"keyword":"phpunit"},{"keyword":"composer"}],"routes_to":["skill:rtk-output-filtering"]},{"id":"commit-conventions","triggers":[{"keyword":"commit"},{"keyword":"branch"},{"phrase":"conventional commits"}],"routes_to":["skill:conventional-commits-writing"]},{"id":"delegation-policy","triggers":[{"keyword":"delegate"},{"keyword":"orchestrate"},{"keyword":"subagent"},{"keyword":"parallel"},{"phrase":"review these"},{"phrase":"analyze the codebase"},{"phrase":"for each"}],"routes_to":["skill:subagent-orchestration"]},{"id":"design-fidelity","triggers":[{"keyword":"prototype"},{"keyword":"mockup"},{"keyword":"wireframe"},{"keyword":"design system"},{"keyword":"design spec"},{"keyword":"Figma"},{"phrase":"match the design"},{"phrase":"build this design"},{"phrase":"design fidelity"},{"phrase":"stick to the design"}],"routes_to":[]},{"id":"domain-adoption-policy","triggers":[{"intent":"adopt new domain"},{"intent":"harvest new domain track"},{"intent":"open a domain plate"},{"keyword":"mobile track"},{"keyword":"ml track"},{"keyword":"blockchain track"},{"path_prefix":".agent-src.uncondensed/skills/"}],"routes_to":[]},{"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":"valuation"},{"keyword":"DCF"},{"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"]},{"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"]},{"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"]},{"id":"downstream-changes","triggers":[{"intent":"after code edit"},{"keyword":"callers"},{"keyword":"imports"},{"keyword":"downstream"}],"routes_to":[]},{"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"]},{"id":"external-reference-deep-dive","triggers":[{"intent":"look at how X does it"},{"intent":"compare with reference repo"},{"intent":"use as template / vorlage"},{"intent":"wie macht es X"},{"intent":"vergleiche mit Y"},{"intent":"schau dir Z an"},{"intent":"study this competitor"},{"keyword":"github.com/"},{"keyword":"source of truth"},{"phrase":"reference repo"}],"routes_to":[]},{"id":"finance-safety-floor","triggers":[{"keyword":"runway"},{"keyword":"burn"},{"keyword":"valuation"},{"keyword":"DCF"},{"keyword":"IRR"},{"keyword":"MOIC"},{"keyword":"LTV"},{"keyword":"CAC"},{"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"]},{"id":"framework-neutrality-in-generic-skills","triggers":[{"path_prefix":".agent-src.uncondensed/skills/"},{"path_prefix":".agent-src.uncondensed/rules/"},{"path_prefix":".agent-src.uncondensed/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":[]},{"id":"git-history-discipline","triggers":[{"intent":"rebase the branch"},{"intent":"squash commits"},{"intent":"clean up commit history"},{"intent":"fold this into the previous commit"},{"intent":"tidy history after pushing"},{"intent":"reseat the branch base"},{"intent":"exclude these commits from the branch"},{"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"]},{"id":"icon-consistency","triggers":[{"keyword":"icon"},{"keyword":"iconography"},{"keyword":"lucide"},{"keyword":"heroicons"},{"keyword":"icon set"},{"phrase":"icon system"}],"routes_to":[]},{"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":[]},{"id":"improve-before-implement","triggers":[{"intent":"implement feature"},{"intent":"architectural change"},{"keyword":"refactor"}],"routes_to":[]},{"id":"invite-challenge","triggers":[{"intent":"complex plan"},{"intent":"design decision"},{"intent":"architectural plan"},{"intent":"multi-step implementation"},{"keyword":"plan"},{"keyword":"design"},{"keyword":"architecture"},{"keyword":"approach"}],"routes_to":[]},{"id":"laravel-translations","triggers":[{"path_prefix":"lang/"},{"keyword":"translation"},{"keyword":"__()"},{"keyword":"trans("}],"routes_to":["skill: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"]},{"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":[]},{"id":"linked-projects-onboarding-gate","triggers":[{"intent":"work across two projects"},{"intent":"sibling repository"},{"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"]},{"id":"markdown-safe-codeblocks","triggers":[{"intent":"markdown with code blocks"},{"keyword":"triple backticks"},{"file_pattern":"*.md"}],"routes_to":[]},{"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":[]},{"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":[]},{"id":"minimal-safe-diff","triggers":[{"intent":"writing a diff"},{"intent":"reviewing a diff"},{"keyword":"drive-by"}],"routes_to":[]},{"id":"missing-tool-handling","triggers":[{"keyword":"command not found"},{"keyword":"not installed"},{"intent":"install tool"}],"routes_to":["guideline:agent-infra/missing-tool-handling"]},{"id":"model-recommendation","triggers":[{"phrase":"switch task"},{"phrase":"new task"},{"phrase":"which model"},{"keyword":"model_tier"}],"routes_to":["guideline:agent-infra/model-recommendation"]},{"id":"no-pr-progress-comments","triggers":[{"intent":"post PR comment"},{"intent":"PR status update"},{"intent":"CI fix progress"},{"keyword":"gh pr comment"},{"keyword":"PullRequestComment"}],"routes_to":[]},{"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"]},{"id":"persona-governance","triggers":[{"path_prefix":".agent-src.uncondensed/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"]},{"id":"preservation-guard","triggers":[{"intent":"merge skill"},{"intent":"condense rule"},{"intent":"refactor artifact"},{"keyword":"Iron Law"}],"routes_to":[]},{"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"]},{"id":"reviewer-awareness","triggers":[{"keyword":"reviewer"},{"phrase":"suggest reviewers"},{"phrase":"risk hotspot"},{"phrase":"ownership map"}],"routes_to":["skill:review-routing"]},{"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":[]},{"id":"role-mode-adherence","triggers":[{"keyword":"active_role"},{"keyword":"role-mode"},{"intent":"mode marker"}],"routes_to":[]},{"id":"rule-type-governance","triggers":[{"path_prefix":".agent-src.uncondensed/rules/"}],"routes_to":["guideline:agent-infra/rule-type-governance"]},{"id":"runtime-safety","triggers":[{"keyword":"execution"},{"keyword":"automated"},{"keyword":"assisted"},{"keyword":"handler"}],"routes_to":[]},{"id":"security-sensitive-stop","triggers":[{"keyword":"auth"},{"keyword":"billing"},{"keyword":"tenant"},{"keyword":"secret"},{"keyword":"webhook"}],"routes_to":[]},{"id":"skill-improvement-trigger","triggers":[{"phrase":"after completing"},{"keyword":"improvement"},{"keyword":"pipeline"}],"routes_to":["skill:skill-improvement-pipeline"]},{"id":"source-discovery-gate","triggers":[{"intent":"before coding"},{"intent":"DB-driven work"},{"keyword":"schema"},{"keyword":"endpoint"},{"phrase":"new API"},{"phrase":"unknown API"},{"phrase":"new vendor package"},{"phrase":"which fields"}],"routes_to":["skill:source-discovery"]},{"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"]},{"id":"think-before-action","triggers":[{"intent":"before coding"},{"intent":"before debugging"},{"intent":"before modifying"}],"routes_to":[]},{"id":"token-efficiency","triggers":[{"intent":"verbose CLI output"},{"intent":"fetching logs"},{"keyword":"minimize tool calls"}],"routes_to":[]},{"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"]},{"id":"tool-safety","triggers":[{"keyword":"allowed_tools"},{"keyword":"tool registry"},{"intent":"external API"}],"routes_to":[]},{"id":"ui-audit-gate","triggers":[{"path_prefix":"resources/views/"},{"path_prefix":"resources/js/"},{"keyword":"component"},{"keyword":"design token"}],"routes_to":["skill:existing-ui-audit","skill:iconography","skill:typography-system"]},{"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":[]},{"id":"upstream-proposal","triggers":[{"phrase":"after creating"},{"phrase":"after improving"},{"keyword":"upstream"}],"routes_to":["skill:upstream-contribute"]}],"profiles":{"minimal":["__kernel__"],"balanced":["__kernel__","__tier_1__"],"full":["__kernel__","__tier_1__","__tier_2__"]}}
|
|
1
|
+
{"schema_version":1,"kernel":["agent-authority","ask-when-uncertain","commit-policy","direct-answers","language-and-tone","no-cheap-questions","non-destructive-by-default","scope-control","user-interrupt-priority","verify-before-complete"],"tier_1":[{"id":"architecture","triggers":[{"keyword":"controller"},{"keyword":"service"},{"keyword":"module"},{"intent":"structural decision"}],"routes_to":[]},{"id":"artifact-engagement-recording","triggers":[{"phrase":"/implement-ticket"},{"phrase":"/work"},{"keyword":"telemetry"}],"routes_to":["contract:artifact-engagement-flow"]},{"id":"autonomous-execution","triggers":[{"intent":"trivial workflow question"},{"intent":"autonomy mode"},{"keyword":"personal.autonomy"}],"routes_to":[]},{"id":"command-suggestion-policy","triggers":[{"phrase":"free-form prompt"},{"phrase":"command suggestion"}],"routes_to":["contract:command-suggestion-flow"]},{"id":"context-hygiene","triggers":[{"intent":"long conversation"},{"intent":"tool loop"},{"intent":"fresh chat"},{"keyword":"3-failure"}],"routes_to":[]},{"id":"copilot-routing","triggers":[{"keyword":"copilot"},{"phrase":"copilot-instructions"},{"phrase":"copilot pr review"}],"routes_to":["skill:copilot-config"]},{"id":"devcontainer-routing","triggers":[{"keyword":"devcontainer"},{"keyword":"codespaces"},{"keyword":"codespace"},{"phrase":"devcontainer.json"}],"routes_to":["skill:devcontainer"]},{"id":"docker-commands","triggers":[{"keyword":"docker"},{"keyword":"artisan"},{"keyword":"composer"},{"phrase":"inside the container"}],"routes_to":["skill:docker"]},{"id":"fast-path-marker-visibility","triggers":[{"keyword":"low-impact council"},{"keyword":"fast-path"},{"keyword":"Resolved via low-impact council"},{"keyword":"low_impact"},{"intent":"low-impact council dispatch"}],"routes_to":[]},{"id":"laravel-routing","triggers":[{"keyword":"laravel"},{"keyword":"artisan"},{"keyword":"eloquent"},{"keyword":"FormRequest"}],"routes_to":["skill: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":[]},{"id":"no-attribution-footers","triggers":[{"intent":"PR body"},{"intent":"commit message"},{"intent":"Jira comment"},{"keyword":"co-authored"}],"routes_to":[]},{"id":"no-decorative-emojis-in-git-surfaces","triggers":[{"intent":"PR title"},{"intent":"PR body"},{"intent":"commit message"},{"intent":"issue title"},{"intent":"post PR comment"},{"keyword":"gh pr create"},{"keyword":"git commit"}],"routes_to":[]},{"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/"},{"intent":"link from stable artifact"},{"intent":"link to council artefact"}],"routes_to":["skill:ai-council"]},{"id":"onboarding-gate","triggers":[{"phrase":"first turn"},{"keyword":"onboarding"},{"path_prefix":".agent-settings.yml"}],"routes_to":[]},{"id":"php-coding","triggers":[{"file_pattern":"*.php"},{"keyword":"phpstan"},{"keyword":"ecs"}],"routes_to":["guideline:php/php-coding-patterns"]},{"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"]},{"id":"skill-quality","triggers":[{"path_prefix":".agent-src.uncondensed/skills/"}],"routes_to":["guideline:agent-infra/skill-quality-checklist"]},{"id":"slash-command-routing-policy","triggers":[{"keyword":"/create-pr"},{"keyword":"/commit"},{"keyword":"/fix-ci"},{"phrase":"slash command"}],"routes_to":["skill:command-routing"]},{"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/"},{"intent":"adopt or harvest from an external repo"},{"intent":"compare against another package"},{"intent":"attribute an idea to an external source"}],"routes_to":[]},{"id":"source-of-truth","triggers":[{"path_prefix":"dist/agent-src/"},{"path_prefix":".augment/"},{"path_prefix":".claude/"},{"path_prefix":".cursor/"}],"routes_to":[]},{"id":"symfony-routing","triggers":[{"keyword":"symfony"},{"keyword":"doctrine"},{"keyword":"twig"},{"keyword":"messenger"}],"routes_to":["skill:symfony-workflow"]},{"id":"telegraph-speak","triggers":[{"intent":"any reply"}],"routes_to":[]},{"id":"user-interaction","triggers":[{"intent":"ask user a question"},{"intent":"numbered options"},{"intent":"summarizing progress"}],"routes_to":[]}],"tier_2":[{"id":"artifact-drafting-protocol","triggers":[{"intent":"create new skill"},{"intent":"create new rule"},{"intent":"create new command"},{"intent":"create new guideline"}],"routes_to":[]},{"id":"augment-edit-discipline","triggers":[{"path_prefix":".augment/"},{"path_prefix":".agent-src.uncondensed/"},{"keyword":"portable"},{"keyword":"rename"},{"keyword":"delete"}],"routes_to":["guideline:augment-portability-patterns","skill:agent-docs-writing"]},{"id":"brand-consistency","triggers":[{"keyword":"brand"},{"keyword":"on-brand"},{"keyword":"off-brand"},{"keyword":"brand voice"},{"keyword":"brand tokens"},{"phrase":"brand consistency"},{"phrase":"on brand"}],"routes_to":[]},{"id":"brand-source-of-truth","triggers":[{"keyword":"brand tokens"},{"keyword":"brand voice"},{"keyword":"brand guide"},{"keyword":"brand profile"},{"phrase":"brand source of truth"}],"routes_to":[]},{"id":"cli-output-handling","triggers":[{"keyword":"git"},{"keyword":"phpstan"},{"keyword":"rector"},{"keyword":"phpunit"},{"keyword":"composer"}],"routes_to":["skill:rtk-output-filtering"]},{"id":"commit-conventions","triggers":[{"keyword":"commit"},{"keyword":"branch"},{"phrase":"conventional commits"}],"routes_to":["skill:conventional-commits-writing"]},{"id":"delegation-policy","triggers":[{"keyword":"delegate"},{"keyword":"orchestrate"},{"keyword":"subagent"},{"keyword":"parallel"},{"phrase":"review these"},{"phrase":"analyze the codebase"},{"phrase":"for each"}],"routes_to":["skill:subagent-orchestration"]},{"id":"design-fidelity","triggers":[{"keyword":"prototype"},{"keyword":"mockup"},{"keyword":"wireframe"},{"keyword":"design system"},{"keyword":"design spec"},{"keyword":"Figma"},{"phrase":"match the design"},{"phrase":"build this design"},{"phrase":"design fidelity"},{"phrase":"stick to the design"}],"routes_to":[]},{"id":"domain-adoption-policy","triggers":[{"intent":"adopt new domain"},{"intent":"harvest new domain track"},{"intent":"open a domain plate"},{"keyword":"mobile track"},{"keyword":"ml track"},{"keyword":"blockchain track"},{"path_prefix":".agent-src.uncondensed/skills/"}],"routes_to":[]},{"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":"valuation"},{"keyword":"DCF"},{"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"]},{"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"]},{"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"]},{"id":"downstream-changes","triggers":[{"intent":"after code edit"},{"keyword":"callers"},{"keyword":"imports"},{"keyword":"downstream"}],"routes_to":[]},{"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"]},{"id":"external-reference-deep-dive","triggers":[{"intent":"look at how X does it"},{"intent":"compare with reference repo"},{"intent":"use as template / vorlage"},{"intent":"wie macht es X"},{"intent":"vergleiche mit Y"},{"intent":"schau dir Z an"},{"intent":"study this competitor"},{"keyword":"github.com/"},{"keyword":"source of truth"},{"phrase":"reference repo"}],"routes_to":[]},{"id":"finance-safety-floor","triggers":[{"keyword":"runway"},{"keyword":"burn"},{"keyword":"valuation"},{"keyword":"DCF"},{"keyword":"IRR"},{"keyword":"MOIC"},{"keyword":"LTV"},{"keyword":"CAC"},{"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"]},{"id":"framework-neutrality-in-generic-skills","triggers":[{"path_prefix":".agent-src.uncondensed/skills/"},{"path_prefix":".agent-src.uncondensed/rules/"},{"path_prefix":".agent-src.uncondensed/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":[]},{"id":"git-history-discipline","triggers":[{"intent":"rebase the branch"},{"intent":"squash commits"},{"intent":"clean up commit history"},{"intent":"fold this into the previous commit"},{"intent":"tidy history after pushing"},{"intent":"reseat the branch base"},{"intent":"exclude these commits from the branch"},{"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"]},{"id":"icon-consistency","triggers":[{"keyword":"icon"},{"keyword":"iconography"},{"keyword":"lucide"},{"keyword":"heroicons"},{"keyword":"icon set"},{"phrase":"icon system"}],"routes_to":[]},{"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":[]},{"id":"improve-before-implement","triggers":[{"intent":"implement feature"},{"intent":"architectural change"},{"keyword":"refactor"}],"routes_to":[]},{"id":"invite-challenge","triggers":[{"intent":"complex plan"},{"intent":"design decision"},{"intent":"architectural plan"},{"intent":"multi-step implementation"},{"keyword":"plan"},{"keyword":"design"},{"keyword":"architecture"},{"keyword":"approach"}],"routes_to":[]},{"id":"laravel-translations","triggers":[{"path_prefix":"lang/"},{"keyword":"translation"},{"keyword":"__()"},{"keyword":"trans("}],"routes_to":["skill: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"]},{"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":[]},{"id":"linked-projects-onboarding-gate","triggers":[{"intent":"work across two projects"},{"intent":"sibling repository"},{"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"]},{"id":"markdown-safe-codeblocks","triggers":[{"intent":"markdown with code blocks"},{"keyword":"triple backticks"},{"file_pattern":"*.md"}],"routes_to":[]},{"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":[]},{"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":[]},{"id":"minimal-safe-diff","triggers":[{"intent":"writing a diff"},{"intent":"reviewing a diff"},{"keyword":"drive-by"}],"routes_to":[]},{"id":"missing-tool-handling","triggers":[{"keyword":"command not found"},{"keyword":"not installed"},{"intent":"install tool"}],"routes_to":["guideline:agent-infra/missing-tool-handling"]},{"id":"model-recommendation","triggers":[{"phrase":"switch task"},{"phrase":"new task"},{"phrase":"which model"},{"keyword":"model_tier"}],"routes_to":["guideline:agent-infra/model-recommendation"]},{"id":"no-pr-progress-comments","triggers":[{"intent":"post PR comment"},{"intent":"PR status update"},{"intent":"CI fix progress"},{"keyword":"gh pr comment"},{"keyword":"PullRequestComment"}],"routes_to":[]},{"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"]},{"id":"output-discipline","triggers":[{"intent":"generating code or multi-section output"},{"keyword":"// rest of component"},{"keyword":"for brevity"},{"keyword":"rest follows the same pattern"},{"phrase":"similar pattern"}],"routes_to":[]},{"id":"persona-governance","triggers":[{"path_prefix":".agent-src.uncondensed/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"]},{"id":"preservation-guard","triggers":[{"intent":"merge skill"},{"intent":"condense rule"},{"intent":"refactor artifact"},{"keyword":"Iron Law"}],"routes_to":[]},{"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"]},{"id":"reviewer-awareness","triggers":[{"keyword":"reviewer"},{"phrase":"suggest reviewers"},{"phrase":"risk hotspot"},{"phrase":"ownership map"}],"routes_to":["skill:review-routing"]},{"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":[]},{"id":"role-mode-adherence","triggers":[{"keyword":"active_role"},{"keyword":"role-mode"},{"intent":"mode marker"}],"routes_to":[]},{"id":"rule-type-governance","triggers":[{"path_prefix":".agent-src.uncondensed/rules/"}],"routes_to":["guideline:agent-infra/rule-type-governance"]},{"id":"runtime-safety","triggers":[{"keyword":"execution"},{"keyword":"automated"},{"keyword":"assisted"},{"keyword":"handler"}],"routes_to":[]},{"id":"security-sensitive-stop","triggers":[{"keyword":"auth"},{"keyword":"billing"},{"keyword":"tenant"},{"keyword":"secret"},{"keyword":"webhook"}],"routes_to":[]},{"id":"skill-improvement-trigger","triggers":[{"phrase":"after completing"},{"keyword":"improvement"},{"keyword":"pipeline"}],"routes_to":["skill:skill-improvement-pipeline"]},{"id":"source-discovery-gate","triggers":[{"intent":"before coding"},{"intent":"DB-driven work"},{"keyword":"schema"},{"keyword":"endpoint"},{"phrase":"new API"},{"phrase":"unknown API"},{"phrase":"new vendor package"},{"phrase":"which fields"}],"routes_to":["skill:source-discovery"]},{"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"]},{"id":"think-before-action","triggers":[{"intent":"before coding"},{"intent":"before debugging"},{"intent":"before modifying"}],"routes_to":[]},{"id":"token-budget-discipline","triggers":[{"keyword":"token_budget_class"},{"keyword":"rich skill"},{"intent":"editing a rich-tagged skill"}],"routes_to":[]},{"id":"token-efficiency","triggers":[{"intent":"verbose CLI output"},{"intent":"fetching logs"},{"keyword":"minimize tool calls"}],"routes_to":[]},{"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"]},{"id":"tool-safety","triggers":[{"keyword":"allowed_tools"},{"keyword":"tool registry"},{"intent":"external API"}],"routes_to":[]},{"id":"ui-audit-gate","triggers":[{"path_prefix":"resources/views/"},{"path_prefix":"resources/js/"},{"keyword":"component"},{"keyword":"design token"}],"routes_to":["skill:existing-ui-audit","skill:iconography","skill:typography-system"]},{"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":[]},{"id":"upstream-proposal","triggers":[{"phrase":"after creating"},{"phrase":"after improving"},{"keyword":"upstream"}],"routes_to":["skill:upstream-contribute"]}],"profiles":{"minimal":["__kernel__"],"balanced":["__kernel__","__tier_1__"],"full":["__kernel__","__tier_1__","__tier_2__"]}}
|
|
@@ -34,10 +34,11 @@ const LEGACY_SETTINGS_REL = '.agent-settings.yml';
|
|
|
34
34
|
// Step count mirrors the UI's `getWizardSteps` plan in `src/ui/wizard/steps.ts`.
|
|
35
35
|
// Bump in lockstep. Default flow = welcome + 7 core steps (editor, personality,
|
|
36
36
|
// cost, roadmap-quality, memory, user-md, review) → 8. Extended mode prepends
|
|
37
|
-
// the install-only lead (ai-tools + roles + packs) →
|
|
38
|
-
// its own top-level surface (not a wizard step); modules on the
|
|
37
|
+
// the install-only lead (ai-tools + roles + packs + legal-consent) → 12. AI
|
|
38
|
+
// Council lives on its own top-level surface (not a wizard step); modules on the
|
|
39
|
+
// Projekt surface.
|
|
39
40
|
const DEFAULT_TOTAL_STEPS = 8;
|
|
40
|
-
const EXTENDED_TOTAL_STEPS =
|
|
41
|
+
const EXTENDED_TOTAL_STEPS = 12;
|
|
41
42
|
/**
|
|
42
43
|
* Discovery-manifest path. Resolved from the package root the server
|
|
43
44
|
* was booted with — same artefact the installer reads (ADR-015 locks
|