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.
- package/.aios-core/core/registry/service-registry.json +6466 -6586
- package/.aios-core/core-config.yaml +10 -5
- package/.aios-core/data/aios-kb.md +19 -25
- package/.aios-core/data/entity-registry.yaml +311 -204
- package/.aios-core/data/registry-update-log.jsonl +8 -0
- package/.aios-core/development/tasks/db-squad-integration.md +3 -3
- package/.aios-core/development/tasks/dev-develop-story.md +1 -1
- package/.aios-core/development/tasks/integrate-squad.md +1 -1
- package/.aios-core/development/tasks/pr-automation.md +3 -3
- package/.aios-core/development/tasks/squad-creator-migrate.md +1 -1
- package/.aios-core/development/tasks/squad-creator-sync-ide-command.md +0 -2
- package/.aios-core/development/tasks/update-aios.md +2 -2
- package/.aios-core/development/tasks/validate-next-story.md +2 -99
- package/.aios-core/development/workflows/README.md +0 -4
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +0 -1
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +3 -3
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +1 -1
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +4 -4
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +2 -2
- package/.aios-core/framework-config.yaml +8 -4
- package/.aios-core/infrastructure/scripts/ide-sync/README.md +29 -5
- package/.aios-core/infrastructure/scripts/ide-sync/gemini-commands.js +205 -0
- package/.aios-core/infrastructure/scripts/ide-sync/index.js +48 -11
- package/.aios-core/infrastructure/scripts/ide-sync/redirect-generator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-utilities.js +1 -1
- package/.aios-core/infrastructure/scripts/tool-resolver.js +2 -2
- package/.aios-core/infrastructure/scripts/validate-claude-integration.js +101 -0
- package/.aios-core/infrastructure/scripts/validate-codex-integration.js +141 -0
- package/.aios-core/infrastructure/scripts/validate-gemini-integration.js +151 -0
- package/.aios-core/infrastructure/scripts/validate-parity.js +119 -0
- package/.aios-core/infrastructure/templates/aios-sync.yaml.template +0 -11
- package/.aios-core/install-manifest.yaml +83 -71
- package/.aios-core/local-config.yaml.template +2 -1
- package/.aios-core/presets/README.md +0 -1
- package/.aios-core/product/data/integration-patterns.md +1 -1
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +87 -233
- package/.aios-core/product/templates/statusline/statusline-script.js +188 -0
- package/.aios-core/product/templates/statusline/track-agent.sh +68 -0
- package/.aios-core/user-guide.md +14 -19
- package/LICENSE +0 -27
- package/README.md +42 -6
- package/bin/aios-init.js +98 -54
- package/bin/modules/env-config.js +0 -1
- package/package.json +18 -5
- package/packages/gemini-aios-extension/README.md +13 -8
- package/packages/gemini-aios-extension/commands/aios-agent.js +7 -0
- package/packages/gemini-aios-extension/commands/aios-agents.js +2 -1
- package/packages/gemini-aios-extension/commands/aios-analyst.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-architect.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-data-engineer.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-dev.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-devops.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-master.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-menu.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-pm.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-po.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-qa.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-sm.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-squad-creator.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-ux-design-expert.js +6 -0
- package/packages/gemini-aios-extension/commands/lib/agent-launcher.js +138 -0
- package/packages/gemini-aios-extension/extension.json +70 -0
- package/packages/gemini-aios-extension/gemini-extension.json +147 -0
- package/packages/gemini-aios-extension/hooks/hooks.json +67 -65
- package/packages/installer/src/config/ide-configs.js +10 -10
- package/packages/installer/src/config/templates/core-config-template.js +6 -3
- package/packages/installer/src/wizard/ide-config-generator.js +373 -2
- package/packages/installer/src/wizard/ide-selector.js +1 -1
- package/scripts/code-intel-health-check.js +125 -125
- package/scripts/ensure-manifest.js +58 -0
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/windsurf.js +0 -106
- package/.aios-core/product/templates/ide-rules/cline-rules.md +0 -84
- package/.aios-core/product/templates/ide-rules/roo-rules.md +0 -86
- 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
|
|
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
|
|
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
|
|
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:
|
|
857
|
+
📋 Story 3.15: Squad Auto Configuration
|
|
858
858
|
|
|
859
859
|
📖 Task 1: Design configuration schema
|
|
860
860
|
❓ Decision Point - Schema Format
|
|
@@ -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
|
-
- [ ] **
|
|
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
|
-
- **
|
|
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
|
|
635
|
+
### Example 1: Submit New Squad
|
|
636
636
|
|
|
637
637
|
```bash
|
|
638
638
|
aios activate Otto # github-devops agent
|
|
@@ -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/
|
|
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/
|
|
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:
|
|
193
|
+
version: 1.0.0
|
|
194
194
|
dependencies:
|
|
195
195
|
- N/A
|
|
196
196
|
tags:
|
|
197
197
|
- automation
|
|
198
198
|
- workflow
|
|
199
|
-
|
|
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 "
|
|
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
|
-
| **
|
|
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
|
-
|
|
|
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 |
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
|
|
76
76
|
| Old Term | New Term | Affected Documents |
|
|
77
77
|
|----------|----------|-------------------|
|
|
78
|
-
|
|
|
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
|
|
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 "
|
|
192
|
-
grep -r "
|
|
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 "
|
|
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 "
|
|
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:
|
|
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 |
|
|
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
|
+
};
|