Problem
When the sigint plugin runs from a consumer repo (e.g. zircote/research, the output corpus), the research-orchestrator's Phase 0 fails silently or surfaces an A/B/C option menu to the user asking whether to adapt. This should never reach the user — the orchestrator should resolve the environment automatically.
Root cause
Every schema validation, protocol read, and methodology reference uses hardcoded relative paths that assume CWD is the sigint tool repo root:
# dimension-analyst.md
jq -e -f schemas/methodology-plan.jq ...
jq -e -f schemas/findings.jq ...
jq -e -f schemas/reflection.jq ...
# research-orchestrator.md
jq -e -f schemas/state.jq ...
jq -e -f schemas/elicitation.jq ...
jq -e -f schemas/sigint-config.jq ...
# start skill
Read("protocols/CONFIG-RESOLUTION.md")
Read("protocols/STRUCTURED-DATA.md")
When the plugin is installed in a consumer repo, CWD is that repo — schemas/, protocols/, and agents/ don't exist there. All these paths 404.
Affected files
agents/research-orchestrator.md — Phase 0 has no environment probe
agents/dimension-analyst.md — all schemas/*.jq references
skills/start/SKILL.md — protocols/CONFIG-RESOLUTION.md read
- Every agent/skill that references
schemas/ or protocols/ with bare relative paths
Proposed fix
Add a Phase 0 Step 0.0: Resolve Plugin Root to the orchestrator (and propagate to dimension-analysts via spawn prompt):
- Probe for
schemas/state.jq at CWD. If found → SIGINT_ROOT="." (running from tool repo).
- If not found, resolve the plugin installation path. The harness registers agent types like
sigint:research-orchestrator — the plugin root is derivable from the installation directory (typically ~/.claude/plugins/sigint/ or the repo where the plugin was installed from).
- Set
SIGINT_ROOT and prefix all schema/protocol paths: $SIGINT_ROOT/schemas/*.jq, $SIGINT_ROOT/protocols/*.md.
- Pass
SIGINT_ROOT in every dimension-analyst spawn prompt so downstream agents inherit it.
If the plugin root genuinely can't be resolved (edge case), then fall back to the general-purpose path silently — no user-facing A/B/C menu. The option to "fake it" (Option C) should not exist at all.
Workaround
Consumer repos can add a note to their CLAUDE.md explaining the topology, but this is a band-aid — the orchestrator protocol itself needs to handle this.
Problem
When the sigint plugin runs from a consumer repo (e.g.
zircote/research, the output corpus), the research-orchestrator's Phase 0 fails silently or surfaces an A/B/C option menu to the user asking whether to adapt. This should never reach the user — the orchestrator should resolve the environment automatically.Root cause
Every schema validation, protocol read, and methodology reference uses hardcoded relative paths that assume CWD is the sigint tool repo root:
When the plugin is installed in a consumer repo, CWD is that repo —
schemas/,protocols/, andagents/don't exist there. All these paths 404.Affected files
agents/research-orchestrator.md— Phase 0 has no environment probeagents/dimension-analyst.md— allschemas/*.jqreferencesskills/start/SKILL.md—protocols/CONFIG-RESOLUTION.mdreadschemas/orprotocols/with bare relative pathsProposed fix
Add a Phase 0 Step 0.0: Resolve Plugin Root to the orchestrator (and propagate to dimension-analysts via spawn prompt):
schemas/state.jqat CWD. If found →SIGINT_ROOT="."(running from tool repo).sigint:research-orchestrator— the plugin root is derivable from the installation directory (typically~/.claude/plugins/sigint/or the repo where the plugin was installed from).SIGINT_ROOTand prefix all schema/protocol paths:$SIGINT_ROOT/schemas/*.jq,$SIGINT_ROOT/protocols/*.md.SIGINT_ROOTin every dimension-analyst spawn prompt so downstream agents inherit it.If the plugin root genuinely can't be resolved (edge case), then fall back to the general-purpose path silently — no user-facing A/B/C menu. The option to "fake it" (Option C) should not exist at all.
Workaround
Consumer repos can add a note to their CLAUDE.md explaining the topology, but this is a band-aid — the orchestrator protocol itself needs to handle this.