Implemented RAG optimizations, standardized on JUnit XML for test results, added Makefile for setup.
RAG Optimizations
- Protocol metadata field — every chunk tagged with
protocol(ospf, bgp, eigrp, general) during ingestion. Filterable at query time viasearch_knowledge_base(protocol="ospf"). Eliminates cross-protocol noise as the corpus grows. - Contextual chunk headers —
[Source: filename | Protocol: protocol]prepended to each chunk during ingestion, improving embedding quality and vector placement. - Collection renamed —
ospf_kb→network_kb(generic, multi-protocol ready). KBQuerymodel — addedprotocolfield (Literal["ospf", "bgp", "eigrp"] | None).- See OPTIMIZATIONS.md for the full optimization roadmap.
JUnit XML for Test Results
results/directory — test results live at project root as JUnit XML. Any test framework that outputs JUnit XML is supported (pytest, pyATS, Robot Framework, etc.).- Static fixture —
results/network_qa.xmlprovides a realistic sample with 3 test scenarios (2 failures, 1 pass) covering OSPF adjacency, route existence, and route redistribution.
/qa Skill Rewrite
- Rewritten for JUnit XML parsing (was JSON). Loads
.xmlfiles fromresults/, parses<testcase>elements with<properties>and<failure>children. - Framework-agnostic — works with results from any JUnit XML producer.
Makefile
- Four targets:
make install(venv + deps),make ingest(rebuild ChromaDB),make clean(reset),make setup(both).
Documentation
- README.md — complete rewrite as "Network QA Investigation Tool." Removed all Vault/NetBox references. Added Customization, QA Workflow, and Knowledge Base sections.
- CLAUDE.md — reframed as investigation tool. Removed vault from status table, added protocol filter to KB search, updated tool descriptions.
- WORKFLOW.md — complete rewrite. Removed Vault/NetBox references. Documents JSON-only data sources, env var credentials, protocol metadata, JUnit XML results.
- OPTIMIZATIONS.md — updated current architecture table (collection name, chunk count, protocol metadata, contextual headers). Marked items 1 and 5 as implemented.
.env.example— new file withROUTER_USERNAME,ROUTER_PASSWORD,SSH_STRICT_HOST_KEY.