Skip to content

fix: prefix plugin file paths with ${CLAUDE_PLUGIN_ROOT} - #38

Merged
marcossevilla merged 1 commit into
mainfrom
vgv-ai-bot/issue-37
Nov 6, 2026
Merged

marcossevilla merged 1 commit into
mainfrom
vgv-ai-bot/issue-37

Conversation

@unicoderbot

@unicoderbot unicoderbot Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Skills and the ffca-layer-auditor agent referenced plugin files (references/…, scripts/…) with bare relative paths. Nothing resolves those to the plugin's own files: Claude Code only expands ${CLAUDE_PLUGIN_ROOT}, and an agent working in a user's repo resolves a relative path against that repo. The references only worked when the model guessed the base from an earlier ${CLAUDE_PLUGIN_ROOT} mention in the same file. In ffca-audit, dart run scripts/validate_layers.dart --all failed outright when run from a user's repo.

This PR prefixes every such path in skills/ and agents/ with ${CLAUDE_PLUGIN_ROOT}/. Downstream tools such as vgv_ai_cli rewrite that placeholder for Codex, Copilot and Antigravity, so they can now resolve these paths too.

Changes

  • Prefix bare references/… and scripts/… paths with ${CLAUDE_PLUGIN_ROOT}/ in agents/ffca-layer-auditor.md and the ffca-architecture, ffca-audit, ffca-cross-feature, ffca-feature and ffca-routing skills.
  • Add a plugin-paths CI job that greps skills/ and agents/ for a bare references/ or scripts/ path and fails with an error message if one is found, so the problem can't regress.
  • Document the new check in the Checks section of AGENTS.md.

The change is path-prefix only, with no change to the wording or the instructions themselves.

Closes #37

Closes #37

Co-authored-by: marcossevilla <marcossevilla@users.noreply.github.com>
@ryzizub

ryzizub commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

${CLAUDE_PLUGIN_ROOT} feels like the right convention to me: one variable for skills and agents, and no symlinks. One blocker, though: vgv_ai_cli doesn't handle it in skill or agent content yet, so as written this breaks the Codex, Copilot and Antigravity exports.

  • vgv_ai_cli rewrites ${CLAUDE_PLUGIN_ROOT} only in hook commands (claude_plugin_parser.dart). In skill and agent bodies it is left as-is. Only ${CLAUDE_SKILL_DIR} is expanded there (skills_translator.dart).
  • It copies only each skill's own directory, so references/ and scripts/ at the plugin root never reach the other harnesses.

Proposal: teach vgv_ai_cli to expand ${CLAUDE_PLUGIN_ROOT} in skill and agent content and install the referenced plugin-root files, then merge this PR. Wingspan could later move from its symlinks to the same convention, so every VGV plugin works the same way.

cc @marcossevilla

@marcossevilla
marcossevilla merged commit 071e707 into main Nov 6, 2026
7 checks passed
@marcossevilla
marcossevilla deleted the vgv-ai-bot/issue-37 branch November 6, 2026 10:36
@vgvbot vgvbot mentioned this pull request Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: skills and agent reference plugin files by bare relative paths

2 participants