aios-core 4.2.3 → 4.2.4

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 (74) hide show
  1. package/.aios-core/core/registry/service-registry.json +6466 -6586
  2. package/.aios-core/core-config.yaml +10 -5
  3. package/.aios-core/data/aios-kb.md +19 -25
  4. package/.aios-core/data/entity-registry.yaml +311 -204
  5. package/.aios-core/data/registry-update-log.jsonl +8 -0
  6. package/.aios-core/development/tasks/db-squad-integration.md +3 -3
  7. package/.aios-core/development/tasks/dev-develop-story.md +1 -1
  8. package/.aios-core/development/tasks/integrate-squad.md +1 -1
  9. package/.aios-core/development/tasks/pr-automation.md +3 -3
  10. package/.aios-core/development/tasks/squad-creator-migrate.md +1 -1
  11. package/.aios-core/development/tasks/squad-creator-sync-ide-command.md +0 -2
  12. package/.aios-core/development/tasks/update-aios.md +2 -2
  13. package/.aios-core/development/tasks/validate-next-story.md +2 -99
  14. package/.aios-core/development/workflows/README.md +0 -4
  15. package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +0 -1
  16. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +3 -3
  17. package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +1 -1
  18. package/.aios-core/docs/standards/STANDARDS-INDEX.md +4 -4
  19. package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +2 -2
  20. package/.aios-core/framework-config.yaml +8 -4
  21. package/.aios-core/infrastructure/scripts/ide-sync/README.md +29 -5
  22. package/.aios-core/infrastructure/scripts/ide-sync/gemini-commands.js +205 -0
  23. package/.aios-core/infrastructure/scripts/ide-sync/index.js +48 -11
  24. package/.aios-core/infrastructure/scripts/ide-sync/redirect-generator.js +1 -1
  25. package/.aios-core/infrastructure/scripts/test-utilities.js +1 -1
  26. package/.aios-core/infrastructure/scripts/tool-resolver.js +2 -2
  27. package/.aios-core/infrastructure/scripts/validate-claude-integration.js +101 -0
  28. package/.aios-core/infrastructure/scripts/validate-codex-integration.js +141 -0
  29. package/.aios-core/infrastructure/scripts/validate-gemini-integration.js +151 -0
  30. package/.aios-core/infrastructure/scripts/validate-parity.js +119 -0
  31. package/.aios-core/infrastructure/templates/aios-sync.yaml.template +0 -11
  32. package/.aios-core/install-manifest.yaml +83 -71
  33. package/.aios-core/local-config.yaml.template +2 -1
  34. package/.aios-core/presets/README.md +0 -1
  35. package/.aios-core/product/data/integration-patterns.md +1 -1
  36. package/.aios-core/product/templates/ide-rules/gemini-rules.md +87 -233
  37. package/.aios-core/product/templates/statusline/statusline-script.js +188 -0
  38. package/.aios-core/product/templates/statusline/track-agent.sh +68 -0
  39. package/.aios-core/user-guide.md +14 -19
  40. package/LICENSE +0 -27
  41. package/README.md +42 -6
  42. package/bin/aios-init.js +98 -54
  43. package/bin/modules/env-config.js +0 -1
  44. package/package.json +18 -5
  45. package/packages/gemini-aios-extension/README.md +13 -8
  46. package/packages/gemini-aios-extension/commands/aios-agent.js +7 -0
  47. package/packages/gemini-aios-extension/commands/aios-agents.js +2 -1
  48. package/packages/gemini-aios-extension/commands/aios-analyst.js +6 -0
  49. package/packages/gemini-aios-extension/commands/aios-architect.js +6 -0
  50. package/packages/gemini-aios-extension/commands/aios-data-engineer.js +6 -0
  51. package/packages/gemini-aios-extension/commands/aios-dev.js +6 -0
  52. package/packages/gemini-aios-extension/commands/aios-devops.js +6 -0
  53. package/packages/gemini-aios-extension/commands/aios-master.js +6 -0
  54. package/packages/gemini-aios-extension/commands/aios-menu.js +6 -0
  55. package/packages/gemini-aios-extension/commands/aios-pm.js +6 -0
  56. package/packages/gemini-aios-extension/commands/aios-po.js +6 -0
  57. package/packages/gemini-aios-extension/commands/aios-qa.js +6 -0
  58. package/packages/gemini-aios-extension/commands/aios-sm.js +6 -0
  59. package/packages/gemini-aios-extension/commands/aios-squad-creator.js +6 -0
  60. package/packages/gemini-aios-extension/commands/aios-ux-design-expert.js +6 -0
  61. package/packages/gemini-aios-extension/commands/lib/agent-launcher.js +138 -0
  62. package/packages/gemini-aios-extension/extension.json +70 -0
  63. package/packages/gemini-aios-extension/gemini-extension.json +147 -0
  64. package/packages/gemini-aios-extension/hooks/hooks.json +67 -65
  65. package/packages/installer/src/config/ide-configs.js +10 -10
  66. package/packages/installer/src/config/templates/core-config-template.js +6 -3
  67. package/packages/installer/src/wizard/ide-config-generator.js +373 -2
  68. package/packages/installer/src/wizard/ide-selector.js +1 -1
  69. package/scripts/code-intel-health-check.js +125 -125
  70. package/scripts/ensure-manifest.js +58 -0
  71. package/.aios-core/infrastructure/scripts/ide-sync/transformers/windsurf.js +0 -106
  72. package/.aios-core/product/templates/ide-rules/cline-rules.md +0 -84
  73. package/.aios-core/product/templates/ide-rules/roo-rules.md +0 -86
  74. package/.aios-core/product/templates/ide-rules/windsurf-rules.md +0 -80
