BC oma-lwm2m-expert
OMA LwM2M (Lightweight Machine-to-Machine) protocol expert covering all specification versions (v1.0 through v2.0), the full object/resource data model, transport bindings, security modes, and the surrounding ecosystem. Use whenever the user mentions: LwM2M, Lightweight M2M, OMA SpecWorks, OMNA registry, CoAP, DTLS, DTLS CID, Connection ID, RFC 9146, RFC 7252, RFC 7641, RFC 7959, RFC 8323, RFC 8613, OSCORE, TLV, SenML, CBOR, LwM2M CBOR, SenML-JSON, SenML-CBOR, bootstrap, bootstrap-server, device management, firmware update (FOTA/FUOTA), Queue Mode, PSK, RPK, x509, EST over CoAP, LwM2M gateway, Wakaama, liblwm2m, Leshan, Anjay, Californium, Zephyr LwM2M, mbedTLS DTLS, TinyDTLS, wolfSSL DTLS, LwM2M objects, LwM2M resources, IPSO smart objects, OMA DM, composite operations, Send operation, LwM2M server, LwM2M client, NB-IoT device management, LTE-M device management, LoRaWAN LwM2M, MQTT LwM2M, HTTP LwM2M, observation, notification, notification attributes, object registry, object versioning, endpoint client name, registration, deregistration, device twin, device shadow, blockwise transfer, CoAP observe, constrained devices, IoT device management protocol, M2M protocol, OMA enabler, TestFest, smart city IoT, eSIM provisioning LwM2M, RSP object 504, COSE object, LwM2M profile ID, delta firmware, edge computing proxy LwM2M, or any OMA-TS-LightweightM2M spec reference. Also trigger on questions about IoT device management protocols, constrained device communication, CoAP-based device management, or comparisons between LwM2M and other IoT protocols (MQTT, HTTP, TR-069, USP). Trigger on SGP.32, SGP.31, eSIM IoT, eIM, IPA, eUICC provisioning, Remote SIM Provisioning, GSMA RSP over CoAP, eSIM profile lifecycle, carrier switching IoT. Trigger on oneM2M interworking, TS-0014, LwM2M IPE, ETSI TS 118 114, oneM2M CSE, service layer bridge, oneM2M AE. Trigger on uCIFI, smart city data model, street lighting LwM2M, outdoor lamp controller, air quality object, waste container object,
As a process C 59/100 · Has gaps — weak spots: inputs and preconditions, running it twice, progress reporting
How to improve
- Shorten the description to 1024 characters.
- The SKILL.md body is over 5,000 tokens: move reference detail into references/ and load it when needed.
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 7
✓ No critical or high findings
Medium and low: 7
-
low Secrets in code
secret-high-entropy-tokenreferences/ecosystem.md:287High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)- Defined in OMA-…ort Appendix C
detector -
low Secrets in code
secret-high-entropy-tokenreferences/versions.md:59High-entropy token-like string (may be an id, hash or a credential)- OMA-…1_0
-
low Secrets in code
secret-high-entropy-tokenreferences/versions.md:362High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)Example: `OMA-…3-A`
quoted -
low Secrets in code
secret-high-entropy-tokenSKILL.md:74High-entropy token-like string (may be an id, hash or a credential)- **OMA-…ort** — transport bindings (UDP, TCP, SMS, Non-IP, MQTT, HTTP)
-
low Secrets in code
secret-high-entropy-tokenSKILL.md:78High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)When referencing these, include the version, e.g., "per OMA-…2_2, §6.4.2" or "see the ERELD for v1.2 feature additions."
quoted -
low Secrets in code
secret-high-entropy-tokenSKILL.md:245High-entropy token-like string (may be an id, hash or a credential)(per OMA-…2_2, §5.3.1)
-
low Secrets in code
secret-high-entropy-tokenSKILL.md:340High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)- **Spec document numbers matter.** When citing a spec, give both the document ID and the section (e.g., "OMA-…2_2, §5.4.5"). The Core and Transport TSs are separate documents
quoted
Files scanned: 15. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- error
description-longdescription is 4855 chars, limit 1024 - warning
body-longSKILL.md body ≈ 5493 tokens (recommended < 5000); move details to references/ - note
description-budgetdescription takes 4855 of the ~15000-char shared budget for all skills
Process rating: all ten parameters 59/100
- 0Inputs and preconditions. Does not say what the process needs to start
- 0Progress reporting. Says nothing while it works
- 30Running it twice. 17 mutating operations with no state check
- 50Failures and branches. 0 branches, has a failure section
- 60Tools and files. Uses tools (web) that frontmatter does not declare
- 60Result and completion. Output format stated, no completion criterion
- 70When it triggers. States when to use, but not when not to
- 70Execution cost. Instruction body is 5493 tokens
- 85Steps. 95 steps, 1 vague phrases
- 100Consistency. Name and required fields are in place
- medium Safety rules and hard prohibitions inside a skill: they belong in the system prompt, here they protect nothing
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 4854: 120–800 characters recommended
- +1No license
- +2Single-language instructions
- +5Description quotes 2 example trigger phrases
- +4Structure: 13 headings
- +3Step-by-step instructions: 95 items
- +3Output format is stated explicitly
- +4Has examples (2 code blocks)
- +4Reference files are cited in the instructions (8 of 8)
Quality base 70; lint remarks subtract, signals add up to 100. Result: 55.