Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Architecture Decision Records

The binding decisions behind CIRCUIT, in order. Each ADR records the context, the decision, and the trade-off at the time it was made. Terminal-status entries are kept, never deleted — the evolution trail is the point (per CLAUDE.md § ADR lifecycle).

Status legend: Accepted = in force · Superseded / Partially superseded = replaced (follow the pointer) · Obsolete = the thing it governed was removed · Withdrawn = reversed before it landed.

# Decision Status
0001 Spring Boot 4.0.4 instead of 4.0.3 Accepted
0002 tree-sitter JVM Binding Selection Obsolete
0003 Spring Shell FFM Terminal Provider Obsolete
0004 Singleton Testcontainers Pattern Accepted
0005 Class→Class CALLS via Raw Cypher Instead of SDN Relationship Accepted
0006 Jackson 3 in Spring Boot 4.0.4 Accepted
0007 Local Git as Commit Data Source Accepted
0008 Schema v2 — File Node, UnresolvedCall Side Table, CALLS Properties Partially Superseded by ADR-0011 + ADR-0012
0009 Parser-Agnostic Resolver SPI Obsolete
0010 Parser Choice — tree-sitter + Lightweight Symbol Table Superseded by ADR-0011
0011 Sprint 3 rescope — SCIP pivot + v6.2 Relation-first schema Accepted
0012 Universal edge-schema contract — every edge carries r.confidence + r.source Accepted
0013 Cache-manifest contract for real-data consumers Accepted
0014 CLI architecture — picocli for CLI, MCP for agent, retire Spring Shell Accepted
0015 Graph documentation split — capability inventory + semantic models + stable-ID synchronization Accepted
0016 Co-change edges expose one bounded ranking score Accepted
0017 Issue tracker IoC + cross-source Issue.key identity Accepted
0018 EXTENDS / IMPLEMENTS edges store direct parents only; transitive closure via * traversal Accepted
0019 Multi-slot Class observation merge prefers richer attestation Accepted
0020 ExternalSymbolResolver tier 1 (system ClassLoader) is accidental, not designed Obsolete
0021 Interface-to-interface inheritance uses EXTENDS edge (JLS-keyword alignment, vault §2 override) Accepted
0022 Function.visibility agnostic property + Spring AOP public-only :Transactional rule Accepted
0023 SCIP local-N Function symbols namespaced by Document relPath Accepted
0024 Meta-annotation transitive expansion via Spring MetadataReader Accepted
0025 Per-corpus declarative source config + source self-validation fail-fast Accepted
0026 graphQuality artifact-driven report identity via Corpus graph node Accepted
0027 Chunked graph write under wipe-rebuild policy Accepted
0028 MCP server via Spring AI stdio starter Accepted
0029 Read-only Cypher enforced by a port-level read transaction Accepted
0030 Agent-facing identifier is the prefix-stripped SCIP descriptor Superseded by 0031
0031 Agent-facing id is the SCIP descriptor, stripped at ingest Accepted
0032 History tier is temporally coherent with the code layer by default Accepted
0033 locate exposes labeled match-provenance, not an opaque relevance score Accepted
0034 Inspect scoped-context-hub output — curated named lanes + precomputed GDS centrality Accepted
0035 History edges oriented along the narrative axis (Issue/PR → Commit → code) Accepted
0036 Adopt APOC Core for query-time graph introspection (status connectivity) Accepted
0037 Tool disclosure via the MCP server's instructions field (single source) Accepted
0038 traverse — APOC-backed structured traversal over raw Cypher, projection-bounded output Accepted
0039 find_precedent — concept → history-text → code (a history-discovery tool, not a history search) Accepted
0040 Raw Cypher is removed from the agent tool surface Accepted
0041 Spring AI 2.0.0 GA — keep the custom embedding client, drop the OpenAI starter Accepted
0042 Ingest is a coherent single-SHA-state snapshot — live-fetch-then-cache, resume within a state, cross-state is a full rebuild Partially Superseded by ADR-0044
0043 Distribution & deployment — download-not-clone install, the circuit CLI as the single surface, Neo4j-only compose + local-jar stdio serve Accepted
0044 The live GitHub cache stores the full SHA-keyed snapshot, not a demand-narrowed subset Accepted
0045 Neo4j plugins are pre-seeded into a bind-mounted /plugins, not installed via NEO4J_PLUGINS Accepted
0046 circuit serve boots without an embedding key; embedding (locate's semantic leg) is an optional upgrade Accepted
0047 JAX-RS endpoints enter the graph via a sibling FrameworkAdapter, composed over the Spring leaf Accepted
0048 A non-default self-hosted embedding base-url activates the embedding profile key-free; the cloud default stays key-gated Accepted
0049 The usage playbook is a plugin skill (a channel distinct from capability disclosure); the summative eval injects it as the product surface Accepted
0050 Impact-analysis ground truth is the code-derived static blast radius (philosophy A); scoring is method-level with bare-class predictions neutral Accepted