@@ -163,3 +163,11 @@
163
163
  {"timestamp":"2026-02-15T20:39:45.235Z","action":"change","path":".aios-core/core/synapse/engine.js","trigger":"watcher"}
164
164
  {"timestamp":"2026-02-15T20:39:45.236Z","action":"change","path":".aios-core/development/scripts/unified-activation-pipeline.js","trigger":"watcher"}
165
165
  {"timestamp":"2026-02-15T20:39:45.236Z","action":"add","path":".aios-core/development/tasks/publish-npm.md","trigger":"watcher"}
166
+ {"timestamp":"2026-02-16T01:22:08.127Z","action":"add","path":".aios-core/product/templates/statusline/statusline-script.js","trigger":"watcher"}
167
+ {"timestamp":"2026-02-16T01:24:17.173Z","action":"add","path":".aios-core/core/code-intel/code-intel-client.js","trigger":"watcher"}
168
+ {"timestamp":"2026-02-16T01:24:17.174Z","action":"add","path":".aios-core/core/code-intel/code-intel-enricher.js","trigger":"watcher"}
169
+ {"timestamp":"2026-02-16T01:24:17.175Z","action":"add","path":".aios-core/core/code-intel/index.js","trigger":"watcher"}
170
+ {"timestamp":"2026-02-16T01:24:17.175Z","action":"add","path":".aios-core/core/code-intel/providers/code-graph-provider.js","trigger":"watcher"}
171
+ {"timestamp":"2026-02-16T01:24:17.176Z","action":"add","path":".aios-core/core/code-intel/providers/provider-interface.js","trigger":"watcher"}
172
+ {"timestamp":"2026-02-16T01:40:14.161Z","action":"add","path":".aios-core/product/templates/statusline/statusline-script.js","trigger":"watcher"}
173
+ {"timestamp":"2026-02-16T01:41:14.535Z","action":"add","path":".aios-core/product/templates/statusline/statusline-script.js","trigger":"watcher"}
@@ -1,4 +1,4 @@
1
- # Database Integration Analysis for Expansion Pack
1
+ # Database Integration Analysis for Squad
2
2
 
3
3
  > Task ID: db-Squad-integration
4
4
  > Agent: DB Sage (Database Architect)
@@ -218,7 +218,7 @@ Analyze an squad's data requirements and design database integration strategy. M
218
218
 
219
219
  ## Workflow
220
220
 
221
- ### Step 1: Identify Target Expansion Pack
221
+ ### Step 1: Identify Target Squad
222
222
 
223
223
  **Elicit from user:**
224
224
  - Which squad? (mmos, creator-os, innerlens, etc.)
@@ -230,7 +230,7 @@ Analyze an squad's data requirements and design database integration strategy. M
230
230
 
231
231
  ---
232
232
 
233
- ### Step 2: Audit Expansion Pack Data Flows
233
+ ### Step 2: Audit Squad Data Flows
234
234
 
235
235
  **Scan pack structure for data touchpoints:**
236
236
 
@@ -854,7 +854,7 @@ git checkout abc123def456 -- <file-path>
854
854
  **Output**:
855
855
  ```
856
856
  💬 Interactive Mode - Balanced Development
857
- 📋 Story 3.15: Expansion Pack Auto Configuration
857
+ 📋 Story 3.15: Squad Auto Configuration
858
858
 
859
859
  📖 Task 1: Design configuration schema
860
860
  ❓ Decision Point - Schema Format
@@ -1,4 +1,4 @@
1
- # Integrate with Expansion Pack
1
+ # Integrate with Squad
2
2
 
3
3
  > Task ID: atlas-integrate-Squad
4
4
  > Agent: Atlas (Design System Builder)
@@ -132,7 +132,7 @@ To help users contribute to the AIOS open-source project (`@synkra/aios-core`) b
132
132
 
133
133
  6. **Validate Contribution Standards**
134
134
  - Check against contribution guidelines:
135
- - [ ] **Expansion Packs**: Have README, agent.md, tasks/, proper structure
135
+ - [ ] **Squads**: Have README, agent.md, tasks/, proper structure
136
136
  - [ ] **Agents**: Follow agent template, have commands, dependencies
137
137
  - [ ] **Tasks**: Follow task format spec, have checklists, complete docs
138
138
  - [ ] **Tools**: Have tool definition YAML, usage examples
@@ -362,7 +362,7 @@ Thank you for your interest in contributing! 🎉
362
362
 
363
363
  ### Types of Contributions
364
364
 
365
- - **Expansion Packs**: New agent ecosystems
365
+ - **Squads**: New agent ecosystems
366
366
  - **Agents**: Improved or new agents
367
367
  - **Tasks**: Enhanced or new tasks
368
368
  - **Tools**: MCP tool integrations
@@ -632,7 +632,7 @@ updated_at: 2025-11-17
632
632
 
633
633
  ## Usage Examples
634
634
 
635
- ### Example 1: Submit New Expansion Pack
635
+ ### Example 1: Submit New Squad
636
636
 
637
637
  ```bash
638
638
  aios activate Otto # github-devops agent
@@ -38,7 +38,7 @@ Migrates legacy squad formats to AIOS 2.1 standard.
38
38
  *migrate-squad ./squads/my-squad --verbose
39
39
 
40
40
  # Migrate squad
41
- *migrate-squad ./expansion-packs/my-pack --verbose
41
+ *migrate-squad ./squads/my-pack --verbose
42
42
  ```
43
43
 
44
44
  ## Parameters
@@ -118,7 +118,6 @@ O sistema usa `.aios-sync.yaml` na raiz do projeto para configuração:
118
118
  active_ides:
119
119
  - claude # .claude/commands/
120
120
  - cursor # .cursor/rules/
121
- # - windsurf # .windsurf/ (descomentar para ativar)
122
121
  # - gemini # .gemini/
123
122
 
124
123
  # Mapeamento de diretório → prefixo de comando
@@ -174,7 +173,6 @@ O `squad_aliases` mapeia o nome do diretório do squad para o prefixo usado nos
174
173
  │ ├── Claude: Copy MD → .claude/commands/ │
175
174
  │ ├── Cursor: Convert MD → MDC │
176
175
  │ ├── Gemini: Copy MD → .gemini/agents/ │
177
- │ └── Windsurf: Copy MD → .windsurf/ │
178
176
  │ ↓ │
179
177
  │ 7. Validate created files │
180
178
  │ ↓ │
@@ -52,7 +52,7 @@ These paths are automatically preserved (local-only files are backed up and rest
52
52
 
53
53
  | Path | Reason |
54
54
  |------|--------|
55
- | `.aios-core/expansion-packs/` | Custom copywriters, data, ralph |
55
+ | `.aios-core/squads/` | Custom copywriters, data, ralph |
56
56
  | `.aios-core/marketing/` | Marketing-specific agents/tasks |
57
57
  | `source/` | Business context YAML |
58
58
  | `Knowledge/` | Knowledge bases |
@@ -110,7 +110,7 @@ After running the script:
110
110
 
111
111
  ```bash
112
112
  # Check that local-only files are preserved
113
- ls -la .aios-core/expansion-packs/ # if exists
113
+ ls -la .aios-core/squads/ # if exists
114
114
  ls -la source/ # if exists
115
115
 
116
116
  # See what changed (unstaged)
@@ -190,24 +190,13 @@ token_usage: ~3,000-10,000 tokens
190
190
 
191
191
  ```yaml
192
192
  story: N/A
193
- version: 2.0.0
193
+ version: 1.0.0
194
194
  dependencies:
195
195
  - N/A
196
196
  tags:
197
197
  - automation
198
198
  - workflow
199
- - self-healing
200
- - auto-fix
201
- updated_at: 2026-02-15
202
- changelog:
203
- - version: 2.0.0
204
- date: 2026-02-15
205
- author: "@po (Pax)"
206
- change: "Added Step 12: Auto-Fix and Re-Validate loop — fixes template compliance, CodeRabbit, Dev Notes, Testing, Risks, and task AC mapping automatically"
207
- - version: 1.0.0
208
- date: 2025-11-17
209
- author: "original"
210
- change: "Initial validate-next-story task (report-only, no auto-fix)"
199
+ updated_at: 2025-11-17
211
200
  ```
212
201
 
213
202
  ---
@@ -463,90 +452,4 @@ Provide a structured validation report including:
463
452
  - **NO-GO**: Story requires fixes before implementation
464
453
  - **Implementation Readiness Score**: 1-10 scale
465
454
  - **Confidence Level**: High/Medium/Low for successful implementation
466
-
467
- ### 12. Auto-Fix and Re-Validate (Self-Healing Loop)
468
-
469
- **Purpose:** Automatically fix all fixable issues found during validation instead of just reporting them. This eliminates the manual round-trip of validate → report → fix → re-validate.
470
-
471
- **EXECUTION RULES:**
472
-
473
- ```yaml
474
- auto_fix:
475
- enabled: true
476
- max_iterations: 2
477
- fixable_categories:
478
- - template_compliance # Missing sections from story template
479
- - executor_assignment # Missing or incorrect executor/quality_gate fields
480
- - story_format # Missing "As a / I want / So that"
481
- - coderabbit_section # Missing or incomplete CodeRabbit Integration
482
- - dev_notes # Missing Dev Notes, Source Tree, Testing
483
- - task_ac_mapping # Tasks without AC references
484
- - risks_section # Missing Risks section
485
- - placeholder_sections # Missing Dev Agent Record, QA Results placeholders
486
- non_fixable_categories:
487
- - anti_hallucination # Requires human verification
488
- - business_logic # Requires PO decision
489
- - scope_changes # Requires stakeholder approval
490
- ```
491
-
492
- **SEQUENTIAL AUTO-FIX PROCEDURE:**
493
-
494
- 1. **Classify issues** from Step 11 report:
495
- - `FIXABLE`: Template compliance, missing sections, structural issues
496
- - `NON-FIXABLE`: Business logic, scope, anti-hallucination findings
497
-
498
- 2. **IF fixable issues exist AND iteration < max_iterations:**
499
-
500
- a. **Template Compliance Fixes:**
501
- - Missing Executor Assignment → Infer from story Agent field and Work Type mapping (Step 1.1 table)
502
- - Missing Story format → Generate from Description section (extract role, action, benefit)
503
- - Missing Dev Notes → Generate from Technical Notes, File List, and epic context
504
- - Missing Testing section → Generate from Acceptance Criteria (derive test scenarios)
505
- - Missing Risks section → Generate from Description and Scope (identify common risk patterns)
506
- - Missing placeholder sections (Dev Agent Record, QA Results) → Add standard placeholders
507
-
508
- b. **CodeRabbit Integration Fixes (if `coderabbit_integration.enabled: true`):**
509
- - Missing section → Generate from story type analysis:
510
- - Infer Primary Type from Description keywords
511
- - Assign agents from Work Type mapping
512
- - Add Quality Gate checkboxes (Pre-Commit always, Pre-PR if applicable)
513
- - Add Self-Healing config based on primary agent
514
- - Add Focus Areas based on story type
515
-
516
- c. **Task Enhancement Fixes:**
517
- - Missing AC references → Map tasks to ACs by content matching
518
- - Missing subtasks → Break down vague tasks into specific subtasks
519
- - Add edge case scenarios to ACs if obvious gaps found
520
-
521
- d. **Nice-to-Have Improvements:**
522
- - Add external dependency links (GitHub, npm) if referenced in Technical Notes
523
- - Expand Scope IN/OUT if implicit from Description
524
-
525
- 3. **Apply all fixes** to the story file using Edit tool
526
-
527
- 4. **Re-validate** (run Steps 1-11 again on fixed story)
528
-
529
- 5. **IF still NO-GO after max_iterations:**
530
- - Report remaining NON-FIXABLE issues
531
- - List what was auto-fixed vs what needs human decision
532
- - HALT for user input
533
-
534
- 6. **IF GO after fixes:**
535
- - Update story Status from `Draft` to `Ready`
536
- - Log transition in Change Log: `"Status: Draft → Ready (validation GO {score}/10, auto-fixed {N} issues)"`
537
- - Report summary of all fixes applied
538
-
539
- **AUTO-FIX CHANGE LOG FORMAT:**
540
- ```markdown
541
- | {date} | @po (Pax) | v{N} — Auto-fix: {comma-separated list of fixes applied} |
542
- | {date} | @po (Pax) | Status: Draft → Ready (validation GO {score}/10) |
543
- ```
544
-
545
- **IMPORTANT CONSTRAINTS:**
546
- - NEVER change Acceptance Criteria content (only add missing edge cases as new ACs)
547
- - NEVER change Description or Problem/Solution
548
- - NEVER change Scope IN/OUT boundaries
549
- - NEVER change Points or Priority
550
- - NEVER invent technical details not present in epic/PRD context
551
- - All generated content MUST be traceable to existing story content or epic context
552
455
 
@@ -14,14 +14,12 @@ This directory contains workflow definitions for the Synkra AIOS framework. Work
14
14
  - **greenfield-ui.yaml** - Workflow for new UI/frontend projects
15
15
 
16
16
  ### Configuration Workflows
17
- - **setup-environment.yaml** - Configure IDE (Windsurf/Cursor/Claude Code) with AIOS development rules
18
17
 
19
18
  ## Setup Environment Workflow
20
19
 
21
20
  The `setup-environment` workflow helps developers configure their IDE for optimal AIOS development experience.
22
21
 
23
22
  ### Features
24
- - Detects installed IDEs (Windsurf, Cursor, Claude Code)
25
23
  - Backs up existing IDE configurations
26
24
  - Applies AIOS-specific development rules
27
25
  - Verifies GitHub CLI installation and authentication
@@ -41,14 +39,12 @@ npm run setup:environment
41
39
  ```
42
40
 
43
41
  ### What It Does
44
- 1. **IDE Detection** - Scans for `.windsurf/`, `.cursor/`, or `.claude/` directories
45
42
  2. **GitHub CLI Check** - Ensures GitHub CLI is installed and authenticated
46
43
  3. **Backup Creation** - Saves existing rules before making changes
47
44
  4. **Rule Application** - Copies AIOS-specific rules to appropriate locations
48
45
  5. **Verification** - Confirms successful setup
49
46
 
50
47
  ### IDE Rule Locations
51
- - **Windsurf**: `.windsurf/rules`
52
48
  - **Cursor**: `.cursorules`
53
49
  - **Claude Code**: `.claude/CLAUDE.md`
54
50
 
@@ -248,7 +248,6 @@ const answer = await inquirer.prompt([
248
248
  message: colors.primary('Select your IDE:'),
249
249
  choices: [
250
250
  { name: colors.highlight('Cursor') + colors.dim(' (recommended)'), value: 'cursor' },
251
- { name: 'Windsurf', value: 'windsurf' },
252
251
  { name: 'VS Code', value: 'vscode' }
253
252
  ]
254
253
  }
@@ -20,7 +20,7 @@
20
20
  Este documento é a **versão consolidada v4.0.4** que incorpora todas as mudanças dos Sprints 2-5:
21
21
 
22
22
  - ✅ **Modular Architecture** (4 módulos: core, development, product, infrastructure)
23
- - ✅ **Squad System** (nova terminologia, substituindo "Expansion Pack")
23
+ - ✅ **Squad System** (nova terminologia, substituindo "Squad")
24
24
  - ✅ **Multi-Repo Strategy** (3 repositórios públicos + 2 privados)
25
25
  - ✅ **Quality Gates 3 Layers** (Pre-commit, PR Automation, Human Review)
26
26
  - ✅ **Story Template v2.0** (Cross-Story Decisions, CodeRabbit Integration)
@@ -47,7 +47,7 @@ Este documento é a **versão consolidada v4.0.4** que incorpora todas as mudan
47
47
  | **Service Discovery** | ❌ None | ✅ **BUILT-IN** | Community needs it |
48
48
  | **Task-First Arch** | ⚠️ Implicit | ✅ **EXPLICIT** | Architecture clarity |
49
49
  | **Clones (DNA Mental™)** | 🔒 Closed | 🔒 **CLOSED** | True moat (IP) |
50
- | **Expansion Packs** | 🔒 Closed | 🔒 **CLOSED** | Domain expertise |
50
+ | **Squads** | 🔒 Closed | 🔒 **CLOSED** | Domain expertise |
51
51
 
52
52
  ### Repositório Multi-Repo Structure
53
53
 
@@ -348,7 +348,7 @@ Regras:
348
348
 
349
349
  | Termo Antigo | Termo Novo | Descrição |
350
350
  | -------------- | ------------------ | ---------------------- |
351
- | Expansion Pack | **Squad** | Modular AI agent teams |
351
+ | Squad | **Squad** | Modular AI agent teams |
352
352
  | Squads/ | **squads/** | Diretório de Squads |
353
353
  | pack.yaml | **squad.yaml** | Manifesto do Squad |
354
354
  | @expansion/\* | **@aios/squad-\*** | npm scope |
@@ -479,7 +479,7 @@ reviews:
479
479
  - path: ".aios-core/docs/standards/**"
480
480
  instructions: |
481
481
  Verify:
482
- - Terminology uses 'Squad' not 'Expansion Pack'
482
+ - Terminology uses 'Squad' not 'Squad'
483
483
  - All internal links work
484
484
  - Version numbers are v4.0.4
485
485
 
@@ -75,7 +75,7 @@
75
75
 
76
76
  | Old Term | New Term | Affected Documents |
77
77
  |----------|----------|-------------------|
78
- | Expansion Pack | **Squad** | All standards |
78
+ | Squad | **Squad** | All standards |
79
79
  | Squads/ | **squads/** | Directory references |
80
80
  | pack.yaml | **squad.yaml** | Manifest references |
81
81
  | @expansion/* | **@aios/squad-*** | npm scope |
@@ -169,7 +169,7 @@ Located in `docs/`:
169
169
  ### When to Update Standards
170
170
 
171
171
  1. **New features** that change framework behavior
172
- 2. **Terminology changes** (like Expansion Pack → Squad)
172
+ 2. **Terminology changes** (like Squad → Squad)
173
173
  3. **Architecture changes** (like modular architecture)
174
174
  4. **Process changes** (like Quality Gates)
175
175
 
@@ -188,8 +188,8 @@ Located in `docs/`:
188
188
  find .aios-core/docs/standards -name "*.md" -exec markdown-link-check {} \;
189
189
 
190
190
  # Search for deprecated terminology
191
- grep -r "expansion pack" .aios-core/docs/standards --include="*.md"
192
- grep -r "Expansion Pack" .aios-core/docs/standards --include="*.md"
191
+ grep -r "squad" .aios-core/docs/standards --include="*.md"
192
+ grep -r "Squad" .aios-core/docs/standards --include="*.md"
193
193
 
194
194
  # Verify version numbers
195
195
  grep -r "v2.0" .aios-core/docs/standards --include="*.md"
@@ -474,7 +474,7 @@ Use this checklist when creating or reviewing stories:
474
474
  - [ ] Testing strategy clear
475
475
 
476
476
  #### Terminology
477
- - [ ] Uses "Squad" not "Expansion Pack"
477
+ - [ ] Uses "Squad" not "Squad"
478
478
  - [ ] Uses "@aios/" npm scope
479
479
  - [ ] References v4.0.4 architecture
480
480
 
@@ -532,7 +532,7 @@ Use this checklist when creating or reviewing stories:
532
532
  | Decision | Source | Impact |
533
533
  |----------|--------|--------|
534
534
  | Multi-repo structure | OSR-2/OSR-11 | Standards must document 3-repo architecture |
535
- | Squad terminology | OSR-4 | Replace all "Expansion Pack" references |
535
+ | Squad terminology | OSR-4 | Replace all "Squad" references |
536
536
  ```
