Files
AutoMetabuilder/README.md
johndoe6345789 b3bd57964f Introduce AutoMetabuilder core components and workflow packages:
- Implement core components: CLI argument parsing, environment loading, GitHub service creation, and logging configuration.
- Add support for OpenAI client setup and model resolution.
- Develop SDLC context loader from GitHub and repository files.
- Implement workflow context and engine builders.
- Introduce major workflow packages: `game_tick_loop` and `contextual_iterative_loop`.
- Update localization files with new package descriptions and labels.
- Streamline web navigation by loading items from a dedicated JSON file.
2026-01-10 01:21:19 +00:00

60 lines
2.1 KiB
Markdown

# AutoMetabuilder
AutoMetabuilder is an AI-powered tool designed to integrate with the metabuilder SDLC workflow.
## Features
- **GitHub Integration**: Automatically fetches context from GitHub Issues and Pull Requests.
- **SDLC Automation**: Can create branches and pull requests based on the AI's decisions.
- **Customizable Prompts**: Loads workflow instructions from a local YAML prompt.
## Configuration
The following environment variables are required:
- `GITHUB_TOKEN`: A GitHub Personal Access Token with repository permissions.
- `GITHUB_REPOSITORY`: The full name of the repository (e.g., `owner/repo`).
## Directory layout
- `backend/`: FastAPI/Flask API, workflow controllers, metadata, and CLI modules.
- `frontend/`: Next.js app (using the app router) that talks to the backend over the REST endpoints.
## Usage
Run the CLI or the web UI via Poetry (the project uses the backend package defined in `pyproject.toml`):
```bash
poetry install
poetry run autometabuilder # starts the CLI or the web server when `--web` is supplied
```
### Frontend development
```bash
cd frontend
npm install
npm run dev --webpack # runs the Material UI-based Next.js app located inside frontend/autometabuilder
```
The Next.js app now lives under `frontend/autometabuilder` and uses Material UI panels + webhook helpers to react to workflow runs; it still reads translations, workflows, and metadata from the Flask `/api/*` surface. Override `NEXT_PUBLIC_API_BASE` to point to a remote backend if needed.
## Testing & linting
### Python
```bash
PYTHONPATH=backend pytest backend/tests/test_main.py backend/tests/test_metadata.py backend/tests/test_roadmap.py
PYTHONPATH=backend pytest backend/tests/ui # Playwright UI tests; they skip when socket creation is blocked
```
### Frontend
```bash
cd frontend
npm run lint
npm run build --webpack # currently fails in the sandbox because compiling tries to bind new ports
```
The Webpack build step is disabled in this container because the sandbox denies the port binding Turbopack (and its subprocesses) needs; the rest of the stack, including lint/test, succeeds.