Agent skills for integrating Damoov SDK, backend registration flows, platform APIs, trip/statistics APIs, and integration testing into customer applications.
These skills are written for AI coding agents such as OpenAI Codex, Claude Code, Cursor, and other
agents that can load local skill folders with SKILL.md files.
Use damoov-telematics-skill first.
It is the customer-facing orchestrator skill. It reads the user's request, chooses the right Damoov skill or skill sequence, asks for missing information when needed, and verifies the result against the selected target skill.
Use the lower-level skills directly only when you already know the exact area you want: Android, iOS, Flutter, React Native, backend registration, user management, product management, trips/statistics, or integration testing.
- Install the self-hosted Damoov plugin, or install the skills manually.
- Ask your agent to use
damoov-telematics-skill. - Describe the integration task in normal engineering terms.
- Let the orchestrator route to the specific Damoov skill.
Example prompts:
Use $damoov-telematics-skill to integrate Damoov into this Flutter app and tell me what backend data I need.
Use $damoov-telematics-skill to add an admin endpoint that finds a Damoov user by DeviceToken and updates EnableTracking.
Use $damoov-telematics-skill to review this repository and tell me whether the mobile SDK, backend registration, and trips APIs are wired correctly.
Use $damoov-telematics-skill to create an end-to-end test plan for registering a DeviceToken, passing it to the mobile SDK, and validating trips.
If your agent does not support $skill-name syntax, use plain text:
Use the damoov-telematics-skill for this task.
Do not invoke skills with CODEOWNERS handles such as @Mobile-Telematics/mobile-sdk.
Those handles are for review routing, not skill execution.
Use this path when your agent supports plugins. The plugin installs the same public skills and
keeps damoov-telematics-skill as the main entrypoint.
Replace the repository value with the public repository you publish:
REPO="Mobile-Telematics/damoov-telematics-skills"Codex reads the repo marketplace from .agents/plugins/marketplace.json:
codex plugin marketplace add "$REPO"Claude Code reads the marketplace from .claude-plugin/marketplace.json:
/plugin marketplace add Mobile-Telematics/damoov-telematics-skills
/plugin install damoov-telematics@damoov-telematics
Cursor reads the marketplace from .cursor-plugin/marketplace.json. For team distribution, import
the public repository as a team marketplace:
Dashboard -> Settings -> Plugins -> Import
Repository URL: https://github.com/Mobile-Telematics/damoov-telematics-skills
After installing, start with the orchestrator:
Use $damoov-telematics-skill to route this Damoov integration task.
In Claude Code, plugin skills are namespaced. Use:
/damoov-telematics:damoov-telematics-skill
| Area | Skill folder | Use when |
|---|---|---|
| Orchestrator | skills/damoov-telematics-skill/ |
You want one entrypoint that routes Damoov tasks to the right skill. |
| Android | skills/mobile/android-telematics-sdk-integration-skill/ |
Native Android Kotlin SDK integration, migration, review, permissions, lifecycle, tracking, tags, and trips. |
| iOS | skills/mobile/ios-telematics-sdk-integration-skill/ |
Native iOS Swift SDK integration, SPM setup, lifecycle forwarding, background modes, tracking, and tags. |
| Flutter | skills/mobile/flutter-telematics-sdk-integration-skill/ |
Flutter plugin integration plus Android and iOS host setup. |
| React Native | skills/mobile/react-native-telematics-sdk-integration-skill/ |
React Native plugin integration plus Android and iOS host setup. |
| Backend | skills/backend/damoov-backend-registration-skill/ |
Production DeviceToken registration, InstanceKey secrecy, Admin JWT lifecycle, and secure User JWT issuance. |
| User Management | skills/backend/damoov-user-management-skill/ |
Find, update, delete, move users, and manage service flags such as EnableTracking. |
| Product Management | skills/backend/damoov-product-management-skill/ |
Create, read, update, and delete Applications and Instances from backend/admin tooling. |
| Trips & Statistics | skills/backend/damoov-trips-statistics-skill/ |
Trips, trip details, safety scores, eco scores, driving statistics, daily breakdowns, and consolidated indicators. |
| Testing | skills/testing/damoov-integration-testing-skill/ |
Test DeviceToken creation and integration validation. |
Use this fallback when your agent supports skills but not plugins, or when you want Stripe-style manual skill installation.
REPO="Mobile-Telematics/damoov-telematics-skills"Install all skills from the repository source layout:
npx skills add "$REPO" --skill '*' --agent codex -y
npx skills add "$REPO" --skill '*' --agent claude-code -yList available skills before installing:
npx skills add "$REPO" --listInstall from a local checkout of the public repository:
npx skills add . --skill '*' --agent codex -y
npx skills add . --skill '*' --agent claude-code -yUse manual install when your agent reads skill folders directly or when you vendor the skills in a customer repository.
Keep the repository layout intact. Several skills reference shared files in sibling folders.
Codex project install:
SKILLS_SRC="$PWD/vendor/damoov-telematics-skills"
mkdir -p .agents/skills
ln -sfn "$SKILLS_SRC/skills" .agents/skills/damoov-telematicsCursor project install:
SKILLS_SRC="$PWD/vendor/damoov-telematics-skills"
mkdir -p .cursor/skills
ln -sfn "$SKILLS_SRC/skills" .cursor/skills/damoov-telematicsClaude Code project install:
SKILLS_SRC="$PWD/vendor/damoov-telematics-skills"
mkdir -p .claude/skills
ln -sfn "$SKILLS_SRC/skills" .claude/skills/damoov-telematicsFor other agents, use the equivalent project-level skills directory and symlink or copy the whole
skills/ subtree so cross-skill relative links continue to resolve.
Prefer installing all skills so damoov-telematics-skill can route across mobile, backend, and
testing. Install one skill only for narrow environments.
Examples:
npx skills add "$REPO" --skill damoov-telematics-skill --agent codex -y
npx skills add "$REPO" --skill android-telematics-sdk-integration-skill --agent codex -y
npx skills add "$REPO" --skill ios-telematics-sdk-integration-skill --agent codex -y
npx skills add "$REPO" --skill flutter-telematics-sdk-integration-skill --agent codex -y
npx skills add "$REPO" --skill react-native-telematics-sdk-integration-skill --agent codex -y
npx skills add "$REPO" --skill damoov-backend-registration-skill --agent codex -y
npx skills add "$REPO" --skill damoov-user-management-skill --agent codex -y
npx skills add "$REPO" --skill damoov-product-management-skill --agent codex -y
npx skills add "$REPO" --skill damoov-trips-statistics-skill --agent codex -y
npx skills add "$REPO" --skill damoov-integration-testing-skill --agent codex -yRun the install command again after pulling a newer version:
npx skills add "$REPO" --skill '*' --agent codex -y
npx skills add "$REPO" --skill '*' --agent claude-code -yIf installed with skills:
npx skills update -y
npx skills update --global -ydamoov-telematics-skill does not implement Damoov APIs by itself. It routes to target skills and
requires the agent to load those target skills before editing code.
Common routes:
| Request | Orchestrator route |
|---|---|
| "Integrate Damoov into this Android app" | Android SDK skill |
| "Integrate Damoov into this Flutter app" | Flutter SDK skill |
| "Register users from our backend and return User JWT" | Backend registration skill |
| "Find a user by DeviceToken and update EnableTracking" | User management skill |
| "Create an Application and Instance" | Product management skill |
| "Fetch trips and safety score" | Trips & statistics skill |
| "Create a test DeviceToken and validate the integration" | Integration testing skill |
| "Set up a full mobile + backend integration" | Backend registration -> mobile SDK skill -> integration testing |
When the request is ambiguous, the orchestrator asks the smallest routing question, for example:
Which mobile stack is this: Android, iOS, Flutter, or React Native?
Use direct prompts when you intentionally want to bypass the orchestrator:
Use $android-telematics-sdk-integration-skill to integrate Damoov into this native Android Kotlin app.
Use $ios-telematics-sdk-integration-skill to review this iOS app for lifecycle, permissions, tracking, and tag issues.
Use $damoov-backend-registration-skill to implement a backend endpoint that registers a Damoov user and stores the DeviceToken linked to my app user.
Use $damoov-user-management-skill to add an admin endpoint that finds a user by DeviceToken and updates EnableTracking.
Use $damoov-trips-statistics-skill to add backend endpoints for trips, safety scores, eco scores, and driving statistics.
skills/
damoov-telematics-skill/ Top-level Damoov routing skill
backend/ Backend registration, user/product management, trips, statistics, and JWT skills
mobile/ Mobile SDK integration skills and shared DeviceToken/RTLD references
testing/ Test user creation and integration validation skills
Each skill folder contains a SKILL.md file. Some skills also include:
references/for API details, code patterns, curl examples, and verified response notes.agents/for optional agent-specific metadata.
GitHub uses .github/CODEOWNERS during pull request review. To check the same ownership routing
locally:
scripts/codeowners-local.shCheck specific paths:
scripts/codeowners-local.sh skills/mobile/ skills/backend/damoov-backend-registration-skill/SKILL.mdCurrent routing:
skills/damoov-telematics-skill/ -> @Mobile-Telematics/skills-maintainers
skills/mobile/ -> @Mobile-Telematics/mobile-sdk
skills/backend/ -> @Mobile-Telematics/backend
skills/testing/ -> @Mobile-Telematics/qa
These owners are for review routing only. They are not plugins, skills, or invocation commands.
Never commit real Damoov credentials, InstanceKey, Admin JWT, User JWT, DeviceToken, customer
IDs, or production identifiers into application code, tests, docs, logs, or skill files.
Use placeholders in examples:
<CompanyId>
<AppId>
<InstanceId>
<InstanceKey>
<DeviceToken>
<admin-jwt>
<user-jwt>
Store real values in a local secret manager, CI secret store, environment variables, or your organization's approved credential system.
If a skill does not appear in your agent:
- Confirm the installed directory contains
SKILL.md. - Confirm the
SKILL.mdfile hasnameanddescriptionfrontmatter. - Restart the agent if it does not hot-reload skills.
- Install or symlink the whole repository layout when a skill references sibling folders.
- Use an explicit prompt such as
Use $damoov-telematics-skill ....
If generated code looks generic:
- Ask the agent to load
damoov-telematics-skillfirst. - Ask it to name the target Damoov skill it selected.
- Ask it to cite the skill reference file it used for endpoint names, request fields, response fields, and SDK method names.