graph TB
classDef garbage_code_hunter fill:#FFB86C22,stroke:#FFB86C,color:#e6edf3,stroke-width:1.6px
classDef goagent fill:#B388FF22,stroke:#B388FF,color:#e6edf3,stroke-width:1.6px
classDef memscope_rs fill:#5BA3E622,stroke:#5BA3E6,color:#e6edf3,stroke-width:1.6px
classDef omniscope fill:#4DD0C822,stroke:#4DD0C8,color:#e6edf3,stroke-width:1.6px
%% === Overview layer ===
subgraph Overview[" "]
direction LR
garbage_code_hunter["garbage-code-hunter
Multi-language code quality analysis in Rust"]:::garbage_code_hunter
goagent["goagent
Go AI Agent framework"]:::goagent
memscope_rs["memscope-rs
Rust memory tracing foundation"]:::memscope_rs
omniscope["OmniScope
LLVM IR cross-language safety analysis"]:::omniscope
memscope_rs -.->|"foundation for"| omniscope
omniscope -.->|"drives tooling"| goagent
end
%% === Parallel series tracks ===
subgraph garbage_code_hunter_track["garbage-code-hunter"]
direction TB
garbage_code_hunter_w1["1 · Multi-Language Code Quality Analysis in Rust"]:::garbage_code_hunter
click garbage_code_hunter_w1 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/00-series-intro/"
garbage_code_hunter_w2["2 · Why Multi-Language Code Quality Analysis Is Hard"]:::garbage_code_hunter
click garbage_code_hunter_w2 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/01-why-multi-language-sucks/"
garbage_code_hunter_w1 --> garbage_code_hunter_w2
garbage_code_hunter_w3["3 · How to Structure a Multi-Language Code Analyzer"]:::garbage_code_hunter
click garbage_code_hunter_w3 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/02-architecture-overview/"
garbage_code_hunter_w2 --> garbage_code_hunter_w3
garbage_code_hunter_w4["4 · Tree-sitter and the LanguageAdapter Pattern"]:::garbage_code_hunter
click garbage_code_hunter_w4 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/03-treesitter-and-language-adapter/"
garbage_code_hunter_w3 --> garbage_code_hunter_w4
garbage_code_hunter_w5["5 · The Language-Neutral Intermediate Representation"]:::garbage_code_hunter
click garbage_code_hunter_w5 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/04-style-ir-the-neutral-layer/"
garbage_code_hunter_w4 --> garbage_code_hunter_w5
garbage_code_hunter_w6["6 · The Signal Detection System"]:::garbage_code_hunter
click garbage_code_hunter_w6 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/05-signal-detection-system/"
garbage_code_hunter_w5 --> garbage_code_hunter_w6
garbage_code_hunter_w7["7 · Duplication Detection Algorithms"]:::garbage_code_hunter
click garbage_code_hunter_w7 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/06-duplication-algorithms/"
garbage_code_hunter_w6 --> garbage_code_hunter_w7
garbage_code_hunter_w8["8 · From Qualitative Signals to a Single Number"]:::garbage_code_hunter
click garbage_code_hunter_w8 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/07-scoring-model/"
garbage_code_hunter_w7 --> garbage_code_hunter_w8
garbage_code_hunter_w9["9 · Roasts, Personality, and the Tool Belt"]:::garbage_code_hunter
click garbage_code_hunter_w9 "https://Timwood0x10.github.io/myblog/log/garbage-code-hunter/08-fun-side-roasts-and-personality/"
garbage_code_hunter_w8 --> garbage_code_hunter_w9
end
subgraph goagent_track["goagent"]
direction TB
goagent_w1["1 · GoAgent Source Deep Dive Series"]:::goagent
click goagent_w1 "https://Timwood0x10.github.io/myblog/log/goagent/readme/"
goagent_w2["2 · GoAgent Source Deep Dive Series"]:::goagent
click goagent_w2 "https://Timwood0x10.github.io/myblog/log/goagent/00-series-index/"
goagent_w1 --> goagent_w2
goagent_w3["3 · API Client"]:::goagent
click goagent_w3 "https://Timwood0x10.github.io/myblog/log/goagent/01-api-client/"
goagent_w2 --> goagent_w3
goagent_w4["4 · LLM Client"]:::goagent
click goagent_w4 "https://Timwood0x10.github.io/myblog/log/goagent/02-llm-client/"
goagent_w3 --> goagent_w4
goagent_w5["5 · Agent System"]:::goagent
click goagent_w5 "https://Timwood0x10.github.io/myblog/log/goagent/03-agent-system/"
goagent_w4 --> goagent_w5
goagent_w6["6 · AHP Protocol"]:::goagent
click goagent_w6 "https://Timwood0x10.github.io/myblog/log/goagent/04-ahp-protocol/"
goagent_w5 --> goagent_w6
goagent_w7["7 · Memory System"]:::goagent
click goagent_w7 "https://Timwood0x10.github.io/myblog/log/goagent/05-memory-system/"
goagent_w6 --> goagent_w7
goagent_w8["8 · Tool System"]:::goagent
click goagent_w8 "https://Timwood0x10.github.io/myblog/log/goagent/06-tool-system/"
goagent_w7 --> goagent_w8
goagent_w9["9 · Workflow Engine"]:::goagent
click goagent_w9 "https://Timwood0x10.github.io/myblog/log/goagent/07-workflow-engine/"
goagent_w8 --> goagent_w9
goagent_w10["10 · Storage and Retrieval"]:::goagent
click goagent_w10 "https://Timwood0x10.github.io/myblog/log/goagent/08-storage-retrieval/"
goagent_w9 --> goagent_w10
goagent_w11["11 · Embedding Service"]:::goagent
click goagent_w11 "https://Timwood0x10.github.io/myblog/log/goagent/09-embedding-service/"
goagent_w10 --> goagent_w11
end
subgraph memscope_rs_track["memscope-rs"]
direction TB
memscope_rs_w1["1 · From GlobalAlloc to Rust-Level Memory Semantics"]:::memscope_rs
click memscope_rs_w1 "https://Timwood0x10.github.io/myblog/log/memscope-rs/single-thread-tracking/"
memscope_rs_w2["2 · How `memscope-rs` Handles Concurrent Memory Events"]:::memscope_rs
click memscope_rs_w2 "https://Timwood0x10.github.io/myblog/log/memscope-rs/lockfree-multithread-tracking/"
memscope_rs_w1 --> memscope_rs_w2
memscope_rs_w3["3 · Tracking Memory Beyond Threads"]:::memscope_rs
click memscope_rs_w3 "https://Timwood0x10.github.io/myblog/log/memscope-rs/async-task-memory-attribution/"
memscope_rs_w2 --> memscope_rs_w3
memscope_rs_w4["4 · Why `StackOwner` Matters"]:::memscope_rs
click memscope_rs_w4 "https://Timwood0x10.github.io/myblog/log/memscope-rs/arc-rc-stackowner/"
memscope_rs_w3 --> memscope_rs_w4
memscope_rs_w5["5 · Tracking Memory Across Rust's Trust Boundary"]:::memscope_rs
click memscope_rs_w5 "https://Timwood0x10.github.io/myblog/log/memscope-rs/unsafe-ffi-memory-passport/"
memscope_rs_w4 --> memscope_rs_w5
memscope_rs_w6["6 · memscope-rs Technical Article Series Index"]:::memscope_rs
click memscope_rs_w6 "https://Timwood0x10.github.io/myblog/log/memscope-rs/article-series-index/"
memscope_rs_w5 --> memscope_rs_w6
memscope_rs_w7["7 · From Facade to Event Store, Snapshot, Analysis, and Render"]:::memscope_rs
click memscope_rs_w7 "https://Timwood0x10.github.io/myblog/log/memscope-rs/article-architecture-facade-pipeline/"
memscope_rs_w6 --> memscope_rs_w7
memscope_rs_w8["8 · Turning Memory Events into Reports"]:::memscope_rs
click memscope_rs_w8 "https://Timwood0x10.github.io/myblog/log/memscope-rs/article-export-dashboard-pipeline/"
memscope_rs_w7 --> memscope_rs_w8
memscope_rs_w9["9 · From Memory Events to Rust Semantics"]:::memscope_rs
click memscope_rs_w9 "https://Timwood0x10.github.io/myblog/log/memscope-rs/article-ownership-graph-relation-inference/"
memscope_rs_w8 --> memscope_rs_w9
memscope_rs_w10["10 · What the Numbers Actually Say"]:::memscope_rs
click memscope_rs_w10 "https://Timwood0x10.github.io/myblog/log/memscope-rs/article-benchmark-deep-dive/"
memscope_rs_w9 --> memscope_rs_w10
end
subgraph omniscope_track["OmniScope"]
direction TB
omniscope_w1["1 · OmniScope Design Concept"]:::omniscope
click omniscope_w1 "https://Timwood0x10.github.io/myblog/log/OmniScope/000-design/"
omniscope_w2["2 · From LLVM IR to Cross-Language Ownership Auditing"]:::omniscope
click omniscope_w2 "https://Timwood0x10.github.io/myblog/log/OmniScope/00-series-index/"
omniscope_w1 --> omniscope_w2
omniscope_w3["3 · Why OmniScope Analyzes Cross-Language Safety at the LLVM IR Layer"]:::omniscope
click omniscope_w3 "https://Timwood0x10.github.io/myblog/log/OmniScope/01-what-is-omniscope/"
omniscope_w2 --> omniscope_w3
omniscope_w4["4 · CLI, IRLoader, Pipeline, and Output"]:::omniscope
click omniscope_w4 "https://Timwood0x10.github.io/myblog/log/OmniScope/02-cli-to-pipeline/"
omniscope_w3 --> omniscope_w4
omniscope_w5["5 · Dependency Ordering, Shared Context, and Graceful Degradation"]:::omniscope
click omniscope_w5 "https://Timwood0x10.github.io/myblog/log/OmniScope/03-pass-system/"
omniscope_w4 --> omniscope_w5
omniscope_w6["6 · Avoiding Blacklist-Style Reporting"]:::omniscope
click omniscope_w6 "https://Timwood0x10.github.io/myblog/log/OmniScope/04-zone-and-registry/"
omniscope_w5 --> omniscope_w6
omniscope_w7["7 · From Pointer Facts to Risk Paths"]:::omniscope
click omniscope_w7 "https://Timwood0x10.github.io/myblog/log/OmniScope/05-memory-graph-danger-surface/"
omniscope_w6 --> omniscope_w7
omniscope_w8["8 · Reconstructing and Checking Cross-Language Ownership Protocols"]:::omniscope
click omniscope_w8 "https://Timwood0x10.github.io/myblog/log/OmniScope/06-rust-ffi-auditor/"
omniscope_w7 --> omniscope_w8
omniscope_w9["9 · Issue Objects, JSON, SARIF, and Engineering Integration"]:::omniscope
click omniscope_w9 "https://Timwood0x10.github.io/myblog/log/OmniScope/07-output-and-integration/"
omniscope_w8 --> omniscope_w9
omniscope_w10["10 · Red/Blue Team Testing Guide"]:::omniscope
click omniscope_w10 "https://Timwood0x10.github.io/myblog/log/OmniScope/08-log-read/"
omniscope_w9 --> omniscope_w10
end