Skip to content

Orchestrator assumes CWD is sigint repo root — breaks in consumer repos #7

@zircote

Description

@zircote

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.mdprotocols/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):

  1. Probe for schemas/state.jq at CWD. If found → SIGINT_ROOT="." (running from tool repo).
  2. 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).
  3. Set SIGINT_ROOT and prefix all schema/protocol paths: $SIGINT_ROOT/schemas/*.jq, $SIGINT_ROOT/protocols/*.md.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions