Skip to content

Commit 83dd37a

Browse files
ncrmroclaude
andcommitted
docs(routing-skills): add proactive invocation and spec-driven routing
Shows how /engineering activates automatically when the agent recognizes new functionality that needs a spec phase before implementation, routing to spec_driven_development/full before engineer/implement. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 54415cb commit 83dd37a

1 file changed

Lines changed: 59 additions & 12 deletions

File tree

doc/routing_skills.md

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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
---
103142
name: 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

121164
1. Call `get_workflows` to discover available workflows
122-
2. Filter results to jobs: `engineer`
165+
2. Filter results to jobs: `engineer`, `spec_driven_development`
123166
3. 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
125168
5. 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):
130173
1. **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

Comments
 (0)