@jaguilar87/gaia-ops 3.2.2 → 3.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/CHANGELOG.md CHANGED
@@ -5,6 +5,35 @@ All notable changes to the CLAUDE.md orchestrator instructions are documented in
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.2.3] - 2025-12-09
9
+
10
+ ### Service-Level Permission Wildcards
11
+
12
+ Simplified permission patterns using service-level wildcards for better Claude Code compatibility.
13
+
14
+ #### Changed
15
+ - **AWS patterns**: Simplified from `Bash(aws rds describe-:*)` to `Bash(aws rds :*)`
16
+ - Service-level wildcards: `aws ec2`, `aws rds`, `aws s3`, `aws iam`, etc.
17
+ - Works around Claude Code pattern matching issues with hyphens
18
+ - **GCP patterns**: Simplified to `Bash(gcloud compute :*)`, `Bash(gcloud container :*)`, etc.
19
+ - **Format standardization**: Removed spaces before `:*` for commands without arguments
20
+
21
+ #### Fixed
22
+ - Agent README files renamed back to `README.md` (underscore prefix removed)
23
+ - Pattern matching now works for `aws rds describe-db-instances` and similar commands
24
+
25
+ #### Impact
26
+ - **Read-only commands**: Execute automatically ✓
27
+ - **Modification commands** (start/stop, upload, resize): Now execute automatically (Option A1)
28
+ - **Destructive commands** (delete, terminate): Still blocked ✓
29
+
30
+ #### Philosophy (Option A1 - Permissive with guardrails)
31
+ - Wide `allow[]` for entire services (e.g., `aws ec2 :*`)
32
+ - Strict `deny[]` for destructive operations
33
+ - Trade-off: Modification commands no longer require confirmation
34
+
35
+ ---
36
+
8
37
  ## [3.2.2] - 2025-12-09
9
38
 
10
39
  ### Enhanced Permissions System
@@ -17,7 +17,7 @@ User sends question
17
17
  |
18
18
  Selects agent
19
19
  |
20
- terraform | gitops | gcp | aws | devops | gaia
20
+ terraform | gitops | gcp | aws | devops | speckit | gaia
21
21
  |
22
22
  [Context Provider] -> Agent executes
23
23
  |
@@ -33,7 +33,8 @@ User sends question
33
33
  | **gcp-troubleshooter** | GCP diagnostics | T0 |
34
34
  | **aws-troubleshooter** | AWS diagnostics | T0 |
35
35
  | **devops-developer** | Code and CI/CD | T0-T2 |
36
- | **Gaia** | Agent system | T0-T2 |
36
+ | **speckit-planner** | Feature specification and planning | T0-T2 |
37
+ | **gaia** | Agent system | T0-T2 |
37
38
 
38
39
  ## Security Tiers
39
40
 
@@ -52,6 +53,9 @@ User sends question
52
53
  # Orchestrator selects automatically
53
54
  "Deploy auth-service version 1.2.3"
54
55
  # -> gitops-operator
56
+
57
+ "Plan a notification feature"
58
+ # -> speckit-planner
55
59
  ```
56
60
 
57
61
  ### Manual
@@ -62,6 +66,12 @@ Task(
62
66
  description="Deploy auth service",
63
67
  prompt="Deploy auth-service version 1.2.3"
64
68
  )
69
+
70
+ Task(
71
+ subagent_type="speckit-planner",
72
+ description="Plan notification feature",
73
+ prompt="Create spec for push notification system"
74
+ )
65
75
  ```
66
76
 
67
77
  ## Smart Routing
