ouroboros-ai 0.2.3__tar.gz → 0.3.0__tar.gz
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.
Potentially problematic release.
This version of ouroboros-ai might be problematic. Click here for more details.
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/CHANGELOG.md +38 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/PKG-INFO +65 -14
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/README.md +64 -13
- ouroboros_ai-0.3.0/docs/cli-reference.md +379 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/pyproject.toml +1 -1
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/bigbang/interview.py +16 -18
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/commands/init.py +162 -97
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/bigbang/test_interview.py +33 -25
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/uv.lock +1 -1
- ouroboros_ai-0.2.3/requirement/1_EXECUTIVE_SUMMARY.md +0 -167
- ouroboros_ai-0.2.3/requirement/2_FULL_SPECIFICATION.md +0 -1067
- ouroboros_ai-0.2.3/requirement/3_CONFIG_TEMPLATE.yaml +0 -344
- ouroboros_ai-0.2.3/requirement/4_REDDIT_EXAMPLE.md +0 -2108
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/.gitignore +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/.pre-commit-config.yaml +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/.python-version +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/LICENSE +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/PR-43-CODE-REVIEW-REPORT.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/github-issue-mapping.yaml +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/sprint-status.yaml +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-1-project-initialization-with-uv.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-2-core-types-and-error-handling.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-3-event-store-with-sqlalchemy-core.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-4-configuration-and-credentials-management.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-5-llm-provider-adapter-with-litellm.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-6-cli-skeleton-with-typer-and-rich.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-7-structured-logging-with-structlog.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-8-checkpoint-and-recovery-system.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/0-9-context-compression-engine.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/1-1-interview-protocol-engine.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/1-2-ambiguity-score-calculation.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/1-3-immutable-seed-generation.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/2-1-three-tier-model-configuration.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/2-2-complexity-based-routing.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/2-3-escalation-on-failure.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/2-4-downgrade-on-success.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/3-1-double-diamond-cycle-implementation.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/3-2-hierarchical-ac-decomposition.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/3-3-atomicity-detection.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/3-4-subagent-isolation.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/4-1-stagnation-detection-4-patterns.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/4-2-lateral-thinking-personas.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/4-3-persona-rotation-strategy.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/5-1-stage-1-mechanical-verification.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/5-2-stage-2-semantic-evaluation.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/5-3-stage-3-multi-model-consensus.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/5-4-consensus-trigger-matrix.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/6-1-drift-measurement-engine.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/6-2-automatic-retrospective.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/7-1-todo-registry.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/implementation-artifacts/stories/7-2-secondary-loop-batch-processing.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/planning-artifacts/architecture.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/planning-artifacts/bmm-workflow-status.yaml +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/planning-artifacts/epics.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/_bmad-output/update-stories.sh +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/docs/running-with-claude-code.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/project-context.md +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/__main__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/bigbang/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/bigbang/ambiguity.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/bigbang/seed_generator.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/commands/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/commands/config.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/commands/run.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/commands/status.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/formatters/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/formatters/panels.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/formatters/progress.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/formatters/tables.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/cli/main.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/config/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/config/loader.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/config/models.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/core/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/core/ac_tree.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/core/context.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/core/errors.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/core/security.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/core/seed.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/core/types.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/evaluation/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/evaluation/consensus.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/evaluation/mechanical.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/evaluation/models.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/evaluation/pipeline.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/evaluation/semantic.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/evaluation/trigger.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/events/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/events/base.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/events/decomposition.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/events/evaluation.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/execution/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/execution/atomicity.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/execution/decomposition.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/execution/double_diamond.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/execution/subagent.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/observability/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/observability/drift.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/observability/logging.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/observability/retrospective.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/orchestrator/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/orchestrator/adapter.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/orchestrator/events.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/orchestrator/runner.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/orchestrator/session.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/checkpoint.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/event_store.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/migrations/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/migrations/runner.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/migrations/scripts/001_initial.sql +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/schema.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/persistence/uow.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/providers/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/providers/base.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/providers/claude_code_adapter.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/providers/litellm_adapter.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/py.typed +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/resilience/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/resilience/lateral.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/resilience/stagnation.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/routing/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/routing/complexity.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/routing/downgrade.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/routing/escalation.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/routing/router.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/routing/tiers.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/secondary/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/secondary/scheduler.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/src/ouroboros/secondary/todo_registry.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/conftest.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/integration/test_entry_point.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/bigbang/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/bigbang/test_ambiguity.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/bigbang/test_seed_generator.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/cli/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/cli/formatters/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/cli/formatters/test_console.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/cli/formatters/test_panels.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/cli/formatters/test_progress.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/cli/formatters/test_tables.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/cli/test_main.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/config/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/config/test_loader.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/config/test_models.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/core/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/core/test_ac_tree.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/core/test_context.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/core/test_errors.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/core/test_security.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/core/test_seed.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/core/test_types.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/evaluation/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/evaluation/test_consensus.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/evaluation/test_mechanical.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/evaluation/test_models.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/evaluation/test_semantic.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/evaluation/test_trigger.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/events/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/events/test_base.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/events/test_decomposition_events.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/execution/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/execution/test_atomicity.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/execution/test_decomposition.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/execution/test_double_diamond.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/execution/test_subagent_isolation.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/observability/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/observability/test_drift.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/observability/test_logging.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/observability/test_retrospective.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/orchestrator/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/orchestrator/test_adapter.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/orchestrator/test_events.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/orchestrator/test_runner.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/orchestrator/test_session.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/persistence/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/persistence/test_checkpoint.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/persistence/test_event_store.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/persistence/test_schema.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/persistence/test_uow.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/providers/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/providers/test_base.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/providers/test_litellm_adapter.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/resilience/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/resilience/test_lateral.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/resilience/test_stagnation.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/routing/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/routing/test_complexity.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/routing/test_downgrade.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/routing/test_escalation.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/routing/test_router.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/routing/test_tiers.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/secondary/__init__.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/secondary/test_scheduler.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/secondary/test_todo_registry.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/test_dependencies_configured.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/test_main_entry_point.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/test_module_structure.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/test_project_initialization.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tests/unit/test_tooling_configuration.py +0 -0
- {ouroboros_ai-0.2.3 → ouroboros_ai-0.3.0}/tools/sync_github_project.py +0 -0
|
@@ -5,6 +5,44 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.0] - 2026-01-28
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
#### Documentation
|
|
13
|
+
- **CLI Reference** (`docs/cli-reference.md`) - Complete command reference with examples
|
|
14
|
+
- **Prerequisites section** in README with Python 3.14+ requirement
|
|
15
|
+
- **Contributing section** with links to Issues and Discussions
|
|
16
|
+
- **OSS badges** - PyPI version, Python version, License
|
|
17
|
+
|
|
18
|
+
#### Interview System
|
|
19
|
+
- **Tiered confirmation system** for interview rounds:
|
|
20
|
+
- Rounds 1-3: Auto-continue (minimum context gathering)
|
|
21
|
+
- Rounds 4-15: Ask "Continue?" after each round
|
|
22
|
+
- Rounds 16+: Ask "Continue?" with diminishing returns warning
|
|
23
|
+
- **No hard round limit** - User controls when to stop
|
|
24
|
+
- New constants: `MIN_ROUNDS_BEFORE_EARLY_EXIT`, `SOFT_LIMIT_WARNING_THRESHOLD`
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
#### Interview Engine
|
|
29
|
+
- Removed `MAX_INTERVIEW_ROUNDS` hard limit (was 10)
|
|
30
|
+
- `is_complete` now only checks status (user-controlled completion)
|
|
31
|
+
- `record_response()` no longer auto-completes at max rounds
|
|
32
|
+
- System prompt simplified to show "Round N" instead of "Round N of 10"
|
|
33
|
+
|
|
34
|
+
#### CLI Init Command
|
|
35
|
+
- Extracted `_run_interview_loop()` helper to eliminate code duplication (~60 lines)
|
|
36
|
+
- State saved immediately after status mutation for consistency
|
|
37
|
+
- Updated welcome message to reflect no round limit
|
|
38
|
+
|
|
39
|
+
### Removed
|
|
40
|
+
- Korean-language requirement documents (`requirement/` folder)
|
|
41
|
+
- Hard round limit enforcement in interview engine
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
- Code duplication in init.py interview continuation flow
|
|
45
|
+
|
|
8
46
|
## [0.2.0] - 2026-01-27
|
|
9
47
|
|
|
10
48
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ouroboros-ai
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Self-Improving AI Workflow System
|
|
5
5
|
Author-email: Q00 <jqyu.lee@gmail.com>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -41,18 +41,26 @@ Description-Content-Type: text/markdown
|
|
|
41
41
|
<em>The serpent that devours itself to be reborn anew.</em>
|
|
42
42
|
</p>
|
|
43
43
|
|
|
44
|
+
<p align="center">
|
|
45
|
+
<a href="https://pypi.org/project/ouroboros-ai/"><img src="https://img.shields.io/pypi/v/ouroboros-ai?color=blue" alt="PyPI"></a>
|
|
46
|
+
<a href="https://python.org"><img src="https://img.shields.io/badge/python-3.14+-blue" alt="Python"></a>
|
|
47
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
|
|
48
|
+
</p>
|
|
49
|
+
|
|
44
50
|
<p align="center">
|
|
45
51
|
<a href="#-philosophy">Philosophy</a> •
|
|
46
52
|
<a href="#-the-six-phases">Phases</a> •
|
|
47
53
|
<a href="#-architecture">Architecture</a> •
|
|
54
|
+
<a href="#-prerequisites">Prerequisites</a> •
|
|
48
55
|
<a href="#-quick-start">Start</a> •
|
|
49
|
-
<a href="#-
|
|
56
|
+
<a href="#-roadmap">Roadmap</a> •
|
|
57
|
+
<a href="#-contributing">Contributing</a>
|
|
50
58
|
</p>
|
|
51
59
|
|
|
52
60
|
<br/>
|
|
53
61
|
|
|
54
62
|
<p align="center">
|
|
55
|
-
<code>
|
|
63
|
+
<code>75 modules</code> · <code>1,341 tests</code> · <code>97%+ coverage</code> · <code>v0.2.x</code>
|
|
56
64
|
</p>
|
|
57
65
|
|
|
58
66
|
<br/>
|
|
@@ -352,7 +360,7 @@ src/ouroboros/
|
|
|
352
360
|
|
|
353
361
|
<br/>
|
|
354
362
|
|
|
355
|
-
|
|
363
|
+
**How it works**: Stagnation Detection (4 patterns) → Persona Rotation → Retry with fresh perspective
|
|
356
364
|
|
|
357
365
|
<br/>
|
|
358
366
|
|
|
@@ -415,6 +423,22 @@ not to restart, but to **re-crystallize** with new understanding.
|
|
|
415
423
|
|
|
416
424
|
<br/>
|
|
417
425
|
|
|
426
|
+
## ◈ Prerequisites
|
|
427
|
+
|
|
428
|
+
<br/>
|
|
429
|
+
|
|
430
|
+
| Requirement | Description |
|
|
431
|
+
|-------------|-------------|
|
|
432
|
+
| **Python 3.14+** | Required (uses latest language features) |
|
|
433
|
+
| **Claude Code Max Plan** | For orchestrator mode (no API key needed) |
|
|
434
|
+
| **OR API Key** | OpenRouter, Anthropic, or OpenAI for LiteLLM mode |
|
|
435
|
+
|
|
436
|
+
<br/>
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
<br/>
|
|
441
|
+
|
|
418
442
|
## ◈ Installation
|
|
419
443
|
|
|
420
444
|
<br/>
|
|
@@ -476,7 +500,7 @@ uv run ouroboros init start "I want to build a task management CLI"
|
|
|
476
500
|
uv run ouroboros status health
|
|
477
501
|
```
|
|
478
502
|
|
|
479
|
-
> 📖 **[Full Guide: Running with Claude Code](docs/running-with-claude-code.md)**
|
|
503
|
+
> 📖 **[Full Guide: Running with Claude Code](docs/running-with-claude-code.md)** | **[CLI Reference](docs/cli-reference.md)**
|
|
480
504
|
|
|
481
505
|
<br/>
|
|
482
506
|
|
|
@@ -563,22 +587,49 @@ uv run ruff format src/
|
|
|
563
587
|
|
|
564
588
|
<br/>
|
|
565
589
|
|
|
590
|
+
## ◈ Contributing
|
|
591
|
+
|
|
592
|
+
<br/>
|
|
593
|
+
|
|
594
|
+
Contributions are welcome! Please see:
|
|
595
|
+
|
|
596
|
+
- **Issues**: [GitHub Issues](https://github.com/Q00/ouroboros/issues) for bugs and feature requests
|
|
597
|
+
- **Discussions**: [GitHub Discussions](https://github.com/Q00/ouroboros/discussions) for questions and ideas
|
|
598
|
+
|
|
599
|
+
<br/>
|
|
600
|
+
|
|
601
|
+
---
|
|
602
|
+
|
|
603
|
+
<br/>
|
|
604
|
+
|
|
566
605
|
## ◈ Roadmap
|
|
567
606
|
|
|
568
607
|
<br/>
|
|
569
608
|
|
|
609
|
+
### Completed
|
|
610
|
+
|
|
570
611
|
```
|
|
571
|
-
[■■■■■■■■■■] Epic 0 Foundation
|
|
572
|
-
[■■■■■■■■■■] Epic 1 Big Bang
|
|
573
|
-
[■■■■■■■■■■] Epic 2 PAL Router
|
|
574
|
-
[■■■■■■■■■■] Epic 3 Double Diamond
|
|
575
|
-
[■■■■■■■■■■] Epic 4 Resilience
|
|
576
|
-
[■■■■■■■■■■] Epic 5 Evaluation
|
|
577
|
-
[■■■■■■■■■■] Epic 6 Drift Control
|
|
578
|
-
[■■■■■■■■■■] Epic 7 Secondary Loop
|
|
579
|
-
[■■■■■■■■■■] Epic 8 Orchestrator
|
|
612
|
+
[■■■■■■■■■■] Epic 0 Foundation ✓
|
|
613
|
+
[■■■■■■■■■■] Epic 1 Big Bang ✓
|
|
614
|
+
[■■■■■■■■■■] Epic 2 PAL Router ✓
|
|
615
|
+
[■■■■■■■■■■] Epic 3 Double Diamond ✓
|
|
616
|
+
[■■■■■■■■■■] Epic 4 Resilience ✓
|
|
617
|
+
[■■■■■■■■■■] Epic 5 Evaluation ✓
|
|
618
|
+
[■■■■■■■■■■] Epic 6 Drift Control ✓
|
|
619
|
+
[■■■■■■■■■■] Epic 7 Secondary Loop ✓
|
|
620
|
+
[■■■■■■■■■■] Epic 8 Orchestrator ✓
|
|
580
621
|
```
|
|
581
622
|
|
|
623
|
+
### Upcoming
|
|
624
|
+
|
|
625
|
+
| Feature | Description | Status |
|
|
626
|
+
|---------|-------------|--------|
|
|
627
|
+
| **Worker MCP** | MCP server for distributed task execution | Planned |
|
|
628
|
+
| **TUI Enhancement** | Rich terminal UI with real-time progress | Planned |
|
|
629
|
+
| **AC Tree Visualization** | Interactive acceptance criteria graph | Planned |
|
|
630
|
+
| **Plugin System** | Custom evaluators and personas | Planned |
|
|
631
|
+
| **Web Dashboard** | Execution monitoring and analytics | Planned |
|
|
632
|
+
|
|
582
633
|
<br/>
|
|
583
634
|
|
|
584
635
|
---
|
|
@@ -21,18 +21,26 @@
|
|
|
21
21
|
<em>The serpent that devours itself to be reborn anew.</em>
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
|
+
<p align="center">
|
|
25
|
+
<a href="https://pypi.org/project/ouroboros-ai/"><img src="https://img.shields.io/pypi/v/ouroboros-ai?color=blue" alt="PyPI"></a>
|
|
26
|
+
<a href="https://python.org"><img src="https://img.shields.io/badge/python-3.14+-blue" alt="Python"></a>
|
|
27
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
24
30
|
<p align="center">
|
|
25
31
|
<a href="#-philosophy">Philosophy</a> •
|
|
26
32
|
<a href="#-the-six-phases">Phases</a> •
|
|
27
33
|
<a href="#-architecture">Architecture</a> •
|
|
34
|
+
<a href="#-prerequisites">Prerequisites</a> •
|
|
28
35
|
<a href="#-quick-start">Start</a> •
|
|
29
|
-
<a href="#-
|
|
36
|
+
<a href="#-roadmap">Roadmap</a> •
|
|
37
|
+
<a href="#-contributing">Contributing</a>
|
|
30
38
|
</p>
|
|
31
39
|
|
|
32
40
|
<br/>
|
|
33
41
|
|
|
34
42
|
<p align="center">
|
|
35
|
-
<code>
|
|
43
|
+
<code>75 modules</code> · <code>1,341 tests</code> · <code>97%+ coverage</code> · <code>v0.2.x</code>
|
|
36
44
|
</p>
|
|
37
45
|
|
|
38
46
|
<br/>
|
|
@@ -332,7 +340,7 @@ src/ouroboros/
|
|
|
332
340
|
|
|
333
341
|
<br/>
|
|
334
342
|
|
|
335
|
-
|
|
343
|
+
**How it works**: Stagnation Detection (4 patterns) → Persona Rotation → Retry with fresh perspective
|
|
336
344
|
|
|
337
345
|
<br/>
|
|
338
346
|
|
|
@@ -395,6 +403,22 @@ not to restart, but to **re-crystallize** with new understanding.
|
|
|
395
403
|
|
|
396
404
|
<br/>
|
|
397
405
|
|
|
406
|
+
## ◈ Prerequisites
|
|
407
|
+
|
|
408
|
+
<br/>
|
|
409
|
+
|
|
410
|
+
| Requirement | Description |
|
|
411
|
+
|-------------|-------------|
|
|
412
|
+
| **Python 3.14+** | Required (uses latest language features) |
|
|
413
|
+
| **Claude Code Max Plan** | For orchestrator mode (no API key needed) |
|
|
414
|
+
| **OR API Key** | OpenRouter, Anthropic, or OpenAI for LiteLLM mode |
|
|
415
|
+
|
|
416
|
+
<br/>
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
<br/>
|
|
421
|
+
|
|
398
422
|
## ◈ Installation
|
|
399
423
|
|
|
400
424
|
<br/>
|
|
@@ -456,7 +480,7 @@ uv run ouroboros init start "I want to build a task management CLI"
|
|
|
456
480
|
uv run ouroboros status health
|
|
457
481
|
```
|
|
458
482
|
|
|
459
|
-
> 📖 **[Full Guide: Running with Claude Code](docs/running-with-claude-code.md)**
|
|
483
|
+
> 📖 **[Full Guide: Running with Claude Code](docs/running-with-claude-code.md)** | **[CLI Reference](docs/cli-reference.md)**
|
|
460
484
|
|
|
461
485
|
<br/>
|
|
462
486
|
|
|
@@ -543,22 +567,49 @@ uv run ruff format src/
|
|
|
543
567
|
|
|
544
568
|
<br/>
|
|
545
569
|
|
|
570
|
+
## ◈ Contributing
|
|
571
|
+
|
|
572
|
+
<br/>
|
|
573
|
+
|
|
574
|
+
Contributions are welcome! Please see:
|
|
575
|
+
|
|
576
|
+
- **Issues**: [GitHub Issues](https://github.com/Q00/ouroboros/issues) for bugs and feature requests
|
|
577
|
+
- **Discussions**: [GitHub Discussions](https://github.com/Q00/ouroboros/discussions) for questions and ideas
|
|
578
|
+
|
|
579
|
+
<br/>
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
<br/>
|
|
584
|
+
|
|
546
585
|
## ◈ Roadmap
|
|
547
586
|
|
|
548
587
|
<br/>
|
|
549
588
|
|
|
589
|
+
### Completed
|
|
590
|
+
|
|
550
591
|
```
|
|
551
|
-
[■■■■■■■■■■] Epic 0 Foundation
|
|
552
|
-
[■■■■■■■■■■] Epic 1 Big Bang
|
|
553
|
-
[■■■■■■■■■■] Epic 2 PAL Router
|
|
554
|
-
[■■■■■■■■■■] Epic 3 Double Diamond
|
|
555
|
-
[■■■■■■■■■■] Epic 4 Resilience
|
|
556
|
-
[■■■■■■■■■■] Epic 5 Evaluation
|
|
557
|
-
[■■■■■■■■■■] Epic 6 Drift Control
|
|
558
|
-
[■■■■■■■■■■] Epic 7 Secondary Loop
|
|
559
|
-
[■■■■■■■■■■] Epic 8 Orchestrator
|
|
592
|
+
[■■■■■■■■■■] Epic 0 Foundation ✓
|
|
593
|
+
[■■■■■■■■■■] Epic 1 Big Bang ✓
|
|
594
|
+
[■■■■■■■■■■] Epic 2 PAL Router ✓
|
|
595
|
+
[■■■■■■■■■■] Epic 3 Double Diamond ✓
|
|
596
|
+
[■■■■■■■■■■] Epic 4 Resilience ✓
|
|
597
|
+
[■■■■■■■■■■] Epic 5 Evaluation ✓
|
|
598
|
+
[■■■■■■■■■■] Epic 6 Drift Control ✓
|
|
599
|
+
[■■■■■■■■■■] Epic 7 Secondary Loop ✓
|
|
600
|
+
[■■■■■■■■■■] Epic 8 Orchestrator ✓
|
|
560
601
|
```
|
|
561
602
|
|
|
603
|
+
### Upcoming
|
|
604
|
+
|
|
605
|
+
| Feature | Description | Status |
|
|
606
|
+
|---------|-------------|--------|
|
|
607
|
+
| **Worker MCP** | MCP server for distributed task execution | Planned |
|
|
608
|
+
| **TUI Enhancement** | Rich terminal UI with real-time progress | Planned |
|
|
609
|
+
| **AC Tree Visualization** | Interactive acceptance criteria graph | Planned |
|
|
610
|
+
| **Plugin System** | Custom evaluators and personas | Planned |
|
|
611
|
+
| **Web Dashboard** | Execution monitoring and analytics | Planned |
|
|
612
|
+
|
|
562
613
|
<br/>
|
|
563
614
|
|
|
564
615
|
---
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
# CLI Reference
|
|
2
|
+
|
|
3
|
+
Complete command reference for the Ouroboros CLI.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install ouroboros-ai
|
|
9
|
+
# or
|
|
10
|
+
uv pip install ouroboros-ai
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
ouroboros [OPTIONS] COMMAND [ARGS]...
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Global Options
|
|
20
|
+
|
|
21
|
+
| Option | Description |
|
|
22
|
+
|--------|-------------|
|
|
23
|
+
| `-V, --version` | Show version and exit |
|
|
24
|
+
| `--install-completion` | Install shell completion |
|
|
25
|
+
| `--show-completion` | Show shell completion script |
|
|
26
|
+
| `--help` | Show help message |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Commands Overview
|
|
31
|
+
|
|
32
|
+
| Command | Description |
|
|
33
|
+
|---------|-------------|
|
|
34
|
+
| `init` | Start interactive interview to refine requirements |
|
|
35
|
+
| `run` | Execute Ouroboros workflows |
|
|
36
|
+
| `config` | Manage Ouroboros configuration |
|
|
37
|
+
| `status` | Check Ouroboros system status |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## `ouroboros init`
|
|
42
|
+
|
|
43
|
+
Start interactive interview to refine requirements (Big Bang phase).
|
|
44
|
+
|
|
45
|
+
### `init start`
|
|
46
|
+
|
|
47
|
+
Start an interactive interview to transform vague ideas into clear, executable requirements.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
ouroboros init start [OPTIONS] [CONTEXT]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Arguments:**
|
|
54
|
+
|
|
55
|
+
| Argument | Description |
|
|
56
|
+
|----------|-------------|
|
|
57
|
+
| `CONTEXT` | Initial context or idea (interactive prompt if not provided) |
|
|
58
|
+
|
|
59
|
+
**Options:**
|
|
60
|
+
|
|
61
|
+
| Option | Description |
|
|
62
|
+
|--------|-------------|
|
|
63
|
+
| `-r, --resume TEXT` | Resume an existing interview by ID |
|
|
64
|
+
| `--state-dir DIRECTORY` | Custom directory for interview state files |
|
|
65
|
+
| `-o, --orchestrator` | Use Claude Code (Max Plan) instead of LiteLLM. No API key required |
|
|
66
|
+
|
|
67
|
+
**Examples:**
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Start with initial idea (LiteLLM - requires API key)
|
|
71
|
+
ouroboros init start "I want to build a task management CLI tool"
|
|
72
|
+
|
|
73
|
+
# Start with Claude Code (no API key needed)
|
|
74
|
+
ouroboros init start --orchestrator "Build a REST API"
|
|
75
|
+
|
|
76
|
+
# Resume an interrupted interview
|
|
77
|
+
ouroboros init start --resume interview_20260116_120000
|
|
78
|
+
|
|
79
|
+
# Interactive mode (prompts for input)
|
|
80
|
+
ouroboros init start
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### `init list`
|
|
84
|
+
|
|
85
|
+
List all interview sessions.
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
ouroboros init list
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## `ouroboros run`
|
|
94
|
+
|
|
95
|
+
Execute Ouroboros workflows.
|
|
96
|
+
|
|
97
|
+
### `run workflow`
|
|
98
|
+
|
|
99
|
+
Execute a workflow from a seed file.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
ouroboros run workflow [OPTIONS] SEED_FILE
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Arguments:**
|
|
106
|
+
|
|
107
|
+
| Argument | Required | Description |
|
|
108
|
+
|----------|----------|-------------|
|
|
109
|
+
| `SEED_FILE` | Yes | Path to the seed YAML file |
|
|
110
|
+
|
|
111
|
+
**Options:**
|
|
112
|
+
|
|
113
|
+
| Option | Description |
|
|
114
|
+
|--------|-------------|
|
|
115
|
+
| `-o, --orchestrator` | Use Claude Agent SDK for execution (Epic 8 mode) |
|
|
116
|
+
| `-r, --resume TEXT` | Resume a previous orchestrator session by ID |
|
|
117
|
+
| `-n, --dry-run` | Validate seed without executing |
|
|
118
|
+
| `-v, --verbose` | Enable verbose output |
|
|
119
|
+
|
|
120
|
+
**Examples:**
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Standard workflow execution
|
|
124
|
+
ouroboros run workflow seed.yaml
|
|
125
|
+
|
|
126
|
+
# Orchestrator mode (Claude Agent SDK)
|
|
127
|
+
ouroboros run workflow --orchestrator seed.yaml
|
|
128
|
+
|
|
129
|
+
# Dry run (validate only)
|
|
130
|
+
ouroboros run workflow --dry-run seed.yaml
|
|
131
|
+
|
|
132
|
+
# Resume a previous session
|
|
133
|
+
ouroboros run workflow --orchestrator --resume orch_abc123 seed.yaml
|
|
134
|
+
|
|
135
|
+
# Verbose output
|
|
136
|
+
ouroboros run workflow --orchestrator --verbose seed.yaml
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### `run resume`
|
|
140
|
+
|
|
141
|
+
Resume a paused or failed execution.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
ouroboros run resume [EXECUTION_ID]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Arguments:**
|
|
148
|
+
|
|
149
|
+
| Argument | Description |
|
|
150
|
+
|----------|-------------|
|
|
151
|
+
| `EXECUTION_ID` | Execution ID to resume (uses latest if not specified) |
|
|
152
|
+
|
|
153
|
+
> **Note:** For orchestrator sessions, use:
|
|
154
|
+
> ```bash
|
|
155
|
+
> ouroboros run workflow --orchestrator --resume <session_id> seed.yaml
|
|
156
|
+
> ```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## `ouroboros config`
|
|
161
|
+
|
|
162
|
+
Manage Ouroboros configuration.
|
|
163
|
+
|
|
164
|
+
### `config show`
|
|
165
|
+
|
|
166
|
+
Display current configuration.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
ouroboros config show [SECTION]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Arguments:**
|
|
173
|
+
|
|
174
|
+
| Argument | Description |
|
|
175
|
+
|----------|-------------|
|
|
176
|
+
| `SECTION` | Configuration section to display (e.g., `providers`) |
|
|
177
|
+
|
|
178
|
+
**Examples:**
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# Show all configuration
|
|
182
|
+
ouroboros config show
|
|
183
|
+
|
|
184
|
+
# Show only providers section
|
|
185
|
+
ouroboros config show providers
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### `config init`
|
|
189
|
+
|
|
190
|
+
Initialize Ouroboros configuration. Creates default configuration files if they don't exist.
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
ouroboros config init
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### `config set`
|
|
197
|
+
|
|
198
|
+
Set a configuration value.
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
ouroboros config set KEY VALUE
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Arguments:**
|
|
205
|
+
|
|
206
|
+
| Argument | Required | Description |
|
|
207
|
+
|----------|----------|-------------|
|
|
208
|
+
| `KEY` | Yes | Configuration key (dot notation) |
|
|
209
|
+
| `VALUE` | Yes | Value to set |
|
|
210
|
+
|
|
211
|
+
**Examples:**
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# Set API key for a provider
|
|
215
|
+
ouroboros config set providers.openai.api_key sk-xxx
|
|
216
|
+
|
|
217
|
+
# Set nested configuration
|
|
218
|
+
ouroboros config set execution.max_retries 5
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### `config validate`
|
|
222
|
+
|
|
223
|
+
Validate current configuration.
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
ouroboros config validate
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## `ouroboros status`
|
|
232
|
+
|
|
233
|
+
Check Ouroboros system status.
|
|
234
|
+
|
|
235
|
+
### `status health`
|
|
236
|
+
|
|
237
|
+
Check system health. Verifies database connectivity, provider configuration, and system resources.
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
ouroboros status health
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Example Output:**
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
┌───────────────┬─────────┐
|
|
247
|
+
│ Database │ ok │
|
|
248
|
+
│ Configuration │ ok │
|
|
249
|
+
│ Providers │ warning │
|
|
250
|
+
└───────────────┴─────────┘
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### `status executions`
|
|
254
|
+
|
|
255
|
+
List recent executions with status information.
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
ouroboros status executions [OPTIONS]
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Options:**
|
|
262
|
+
|
|
263
|
+
| Option | Description |
|
|
264
|
+
|--------|-------------|
|
|
265
|
+
| `-n, --limit INTEGER` | Number of executions to show (default: 10) |
|
|
266
|
+
| `-a, --all` | Show all executions |
|
|
267
|
+
|
|
268
|
+
**Examples:**
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# Show last 10 executions
|
|
272
|
+
ouroboros status executions
|
|
273
|
+
|
|
274
|
+
# Show last 5 executions
|
|
275
|
+
ouroboros status executions -n 5
|
|
276
|
+
|
|
277
|
+
# Show all executions
|
|
278
|
+
ouroboros status executions --all
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### `status execution`
|
|
282
|
+
|
|
283
|
+
Show details for a specific execution.
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
ouroboros status execution [OPTIONS] EXECUTION_ID
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
**Arguments:**
|
|
290
|
+
|
|
291
|
+
| Argument | Required | Description |
|
|
292
|
+
|----------|----------|-------------|
|
|
293
|
+
| `EXECUTION_ID` | Yes | Execution ID to inspect |
|
|
294
|
+
|
|
295
|
+
**Options:**
|
|
296
|
+
|
|
297
|
+
| Option | Description |
|
|
298
|
+
|--------|-------------|
|
|
299
|
+
| `-e, --events` | Show execution events |
|
|
300
|
+
|
|
301
|
+
**Examples:**
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
# Show execution details
|
|
305
|
+
ouroboros status execution exec_abc123
|
|
306
|
+
|
|
307
|
+
# Show execution with events
|
|
308
|
+
ouroboros status execution --events exec_abc123
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Typical Workflows
|
|
314
|
+
|
|
315
|
+
### Using Claude Code (Recommended)
|
|
316
|
+
|
|
317
|
+
No API key required - uses your Claude Code Max Plan subscription.
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
# 1. Check system health
|
|
321
|
+
ouroboros status health
|
|
322
|
+
|
|
323
|
+
# 2. Start interview to create seed
|
|
324
|
+
ouroboros init start --orchestrator "Build a user authentication system"
|
|
325
|
+
|
|
326
|
+
# 3. Execute the generated seed
|
|
327
|
+
ouroboros run workflow --orchestrator seed.yaml
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Using LiteLLM (External API)
|
|
331
|
+
|
|
332
|
+
Requires API key (OPENROUTER_API_KEY, ANTHROPIC_API_KEY, etc.)
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
# 1. Initialize configuration
|
|
336
|
+
ouroboros config init
|
|
337
|
+
|
|
338
|
+
# 2. Set your API key
|
|
339
|
+
ouroboros config set providers.openrouter.api_key $OPENROUTER_API_KEY
|
|
340
|
+
|
|
341
|
+
# 3. Start interview
|
|
342
|
+
ouroboros init start "Build a REST API for task management"
|
|
343
|
+
|
|
344
|
+
# 4. Execute workflow
|
|
345
|
+
ouroboros run workflow seed.yaml
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Environment Variables
|
|
351
|
+
|
|
352
|
+
| Variable | Description |
|
|
353
|
+
|----------|-------------|
|
|
354
|
+
| `OPENROUTER_API_KEY` | OpenRouter API key for LiteLLM |
|
|
355
|
+
| `ANTHROPIC_API_KEY` | Anthropic API key for LiteLLM |
|
|
356
|
+
| `OPENAI_API_KEY` | OpenAI API key for LiteLLM |
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Configuration Files
|
|
361
|
+
|
|
362
|
+
Ouroboros stores configuration in `~/.ouroboros/`:
|
|
363
|
+
|
|
364
|
+
| File | Description |
|
|
365
|
+
|------|-------------|
|
|
366
|
+
| `config.yaml` | Main configuration |
|
|
367
|
+
| `credentials.yaml` | API keys (chmod 600) |
|
|
368
|
+
| `ouroboros.db` | SQLite database for event sourcing |
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## Exit Codes
|
|
373
|
+
|
|
374
|
+
| Code | Description |
|
|
375
|
+
|------|-------------|
|
|
376
|
+
| `0` | Success |
|
|
377
|
+
| `1` | General error |
|
|
378
|
+
| `2` | Configuration error |
|
|
379
|
+
| `3` | Validation error |
|