Skip to content

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

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

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions