Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Privacy-protected ID management with @domain/entity-client-identity — DeviceId, UserId, DatadogId, export-rules.json
.claude/skills/ledgerhq-client-ids/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | -19% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -42% | 0% |
@domain/entity-client-identity)Sensitive identifiers (DeviceId, UserId, DatadogId) must always use the domain entity package:
DeviceId, UserId, or DatadogId classes from @domain/entity-client-identity.exportUserIdForSomething()).domain/entity/client-identity/export-rules.json.toString() and toJSON() return [DeviceId:REDACTED] by design.| Package | Location | What it contains | |---|---|---| | @domain/entity-client-identity | domain/entity/client-identity/ | DeviceId, UserId, DatadogId classes + Redux slice, selectors, persistence | | @domain/api-push-devices | domain/api/push-devices/ | RTK Query mutation + Redux sync middleware |
DeviceId, UserId, or DatadogId classes from @domain/entity-client-identitytoString() and toJSON() return [DeviceId:REDACTED] by defaultexportUserIdForSomethingSomething())export-rules.json file in domain/entity/client-identity/ serves as a registry of all allowed use casescheck-export-rules.mjs script enforces the allowlist at build timeexportUserIdForSomethingSomething())domain/entity/client-identity/export-rules.json:json { "domain/entity/client-identity/src/ids/UserId.ts": { "exportUserIdForSomethingSomething": [ "your/new/file/path.ts" ] } }
domain/entity/client-identity/src/ids/ (e.g., NewId.ts)DeviceId.ts: Symbol storage, redacted toString/toJSON, export methodsexport-rules.jsontypescriptimport { DeviceId } from "@domain/entity-client-identity"; // ✅ Correct: Use the domain entity const deviceId = DeviceId.fromString("device-123"); // ❌ Wrong: Don't use raw strings const deviceId = "device-123"; // BAD
Other measured skills in the registry, with their headline benchmark lift.