From 982eebca339e3cf2a87cee92a583efd3c92daab8 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 31 May 2026 11:14:05 +0000 Subject: [PATCH] docs: fix two documentation drift issues in tools/skill_generator/README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `validate` and `doctor` subcommands were added in the feat/skill-validator and feat/skill-gen-doctor PRs but were never reflected in the Subcommand map table, making the README's own index a lie for any developer who reads it first. The "What Stage 1 skips" paragraph listed `bin/` as silently excluded, but DEFAULT_EXCLUDE_DIRS in crawler.py explicitly does NOT include it — and even has a code comment explaining why ("legacy apps put shell scripts there"). Any developer who relies on the README to understand what the crawler skips would assume bin/ is safe to put ignored output in, which is the opposite of the intended behaviour. Changes: - Add `validate` and `doctor` rows to the Subcommand map table - Remove `bin/` from the silently-skipped directory list - Add an explicit note that bin/ is intentionally NOT excluded, and why No logic changes. All 172 tests pass unchanged. Co-Authored-By: Claude Sonnet 4.6 --- tools/skill_generator/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/skill_generator/README.md b/tools/skill_generator/README.md index 7648704..a3b56b4 100644 --- a/tools/skill_generator/README.md +++ b/tools/skill_generator/README.md @@ -21,6 +21,8 @@ Python 3.10+ (standard library only — no third-party dependencies). Modules us | `link-ingest` | Stage 4 — apply links to each SKILL.md's frontmatter + body. | | `update-emit` | Phase 2 — write update prompts for features affected by `git diff`. | | `update-ingest` | Phase 2 — apply per-feature responses; bump version; optionally commit. | +| `validate` | Ad-hoc — validate one or more SKILL.md files against the artifact-3 contract. | +| `doctor` | Pre-flight — 30-second look at a Java repo before running the pipeline; no AI turns, nothing written to disk. | ## End-to-end run (with paste steps in between) @@ -82,7 +84,7 @@ It also infers `framework` (Spring Boot, Spring MVC, Struts, Quarkus, Raw Servle ### What Stage 1 skips -Silently skipped: `target/`, `build/`, `.git/`, `generated/`, `.mvn/`, `node_modules/`, `.idea/`, `.vscode/`, `.gradle/`, `out/`, `bin/`, `dist/`, `.settings/`. Binary extensions are not opened: `.class`, `.jar`, `.war`, `.ear`, `.zip`, `.tar`, `.gz`, `.so`, `.dylib`, `.dll`, image and font extensions. Files with `// DO NOT EDIT`, `@Generated`, or `// generated by` markers in the first 2KB are skipped. Files shorter than 10 characters are skipped. +Silently skipped: `target/`, `build/`, `.git/`, `generated/`, `.mvn/`, `node_modules/`, `.idea/`, `.vscode/`, `.gradle/`, `out/`, `dist/`, `.settings/`. Note: `bin/` is intentionally **not** excluded — legacy apps store shell scripts there; Eclipse-compiled `.class` output inside `bin/` is still filtered by binary extensions. Binary extensions are not opened: `.class`, `.jar`, `.war`, `.ear`, `.zip`, `.tar`, `.gz`, `.so`, `.dylib`, `.dll`, image and font extensions. Files with `// DO NOT EDIT`, `@Generated`, or `// generated by` markers in the first 2KB are skipped. Files shorter than 10 characters are skipped. ## Output schema (top-level)