Repository navigation
docs: LLM-support sweep — skill triggers/boundaries/splits, consumer discovery, doc guards - #660
Merged
Merged
Conversation
…g, drop repo-internal rules and dead links
…render-defined holes in #645
37 of 43 skill frontmatter descriptions were bare topic labels that only match users who already speak the framework's vocabulary. Add "Use when" clauses with plain-language symptom/goal phrasing (e.g. "data is stale after changes", "how do I read the route param in a component") so an LLM agent can match a skill against how a user actually asks the question, not just its name. The cache cluster (caching/use-cache/document-cache/ cache-guide) each now name their distinguishing scope in the topic sentence. Body content, name/argument-hint fields, and the already- triggered skills (migrate-nextjs, migrate-react-router, bundle-analysis, comparison, css, react-compiler) are untouched.
…references Walks packages/rangojs-router/skills/*/ and enforces: SKILL.md exists, frontmatter name matches the directory and description is non-empty, backtick /name cross-references resolve to a skill directory (with a verified URL_EXAMPLES allowlist for route examples, subpath entries, and storage-key suffixes), and relative markdown links resolve on disk.
The internal maps link to skills (e.g. feature-map.md -> ../../skills/view-transitions/SKILL.md) but the guard only matched ../../src/ targets, leaving those links unchecked.
Adds the check:skills script, lefthook pre-commit entries for the skills guard and check-docs-api (previously CI-only), and a CI lint-job step.
…ery section Adds tools/generate-skills-catalog.mjs, generating packages/rangojs-router/skills/catalog.json (name/description/argument-hint/ path for all 43 shipped skills) from SKILL.md frontmatter. --check mode verifies the catalog is current and cross-checks bidirectional completeness against skills/rango/SKILL.md's ## Skills tables.
…er, file shallow-navigation RFC under design/
Consumers had no pointer to the 43 shipped agent skills or how to wire them into their harness. Adds a "Using the skills with your coding agent" section covering Claude Code (.claude/skills/) and the shared .agents/skills/ convention used by Cursor, Codex CLI, and Gemini CLI.
…ery section Wires the skills-catalog --check into the pre-commit hook (glob on packages/rangojs-router/skills/**) and the CI lint job, mirroring the existing check:doc-links / check:docs-api entries.
…or/026-split-monolith-skills
…lit-monolith-skills
…-support-sweep # Conflicts: # .github/workflows/e2e.yml # lefthook.yml # package.json
commit: |
ivogt
marked this pull request as ready for review
July 4, 2026 10:36
…, dev prerender memoization (#662); map loader-snapshot.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The 43 skills shipped to npm are the package's primary interface for LLM coding agents, but the doc surface had four consumer-observable problems: (1) the shipped
AGENTS.mdopened with a factually wrong positioning line ("a file-system based router") and linked../../paths that 404 insidenode_modules; (2) 37 of 43 skill descriptions were bare topic labels, so an agent asking "why is my data stale?" never triggered/caching; (3) nothing told a consumer (or their agent) the skills exist — no index, no README section; (4) the internal maps documented a phantom public API (live(), removed in #645) that would send any PPR-working agent chasing a fictional export. None of this was mechanically guarded, so it could only rot further.Before vs. after (consumer's seat)
An agent matching a user's plain-language symptom now selects the right skill; on arrival, a new "Not this skill if…" section redirects wrong landings (e.g.
/caching→/use-cachefor single-function caching).End-to-end consumer example
A consumer on Cursor/Codex CLI/Gemini CLI wiring the skills into their app:
The README's new "Using the skills with your coding agent" section documents this; the shipped
AGENTS.mdis now consumer-only with correct positioning and no dead links.Code-change summary
Docs/tooling only — zero runtime source changes.
testing/pattern); generatedskills/catalog.json(43 entries).live()removed fromfeature-map.md(replaced with the render-defined-holes contract); docs hub now links the root caching designs, security/semantic-change checklists, andnamed-routes.md;internal/reviews/bannered as point-in-time snapshots;shallow-navigation.mdmoved todesign/with a corrected status — the RFC is actually shipped asrevalidate: false(src/browser/navigation-bridge.ts:124); all 23 semantic-matrix row ids now tagged inexecution-model.md, including 6 newly authored guarantees for rows that had none (RC1/RC2/SWR1/I1/W1/P1, each derived from its test's assertions).tools/check-skills.mjs— frontmatter schema (name↔dir, non-empty description), cross-skill`/name`reference resolution (13-entry verified URL-example allowlist), relative-link resolution;tools/generate-skills-catalog.mjs --check— catalog byte-currency + bidirectional rango-table completeness;check-doc-links.mjswidened to../../skills/targets. All wired intopackage.jsonscripts, lefthook pre-commit, and the CI lint job (check-docs-apiadded to pre-commit too).Location rationale: guards follow the existing
tools/check-*.mjsconvention (dependency-free ESM, OK-line/exit-1); catalog is committed (not build-time) so it is greppable and versioned, kept honest by--check.Test plan
pnpm check:skills/check:skills-catalog/check:doc-links/check:docs-api/check:e2e-bucketing— all green on the merged branch`/ref`, dead relative link, stale catalog, missing rango-table row — each fails withpath:line, reverts to greentsc --noEmit, router): cleanoxfmt --check .(1994 files) +oxlint --deny-warnings: cleanNotes
[skip ci]convention was deliberately NOT used: this PR adds the CI lint steps that verify its own guards, so CI must run.createVar,keepClientCache,notFound); SWR1's doc bullet does not mention the row is prod-only.