Skip to content

feat(docgen): skip pure-data dirs, respect .gitignore (tracked-only), --max guard - #11

Merged
decider merged 1 commit into
mainfrom
feat/docgen-data-skip
May 25, 2026
Merged

feat(docgen): skip pure-data dirs, respect .gitignore (tracked-only), --max guard#11
decider merged 1 commit into
mainfrom
feat/docgen-data-skip

Conversation

@decider

@decider decider commented May 25, 2026

Copy link
Copy Markdown
Owner

Three hardening fixes ported from upstream pbx-trader-lab-public so docgen is safe to point at large data-heavy repos.

  1. No-code skip: a dir whose every file is data (.json/.csv/…) or prose/markup (.md/.rst/.html/…) is skipped by needsAnalysis — unless it's a trunk with documented children. .sql stays documentable. Saves thousands of pointless claude -p calls on research-output trees.
  2. Respect .gitignore: selectFiles keeps only git ls-files tracked paths (memoized per root). Non-git repos fall back to filesystem-walk unchanged.
  3. --max <n> CLI guard + a >200-dirs stderr warning when running --until-done without --changed/--max. Runaway safety net.

computeStatus also reports a skipped (no code) bucket so a data-heavy repo doesn't look like it has 12k uncovered backlog.

Suite: 61/61 green.

🤖 Generated with Claude Code

… --max guard

Three hardening fixes (ported from upstream's pbx-trader-lab-public so
docgen is safe to point at large data-heavy repos).

1. NO-CODE skip: a dir whose every file is DATA (.json/.csv/.yaml/…)
   or PROSE/markup (.md/.rst/.html/…) — no code symbols to point at —
   is skipped by needsAnalysis (unless it's a trunk with documented
   children). .sql stays documentable. Saves thousands of pointless
   claude-p calls on repos with research-output trees (one downstream
   repo had 11.8k such dirs).

2. Respect .gitignore via tracked-files-only: selectFiles drops any
   file not in 'git ls-files' (memoized per root). Non-git repos fall
   back to filesystem-walk unchanged.

3. --max <n> CLI guard + a >200-dirs stderr warning when running
   --until-done without --changed/--max, so a runaway sweep can never
   silently fire thousands of claude calls.

computeStatus also reports a 'skipped (no code)' bucket so an operator
on a data-heavy repo doesn't see '12k uncovered' and panic.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@decider
decider merged commit b9b3754 into main May 25, 2026
@decider
decider deleted the feat/docgen-data-skip branch May 25, 2026 06:00
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.

1 participant