UNPKG

aios-core

Version:

Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework

388 lines (285 loc) 10.6 kB
--- ## Execution Modes **Choose your execution mode:** ### 1. YOLO Mode - Fast, Autonomous (0-1 prompts) - Autonomous decision making with logging - Minimal user interaction - **Best for:** Simple, deterministic tasks ### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]** - Explicit decision checkpoints - Educational explanations - **Best for:** Learning, complex decisions ### 3. Pre-Flight Planning - Comprehensive Upfront Planning - Task analysis phase (identify all ambiguities) - Zero ambiguity execution - **Best for:** Ambiguous requirements, critical work **Parameter:** `mode` (optional, default: `interactive`) --- ## Task Definition (AIOS Task Format V1.0) ```yaml task: runWorkflow() responsavel: Orion (Commander) responsavel_type: Agente atomic_layer: Config **Entrada:** - campo: workflow_name tipo: string origem: User Input obrigatório: true validação: Must match an existing workflow YAML file - campo: target_context tipo: string origem: User Input obrigatório: false validação: Must be "core", "squad", or "hybrid". Default: "core" - campo: squad_name tipo: string origem: User Input obrigatório: false (required when target_context="squad" or "hybrid") validação: Must be kebab-case, squad must exist in squads/ - campo: action tipo: string origem: User Input obrigatório: false validação: Must be "start", "continue", "status", "skip", or "abort". Default: "continue" - campo: mode tipo: string origem: User Input obrigatório: false validação: Must be "guided" or "engine". Default: "guided" **Saída:** - campo: workflow_state tipo: object destino: File system (.aios/{instance-id}-state.yaml) persistido: true - campo: next_steps tipo: array destino: Output persistido: false - campo: handoff_prompt tipo: string destino: Output persistido: false ``` --- ## Pre-Conditions **Purpose:** Validate prerequisites BEFORE task execution (blocking) **Checklist:** ```yaml pre-conditions: - [ ] workflow_name must resolve to an existing YAML file tipo: pre-condition blocker: true validação: | Check workflow file exists at resolved path error_message: "Pre-condition failed: Workflow '{workflow_name}' not found" - [ ] For action=continue/status/skip/abort, an active state file must exist tipo: pre-condition blocker: true validação: | Check .aios/{instance-id}-state.yaml exists with status=active error_message: "Pre-condition failed: No active workflow instance found" - [ ] When target_context="squad" or "hybrid", squad directory must exist tipo: pre-condition blocker: true validação: | If target_context is "squad" or "hybrid", verify squads/{squad_name}/ exists error_message: "Pre-condition failed: Squad '{squad_name}' not found" ``` --- ## Post-Conditions **Purpose:** Validate execution success AFTER task completes **Checklist:** ```yaml post-conditions: - [ ] State file created/updated and next steps displayed tipo: post-condition blocker: true validação: | Verify state file exists and output was generated error_message: "Post-condition failed: State file not written or output missing" ``` --- ## Acceptance Criteria **Purpose:** Definitive pass/fail criteria for task completion **Checklist:** ```yaml acceptance-criteria: - [ ] Action executed correctly; state persisted; next steps shown tipo: acceptance-criterion blocker: true validação: | Assert action was completed and state reflects the change error_message: "Acceptance criterion not met: Action execution failed" ``` --- ## Tools **External/shared resources used by this task:** > **Note:** The tools below are conceptual patterns executed by the AI agent at runtime (file reads, YAML parsing, state management). They are NOT standalone JS scripts the agent implements this logic inline using its native tools (Read, Write, Glob, etc.). - **Tool:** workflow-state-manager - **Purpose:** Create, load, save, and query workflow state - **Implementation:** AI agent reads/writes `.aios/{instance-id}-state.yaml` files directly - **Tool:** workflow-validator - **Purpose:** Validate workflow YAML before starting - **Implementation:** AI agent validates structure, sequence, and references inline - **Tool:** file-system - **Purpose:** YAML file reading and state persistence - **Implementation:** Native Read/Write/Glob tools --- ## Error Handling **Strategy:** abort **Common Errors:** 1. **Error:** Workflow Not Found - **Cause:** Specified workflow_name doesn't resolve to a YAML file - **Resolution:** Check name and target context - **Recovery:** List available workflows 2. **Error:** No Active Instance - **Cause:** Trying to continue/status/skip/abort without an active state - **Resolution:** Start the workflow first with action=start - **Recovery:** Show available state files 3. **Error:** Step Not Optional - **Cause:** Trying to skip a non-optional step - **Resolution:** Complete the step or abort the workflow - **Recovery:** Show which steps are optional --- ## Performance **Expected Metrics:** ```yaml duration_expected: 1-3 min (estimated) cost_estimated: $0.001-0.005 token_usage: ~500-1,500 tokens ``` --- ## Metadata ```yaml story: N/A version: 1.0.0 dependencies: - run-workflow-engine.md tags: - workflow - execution - automation - state-management updated_at: 2026-01-31 ``` --- # Run Workflow Task ## Purpose To provide guided workflow automation with file-based state persistence. Tracks workflow progress across sessions, suggests next concrete actions, and maintains continuity. NOT a full execution engine a "guided automation" approach where the human remains the orchestrator. ## Prerequisites - Target workflow YAML must exist at the resolved path - For engine mode: `run-workflow-engine.md` task must exist at `.aios-core/development/tasks/run-workflow-engine.md` - State directory `.aios/` must be writable ## Elicitation Points The following inputs are collected before execution: 1. **workflow_name** Which workflow to run (required) 2. **target_context** Where to look for the workflow: `core`, `squad`, or `hybrid` (default: `core`) 3. **squad_name** Required when target_context is `squad` or `hybrid` 4. **action** What to do: `start`, `continue`, `status`, `skip`, `abort` (default: `continue`) 5. **mode** Execution mode: `guided` (persona-switch) or `engine` (real subagent spawning) (default: `guided`) ## Task Execution ### Mode Dispatch **BEFORE processing any action**, check the `mode` parameter: ``` IF mode == "engine": Delegate ENTIRELY to run-workflow-engine.md task. Pass all parameters: workflow_name, target_context, squad_name, action. The engine task handles everything from here do NOT continue below. STOP. ELSE (mode == "guided" or not specified): Continue with existing guided automation logic below. ``` --- ### Action: `start` Initialize a new workflow execution. 1. **Resolve workflow file path** based on target_context: - `core` `.aios-core/development/workflows/{workflow_name}.yaml` - `squad` `squads/{squad_name}/workflows/{workflow_name}.yaml` - `hybrid` `squads/{squad_name}/workflows/{workflow_name}.yaml` 2. **Validate workflow** using WorkflowValidator: - Must pass validation before starting - Display any warnings 3. **Create state file** using WorkflowStateManager.createState(): - Generates unique instance ID - Builds step list from workflow sequence - Writes state to `.aios/{instance-id}-state.yaml` 4. **Show step 1 instructions:** ```text === Workflow Started: {workflow_name} === Instance: {instance_id} Step 1/{total}: {phase} Agent: @{agent} Action: {action description} Notes: {step notes} To execute this step: 1. Activate agent: @{agent} 2. {specific instructions based on action} When done, run: *run-workflow {workflow_name} continue ``` ### Action: `continue` (default) Resume from current step. 1. **Find active state file** for this workflow 2. **Load state** using WorkflowStateManager.loadState() 3. **Get current step** if current step is still pending, show its instructions 4. **If current step was completed externally**, mark completed and advance: - Confirm with user: "Did you complete step {N}? (y/n)" - On yes: markStepCompleted() advanceStep() show next step - On no: re-display current step instructions 5. **Show next step instructions** with pre-populated agent/command: ```text Step {N}/{total}: {phase} Agent: @{agent} Action: {action} Suggested command: @{agent} Handoff: {handoff_prompt if available} When done, run: *run-workflow {workflow_name} continue ``` 6. **Save updated state** ### Action: `status` Show progress summary. 1. **Load state** 2. **Generate status report** using WorkflowStateManager.generateStatusReport(): - Visual progress bar - Step checklist with icons - Artifact status - Decision log ### Action: `skip` Skip current step (only if optional). 1. **Load state** 2. **Verify current step is optional** error if not 3. **Mark step skipped** using WorkflowStateManager.markStepSkipped() 4. **Advance to next step** using WorkflowStateManager.advanceStep() 5. **Show next step instructions** 6. **Save updated state** ### Action: `abort` Abort workflow execution. 1. **Load state** 2. **Set status to 'aborted'** 3. **Generate cleanup notes:** ```text === Workflow Aborted: {workflow_name} === Instance: {instance_id} Progress: {completed}/{total} steps completed Artifacts created: - {list of created artifacts} State file preserved at: .aios/{instance-id}-state.yaml (Delete manually if no longer needed) ``` 4. **Save final state** ## Multi-Session Continuity The state file persists between sessions. To continue a workflow: 1. User starts new Claude Code session 2. Activates @aios-master 3. Runs `*run-workflow {name} continue` 4. System loads state, shows current step 5. User executes step (possibly in new agent session) 6. Returns and runs `continue` again The `generateHandoffContext()` method produces markdown suitable for inclusion in session handoff documents. ## Output Format All actions produce structured output with: - Status header - Progress indicator - Current step details - Suggested next commands - Handoff prompt (when transitioning between agents)