aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
512 lines (391 loc) • 16.4 kB
Markdown
# Open-Source vs Service Implementation Differences
**Version:** 2.1.0
**Date:** 2025-12-09
**Purpose:** Document differences between AIOS open-source and AIOS service implementations
**Status:** ⚠️ Needs Review - Updated for v4.2 Multi-Repo Strategy
## Overview
AIOS has two deployment contexts:
1. **Open-Source** - Public repositories, community-driven, self-hosted
2. **Service** - Commercial offering (e.g., MMOS Mind emulations, certified partner integrations)
This document clarifies which features apply to which context.
## Multi-Repo Strategy (v4.2)
### Repository Organization
| Repository | License | Type | Contains |
|------------|---------|------|----------|
| `SynkraAI/aios-core` | Commons Clause | Public | Core framework, 11 agents, Quality Gates |
| `SynkraAI/aios-squads` | MIT | Public | ETL, Creator, MMOS-Mapper squads |
| `SynkraAI/mcp-ecosystem` | Apache 2.0 | Public | Docker MCP, IDE configs, MCP presets |
| `SynkraAI/mmos` | Proprietary + NDA | Private | MMOS Minds, DNA Mental |
| `SynkraAI/certified-partners` | Proprietary | Private | Premium squads, partner portal |
### npm Package Scoping
| Package | Registry | Availability |
|---------|----------|--------------|
| `@aios/core` | npm public | Open-source |
| `@aios/squad-etl` | npm public | Open-source |
| `@aios/squad-creator` | npm public | Open-source |
| `@aios/squad-mmos` | npm public | Open-source |
| `@aios/mcp-presets` | npm public | Open-source |
### Open-Source vs Service by Repository
```
┌─────────────────────────────────────────────────────────────────────────┐
│ OPEN-SOURCE (Public Repos) │
│ │
│ SynkraAI/aios-core SynkraAI/aios-squads │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ • Core Framework │ │ • ETL Squad │ │
│ │ • 11 Base Agents │ │ • Creator Squad │ │
│ │ • Quality Gates │ │ • MMOS-Mapper Squad │ │
│ │ • Standards Docs │ │ • squad.yaml format │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │
│ SynkraAI/mcp-ecosystem │
│ ┌─────────────────────┐ │
│ │ • Docker MCP │ │
│ │ • IDE Configurations│ │
│ │ • MCP Presets │ │
│ └─────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ SERVICE (Private Repos) │
│ │
│ SynkraAI/mmos SynkraAI/certified-partners │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ • MMOS Minds │ │ • Premium Squads │ │
│ │ • DNA Mental™ │ │ • Partner Portal │ │
│ │ • Mind Clones │ │ • Custom Agents │ │
│ │ • NDA Required │ │ • Enterprise Tools │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
```
## Task Format Differences
### responsavel_type Field
| Value | Open-Source | Service | Description |
|-------|-------------|---------|-------------|
| **Agente** | ✅ Yes | ✅ Yes | AI-powered agent execution |
| **Worker** | ❌ No | ✅ Yes | Script-based execution (service infrastructure) |
| **Humano** | ❌ No | ✅ Yes | Manual human review (service team) |
| **Clone** | ⚠️ MMOS Squad only | ✅ Yes | Mind emulation (MMOS Squad or service) |
**Open-Source Rule:**
- Always use `responsavel_type: Agente`
- Exception: MMOS Squad may use `Clone` for mind emulations
- Never use `Worker` or `Humano` in open-source tasks
**Service Rule:**
- Can use all 4 types based on EXECUTOR-DECISION-TREE.md
- Worker for orchestration scripts
- Humano for QA reviews
- Clone for methodology validation (Brad Frost, etc.)
### atomic_layer Field
| Context | Usage | Example |
|---------|-------|---------|
| **Open-Source** | Optional, conceptual | Can omit or include for documentation |
| **Service** | Required for design tasks | Must specify for Atomic Design validation |
**Open-Source Rule:**
- `atomic_layer` is a **concept** for understanding task organization
- Not strictly enforced in validation
- Can be included for clarity but not required
**Service Rule:**
- Required for all tasks in design workflows
- Validated against Atomic Design principles
- Used for dependency tracking and architecture validation
### Template Field
**Open-Source:**
```yaml
**Template:**
- path: .aios-core/templates/task-execution-report.md
type: output
version: 1.0
variables: [agent_name, task_name, duration]
```
**Service:**
```yaml
**Template:**
- path: squads/instagram-content-creator/tasks/analyze-brief.md
type: prompt
version: 2.1.0
variables: [brief_text, brand_id, campaign_goal]
schema: squads/.../schemas/analyze-brief-output.json
```
**Difference:**
- Open-source uses templates from `.aios-core/templates/`
- Service uses Squad-specific templates with JSON Schema validation
## Checklist Differences
### Naming Convention
**Open-Source (Recommended):**
```yaml
# In task files
pre-conditions:
- [ ] {condition}
post-conditions:
- [ ] {condition}
acceptance-criteria:
- [ ] {criterion}
# Separate file for agent-general validations
.aios-core/checklists/{agent-id}-general-validation.md
```
**Rationale:**
- `pre-conditions` and `post-conditions` are execution-specific
- `acceptance-criteria` link to story requirements
- Generic agent checklists (like "always run linter") go in separate files
**Service:**
```yaml
# Can use same structure OR
# Can use "Checklist:" section with types
**Checklist:**
pre-conditions: [...]
post-conditions: [...]
acceptance-criteria: [...]
```
## Tools vs Scripts
### Open-Source Definition
**Tools** = External, reusable, shared across agents
- MCPs (mcp-clickup, mcp-supabase, context7, exa)
- CLI wrappers (gh, supabase CLI)
- APIs (public APIs)
- Shared utility scripts (used by 2+ agents)
**Scripts** = Agent-specific, not reusable
- `.aios-core/scripts/{agent-id}-specific/{script}.js`
- Logic unique to one agent
- Not abstracted for reuse
**Example:**
```yaml
# DEV AGENT TASK
**Tools:**
- context7: # MCP - shared with architect, analyst
used_for: Documentation lookup
shared_with: [dev, architect, analyst]
- mcp-supabase: # MCP - shared with data-engineer, architect
used_for: Database operations
shared_with: [dev, data-engineer, architect]
**Scripts:**
- .aios-core/scripts/dev-specific/test-runner.js: # Only dev uses this
description: Dev agent test execution logic
language: javascript
```
### Service Definition
Same as open-source, but may include:
- Proprietary APIs
- Internal microservices
- Commercial tools (paid APIs)
## Execution Modes
### Open-Source
**Applicable to:**
- Tasks with creative/subjective decisions
- Tasks with ambiguity
- Tasks requiring user collaboration
**Not applicable to:**
- Deterministic config loaders
- Schema validators
- Simple file operations
**Example Tasks with Modes:**
- `develop-story` - Many decisions during development
- `create-agent` - Creative design of agent persona
- `design-architecture` - Strategic planning decisions
**Example Tasks without Modes:**
- `load-config` - No decisions, always same logic
- `validate-schema` - Deterministic validation
- `list-files` - Simple file listing
### Service
Same as open-source, but may have:
- Service-specific modes (e.g., "batch mode" for bulk processing)
- Different default modes based on user tier
## Error Handling
### Open-Source
**Fallback Plans:**
- Missing input → Prompt user or use defaults
- Missing template → Use generic template from `.aios-core/templates/`
- Missing tool → Abort and notify user
- Missing data → Use minimal defaults or prompt user
**Example:**
```yaml
**Error Handling:**
- strategy: fallback
- fallback: |
If template not found:
1. Check .aios-core/templates/ for generic version
2. If not found, use minimal output structure
3. Notify user of missing template
```
### Service
**Fallback Plans:**
- Missing input → Use AI inference or service defaults
- Missing template → Retry with alternative source
- Missing tool → Route to different service
- Missing data → Query external APIs or databases
**Example:**
```yaml
**Error Handling:**
- strategy: fallback
- fallback: |
If template not found:
1. Query template service API
2. Use AI to generate template dynamically
3. Fallback to cached template from previous run
```
## Performance Tracking
### Open-Source
**Metrics:**
- Duration (ms)
- Tokens (input/output/total)
- Cost (estimated based on tokens)
- Cache hits/misses
**Tracking:**
- Logged to console or file
- Can be sent to analytics if user opts in
**Example:**
```yaml
**Performance:**
- duration_expected: 2000ms
- cost_estimated: $0.001 # Calculated from token usage
- cacheable: true
```
### Service
**Metrics:**
- All open-source metrics PLUS:
- User ID tracking
- A/B test variant
- Service SLA compliance
- Queue wait time
**Tracking:**
- Sent to production analytics
- Monitored for SLA violations
- Used for billing
**Example:**
```yaml
**Performance:**
- duration_expected: 2000ms
- cost_estimated: $0.001
- cacheable: true
- sla_target: 3000ms # Service-specific
- queue_priority: high # Service-specific
```
## Personality Configuration
### Open-Source
**Agent Personas:**
- Defined in `.aios-core/agents/{agent-id}.md`
- All 11 agents have personas (Dex, Quinn, Pax, etc.)
- PT-BR localization (DECISION-1)
- 3 personification levels (minimal, named, archetypal)
**Output:**
- Standardized structure (familiaridade)
- Personalized tone (personalização)
- Fixed positions for metrics/duration/tokens
### Service
Same as open-source, but may include:
- Customer-specific personas (white-label)
- Multi-language support beyond PT-BR
- Custom archetypes for specific industries
## Metadata
### Open-Source
**Required:**
- story: STORY-XXX
- version: X.Y.Z
- author: {name or team}
- created_at / updated_at
**Optional:**
- dependencies
- breaking_changes
### Service
**Required:**
- All open-source fields PLUS:
- service_id: {service identifier}
- customer_id: {customer identifier if multi-tenant}
- billing_code: {for cost allocation}
## Validation
### Open-Source
**Task Validation:**
```javascript
function validateTask(task) {
const required = ['task', 'responsável', 'responsavel_type', 'Entrada', 'Saída'];
// Open-source specific: responsavel_type must be "Agente" (except MMOS)
if (task.responsavel_type !== 'Agente' && !task.isMmosSquad) {
console.warn(`Open-source tasks should use responsavel_type: Agente. Found: ${task.responsavel_type}`);
}
// atomic_layer is optional
if (!task.atomic_layer) {
console.info('atomic_layer not specified (optional for open-source)');
}
return true;
}
```
### Service
**Task Validation:**
```javascript
function validateTask(task) {
const required = ['task', 'responsável', 'responsavel_type', 'atomic_layer', 'Entrada', 'Saída'];
// Service: all executor types allowed
const validExecutors = ['Agente', 'Worker', 'Humano', 'Clone'];
if (!validExecutors.includes(task.responsavel_type)) {
throw new Error(`Invalid executor type: ${task.responsavel_type}`);
}
// Service: atomic_layer required for design tasks
if (!task.atomic_layer && task.category === 'design') {
throw new Error('atomic_layer required for design tasks');
}
return true;
}
```
## Migration Checklist
### Converting Service Task to Open-Source
- [ ] Change `responsavel_type: Worker` → `responsavel_type: Agente`
- [ ] Change `responsavel_type: Humano` → `responsavel_type: Agente`
- [ ] Change `responsavel_type: Clone` → `responsavel_type: Agente` (unless MMOS)
- [ ] Make `atomic_layer` optional (or remove if not useful)
- [ ] Update template paths (squads/ → .aios-core/templates)
- [ ] Remove service-specific fields (service_id, customer_id, billing_code)
- [ ] Update error handling fallbacks (remove service APIs)
- [ ] Update tools (remove proprietary/internal tools)
- [ ] Update performance metrics (remove service SLA fields)
### Converting Open-Source Task to Service
- [ ] Keep `responsavel_type: Agente` OR change based on EXECUTOR-DECISION-TREE.md
- [ ] Make `atomic_layer` required for design tasks
- [ ] Update template paths to Squad templates
- [ ] Add service-specific fields (service_id, etc.)
- [ ] Update error handling with service fallbacks
- [ ] Add service tools/APIs
- [ ] Add service performance metrics (SLA, queue priority)
## Quick Reference
| Feature | Open-Source | Service |
|---------|-------------|---------|
| **responsavel_type** | Agente only | Agente/Worker/Humano/Clone |
| **atomic_layer** | Optional | Required for design |
| **Templates** | .aios-core/templates/ | squads/{squad}/ |
| **Tools** | MCPs, open-source CLIs | + Proprietary APIs |
| **Scripts** | Agent-specific only | + Service orchestration |
| **Error Fallbacks** | Local/user-driven | + Service APIs |
| **Performance Tracking** | Local logging | + Production analytics |
| **Personas** | 11 standard agents | + Custom/white-label |
| **Validation** | Relaxed (warnings) | Strict (errors) |
## Related Documents
- [AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md](./AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md) - Complete v4.2 framework guide
- [STANDARDS-INDEX.md](./STANDARDS-INDEX.md) - Standards navigation
- [TASK-FORMAT-SPECIFICATION-V1.md](./TASK-FORMAT-SPECIFICATION-V1.md) - Complete task format spec
- [AGENT-PERSONALIZATION-STANDARD-V1.md](./AGENT-PERSONALIZATION-STANDARD-V1.md) - Personality guidelines
- [multi-repo-strategy.md](../../docs/architecture/multi-repo-strategy.md) - Multi-repo architecture details
## Change Log
| Date | Version | Changes | Author |
|------|---------|---------|--------|
| 2025-01-14 | 1.0.0 | Initial document | @architect |
| 2025-12-09 | 2.1.0 | Added Multi-Repo Strategy section, updated terminology (Squad), updated related docs | @dev (Dex) |
**Last Updated:** 2025-12-09
**Version:** 2.1.0
**Applies to:** AIOS v4.2+