Skip to content

tracked_render_warning: tell projects that already committed _bmad/render/ to untrack it #409

Description

@pbean

Context

Follow-up from #405 / PR #406. Cut from that PR's review round.

0.9.1 keeps the renderer's published output out of new commits: init writes _bmad/render/
into .gitignore, and provision_worktree adds a /_bmad/render/ git exclude whenever the
worktree has a _bmad/ at all. Both only help going forward. A project that already committed
_bmad/render/ — before 0.9.1, or before it gitignored _bmad/ — keeps churning it into every
story commit, because a tracked path ignores .gitignore and info/exclude entirely.

The churn is not cosmetic. Every snapshot dir is named for a hash of the absolute project
root
plus a generation hash of the renderer, its sources and the resolved config
(render_skill.py), so a committed tree grows a new directory per machine, per checkout path,
and per upstream renderer bump — and under isolation = "worktree" the worktree's own absolute
path differs from the main checkout's, so every isolated run adds one.

Proposal

A tracked_render_warning validate check: warn when git ls-files _bmad/render is non-empty,
with the remediation

git rm -r --cached _bmad/render && git commit -m "chore: untrack rendered skill output"

Severity warning. This is commit hygiene, not a HALT — nothing about a tracked _bmad/render/
stops a session from running, which is why it was cut from the hotfix rather than shipped with
the two HALT-shaped renderer warnings.

Notes

  • Register the id in checks.VALIDATE_CHECKS, or the existing subset tests fail.
  • The probe is a git call, so it must go through the _run_git chokepoint and degrade quietly
    in a non-repo project (validate runs there today and must keep passing).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:configBMAD config resolution and the setup skillenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions