> ## Documentation Index
> Fetch the complete documentation index at: https://vietbui.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Shared Task Queue (Cross-Worktree)

> A filesystem-based task inbox shared across all parallel worktree agents. Agents pull tasks at session start without a central dispatcher. The missing coordi…

# Shared Task Queue (Cross-Worktree)

A filesystem-based task inbox shared across all parallel worktree agents. Agents pull tasks at session start without a central dispatcher. The missing coordination layer between worktree isolation (filesystem) and the Pocock/SandCastle planner model (centralized assignment).

***

## The Problem

Worktrees are filesystem-isolated — a directory inside worktree A is not visible to worktree B. The natural instinct is to put the task inbox inside the repo, but that inbox lands inside each worktree's own checkout, so agents can't see each other's task state.

**The fix:** the inbox lives in the **main checkout**, not in any worktree. Every worktree can locate the main checkout via `git rev-parse --git-common-dir`, which always returns the path to the shared `.git` regardless of which worktree the agent is running in.

```bash theme={null}
MAIN_REPO=$(dirname "$(git rev-parse --git-common-dir)")
# Works from any worktree:
# .trees/TASK-001/ → MAIN_REPO = /path/to/main-repo
# .trees/TASK-002/ → MAIN_REPO = /path/to/main-repo (same)
```

***

## Directory Layout

```
main-repo/               ← main checkout (not a worktree)
  .agents/
    inbox/               ← unclaimed tasks; agents read from here
      TASK-001.md
      TASK-002.md
    claimed/             ← atomically moved here when agent claims
      TASK-003.md        ← filename includes agent identity
    done/                ← moved here on completion
      TASK-004.md
  .trees/                ← gitignored; all worktrees live here
    TASK-001/            ← worktree A
    TASK-002/            ← worktree B
```

`.agents/` can be committed (tasks become part of repo history) or gitignored (ephemeral, recreated per session). Committing is preferred: the task state is auditable and survives machine restarts.

***

## Atomic Claim Protocol

`mv` is atomic on POSIX for renames within the same filesystem. Two agents racing to claim the same task file: exactly one `mv` succeeds, the other gets `ENOENT`. No lock files, no polling loop for the lock.

```bash theme={null}
#!/usr/bin/env bash
# .agents/claim.sh

MAIN_REPO=$(dirname "$(git rev-parse --git-common-dir)")
INBOX="${MAIN_REPO}/.agents/inbox"
CLAIMED="${MAIN_REPO}/.agents/claimed"

for task_file in "${INBOX}"/*.md; do
  [ -f "$task_file" ] || { echo "inbox:empty"; exit 0; }
  task_name=$(basename "$task_file")
  # Include agent identity in claimed filename for debugging
  claimed_name="$(hostname)-$$-${task_name}"
  if mv "${task_file}" "${CLAIMED}/${claimed_name}" 2>/dev/null; then
    echo "claimed:${CLAIMED}/${claimed_name}"
    cat "${CLAIMED}/${claimed_name}"
    exit 0
  fi
  # mv failed = another agent got it first; try next
done
echo "inbox:empty"
```

### Completion

```bash theme={null}
# .agents/complete.sh <claimed-file-path>
CLAIMED_FILE="${1:?}"
MAIN_REPO=$(dirname "$(git rev-parse --git-common-dir)")
mv "${CLAIMED_FILE}" "${MAIN_REPO}/.agents/done/$(basename "${CLAIMED_FILE}")"
```

***

## Three Startup Layers

Pick the depth appropriate to your setup.

### Layer 1: CLAUDE.md instruction (lightest)

```markdown theme={null}
## Startup: Claim Your Task

Before doing anything else in a new session:
1. Run: bash "$(dirname "$(git rev-parse --git-common-dir)")/.agents/claim.sh"
2. If output starts with `claimed:` — read the file path; that's your task
3. If output is `inbox:empty` — check with the coordinator before continuing
4. On completion: run bash "$(dirname "$(git rev-parse --git-common-dir)")/.agents/complete.sh <path>"
```

All worktrees inherit this CLAUDE.md from the main branch. The instruction is always in context. Relies on the agent following it.

### Layer 2: Orchestrator pre-claims (reliable)

The orchestrator claims tasks before spawning Claude. Claude never sees the inbox — it receives its task in the initial prompt.

```bash theme={null}
#!/usr/bin/env bash
# spawn-agents.sh
MAIN_REPO=$(git rev-parse --show-toplevel)
INBOX="${MAIN_REPO}/.agents/inbox"
CLAIMED="${MAIN_REPO}/.agents/claimed"

for task_file in "${INBOX}"/*.md; do
  [ -f "$task_file" ] || continue
  task_name=$(basename "$task_file")
  mv "${task_file}" "${CLAIMED}/${task_name}" 2>/dev/null || continue

  WORKTREE="${MAIN_REPO}/.trees/${task_name%.md}"
  git worktree add -b "agent/${task_name%.md}" "$WORKTREE" origin/main
  git worktree lock --reason "Agent running" "$WORKTREE"
  cd "$WORKTREE" && npm ci --prefer-offline

  # Task baked into prompt — no inbox discovery needed in the agent
  claude --print "$(cat "${CLAIMED}/${task_name}")" &
  cd - > /dev/null
done
wait
```

This is the Pocock/SandCastle pattern extended with pre-claim. The planner populates inbox; the orchestrator claims and spawns.

### Layer 3: Skill (agent-pull model)

```markdown theme={null}
# ~/.claude/skills/claim-task/SKILL.md
---
name: claim-task
description: Claim the next available task from the shared inbox. Invoke at the start of any new session before doing any work.
allowed-tools: Bash
---

Run the claim script and read your task:

MAIN=$(dirname "$(git rev-parse --git-common-dir)")
bash "${MAIN}/.agents/claim.sh"

If output is `claimed:<path>`, read the task file at that path.
That is your complete work specification. Do not start work until you've claimed a task.
```

Per [Agent Skills](/concepts/agent-skills): skills are the right primitive for "do this at startup" — they're loaded on demand, show up as meta-tools, and the CLAUDE.md can instruct agents to invoke them before anything else.

***

## Task File Format

Task files should be self-contained — the agent should be able to start from nothing but the file.

```markdown theme={null}
---
id: TASK-001
type: implementation
blocking: []
blocked-by: []
scope: src/payments/
---

# Implement Stripe Webhook Handler

## Context
[enough context for a fresh agent to proceed without prior conversation history]

## Acceptance criteria
- [ ] /api/webhooks/stripe handles checkout.session.completed
- [ ] Tests pass: npm test -- --testPathPattern=stripe
- [ ] No new TypeScript errors

## Files to touch
src/payments/webhook.ts (create)
tests/payments/webhook.test.ts (create)

## Do not touch
src/auth/ — another agent owns this
```

The `blocking/blocked-by` fields mirror the Pocock DAG — the orchestrator or planner uses these to decide what's claimable; agents don't need to parse them.

***

## Inbox Population Sources

| Source                   | How                                                                            |
| ------------------------ | ------------------------------------------------------------------------------ |
| `to-issues` skill output | Pocock's skill converts PRD → task files; drop into `.agents/inbox/`           |
| Planner agent            | Coordinator decomposes the spec, writes task files before spawning workers     |
| Manual                   | Human writes task files directly                                               |
| Previous wave output     | Agents completing wave N write wave N+1 tasks as part of their completion step |

***

## State Machine

```
[created] → inbox/ → [claimable]
[claimed by agent] → claimed/ → [in-progress]
[agent completes] → done/ → [complete]
[agent fails/times out] → inbox/ (returned) → [claimable again]
```

Failure return: orchestrator monitors `claimed/` for tasks older than timeout threshold and `mv`s them back to `inbox/`.

***

## Relation to Existing Patterns

| Pattern                        | This design                             | Key difference                                        |
| ------------------------------ | --------------------------------------- | ----------------------------------------------------- |
| Pocock issue files             | Task files = same format                | Adds claim/done state machine; agents self-discover   |
| SandCastle planner             | Centralized pre-assignment              | This: pull model; agents discover without dispatcher  |
| CC agent teams task list       | In-process only (`~/.claude/tasks/`)    | This: cross-process, cross-worktree, filesystem-based |
| Worker-coordination blackboard | Partial results between running workers | This: task source at startup, not result destination  |
| Block agent-task-queue         | FIFO for expensive shared ops           | This: task assignment, not resource coordination      |

***

## Related Pages

* [Worktree Isolation](/concepts/worktree-isolation) — git worktree mechanics; how MAIN\_REPO is found
* [Worker Coordination: Partial Result Passing Between Parallel Agents](/concepts/worker-coordination) — blackboard pattern for results (complement to this)
* [Agent Skills](/concepts/agent-skills) — skills as the startup invocation mechanism
* [Ralph Loop](/concepts/ralph-loop) — filesystem as durable state; same principle
* [SandCastle](/entities/sandcastle) — planner model (centralized assignment; contrast with pull model here)

<iframe
  srcDoc="<!doctype html><html><head><meta charset=&#x22;utf-8&#x22;><style>
html,body{margin:0;height:100%;background:#0f1117;overflow:hidden;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif}
#g{width:100%;height:100%}
#hd{position:absolute;top:0;left:0;right:30px;height:22px;display:flex;align-items:center;gap:6px;padding:0 10px;color:#aeb3c2;font-size:10px;letter-spacing:.08em;text-transform:uppercase;z-index:6;cursor:move;user-select:none;touch-action:none;background:linear-gradient(#0f1117cc,#0f111700)}
#gear{position:absolute;top:5px;right:7px;z-index:7;cursor:pointer;color:#aeb3c2;background:#1b1e27;border:1px solid #2b2f3a;border-radius:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:12px;user-select:none}
#panel{position:absolute;top:31px;right:7px;z-index:7;background:rgba(22,25,34,.96);border:1px solid #2b2f3a;border-radius:8px;padding:6px 9px 9px;display:none;width:150px;color:#c9cdd8;font-size:10px}
#panel.open{display:block}
#panel label{display:flex;justify-content:space-between;margin:7px 0 1px;color:#9aa0b0}
#panel input[type=range]{width:100%;margin:0}
#panel .row{display:flex;align-items:center;gap:6px;margin-top:8px;color:#c9cdd8}
</style><script src=&#x22;https://cdn.jsdelivr.net/npm/force-graph@1.51.4/dist/force-graph.min.js&#x22; integrity=&#x22;sha384-Hm6GpQcTNI5VqGgGS7lLxTGtEFcxu/kOVV0B7ozIZRu9blWVvigv5httJQZ2qZmY&#x22; crossorigin=&#x22;anonymous&#x22;></script></head>
<body><div id=&#x22;hd&#x22;>Graph</div><div id=&#x22;gear&#x22;>⚙</div>
<div id=&#x22;panel&#x22;>
<label>Node size<span id=&#x22;vns&#x22;></span></label><input id=&#x22;ns&#x22; type=&#x22;range&#x22; min=&#x22;0.6&#x22; max=&#x22;6&#x22; step=&#x22;0.2&#x22;>
<label>Link width<span id=&#x22;vlw&#x22;></span></label><input id=&#x22;lw&#x22; type=&#x22;range&#x22; min=&#x22;0&#x22; max=&#x22;3&#x22; step=&#x22;0.1&#x22;>
<label>Label size<span id=&#x22;vts&#x22;></span></label><input id=&#x22;ts&#x22; type=&#x22;range&#x22; min=&#x22;0&#x22; max=&#x22;8&#x22; step=&#x22;0.5&#x22;>
<label>Label opacity<span id=&#x22;vto&#x22;></span></label><input id=&#x22;to&#x22; type=&#x22;range&#x22; min=&#x22;0&#x22; max=&#x22;1&#x22; step=&#x22;0.05&#x22;>
<div id=&#x22;depthRow&#x22;><label>Depth<span id=&#x22;vd&#x22;></span></label><input id=&#x22;dp&#x22; type=&#x22;range&#x22; min=&#x22;1&#x22; max=&#x22;5&#x22; step=&#x22;1&#x22;></div>
<div class=&#x22;row&#x22;><input id=&#x22;ar&#x22; type=&#x22;checkbox&#x22;><span>Directional arrows</span></div>
</div>
<div id=&#x22;g&#x22;></div>
<script>
const NODES=[{&#x22;id&#x22;:&#x22;concepts/shared-task-queue&#x22;,&#x22;label&#x22;:&#x22;Shared Task Queue (Cross-Worktree)&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4},{&#x22;id&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;label&#x22;:&#x22;Agent Skills&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:5.795831523312719},{&#x22;id&#x22;:&#x22;concepts/ralph-loop&#x22;,&#x22;label&#x22;:&#x22;Ralph Loop&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.872983346207417},{&#x22;id&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;label&#x22;:&#x22;Worktree Isolation&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.60555127546399},{&#x22;id&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;label&#x22;:&#x22;Control Plane Expansion Plan — Gap Analysis and Phase 0.5 Roadmap&#x22;,&#x22;group&#x22;:&#x22;syntheses&#x22;,&#x22;val&#x22;:4.3166247903554},{&#x22;id&#x22;:&#x22;concepts/agent-teams&#x22;,&#x22;label&#x22;:&#x22;Agent Teams&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.16227766016838},{&#x22;id&#x22;:&#x22;entities/sandcastle&#x22;,&#x22;label&#x22;:&#x22;SandCastle&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:4.16227766016838},{&#x22;id&#x22;:&#x22;concepts/worker-coordination&#x22;,&#x22;label&#x22;:&#x22;Worker Coordination: Partial Result Passing Between Parallel Agents&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:3.6457513110645907},{&#x22;id&#x22;:&#x22;syntheses/pi-orchestration-architecture&#x22;,&#x22;label&#x22;:&#x22;Pi Orchestration Architecture&#x22;,&#x22;group&#x22;:&#x22;syntheses&#x22;,&#x22;val&#x22;:3.449489742783178},{&#x22;id&#x22;:&#x22;concepts/github-issue-handoff&#x22;,&#x22;label&#x22;:&#x22;GitHub Issue as Handoff Artifact&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:3},{&#x22;id&#x22;:&#x22;concepts/agent-harness&#x22;,&#x22;label&#x22;:&#x22;Agent Harness&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:7.48074069840786},{&#x22;id&#x22;:&#x22;concepts/context-compression&#x22;,&#x22;label&#x22;:&#x22;Context Compression Strategies&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:6.0990195135927845},{&#x22;id&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;label&#x22;:&#x22;Lean Agentic Coding Workflow&#x22;,&#x22;group&#x22;:&#x22;syntheses&#x22;,&#x22;val&#x22;:5.795831523312719},{&#x22;id&#x22;:&#x22;concepts/verification-pipeline&#x22;,&#x22;label&#x22;:&#x22;Verification Pipeline&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:5.358898943540674},{&#x22;id&#x22;:&#x22;entities/opencode&#x22;,&#x22;label&#x22;:&#x22;OpenCode&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:5.358898943540674},{&#x22;id&#x22;:&#x22;entities/pi-agent&#x22;,&#x22;label&#x22;:&#x22;Pi Agent (pi-mono)&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:5.123105625617661},{&#x22;id&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;,&#x22;label&#x22;:&#x22;Multi-Vendor Adversarial Review&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.872983346207417},{&#x22;id&#x22;:&#x22;concepts/agent-subagents&#x22;,&#x22;label&#x22;:&#x22;Agent Subagents&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.741657386773941},{&#x22;id&#x22;:&#x22;concepts/context-degradation&#x22;,&#x22;label&#x22;:&#x22;Context Degradation Patterns&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.60555127546399},{&#x22;id&#x22;:&#x22;concepts/agentic-cicd&#x22;,&#x22;label&#x22;:&#x22;Agentic CI/CD&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.60555127546399},{&#x22;id&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;label&#x22;:&#x22;Desktop AI Agent Control Plane — Architecture Synthesis&#x22;,&#x22;group&#x22;:&#x22;syntheses&#x22;,&#x22;val&#x22;:4.60555127546399},{&#x22;id&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;,&#x22;label&#x22;:&#x22;Agent Primitive Selection&#x22;,&#x22;group&#x22;:&#x22;syntheses&#x22;,&#x22;val&#x22;:4.464101615137754},{&#x22;id&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;,&#x22;label&#x22;:&#x22;Agentic Sandbox Controls&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.464101615137754},{&#x22;id&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;label&#x22;:&#x22;AI and ML Engineering&#x22;,&#x22;group&#x22;:&#x22;systems&#x22;,&#x22;val&#x22;:4.3166247903554},{&#x22;id&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;label&#x22;:&#x22;Spec-Driven Frameworks vs Native Claude Code&#x22;,&#x22;group&#x22;:&#x22;comparisons&#x22;,&#x22;val&#x22;:4.3166247903554},{&#x22;id&#x22;:&#x22;concepts/indirect-prompt-injection&#x22;,&#x22;label&#x22;:&#x22;Indirect Prompt Injection&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.16227766016838},{&#x22;id&#x22;:&#x22;comparisons/cc-to-cross-platform-migration&#x22;,&#x22;label&#x22;:&#x22;Claude Code → Cross-Platform Migration Matrix&#x22;,&#x22;group&#x22;:&#x22;comparisons&#x22;,&#x22;val&#x22;:4.16227766016838},{&#x22;id&#x22;:&#x22;concepts/self-healing-loop&#x22;,&#x22;label&#x22;:&#x22;Self-Healing Loop&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4.16227766016838},{&#x22;id&#x22;:&#x22;entities/dangeresque&#x22;,&#x22;label&#x22;:&#x22;Dangeresque&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:4.16227766016838},{&#x22;id&#x22;:&#x22;concepts/nurture-first-development&#x22;,&#x22;label&#x22;:&#x22;Nurture-First Development (NFD)&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4},{&#x22;id&#x22;:&#x22;concepts/council-pattern&#x22;,&#x22;label&#x22;:&#x22;Council Pattern&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4},{&#x22;id&#x22;:&#x22;entities/omp&#x22;,&#x22;label&#x22;:&#x22;omp (oh-my-pi)&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:4},{&#x22;id&#x22;:&#x22;concepts/rules-vs-hooks&#x22;,&#x22;label&#x22;:&#x22;Rules vs. Hooks&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:4},{&#x22;id&#x22;:&#x22;entities/commandr&#x22;,&#x22;label&#x22;:&#x22;Commandr&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:4},{&#x22;id&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;,&#x22;label&#x22;:&#x22;Branch Strategy for Agents&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:3.8284271247461903},{&#x22;id&#x22;:&#x22;concepts/error-budget&#x22;,&#x22;label&#x22;:&#x22;Error Budget (Agentic)&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:3.8284271247461903},{&#x22;id&#x22;:&#x22;concepts/model-tier-routing&#x22;,&#x22;label&#x22;:&#x22;Model Tier Routing&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:3.6457513110645907},{&#x22;id&#x22;:&#x22;entities/agent-native&#x22;,&#x22;label&#x22;:&#x22;Agent-Native&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:3.6457513110645907},{&#x22;id&#x22;:&#x22;concepts/knowledge-crystallization-cycle&#x22;,&#x22;label&#x22;:&#x22;Knowledge Crystallization Cycle (KCC)&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:3.449489742783178},{&#x22;id&#x22;:&#x22;patterns/design-patterns-behavioral&#x22;,&#x22;label&#x22;:&#x22;Behavioral Design Patterns&#x22;,&#x22;group&#x22;:&#x22;patterns&#x22;,&#x22;val&#x22;:3.449489742783178},{&#x22;id&#x22;:&#x22;entities/ponytail&#x22;,&#x22;label&#x22;:&#x22;Ponytail&#x22;,&#x22;group&#x22;:&#x22;entities&#x22;,&#x22;val&#x22;:3.449489742783178},{&#x22;id&#x22;:&#x22;concepts/compound-engineering&#x22;,&#x22;label&#x22;:&#x22;Compound Engineering&#x22;,&#x22;group&#x22;:&#x22;concepts&#x22;,&#x22;val&#x22;:3.23606797749979},{&#x22;id&#x22;:&#x22;syntheses/agent-diff-viewer&#x22;,&#x22;label&#x22;:&#x22;Agent Diff Viewer — Real-Time Code Review Tool&#x22;,&#x22;group&#x22;:&#x22;syntheses&#x22;,&#x22;val&#x22;:3.23606797749979},{&#x22;id&#x22;:&#x22;syntheses/builderio-control-plane-integration&#x22;,&#x22;label&#x22;:&#x22;Builder.io Patterns for Commandr + DiffViewer&#x22;,&#x22;group&#x22;:&#x22;syntheses&#x22;,&#x22;val&#x22;:3.23606797749979}],LINKS=[{&#x22;source&#x22;:&#x22;concepts/agent-harness&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-harness&#x22;,&#x22;target&#x22;:&#x22;concepts/context-degradation&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-harness&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-harness&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-harness&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-diff-viewer&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;target&#x22;:&#x22;concepts/compound-engineering&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;target&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;target&#x22;:&#x22;concepts/model-tier-routing&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-teams&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-skills&#x22;,&#x22;target&#x22;:&#x22;concepts/indirect-prompt-injection&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-subagents&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-teams&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-subagents&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-subagents&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-subagents&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-subagents&#x22;,&#x22;target&#x22;:&#x22;concepts/context-degradation&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-subagents&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-teams&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-teams&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-teams&#x22;,&#x22;target&#x22;:&#x22;concepts/context-degradation&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-teams&#x22;,&#x22;target&#x22;:&#x22;concepts/worktree-isolation&#x22;},{&#x22;source&#x22;:&#x22;concepts/agent-teams&#x22;,&#x22;target&#x22;:&#x22;concepts/shared-task-queue&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-cicd&#x22;,&#x22;target&#x22;:&#x22;concepts/self-healing-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-cicd&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-cicd&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-cicd&#x22;,&#x22;target&#x22;:&#x22;concepts/worktree-isolation&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-cicd&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-cicd&#x22;,&#x22;target&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;,&#x22;target&#x22;:&#x22;entities/dangeresque&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;,&#x22;target&#x22;:&#x22;entities/sandcastle&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;,&#x22;target&#x22;:&#x22;concepts/indirect-prompt-injection&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;,&#x22;target&#x22;:&#x22;concepts/self-healing-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-cicd&#x22;},{&#x22;source&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;,&#x22;target&#x22;:&#x22;entities/sandcastle&#x22;},{&#x22;source&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;,&#x22;target&#x22;:&#x22;entities/dangeresque&#x22;},{&#x22;source&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;concepts/compound-engineering&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/compound-engineering&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;concepts/context-compression&#x22;,&#x22;target&#x22;:&#x22;concepts/context-degradation&#x22;},{&#x22;source&#x22;:&#x22;concepts/context-compression&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/context-compression&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/context-degradation&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;concepts/context-degradation&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/context-degradation&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/council-pattern&#x22;,&#x22;target&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;},{&#x22;source&#x22;:&#x22;concepts/council-pattern&#x22;,&#x22;target&#x22;:&#x22;entities/pi-agent&#x22;},{&#x22;source&#x22;:&#x22;concepts/council-pattern&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;},{&#x22;source&#x22;:&#x22;concepts/error-budget&#x22;,&#x22;target&#x22;:&#x22;concepts/self-healing-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/error-budget&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-cicd&#x22;},{&#x22;source&#x22;:&#x22;concepts/error-budget&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/error-budget&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;concepts/github-issue-handoff&#x22;,&#x22;target&#x22;:&#x22;concepts/shared-task-queue&#x22;},{&#x22;source&#x22;:&#x22;concepts/github-issue-handoff&#x22;,&#x22;target&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;},{&#x22;source&#x22;:&#x22;concepts/github-issue-handoff&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/indirect-prompt-injection&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;concepts/knowledge-crystallization-cycle&#x22;,&#x22;target&#x22;:&#x22;concepts/nurture-first-development&#x22;},{&#x22;source&#x22;:&#x22;concepts/knowledge-crystallization-cycle&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;concepts/model-tier-routing&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;},{&#x22;source&#x22;:&#x22;concepts/model-tier-routing&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;,&#x22;target&#x22;:&#x22;entities/dangeresque&#x22;},{&#x22;source&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;,&#x22;target&#x22;:&#x22;concepts/council-pattern&#x22;},{&#x22;source&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;,&#x22;target&#x22;:&#x22;entities/pi-agent&#x22;},{&#x22;source&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;},{&#x22;source&#x22;:&#x22;concepts/nurture-first-development&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;concepts/nurture-first-development&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;concepts/ralph-loop&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/rules-vs-hooks&#x22;,&#x22;target&#x22;:&#x22;entities/opencode&#x22;},{&#x22;source&#x22;:&#x22;concepts/self-healing-loop&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/self-healing-loop&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/self-healing-loop&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-cicd&#x22;},{&#x22;source&#x22;:&#x22;concepts/self-healing-loop&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;concepts/self-healing-loop&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;concepts/self-healing-loop&#x22;,&#x22;target&#x22;:&#x22;concepts/worktree-isolation&#x22;},{&#x22;source&#x22;:&#x22;concepts/shared-task-queue&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;concepts/shared-task-queue&#x22;,&#x22;target&#x22;:&#x22;concepts/worktree-isolation&#x22;},{&#x22;source&#x22;:&#x22;concepts/shared-task-queue&#x22;,&#x22;target&#x22;:&#x22;concepts/worker-coordination&#x22;},{&#x22;source&#x22;:&#x22;concepts/shared-task-queue&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/shared-task-queue&#x22;,&#x22;target&#x22;:&#x22;entities/sandcastle&#x22;},{&#x22;source&#x22;:&#x22;concepts/verification-pipeline&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;concepts/verification-pipeline&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/verification-pipeline&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;concepts/worker-coordination&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-teams&#x22;},{&#x22;source&#x22;:&#x22;concepts/worker-coordination&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;concepts/worker-coordination&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;concepts/worker-coordination&#x22;,&#x22;target&#x22;:&#x22;concepts/worktree-isolation&#x22;},{&#x22;source&#x22;:&#x22;concepts/worker-coordination&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;},{&#x22;source&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;target&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;},{&#x22;source&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;target&#x22;:&#x22;entities/dangeresque&#x22;},{&#x22;source&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;target&#x22;:&#x22;entities/sandcastle&#x22;},{&#x22;source&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;concepts/worktree-isolation&#x22;,&#x22;target&#x22;:&#x22;concepts/shared-task-queue&#x22;},{&#x22;source&#x22;:&#x22;patterns/design-patterns-behavioral&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;target&#x22;:&#x22;concepts/context-degradation&#x22;},{&#x22;source&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-teams&#x22;},{&#x22;source&#x22;:&#x22;systems/ai-ml&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-diff-viewer&#x22;,&#x22;target&#x22;:&#x22;syntheses/desktop-control-plane&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-diff-viewer&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-diff-viewer&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-teams&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;,&#x22;target&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;syntheses/builderio-control-plane-integration&#x22;,&#x22;target&#x22;:&#x22;entities/commandr&#x22;},{&#x22;source&#x22;:&#x22;syntheses/builderio-control-plane-integration&#x22;,&#x22;target&#x22;:&#x22;syntheses/desktop-control-plane&#x22;},{&#x22;source&#x22;:&#x22;syntheses/builderio-control-plane-integration&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;concepts/council-pattern&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;entities/agent-native&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;entities/omp&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;concepts/shared-task-queue&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;concepts/worktree-isolation&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-teams&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;concepts/rules-vs-hooks&#x22;},{&#x22;source&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-cicd&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;entities/commandr&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;entities/omp&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;entities/agent-native&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;entities/pi-agent&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-diff-viewer&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;},{&#x22;source&#x22;:&#x22;syntheses/desktop-control-plane&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;entities/dangeresque&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;concepts/worktree-isolation&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;concepts/council-pattern&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;entities/opencode&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;concepts/rules-vs-hooks&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;},{&#x22;source&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;,&#x22;target&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;},{&#x22;source&#x22;:&#x22;syntheses/pi-orchestration-architecture&#x22;,&#x22;target&#x22;:&#x22;concepts/shared-task-queue&#x22;},{&#x22;source&#x22;:&#x22;syntheses/pi-orchestration-architecture&#x22;,&#x22;target&#x22;:&#x22;entities/pi-agent&#x22;},{&#x22;source&#x22;:&#x22;syntheses/pi-orchestration-architecture&#x22;,&#x22;target&#x22;:&#x22;entities/opencode&#x22;},{&#x22;source&#x22;:&#x22;syntheses/pi-orchestration-architecture&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;syntheses/pi-orchestration-architecture&#x22;,&#x22;target&#x22;:&#x22;syntheses/agent-primitive-selection&#x22;},{&#x22;source&#x22;:&#x22;comparisons/cc-to-cross-platform-migration&#x22;,&#x22;target&#x22;:&#x22;entities/opencode&#x22;},{&#x22;source&#x22;:&#x22;comparisons/cc-to-cross-platform-migration&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;comparisons/cc-to-cross-platform-migration&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-subagents&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;concepts/rules-vs-hooks&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;entities/dangeresque&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;entities/sandcastle&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;},{&#x22;source&#x22;:&#x22;comparisons/spec-driven-frameworks-vs-native&#x22;,&#x22;target&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;},{&#x22;source&#x22;:&#x22;entities/agent-native&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;entities/commandr&#x22;,&#x22;target&#x22;:&#x22;syntheses/desktop-control-plane&#x22;},{&#x22;source&#x22;:&#x22;entities/commandr&#x22;,&#x22;target&#x22;:&#x22;entities/agent-native&#x22;},{&#x22;source&#x22;:&#x22;entities/commandr&#x22;,&#x22;target&#x22;:&#x22;syntheses/builderio-control-plane-integration&#x22;},{&#x22;source&#x22;:&#x22;entities/commandr&#x22;,&#x22;target&#x22;:&#x22;entities/omp&#x22;},{&#x22;source&#x22;:&#x22;entities/commandr&#x22;,&#x22;target&#x22;:&#x22;entities/pi-agent&#x22;},{&#x22;source&#x22;:&#x22;entities/commandr&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;entities/commandr&#x22;,&#x22;target&#x22;:&#x22;syntheses/control-plane-expansion-plan&#x22;},{&#x22;source&#x22;:&#x22;entities/dangeresque&#x22;,&#x22;target&#x22;:&#x22;entities/sandcastle&#x22;},{&#x22;source&#x22;:&#x22;entities/dangeresque&#x22;,&#x22;target&#x22;:&#x22;concepts/agentic-sandbox-controls&#x22;},{&#x22;source&#x22;:&#x22;entities/dangeresque&#x22;,&#x22;target&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;},{&#x22;source&#x22;:&#x22;entities/dangeresque&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;entities/dangeresque&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;entities/dangeresque&#x22;,&#x22;target&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;},{&#x22;source&#x22;:&#x22;entities/omp&#x22;,&#x22;target&#x22;:&#x22;entities/commandr&#x22;},{&#x22;source&#x22;:&#x22;entities/omp&#x22;,&#x22;target&#x22;:&#x22;entities/pi-agent&#x22;},{&#x22;source&#x22;:&#x22;entities/omp&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;entities/opencode&#x22;,&#x22;target&#x22;:&#x22;concepts/context-compression&#x22;},{&#x22;source&#x22;:&#x22;entities/opencode&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;entities/pi-agent&#x22;,&#x22;target&#x22;:&#x22;entities/omp&#x22;},{&#x22;source&#x22;:&#x22;entities/pi-agent&#x22;,&#x22;target&#x22;:&#x22;concepts/model-tier-routing&#x22;},{&#x22;source&#x22;:&#x22;entities/pi-agent&#x22;,&#x22;target&#x22;:&#x22;concepts/multi-vendor-adversarial-review&#x22;},{&#x22;source&#x22;:&#x22;entities/pi-agent&#x22;,&#x22;target&#x22;:&#x22;entities/opencode&#x22;},{&#x22;source&#x22;:&#x22;entities/ponytail&#x22;,&#x22;target&#x22;:&#x22;entities/opencode&#x22;},{&#x22;source&#x22;:&#x22;entities/ponytail&#x22;,&#x22;target&#x22;:&#x22;entities/pi-agent&#x22;},{&#x22;source&#x22;:&#x22;entities/ponytail&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-skills&#x22;},{&#x22;source&#x22;:&#x22;entities/sandcastle&#x22;,&#x22;target&#x22;:&#x22;concepts/branch-strategy-for-agents&#x22;},{&#x22;source&#x22;:&#x22;entities/sandcastle&#x22;,&#x22;target&#x22;:&#x22;entities/dangeresque&#x22;},{&#x22;source&#x22;:&#x22;entities/sandcastle&#x22;,&#x22;target&#x22;:&#x22;syntheses/lean-agentic-workflow&#x22;},{&#x22;source&#x22;:&#x22;entities/sandcastle&#x22;,&#x22;target&#x22;:&#x22;concepts/agent-harness&#x22;},{&#x22;source&#x22;:&#x22;entities/sandcastle&#x22;,&#x22;target&#x22;:&#x22;concepts/ralph-loop&#x22;},{&#x22;source&#x22;:&#x22;entities/sandcastle&#x22;,&#x22;target&#x22;:&#x22;concepts/verification-pipeline&#x22;}],CUR=&#x22;concepts/shared-task-queue&#x22;,MAXD=3;
const C={concepts:'#8B7CF6',patterns:'#0D9373',systems:'#E0567C',syntheses:'#E2A03F',comparisons:'#3B82F6',entities:'#14B8A6',guides:'#9CA3AF'};
function lid(x){return (x&&x.id!==undefined)?x.id:x;}
const ADJ=new Map(NODES.map(function(n){return [n.id,new Set()];}));
LINKS.forEach(function(l){var s=lid(l.source),t=lid(l.target);if(ADJ.has(s)&&ADJ.has(t)){ADJ.get(s).add(t);ADJ.get(t).add(s);}});
var opt={ns:1.8,lw:0.6,ts:3.5,to:0.75,dp:2,ar:false};
function visible(){
if(!CUR)return {nodes:NODES,links:LINKS};
var dist=new Map([[CUR,0]]),fr=[CUR];
for(var d=1;d<=opt.dp;d++){var nx=[];fr.forEach(function(u){(ADJ.get(u)||[]).forEach(function(v){if(!dist.has(v)){dist.set(v,d);nx.push(v);}});});fr=nx;}
var keep=new Set(dist.keys());
return {nodes:NODES.filter(function(n){return keep.has(n.id);}),links:LINKS.filter(function(l){return keep.has(lid(l.source))&&keep.has(lid(l.target));})};
}
var el=document.getElementById('g');
var G=ForceGraph()(el).backgroundColor('#0f1117').nodeId('id')
.warmupTicks(24).cooldownTicks(70).autoPauseRedraw(true)
.nodeColor(function(n){return C[n.group]||'#9CA3AF';}).nodeLabel('label').nodeVal(function(n){return n.val;})
.linkColor(function(){return 'rgba(255,255,255,0.12)';})
.nodeRelSize(opt.ns).linkWidth(opt.lw)
.linkDirectionalArrowLength(0).linkDirectionalArrowRelPos(1).linkDirectionalArrowColor(function(){return 'rgba(255,255,255,0.4)';})
.nodeCanvasObjectMode(function(){return 'after';})
.nodeCanvasObject(function(n,ctx,scale){var r=opt.ns*Math.sqrt(n.val||1);
if(n.id===CUR){ctx.beginPath();ctx.arc(n.x,n.y,r+1.6,0,6.283);ctx.strokeStyle='#fff';ctx.lineWidth=1.2/scale;ctx.stroke();}
if(opt.to>0&&opt.ts>0){var t=n.label.length>28?n.label.slice(0,26)+'…':n.label;ctx.globalAlpha=opt.to;ctx.font=((n.id===CUR?opt.ts+1:opt.ts))+'px ui-sans-serif,sans-serif';ctx.fillStyle=(n.id===CUR)?'#ffffff':'#aab0c0';ctx.textAlign='center';ctx.textBaseline='top';ctx.fillText(t,n.x,n.y+r+1.5);ctx.globalAlpha=1;}})
.onNodeClick(function(n){if(window.top){window.top.location.href='/'+n.id;}});
G.graphData(visible());G.d3VelocityDecay(0.4);
function fit(){G.zoomToFit(400,20);}
setTimeout(fit,350);setTimeout(fit,1100);
// Stop the render/sim loop while idle so the fixed widget never repaints during
// parent-page scroll; resume only while the pointer is over the widget.
var pt;function pause(){G.pauseAnimation();}function resume(){G.resumeAnimation();}
function idle(ms){clearTimeout(pt);pt=setTimeout(pause,ms);}
document.body.addEventListener('pointerenter',function(){clearTimeout(pt);resume();});
document.body.addEventListener('pointerleave',function(){idle(250);});
addEventListener('resize',function(){resume();G.zoomToFit(0,20);idle(700);});
idle(2000);
function apply(re){resume();G.nodeRelSize(opt.ns).linkWidth(opt.lw).linkDirectionalArrowLength(opt.ar?2.6:0);if(re){G.graphData(visible());setTimeout(fit,450);}idle(re?2200:1400);}
function bind(id,key,fmt,re){var e=document.getElementById(id),o=document.getElementById('v'+id);e.value=opt[key];if(o)o.textContent=fmt(opt[key]);e.addEventListener('input',function(){opt[key]=parseFloat(e.value);if(o)o.textContent=fmt(opt[key]);apply(re);});}
bind('ns','ns',function(v){return v.toFixed(1);},false);
bind('lw','lw',function(v){return v.toFixed(1);},false);
bind('ts','ts',function(v){return v.toFixed(1);},false);
bind('to','to',function(v){return v.toFixed(2);},false);
var dE=document.getElementById('dp'),dO=document.getElementById('vd');dE.max=MAXD;dE.value=opt.dp;dO.textContent=opt.dp;dE.addEventListener('input',function(){opt.dp=parseInt(dE.value,10);dO.textContent=opt.dp;apply(true);});
if(!CUR)document.getElementById('depthRow').style.display='none';
var aE=document.getElementById('ar');aE.checked=opt.ar;aE.addEventListener('change',function(){opt.ar=aE.checked;apply(false);});
document.getElementById('gear').addEventListener('click',function(){document.getElementById('panel').classList.toggle('open');});
var hd=document.getElementById('hd');hd.textContent='⠿  '+(CUR?'Local graph':'Knowledge graph');
// free-form placement: drag by the header. Default is bottom-right (inline style);
// a moved position is saved per parent-origin and restored on every page.
function clampPos(fe,l,t){var TW=(window.top||window),r=fe.getBoundingClientRect();return [Math.min(Math.max(0,l),Math.max(0,TW.innerWidth-r.width)),Math.min(Math.max(0,t),Math.max(0,TW.innerHeight-r.height))];}
function place(fe,l,t){var p=clampPos(fe,l,t);fe.style.left=p[0]+'px';fe.style.top=p[1]+'px';fe.style.right='auto';fe.style.bottom='auto';}
try{var sp=JSON.parse(localStorage.getItem('llmwiki_graph_pos'));if(sp&&window.frameElement)place(window.frameElement,sp.l,sp.t);}catch(e){if(window.console)console.debug('graph: saved position unavailable',e);}
hd.addEventListener('pointerdown',function(e){var fe=window.frameElement;if(!fe)return;var rect=fe.getBoundingClientRect();var sx=e.screenX,sy=e.screenY,L=rect.left,T=rect.top;place(fe,L,T);hd.setPointerCapture(e.pointerId);
function mv(ev){place(fe,L+ev.screenX-sx,T+ev.screenY-sy);}
function up(){if(hd.hasPointerCapture(e.pointerId))hd.releasePointerCapture(e.pointerId);hd.removeEventListener('pointermove',mv);hd.removeEventListener('pointerup',up);try{localStorage.setItem('llmwiki_graph_pos',JSON.stringify({l:parseFloat(fe.style.left),t:parseFloat(fe.style.top)}));}catch(e2){if(window.console)console.debug('graph: could not persist position',e2);}}
hd.addEventListener('pointermove',mv);hd.addEventListener('pointerup',up);e.preventDefault();});
</script></body></html>"
  title="Knowledge graph"
  loading="lazy"
  style={{position:"fixed",right:"18px",bottom:"18px",width:"320px",height:"340px",border:0,borderRadius:"14px",boxShadow:"0 6px 28px rgba(0,0,0,0.38)",zIndex:50,background:"#0f1117"}}
/>
