Skip to content

v1.60.2.0 document-release: detect in-app public docs sites (Next.js/Docusaurus/Mintlify/VitePress/Nextra), not just root .md#2326

Open
Martindvttt wants to merge 4 commits into
garrytan:mainfrom
Martindvttt:docs-site-coverage-detection
Open

v1.60.2.0 document-release: detect in-app public docs sites (Next.js/Docusaurus/Mintlify/VitePress/Nextra), not just root .md#2326
Martindvttt wants to merge 4 commits into
garrytan:mainfrom
Martindvttt:docs-site-coverage-detection

Conversation

@Martindvttt

@Martindvttt Martindvttt commented Jul 22, 2026

Copy link
Copy Markdown

Summary

  • document-release: extends the skill's Step 1 doc-discovery to also detect an in-app public docs site — Next.js App Router page.tsx/page.mdx, Docusaurus/Mintlify/VitePress/Nextra content trees — since it previously only ever scanned root-level *.md files and silently missed the actual public-facing docs many projects ship. Detected pages feed into the Step 1.5 coverage map and the Step 2 per-file audit, with the same copy-only-auto-update / structure-needs-a-human discipline already used for CHANGELOG.md.
  • Fix-up: a self-review (adversarial pass + independent fresh-context subagent, both empirically verified against mock Docusaurus/Next.js/Mintlify trees) found the first cut had 4 real bugs — missing .md support (broke Docusaurus/VitePress), missing Mintlify/Next.js-route-group detection, leaking .next/.docusaurus build caches into results, and a stale internal cross-reference ("Step 1.3.5") that pointed at nothing. All fixed and re-verified.
  • Docs sync: README.md's skill table and docs/skills.md's /document-release writeup updated to mention the new capability.
  • Version bump: v1.60.2.0 (PATCH — behavior extension to an existing skill, no new route/module/migration).

Test Coverage

Not applicable in the traditional function/branch sense — the changed files are prompt-template Markdown with embedded bash snippets, not application code. Coverage here means: does the new detection logic actually work? Verified empirically against three mock repo trees (Docusaurus with nested plain .md, Next.js App Router docs/ + route-group (docs)/, Mintlify root .mdx + mint.json) — all three now return exactly the right pages, with cache/build dirs correctly excluded. See the fix commit message for the exact before/after mock-tree output.

Pre-Landing Review

Self-reviewed before requesting maintainer review: 4 findings (all documentation/prompt-logic correctness, no security-relevant findings), all fixed in the second commit. Confirmed independently by a fresh-context Claude subagent (no shared context with the finder). Codex adversarial pass was attempted but timed out after 5 minutes (non-blocking).

Design Review

No frontend files changed — skipped.

Eval Results

document-release/SKILL.md.tmpl is a prompt file, so bun run test:evals (Tier 2/3 — E2E + LLM-as-judge scoring of the generated SKILL.md) would normally be the relevant gate. Not run in this environment (no ANTHROPIC_API_KEY configured for this fresh clone/fork). Tier 1 static tests (bun test) pass, and bun run skill:check is clean for this change (one pre-existing, unrelated failure on origin/main itself: claude/SKILL.md was never generated/committed there either — not touched by this PR). Happy to run the full eval suite if a maintainer wants that signal before merge.

Greptile Review

No Greptile comments.

Scope Drift

Scope Check: CLEAN. Delivered matches stated intent across all 4 commits — feature, fix-up from self-review, version bump, and doc sync.

Plan Completion

No plan file detected — this came out of an ad hoc conversation, not a written plan.

TODOS

No TODO items completed in this PR (no existing gstack TODOS.md item matched this work).

Documentation

  • README.md: updated the /document-release row in the skills table to mention the new in-app docs-site detection.
  • docs/skills.md: updated the /document-release "technical writer mode" section with the same.

Test plan

  • bun test (tier 1, static) — passes
  • bun run skill:check — clean for this change's files (pre-existing unrelated claude/SKILL.md gap noted above)
  • bun run gen:skill-docs --host all — verified idempotent regen, diff limited to the edited templates + generated output + description-derived scripts/proactive-suggestions.json
  • Manual empirical verification against 3 mock repo trees (Docusaurus, Next.js, Mintlify) — see fix commit message

