Metadata-Version: 2.4
Name: raceos-factory
Version: 1.0.0
Summary: AI Software Factory for the RaceOS motorsport platform
Project-URL: Homepage, https://github.com/raceos/raceos-factory
Project-URL: Documentation, https://docs.raceos.dev
Project-URL: Repository, https://github.com/raceos/raceos-factory
Project-URL: Issues, https://github.com/raceos/raceos-factory/issues
Project-URL: Changelog, https://github.com/raceos/raceos-factory/blob/main/CHANGELOG.md
Author-email: RaceOS Team <dev@raceos.dev>
License-Expression: MIT
License-File: LICENSE
Keywords: ai,embedded,langgraph,motorsport,opencode,software-factory
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: filelock<4.0,>=3.15
Requires-Dist: httpx<1.0,>=0.27
Requires-Dist: jinja2<4.0,>=3.1
Requires-Dist: langchain-core<2.0,>=0.3
Requires-Dist: langgraph<2.0,>=0.2
Requires-Dist: pydantic<3.0,>=2.0
Requires-Dist: python-dotenv<2.0,>=1.0
Requires-Dist: pyyaml<7.0,>=6.0
Requires-Dist: rich<16.0,>=13.0
Requires-Dist: structlog<27.0,>=24.0
Requires-Dist: tenacity<10.0,>=9.0
Requires-Dist: tiktoken<1.0,>=0.7
Requires-Dist: typer<1.0,>=0.12
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-asyncio<1.0,>=0.23; extra == 'dev'
Requires-Dist: pytest-cov<6.0,>=5.0; extra == 'dev'
Requires-Dist: pytest<9.0,>=8.0; extra == 'dev'
Requires-Dist: respx<1.0,>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.5.0; extra == 'dev'
Description-Content-Type: text/markdown

# RaceOS AI Software Factory

> AI-native software factory for the RaceOS motorsport platform.

## Architecture

```
Project Brain (.raceos/) — Immutable Source of Truth
         ↓
    OpenSpec (specs/) — Behavioral Contracts
         ↓
    Planning — Context-aware task decomposition
         ↓
    Implementation — Isolated execution via OpenCode
         ↓
    Verification — Automated validation + human gates
```

## Stack

| Component | Role |
|---|---|
| OpenCode | AI coding agent (executor) |
| OpenRouter | LLM API gateway |
| 9Router | Intelligent model routing |
| LangGraph | Workflow orchestration |
| Codebase Memory MCP | Implementation memory |
| OpenSpec | Spec-driven planning |

## Quick Start

```bash
# Install dependencies
make setup

# Run tests
make test

# Run lint
make lint

# Submit a task
factory task "fix typo in ecu_parser.h" --domain firmware
```

## Project Structure

```
raceos-factory/
├── config/           Configuration (YAML)
├── src/factory/      Source code (Python)
│   ├── gateway/      OpenRouter thin wrapper
│   ├── router/       9Router model selection
│   ├── context/      Context injection pipeline
│   ├── orchestrator/ LangGraph DAG
│   ├── executor/     OpenCode integration
│   ├── memory/       Codebase Memory MCP client
│   ├── spec_engine/  OpenSpec generation
│   └── cli/          Command-line interface
├── langgraph/        Orchestrator graph definitions
├── specs/            OpenSpec artifacts
├── .raceos/          Project Brain pointer
├── .ai/              AI steering context
└── tests/            Test suite
```

## Documentation

- [Architecture](../docs/architecture/ai-software-factory.md)
- [Roadmap](../docs/architecture/ai-factory-roadmap.md)
- [Implementation Guide](../docs/architecture/ai-factory-implementation-guide.md)

## Principles

- **Brain is immutable** — Factory never writes to `.raceos/`
- **Spec first** — Complex tasks generate specs before execution
- **AI suggests, human decides** — Human gates on all critical decisions
- **Single responsibility** — Each component does one thing
- **No duplicated context** — One canonical source per data class