537
537
 
538
538
  ---
@@ -127,14 +127,18 @@ ide_sync_system:
127
127
  enabled: true
128
128
  path: ".codex/agents"
129
129
  format: "full-markdown-yaml"
130
+ gemini:
131
+ enabled: true
132
+ path: ".gemini/rules/AIOS/agents"
133
+ format: "full-markdown-yaml"
134
+ github-copilot:
135
+ enabled: true
136
+ path: ".github/agents"
137
+ format: "full-markdown-yaml"
130
138
  cursor:
131
139
  enabled: true
132
140
  path: ".cursor/rules/agents"
133
141
  format: "condensed-rules"
134
- windsurf:
135
- enabled: false
136
- path: ".windsurf/rules/agents"
137
- format: "xml-tagged-markdown"
138
142
  antigravity:
139
143
  enabled: true
140
144
  path: ".antigravity/rules/agents"
@@ -11,8 +11,10 @@ IDE Sync keeps agent definitions in `.aios-core/development/agents/` synchronize
11
11
 
12
12
  - `.claude/commands/AIOS/agents/` (Claude Code)
13
13
  - `.codex/agents/` (Codex CLI support files)
14
+ - `.gemini/rules/AIOS/agents/` (Gemini CLI)
15
+ - `.gemini/commands/` (Gemini slash command launcher files)
16
+ - `.github/agents/` (GitHub Copilot support files)
14
17
  - `.cursor/rules/agents/` (Cursor)
15
- - `.windsurf/rules/agents/` (Windsurf)
16
18
  - `.antigravity/rules/agents/` (Antigravity)
17
19
 
18
20
  For Codex `/skills` activators, use the dedicated skills sync:
@@ -57,7 +59,10 @@ Sync specific IDE only:
57
59
  ```bash
58
60
  npm run sync:ide:cursor
59
61
  npm run sync:ide:codex
60
- npm run sync:ide:windsurf
62
+ npm run sync:ide:gemini
63
+ npm run sync:ide:github-copilot
64
+ npm run sync:ide:antigravity
65
+ npm run sync:ide:claude
61
66
  ```
62
67
 
63
68
  ### Validate
@@ -105,6 +110,14 @@ ideSync:
105
110
  enabled: true
106
111
  path: .codex/agents
107
112
  format: full-markdown-yaml
113
+ gemini:
114
+ enabled: true
115
+ path: .gemini/rules/AIOS/agents
116
+ format: full-markdown-yaml
117
+ github-copilot:
118
+ enabled: true
119
+ path: .github/agents
120
+ format: full-markdown-yaml
108
121
  cursor:
109
122
  enabled: true
110
123
  path: .cursor/rules/agents
