Agentic Presentation Intelligence System Report-First | No Free Facts | Bilingual Output
DeckForge is an RFP-to-Deck engine built for Strategic Gears Consulting. It transforms institutional knowledge — stored across SharePoint presentations, proposals, reports, and frameworks — into consulting-grade proposal decks through a conversational, multi-agent workflow.
The system receives structured RFP summaries, searches and synthesizes relevant knowledge from a pre-indexed SharePoint corpus, generates a fully-cited research report for human approval, and converts that approved report into a branded slide deck in Arabic, English, or bilingual format.
- RFP Intake — BD Station pushes structured AI Assist summary (10-field contract)
- Context Understanding — Context Agent parses RFP into structured object → Gate 1
- SharePoint Retrieval — Retrieval Agent executes 5-strategy search → Gate 2
- Deep Analysis — Analysis Agent extracts atomic Claim Objects into Reference Index
- Research Report — Research Agent writes fully-cited report → Gate 3 (most important)
- Slide Outline — Structure Agent converts report to slide structure → Gate 4
- Slide Content — Content Agent distills report into slide copy
- Quality Assurance — QA Agent enforces No Free Facts, validates every claim
- PPTX Rendering — Design Agent renders branded PPTX via python-pptx → Gate 5
- Export — Final PPTX, research report (.docx), source index, gap report
| Agent | Model | Role |
|---|---|---|
| Workflow Controller | LangGraph (deterministic) | State machine routing, gate enforcement |
| Conversation Manager | Claude Sonnet 4.6 | Natural language → structured actions |
| Context Agent | GPT-5.4 | RFP parsing into structured JSON |
| Retrieval Agent | GPT-5.4 + Azure AI Search | Query generation + source ranking |
| Analysis Agent | Claude Opus 4.6 | Deep extraction into atomic Claim Objects |
| Research Agent | Claude Opus 4.6 | Fully-cited research report generation |
| Structure Agent | GPT-5.4 | Report → slide outline conversion |
| Content Agent | GPT-5.4 | Slide copy writing from approved report |
| QA Agent | GPT-5.4 | No Free Facts enforcement, validation |
| Design Agent | python-pptx (deterministic) | Branded PPTX rendering |
- No Free Facts — every factual claim must trace to a cited source. Unsupported claims fail closed.
- Report-First — a research report is approved by humans before any slides are created.
- Gaps over guesses — missing evidence is flagged explicitly, never fabricated.
| Milestone | Scope | Status |
|---|---|---|
| M0: Scaffold + README | Project structure, config, dependencies, README | In progress |
| M1: Enums | src/models/enums.py — 19 StrEnum classes |
Planned |
| M2: Pydantic Models | 9 model files (common.py through indexing.py) |
Planned |
| M3: Master State | state.py + ids.py + __init__.py re-export |
Planned |
| M4: Config + LLM Wrapper | settings.py + models.py + llm.py |
Planned |
| M5–M10: Agents, Pipeline, Rendering, Knowledge Layer | Full system | Deferred |
- Python 3.12+
- Git
git clone https://github.com/albarami/Deckbuilder.git
cd Deckbuilder
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
pip install -r requirements.txtCopy .env.example to .env and fill in your API keys:
cp .env.example .envRequired keys: OPENAI_API_KEY, ANTHROPIC_API_KEY. Azure keys are needed for production only.
# Run all tests
.venv\Scripts\python.exe -m pytest tests/ -v
# Run tests for a specific module
.venv\Scripts\python.exe -m pytest tests/agents/test_enums.py -v
# Lint check
.venv\Scripts\python.exe -m ruff check src/
# Type check
.venv\Scripts\python.exe -m mypy src/
# All three (run before every review)
.venv\Scripts\python.exe -m pytest tests/ -v && .venv\Scripts\python.exe -m ruff check src/ && .venv\Scripts\python.exe -m mypy src/- Cursor builds code
- Salim reviews, approves or rejects, and authorizes commits
- Read docs first — architecture, prompt library, state schema, existing code
- Implement one thing — exactly what Salim asked, nothing more
- Validate and test — pytest, ruff, mypy must all pass
- Report results — state what was built, what was tested, what passed
- Wait for approval — no commits until Salim says "commit"
feat(scope): description — new feature or agent
fix(scope): description — bug fix
test(scope): description — adding or updating tests
refactor(scope): description — code restructure (no behavior change)
docs(scope): description — documentation changes
chore(scope): description — config, dependencies, tooling
- Never commit without Salim's explicit approval
- Never push broken code
- Never force push
- Docs are the source of truth — if code contradicts docs, fix the code
- All Pydantic models in
src/models/, never inline in agent files - All LLM calls through
src/services/llm.py, never direct API imports in agents
origin https://github.com/albarami/Deckbuilder.git