From 0086a3f6ad65dc86c8992a6a8847885f8427e1d7 Mon Sep 17 00:00:00 2001 From: zaebee <305761+zaebee@users.noreply.github.com> Date: Fri, 25 Sep 2026 15:42:51 +0000 Subject: [PATCH] docs: auto-sync architecture graph and MCP reference --- docs/architecture/HOW_IT_WORKS.md | 59 ++++++++++++------- .../diagrams/pipeline_flow.mermaid | 34 +++++++---- 2 files changed, 61 insertions(+), 32 deletions(-) diff --git a/docs/architecture/HOW_IT_WORKS.md b/docs/architecture/HOW_IT_WORKS.md index 8396defa..a178219f 100644 --- a/docs/architecture/HOW_IT_WORKS.md +++ b/docs/architecture/HOW_IT_WORKS.md @@ -188,37 +188,49 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar models_Node["Node (models.py:85)"]:::classNode end subgraph sg_pipeline["pipeline.py"] - pipeline_IngestionPipeline_cross_file_inputs_changed["_cross_file_inputs_changed (pipeline.py:249)"]:::methodNode - pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:384)"]:::methodNode - pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:310)"]:::methodNode - pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:334)"]:::methodNode - pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:212)"]:::methodNode - pipeline_IngestionPipeline_run["run (pipeline.py:99)"]:::methodNode - pipeline_IngestionPipeline_workspace_root["workspace_root (pipeline.py:82)"]:::methodNode + pipeline_IngestionPipeline_cross_file_inputs_changed["_cross_file_inputs_changed (pipeline.py:266)"]:::methodNode + pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:401)"]:::methodNode + pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:327)"]:::methodNode + pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:351)"]:::methodNode + pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:229)"]:::methodNode + pipeline_IngestionPipeline_run["run (pipeline.py:100)"]:::methodNode + pipeline_IngestionPipeline_workspace_root["workspace_root (pipeline.py:83)"]:::methodNode end subgraph sg_engine["engine.py"] - engine_ResolverEngine["ResolverEngine (engine.py:47)"]:::classNode - engine_ResolverEngine_resolve["resolve (engine.py:64)"]:::methodNode + engine_ResolverEngine["ResolverEngine (engine.py:49)"]:::classNode + engine_ResolverEngine_resolve["resolve (engine.py:77)"]:::methodNode end subgraph sg_uplift["uplift.py"] uplift_SemanticUpliftEngine["SemanticUpliftEngine (uplift.py:66)"]:::classNode uplift_SemanticUpliftEngine_execute_uplift["execute_uplift (uplift.py:91)"]:::methodNode end subgraph sg_sqlite_store["sqlite_store.py"] - sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:53)"]:::classNode + sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:56)"]:::classNode + sqlite_store_SQLiteStore_get_workspace_packages["get_workspace_packages (sqlite_store.py:1085)"]:::methodNode + sqlite_store_SQLiteStore_record_workspace_packages["record_workspace_packages (sqlite_store.py:1071)"]:::methodNode + end + subgraph sg_workspaces["workspaces.py"] + workspaces_WorkspacePackages["WorkspacePackages (workspaces.py:23)"]:::classNode + workspaces_WorkspacePackages_note["note (workspaces.py:39)"]:::methodNode + workspaces_WorkspacePackages_unambiguous["unambiguous (workspaces.py:67)"]:::methodNode end pipeline_IngestionPipeline_run -->|REFERENCES| models_Node pipeline_IngestionPipeline_run -->|REFERENCES| models_Edge pipeline_IngestionPipeline_run -->|REFERENCES| sqlite_store_SQLiteStore pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_workspace_root + pipeline_IngestionPipeline_run -->|CALLS| workspaces_WorkspacePackages + pipeline_IngestionPipeline_run -->|CALLS| workspaces_WorkspacePackages_note pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_get_extractor pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_process_file + pipeline_IngestionPipeline_run -->|CALLS| workspaces_WorkspacePackages_unambiguous + pipeline_IngestionPipeline_run -->|CALLS| sqlite_store_SQLiteStore_get_workspace_packages pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_is_noop_incremental pipeline_IngestionPipeline_run -->|CALLS| engine_ResolverEngine pipeline_IngestionPipeline_run -->|CALLS| engine_ResolverEngine_resolve - pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_cross_file_inputs_changed pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_run + pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_cross_file_inputs_changed pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_persist_incremental + pipeline_IngestionPipeline_run -->|CALLS| sqlite_store_SQLiteStore_record_workspace_packages pipeline_IngestionPipeline_run -->|CALLS| uplift_SemanticUpliftEngine_execute_uplift pipeline_IngestionPipeline_run -->|CALLS| uplift_SemanticUpliftEngine ``` @@ -227,16 +239,21 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar |--------|------|------| | `Node` | CLASS | [`models.py:85`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L85) | | `Edge` | CLASS | [`models.py:142`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L142) | -| `workspace_root` | METHOD | [`pipeline.py:82`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L82) | -| `run` | METHOD | [`pipeline.py:99`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L99) | -| `_process_file` | METHOD | [`pipeline.py:212`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L212) | -| `_cross_file_inputs_changed` | METHOD | [`pipeline.py:249`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L249) | -| `_is_noop_incremental` | METHOD | [`pipeline.py:310`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L310) | -| `_persist_incremental` | METHOD | [`pipeline.py:334`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L334) | -| `_get_extractor` | METHOD | [`pipeline.py:384`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L384) | -| `ResolverEngine` | CLASS | [`engine.py:47`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L47) | -| `resolve` | METHOD | [`engine.py:64`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L64) | +| `workspace_root` | METHOD | [`pipeline.py:83`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L83) | +| `run` | METHOD | [`pipeline.py:100`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L100) | +| `_process_file` | METHOD | [`pipeline.py:229`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L229) | +| `_cross_file_inputs_changed` | METHOD | [`pipeline.py:266`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L266) | +| `_is_noop_incremental` | METHOD | [`pipeline.py:327`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L327) | +| `_persist_incremental` | METHOD | [`pipeline.py:351`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L351) | +| `_get_extractor` | METHOD | [`pipeline.py:401`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L401) | +| `ResolverEngine` | CLASS | [`engine.py:49`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L49) | +| `resolve` | METHOD | [`engine.py:77`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L77) | | `SemanticUpliftEngine` | CLASS | [`uplift.py:66`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L66) | | `execute_uplift` | METHOD | [`uplift.py:91`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L91) | -| `SQLiteStore` | CLASS | [`sqlite_store.py:53`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L53) | +| `SQLiteStore` | CLASS | [`sqlite_store.py:56`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L56) | +| `record_workspace_packages` | METHOD | [`sqlite_store.py:1071`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L1071) | +| `get_workspace_packages` | METHOD | [`sqlite_store.py:1085`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L1085) | +| `WorkspacePackages` | CLASS | [`workspaces.py:23`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/workspaces.py#L23) | +| `note` | METHOD | [`workspaces.py:39`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/workspaces.py#L39) | +| `unambiguous` | METHOD | [`workspaces.py:67`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/workspaces.py#L67) | diff --git a/docs/architecture/diagrams/pipeline_flow.mermaid b/docs/architecture/diagrams/pipeline_flow.mermaid index 85e67ed8..69364112 100644 --- a/docs/architecture/diagrams/pipeline_flow.mermaid +++ b/docs/architecture/diagrams/pipeline_flow.mermaid @@ -12,36 +12,48 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar models_Node["Node (models.py:85)"]:::classNode end subgraph sg_pipeline["pipeline.py"] - pipeline_IngestionPipeline_cross_file_inputs_changed["_cross_file_inputs_changed (pipeline.py:249)"]:::methodNode - pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:384)"]:::methodNode - pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:310)"]:::methodNode - pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:334)"]:::methodNode - pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:212)"]:::methodNode - pipeline_IngestionPipeline_run["run (pipeline.py:99)"]:::methodNode - pipeline_IngestionPipeline_workspace_root["workspace_root (pipeline.py:82)"]:::methodNode + pipeline_IngestionPipeline_cross_file_inputs_changed["_cross_file_inputs_changed (pipeline.py:266)"]:::methodNode + pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:401)"]:::methodNode + pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:327)"]:::methodNode + pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:351)"]:::methodNode + pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:229)"]:::methodNode + pipeline_IngestionPipeline_run["run (pipeline.py:100)"]:::methodNode + pipeline_IngestionPipeline_workspace_root["workspace_root (pipeline.py:83)"]:::methodNode end subgraph sg_engine["engine.py"] - engine_ResolverEngine["ResolverEngine (engine.py:47)"]:::classNode - engine_ResolverEngine_resolve["resolve (engine.py:64)"]:::methodNode + engine_ResolverEngine["ResolverEngine (engine.py:49)"]:::classNode + engine_ResolverEngine_resolve["resolve (engine.py:77)"]:::methodNode end subgraph sg_uplift["uplift.py"] uplift_SemanticUpliftEngine["SemanticUpliftEngine (uplift.py:66)"]:::classNode uplift_SemanticUpliftEngine_execute_uplift["execute_uplift (uplift.py:91)"]:::methodNode end subgraph sg_sqlite_store["sqlite_store.py"] - sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:53)"]:::classNode + sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:56)"]:::classNode + sqlite_store_SQLiteStore_get_workspace_packages["get_workspace_packages (sqlite_store.py:1085)"]:::methodNode + sqlite_store_SQLiteStore_record_workspace_packages["record_workspace_packages (sqlite_store.py:1071)"]:::methodNode + end + subgraph sg_workspaces["workspaces.py"] + workspaces_WorkspacePackages["WorkspacePackages (workspaces.py:23)"]:::classNode + workspaces_WorkspacePackages_note["note (workspaces.py:39)"]:::methodNode + workspaces_WorkspacePackages_unambiguous["unambiguous (workspaces.py:67)"]:::methodNode end pipeline_IngestionPipeline_run -->|REFERENCES| models_Node pipeline_IngestionPipeline_run -->|REFERENCES| models_Edge pipeline_IngestionPipeline_run -->|REFERENCES| sqlite_store_SQLiteStore pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_workspace_root + pipeline_IngestionPipeline_run -->|CALLS| workspaces_WorkspacePackages + pipeline_IngestionPipeline_run -->|CALLS| workspaces_WorkspacePackages_note pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_get_extractor pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_process_file + pipeline_IngestionPipeline_run -->|CALLS| workspaces_WorkspacePackages_unambiguous + pipeline_IngestionPipeline_run -->|CALLS| sqlite_store_SQLiteStore_get_workspace_packages pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_is_noop_incremental pipeline_IngestionPipeline_run -->|CALLS| engine_ResolverEngine pipeline_IngestionPipeline_run -->|CALLS| engine_ResolverEngine_resolve - pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_cross_file_inputs_changed pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_run + pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_cross_file_inputs_changed pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_persist_incremental + pipeline_IngestionPipeline_run -->|CALLS| sqlite_store_SQLiteStore_record_workspace_packages pipeline_IngestionPipeline_run -->|CALLS| uplift_SemanticUpliftEngine_execute_uplift pipeline_IngestionPipeline_run -->|CALLS| uplift_SemanticUpliftEngine