@@ -122,11 +135,23 @@ Each IDE has a specific format for agent files:
122
135
  | IDE | Format | Extension |
123
136
  | ----------- | ----------------------- | --------- |
124
137
  | Claude Code | Full markdown with YAML | `.md` |
125
- | Codex CLI | Condensed rules | `.md` |
138
+ | Codex CLI | Full markdown with YAML | `.md` |
139
+ | Gemini CLI | Full markdown with YAML | `.md` |
140
+ | GitHub Copilot | Full markdown with YAML | `.md` |
126
141
  | Cursor | Condensed rules | `.md` |
127
- | Windsurf | XML-tagged markdown | `.md` |
128
142
  | Antigravity | Cursor-style | `.md` |
129
143
 
144
+ Platform-specific checks:
145
+
146
+ ```bash
147
+ npm run validate:claude-sync
148
+ npm run validate:claude-integration
149
+ npm run validate:codex-sync
150
+ npm run validate:codex-integration
151
+ npm run validate:gemini-sync
152
+ npm run validate:gemini-integration
153
+ ```
154
+
130
155
  ## Redirect Agents
131
156
 
132
157
  Deprecated or renamed agents are handled via redirects. When an old agent name is requested, a redirect file is created pointing to the new agent.
@@ -151,7 +176,6 @@ This agent has been renamed. Use `aios-master` instead.
151
176
  └── transformers/
152
177
  ├── claude-code.js # Claude Code format
153
178
  ├── cursor.js # Cursor format
154
- ├── windsurf.js # Windsurf format
155
179
  └── antigravity.js # Antigravity format
