Skip to content

[F6] Validator warning for worktree_extras paths that are tracked in the target repo #251

@sriumcp

Description

@sriumcp

Problem

campaign.yaml.target_system.worktree_extras is meant for paths that need to be present in the experiment worktree but aren't tracked in the target repo's main branch (typically gitignored: model weights, generated configs, etc.).

When a campaign author mistakenly declares a tracked path in worktree_extras, nous emits a warning and skips the symlink (correct behavior). But the warning is noisy, repeats every iteration, and nothing surfaces it earlier — at campaign load time — before the user has invested in a run.

In paper-memorytime-mirage, declaring hardware_config.json and testdata in worktree_extras (both tracked in BLIS main) produced repeated warnings on every iteration.

Desired behavior

Two improvements:

  1. Validator-time soft warning at campaign load time. When nous run loads campaign.yaml, the validator inspects each worktree_extras entry against the target repo's git status. Tracked paths produce an immediate warning with a clear message:

    worktree_extras entry hardware_config.json is tracked in the target repo's main branch. Tracked paths are already present in every git worktree checkout; declaring them here will trigger a per-iteration collision warning. Remove this entry, or move the file out of git tracking if you intend to override it.

  2. Schema doc clarification. nous schema campaign rendering for worktree_extras should explicitly state: "Only declare gitignored or out-of-repo paths here. Tracked paths are already in the worktree checkout and will trigger collision warnings."

Suggested implementation sketch

  1. In the campaign loader, after parsing, run git -C <target_repo> ls-files --error-unmatch <each-worktree_extras-entry> (or equivalent). Tracked → warn at load time.
  2. Update the schema doc string for worktree_extras with the clarification.
  3. Update nous schema campaign rendering output.

Acceptance criteria

  • nous run (or nous validate) produces a warning at campaign load time for any worktree_extras entry that's tracked in the target repo.
  • nous schema campaign documents the gitignored-only constraint in the field's description.
  • Friction report F6 row in the tracking issue checks off.

Severity

LOW — cosmetic, but the campaign-author footgun is preventable.

Source

friction-report.md F6, paper-memorytime-mirage campaign (2026-05).


Part of friction-report tracking issue #245.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requestfriction-reportFrom external campaign-author friction reports

    Type

    No type
    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