Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/scripts/resolve-doc-url.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
# Resolve a documentation URL to its source markdown file
# Usage: resolve-doc-url.sh "/path/to/page/"
# Usage: resolve-doc-url.sh "/url/path/"

if [ -z "$1" ]; then
echo "Usage: resolve-doc-url.sh <url>"
Expand Down
8 changes: 4 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ Before creating a new file, use Glob to explore the directory structure and unde
* **Headings** – H1 is generated from the front‑matter title. Subsequent headings increment by one level at a time. Don't use bold or italics as a replacement for headings. Use title case. Never start headings with numerals.
* **Lists and tables** – Bullet lists use asterisks; ordered lists use numbers followed by a period. If there are more than three data points per item, use a table instead. Use the same syntax and structure for all list items in a given list. Use complete sentences to introduce lists and tables, not partial sentences completed with the list items.
* **Indentation** – Four spaces for sub-lists and nested content. Alerts in lists are an exception: don't indent alert lines but do omit preceding blank line.
* **Links** – Use absolute paths starting with a leading slash (`/deployment/`). Use descriptive link text such as the page title, not "click here". To link to a heading, add an anchor ID (`{#anchor-id}`) next to the heading and use that ID in the URL (for example, `[Section title](/path/to/page#anchor-id)` to link to a heading in another page or `[Section title](#anchor-id)` to link to a heading in the same page).
* **Links** – Link using the target page's `url` front matter field, not its file system path (e.g., `/deployment/` from front matter, not `content/en/docs/deployment/_index.md`). Use descriptive link text such as the page title, not "click here". To link to a heading, add an anchor ID (`{#anchor-id}`) next to the heading and use that ID in the URL (for example, `[Prerequisites](/deployment/mendix-cloud/#prerequisites)` to link to a heading in another page or `[Prerequisites](#prerequisites)` to link to a heading in the same page).
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I opened this PR mostly to clarify this point—Claude was updating URLs for moved files based on the directory structure, not the url front matter.

* **Images** – Always include `alt` text (or `alt=""` if decorative). Use W3C guidelines. Reference images with the `figure` shortcode.
* **Code** – Use fenced code blocks with language specifier. Do not modify text that appears in code formatting (inline backticks or code blocks), even to fix apparent inconsistencies or apply naming conventions.

Expand All @@ -105,18 +105,18 @@ Call tools in parallel for independent operations (reading multiple files, multi

### Tool Selection

* **Helper Scripts**
* For URL resolution, use `bash .claude/scripts/resolve-doc-url.sh` instead of spawning agents. This resolves documentation URLs (e.g., `/community-tools/contribute-to-mendix-docs/`) to their source Markdown files and ensures Grep uses efficient flags consistently.
Copy link
Copy Markdown
Collaborator Author

@dbreseman dbreseman May 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated the wording here for a few reasons:

  • The helper script wasn't getting picked up consistently in my tests, so I gave it clear directions to use this script instead of agents, and moved it to the top of the tool selection section.
  • The helper script kept failing on its first attempt, so I added "bash" to the command.
  • The helper script is actually a grep wrapper—so it does still use grep to search front matter, just in a specific way.
  • /path/to/page might imply that the link is based on the directory structure, so I updated it to /url/path/ (or specific examples) to prevent confusion.

* **Read** – Use to view specific files you know the path to
* **Edit** – Use to modify existing files with targeted changes
* **Glob** – Use to find files by pattern (e.g., `*.md`, `**/*config*`)
* **Grep** – Use to search file contents for specific text or patterns
* **Write** – Use only for creating new files (prefer Edit for existing files)
* **Helper Scripts** – Use `.claude/scripts/resolve-doc-url.sh` to resolve documentation URLs (e.g., `/path/to/page/`) to their source markdown files. This is faster and more token-efficient than using Grep to search front matter.

### Cross-Reference Verification

When following or verifying documentation links:
* Use `.claude/scripts/resolve-doc-url.sh "/path/to/page/"` to quickly find the source file for a URL
* This is more efficient than Grep for URL-to-file lookups
* Use `bash .claude/scripts/resolve-doc-url.sh "/url/path/"` to quickly find the source file for a URL

When modifying URLs or anchor IDs:
1. Use Grep to search for the old URL/anchor across all documentation files
Expand Down
Loading