156
180
  ```
157
181
 
@@ -0,0 +1,205 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs-extra');
4
+ const path = require('path');
5
+
6
+ const FALLBACK_DESCRIPTION = 'Agente especializado AIOS';
7
+ const MAX_DESCRIPTION_CONTEXT = 120;
8
+
9
+ const MENU_ORDER = [
10
+ 'aios-master',
11
+ 'analyst',
12
+ 'architect',
13
+ 'data-engineer',
14
+ 'dev',
15
+ 'devops',
16
+ 'pm',
17
+ 'po',
18
+ 'qa',
19
+ 'sm',
20
+ 'squad-creator',
21
+ 'ux-design-expert',
22
+ ];
23
+
24
+ function commandSlugForAgent(agentId) {
25
+ if (agentId.startsWith('aios-')) {
26
+ return agentId.replace(/^aios-/, '');
27
+ }
28
+ return agentId;
29
+ }
30
+
31
+ function menuCommandName(agentId) {
32
+ return `/aios-${commandSlugForAgent(agentId)}`;
33
+ }
34
+
35
+ function normalizeText(text) {
36
+ if (!text || typeof text !== 'string') return '';
37
+ return text.replace(/\s+/g, ' ').trim();
38
+ }
39
+
40
+ function truncateText(text, maxLen = MAX_DESCRIPTION_CONTEXT) {
41
+ if (!text || text.length <= maxLen) return text;
42
+ return `${text.slice(0, maxLen - 1).trimEnd()}…`;
43
+ }
44
+
45
+ function summarizeWhenToUse(whenToUse) {
46
+ const normalized = normalizeText(whenToUse);
47
+ if (!normalized) return '';
48
+
49
+ // Drop redirect/negative guidance sections that are useful for routing, not for menu labels.
50
+ const withoutNegativeSection = normalized.split(/\b(?:NOT\s+for|NÃO\s+para)\b/i)[0].trim();
51
+ const primary = withoutNegativeSection || normalized;
52
+
53
+ // Keep only the first sentence/chunk for concise autocomplete labels.
54
+ const firstChunk = primary.split(/[.;!?](?:\s|$)/)[0].trim();
55
+ return truncateText(firstChunk || primary);
56
+ }
57
+
58
+ function escapeTomlString(text) {
59
+ return String(text || '').replace(/\\/g, '\\\\').replace(/"/g, '\\"');
60
+ }
61
+
62
+ function buildAgentDescription(agent) {
63
+ const agentData = agent.agent || {};
64
+ const title = normalizeText(agentData.title);
65
+ const whenToUseSummary = summarizeWhenToUse(agentData.whenToUse);
66
+
67
+ if (title && whenToUseSummary) {
68
+ return `${title} (${whenToUseSummary})`;
69
+ }
70
+ if (title) {
71
+ return title;
72
+ }
73
+ if (whenToUseSummary) {
74
+ return whenToUseSummary;
75
+ }
76
+ return `Ativar agente AIOS ${agent.id}`;
77
+ }
78
+
79
+ function buildAgentCommandPrompt(agentId) {
80
+ return [
81
+ `Ative o agente ${agentId}:`,
82
+ `1. Leia a definição completa em .gemini/rules/AIOS/agents/${agentId}.md`,
83
+ '2. Siga as activation-instructions do bloco YAML',
84
+ `3. Renderize o greeting via: node .aios-core/development/scripts/generate-greeting.js ${agentId}`,
85
+ ' Se shell nao disponivel, exiba o greeting de persona_profile.communication.greeting_levels.named',
86
+ '4. Mostre Quick Commands e aguarde input do usuario',
87
+ 'Mantenha a persona até *exit.',
88
+ ].join('\n');
89
+ }
90
+
91
+ function buildAgentCommandFile(agentId, description = FALLBACK_DESCRIPTION) {
92
+ const slug = commandSlugForAgent(agentId);
93
+
94
+ const prompt = buildAgentCommandPrompt(agentId);
95
+ const content = [
96
+ `description = "${escapeTomlString(description)}"`,
97
+ 'prompt = """',
98
+ prompt,
99
+ '"""',
100
+ '',
101
+ ].join('\n');
102
+
103
+ return {
104
+ filename: `aios-${slug}.toml`,
105
+ content,
106
+ agentId,
107
+ description,
108
+ };
109
+ }
110
+
111
+ function buildMenuPrompt(commandFiles) {
112
+ const lines = [
113
+ 'Você está no launcher AIOS para Gemini.',
114
+ '',
115
+ 'Mostre a lista de agentes abaixo em formato numerado, explicando em 1 linha quando usar cada um:',
116
+ ];
117
+
118
+ let index = 1;
119
+ for (const commandFile of commandFiles) {
120
+ lines.push(`${index}. ${menuCommandName(commandFile.agentId)} - ${commandFile.description}`);
121
+ index += 1;
122
+ }
123
+
124
+ lines.push('');
125
+ lines.push('No final, peça para o usuário escolher um número ou digitar o comando direto.');
126
+ return lines.join('\n');
127
+ }
128
+
129
+ function buildMenuCommandFile(commandFiles) {
130
+ const content = [
131
+ 'description = "Menu rápido AIOS (lista agentes e orienta qual ativar)"',
132
+ 'prompt = """',
133
+ buildMenuPrompt(commandFiles),
134
+ '"""',
135
+ '',
136
+ ].join('\n');
137
+
138
+ return {
139
+ filename: 'aios-menu.toml',
140
+ content,
141
+ };
142
+ }
143
+
144
+ function resolveAgentOrder(agentIds) {
145
+ const unique = [...new Set(agentIds)];
146
+ const known = MENU_ORDER.filter((id) => unique.includes(id));
147
+ const extra = unique.filter((id) => !MENU_ORDER.includes(id)).sort();
148
+ return [...known, ...extra];
149
+ }
150
+
151
+ function buildGeminiCommandFiles(agents) {
152
+ const validAgents = agents
153
+ .filter((agent) => !agent.error)
154
+ .map((agent) => ({
155
+ id: agent.id,
156
+ description: buildAgentDescription(agent),
157
+ }));
158
+
159
+ const ordered = resolveAgentOrder(validAgents.map((agent) => agent.id));
160
+ const byId = new Map(validAgents.map((agent) => [agent.id, agent]));
161
+ const files = ordered.map((id) => {
162
+ const meta = byId.get(id);
163
+ const description = meta?.description || FALLBACK_DESCRIPTION;
164
+ return buildAgentCommandFile(id, description);
165
+ });
166
+ files.unshift(buildMenuCommandFile(files));
167
+ return files;
168
+ }
169
+
170
+ function syncGeminiCommands(agents, projectRoot, options = {}) {
171
+ const commandsDir = path.join(projectRoot, '.gemini', 'commands');
172
+ const files = buildGeminiCommandFiles(agents);
173
+ const written = [];
174
+
175
+ if (!options.dryRun) {
176
+ fs.ensureDirSync(commandsDir);
177
+ }
178
+
179
+ for (const file of files) {
180
+ const targetPath = path.join(commandsDir, file.filename);
181
+ if (!options.dryRun) {
182
+ fs.writeFileSync(targetPath, file.content, 'utf8');
183
+ }
184
+ written.push({
185
+ filename: path.join('commands', file.filename),
186
+ path: targetPath,
187
+ content: file.content,
188
+ });
189
+ }
190
+
191
+ return { commandsDir, files: written };
192
+ }
193
+
194
+ module.exports = {
195
+ FALLBACK_DESCRIPTION,
196
+ MENU_ORDER,
197
+ commandSlugForAgent,
198
+ menuCommandName,
199
+ buildAgentDescription,
200
+ summarizeWhenToUse,
201
+ truncateText,
202
+ escapeTomlString,
203
+ buildGeminiCommandFiles,
204
+ syncGeminiCommands,
205
+ };