How mr-saab-29/multi-agent-scaffold works
The product turns an app idea into a traceable starter-specification and stub-generation run, then validates, reviews, optionally corrects, and packages its outputs. The FastAPI API is the main entry point; the Streamlit demo submits prompts and inspects run state, events, and artifacts. The README documents the complete ordered pipeline, while sampled source confirms API/async behavior, LLM fallback and governance, review checks, retrieval, and artifact access. Some stage wiring is documented rather than sampled, so those links follow the README workflow; uncertain implementation details are omitted.
Main entry points: runner.py Pipeline runner · llm.py LLM client · prompt_loader.py Prompt loader · routes.py FastAPI routes
Components 26
User Interfaces
- Streamlit demo
ui/streamlit_app.py - FastAPI routes
app/api/routes.py - FastAPI app
app/main.py
Run Orchestration
- Pipeline runner
app/orchestrator/runner.py - Async manager
app/orchestrator/async_manager.py - Run state
app/orchestrator/state.py
Planning and Generation
- Planner
app/agents/planner.py - Template retrieval
app/tools/retrieval.py - Architect
app/agents/architect.py - Schema agent
app/agents/schema_agent.py - API planner
app/agents/api_agent.py - Frontend planner
app/agents/frontend_agent.py - Code generator
app/agents/codegen.py
Validation and Review
- Deterministic validation
app/tools/schema_validator.py - API checker
app/tools/api_checker.py - UI mapper
app/tools/ui_mapper.py - Reviewer
app/agents/reviewer.py - Artifact packager
app/tools/packager.py
Runtime Services
- Artifact store
app/services/artifact_store.py - LLM client
app/services/llm.py - Prompt loader
app/services/prompt_loader.py - Stage cache
app/services/stage_cache.py - Prometheus metrics
app/core/metrics.py
Other components
- App idea
- Gemini service
- Run artifacts
Connections 44
- App idea → Streamlit demo: enters idea
- Streamlit demo → FastAPI routes: submits prompt
- Streamlit demo → FastAPI routes: requests run data
- FastAPI app → FastAPI routes: mounts routes
- FastAPI routes → Pipeline runner: runs pipeline
- FastAPI routes → Async manager: submits or approves
- Async manager → Pipeline runner: executes run
- Pipeline runner → Run state: updates state
- Pipeline runner → Planner: plans
- Pipeline runner → Template retrieval: retrieves templates
- Pipeline runner → Architect: designs architecture
- Pipeline runner → Schema agent: defines schema
- Pipeline runner → API planner: plans API
- Pipeline runner → Frontend planner: plans frontend
- Pipeline runner → Code generator: generates stubs
- Pipeline runner → Deterministic validation: validates schema
- Pipeline runner → API checker: checks API
- Pipeline runner → UI mapper: checks mappings
- Pipeline runner → Reviewer: requests review
- Reviewer → Pipeline runner: flags correction
- Pipeline runner → Artifact packager: packages outputs
- Pipeline runner → Artifact store: persists run outputs
- Async manager → Artifact store: persists paused run
- Artifact store → Run artifacts: writes files
- FastAPI routes → Artifact store: reads artifact content
- Streamlit demo → Run artifacts: browses and downloads
- Planner → LLM client: requests generation
- Architect → LLM client: requests generation
- Schema agent → LLM client: requests generation
- API planner → LLM client: requests generation
- Frontend planner → LLM client: requests generation
- Code generator → LLM client: requests generation
- Reviewer → LLM client: requests generation
- LLM client → Gemini service: generates content
- Planner → Prompt loader: loads prompts
- Architect → Prompt loader: loads prompts
- Schema agent → Prompt loader: loads prompts
- API planner → Prompt loader: loads prompts
- Frontend planner → Prompt loader: loads prompts
- Code generator → Prompt loader: loads prompts
- Reviewer → Prompt loader: loads prompts
- Pipeline runner → Stage cache: reuses stage results
- FastAPI app → Prometheus metrics: records HTTP metrics
- Async manager → Prometheus metrics: records run metrics