Routing discipline lives only in .claude/CLAUDE.md, which plugin and skills-copy installs do not load (static finding)

Author: Imbad0202Created Sep 23, 2026Updated Sep 23, 2026
Labelsbugpriority/p2

Context

The cross-skill routing rules (Routing Discipline v3.9.2, Steps 0-3, and Routing Rules 1-7, including the rebuttal-audit / revision-coach input-shape gate and the #668 committee rule) live in the repository's .claude/CLAUDE.md. Each of the four SKILL.md files points there in one sentence: "see .claude/CLAUDE.md "Routing Discipline (v3.9.2)" + shared/references/intent_clarification_protocol.md for cross-skill routing rules" (deep-research/SKILL.md:23, academic-paper/SKILL.md:24, academic-paper-reviewer/SKILL.md:24, academic-pipeline/SKILL.md:21).

The Claude Code documentation says:

  • "Claude Code loads CLAUDE.md and CLAUDE.local.md from your current working directory and every directory above it." (memory)
  • "A CLAUDE.md file at the plugin root is not loaded as project context. Plugins contribute context through skills, agents, and hooks rather than CLAUDE.md. To ship instructions that load into Claude's context, put them in a skill." (plugins reference)
  • For a symlinked skill folder, "Claude Code reads SKILL.md from the target and loads the skill once even if several locations point at the same target." (skills)

By these rules, the routing prose loads only when the session's working directory is the ARS checkout or a directory inside it. A researcher who installs ARS as a plugin, or copies or symlinks the skill folders, and then works in their own paper folder gets the four SKILL.md files (plus, on the plugin path, the commands, agents, and hooks), but not .claude/CLAUDE.md. The SKILL.md sentence is a file pointer, and the #272 design records that a model does not follow a file path named in its prompt (docs/design/2026-06-07-272-instruction-data-boundary-design.md §2).

This is a static finding from the documentation and the repository. It has not been tested in a live plugin-install session.

Why it matters

  • The routing rules exist to prevent the #133 failure: cross-phase materials silently auto-routed to a single-phase agent. If the rules do not load on the plugin path, that protection may not reach the recommended install channel.
  • #889 re-runs the #133 fixtures with the working directory set to the checkout, so its result covers the repo-clone condition only. The fixtures README's manual procedure starts "in a clean workspace"; outside the checkout the routing prose would not load either, and the README does not record which condition the 2026-06 recalibration used.
  • docs/CONTROL_AVAILABILITY.md has a row for skill auto-routing (trigger keywords to skill activation) but none for the cross-skill routing discipline. By the documentation above, that discipline would be active only in the repo-clone channel.

Work

  • Confirm or refute the gap in a live session: ARS loaded as a plugin (or with --plugin-dir), the working directory outside the checkout, and an empty CLAUDE_CONFIG_DIR. Check what the session loaded from deterministic evidence, not from the model's self-report.
  • If confirmed, decide where the routing rules live so that they load on every install path (for example a routing skill, or the routing core inlined in the SKILL.md files), and how a single source is kept (the repo already pins duplicated prose with sync lints).
  • Run the #133 fixtures in both conditions, repo clone and plugin install, and record both.
  • Add a routing-discipline row to docs/CONTROL_AVAILABILITY.md that states its availability per channel.

Non-goals

No change to the routing rules' content in this issue, and no promotion of the fixtures to CI gates.

Found while planning #889; related to #883.

Source: Imbad0202/academic-research-skills