From dev-guides-navigator
Navigates to online dev guides for Drupal APIs, theming, Next.js, design systems, Tailwind tokens, CSS, and practices like SOLID/DRY/TDD/security. Fetches/matches raw Markdown proactively before design or coding.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-guides-navigator:dev-guides-navigatorThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Route to the correct online guide and enforce guide application.
Route to the correct online guide and enforce guide application.
Check for cache at ~/.claude/projects/{project-hash}/memory/dev-guides-cache.json.
NEVER use WebFetch in this workflow. All fetches use curl -s via Bash:
curl — no summarization neededNo cache (first time):
curl -s https://camoa.github.io/dev-guides/llms.hash — save the hashcurl -s https://camoa.github.io/dev-guides/llms.txt — save the contentCache exists:
curl -s https://camoa.github.io/dev-guides/llms.hash (tiny, fast)llms.txt, skip re-fetchcurl -s https://camoa.github.io/dev-guides/llms.txt, update cacheScan llms.txt for the topic that matches the current task. Each line has a topic title, URL, guide count, and description.
The URL in llms.txt is a GitHub Pages URL like https://camoa.github.io/dev-guides/drupal/forms/. Extract the topic path (e.g., drupal/forms) from this URL for use in raw GitHub fetches below.
IMPORTANT: Do NOT use WebFetch on GitHub Pages URLs — MkDocs renders them into 400KB+ HTML pages with navigation shells, hiding the actual content. Use curl with raw GitHub URLs instead.
curl -s https://raw.githubusercontent.com/camoa/dev-guides/main/docs/{topic-path}/index.md
Example: curl -s https://raw.githubusercontent.com/camoa/dev-guides/main/docs/drupal/forms/index.md
This returns the raw markdown containing:
guide-meta: frontmatter — KG metadata for disambiguation and relationshipsThe guide-meta: in the topic's frontmatter provides:
concepts — confirms this is the right topicnot — if the task matches a not term, this is the WRONG topic, go back to step 2requires — load prerequisite topics firstcomplements — note related topics for the user| Example Task | Correct Topic | Wrong Topic | Why |
|---|---|---|---|
| story.yml props | drupal/ui-patterns | drupal/storybook | "story.yml" in ui-patterns concepts, "storybook" in not |
| stories.yml preview | drupal/storybook | drupal/ui-patterns | reverse |
| inline blocks | drupal/layout-builder | drupal/blocks | "inline blocks" in blocks' not |
From the "I need to..." routing table, select the guide that matches the task. The routing table lists guide filenames. Fetch the raw markdown:
curl -s https://raw.githubusercontent.com/camoa/dev-guides/main/docs/{topic-path}/{guide-filename}.md
Example: curl -s https://raw.githubusercontent.com/camoa/dev-guides/main/docs/drupal/forms/form-validation.md
Do NOT use WebFetch on GitHub Pages URLs — you'll get rendered HTML, not the guide content.
Do NOT just read and summarize. Extract and apply:
| Step | Action |
|---|---|
| Cache check | curl -s llms.hash, compare with cached hash |
| Find topic | Match task keywords in cached llms.txt |
| Get routing table | curl -s raw GitHub URL for topic index.md |
| Disambiguate | Check guide-meta: concepts/not fields |
| Get guide | curl -s raw GitHub URL for specific guide .md |
| Apply | Extract patterns and implement, don't summarize |
| Mistake | Fix |
|---|---|
| Using WebFetch instead of curl | Always use curl -s — WebFetch returns AI summaries or 400KB HTML shells |
| Reading guide and only summarizing | Extract patterns and apply to current task |
| Grabbing first keyword match | Check guide-meta not fields for disambiguation |
| Fetching llms.txt every time | Check llms.hash first, use cache |
Ignoring requires | Load prerequisites first |
| User says | Action |
|---|---|
| "I need to create a Drupal form" | Match "form" → drupal/forms/ → fetch index.md → pick guide for form creation |
| "Add a story.yml for my component" | Match "story.yml" → check guide-meta → drupal/ui-patterns/ (NOT storybook) |
| "Set up responsive images" | Match "responsive image" → drupal/image-styles/ (NOT drupal/media) |
| "How do I use Config Split?" | Match "Config Split" → drupal/config-management/ |
| "I need SOLID architecture for my module" | Drupal context → drupal/solid/ (NOT generic dev-solid-principles) |
| Problem | Fix |
|---|---|
curl fails (network error) | Fall back to references/guide-index.md for keyword-to-URL lookup |
| No topic matches the task | Broaden keywords, check category sections in llms.txt, or task may not need a guide |
| Cache file path unknown | Use Bash: echo ~/.claude/projects/*/memory/ to find the project memory directory |
| Guide content too large for context | Request only the specific section from the routing table, not the entire guide |
references/cache-format.md — cache file formatreferences/manifest-schema.md — build output (llms.txt + llms.hash)references/guide-index.md — fallback keyword table (offline/network failure)npx claudepluginhub camoa/claude-skills --plugin dev-guides-navigatorLoads Drupal methodology references like TDD, SOLID, DRY, Library-First and delegates to dev-guides-navigator for online guides during Phase 2 feature design and architecture drafting.
Grounds every framework-specific code decision in official documentation. Verifies patterns by detecting stack versions and fetching authoritative sources before implementation.