Skip to content

fix: remove hardcoded /Volumes/Workspace build-volume requirement - #212

Open
GQAdonis wants to merge 1 commit into
crabbuild:mainfrom
GQAdonis:fix/remove-hardcoded-build-volume
Open

fix: remove hardcoded /Volumes/Workspace build-volume requirement#212
GQAdonis wants to merge 1 commit into
crabbuild:mainfrom
GQAdonis:fix/remove-hardcoded-build-volume

Conversation

@GQAdonis

@GQAdonis GQAdonis commented Aug 9, 2026

Copy link
Copy Markdown

Fixes #211

Problem

AGENTS.md required every compiling Cargo command to set CARGO_TARGET_DIR beneath /Volumes/Workspace/crabbuild-target, and to stop rather than fall back to a local target/ when that volume was absent.

/Volumes/Workspace is a macOS mount point specific to one contributor's machine. It is not a property of the project, and there is no documented way to obtain or substitute it. On any checkout without that volume, an agent or contributor following AGENTS.md correctly concludes that no build, test, lint, or qualification step may be run at all.

Because AGENTS.md is explicitly the operating guide for AI coding agents, and the rule is stated as a hard stop, this blocks agent-driven work outright — and agents that derive build commands from it propagate the path into their own generated configuration.

Two references were executable, not advisory

scripts/qualify_compass_store_release.sh hard-failed:

if [[ ! -d /Volumes/Workspace || ! -w /Volumes/Workspace ]]; then
  echo "error: /Volumes/Workspace must be mounted and writable" >&2
  exit 1
fi

Both qualification scripts silently redirected build output when CARGO_TARGET_DIR was unset:

export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-/Volumes/Workspace/crabbuild-target/compass-main}"
target_dir=${CARGO_TARGET_DIR:-/Volumes/Workspace/crabbuild-target/compass-store-phase9}

skills/compass-release/SKILL.md also listed the volume as a hard compatibility requirement and gated the release procedure on test -d /Volumes/Workspace.

Change

Replaces the mandate with environment-neutral guidance that keeps the parts that are genuinely about the project:

  • each checkout and worktree gets its own target directory (feature sets, build scripts, and locks collide otherwise);
  • CARGO_TARGET_DIR does not persist between shell or tool invocations;
  • external qualification repositories are read-only inputs;
  • cargo clean only with the intended target directory explicitly set.

Scripts now honor CARGO_TARGET_DIR when set and otherwise fall back to the checkout's own target/. Documentation uses <cargo-target-dir> and <qualification-corpus-root> placeholders.

26 files, ~60 occurrences. Introduced in dd14b3c.

If the underlying concern is real

The original rule may have been protecting against disk pressure during large qualification runs. That intent is preserved as a recommendation rather than a hard requirement — a contributor who wants an external target directory sets CARGO_TARGET_DIR and everything works as before. If you would prefer stronger wording pointing contributors toward an external volume for qualification specifically, I am happy to adjust.

Verification

  • bash -n passes on both modified scripts.
  • No /Volumes/Workspace references remain in the tree.
  • No functional Rust code is touched; this is documentation and shell defaults only.

I have not run the full qualification gates — they are long-running and this change does not alter their logic beyond the target-directory default and the removed mount check.

🤖 Generated with Claude Code

AGENTS.md required every compiling Cargo command to set CARGO_TARGET_DIR
beneath /Volumes/Workspace/crabbuild-target, and to stop rather than fall back
to a local target/ when that volume was absent. That path is a macOS mount
point specific to one contributor's machine, not a property of the project. On
any checkout without it, an agent or contributor following AGENTS.md correctly
concludes that no build, test, lint, or qualification step may be run at all.

Two of the references were executable, not advisory:

- scripts/qualify_compass_store_release.sh hard-failed with exit 1 unless
  /Volumes/Workspace was mounted and writable, making the compass-store
  release qualification gate unrunnable elsewhere;
- both qualification scripts defaulted CARGO_TARGET_DIR to that absolute path,
  silently writing build output outside the checkout when the variable was
  unset.

skills/compass-release/SKILL.md additionally listed the volume as a hard
compatibility requirement and gated the release procedure on
`test -d /Volumes/Workspace`.

Replace the mandate with environment-neutral guidance that keeps the useful
parts: per-checkout target directories, CARGO_TARGET_DIR not persisting between
invocations, external qualification repositories treated as read-only, and
cargo clean only with an explicit target directory.

Scripts now honor CARGO_TARGET_DIR when set and otherwise fall back to the
checkout's own target directory. Documentation uses <cargo-target-dir> and
<qualification-corpus-root> placeholders.

Introduced in dd14b3c ("docs: add AI contributor guidance").

Fixes crabbuild#211

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

AGENTS.md mandates a contributor-specific build volume (/Volumes/Workspace), blocking verification on other machines

1 participant