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.
From dev-guides-navigatornpx claudepluginhub camoa/claude-skills --plugin dev-guides-navigatorThis skill is limited to using the following tools:
references/cache-format.mdreferences/guide-index.mdreferences/manifest-schema.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
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)