Getting Started
Prerequisites
- Python 3.11+
- An API key for at least one LLM provider:
- Anthropic (recommended)
- OpenAI
- Google AI Studio
- AWS Bedrock (IAM credentials — no API key needed on EC2/Lightsail)
Installation (development)
make install # installs uv, creates venv, installs dependencies
make env # creates .env from .env.example
make pre-commit # installs pre-commit hooks
First-run setup wizard
On first launch (or with --setup), an interactive wizard walks you through:
- LLM provider selection — choose Anthropic, OpenAI, Google, or AWS Bedrock
- API key entry — with format validation hints (e.g., Anthropic keys start with
sk-ant-) - Issue tracking — Jira or Azure DevOps Boards (with org URL, project, and PAT verification)
- Version control — GitHub PAT token (or skip)
- Credential storage — saved to
~/.yeaboi/.env
yeaboi --setup # re-run anytime to update credentials
API keys
Anthropic (default)
ANTHROPIC_API_KEY=sk-ant-...
OpenAI (alternative)
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-...
Google (alternative)
LLM_PROVIDER=google
GOOGLE_API_KEY=AIza...
LangSmith (optional tracing)
LangSmith provides tracing and observability. Add to .env:
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=lsv2_pt_...
LANGSMITH_PROJECT=yeaboi
Intake Modes
The agent supports four intake modes, each balancing thoroughness with speed.
Smart mode (default)
The recommended mode. The agent:
- Reads your initial project description and extracts answers to as many questions as possible
- When an analysis profile is selected, auto-fills team size, sprint length, velocity, tech stack, and integrations from real data
- Asks only the remaining essential questions (typically 2–4)
- Uses answer provenance tracking to tag how each answer was obtained:
DIRECT— you explicitly answeredEXTRACTED— parsed from your initial descriptionDEFAULTED— filled with a sensible defaultPROBED— filled via a targeted follow-up questionSCRUM_MD— loaded from aSCRUM.mdfile in the current directory
- Applies conditional essentials — questions that only appear when relevant (e.g., "What are their roles?" only asked after you give a team size)
- Runs cross-question validation — catches contradictions (e.g., team size of 1 but multiple roles listed)
- Generates adaptive follow-ups using question-specific templates (not generic "tell me more")
- Accepts "any" / "no preference" for tech stack (Q11) and "none" for integrations (Q12) without triggering follow-up probes
Quick mode (--quick)
Two questions only: team size and tech stack. Everything else gets sensible defaults. Best for rapid prototyping or CI pipelines.
Standard mode (--full-intake)
Six questions are rendered as numbered selection menus instead of free text:
| Q | Topic | Options |
|---|---|---|
| Q2 | Project type | Greenfield / Existing codebase / Hybrid |
| Q8 | Sprint length | 1 week / 2 weeks (default) / 3 weeks / 4 weeks |
| Q16 | Code hosting | GitHub / Azure DevOps / GitLab / Bitbucket / Local |
| Q18 | Repo structure | Monorepo / Multi-repo / Microservices / Monolith |
| Q24 | Estimation style | Fibonacci points / T-shirt sizes / No estimates |
| Q26 | Output format | Jira / Markdown / Both |
Type defaults at any question to batch-accept all defaults for the current phase and skip ahead.
All 30 questions asked one-at-a-time in a conversational flow. Seven phases:
- Project Context (Q1–Q5) — name, type, goals, users, deadlines
- Team & Capacity (Q6–Q10) — engineers, roles, sprint length, velocity, target sprints
- Technical Context (Q11–Q14) — tech stack, integrations, constraints, docs
- Codebase Context (Q15–Q20) — repo, structure, CI/CD, tech debt
- Risks & Unknowns (Q21–Q23) — risks, blockers, out-of-scope
- Preferences (Q24–Q26) — estimation, DoD, output format
- Capacity Planning (Q27–Q30) — sprint selection, bank holidays, unplanned absence %, onboarding
Offline import (--questionnaire)
- Export a blank template:
yeaboi --export-questionnaire - Fill it in at your own pace in any editor
- Import:
yeaboi --questionnaire intake.md - Review the summary and confirm before proceeding
The format is round-trippable (export → edit → import preserves answers exactly).
SCRUM.md context
Drop a SCRUM.md file in your project directory with any relevant context — project notes, design decisions, URLs, architecture diagrams. The agent reads it automatically and uses it to pre-fill answers and ground its output. Answers extracted from SCRUM.md are tagged with *(from SCRUM.md)* provenance markers in the intake summary. Your typed description always takes priority over SCRUM.md when both provide the same information.
scrum-docs/ directory
Place PRDs, design docs, or reference material in a scrum-docs/ directory. Supported formats: .md, .txt, .rst, .pdf. PDF support requires the pymupdf optional dependency:
uv sync --extra pdf
Files are automatically ingested and fed into the project analyzer for grounded output.