What problem does it solve? Turning a raw corpus of academic papers into a reusable, structured knowledge graph of research patterns (problem, solution, story) is labor-intensive, and without it downstream idea-generation tools cannot recall prior problem-to-solution patterns for a new research idea. ## Core Features & Use Cases - Story-first pattern extraction: Claude reframes each paper's abstract into a transferable base_problem, solution_pattern, story, application, and idea seed, with self-QC rules against generic summaries. - Deterministic embedding and clustering: Scripts call a user-supplied OpenAI-compatible embedding endpoint and cluster papers with cosine-based AgglomerativeClustering (KMeans fallback), reporting membership, coherence, and exemplars. - Graph assembly and validation: kg_build.py deterministically creates paper/idea/pattern/domain nodes and typed edges (uses_pattern, in_domain, belongs_to, works_well_in), and kg_lint.py gates the output before downstream recall. - Use Case: Given a corpus.jsonl of 79 time-series papers, build a kg/ directory that ts-idea2story can recall over to surface relevant research patterns for a new idea; without an embedding endpoint it degrades to a lite in-context pattern shelf. ## Quick Start Build a research-pattern knowledge graph from my corpus.jsonl of papers for the time-series domain, using my configured embedding endpoint if available.