feat: implement core architecture modules

Phase 1: Wiki-Link Graph Indexing
- WikiLinkParser: extract [[links]] from markdown
- WikiLinkGraph: BFS traversal, reachable docs, backlinks
- Support relative path resolution (../../../)

Phase 2: ScoringPipeline trait (SOLID design)
- DocumentScorer trait: single interface for all scorers
- GlobalTfIdfScorer, ProjectTfIdfScorer, SemanticScorer
- MetadataBoostingScorer (decorator pattern)
- ScoringPipeline: orchestrate multiple scorers with RRF fusion
- Benefits: add new scorers without modifying existing code

Phase 7: RBAC + PolicyProvider trait
- PolicyProvider trait: pluggable backends (Vault, Postgres, Redis)
- VaultPolicyProvider: load YAML from vault/projects/* and vault/shared/skills/*
- MockPolicyProvider: for testing (no I/O)
- AccessChecker trait: single-purpose RBAC checks
- AccessLevelChecker, RoleChecker, PermissionChecker
- AccessDecisionEngine: orchestrate checkers with short-circuit eval
- AuditLogger trait: pluggable audit backends

Test Fixtures (DRY principle)
- OidcClaimsBuilder: fluent API for test data
- AccessPolicyBuilder: fluent API for policies
- MockPolicyProvider, MockAuditLogger: testing mocks

All modules compile and unit tests pass.
This commit is contained in:
2026-08-30 20:40:43 -07:00
parent 2850907167
commit 985f65d1f4
14 changed files with 1423 additions and 2 deletions
+2
View File
@@ -7,6 +7,7 @@ pub mod reference_cycle_guard;
pub mod optimizer_sink;
pub mod optimizer_metrics;
pub mod query_metrics;
pub mod wiki_link;
pub use pi_session::PiSessionSource;
pub use claude_transcript::ClaudeTranscriptSource;
@@ -18,3 +19,4 @@ pub use query_metrics::{
QueryMetrics, QueryMetricsRepository, ProgressSnapshot, MetricsSummary,
OptimizationStatus, CompressorMetrics, ContentTypeMetrics,
};
pub use wiki_link::{WikiLink, WikiLinkParser, WikiLinkGraph, LinkType};