llm-orchestrator 1.3.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +27 -13
  3. package/SKILL.md +11 -1
  4. package/adapters/agents.mjs +111 -12
  5. package/adapters/commands.mjs +10 -2
  6. package/agents/adversarial-skeptic.md +43 -3
  7. package/agents/backend-fixer.md +41 -3
  8. package/agents/code-reviewer.md +44 -3
  9. package/agents/code-simplifier.md +41 -3
  10. package/agents/db-concurrency-specialist.md +45 -3
  11. package/agents/db-migration-author.md +44 -3
  12. package/agents/explore.md +43 -3
  13. package/agents/frontend-fixer.md +42 -3
  14. package/agents/frontend-specialist.md +43 -3
  15. package/agents/general.md +40 -3
  16. package/agents/orchestrator.md +46 -3
  17. package/agents/production-telemetry-collector.md +45 -3
  18. package/agents/provider-webhook-specialist.md +44 -3
  19. package/agents/route-data-flow-tracer.md +43 -3
  20. package/agents/test-engineer.md +42 -3
  21. package/bin/attribution-check.mjs +1 -1
  22. package/bin/doctor.mjs +8 -6
  23. package/commands/incident-close.md +10 -0
  24. package/commands/incident-evidence.md +10 -0
  25. package/commands/incident-fix.md +10 -0
  26. package/commands/incident-start.md +10 -0
  27. package/commands/incident-verify.md +10 -0
  28. package/commands/orchestrate.md +10 -0
  29. package/commands/task-cancel.md +10 -0
  30. package/commands/task-plan.md +10 -0
  31. package/commands/task-status.md +10 -0
  32. package/commands/task-verify.md +10 -0
  33. package/commands/task.md +70 -0
  34. package/lib/adapter-renderer.mjs +5 -1
  35. package/lib/capability-resolver.mjs +59 -5
  36. package/lib/first-run.mjs +42 -1
  37. package/lib/project-discovery.mjs +4 -0
  38. package/package.json +2 -1
  39. package/policies/capabilities.md +27 -10
  40. package/protocol.md +3 -1
  41. package/registries/agent-roles.json +329 -10
  42. package/registries/capabilities.json +1 -1
  43. package/registries/core-profile.json +29 -0
  44. package/registries/preferred-tools.json +21 -2
  45. package/registries/task-mappings.json +10 -6
  46. package/schemas/agent-roles.schema.json +88 -1
  47. package/schemas/capability-contract.schema.json +1 -0
  48. package/workflows/bug-fix.md +4 -0
  49. package/workflows/feature.md +9 -1
  50. package/workflows/investigation.md +4 -0
  51. package/workflows/refactor.md +4 -0
  52. package/workflows/review.md +4 -0
@@ -54,6 +54,7 @@
54
54
  "skills",
55
55
  "mcps",
56
56
  "best_for",
57
+ "charter",
57
58
  "permission_profile",
58
59
  "default_tier"
59
60
  ],
@@ -79,13 +80,99 @@
79
80
  },
80
81
  "mcps": {
81
82
  "type": "array",
83
+ "description": "Real MCP server ids only (an id or alias of an installable MCP in registries/preferred-tools.json). A capability whose implementation the project binds goes in tool_capabilities instead.",
82
84
  "items": {
83
- "type": "string"
85
+ "type": "string",
86
+ "pattern": "^[a-z0-9][a-z0-9_-]*$"
87
+ }
88
+ },
89
+ "tool_capabilities": {
90
+ "type": "array",
91
+ "description": "Capability classes the role needs whose concrete tool the project binds (a database client, a provider API). Rendered as capabilities, never as a server name to search for.",
92
+ "items": {
93
+ "type": "object",
94
+ "required": [
95
+ "capability",
96
+ "label"
97
+ ],
98
+ "properties": {
99
+ "capability": {
100
+ "type": "string",
101
+ "pattern": "^[a-z][a-z_]*\\.[a-z][a-z_.]*$",
102
+ "description": "Capability id, as used in registries/preferred-tools.json and registries/task-mappings.json."
103
+ },
104
+ "label": {
105
+ "type": "string",
106
+ "minLength": 1,
107
+ "pattern": "^[^\\r\\n`]+$",
108
+ "description": "Plain-language name of the capability class, e.g. 'database client'."
109
+ }
110
+ },
111
+ "additionalProperties": false
84
112
  }
85
113
  },
86
114
  "best_for": {
87
115
  "type": "string"
88
116
  },
117
+ "charter": {
118
+ "type": "object",
119
+ "description": "Role-specific operating charter rendered into the body of each native agent file by adapters/agents.mjs. Every string is one line of plain prose.",
120
+ "required": [
121
+ "mission",
122
+ "principles",
123
+ "done_when",
124
+ "never",
125
+ "handoff"
126
+ ],
127
+ "properties": {
128
+ "mission": {
129
+ "type": "string",
130
+ "minLength": 1,
131
+ "pattern": "^[^\\r\\n]+$",
132
+ "description": "One-sentence identity, in second person."
133
+ },
134
+ "principles": {
135
+ "type": "array",
136
+ "minItems": 3,
137
+ "maxItems": 5,
138
+ "items": {
139
+ "type": "string",
140
+ "minLength": 1,
141
+ "pattern": "^[^\\r\\n]+$"
142
+ },
143
+ "description": "Concrete operating rules specific to this role."
144
+ },
145
+ "done_when": {
146
+ "type": "array",
147
+ "minItems": 2,
148
+ "maxItems": 4,
149
+ "items": {
150
+ "type": "string",
151
+ "minLength": 1,
152
+ "pattern": "^[^\\r\\n]+$"
153
+ },
154
+ "description": "Observable exit criteria."
155
+ },
156
+ "never": {
157
+ "type": "array",
158
+ "minItems": 2,
159
+ "maxItems": 4,
160
+ "items": {
161
+ "type": "string",
162
+ "minLength": 1,
163
+ "pattern": "^[^\\r\\n]+$"
164
+ },
165
+ "description": "Role-specific prohibitions."
166
+ },
167
+ "handoff": {
168
+ "type": "string",
169
+ "minLength": 1,
170
+ "pattern": "^[^\\r\\n]+$",
171
+ "description": "What the role returns to its parent."
172
+ }
173
+ },
174
+ "additionalProperties": false
175
+ },
89
176
  "permission_profile": {
90
177
  "type": "string"
91
178
  },
