Skip to content
Merged
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
9 changes: 9 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,12 @@ Open the changed pages in a browser and verify they render correctly.
### Order matters

Run prettier first because it can change line breaks that affect markdownlint results. Run vale after markdownlint because some markdownlint fixes (like adding language tags to code blocks) can resolve vale false positives. Run `make build-prod` last because it is the slowest and catches the broadest class of errors.

## Generated SDK reference docs

`static/include/**/apis/generated/*.md` (and the paired `*-table.md` summary tables) are generated by `.github/workflows/update_sdk_methods.py` from `.github/workflows/sdk_protos_map.csv`. Do not hand-edit generated files—edit the CSV and/or the proto override file, then regenerate.

- **Not covered by the standard pre-PR checks above.** `prettier-lint.yml` only checks `docs/**/*.md`, and `markdown-lint.yml` explicitly excludes `static/`. Running `prettier --write` on generated files introduces unrelated reformatting noise (quote style, indentation) that CI never enforced. `make build-prod` still applies and is the right check for changes here.
- **Script dependencies aren't in `requirements.txt`.** That file is for the `docs.yml` index-sync jobs. `update_sdk_methods.py` needs `beautifulsoup4` and `markdownify`—see the `pip install` line in `check-methods.yml` for the authoritative list. Run it in a scratch venv; don't install into a shared environment.
- **Proto descriptions are hand-maintained, not scraped**, even though method signatures/params/examples are scraped live from each SDK's docs site. One override file per proto, `static/include/<app|components|services|robot>/apis/overrides/protos/<resource>.<ProtoName>.md`, holding a one-sentence description used both verbatim on the detail page and (first-sentence-only) in the summary table. A missing override doesn't fail the build—it just leaves that method's description blank and prints a `WARNING: ... has no proto description override file` from the weekly coverage job (`check-methods.yml`, `continue-on-error: true`). No README covers this system; the rationale is in comments around `update_sdk_methods.py`'s `write_markdown()`.
- **Not every scraped SDK method needs a row.** Deprecated/orphaned services aren't necessarily excluded—`slam` is orphaned from navigation but still fully generated. `navigation` (restored as a deprecated orphan page in #5191) is the current exception: it has zero rows in `sdk_protos_map.csv` and isn't registered in the script's resource map, so its generated page is missing methods (for example, `GetStatus`) that the SDKs do implement—deliberately, to avoid actively maintaining a discontinued service's coverage. If another orphaned service shows up excluded like this, add it to this list rather than assuming a fresh investigation is needed.
Loading