🤖 Generated with Claude Code

…t .md

document-release only ever scanned root-level *.md files (README,
CHANGELOG, CLAUDE.md). Plenty of projects also ship a user-facing docs
site as app pages rather than markdown — Next.js App Router
page.tsx/page.mdx trees, Docusaurus/Mintlify/VitePress/Nextra content
trees — which live arbitrarily deep and never showed up in that scan,
so the actual docs real users read were silently out of scope.

Step 1 now adds a generic directory/file-extension probe for these
conventions. When found, the pages feed into the Step 1.5 coverage map
and the Step 2 per-file audit alongside README/ARCHITECTURE/CLAUDE.md.
Since these files mix prose with JSX/component structure, edits follow
the same discipline as CHANGELOG: plain copy fixes auto-update, anything
touching structure or adding sections goes through AskUserQuestion.

Regenerated all 8 host SKILL.md variants via `bun run gen:skill-docs
--host all`. bun test (tier 1) passes; skill:check clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@trunk-io

trunk-io Bot commented Jul 22, 2026

Copy link
Copy Markdown

Merging to main in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

…docs-site probe

/review (self + independent Claude subagent, empirically verified against
mock Docusaurus/Next.js/Mintlify trees) found the previous commit's
docs-site detection didn't do what its own prose claimed:

- Content-listing find only matched page.tsx/page.jsx/*.mdx, never
  *.md — so Docusaurus/VitePress sites (which are ~100% plain .md)
  returned zero pages despite being named as supported.
- The dir-name probe (-iname "docs") missed two of the four frameworks
  named in the same sentence: Mintlify (no docs/ dir at all, root-level
  *.mdx driven by mint.json/docs.json) and Next.js route groups
  (app/(docs)/... — a routing annotation, not literally "docs").
- Prune list omitted .next and .docusaurus — their own build caches
  leaked into results, confirmed empirically.
- Two prose cross-references pointed at "Step 1.3.5", a label that
  doesn't correspond to any real heading or list item (the actual
  content was list item "3.5." under Step 1, not a numbered step).
  Renumbered as a plain sequential item and switched cross-references
  to reference-by-name instead of a number, so they can't drift again.

Re-verified all three scenarios against mock repo trees after the fix
(nested Docusaurus .md, Next.js docs/ + route-group, Mintlify root
.mdx) — all three now return the expected pages, cache dirs correctly
pruned. bun test passes, skill:check clean across all hosts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Martindvttt

Copy link
Copy Markdown
Author

Ran a pre-landing adversarial review on my own PR before asking for a maintainer look. Found 3 real bugs in the first commit (confirmed independently by a fresh-context Claude subagent, plus a Codex pass that unfortunately timed out):

  1. The content-listing find only matched page.tsx/page.jsx/*.mdx — never *.md. Docusaurus/VitePress sites (typically ~100% plain .md) would've returned zero pages despite being named as supported.
  2. The directory probe (-iname "docs") missed two of the four frameworks named in the same sentence: Mintlify (no docs/ dir at all — root .mdx driven by mint.json/docs.json) and Next.js route groups (app/(docs)/...).
  3. The prune list omitted .next/.docusaurus, so their own build caches leaked into results — confirmed empirically.
  4. (Minor) Two cross-references pointed at a "Step 1.3.5" label that didn't correspond to any real heading.

Fixed in the follow-up commit and re-verified against mock Docusaurus/Next.js/Mintlify trees (see commit message for the exact mock-tree output). bun test and skill:check both clean.

Happy to adjust scope/approach if you'd rather this land differently (e.g. narrower prose claims instead of the extra Mintlify/route-group detection branches).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot changed the title document-release: detect in-app public docs sites (Next.js/Docusaurus/Mintlify/VitePress/Nextra), not just root .md v1.60.2.0 document-release: detect in-app public docs sites (Next.js/Docusaurus/Mintlify/VitePress/Nextra), not just root .md Jul 22, 2026
…etection

Co-Authored-By: Claude Sonnet 5 <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.

1 participant