.claude/skills/openapi-sync/SKILL.md
Enforces OpenAPI spec discipline when working on REST API endpoints in this project. Triggers whenever adding, modifying, or removing HTTP routes, request/response types, or API handlers in the Rust web-ui crate (`crates/web-ui`). Reminds the agent to (1) update the committed `openapi.json` spec, (2) run `make dump-openapi` to re-export the spec from the running server, and (3) run `make generate-flutter-client` to regenerate the Dart/dio client in `app/packages/assistant_api/`. Also applies when changing route parameters, status codes, or authentication on existing endpoints.
npx skillsauth add cedricziel/assistant openapi-syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Any change to the REST API must keep openapi.json and the generated Flutter client in sync. The Flutter app's app/packages/assistant_api/ package is generated code — never edit it manually.
Make the server compile and run so the spec can be exported.
Re-export the OpenAPI spec:
make dump-openapi
Calls the running server to produce a fresh openapi.json at the repo root.
Regenerate the Flutter Dart/dio client:
make generate-flutter-client
Requires openapi-generator (brew install openapi-generator).
Commit both openapi.json and the regenerated files in app/packages/assistant_api/ together with the API change in the same commit (or a follow-up commit in the same PR).
openapi.json at repo root reflects the new/changed endpointapp/packages/assistant_api/ has been regenerated via make generate-flutter-clientflutter analyze passes (cd app && flutter analyze)app/packages/assistant_api/tools
Browser automation via @playwright/mcp (Microsoft). Use this when the user wants to navigate websites, fill forms, take screenshots, scrape web content, test web apps, or run any multi-step browser workflow. Requires no display (headless mode supported).
testing
A minimal example WASM skill that returns a greeting. Use to verify that the WASM execution tier is working correctly.
development
Run coding agents (Claude Code, Codex, OpenCode, or others) as background processes for programmatic control. Use when you need non-blocking execution, parallel agents, PR reviews, or long-running coding tasks. Prefer this over direct bash for any task that takes more than ~20 seconds.
tools
Run tasks on the local machine using Claude Code CLI as a background agent. Use this when the user wants to execute code, edit files, run shell commands, build projects, analyse repositories, or do any agentic work on the device — especially multi-step tasks that benefit from Claude Code's tool-use loop. Supports fire-and-forget async jobs (non-blocking, via the native process tool) as well as quick blocking one-shot tasks and follow-up questions in the same session.