[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7APV3CPDF3AHVJP4G41C7F3":3,"skill-same:01M7APV3CPDF3AHVJP4G41C7F3":51},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M7APV3CPDF3AHVJP4G41C7F3","atlas-scatter",null,"Phase L sub-mode (Scatter-Gather Locate) — TRANCE-gated parallel fan-out of read-only Locate probes across topologically-disjoint module clusters, each in a clean-context subagent, merged back into findings.md via a deterministic dedup contract. Never default; serial Locate is the standard path. Use ONLY when map.md surface is large (>5 modules OR >25 files) AND ≥2 disjoint DECISION_TARGET sub-questions exist. Trigger phrases — \"audit across all modules\", \"trace these N independent flows\", \"scout this large surface in parallel\". Do NOT load for a single sub-question, tightly-coupled sub-questions, or a tight budget.","Rynaro\u002Fmagicite","Rynaro","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5271543?v=4","01M70CFYFMB316W23THVQAQ42M","Henrique A. Lavezzo","01M7APN2KCVWBNY727T57KR2ZJ",2,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002F.eidolons\u002Fatlas\u002Fskills\u002Fscatter\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: atlas-scatter\ndescription: Phase L sub-mode (Scatter-Gather Locate) — TRANCE-gated parallel fan-out of read-only Locate probes across topologically-disjoint module clusters, each in a clean-context subagent, merged back into findings.md via a deterministic dedup contract. Never default; serial Locate is the standard path. Use ONLY when map.md surface is large (>5 modules OR >25 files) AND ≥2 disjoint DECISION_TARGET sub-questions exist. Trigger phrases — \"audit across all modules\", \"trace these N independent flows\", \"scout this large surface in parallel\". Do NOT load for a single sub-question, tightly-coupled sub-questions, or a tight budget.\nallowed-tools: search_symbol graph_query search_text view_file test_dry_run memex_read\nmetadata:\n  methodology: ATLAS\n  phase: L\n---\n\n# SKILL: Scatter-Gather Locate (Phase L sub-mode)\n\n## When to use\n\n**Load when:** `map.md` is complete AND the activation trigger below fires.\nThis is the operationalized G1 TRANCE form of the diffuse scatter primitives\nalready in `skills\u002Flocate\u002FSKILL.md` (Operator pattern) and `PERSONA.md` P0 rule 7.\n\n**Unload when:** every sub-question has ≥1 merged finding at confidence ≥ M\nor a `GAP`, and the merged `findings.md` has entered the Phase A fold.\n\n**This mode does not add capability — it adds parallelism.** It is still\nread-only (I-1). Scatter never grants a write tool, never resets the budget,\nand never escapes a refusal gate. Branch budgets sum to ≤ the parent budget.\n\n---\n\n## Activation trigger (both-flags rule — TRANCE-gated)\n\nScatter-Gather is **GATED, never default.** Standard-tier Locate stays serial.\nBoth flags MUST hold (cortex C5 + C6). If either is false, the mode is inert\nand you run the serial probe ladder in `skills\u002Flocate\u002FSKILL.md`.\n\n| Flag | Source | Threshold |\n|------|--------|-----------|\n| Surface size (C5) | `map.md` `MAP-MODULES` \u002F file count | **> 5 modules OR > 25 files** in scope |\n| Disjoint sub-questions (C6) | `mission.md` `DECISION_TARGET` decomposition | **≥ 2 topologically-disjoint** sub-questions (different modules \u002F concerns) |\n\nEither flag alone → stay **standard tier** (serial Locate). Both flags →\nescalate to the Scatter-Gather sub-mode.\n\n### When NOT to scatter (carry-through from locate.md)\n\n- Only one sub-question exists.\n- Sub-questions are tightly coupled (one's answer feeds another's probe).\n- Budget is already tight — coordination overhead outweighs the parallel win.\n\nIn any of these, **do not scatter.** Run serial Locate.\n\n---\n\n## Fan-out plan (bounded, deterministic partition)\n\n1. **Derive the partition deterministically.** Run a single parent-side\n   `graph_query(\"callgraph_slice: \u003Cscope>\")` (or, if unavailable, partition by\n   `MAP-MODULES` centrality clusters from `map.md`). **Do not LLM-guess the\n   clustering** — the partition is a structural fact, not an inference\n   (see `skills\u002Flocate\u002FSKILL.md` Tier-2 graph-first decomposition).\n2. **One sub-mission per disjoint cluster**, mapped 1:1 to a disjoint\n   sub-question where possible.\n3. **Hard cap: 5 branches** (cortex C1; orchestrator-worker sweet spot ~5).\n   If the partition yields > 5 clusters, merge the lowest-centrality clusters\n   until N ≤ 5.\n4. **Per-branch budget = `parent_remaining \u002F N`.** Budgets are partitioned,\n   not multiplied. The sum of branch budgets MUST NOT exceed the parent's\n   remaining budget.\n\n**Diversity is scope-diversity, not redundancy.** Branches probe *different*\nmodules. Do **not** spawn N identical probes of the same module — quality of\nthe partition dominates redundant diversity.\n\n---\n\n## Sub-mission spec (Operator pattern, clean context)\n\nEach branch is an **ephemeral clean-context subagent** seeded with ONLY its\nscope-slice + one sub-question + its budget. The clean context is the point:\nit prevents trajectory self-conditioning (no branch sees another branch's\npath). Reuses the `locate.md` `sub_mission` YAML, tightened:\n\n```yaml\nsub_mission:\n  parent_mission_id: \u003CMISSION-ID>\n  branch_id: \u003C1..N>\n  question: \u003Cone disjoint sub-question>\n  scope: \u003Cpath globs for this cluster only>\n  budget:\n    max_tool_calls: \u003Cparent_remaining \u002F N>\n    max_tokens_input: \u003Cparent_remaining \u002F N>\n  map_excerpt: \u003CONLY the MAP-MODULES + MAP-GRAPH slice for this cluster>\n```\n\nEach branch runs the **Tier 1–5 probe ladder** (`skills\u002Flocate\u002FSKILL.md`) within its\nscope and returns **exactly one structured object — no transcript** (I-4):\n\n```yaml\nreturn:\n  branch_id: \u003C1..N>\n  findings: [FINDING-XXX, ...]   # branch-local IDs\n  gaps: [GAP-XXX, ...]\n  ruled_out: [\u003Cnegative result notes>, ...]\n  telemetry: {tokens_used, tool_calls}\n  # NO transcript. NO raw tool outputs. Excerpts go to Memex.\n```\n\nThe parent never ingests branch transcripts. Branch working state is destroyed\non return.\n\n---\n\n## Merge + dedup contract (two-stage bounded gather)\n\n### Stage 1 — Gather & dedup (parent-side, deterministic)\n\n1. **Renumber to global IDs.** Branch-local `FINDING-XXX` \u002F `GAP-XXX` ids are\n   renumbered to a global namespace to avoid cross-branch collision.\n2. **Dedup on mechanical fields first.** Merge two findings into one when they\n   match on **(path, overlapping line-range)**; use **claim-equivalence** only\n   as a tiebreak. The merged finding keeps the **highest** confidence tier and\n   **unions** the evidence anchors and `ruled_out` notes.\n3. **Contradictions are NOT silently merged.** When two branches make\n   conflicting claims about the same anchor, emit a single finding marked\n   **`[DISPUTED]`** (D7) carrying both claims, and drop it to **confidence L**\n   pending a follow-up probe. Do not pick a winner mechanically.\n\n### Stage 2 — Fold (reuse existing machinery)\n\nThe merged `findings.md` flows **unchanged** into the existing Phase A\nclean-context fold (`skills\u002Fabstract\u002FSKILL.md`). **No new aggregator is built** —\nthe AgentFold subagent already aggregates; scatter merely feeds it a merged\nlist instead of a serial one.\n\n---\n\n## Stop condition (explicit — D5)\n\nScatter completes when **every sub-question has ≥1 merged finding at\nconfidence ≥ M OR a `GAP`.** Scatter does **not** re-spawn: max recursion\nremains 1 (`PERSONA.md` P0 rule 9). A branch that returns only `L`\u002Fempty triple\nrecords a `GAP`; the parent does not re-scatter that cluster.\n\n---\n\n## Telemetry\n\nRecord at the gather edge:\n\n```\nscatter | branches: N | fan_out_ratio: \u003Csum(branch_tokens)\u002Fserial_estimate>\n        | dedup_count: \u003Cmerged-away> | disputed: \u003Ccount> | tool_calls: \u003Csum>\n```\n\n`fan_out_ratio` and `dedup_count` are the feedback signals: a low dedup count\non overlapping scopes means the partition was too coarse; a high one means the\nclusters were not actually disjoint (revisit the trigger).\n\n---\n\n## Exit gate\n\n- [ ] Both activation flags verified against `map.md` + `mission.md` before\n      scattering (else serial Locate).\n- [ ] Partition derived from a deterministic graph\u002Fcentrality query, ≤ 5 branches.\n- [ ] Each branch ran clean-context, returned one object, no transcript (I-4).\n- [ ] Per-branch budgets sum to ≤ parent remaining budget.\n- [ ] Merged `findings.md`: global ids, dedup on path\u002Fline, `[DISPUTED]` on\n      contradiction (never silent-merge).\n- [ ] Every sub-question has a finding ≥ M or a `GAP`; no re-scatter.\n- [ ] Merged findings entered the Phase A fold; telemetry recorded.\n","# SKILL: Scatter-Gather Locate (Phase L sub-mode)\n\n## When to use\n\n**Load when:** `map.md` is complete AND the activation trigger below fires.\nThis is the operationalized G1 TRANCE form of the diffuse scatter primitives\nalready in `skills\u002Flocate\u002FSKILL.md` (Operator pattern) and `PERSONA.md` P0 rule 7.\n\n**Unload when:** every sub-question has ≥1 merged finding at confidence ≥ M\nor a `GAP`, and the merged `findings.md` has entered the Phase A fold.\n\n**This mode does not add capability — it adds parallelism.** It is still\nread-only (I-1). Scatter never grants a write tool, never resets the budget,\nand never escapes a refusal gate. Branch budgets sum to ≤ the parent budget.\n\n---\n\n## Activation trigger (both-flags rule — TRANCE-gated)\n\nScatter-Gather is **GATED, never default.** Standard-tier Locate stays serial.\nBoth flags MUST hold (cortex C5 + C6). If either is false, the mode is inert\nand you run the serial probe ladder in `skills\u002Flocate\u002FSKILL.md`.\n\n| Flag | Source | Threshold |\n|------|--------|-----------|\n| Surface size (C5) | `map.md` `MAP-MODULES` \u002F file count | **> 5 modules OR > 25 files** in scope |\n| Disjoint sub-questions (C6) | `mission.md` `DECISION_TARGET` decomposition | **≥ 2 topologically-disjoint** sub-questions (different modules \u002F concerns) |\n\nEither flag alone → stay **standard tier** (serial Locate). Both flags →\nescalate to the Scatter-Gather sub-mode.\n\n### When NOT to scatter (carry-through from locate.md)\n\n- Only one sub-question exists.\n- Sub-questions are tightly coupled (one's answer feeds another's probe).\n- Budget is already tight — coordination overhead outweighs the parallel win.\n\nIn any of these, **do not scatter.** Run serial Locate.\n\n---\n\n## Fan-out plan (bounded, deterministic partition)\n\n1. **Derive the partition deterministically.** Run a single parent-side\n   `graph_query(\"callgraph_slice: \u003Cscope>\")` (or, if unavailable, partition by\n   `MAP-MODULES` centrality clusters from `map.md`). **Do not LLM-guess the\n   clustering** — the partition is a structural fact, not an inference\n   (see `skills\u002Flocate\u002FSKILL.md` Tier-2 graph-first decomposition).\n2. **One sub-mission per disjoint cluster**, mapped 1:1 to a disjoint\n   sub-question where possible.\n3. **Hard cap: 5 branches** (cortex C1; orchestrator-worker sweet spot ~5).\n   If the partition yields > 5 clusters, merge the lowest-centrality clusters\n   until N ≤ 5.\n4. **Per-branch budget = `parent_remaining \u002F N`.** Budgets are partitioned,\n   not multiplied. The sum of branch budgets MUST NOT exceed the parent's\n   remaining budget.\n\n**Diversity is scope-diversity, not redundancy.** Branches probe *different*\nmodules. Do **not** spawn N identical probes of the same module — quality of\nthe partition dominates redundant diversity.\n\n---\n\n## Sub-mission spec (Operator pattern, clean context)\n\nEach branch is an **ephemeral clean-context subagent** seeded with ONLY its\nscope-slice + one sub-question + its budget. The clean context is the point:\nit prevents trajectory self-conditioning (no branch sees another branch's\npath). Reuses the `locate.md` `sub_mission` YAML, tightened:\n\n```yaml\nsub_mission:\n  parent_mission_id: \u003CMISSION-ID>\n  branch_id: \u003C1..N>\n  question: \u003Cone disjoint sub-question>\n  scope: \u003Cpath globs for this cluster only>\n  budget:\n    max_tool_calls: \u003Cparent_remaining \u002F N>\n    max_tokens_input: \u003Cparent_remaining \u002F N>\n  map_excerpt: \u003CONLY the MAP-MODULES + MAP-GRAPH slice for this cluster>\n```\n\nEach branch runs the **Tier 1–5 probe ladder** (`skills\u002Flocate\u002FSKILL.md`) within its\nscope and returns **exactly one structured object — no transcript** (I-4):\n\n```yaml\nreturn:\n  branch_id: \u003C1..N>\n  findings: [FINDING-XXX, ...]   # branch-local IDs\n  gaps: [GAP-XXX, ...]\n  ruled_out: [\u003Cnegative result notes>, ...]\n  telemetry: {tokens_used, tool_calls}\n  # NO transcript. NO raw tool outputs. Excerpts go to Memex.\n```\n\nThe parent never ingests branch transcripts. Branch working state is destroyed\non return.\n\n---\n\n## Merge + dedup contract (two-stage bounded gather)\n\n### Stage 1 — Gather & dedup (parent-side, deterministic)\n\n1. **Renumber to global IDs.** Branch-local `FINDING-XXX` \u002F `GAP-XXX` ids are\n   renumbered to a global namespace to avoid cross-branch collision.\n2. **Dedup on mechanical fields first.** Merge two findings into one when they\n   match on **(path, overlapping line-range)**; use **claim-equivalence** only\n   as a tiebreak. The merged finding keeps the **highest** confidence tier and\n   **unions** the evidence anchors and `ruled_out` notes.\n3. **Contradictions are NOT silently merged.** When two branches make\n   conflicting claims about the same anchor, emit a single finding marked\n   **`[DISPUTED]`** (D7) carrying both claims, and drop it to **confidence L**\n   pending a follow-up probe. Do not pick a winner mechanically.\n\n### Stage 2 — Fold (reuse existing machinery)\n\nThe merged `findings.md` flows **unchanged** into the existing Phase A\nclean-context fold (`skills\u002Fabstract\u002FSKILL.md`). **No new aggregator is built** —\nthe AgentFold subagent already aggregates; scatter merely feeds it a merged\nlist instead of a serial one.\n\n---\n\n## Stop condition (explicit — D5)\n\nScatter completes when **every sub-question has ≥1 merged finding at\nconfidence ≥ M OR a `GAP`.** Scatter does **not** re-spawn: max recursion\nremains 1 (`PERSONA.md` P0 rule 9). A branch that returns only `L`\u002Fempty triple\nrecords a `GAP`; the parent does not re-scatter that cluster.\n\n---\n\n## Telemetry\n\nRecord at the gather edge:\n\n```\nscatter | branches: N | fan_out_ratio: \u003Csum(branch_tokens)\u002Fserial_estimate>\n        | dedup_count: \u003Cmerged-away> | disputed: \u003Ccount> | tool_calls: \u003Csum>\n```\n\n`fan_out_ratio` and `dedup_count` are the feedback signals: a low dedup count\non overlapping scopes means the partition was too coarse; a high one means the\nclusters were not actually disjoint (revisit the trigger).\n\n---\n\n## Exit gate\n\n- [ ] Both activation flags verified against `map.md` + `mission.md` before\n      scattering (else serial Locate).\n- [ ] Partition derived from a deterministic graph\u002Fcentrality query, ≤ 5 branches.\n- [ ] Each branch ran clean-context, returned one object, no transcript (I-4).\n- [ ] Per-branch budgets sum to ≤ parent remaining budget.\n- [ ] Merged `findings.md`: global ids, dedup on path\u002Fline, `[DISPUTED]` on\n      contradiction (never silent-merge).\n- [ ] Every sub-question has a finding ≥ M or a `GAP`; no re-scatter.\n- [ ] Merged findings entered the Phase A fold; telemetry recorded.\n",{"name":5,"metadata":24,"description":7,"allowed-tools":27},{"phase":25,"methodology":26},"L","ATLAS","search_symbol graph_query search_text view_file test_dry_run memex_read","main","38c3a82583abf9806de764f89ac0099ad690933a",".eidolons\u002Fatlas\u002Fskills\u002Fscatter",0,"https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite","https:\u002F\u002Fgithub.com\u002FRynaro","https:\u002F\u002Fhlavezzo.me","A Code Alchemist with a passion for weaving tales and inscribing transmutation circles in pure code.","2026-10-14 02:35:37",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add Rynaro\u002Fmagicite --skill atlas-scatter",{"tool":43,"command":44},"bunx","bunx skills add Rynaro\u002Fmagicite --skill atlas-scatter",{"tool":46,"command":47},"pnpm","pnpm dlx skills add Rynaro\u002Fmagicite --skill atlas-scatter","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002F.eidolons\u002Fatlas\u002Fskills\u002Fscatter\u002FSKILL.md",true,[],[52,59,66,73,80,87],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M7AQ4GHJQVV8TJBJ8T1V7ZQ9","wine-dxvk-cache-clear","Clear a stale DXVK shader cache that is causing graphical corruption in a\nWine or Proton game. Use when: a game shows corrupted textures or shader\nflicker that started after a driver or DXVK version change.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Ftoy-registry\u002Fskills\u002Fwine-dxvk-cache-clear\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":19},"01M7AQ4CY1NHSMY1HCZ91387YY","steam-download-region-fix","Fix a Steam client stuck at very low download speed by changing its\ndownload region. Use when: Steam downloads are far below the local\ninternet speed for every game, not just one.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Ftoy-registry\u002Fskills\u002Fsteam-download-region-fix\u002FSKILL.md",[],[],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M7AQ49P7Y0CDRSYMPVABX80K","proton-battleye-eac-toggle","Toggle BattlEye or Easy Anti-Cheat runtime support for a Steam Proton game.\nUse when: a multiplayer game refuses to launch with an anti-cheat error under Proton.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Ftoy-registry\u002Fskills\u002Fproton-battleye-eac-toggle\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":19},"01M7AQ45326FAP3X4Q86FK1X4N","vivi-verify-incoming","Load when reading any upstream artefact handed off to Vivi that carries a sibling .envelope.json. BLOCKING per ECL §6.2.2: the orchestrator MUST have verified the envelope's SHA-256 (eidolons verify-envelope --block \u002F eidolons run --verify) and recorded a verify_pass before dispatch. If no verify_pass exists for the message_id, or a verify_fail is present, REFUSE to process the payload and hand back to the orchestrator. Symmetric receiver gate — every Eidolon enforces it identically.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Fverify-incoming\u002FSKILL.md",[],[],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":19},"01M7AQ402861P0P3C2TEGFGMA1","vivi-parallel-tracks","Load ONLY under TRANCE authorization when the Plan phase yields N independent, non-overlapping implementation tracks (disjoint file sets). Operationalizes the TRANCE G4 form — parallel multi-track implementation in mandatory git-worktree isolation, max 5 clean-context tracks, a per-track verifier cascade, a non-fungible per-track ≤3 reflection budget, explicit stop conditions, and a single-threaded merge\u002Faggregation step. Absent TRANCE gating, Vivi runs exactly as today: single-track A→P→I→V→Δ\u002FR.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Fparallel-tracks\u002FSKILL.md",[],[],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":19},"01M7AQ3RH9BZF9ZMTC7VG5P7PB","vivi-methodology","Full Vivi cycle reference — A(nalyze) → P(lan) → I(mplement) → V(erify) → Δ(Delta)\u002FR(eflect). Use when the task is a non-trivial feature implementation in a brownfield codebase and you need the complete methodology reference: complexity routing, evidence-grounded planning rules, test-anchoring requirements, and failure-escalation thresholds.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fmagicite\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Fmethodology\u002FSKILL.md",[],[]]