Implement Architecture Decision Registry and Semantic Graph features#41
Merged
Conversation
added 4 commits
June 1, 2026 22:14
- Agents operating across long sessions have no durable record of why decisions were made; new sessions re-litigate settled choices - AdrEntry / AdrStore / AdrRegistry provide a JSON-backed store under .fuseraft/knowledge/decisions/ with atomic writes and semaphore safety - DecisionPlugin exposes decision_search, decision_read, decision_create, decision_supersede with read/write capability split in PluginCapabilityMap - ADR injection into context assembly deferred to Gap 2 (graph traversal)
- Provides structured symbol-level indexing so ADR retrieval and context assembly can be driven by graph traversal instead of path/tag matching - ChangeTracker now fires incremental graph rebuilds after .cs file writes so the graph stays current without a manual rebuild between sessions - adr_graph context source in ContextAssembler walks adr_governs edges from recently touched files, automatically surfacing governing ADRs at handoff time without requiring explicit context declarations
- Gap 1 and Gap 2 subsystems were independently instantiated in three separate places (ChangeTracker, ContextAssembler, PluginRegistry), so graph writes from one path were invisible to reads from another; a single shared KnowledgeLayer eliminates that divergence - DecisionPlugin previously held a direct RepositoryGraphBuilder ref, coupling the ADR subsystem to the graph subsystem; routing create through IKnowledgeLayer.RecordDecisionAsync removes that dependency - ClaimRecord and Objective stubs define the interface surface for Gaps 3 and 7 so callers can program to IKnowledgeLayer now
- Gaps 3–9 close all remaining knowledge subsystems: provenance/confidence tracking, repository memory with approval workflow, architecture drift detection, dependency planner, objective tracking, adaptive context broker, and lifecycle GC — each gap builds on IKnowledgeLayer so subsystems stay decoupled - fuseraft init now scaffolds .fuseraft/knowledge/ tree and writes default architecture.yaml and lifecycle.yaml on first run (skips if already present) - KnowledgeLayerRoundTripTests covers all 8 round-trip stages end-to-end plus GC correctness (superseded ADR archival, stale memory demotion, expired claim compaction, dry-run writes nothing) - docs/knowledge.md is a new reference covering every subsystem, the SymbolId scheme, confidence tiers, directory layout, and plugin tool index; cli-reference.md adds full sections for graph, arch, knowledge, memory, and objective command groups
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.