- 250 campaigns (not 392), 1726 campaign-years, 57 columns
- Success is binary 0/1 (not 3-point 1/2/3 scale)
- Column is prim_method (not viol_camp)
- Year range 1945-2006 (not 1945-2014)
- Nonviolent after 2000: 8 out of 16 succeeded (not 14/31)
- All campaigns: 111 succeeded out of 250 (not 392)
- Nonviolent: 68 of 109 succeeded (62%, not 53%)
- Added note explaining 53% comes from NAVCO 1.1 via publication
- Updated file references to actual filenames (NAVCO v2.0.dta,
NAVCO2JPRcodebook2013.pdf)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Added "Why This Template" section with comparison to ChatGPT/Perplexity
- Added "Who Is This For" table (researcher, PI, grant applicant,
instructor, policy org, data repository)
- Added "Sample Design Logic" section with grant-proposal-ready language:
defense in depth, dual retrieval, schema enrichment, over-refusal
prevention, and adaptation guide
- Restructured Advantages into three groups: anti-hallucination (core
differentiator), research capabilities, practical benefits
- Emphasized anti-hallucination stack throughout as the selling point
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: pre-release audit round 12 — 33 bugs fixed across all tiers
- All examples now consistently use the NAVCO 2.0 (Nonviolent and
Violent Campaigns and Outcomes) dataset as a running illustration
- Added detailed "How It Works: The Full Pipeline" section with
Step 0-5 walkthrough, tables, and ASCII diagram
- Added multi-turn conversation example showing query understanding,
SQL routing, pronoun resolution, and follow-up handling
- Reorganized Table of Contents with anchor links to each pipeline step
- Streamlined Advantages/Limitations and Troubleshooting sections
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
docs: update README to reflect all improvements since initial release
- Add "KB Self-Awareness: The Meta Overview" section explaining how the
chatbot knows what it knows and can answer meta-questions
- Update "What This Does", "How It Works", key design principles, and
Advantages to highlight KB awareness as a core capability
- Add connection note to deterministic fallback overview for multi-dataset KBs
(was specified in design but missing from implementation)
- Add test assertion for connection note
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
docs: update README and docker-compose for SQL layer
- Add SQL layer section documenting structured data queries
- Update "What This Does", "How It Works", config reference, and
ingestion example to reflect SQL routing and dual ingestion
- Add sql_db/ volume mount to docker-compose.yml
- Update dataset note, advantages, and limitations sections
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: web UI history bug + wrong query after clarification + README update
Bug 1: app_web.py included the current user message in conversation
history sent to query understanding, causing the question to appear
twice in the prompt. Fixed by excluding the just-appended message.
Bug 2: After clarification, verify_and_respond received only the
original vague query instead of the combined (original + clarification).
Fixed to use the combined query, consistent with CLI behavior.
README: Updated "How It Works" flow to include query understanding step.
Fixed retrieval config (top_k: 5 -> 50, added max_distance: 0.55).
Added query_understanding config section.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: retrieve all relevant chunks using distance threshold
Instead of a fixed top_k count, retrieval now uses a distance
threshold (max_distance=0.55). Queries up to 50 candidates from
ChromaDB, then keeps only chunks with cosine distance below the
threshold. This means:
- Broad queries with lots of relevant docs get many chunks
- Narrow queries with few matches get only the relevant ones
- Irrelevant chunks are filtered out regardless of top_k
New config field: retrieval.max_distance (default 0.55)
top_k now acts as the candidate pool cap (default 50)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: increase top_k to 10 and remove last [N] from verification prompt
Two fixes:
1. Increased default top_k from 5 to 10. With top_k=5, short queries
like "China in 2024?" missed the relevant page (e.g., page 410)
because generic intro pages ranked higher. More chunks = better
chance of retrieving the right content.
2. Removed the last literal [N] from the verification prompt template
(checklist item 1) to prevent any residual [N] in output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: correct Python version range in Prerequisites section
Prerequisites said "Python 3.11 or later" but Python 3.14+ is not
supported due to ChromaDB/Pydantic dependency compatibility. Updated
to "Python 3.11–3.13" to match the installation instructions in Step 2.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
docs: add Python environment setup step with version compatibility note
Python 3.14+ is not supported due to ChromaDB/Pydantic compatibility.
Recommend conda with Python 3.12; support 3.11--3.13.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: remove broken ToC link and correct ZIP download folder name
[1] and [3] were the same Chenoweth & Stephan 2011 paper (local vs web).
Changed [3] to Nepstad (2011) and added a body citation for it.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Citation-verified research assistant with 6-layer anti-hallucination stack,
15 file format readers, 3 LLM providers, and dual CLI/Web interfaces.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>