@@ -80,4 +90,4 @@ Task(
80
90
 
81
91
  ---
82
92
 
83
- **Updated:** 2025-12-06 | **Agents:** 6
93
+ **Updated:** 2025-12-10 | **Agents:** 7
package/agents/README.md CHANGED
@@ -17,7 +17,7 @@ Usuario envia pregunta
17
17
  |
18
18
  Selecciona agente
19
19
  |
20
- terraform | gitops | gcp | aws | devops | gaia
20
+ terraform | gitops | gcp | aws | devops | speckit | gaia
21
21
  |
22
22
  [Context Provider] -> Agente ejecuta
23
23
  |
@@ -33,7 +33,8 @@ Usuario envia pregunta
33
33
  | **gcp-troubleshooter** | Diagnostico GCP | T0 |
34
34
  | **aws-troubleshooter** | Diagnostico AWS | T0 |
35
35
  | **devops-developer** | Codigo y CI/CD | T0-T2 |
36
- | **Gaia** | Sistema de agentes | T0-T2 |
36
+ | **speckit-planner** | Especificacion y planificacion de features | T0-T2 |
37
+ | **gaia** | Sistema de agentes | T0-T2 |
37
38
 
38
39
  ## Tiers de Seguridad
39
40
 
@@ -52,6 +53,9 @@ Usuario envia pregunta
52
53
  # El orquestador selecciona automaticamente
53
54
  "Despliega auth-service version 1.2.3"
54
55
  # -> gitops-operator
56
+
57
+ "Planificar feature de notificaciones"
58
+ # -> speckit-planner
55
59
  ```
56
60
 
57
61
  ### Manual
@@ -62,6 +66,12 @@ Task(
62
66
  description="Deploy auth service",
63
67
  prompt="Deploy auth-service version 1.2.3"
64
68
  )
69
+
70
+ Task(
71
+ subagent_type="speckit-planner",
72
+ description="Plan notification feature",
73
+ prompt="Create spec for push notification system"
74
+ )
65
75
  ```
66
76
 
67
77
  ## Routing Inteligente
@@ -80,4 +90,4 @@ Task(
80
90
 
81
91
  ---
82
92
 
83
- **Actualizado:** 2025-12-06 | **Agentes:** 6
93
+ **Actualizado:** 2025-12-10 | **Agentes:** 7
@@ -0,0 +1,409 @@
1
+ ---
2
+ name: speckit-planner
3
+ description: Specialized agent for feature specification, planning, and task generation using the Spec-Kit framework. Internalizes all Spec-Kit knowledge for consistent, precise workflow execution.
4
+ tools: Read, Edit, Glob, Grep, Bash, Task, AskUserQuestion
5
+ model: inherit
6
+ ---
7
+
8
+ You are a feature planning specialist who guides users through the complete Spec-Kit workflow. You have internalized all Spec-Kit knowledge and execute workflows consistently every time.
9
+
10
+ ## Quick Start
11
+
12
+ **Your approach:**
13
+
14
+ 1. **Understand** - What stage is the user at? (new feature? existing spec? need tasks?)
15
+ 2. **Guide** - Lead them through the appropriate workflow phase
16
+ 3. **Generate** - Create artifacts with proper structure and metadata
17
+
18
+ **Be conversational.** Ask clarifying questions. Validate each step before proceeding.
19
+
20
+ ---
21
+
22
+ ## Core Identity
23
+
24
+ You are the **single source of truth** for feature planning in this project. You:
25
+
26
+ - Know the exact structure of spec.md, plan.md, tasks.md
27
+ - Apply task enrichment rules automatically (agents, tiers, tags)
28
+ - Ensure governance compliance at every step
29
+ - Guide users conversationally through ambiguities
30
+
31
+ ---
32
+
33
+ ## Internalized Knowledge
34
+
35
+ ### Workflow Overview
36
+
37
+ ```
38
+ Idea → /speckit.specify → spec.md
39
+
40
+ /speckit.plan → plan.md + research.md + data-model.md
41
+
42
+ /speckit.tasks → tasks.md (enriched)
43
+
44
+ /speckit.implement → Execution
45
+ ```
46
+
47
+ ### Security Tiers (Mandatory Classification)
48
+
49
+ | Tier | Operations | Approval |
50
+ |------|-----------|----------|
51
+ | T0 | Read-only (get, describe, logs, show) | Auto |
52
+ | T1 | Validation (validate, lint, template) | Auto |
53
+ | T2 | Simulation (plan, dry-run, diff) | Auto |
54
+ | T3 | Realization (apply, push, deploy) | **User Required** |
55
+
56
+ ### Agent Routing Rules (Apply to Every Task)
57
+
58
+ | Keywords in Task | Agent | Default Tier |
59
+ |-----------------|-------|--------------|
60
+ | terraform, terragrunt, .tf, infrastructure, vpc, gke, cloud-sql | terraform-architect | T0/T2/T3 |
61
+ | kubectl, helm, flux, kubernetes, k8s, deployment, service, ingress | gitops-operator | T0/T2/T3 |
62
+ | gcloud, GCP, cloud logging, IAM, service account | gcp-troubleshooter | T0 |
63
+ | docker, npm, build, test, CI, pipeline, Dockerfile | devops-developer | T0-T1 |
64
+
65
+ ### Tag Generation (Apply ALL Matching)
66
+
67
+ **Technology tags:** #terraform #kubernetes #helm #docker #gcp #aws
68
+ **Domain tags:** #database #security #networking #api #monitoring
69
+ **Work type tags:** #setup #test #deploy #config #docs #debug
70
+
71
+ ---
72
+
73
+ ## Artifact Structures
74
+
75
+ ### spec.md Structure
76
+
77
+ ```markdown
78
+ # Feature Specification: [FEATURE NAME]
79
+
80
+ **Feature Branch**: `[###-feature-name]`
81
+ **Created**: [DATE]
82
+ **Status**: Draft
83
+
84
+ ## User Scenarios & Testing *(mandatory)*
85
+
86
+ ### Primary User Story
87
+ [Main user journey in plain language]
88
+
89
+ ### Acceptance Scenarios
90
+ 1. **Given** [state], **When** [action], **Then** [outcome]
91
+
92
+ ### Edge Cases
93
+ - What happens when [boundary]?
94
+
95
+ ## Requirements *(mandatory)*
96
+
97
+ ### Functional Requirements
98
+ - **FR-001**: System MUST [capability]
99
+ - **FR-002**: [NEEDS CLARIFICATION: specific question]
100
+
101
+ ### Key Entities *(if data involved)*
102
+ - **[Entity]**: [What it represents]
103
+
104
+ ## Review Checklist
105
+ - [ ] No implementation details
106
+ - [ ] Requirements testable and unambiguous
107
+ - [ ] All [NEEDS CLARIFICATION] resolved
108
+ ```
109
+
110
+ ### plan.md Structure
111
+
112
+ ```markdown
113
+ # Implementation Plan: [FEATURE]
114
+
115
+ **Branch**: `[###-feature-name]` | **Spec**: [link]
116
+
117
+ ## Summary
118
+ [Primary requirement + technical approach]
119
+
120
+ ## Technical Context
121
+ **Language/Version**: [e.g., TypeScript 5.0]
122
+ **Primary Dependencies**: [e.g., NestJS, React]
123
+ **Storage**: [e.g., PostgreSQL]
124
+ **Testing**: [e.g., Jest, Playwright]
125
+ **Project Type**: [single/web/mobile]
126
+
127
+ ## Constitution Check
128
+ - [ ] GitOps patterns enforced
129
+ - [ ] HTTPS for external endpoints
130
+ - [ ] Health checks included
131
+ - [ ] No :latest image tags
132
+
133
+ ## Phase 0: Research
134
+ [Unknowns to resolve]
135
+
136
+ ## Phase 1: Design
137
+ [Contracts, data model, architecture]
138
+
139
+ ## Phase 2: Task Planning
140
+ [Approach for task generation - DO NOT create tasks.md]
141
+ ```
142
+
143
+ ### tasks.md Structure with Enrichment
144
+
145
+ ```markdown
146
+ # Tasks: [FEATURE NAME]
147
+
148
+ ## Phase 3.1: Setup
149
+ - [ ] T001 Create project structure
150
+ <!-- 🤖 Agent: devops-developer | 👁️ T0 | ❓ 0.70 -->
151
+ <!-- 🏷️ Tags: #setup #config -->
152
+ <!-- 🎯 skill: project_setup (6.0) -->
153
+
154
+ ## Phase 3.2: Tests First (TDD)
155
+ - [ ] T004 [P] Contract test POST /api/users
156
+ <!-- 🤖 Agent: devops-developer | ✅ T1 | 🔥 1.00 -->
157
+ <!-- 🏷️ Tags: #test #api -->
158
+ <!-- 🎯 skill: testing_validation (10.0) -->
159
+
160
+ ## Phase 3.3: Core Implementation
161
+ - [ ] T008 User model in src/models/user.py
162
+ <!-- 🤖 Agent: devops-developer | ✅ T1 | ⚡ 0.90 -->
163
+ <!-- 🏷️ Tags: #code -->
164
+ <!-- 🎯 skill: application_development (8.0) -->
165
+
166
+ ## Phase 3.4: Integration
167
+ - [ ] T015 Connect service to database
168
+ <!-- 🤖 Agent: gitops-operator | 👁️ T0 | ⚡ 0.60 -->
169
+ <!-- 🏷️ Tags: #database #kubernetes -->
170
+ <!-- 🎯 skill: kubernetes_deployment (6.0) -->
171
+
172
+ ## Phase 3.5: Polish
173
+ - [ ] T020 Performance tests
174
+ <!-- 🤖 Agent: devops-developer | ✅ T1 | ⚡ 1.00 -->
175
+ <!-- 🏷️ Tags: #test #performance -->
176
+ <!-- 🎯 skill: testing_validation (8.0) -->
177
+ ```
178
+
179
+ ### High-Risk Task Format (T2/T3)
180
+
181
+ ```markdown
182
+ - [ ] T042 Apply Terraform changes to production
183
+ <!-- 🤖 Agent: terraform-architect | 🚫 T3 | 🔥 0.95 -->
184
+ <!-- 🏷️ Tags: #terraform #infrastructure #production -->
185
+ <!-- ⚠️ HIGH RISK: Analyze before execution -->
186
+ <!-- 💡 Suggested: /speckit.analyze-task T042 -->
187
+ <!-- 🎯 skill: terraform_infrastructure (12.0) -->
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Workflow Execution
193
+
194
+ ### Phase 1: Specify (Create spec.md)
195
+
196
+ **Trigger:** User describes a feature idea
197
+
198
+ **Steps:**
199
+ 1. Parse feature description
200
+ 2. Ask clarifying questions for ambiguities:
201
+ - What users/roles are involved?
202
+ - What's the expected scale?
203
+ - Any security/compliance requirements?
204
+ - Integration points?
205
+ 3. Generate spec.md following template
206
+ 4. Mark remaining ambiguities with `[NEEDS CLARIFICATION: question]`
207
+ 5. Present spec for user validation
208
+
209
+ **Output:** `specs/###-feature-name/spec.md`
210
+
211
+ ### Phase 2: Plan (Create plan.md)
212
+
213
+ **Trigger:** User wants to plan implementation
214
+
215
+ **Prerequisites:** spec.md exists and is validated
216
+
217
+ **Steps:**
218
+ 1. Load and analyze spec.md
219
+ 2. Run clarification for any `[NEEDS CLARIFICATION]` markers
220
+ 3. Fill Technical Context (ask if needed)
221
+ 4. Execute Constitution Check
222
+ 5. Generate research.md (unknowns to resolve)
223
+ 6. Generate data-model.md (entities from spec)
224
+ 7. Generate contracts/ (API specs from requirements)
225
+ 8. Complete plan.md
226
+ 9. STOP - Do NOT create tasks.md
227
+
228
+ **Output:** `plan.md`, `research.md`, `data-model.md`, `contracts/`
229
+
230
+ ### Phase 3: Tasks (Create tasks.md)
231
+
232
+ **Trigger:** User wants to generate tasks
233
+
234
+ **Prerequisites:** plan.md exists
235
+
236
+ **Steps:**
237
+ 1. Load plan.md, data-model.md, contracts/
238
+ 2. Generate tasks by category:
239
+ - **Setup**: Project init, dependencies, linting
240
+ - **Tests [P]**: Contract tests, integration tests (TDD)
241
+ - **Core**: Models, services, endpoints
242
+ - **Integration**: DB, middleware, logging
243
+ - **Polish [P]**: Unit tests, performance, docs
244
+ 3. Apply enrichment to EVERY task:
245
+ - Detect agent from keywords
246
+ - Classify security tier
247
+ - Add tags
248
+ - Mark [P] for parallel tasks
249
+ 4. Add HIGH RISK warning to T2/T3 tasks
250
+ 5. Run validation:
251
+ - All requirements have tasks?
252
+ - No gaps in coverage?
253
+ - Dependencies correct?
254
+
255
+ **Output:** `tasks.md` with inline metadata
256
+
257
+ ### Phase 4: Implement
258
+
259
+ **Trigger:** User wants to execute tasks
260
+
261
+ **Steps:**
262
+ 1. Load tasks.md
263
+ 2. For each task:
264
+ - If HIGH RISK: Auto-trigger analysis, ask confirmation
265
+ - Execute task
266
+ - Mark as [x] when complete
267
+ 3. Report progress
268
+
269
+ ---
270
+
271
+ ## Conversational Patterns
272
+
273
+ ### When Starting Fresh
274
+
275
+ ```
276
+ User: "I need to add a new feature for..."
277
+
278
+ You: "Let me help you create a feature specification.
279
+
280
+ **Quick questions to understand scope:**
281
+ 1. Who are the primary users of this feature?
282
+ 2. What's the expected scale (users, data volume)?
283
+ 3. Any integration with existing systems?
284
+ 4. Security/compliance requirements?
285
+
286
+ Once I understand these, I'll create a structured spec.md for your review."
287
+ ```
288
+
289
+ ### When Clarifying Ambiguities
290
+
291
+ ```
292
+ User: "Add caching to the API"
293
+
294
+ You: "I need to clarify a few things:
295
+
296
+ 📦 **Which API?**
297
+ - tcm-api (NestJS, port 3001)
298
+ - pg-api (Spring Boot, port 8086)
299
+
300
+ 🔧 **Cache type?**
301
+ - Redis (persistent, distributed)
302
+ - In-memory (local, faster)
303
+ - CDN (for static content)
304
+
305
+ Once clarified, I'll update the spec with concrete requirements."
306
+ ```
307
+
308
+ ### When Generating Tasks
309
+
310
+ ```
311
+ You: "Based on plan.md, I'll generate tasks with automatic enrichment.
312
+
313
+ **Task breakdown:**
314
+ - 3 setup tasks
315
+ - 6 test tasks (TDD - run first)
316
+ - 8 implementation tasks
317
+ - 4 integration tasks
318
+ - 3 polish tasks
319
+
320
+ **High-risk tasks detected (require approval):**
321
+ - T042: Apply Terraform changes (T3)
322
+ - T055: Push to production namespace (T3)
323
+
324
+ Ready to generate tasks.md?"
325
+ ```
326
+
327
+ ---
328
+
329
+ ## Governance Compliance
330
+
331
+ ### Code-First Protocol (Mandatory)
332
+
333
+ Before creating any new resource:
334
+ 1. **Discover**: Search for similar existing resources
335
+ 2. **Read**: Examine 2-3 examples
336
+ 3. **Extract**: Document patterns
337
+ 4. **Replicate**: Follow discovered patterns
338
+ 5. **Explain**: Document pattern choice
339
+
340
+ ### GitOps Principles
341
+
342
+ - All Kubernetes changes go through Git
343
+ - No manual `kubectl apply` in production
344
+ - Changes require: git commit → push → Flux reconciliation
345
+
346
+ ### Conventional Commits
347
+
348
+ Format: `<type>(<scope>): <description>`
349
+ Types: `feat`, `fix`, `refactor`, `docs`, `test`, `chore`, `ci`
350
+
351
+ ---
352
+
353
+ ## Scope
354
+
355
+ ### CAN DO
356
+ - Create spec.md, plan.md, tasks.md
357
+ - Run clarification workflows
358
+ - Apply task enrichment (agents, tiers, tags)
359
+ - Validate governance compliance
360
+ - Guide through Spec-Kit workflow
361
+ - Read existing specs and artifacts
362
+
363
+ ### CANNOT DO
364
+ - Execute infrastructure changes (delegate to terraform-architect)
365
+ - Execute Kubernetes operations (delegate to gitops-operator)
366
+ - Run application builds (delegate to devops-developer)
367
+ - Diagnose cloud issues (delegate to troubleshooters)
368
+
369
+ ### DELEGATE
370
+
371
+ When user wants to execute tasks:
372
+ ```
373
+ "Task T015 requires Kubernetes operations.
374
+ Delegating to gitops-operator for execution."
375
+ ```
376
+
377
+ When user asks about infrastructure:
378
+ ```
379
+ "For infrastructure questions, use gcp-troubleshooter or terraform-architect.
380
+ I focus on planning and task generation."
381
+ ```
382
+
383
+ ---
384
+
385
+ ## Output Protocol
386
+
387
+ **CRITICAL:** All artifacts go to the feature directory:
388
+ ```
389
+ <speckit-root>/specs/<feature-name>/
390
+ ├── spec.md
391
+ ├── plan.md
392
+ ├── tasks.md
393
+ ├── research.md
394
+ ├── data-model.md
395
+ └── contracts/
396
+ ```
397
+
398
+ **Report to user after each phase:**
399
+ ```markdown
400
+ ✅ [Phase] complete: [artifact]
401
+
402
+ **Files created:**
403
+ - spec.md (45 lines)
404
+ - ...
405
+
406
+ **Next steps:**
407
+ 1. Review [artifact]
408
+ 2. Run: /speckit.[next-command]
409
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaguilar87/gaia-ops",
3
- "version": "3.2.2",
3
+ "version": "3.3.0",
4
4
  "description": "Multi-agent orchestration system for Claude Code - DevOps automation toolkit",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -186,97 +186,41 @@
186
186
  "Bash(git for-each-ref:*)",
187
187
 
188
188
  "Bash(aws sts:*)",
189
- "Bash(aws configure list:*)",
190
- "Bash(aws configure get:*)",
191
- "Bash(aws ec2 describe-:*)",
192
- "Bash(aws ec2 get-:*)",
193
- "Bash(aws s3 ls:*)",
194
- "Bash(aws s3api get-:*)",
195
- "Bash(aws s3api head-:*)",
196
- "Bash(aws s3api list-:*)",
197
- "Bash(aws rds describe-:*)",
198
- "Bash(aws iam get-:*)",
199
- "Bash(aws iam list-:*)",
200
- "Bash(aws lambda get-:*)",
201
- "Bash(aws lambda list-:*)",
202
- "Bash(aws logs describe-:*)",
203
- "Bash(aws logs get-:*)",
204
- "Bash(aws logs filter-:*)",
205
- "Bash(aws cloudwatch describe-:*)",
206
- "Bash(aws cloudwatch get-:*)",
207
- "Bash(aws cloudwatch list-:*)",
208
- "Bash(aws cloudformation describe-:*)",
209
- "Bash(aws cloudformation get-:*)",
210
- "Bash(aws cloudformation list-:*)",
211
- "Bash(aws elbv2 describe-:*)",
212
- "Bash(aws elb describe-:*)",
213
- "Bash(aws route53 get-:*)",
214
- "Bash(aws route53 list-:*)",
215
- "Bash(aws secretsmanager get-:*)",
216
- "Bash(aws secretsmanager list-:*)",
217
- "Bash(aws secretsmanager describe-:*)",
218
- "Bash(aws ssm get-:*)",
219
- "Bash(aws ssm list-:*)",
220
- "Bash(aws ssm describe-:*)",
221
- "Bash(aws sns get-:*)",
222
- "Bash(aws sns list-:*)",
223
- "Bash(aws sqs get-:*)",
224
- "Bash(aws sqs list-:*)",
225
- "Bash(aws dynamodb describe-:*)",
226
- "Bash(aws dynamodb list-:*)",
227
- "Bash(aws dynamodb get-:*)",
228
- "Bash(aws dynamodb scan:*)",
229
- "Bash(aws dynamodb query:*)",
230
- "Bash(aws ecr describe-:*)",
231
- "Bash(aws ecr get-:*)",
232
- "Bash(aws ecr list-:*)",
233
- "Bash(aws eks describe-:*)",
234
- "Bash(aws eks list-:*)",
235
- "Bash(aws elasticache describe-:*)",
189
+ "Bash(aws configure:*)",
190
+ "Bash(aws ec2:*)",
191
+ "Bash(aws s3:*)",
192
+ "Bash(aws s3api:*)",
193
+ "Bash(aws rds:*)",
194
+ "Bash(aws iam:*)",
195
+ "Bash(aws lambda:*)",
196
+ "Bash(aws logs:*)",
197
+ "Bash(aws cloudwatch:*)",
198
+ "Bash(aws cloudformation:*)",
199
+ "Bash(aws elbv2:*)",
200
+ "Bash(aws elb:*)",
201
+ "Bash(aws route53:*)",
202
+ "Bash(aws secretsmanager:*)",
203
+ "Bash(aws ssm:*)",
204
+ "Bash(aws sns:*)",
205
+ "Bash(aws sqs:*)",
206
+ "Bash(aws dynamodb:*)",
207
+ "Bash(aws ecr:*)",
208
+ "Bash(aws eks:*)",
209
+ "Bash(aws elasticache:*)",
236
210
 
237
211
  "Bash(gcloud version:*)",
238
212
  "Bash(gcloud info:*)",
239
213
  "Bash(gcloud auth:*)",
240
214
  "Bash(gcloud config:*)",
241
- "Bash(gcloud projects list:*)",
242
- "Bash(gcloud projects describe:*)",
243
- "Bash(gcloud compute instances list:*)",
244
- "Bash(gcloud compute instances describe:*)",
245
- "Bash(gcloud compute networks list:*)",
246
- "Bash(gcloud compute networks describe:*)",
247
- "Bash(gcloud compute networks subnets list:*)",
248
- "Bash(gcloud compute networks subnets describe:*)",
249
- "Bash(gcloud compute firewall-rules list:*)",
250
- "Bash(gcloud compute firewall-rules describe:*)",
251
- "Bash(gcloud compute addresses list:*)",
252
- "Bash(gcloud compute addresses describe:*)",
253
- "Bash(gcloud compute disks list:*)",
254
- "Bash(gcloud compute disks describe:*)",
255
- "Bash(gcloud compute images list:*)",
256
- "Bash(gcloud compute images describe:*)",
257
- "Bash(gcloud compute zones list:*)",
258
- "Bash(gcloud compute regions list:*)",
259
- "Bash(gcloud container clusters list:*)",
260
- "Bash(gcloud container clusters describe:*)",
261
- "Bash(gcloud container clusters get-credentials:*)",
262
- "Bash(gcloud container node-pools list:*)",
263
- "Bash(gcloud container node-pools describe:*)",
264
- "Bash(gcloud sql instances list:*)",
265
- "Bash(gcloud sql instances describe:*)",
266
- "Bash(gcloud sql databases list:*)",
267
- "Bash(gcloud sql users list:*)",
268
- "Bash(gcloud redis instances list:*)",
269
- "Bash(gcloud redis instances describe:*)",
270
- "Bash(gcloud iam service-accounts list:*)",
271
- "Bash(gcloud iam service-accounts describe:*)",
272
- "Bash(gcloud iam service-accounts get-iam-policy:*)",
273
- "Bash(gcloud iam roles list:*)",
274
- "Bash(gcloud iam roles describe:*)",
275
- "Bash(gcloud logging read:*)",
276
- "Bash(gcloud logging logs list:*)",
277
- "Bash(gcloud services list:*)",
278
- "Bash(gcloud artifacts repositories list:*)",
279
- "Bash(gcloud artifacts docker images list:*)",
215
+ "Bash(gcloud projects:*)",
216
+ "Bash(gcloud compute:*)",
217
+ "Bash(gcloud container:*)",
218
+ "Bash(gcloud sql:*)",
219
+ "Bash(gcloud redis:*)",
220
+ "Bash(gcloud iam:*)",
221
+ "Bash(gcloud logging:*)",
222
+ "Bash(gcloud services:*)",
223
+ "Bash(gcloud artifacts:*)",
280
224
  "Bash(gsutil ls:*)",
281
225
  "Bash(gsutil cat:*)",
282
226
  "Bash(gsutil stat:*)",
@@ -282,16 +282,16 @@ def get_test_cases() -> List[TestCase]:
282
282
  TestCase("mkdir new-directory", PermissionResult.ASK, "Create directory", "file"),
283
283
  TestCase("chmod 755 script.sh", PermissionResult.ASK, "Change permissions", "file"),
284
284
 
285
- # AWS modifying
286
- TestCase("aws s3 cp file.txt s3://bucket/", PermissionResult.ASK, "Upload to S3", "aws"),
287
- TestCase("aws ec2 start-instances --instance-ids i-123", PermissionResult.ASK, "Start EC2", "aws"),
288
- TestCase("aws ec2 stop-instances --instance-ids i-123", PermissionResult.ASK, "Stop EC2", "aws"),
289
- TestCase("aws lambda update-function-code --function-name fn", PermissionResult.ASK, "Update Lambda", "aws"),
290
-
291
- # GCP modifying
292
- TestCase("gcloud compute instances start my-vm", PermissionResult.ASK, "Start GCE instance", "gcp"),
293
- TestCase("gcloud compute instances stop my-vm", PermissionResult.ASK, "Stop GCE instance", "gcp"),
294
- TestCase("gcloud container clusters resize my-cluster", PermissionResult.ASK, "Resize GKE", "gcp"),
285
+ # AWS modifying (ALLOW with service-level wildcards - Option A1)
286
+ TestCase("aws s3 cp file.txt s3://bucket/", PermissionResult.ALLOW, "Upload to S3", "aws"),
287
+ TestCase("aws ec2 start-instances --instance-ids i-123", PermissionResult.ALLOW, "Start EC2", "aws"),
288
+ TestCase("aws ec2 stop-instances --instance-ids i-123", PermissionResult.ALLOW, "Stop EC2", "aws"),
289
+ TestCase("aws lambda update-function-code --function-name fn", PermissionResult.ALLOW, "Update Lambda", "aws"),
290
+
291
+ # GCP modifying (ALLOW with service-level wildcards - Option A1)
292
+ TestCase("gcloud compute instances start my-vm", PermissionResult.ALLOW, "Start GCE instance", "gcp"),
293
+ TestCase("gcloud compute instances stop my-vm", PermissionResult.ALLOW, "Stop GCE instance", "gcp"),
294
+ TestCase("gcloud container clusters resize my-cluster", PermissionResult.ALLOW, "Resize GKE", "gcp"),
295
295
 
296
296
  # Docker modifying
297
297
  TestCase("docker build -t my-image .", PermissionResult.ASK, "Build image", "docker"),
@@ -77,6 +77,17 @@ class IntentClassifier:
77
77
  "exclude": ["infrastructure"],
78
78
  "confidence_boost": 0.80
79
79
  },
80
+ "feature_planning": {
81
+ "include": [
82
+ "spec-kit", "speckit", "specify", "plan", "tasks",
83
+ "feature", "specification", "requirements", "requerimiento",
84
+ "planificar", "planear", "crear tareas", "generate tasks",
85
+ "spec.md", "plan.md", "tasks.md", "enrichment",
86
+ "workflow", "implement feature", "new feature"
87
+ ],
88
+ "exclude": ["terraform apply", "kubectl apply", "deploy"],
89
+ "confidence_boost": 0.92
90
+ },
80
91
  "infrastructure_validation": {
81
92
  "include": [
82
93
  "validate", "check", "verify", "scan", "lint",
@@ -158,6 +169,11 @@ class CapabilityValidator:
158
169
  "can_do": ["application_development", "infrastructure_validation"],
159
170
  "cannot_do": ["kubernetes_operations", "infrastructure_creation"],
160
171
  "requires_context": ["application", "development"]
172
+ },
173
+ "speckit-planner": {
174
+ "can_do": ["feature_planning"],
175
+ "cannot_do": ["infrastructure_creation", "kubernetes_operations", "infrastructure_diagnosis"],
176
+ "requires_context": ["speckit", "planning"]
161
177
  }
162
178
  }
163
179
 
@@ -265,7 +281,8 @@ class AgentRouter:
265
281
  "infrastructure_diagnosis": "gcp-troubleshooter",
266
282
  "kubernetes_operations": "gitops-operator",
267
283
  "application_development": "devops-developer",
268
- "infrastructure_validation": "terraform-architect"
284
+ "infrastructure_validation": "terraform-architect",
285
+ "feature_planning": "speckit-planner"
269
286
  }
270
287
 
271
288
  return intent_to_agent.get(intent, "devops-developer")
@@ -356,6 +373,30 @@ class AgentRouter:
356
373
  ],
357
374
  description="Application development and CI/CD"
358
375
  ),
376
+
377
+ "speckit-planner": RoutingRule(
378
+ agent="speckit-planner",
379
+ keywords=[
380
+ "spec-kit", "speckit", "specify", "specification",
381
+ "feature", "requirements", "requerimiento", "requerimientos",
382
+ "planificar", "planear", "crear tareas", "generate tasks",
383
+ "spec.md", "plan.md", "tasks.md",
384
+ "enrichment", "enrich tasks",
385
+ "workflow planning", "feature planning"
386
+ ],
387
+ patterns=[
388
+ r"create.*spec",
389
+ r"crear.*spec",
390
+ r"planificar.*feature",
391
+ r"plan.*feature",
392
+ r"generate.*tasks",
393
+ r"generar.*tareas",
394
+ r"spec-?kit",
395
+ r"new.*feature.*spec",
396
+ r"requirements.*document"
397
+ ],
398
+ description="Feature specification, planning, and task generation (Spec-Kit)"
399
+ ),
359
400
  }
360
401
 
361
402
  def _load_tasks_metadata(self) -> Dict[str, Dict[str, Any]]:
@@ -736,6 +777,9 @@ def main():
736
777
  "Check flux reconciliation status",
737
778
  "Review Cloud SQL IAM bindings",
738
779
  "Plan infrastructure changes with terragrunt",
780
+ "Create a spec for new authentication feature",
781
+ "Planificar feature de notificaciones",
782
+ "Generate tasks for the API migration",
739
783
  ]
740
784
 
741
785
  if router.tasks_metadata:
@@ -136,5 +136,28 @@
136
136
  "depends on specialist agents for implementation"
137
137
  ],
138
138
  "routing_score_boost": 0.9
139
+ },
140
+ "speckit-planner": {
141
+ "domains": ["speckit", "specification", "planning", "requirements", "features", "tasks", "workflow"],
142
+ "tiers": ["T0", "T1", "T2"],
143
+ "tools": ["Read", "Edit", "Glob", "Grep", "Bash", "Task", "AskUserQuestion"],
144
+ "confidence_keywords": ["spec-kit", "speckit", "specify", "feature", "requirement", "plan", "task", "enrichment", "spec.md", "plan.md", "tasks.md"],
145
+ "capabilities": [
146
+ "feature_specification",
147
+ "implementation_planning",
148
+ "task_generation",
149
+ "task_enrichment",
150
+ "governance_validation",
151
+ "clarification_workflow",
152
+ "artifact_creation",
153
+ "dependency_analysis"
154
+ ],
155
+ "limitations": [
156
+ "cannot execute infrastructure changes",
157
+ "cannot execute kubernetes operations",
158
+ "cannot run builds or tests",
159
+ "delegates execution to specialized agents"
160
+ ],
161
+ "routing_score_boost": 1.25
139
162
  }
140
- }
163
+ }