You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SessionCache (src/cache/checkExtractCache.ts) is documented as a standalone Level 3 component in ARCHITECTURE-Citation-Manager.md (#### Citation Manager.SessionCache), but it does not meet the criteria for Level 3 classification under our C4 framework conventions. This misclassification creates confusion about component boundaries and architectural intent.
Reproduction Steps
Open /WesleyMFrederick/cc-workflows/blob/main/tools/citation-manager/design-docs/ARCHITECTURE-Citation-Manager.md
Find #### Citation Manager.SessionCache — listed as peer to CitationValidator, ContentExtractor, etc.
Compare against Level 3 criteria: DI via factory, multiple consumers, peer interactions
SessionCache fails all three: no DI, single consumer (CLI Orchestrator), no peer interactions
Open SessionCache Component Guide.md — links point to sibling implementation guides instead of architecture doc component anchors
Root Cause
SessionCache was implemented as a migration from bash to TypeScript (PR #98) and documented as its own Level 3 component without evaluating whether it met C4 component boundary criteria. The existing Level 4 precedent (LinkObjectFactory) was not applied.
6 pieces of evidence for demotion:
Single consumer — only CLI Orchestrator calls checkExtractCache() and writeExtractCache()
No peer interfaces — unlike ParsedFileCache (consumed by CitationValidator AND ContentExtractor), SessionCache has zero peer consumers
CLI-level concern — cache check wraps the extract links command action, not a domain operation
LinkObjectFactory precedent — already classified as Level 4 for identical reasons (single consumer, CLI helper)
No DI — uses node:fs and node:crypto directly; every Level 3 component uses DI via factory
Not in component factory — componentFactory.ts does not instantiate SessionCache
Expected Behavior
SessionCache should be classified as a Level 4 implementation detail of CLI Orchestrator, parallel to LinkObjectFactory:
Listed under CLI Orchestrator's ##### Level 4 Implementation Details section
src/cache/ directory documented in Level 4 file structure
CLI Orchestrator interactions updated to reference SessionCache as internal helper (not cross-component)
Problem
SessionCache (
src/cache/checkExtractCache.ts) is documented as a standalone Level 3 component inARCHITECTURE-Citation-Manager.md(#### Citation Manager.SessionCache), but it does not meet the criteria for Level 3 classification under our C4 framework conventions. This misclassification creates confusion about component boundaries and architectural intent.Reproduction Steps
/WesleyMFrederick/cc-workflows/blob/main/tools/citation-manager/design-docs/ARCHITECTURE-Citation-Manager.md#### Citation Manager.SessionCache— listed as peer to CitationValidator, ContentExtractor, etc.SessionCache Component Guide.md— links point to sibling implementation guides instead of architecture doc component anchorsRoot Cause
SessionCache was implemented as a migration from bash to TypeScript (PR #98) and documented as its own Level 3 component without evaluating whether it met C4 component boundary criteria. The existing Level 4 precedent (LinkObjectFactory) was not applied.
6 pieces of evidence for demotion:
checkExtractCache()andwriteExtractCache()extract linkscommand action, not a domain operationnode:fsandnode:cryptodirectly; every Level 3 component uses DI via factorycomponentFactory.tsdoes not instantiate SessionCacheExpected Behavior
SessionCache should be classified as a Level 4 implementation detail of CLI Orchestrator, parallel to LinkObjectFactory:
##### Level 4 Implementation Detailssectionsrc/cache/directory documented in Level 4 file structureRelated
/WesleyMFrederick/cc-workflows/blob/main/tools/citation-manager/design-docs/ARCHITECTURE-Citation-Manager.md— architecture doc needing update/WesleyMFrederick/cc-workflows/blob/main/tools/citation-manager/design-docs/component-guides/SessionCache%20Component%20Guide.md— guide needing updatesNote
Architecture Principles Evaluation (9 categories)
sessionId_md5(content)) is clean.checkExtractCache.tsfollows verb-noun naming.SessionCache Guide vs MarkdownParser Guide (Template Gaps)
github-queryblockFile Location Decision
src/cache/is the correct location — no move needed:src/core/holds Level 3 components (ContentExtractor, MarkdownParser) — wrong levelsrc/*.tstop-level holds Level 3 components — wrong levelsrc/cache/parallelssrc/factories/as CLI Orchestrator internal subfoldersrc/core/CLIOrchestrator/Acceptance Criteria
#### Citation Manager.SessionCacheremoved as standalone Level 3 component from ARCHITECTURE-Citation-Manager.mdsrc/cache/checkExtractCache.tsadded to Level 4 file structure treegithub-queryblock usingcomponent:CLIOrchestratorlabelgithub-queryblock matching MarkdownParser patternDefinition of Done
citation-manager validatepasses)