[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-parallax-investigation":3,"mdc-x1ri63-key":33,"related-repo-microsoft-parallax-investigation":960,"related-org-microsoft-parallax-investigation":1035},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"parallax-investigation","investigate complex systems with multi-agent analysis","Use when you need true understanding of a complex system — not a quick answer. Parallax Discovery is a multi-agent, multi-pass investigation methodology that combines three perspectives (code tracing, behavior observation, integration mapping) to produce verified, evidence-backed findings.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19],{"name":13,"slug":14,"type":15},"Code Analysis","code-analysis","tag",{"name":17,"slug":18,"type":15},"Multi-Agent","multi-agent",{"name":20,"slug":21,"type":15},"Debugging","debugging",2,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-dot-graph","2026-04-06T18:37:08.486158",null,5,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"DOT graph bundle for the Amplifier project","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-dot-graph\u002Ftree\u002FHEAD\u002Fskills\u002Fparallax-investigation","---\nname: parallax-investigation\ndescription: Use when you need true understanding of a complex system — not a quick answer. Parallax Discovery is a multi-agent, multi-pass investigation methodology that combines three perspectives (code tracing, behavior observation, integration mapping) to produce verified, evidence-backed findings.\n---\n\n# Parallax Discovery Methodology\n\n## Overview\n\n**Parallax Discovery** is a multi-agent, multi-pass investigation methodology named after astronomical parallax — just as astronomers triangulate depth by observing stars from multiple positions, this methodology triangulates truth by examining code from multiple perspectives.\n\nUse Parallax Discovery when you need **true understanding**, not a quick answer:\n\n- Unfamiliar or complex codebases\n- Debugging subtle, intermittent, or cross-cutting issues\n- Architecture review before major refactoring\n- Onboarding investigation to map system structure\n- Security audits requiring evidence-backed findings\n\nA single agent reading code produces a single perspective. Parallax produces three, then reconciles them.\n\n---\n\n## The Three-Perspective Model\n\nEach perspective is a distinct agent role. Together they form a **triplicate team**. All agents in a team run with **fresh context** (`context_depth='none'`) — this is non-negotiable. Prior session state contaminates findings.\n\n### Agent 1: Code Tracer (HOW)\n- Traces actual execution paths through source files using LSP\n- Uses `goToDefinition`, `incomingCalls`, `outgoingCalls`, `findReferences`\n- **Requires file:line evidence** for every significant finding\n- Produces `findings.md`, `evidence.md`, `diagram.dot`\n\n### Agent 2: Behavior Observer (WHAT)\n- Examines **10+ real instances** minimum — patterns emerge from many, not one\n- Catalogs structure, quantifies prevalence, identifies anti-patterns\n- Distinguishes what actually exists vs. what documentation claims\n- Produces `catalog.md`, `patterns.md`, `findings.md`, `diagram.dot`\n\n### Agent 3: Integration Mapper (WHERE\u002FWHY)\n- Maps how mechanisms integrate across component boundaries\n- Finds **composition effects** — emergent behavior at boundaries\n- Identifies cross-cutting concerns that single-perspective agents miss\n- Produces `integration-map.md`, `findings.md`, `diagram.dot`\n\n---\n\n## The No-Fiat Rule\n\n**Discrepancies between agents are valuable signals, not failures.**\n\nWhen two agents disagree:\n\n1. **Never reconcile by picking the more plausible answer** — this is the no-fiat rule\n2. **Assign a tracking ID** (D-01, D-02, D-NN)\n3. **Record both claims** with full evidence citations\n4. **Mark OPEN** if unresolvable from available evidence\n5. Unresolved discrepancies become recommendations for the next wave\n\nA discrepancy marks exactly where design and reality have separated. Suppressing it destroys the investigation's most valuable finding.\n\n---\n\n## Wave Structure\n\n### Wave 1 — Discovery\n**Goal:** Cast a wide net. Identify patterns, mechanisms, and boundaries.\n\n- Dispatch triplicate teams per topic (code-tracer + behavior-observer + integration-mapper)\n- Each team investigates independently with zero shared context\n- DOT diagrams are **discovery tools**, not just outputs — draw what you find\n- After all teams complete, lead-investigator reconciles findings across teams\n\n### Wave 2 — Verification\n**Goal:** Focused deep dives to resolve discrepancies from Wave 1.\n\n- Targeted investigation of specific D-NN discrepancy items\n- `evidence.md` with file:line citations is required for every finding\n- Wave 2 produces RESOLVED \u002F PARTIALLY RESOLVED \u002F UNRESOLVED verdicts\n\n### Wave 3 — Adversarial (optional)\n**Goal:** Execution-based stress testing of consolidated findings.\n\n- Dispatches **antagonist agents** with no prior findings context\n- Writes test scripts and **runs actual code** to prove or disprove claims\n- Code reading identifies mechanisms; execution proves impact\n- Claims that survive adversarial testing are verified; refuted claims are corrected\n\n---\n\n## Fidelity Tiers\n\nChoose fidelity based on investigation depth required:\n\n| Tier | Agents | Use When |\n|------|--------|----------|\n| **quick** | 1 agent: code-tracer only | Fast initial scan, time-constrained |\n| **standard** | 2 agents: code-tracer + integration-mapper | Default for most investigations |\n| **deep** | 3 agents: full triplicate (all three) | High-stakes, unfamiliar, or complex systems |\n\nDefault fidelity is **standard**. Use the `fidelity` context variable to override.\n\n---\n\n## Investigation Frames (Lens)\n\nThe investigation `lens` context variable focuses agent attention:\n\n| Frame | Lens Value | Focus |\n|-------|-----------|-------|\n| Architecture | `architecture` | System structure, module boundaries, coupling |\n| Security | `security` | Attack surface, data flow, trust boundaries |\n| Quality | `quality` | Code health, anti-patterns, technical debt |\n| Onboarding | `onboarding` | Entry points, key concepts, learning path |\n| Debugging | `debugging` | Failure modes, error paths, state transitions |\n\n---\n\n## Artifact Strategy\n\nEach agent writes to an **isolated subdirectory** — no shared mutable state between agents.\n\n```\n.discovery\u002F\n  investigation\u002F\n    modules\u002F\n      {slug}\u002F\n        agents\u002F\n          code-tracer\u002F\n            findings.md\n            evidence.md\n            diagram.dot\n            unknowns.md\n          behavior-observer\u002F\n            catalog.md\n            patterns.md\n            findings.md\n            diagram.dot\n          integration-mapper\u002F\n            integration-map.md\n            findings.md\n            diagram.dot\n  output\u002F\n    combined.md\n    overview.dot\n    synthesis.md\n```\n\nArtifacts are written **before** reconciliation. The lead-investigator reads all artifacts after the wave completes and produces the reconciliation document.\n\n---\n\n## Deep Reference\n\nFor full protocol specifications, see:\n\n- `@parallax-discovery:context\u002Fmethodology.md` — complete methodology reference\n- `@parallax-discovery:context\u002Ftriplicate-pattern.md` — triplicate team patterns\n- `@parallax-discovery:context\u002Fartifact-strategy.md` — artifact directory conventions\n- `@parallax-discovery:context\u002Fwave-protocol.md` — wave execution protocol\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,47,54,66,78,108,113,117,123,151,158,234,240,294,300,347,350,356,364,369,418,423,426,432,438,448,478,484,493,516,522,531,568,571,577,582,678,697,700,706,719,854,857,863,875,887,899,902,908,913],{"type":39,"tag":40,"props":41,"children":43},"element","h1",{"id":42},"parallax-discovery-methodology",[44],{"type":45,"value":46},"text","Parallax Discovery Methodology",{"type":39,"tag":48,"props":49,"children":51},"h2",{"id":50},"overview",[52],{"type":45,"value":53},"Overview",{"type":39,"tag":55,"props":56,"children":57},"p",{},[58,64],{"type":39,"tag":59,"props":60,"children":61},"strong",{},[62],{"type":45,"value":63},"Parallax Discovery",{"type":45,"value":65}," is a multi-agent, multi-pass investigation methodology named after astronomical parallax — just as astronomers triangulate depth by observing stars from multiple positions, this methodology triangulates truth by examining code from multiple perspectives.",{"type":39,"tag":55,"props":67,"children":68},{},[69,71,76],{"type":45,"value":70},"Use Parallax Discovery when you need ",{"type":39,"tag":59,"props":72,"children":73},{},[74],{"type":45,"value":75},"true understanding",{"type":45,"value":77},", not a quick answer:",{"type":39,"tag":79,"props":80,"children":81},"ul",{},[82,88,93,98,103],{"type":39,"tag":83,"props":84,"children":85},"li",{},[86],{"type":45,"value":87},"Unfamiliar or complex codebases",{"type":39,"tag":83,"props":89,"children":90},{},[91],{"type":45,"value":92},"Debugging subtle, intermittent, or cross-cutting issues",{"type":39,"tag":83,"props":94,"children":95},{},[96],{"type":45,"value":97},"Architecture review before major refactoring",{"type":39,"tag":83,"props":99,"children":100},{},[101],{"type":45,"value":102},"Onboarding investigation to map system structure",{"type":39,"tag":83,"props":104,"children":105},{},[106],{"type":45,"value":107},"Security audits requiring evidence-backed findings",{"type":39,"tag":55,"props":109,"children":110},{},[111],{"type":45,"value":112},"A single agent reading code produces a single perspective. Parallax produces three, then reconciles them.",{"type":39,"tag":114,"props":115,"children":116},"hr",{},[],{"type":39,"tag":48,"props":118,"children":120},{"id":119},"the-three-perspective-model",[121],{"type":45,"value":122},"The Three-Perspective Model",{"type":39,"tag":55,"props":124,"children":125},{},[126,128,133,135,140,142,149],{"type":45,"value":127},"Each perspective is a distinct agent role. Together they form a ",{"type":39,"tag":59,"props":129,"children":130},{},[131],{"type":45,"value":132},"triplicate team",{"type":45,"value":134},". All agents in a team run with ",{"type":39,"tag":59,"props":136,"children":137},{},[138],{"type":45,"value":139},"fresh context",{"type":45,"value":141}," (",{"type":39,"tag":143,"props":144,"children":146},"code",{"className":145},[],[147],{"type":45,"value":148},"context_depth='none'",{"type":45,"value":150},") — this is non-negotiable. Prior session state contaminates findings.",{"type":39,"tag":152,"props":153,"children":155},"h3",{"id":154},"agent-1-code-tracer-how",[156],{"type":45,"value":157},"Agent 1: Code Tracer (HOW)",{"type":39,"tag":79,"props":159,"children":160},{},[161,166,199,209],{"type":39,"tag":83,"props":162,"children":163},{},[164],{"type":45,"value":165},"Traces actual execution paths through source files using LSP",{"type":39,"tag":83,"props":167,"children":168},{},[169,171,177,179,185,186,192,193],{"type":45,"value":170},"Uses ",{"type":39,"tag":143,"props":172,"children":174},{"className":173},[],[175],{"type":45,"value":176},"goToDefinition",{"type":45,"value":178},", ",{"type":39,"tag":143,"props":180,"children":182},{"className":181},[],[183],{"type":45,"value":184},"incomingCalls",{"type":45,"value":178},{"type":39,"tag":143,"props":187,"children":189},{"className":188},[],[190],{"type":45,"value":191},"outgoingCalls",{"type":45,"value":178},{"type":39,"tag":143,"props":194,"children":196},{"className":195},[],[197],{"type":45,"value":198},"findReferences",{"type":39,"tag":83,"props":200,"children":201},{},[202,207],{"type":39,"tag":59,"props":203,"children":204},{},[205],{"type":45,"value":206},"Requires file:line evidence",{"type":45,"value":208}," for every significant finding",{"type":39,"tag":83,"props":210,"children":211},{},[212,214,220,221,227,228],{"type":45,"value":213},"Produces ",{"type":39,"tag":143,"props":215,"children":217},{"className":216},[],[218],{"type":45,"value":219},"findings.md",{"type":45,"value":178},{"type":39,"tag":143,"props":222,"children":224},{"className":223},[],[225],{"type":45,"value":226},"evidence.md",{"type":45,"value":178},{"type":39,"tag":143,"props":229,"children":231},{"className":230},[],[232],{"type":45,"value":233},"diagram.dot",{"type":39,"tag":152,"props":235,"children":237},{"id":236},"agent-2-behavior-observer-what",[238],{"type":45,"value":239},"Agent 2: Behavior Observer (WHAT)",{"type":39,"tag":79,"props":241,"children":242},{},[243,255,260,265],{"type":39,"tag":83,"props":244,"children":245},{},[246,248,253],{"type":45,"value":247},"Examines ",{"type":39,"tag":59,"props":249,"children":250},{},[251],{"type":45,"value":252},"10+ real instances",{"type":45,"value":254}," minimum — patterns emerge from many, not one",{"type":39,"tag":83,"props":256,"children":257},{},[258],{"type":45,"value":259},"Catalogs structure, quantifies prevalence, identifies anti-patterns",{"type":39,"tag":83,"props":261,"children":262},{},[263],{"type":45,"value":264},"Distinguishes what actually exists vs. what documentation claims",{"type":39,"tag":83,"props":266,"children":267},{},[268,269,275,276,282,283,288,289],{"type":45,"value":213},{"type":39,"tag":143,"props":270,"children":272},{"className":271},[],[273],{"type":45,"value":274},"catalog.md",{"type":45,"value":178},{"type":39,"tag":143,"props":277,"children":279},{"className":278},[],[280],{"type":45,"value":281},"patterns.md",{"type":45,"value":178},{"type":39,"tag":143,"props":284,"children":286},{"className":285},[],[287],{"type":45,"value":219},{"type":45,"value":178},{"type":39,"tag":143,"props":290,"children":292},{"className":291},[],[293],{"type":45,"value":233},{"type":39,"tag":152,"props":295,"children":297},{"id":296},"agent-3-integration-mapper-wherewhy",[298],{"type":45,"value":299},"Agent 3: Integration Mapper (WHERE\u002FWHY)",{"type":39,"tag":79,"props":301,"children":302},{},[303,308,320,325],{"type":39,"tag":83,"props":304,"children":305},{},[306],{"type":45,"value":307},"Maps how mechanisms integrate across component boundaries",{"type":39,"tag":83,"props":309,"children":310},{},[311,313,318],{"type":45,"value":312},"Finds ",{"type":39,"tag":59,"props":314,"children":315},{},[316],{"type":45,"value":317},"composition effects",{"type":45,"value":319}," — emergent behavior at boundaries",{"type":39,"tag":83,"props":321,"children":322},{},[323],{"type":45,"value":324},"Identifies cross-cutting concerns that single-perspective agents miss",{"type":39,"tag":83,"props":326,"children":327},{},[328,329,335,336,341,342],{"type":45,"value":213},{"type":39,"tag":143,"props":330,"children":332},{"className":331},[],[333],{"type":45,"value":334},"integration-map.md",{"type":45,"value":178},{"type":39,"tag":143,"props":337,"children":339},{"className":338},[],[340],{"type":45,"value":219},{"type":45,"value":178},{"type":39,"tag":143,"props":343,"children":345},{"className":344},[],[346],{"type":45,"value":233},{"type":39,"tag":114,"props":348,"children":349},{},[],{"type":39,"tag":48,"props":351,"children":353},{"id":352},"the-no-fiat-rule",[354],{"type":45,"value":355},"The No-Fiat Rule",{"type":39,"tag":55,"props":357,"children":358},{},[359],{"type":39,"tag":59,"props":360,"children":361},{},[362],{"type":45,"value":363},"Discrepancies between agents are valuable signals, not failures.",{"type":39,"tag":55,"props":365,"children":366},{},[367],{"type":45,"value":368},"When two agents disagree:",{"type":39,"tag":370,"props":371,"children":372},"ol",{},[373,383,393,403,413],{"type":39,"tag":83,"props":374,"children":375},{},[376,381],{"type":39,"tag":59,"props":377,"children":378},{},[379],{"type":45,"value":380},"Never reconcile by picking the more plausible answer",{"type":45,"value":382}," — this is the no-fiat rule",{"type":39,"tag":83,"props":384,"children":385},{},[386,391],{"type":39,"tag":59,"props":387,"children":388},{},[389],{"type":45,"value":390},"Assign a tracking ID",{"type":45,"value":392}," (D-01, D-02, D-NN)",{"type":39,"tag":83,"props":394,"children":395},{},[396,401],{"type":39,"tag":59,"props":397,"children":398},{},[399],{"type":45,"value":400},"Record both claims",{"type":45,"value":402}," with full evidence citations",{"type":39,"tag":83,"props":404,"children":405},{},[406,411],{"type":39,"tag":59,"props":407,"children":408},{},[409],{"type":45,"value":410},"Mark OPEN",{"type":45,"value":412}," if unresolvable from available evidence",{"type":39,"tag":83,"props":414,"children":415},{},[416],{"type":45,"value":417},"Unresolved discrepancies become recommendations for the next wave",{"type":39,"tag":55,"props":419,"children":420},{},[421],{"type":45,"value":422},"A discrepancy marks exactly where design and reality have separated. Suppressing it destroys the investigation's most valuable finding.",{"type":39,"tag":114,"props":424,"children":425},{},[],{"type":39,"tag":48,"props":427,"children":429},{"id":428},"wave-structure",[430],{"type":45,"value":431},"Wave Structure",{"type":39,"tag":152,"props":433,"children":435},{"id":434},"wave-1-discovery",[436],{"type":45,"value":437},"Wave 1 — Discovery",{"type":39,"tag":55,"props":439,"children":440},{},[441,446],{"type":39,"tag":59,"props":442,"children":443},{},[444],{"type":45,"value":445},"Goal:",{"type":45,"value":447}," Cast a wide net. Identify patterns, mechanisms, and boundaries.",{"type":39,"tag":79,"props":449,"children":450},{},[451,456,461,473],{"type":39,"tag":83,"props":452,"children":453},{},[454],{"type":45,"value":455},"Dispatch triplicate teams per topic (code-tracer + behavior-observer + integration-mapper)",{"type":39,"tag":83,"props":457,"children":458},{},[459],{"type":45,"value":460},"Each team investigates independently with zero shared context",{"type":39,"tag":83,"props":462,"children":463},{},[464,466,471],{"type":45,"value":465},"DOT diagrams are ",{"type":39,"tag":59,"props":467,"children":468},{},[469],{"type":45,"value":470},"discovery tools",{"type":45,"value":472},", not just outputs — draw what you find",{"type":39,"tag":83,"props":474,"children":475},{},[476],{"type":45,"value":477},"After all teams complete, lead-investigator reconciles findings across teams",{"type":39,"tag":152,"props":479,"children":481},{"id":480},"wave-2-verification",[482],{"type":45,"value":483},"Wave 2 — Verification",{"type":39,"tag":55,"props":485,"children":486},{},[487,491],{"type":39,"tag":59,"props":488,"children":489},{},[490],{"type":45,"value":445},{"type":45,"value":492}," Focused deep dives to resolve discrepancies from Wave 1.",{"type":39,"tag":79,"props":494,"children":495},{},[496,501,511],{"type":39,"tag":83,"props":497,"children":498},{},[499],{"type":45,"value":500},"Targeted investigation of specific D-NN discrepancy items",{"type":39,"tag":83,"props":502,"children":503},{},[504,509],{"type":39,"tag":143,"props":505,"children":507},{"className":506},[],[508],{"type":45,"value":226},{"type":45,"value":510}," with file:line citations is required for every finding",{"type":39,"tag":83,"props":512,"children":513},{},[514],{"type":45,"value":515},"Wave 2 produces RESOLVED \u002F PARTIALLY RESOLVED \u002F UNRESOLVED verdicts",{"type":39,"tag":152,"props":517,"children":519},{"id":518},"wave-3-adversarial-optional",[520],{"type":45,"value":521},"Wave 3 — Adversarial (optional)",{"type":39,"tag":55,"props":523,"children":524},{},[525,529],{"type":39,"tag":59,"props":526,"children":527},{},[528],{"type":45,"value":445},{"type":45,"value":530}," Execution-based stress testing of consolidated findings.",{"type":39,"tag":79,"props":532,"children":533},{},[534,546,558,563],{"type":39,"tag":83,"props":535,"children":536},{},[537,539,544],{"type":45,"value":538},"Dispatches ",{"type":39,"tag":59,"props":540,"children":541},{},[542],{"type":45,"value":543},"antagonist agents",{"type":45,"value":545}," with no prior findings context",{"type":39,"tag":83,"props":547,"children":548},{},[549,551,556],{"type":45,"value":550},"Writes test scripts and ",{"type":39,"tag":59,"props":552,"children":553},{},[554],{"type":45,"value":555},"runs actual code",{"type":45,"value":557}," to prove or disprove claims",{"type":39,"tag":83,"props":559,"children":560},{},[561],{"type":45,"value":562},"Code reading identifies mechanisms; execution proves impact",{"type":39,"tag":83,"props":564,"children":565},{},[566],{"type":45,"value":567},"Claims that survive adversarial testing are verified; refuted claims are corrected",{"type":39,"tag":114,"props":569,"children":570},{},[],{"type":39,"tag":48,"props":572,"children":574},{"id":573},"fidelity-tiers",[575],{"type":45,"value":576},"Fidelity Tiers",{"type":39,"tag":55,"props":578,"children":579},{},[580],{"type":45,"value":581},"Choose fidelity based on investigation depth required:",{"type":39,"tag":583,"props":584,"children":585},"table",{},[586,610],{"type":39,"tag":587,"props":588,"children":589},"thead",{},[590],{"type":39,"tag":591,"props":592,"children":593},"tr",{},[594,600,605],{"type":39,"tag":595,"props":596,"children":597},"th",{},[598],{"type":45,"value":599},"Tier",{"type":39,"tag":595,"props":601,"children":602},{},[603],{"type":45,"value":604},"Agents",{"type":39,"tag":595,"props":606,"children":607},{},[608],{"type":45,"value":609},"Use When",{"type":39,"tag":611,"props":612,"children":613},"tbody",{},[614,636,657],{"type":39,"tag":591,"props":615,"children":616},{},[617,626,631],{"type":39,"tag":618,"props":619,"children":620},"td",{},[621],{"type":39,"tag":59,"props":622,"children":623},{},[624],{"type":45,"value":625},"quick",{"type":39,"tag":618,"props":627,"children":628},{},[629],{"type":45,"value":630},"1 agent: code-tracer only",{"type":39,"tag":618,"props":632,"children":633},{},[634],{"type":45,"value":635},"Fast initial scan, time-constrained",{"type":39,"tag":591,"props":637,"children":638},{},[639,647,652],{"type":39,"tag":618,"props":640,"children":641},{},[642],{"type":39,"tag":59,"props":643,"children":644},{},[645],{"type":45,"value":646},"standard",{"type":39,"tag":618,"props":648,"children":649},{},[650],{"type":45,"value":651},"2 agents: code-tracer + integration-mapper",{"type":39,"tag":618,"props":653,"children":654},{},[655],{"type":45,"value":656},"Default for most investigations",{"type":39,"tag":591,"props":658,"children":659},{},[660,668,673],{"type":39,"tag":618,"props":661,"children":662},{},[663],{"type":39,"tag":59,"props":664,"children":665},{},[666],{"type":45,"value":667},"deep",{"type":39,"tag":618,"props":669,"children":670},{},[671],{"type":45,"value":672},"3 agents: full triplicate (all three)",{"type":39,"tag":618,"props":674,"children":675},{},[676],{"type":45,"value":677},"High-stakes, unfamiliar, or complex systems",{"type":39,"tag":55,"props":679,"children":680},{},[681,683,687,689,695],{"type":45,"value":682},"Default fidelity is ",{"type":39,"tag":59,"props":684,"children":685},{},[686],{"type":45,"value":646},{"type":45,"value":688},". Use the ",{"type":39,"tag":143,"props":690,"children":692},{"className":691},[],[693],{"type":45,"value":694},"fidelity",{"type":45,"value":696}," context variable to override.",{"type":39,"tag":114,"props":698,"children":699},{},[],{"type":39,"tag":48,"props":701,"children":703},{"id":702},"investigation-frames-lens",[704],{"type":45,"value":705},"Investigation Frames (Lens)",{"type":39,"tag":55,"props":707,"children":708},{},[709,711,717],{"type":45,"value":710},"The investigation ",{"type":39,"tag":143,"props":712,"children":714},{"className":713},[],[715],{"type":45,"value":716},"lens",{"type":45,"value":718}," context variable focuses agent attention:",{"type":39,"tag":583,"props":720,"children":721},{},[722,743],{"type":39,"tag":587,"props":723,"children":724},{},[725],{"type":39,"tag":591,"props":726,"children":727},{},[728,733,738],{"type":39,"tag":595,"props":729,"children":730},{},[731],{"type":45,"value":732},"Frame",{"type":39,"tag":595,"props":734,"children":735},{},[736],{"type":45,"value":737},"Lens Value",{"type":39,"tag":595,"props":739,"children":740},{},[741],{"type":45,"value":742},"Focus",{"type":39,"tag":611,"props":744,"children":745},{},[746,768,790,812,834],{"type":39,"tag":591,"props":747,"children":748},{},[749,754,763],{"type":39,"tag":618,"props":750,"children":751},{},[752],{"type":45,"value":753},"Architecture",{"type":39,"tag":618,"props":755,"children":756},{},[757],{"type":39,"tag":143,"props":758,"children":760},{"className":759},[],[761],{"type":45,"value":762},"architecture",{"type":39,"tag":618,"props":764,"children":765},{},[766],{"type":45,"value":767},"System structure, module boundaries, coupling",{"type":39,"tag":591,"props":769,"children":770},{},[771,776,785],{"type":39,"tag":618,"props":772,"children":773},{},[774],{"type":45,"value":775},"Security",{"type":39,"tag":618,"props":777,"children":778},{},[779],{"type":39,"tag":143,"props":780,"children":782},{"className":781},[],[783],{"type":45,"value":784},"security",{"type":39,"tag":618,"props":786,"children":787},{},[788],{"type":45,"value":789},"Attack surface, data flow, trust boundaries",{"type":39,"tag":591,"props":791,"children":792},{},[793,798,807],{"type":39,"tag":618,"props":794,"children":795},{},[796],{"type":45,"value":797},"Quality",{"type":39,"tag":618,"props":799,"children":800},{},[801],{"type":39,"tag":143,"props":802,"children":804},{"className":803},[],[805],{"type":45,"value":806},"quality",{"type":39,"tag":618,"props":808,"children":809},{},[810],{"type":45,"value":811},"Code health, anti-patterns, technical debt",{"type":39,"tag":591,"props":813,"children":814},{},[815,820,829],{"type":39,"tag":618,"props":816,"children":817},{},[818],{"type":45,"value":819},"Onboarding",{"type":39,"tag":618,"props":821,"children":822},{},[823],{"type":39,"tag":143,"props":824,"children":826},{"className":825},[],[827],{"type":45,"value":828},"onboarding",{"type":39,"tag":618,"props":830,"children":831},{},[832],{"type":45,"value":833},"Entry points, key concepts, learning path",{"type":39,"tag":591,"props":835,"children":836},{},[837,841,849],{"type":39,"tag":618,"props":838,"children":839},{},[840],{"type":45,"value":20},{"type":39,"tag":618,"props":842,"children":843},{},[844],{"type":39,"tag":143,"props":845,"children":847},{"className":846},[],[848],{"type":45,"value":21},{"type":39,"tag":618,"props":850,"children":851},{},[852],{"type":45,"value":853},"Failure modes, error paths, state transitions",{"type":39,"tag":114,"props":855,"children":856},{},[],{"type":39,"tag":48,"props":858,"children":860},{"id":859},"artifact-strategy",[861],{"type":45,"value":862},"Artifact Strategy",{"type":39,"tag":55,"props":864,"children":865},{},[866,868,873],{"type":45,"value":867},"Each agent writes to an ",{"type":39,"tag":59,"props":869,"children":870},{},[871],{"type":45,"value":872},"isolated subdirectory",{"type":45,"value":874}," — no shared mutable state between agents.",{"type":39,"tag":876,"props":877,"children":881},"pre",{"className":878,"code":880,"language":45},[879],"language-text",".discovery\u002F\n  investigation\u002F\n    modules\u002F\n      {slug}\u002F\n        agents\u002F\n          code-tracer\u002F\n            findings.md\n            evidence.md\n            diagram.dot\n            unknowns.md\n          behavior-observer\u002F\n            catalog.md\n            patterns.md\n            findings.md\n            diagram.dot\n          integration-mapper\u002F\n            integration-map.md\n            findings.md\n            diagram.dot\n  output\u002F\n    combined.md\n    overview.dot\n    synthesis.md\n",[882],{"type":39,"tag":143,"props":883,"children":885},{"__ignoreMap":884},"",[886],{"type":45,"value":880},{"type":39,"tag":55,"props":888,"children":889},{},[890,892,897],{"type":45,"value":891},"Artifacts are written ",{"type":39,"tag":59,"props":893,"children":894},{},[895],{"type":45,"value":896},"before",{"type":45,"value":898}," reconciliation. The lead-investigator reads all artifacts after the wave completes and produces the reconciliation document.",{"type":39,"tag":114,"props":900,"children":901},{},[],{"type":39,"tag":48,"props":903,"children":905},{"id":904},"deep-reference",[906],{"type":45,"value":907},"Deep Reference",{"type":39,"tag":55,"props":909,"children":910},{},[911],{"type":45,"value":912},"For full protocol specifications, see:",{"type":39,"tag":79,"props":914,"children":915},{},[916,927,938,949],{"type":39,"tag":83,"props":917,"children":918},{},[919,925],{"type":39,"tag":143,"props":920,"children":922},{"className":921},[],[923],{"type":45,"value":924},"@parallax-discovery:context\u002Fmethodology.md",{"type":45,"value":926}," — complete methodology reference",{"type":39,"tag":83,"props":928,"children":929},{},[930,936],{"type":39,"tag":143,"props":931,"children":933},{"className":932},[],[934],{"type":45,"value":935},"@parallax-discovery:context\u002Ftriplicate-pattern.md",{"type":45,"value":937}," — triplicate team patterns",{"type":39,"tag":83,"props":939,"children":940},{},[941,947],{"type":39,"tag":143,"props":942,"children":944},{"className":943},[],[945],{"type":45,"value":946},"@parallax-discovery:context\u002Fartifact-strategy.md",{"type":45,"value":948}," — artifact directory conventions",{"type":39,"tag":83,"props":950,"children":951},{},[952,958],{"type":39,"tag":143,"props":953,"children":955},{"className":954},[],[956],{"type":45,"value":957},"@parallax-discovery:context\u002Fwave-protocol.md",{"type":45,"value":959}," — wave execution protocol",{"items":961,"total":1034},[962,977,988,1001,1017,1028],{"slug":963,"name":963,"fn":964,"description":965,"org":966,"tags":967,"stars":22,"repoUrl":23,"updatedAt":976},"dot-as-analysis","analyze systems by reconciling DOT diagrams","Use when analyzing a system to surface hidden issues — draw what you believe exists, then reconcile against what actually exists",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[968,969,972,975],{"name":13,"slug":14,"type":15},{"name":970,"slug":971,"type":15},"Diagrams","diagrams",{"name":973,"slug":974,"type":15},"Graphviz","graphviz",{"name":9,"slug":8,"type":15},"2026-04-06T18:37:07.174813",{"slug":978,"name":978,"fn":979,"description":980,"org":981,"tags":982,"stars":22,"repoUrl":23,"updatedAt":987},"dot-graph-intelligence","analyze graph structures programmatically","Use when you need programmatic graph structure analysis — reachability, cycles, critical paths, and diffs without spending LLM tokens on structural questions code can answer",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[983,984],{"name":13,"slug":14,"type":15},{"name":985,"slug":986,"type":15},"Graph Analysis","graph-analysis","2026-04-06T18:37:09.744416",{"slug":989,"name":989,"fn":990,"description":991,"org":992,"tags":993,"stars":22,"repoUrl":23,"updatedAt":1000},"dot-patterns","provide DOT templates for common diagrams","Use when you need copy-paste DOT templates for common diagram types — start from a working pattern rather than blank canvas",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[994,995,998,999],{"name":970,"slug":971,"type":15},{"name":996,"slug":997,"type":15},"Documentation","documentation",{"name":973,"slug":974,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:37:04.633419",{"slug":1002,"name":1002,"fn":1003,"description":1004,"org":1005,"tags":1006,"stars":22,"repoUrl":23,"updatedAt":1016},"dot-quality","enforce quality standards on DOT diagrams","Use when enforcing quality standards on DOT diagrams — checking completeness, structure, and visual clarity before sharing or committing",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1007,1008,1009,1010,1013],{"name":970,"slug":971,"type":15},{"name":996,"slug":997,"type":15},{"name":973,"slug":974,"type":15},{"name":1011,"slug":1012,"type":15},"QA","qa",{"name":1014,"slug":1015,"type":15},"Visual Design","visual-design","2026-04-06T18:37:03.368919",{"slug":1018,"name":1018,"fn":1019,"description":1020,"org":1021,"tags":1022,"stars":22,"repoUrl":23,"updatedAt":1027},"dot-syntax","provide DOT and Graphviz syntax reference","Use when writing or reading DOT\u002FGraphviz code and needing quick syntax reference — node declarations, edge syntax, attributes, subgraphs, HTML labels, and common gotchas",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1023,1024,1025,1026],{"name":970,"slug":971,"type":15},{"name":996,"slug":997,"type":15},{"name":973,"slug":974,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:37:05.896668",{"slug":4,"name":4,"fn":5,"description":6,"org":1029,"tags":1030,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1031,1032,1033],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},6,{"items":1036,"total":1228},[1037,1059,1079,1100,1113,1130,1141,1154,1169,1184,1203,1216],{"slug":1038,"name":1038,"fn":1039,"description":1040,"org":1041,"tags":1042,"stars":1056,"repoUrl":1057,"updatedAt":1058},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1043,1046,1049,1050,1053],{"name":1044,"slug":1045,"type":15},"Engineering","engineering",{"name":1047,"slug":1048,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1051,"slug":1052,"type":15},"Project Management","project-management",{"name":1054,"slug":1055,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1060,"name":1060,"fn":1061,"description":1062,"org":1063,"tags":1064,"stars":1076,"repoUrl":1077,"updatedAt":1078},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1065,1068,1070,1073],{"name":1066,"slug":1067,"type":15},".NET","net",{"name":604,"slug":1069,"type":15},"agents",{"name":1071,"slug":1072,"type":15},"Azure","azure",{"name":1074,"slug":1075,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1080,"name":1080,"fn":1081,"description":1082,"org":1083,"tags":1084,"stars":1076,"repoUrl":1077,"updatedAt":1099},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1085,1088,1089,1092,1095,1096],{"name":1086,"slug":1087,"type":15},"Analytics","analytics",{"name":1071,"slug":1072,"type":15},{"name":1090,"slug":1091,"type":15},"Data Analysis","data-analysis",{"name":1093,"slug":1094,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1097,"slug":1098,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1101,"name":1101,"fn":1102,"description":1103,"org":1104,"tags":1105,"stars":1076,"repoUrl":1077,"updatedAt":1112},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1106,1109,1110,1111],{"name":1107,"slug":1108,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1071,"slug":1072,"type":15},{"name":1093,"slug":1094,"type":15},{"name":775,"slug":784,"type":15},"2026-07-07T06:53:31.293235",{"slug":1114,"name":1114,"fn":1115,"description":1116,"org":1117,"tags":1118,"stars":1076,"repoUrl":1077,"updatedAt":1129},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1119,1120,1123,1124,1125,1128],{"name":1071,"slug":1072,"type":15},{"name":1121,"slug":1122,"type":15},"Compliance","compliance",{"name":1074,"slug":1075,"type":15},{"name":9,"slug":8,"type":15},{"name":1126,"slug":1127,"type":15},"Python","python",{"name":775,"slug":784,"type":15},"2026-07-18T05:14:23.017504",{"slug":1131,"name":1131,"fn":1132,"description":1133,"org":1134,"tags":1135,"stars":1076,"repoUrl":1077,"updatedAt":1140},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1136,1137,1138,1139],{"name":1086,"slug":1087,"type":15},{"name":1071,"slug":1072,"type":15},{"name":1074,"slug":1075,"type":15},{"name":1126,"slug":1127,"type":15},"2026-07-31T05:54:29.068751",{"slug":1142,"name":1142,"fn":1143,"description":1144,"org":1145,"tags":1146,"stars":1076,"repoUrl":1077,"updatedAt":1153},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1147,1150,1151,1152],{"name":1148,"slug":1149,"type":15},"API Development","api-development",{"name":1071,"slug":1072,"type":15},{"name":9,"slug":8,"type":15},{"name":1126,"slug":1127,"type":15},"2026-07-18T05:14:16.988376",{"slug":1155,"name":1155,"fn":1156,"description":1157,"org":1158,"tags":1159,"stars":1076,"repoUrl":1077,"updatedAt":1168},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1160,1161,1164,1167],{"name":1071,"slug":1072,"type":15},{"name":1162,"slug":1163,"type":15},"Computer Vision","computer-vision",{"name":1165,"slug":1166,"type":15},"Images","images",{"name":1126,"slug":1127,"type":15},"2026-07-18T05:14:18.007737",{"slug":1170,"name":1170,"fn":1171,"description":1172,"org":1173,"tags":1174,"stars":1076,"repoUrl":1077,"updatedAt":1183},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1175,1176,1179,1182],{"name":1071,"slug":1072,"type":15},{"name":1177,"slug":1178,"type":15},"Configuration","configuration",{"name":1180,"slug":1181,"type":15},"Feature Flags","feature-flags",{"name":1093,"slug":1094,"type":15},"2026-07-03T16:32:01.278468",{"slug":1185,"name":1185,"fn":1186,"description":1187,"org":1188,"tags":1189,"stars":1076,"repoUrl":1077,"updatedAt":1202},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1190,1193,1196,1199],{"name":1191,"slug":1192,"type":15},"Cosmos DB","cosmos-db",{"name":1194,"slug":1195,"type":15},"Database","database",{"name":1197,"slug":1198,"type":15},"NoSQL","nosql",{"name":1200,"slug":1201,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1204,"name":1204,"fn":1186,"description":1205,"org":1206,"tags":1207,"stars":1076,"repoUrl":1077,"updatedAt":1215},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1208,1209,1210,1211,1212],{"name":1191,"slug":1192,"type":15},{"name":1194,"slug":1195,"type":15},{"name":9,"slug":8,"type":15},{"name":1197,"slug":1198,"type":15},{"name":1213,"slug":1214,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1217,"name":1217,"fn":1218,"description":1219,"org":1220,"tags":1221,"stars":1076,"repoUrl":1077,"updatedAt":1227},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1222,1223,1224,1225,1226],{"name":1071,"slug":1072,"type":15},{"name":1191,"slug":1192,"type":15},{"name":1194,"slug":1195,"type":15},{"name":1093,"slug":1094,"type":15},{"name":1197,"slug":1198,"type":15},"2026-05-13T06:14:17.582229",267]