@@ -25,6 +25,7 @@
25
25
  "required": ["type"],
26
26
  "properties": {
27
27
  "type": { "type": "string", "minLength": 1 },
28
+ "domain": { "type": "string", "description": "The pre-evaluation domain (FRONTEND, BACKEND, DB, INFRA, UNKNOWN or a project domain); matched case-insensitively by any_task_domains." },
28
29
  "signals": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
29
30
  "requires_shell": { "type": "boolean" },
30
31
  "nontrivial": { "type": "boolean" },
@@ -11,6 +11,10 @@
11
11
  reproduction, does not pass G1.
12
12
  - Exactly one falsifiable hypothesis at G2, recorded in `hypothesis:{task_id}`.
13
13
  - A regression test that is **observed RED** before the fix, then GREEN after.
14
+ - **`impeccable` when the defect is in UI or visual design** (`ui.design_system`): **Evidence** —
15
+ `/impeccable audit` on the affected surface; **Fix** — `/impeccable harden` for error, overflow,
16
+ i18n and edge-case defects; **Verify** — `/impeccable audit` again on the same surface. Another
17
+ design skill never stands in for it silently.
14
18
 
15
19
  ## Optional (trigger)
16
20
 
@@ -11,11 +11,19 @@
11
11
  - **The test-engineer writes the failing test first.** No builder is dispatched before G3 RED.
12
12
  - Discover project conventions and acceptance criteria before designing against them.
13
13
  - Independent review wherever a risk floor applies.
14
+ - **`impeccable` on any UI** (domain `FRONTEND`, or the feature creates or changes UI or visual
15
+ design — `ui.design_system`): **Plan** — `/impeccable init` when the project has no `PRODUCT.md`,
16
+ then `/impeccable shape` before any UI code; **Build** — an ordinary `/impeccable` new-work
17
+ request after `shape`, or the targeted command the plan names (`layout`, `typeset`, `colorize`,
18
+ `animate`, `adapt`, …); **Review** — `/impeccable critique` + `/impeccable audit` on the changed
19
+ surface; **Verify** — `/impeccable polish` before G5. Design-system, UI-styling,
20
+ `frontend-design` and `ui-ux-pro-max` skills are complements, never a substitute.
14
21
 
15
22
  ## Optional (trigger)
16
23
 
17
24
  - `context7` — any library or SDK API surface, **including familiar ones**; training data lags.
18
- - Design-system + UI-styling skills — any new UI.
25
+ - Design-system + UI-styling skills — alongside `impeccable` when the project has its own design
26
+ system to follow.
19
27
  - Payment-provider best-practices skill — the change touches a money path.
20
28
  - Semantic-code MCP — a large cross-file edit.
21
29
 
@@ -19,6 +19,10 @@
19
19
  explicit refusal continue in declared degraded mode with a `degraded: exa` line and those claims
20
20
  labelled unverified.
21
21
 
22
+ - **`impeccable` when the question is about UI or visual design** (`ui.design_system`): **Evidence**
23
+ — `/impeccable critique` and `/impeccable audit` on the surface in question, read-only; the
24
+ report cites their findings.
25
+
22
26
  ## Optional (trigger)
23
27
 
24
28
  - Semantic-code MCP — symbol-level questions across a large codebase.
@@ -11,6 +11,10 @@
11
11
  - Identify behavior and compatibility invariants before touching anything. Externally visible
12
12
  contracts are preserved — no renamed error keys, no removed response fields, no moved routes.
13
13
  - Small transformations with disjoint ownership, each verifiable on its own.
14
+ - **`impeccable` when the refactor touches UI** (`ui.design_system`): **Analyze** —
15
+ `/impeccable audit` for the baseline; **Incremental** — `/impeccable extract` to pull repeated styles into
16
+ tokens and components; **Review** — `/impeccable audit` against the baseline (no new findings)
17
+ and `/impeccable polish` for design-system alignment. Never a silent substitute.
14
18
 
15
19
  ## Optional (trigger)
16
20
 
@@ -15,6 +15,10 @@
15
15
  described as independent.
16
16
  - Minor findings and out-of-scope calls are batched into one explicit "skip or fix?" question — never
17
17
  silently parked.
18
+ - **`impeccable` when the diff or target is UI or visual design** (`ui.design_system`): **Analyze** —
19
+ `/impeccable critique` (UX review) + `/impeccable audit` (accessibility, performance, responsive,
20
+ anti-pattern detectors); their findings join the severity-ranked list. A guidelines skill
21
+ complements them, never replaces them.
18
22
 
19
23
  ## Optional (trigger)
20
24