# Project Requirements Index

Dense summaries pointing to full requirement files. Load specific files only when a phase touches that area.

---

## Core (-> core.md)
- Python 3.11+ with src/unfamiliar/ package layout
- Central storage at ~/.unfamiliar/ (config, standards, campaigns, repo filters)
- API keys from environment variables only (no config file storage)
- SQLite + Markdown storage; target repo untouched
- 7 investigation categories (enum) with security as cross-cutting tag
- Forward-compatible data model with Campaign, Briefing, Module, Mission, Chain, Prerequisite, File Reference, File Snapshot entities
- Zero-token mission work; LLM only at generation time
- Full offline capability post-generation
- Theme architecture: config packages, not code changes
- Keyboard-accessible TUI with presentation/logic separation

## MVP v0.1.0 (-> mvp.md)
- Static analysis: Python/TypeScript/JavaScript adapters with adapter interface for new languages
- 5-layer file filtering at discovery (.gitignore, defaults, per-repo config)
- Secret detection (detect-secrets) and CVE scanning (pip-audit, npm audit)
- Provider-agnostic LLM factory via init_chat_model; built-in registry for Anthropic + GLM
- Config-driven provider/model selection with [general] and [llm] TOML sections
- Briefing generation with token budget enforcement and dynamic allocation
- Per-category mission generation (7 calls) with multi-call accumulation (up to 3 per category)
- Truncation detection/recovery preserving missions and chains
- Programmatic validation: path checks, line clamping, cycle detection, root mission enforcement
- Validated data wired to persistence (not raw LLM output)
- Three-layer chain-mission linking defense (prompt + validation + persistence fallback)
- LangGraph pipeline with SQLite checkpointing and resume from last checkpoint
- Provider-aware retry with exponential backoff
- Theme-aware mission prompts with templatized variables
- Campaign lifecycle: create (with overwrite protection), resume, discover, reopen
- Mission system: complete with cascade unlock, start, unlock escape hatch, multi-in-progress
- CLI: investigate, campaigns, resume, reopen
- TUI: 4-region layout, 10 commands with Film Noir aliases, confirmation modals, toast notifications
- Film Noir theme: NarrativeConfig, vocabulary, aliases, colors, decorations, icons, TCSS
- Title deduplication with Roman numeral suffixes
