@@ -93,44 +93,91 @@ When the user invokes `/<skill-name>`, parse their intent:
9393- The skill body should NOT duplicate workflow instructions — those come from
9494 the MCP server via ` start_workflow ` .
9595
96+ ## Proactive invocation
97+
98+ A routing skill doesn't have to wait for an explicit ` /command ` . The skill
99+ description in the frontmatter tells the agent when to activate. If the
100+ description says "TRIGGER when: user asks to build a feature, fix a bug, or
101+ add functionality," the agent invokes the skill automatically when it
102+ recognizes that intent — the same way a Claude Code skill with a TRIGGER
103+ clause works.
104+
105+ This is the key difference between a routing skill and a plain workflow
106+ shortcut. The routing skill encodes domain knowledge about * when* to start
107+ a workflow, not just * which* workflow to start.
108+
109+ ### Example: spec-driven feature request
110+
111+ The user says:
112+
113+ > Add a WebSocket notification system so users get real-time updates when
114+ > their reports finish processing.
115+
116+ The agent recognizes this is new functionality that needs a spec before
117+ implementation. The ` /engineering ` skill activates proactively:
118+
119+ 1 . The skill calls ` get_workflows ` and finds both ` engineer/implement ` and
120+ ` spec_driven_development/full ` are available.
121+ 2 . The user's request describes net-new functionality with no existing spec
122+ or issue — this matches ` spec_driven_development/full ` (constitution →
123+ specification → planning → task generation → implementation).
124+ 3 . The skill calls ` start_workflow ` with
125+ ` job_name: "spec_driven_development" ` , ` workflow_name: "full" ` .
126+ 4 . Once the spec workflow completes and produces an implementation plan, the
127+ agent can start ` engineer/implement ` to execute the plan with TDD
128+ discipline.
129+
130+ If instead the user said "fix the login bug from issue #42 ," the skill would
131+ route to ` engineer/implement ` directly — the issue already exists and no spec
132+ phase is needed.
133+
96134## Example: ` /engineering `
97135
98- Routes to the ` engineer ` library job. A focused routing skill over a single
99- job with two workflows.
136+ Routes to the ` engineer ` and ` spec_driven_development ` library jobs. The
137+ skill decides whether the user's request needs a spec phase first or can go
138+ straight to implementation.
100139
101140``` markdown
102141---
103142name: engineering
104- description: "Engineering execution: implement features with TDD, validate repo health"
143+ description: >-
144+ Engineering execution: spec-driven development, TDD implementation,
145+ repo health. TRIGGER when: user asks to build a feature, fix a bug,
146+ add functionality, or check repo health.
105147---
106148
107149# Engineering
108150
109- Domain-agnostic engineering execution from product issue through PR merge,
110- with TDD discipline and repo health checks.
151+ Domain-agnostic engineering execution — from spec through PR merge — with
152+ TDD discipline and repo health checks.
111153
112154## Routing table
113155
114156| Intent pattern | Job | Workflow | When to use |
115157| ----------------| -----| ----------| -------------|
116- | implement, build, fix, issue, feature, bug | engineer | implement | Execute engineering work from issue through PR merge |
158+ | new feature, new system, design, spec, plan | spec_driven_development | full | Net-new functionality that needs a spec before code |
159+ | implement, build, fix, issue, bug, from issue | engineer | implement | Execute from an existing issue or spec through PR merge |
117160| doctor, check, health, validate, setup | engineer | doctor | Validate agent.md and domain context files |
118161
119162## How to use
120163
1211641 . Call ` get_workflows ` to discover available workflows
122- 2 . Filter results to jobs: ` engineer `
165+ 2 . Filter results to jobs: ` engineer ` , ` spec_driven_development `
1231663 . Parse the user's intent against the routing table
124- 4 . Call ` start_workflow ` with ` job_name: "engineer" ` and the matched workflow
167+ 4 . Call ` start_workflow ` with the matched job_name and workflow_name
1251685 . Follow the standard workflow lifecycle
126169
127170## Intent parsing
128171
129- When the user invokes ` /engineering ` , parse their intent :
172+ When the user invokes ` /engineering ` (or the skill activates proactively) :
1301731 . ** Explicit workflow** : ` /engineering implement ` or ` /engineering doctor `
131- 2 . ** General request** : ` /engineering fix the login bug from issue #42 `
132- → infer ` engineer/implement `
133- 3 . ** No context** : ` /engineering ` alone → present the two workflows and ask
174+ 2 . ** New functionality** : "add a caching layer to the API" → no existing
175+ issue or spec → route to ` spec_driven_development/full `
176+ 3 . ** Existing issue** : "fix the login bug from issue #42 " → issue exists
177+ → route to ` engineer/implement `
178+ 4 . ** Repo health** : "check if the repo is ready for engineering workflows"
179+ → route to ` engineer/doctor `
180+ 5 . ** No context** : ` /engineering ` alone → present the three workflows and ask
134181```
135182
136183## Example: ` /business `
0 commit comments