graph TB
classDef ares fill:#B388FF22,stroke:#B388FF,color:#e6edf3,stroke-width:1.6px
classDef codetribunal fill:#FF79C622,stroke:#FF79C6,color:#e6edf3,stroke-width:1.6px
classDef decision_archaeology fill:#F1FA8C22,stroke:#F1FA8C,color:#e6edf3,stroke-width:1.6px
classDef garbage_code_hunter fill:#FFB86C22,stroke:#FFB86C,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
classDef omniscope_rs fill:#50FA7B22,stroke:#50FA7B,color:#e6edf3,stroke-width:1.6px
%% === Overview layer ===
subgraph Overview[" "]
direction LR
ares["ARES
Go AI Agent framework — from AHP protocol to self-healing runtimes"]:::ares
codetribunal["CodeTribunal
LLM agent code review roundtable"]:::codetribunal
decision_archaeology["decision-archaeology
Engineering decisions decoded from source code — across memory safety, FFI boundaries, multi-agent evolution, and a Web3→AI pivot"]:::decision_archaeology
garbage_code_hunter["garbage-code-hunter
Multi-language code quality analysis in Rust"]:::garbage_code_hunter
memscope_rs["memscope-rs
Rust memory tracing foundation"]:::memscope_rs
omniscope["OmniScope
LLVM IR cross-language safety analysis"]:::omniscope
omniscope_rs["omniscope-rs
Cross-language FFI security analysis — Zig vs. Rust implementation deep dive"]:::omniscope_rs
memscope_rs -.->|"foundation for"| omniscope
omniscope -.->|"parallel implementation"| omniscope_rs
omniscope -.->|"drives tooling"| ares
ares -.->|"agent framework for"| codetribunal
memscope_rs -.->|"inspired"| decision_archaeology
ares -.->|"inspired"| decision_archaeology
codetribunal -.->|"inspired"| decision_archaeology
garbage_code_hunter -.->|"inspired"| decision_archaeology
omniscope -.->|"inspired"| decision_archaeology
omniscope_rs -.->|"inspired"| decision_archaeology
end
%% === Parallel series tracks ===
subgraph ares_track["ARES"]
direction TB
ares_w1["1 · Building Your Own Agent Framework When You're Bored"]:::ares
click ares_w1 "https://Timwood0x10.github.io/myblog/log/ARES/00-goagentx-intro/"
ares_w2["2 · The Big Picture"]:::ares
click ares_w2 "https://Timwood0x10.github.io/myblog/log/ARES/01-architecture-overview-deep-dive/"
ares_w1 --> ares_w2
ares_w3["3 · Agent Harmony Protocol"]:::ares
click ares_w3 "https://Timwood0x10.github.io/myblog/log/ARES/02-agent-harmony-protocol/"
ares_w2 --> ares_w3
ares_w4["4 · Memory Distillation"]:::ares
click ares_w4 "https://Timwood0x10.github.io/myblog/log/ARES/03-memory-distillation-deep-dive/"
ares_w3 --> ares_w4
ares_w5["5 · Workflow Engine"]:::ares
click ares_w5 "https://Timwood0x10.github.io/myblog/log/ARES/04-workflow-engine-deep-dive/"
ares_w4 --> ares_w5
ares_w6["6 · Tool Invocation Layer"]:::ares
click ares_w6 "https://Timwood0x10.github.io/myblog/log/ARES/05-tool-system-deep-dive/"
ares_w5 --> ares_w6
ares_w7["7 · Security and Observability"]:::ares
click ares_w7 "https://Timwood0x10.github.io/myblog/log/ARES/06-security-observability-deep-dive/"
ares_w6 --> ares_w7
ares_w8["8 · Runtime & Lifecycle"]:::ares
click ares_w8 "https://Timwood0x10.github.io/myblog/log/ARES/07-runtime-lifecycle-deep-dive/"
ares_w7 --> ares_w8
ares_w9["9 · Event System"]:::ares
click ares_w9 "https://Timwood0x10.github.io/myblog/log/ARES/08-event-system-deep-dive/"
ares_w8 --> ares_w9
ares_w10["10 · Arena / Fault Injection"]:::ares
click ares_w10 "https://Timwood0x10.github.io/myblog/log/ARES/09-arena-fault-injection-deep-dive/"
ares_w9 --> ares_w10
ares_w11["11 · Retrieval System"]:::ares
click ares_w11 "https://Timwood0x10.github.io/myblog/log/ARES/10-retrieval-system-deep-dive/"
ares_w10 --> ares_w11
ares_w12["12 · Autonomous Evolution"]:::ares
click ares_w12 "https://Timwood0x10.github.io/myblog/log/ARES/11-autonomous-evolution-deep-dive/"
ares_w11 --> ares_w12
ares_w13["13 · Security Hardening"]:::ares
click ares_w13 "https://Timwood0x10.github.io/myblog/log/ARES/12-security-hardening-deep-dive/"
ares_w12 --> ares_w13
ares_w14["14 · Bootstrap & API Layer"]:::ares
click ares_w14 "https://Timwood0x10.github.io/myblog/log/ARES/13-bootstrap-api-deep-dive/"
ares_w13 --> ares_w14
ares_w15["15 · Plugin System"]:::ares
click ares_w15 "https://Timwood0x10.github.io/myblog/log/ARES/14-plugin-system-deep-dive/"
ares_w14 --> ares_w15
ares_w16["16 · MCP Integration"]:::ares
click ares_w16 "https://Timwood0x10.github.io/myblog/log/ARES/15-mcp-integration-deep-dive/"
ares_w15 --> ares_w16
ares_w17["17 · Flight Recorder"]:::ares
click ares_w17 "https://Timwood0x10.github.io/myblog/log/ARES/16-flight-recorder-deep-dive/"
ares_w16 --> ares_w17
ares_w18["18 · SDK Layer"]:::ares
click ares_w18 "https://Timwood0x10.github.io/myblog/log/ARES/17-sdk-layer/"
ares_w17 --> ares_w18
ares_w19["19 · Knowledge Graph Build"]:::ares
click ares_w19 "https://Timwood0x10.github.io/myblog/log/ARES/18-knowledge-graph-build/"
ares_w18 --> ares_w19
ares_w20["20 · Storage Layer"]:::ares
click ares_w20 "https://Timwood0x10.github.io/myblog/log/ARES/19-storage-layer/"
ares_w19 --> ares_w20
ares_w21["21 · LLM Client Layer"]:::ares
click ares_w21 "https://Timwood0x10.github.io/myblog/log/ARES/20-llm-client-layer/"
ares_w20 --> ares_w21
ares_w22["22 · Evaluation Framework"]:::ares
click ares_w22 "https://Timwood0x10.github.io/myblog/log/ARES/21-evaluation-framework/"
ares_w21 --> ares_w22
ares_w23["23 · Config System"]:::ares
click ares_w23 "https://Timwood0x10.github.io/myblog/log/ARES/22-config-system/"
ares_w22 --> ares_w23
ares_w24["24 · Quant Trading Module"]:::ares
click ares_w24 "https://Timwood0x10.github.io/myblog/log/ARES/23-quant-trading/"
ares_w23 --> ares_w24
ares_w25["25 · GA Evolution System"]:::ares
click ares_w25 "https://Timwood0x10.github.io/myblog/log/ARES/24-1-ga-deep-dive/"
ares_w24 --> ares_w25
ares_w26["26 · TieredScorer"]:::ares
click ares_w26 "https://Timwood0x10.github.io/myblog/log/ARES/24-2-ga-tiered-scorer/"
ares_w25 --> ares_w26
ares_w27["27 · Selection Operator Benchmark"]:::ares
click ares_w27 "https://Timwood0x10.github.io/myblog/log/ARES/24-3-ga-selection-benchmark/"
ares_w26 --> ares_w27
ares_w28["28 · Promoter"]:::ares
click ares_w28 "https://Timwood0x10.github.io/myblog/log/ARES/24-4-ga-promoter/"
ares_w27 --> ares_w28
ares_w29["29 · Genealogy"]:::ares
click ares_w29 "https://Timwood0x10.github.io/myblog/log/ARES/24-5-ga-genealogy/"
ares_w28 --> ares_w29
ares_w30["30 · GA in the Trenches"]:::ares
click ares_w30 "https://Timwood0x10.github.io/myblog/log/ARES/24-6-ga-in-the-trenches/"
ares_w29 --> ares_w30
end
subgraph codetribunal_track["CodeTribunal"]
direction TB
codetribunal_w1["1 · When LLM Agents Hold a Code Review Trial"]:::codetribunal
click codetribunal_w1 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/00-series-index/"
codetribunal_w2["2 · Why Code Review Needs Drama"]:::codetribunal
click codetribunal_w2 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/01-why-code-review-needs-drama/"
codetribunal_w1 --> codetribunal_w2
codetribunal_w3["3 · Wiring 8 LLM Agents Into a Game Loop"]:::codetribunal
click codetribunal_w3 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/02-architecture-overview/"
codetribunal_w2 --> codetribunal_w3
codetribunal_w4["4 · 8 Reviewers From One LLM"]:::codetribunal
click codetribunal_w4 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/03-persona-system/"
codetribunal_w3 --> codetribunal_w4
codetribunal_w5["5 · Subtle Sabotage as a Feature"]:::codetribunal
click codetribunal_w5 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/04-troublemaker-mechanic/"
codetribunal_w4 --> codetribunal_w5
codetribunal_w6["6 · Debate, Cross-Examination, and Voting"]:::codetribunal
click codetribunal_w6 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/05-debate-and-voting/"
codetribunal_w5 --> codetribunal_w6
codetribunal_w7["7 · Learning from Past Sessions"]:::codetribunal
click codetribunal_w7 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/06-experience-and-vector/"
codetribunal_w6 --> codetribunal_w7
codetribunal_w8["8 · Random Events and Game Dynamics"]:::codetribunal
click codetribunal_w8 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/07-random-events-and-fun/"
codetribunal_w7 --> codetribunal_w8
codetribunal_w9["9 · WebSocket Layer and Real-Time UI"]:::codetribunal
click codetribunal_w9 "https://Timwood0x10.github.io/myblog/log/CodeTribunal/08-websocket-and-ui/"
codetribunal_w8 --> codetribunal_w9
end
subgraph decision_archaeology_track["decision-archaeology"]
direction TB
decision_archaeology_w1["1 · 抽象的债务"]:::decision_archaeology
click decision_archaeology_w1 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/01-the-debt-of-abstraction/"
decision_archaeology_w2["2 · 并发的本质是信任"]:::decision_archaeology
click decision_archaeology_w2 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/02-concurrency-is-trust/"
decision_archaeology_w1 --> decision_archaeology_w2
decision_archaeology_w3["3 · 错误是设计的镜子"]:::decision_archaeology
click decision_archaeology_w3 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/03-errors-are-mirrors/"
decision_archaeology_w2 --> decision_archaeology_w3
decision_archaeology_w4["4 · 工具的暴政"]:::decision_archaeology
click decision_archaeology_w4 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/04-tyranny-of-tools/"
decision_archaeology_w3 --> decision_archaeology_w4
decision_archaeology_w5["5 · 危险边界的守卫"]:::decision_archaeology
click decision_archaeology_w5 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/05-guarding-dangerous-boundaries/"
decision_archaeology_w4 --> decision_archaeology_w5
decision_archaeology_w6["6 · 可观测性的代价"]:::decision_archaeology
click decision_archaeology_w6 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/06-the-cost-of-observability/"
decision_archaeology_w5 --> decision_archaeology_w6
decision_archaeology_w7["7 · 状态还是行为"]:::decision_archaeology
click decision_archaeology_w7 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/07-state-vs-behavior/"
decision_archaeology_w6 --> decision_archaeology_w7
decision_archaeology_w8["8 · 撒谎的设计模式"]:::decision_archaeology
click decision_archaeology_w8 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/08-the-pattern-that-lied/"
decision_archaeology_w7 --> decision_archaeology_w8
decision_archaeology_w9["9 · 何时对异步说不"]:::decision_archaeology
click decision_archaeology_w9 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/09-when-to-say-no-to-async/"
decision_archaeology_w8 --> decision_archaeology_w9
decision_archaeology_w10["10 · 重写还是演进"]:::decision_archaeology
click decision_archaeology_w10 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/10-the-fork-in-the-road/"
decision_archaeology_w9 --> decision_archaeology_w10
decision_archaeology_w11["11 · 你跳过的那条测试"]:::decision_archaeology
click decision_archaeology_w11 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/11-the-test-you-skipped/"
decision_archaeology_w10 --> decision_archaeology_w11
decision_archaeology_w12["12 · 离开 Web3 的那天"]:::decision_archaeology
click decision_archaeology_w12 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/12-leaving-web3/"
decision_archaeology_w11 --> decision_archaeology_w12
decision_archaeology_w13["13 · 在"以安全著称的 Rust"里做内存工具"]:::decision_archaeology
click decision_archaeology_w13 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/13-safe-rust-memory-tool/"
decision_archaeology_w12 --> decision_archaeology_w13
decision_archaeology_w14["14 · OmniScope:从拒绝巨额白名单到妥协"]:::decision_archaeology
click decision_archaeology_w14 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/14-omniscope-design-tradeoffs/"
decision_archaeology_w13 --> decision_archaeology_w14
decision_archaeology_w15["15 · 把代码评审变成一场戏"]:::decision_archaeology
click decision_archaeology_w15 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/15-code-review-drama/"
decision_archaeology_w14 --> decision_archaeology_w15
decision_archaeology_w16["16 · 用遗传算法给 Agent 选策略"]:::decision_archaeology
click decision_archaeology_w16 "https://Timwood0x10.github.io/myblog/log/decision-archaeology/16-genetic-algorithm-agent-selection/"
decision_archaeology_w15 --> decision_archaeology_w16
end
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 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
omniscope_w11["11 · v0.2.0"]:::omniscope
click omniscope_w11 "https://Timwood0x10.github.io/myblog/log/OmniScope/v0-2-0/"
omniscope_w10 --> omniscope_w11
end
subgraph omniscope_rs_track["omniscope-rs"]
direction TB
omniscope_rs_w1["1 · Call Graphs, State Machines, Semantic Trees, This Combo Took Two Years"]:::omniscope_rs
click omniscope_rs_w1 "https://Timwood0x10.github.io/myblog/log/omniscope-rs/01-why-omniscope/"
omniscope_rs_w2["2 · IR Loading"]:::omniscope_rs
click omniscope_rs_w2 "https://Timwood0x10.github.io/myblog/log/omniscope-rs/02-ir-loading/"
omniscope_rs_w1 --> omniscope_rs_w2
omniscope_rs_w3["3 · Noise Reduction"]:::omniscope_rs
click omniscope_rs_w3 "https://Timwood0x10.github.io/myblog/log/omniscope-rs/03-noise-reduction/"
omniscope_rs_w2 --> omniscope_rs_w3
omniscope_rs_w4["4 · From Effect to Evidence Chain Pipeline"]:::omniscope_rs
click omniscope_rs_w4 "https://Timwood0x10.github.io/myblog/log/omniscope-rs/04-resource-family/"
omniscope_rs_w3 --> omniscope_rs_w4
omniscope_rs_w5["5 · IR Pattern Atlas"]:::omniscope_rs
click omniscope_rs_w5 "https://Timwood0x10.github.io/myblog/log/omniscope-rs/05-ir-pattern-atlas/"
omniscope_rs_w4 --> omniscope_rs_w5
omniscope_rs_w6["6 · Reflection"]:::omniscope_rs
click omniscope_rs_w6 "https://Timwood0x10.github.io/myblog/log/omniscope-rs/06-reflection/"
omniscope_rs_w5 --> omniscope_rs_w6
end