OctoMeter
**Pattern:** Flagging `list[index]` as a crash risk when the call is already inside a `runCatching { }` block (or equivalent try/catch) in the caller.
Install / Use
npx skills add ryanw-mobile/OctoMeterInstalls into whichever agent you are using.
Amazon Q Rules
Amazon Q Developer rules
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of OctoMeter
OctoMeter scores 57/100 on our quality scale, 4177th of 4,617 Development & Engineering skills we index.
Its Amazon Q Rules is 2.6 KB long, split into 6 sections and no code examples: a solid amount of guidance for an agent.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- Our last check on 2026-10-20 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
OctoMeter compared with similar skills
All 4 of these similar skills score higher than OctoMeter; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| OctoMeter (this skill)by ryanw-mobile | 57 | 0 | — | Amazon Q Rules |
| taste-skillby Leonxlnx | 100 | 110.6k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 69.8k | today | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 46.6k | 2d ago | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 44d ago | SKILL.md |
Frequently asked questions
- How do I install OctoMeter?
- Run
npx skills add ryanw-mobile/OctoMeter. The install tabs above show the steps for each supported agent. - Which AI agents does OctoMeter work with?
- It is written for Amazon Q, as a Amazon Q Rules file. Other agents that read the same format can often use it too.
- Is OctoMeter safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is OctoMeter still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubAmazon Q Review Standards
Suppression Rules
Array index without bounds check inside runCatching
Pattern: Flagging list[index] as a crash risk when the call is already inside a runCatching { } block (or equivalent try/catch) in the caller.
Reason to suppress: Any IndexOutOfBoundsException thrown inside runCatching is caught and returned as Result.failure. The app produces an error state rather than a crash. This is the intended error-handling pattern in this codebase.
Example (rejected finding): token.split(".")[1] in Token.fromObtainKrakenToken, called from ApolloGraphQLEndpoint.obtainKrakenToken which wraps the call in runCatching.
Do not flag array/list index access as a crash risk unless the access is provably outside any exception-catching scope.
Redundant null check after lastOrNull predicate
Pattern: Flagging if (result?.field != null) as redundant when result came from lastOrNull { it.field != null } wrapped in runCatching { }.getOrNull().
Reason to suppress: The outer null check is NOT redundant. If runCatching catches an exception, getOrNull() returns null regardless of what lastOrNull would have returned. The check also enables Kotlin smart casting to a non-nullable type inside the if-block.
Do not flag defensive null checks as redundant when the value originates from a runCatching { }.getOrNull() chain.
Integer display format for meter readings
Pattern: Flagging value.toInt() or displayValue.toInt() in UI display code as "data loss" for meter reading values.
Reason to suppress: This codebase intentionally displays meter readings as whole-number kWh (e.g. "23800") for UI clarity. This is a deliberate display choice, not a bug. The underlying Double precision is preserved in the domain model; only the UI label is rounded.
Do not flag .toInt() on meter reading display values as data loss.
Inconsistent live/billing field pairing in ElectricityMeter
Pattern: Flagging liveConsumption ?: value / liveReadAt ?: readAt display logic as potentially pairing a telemetry source label with a billing timestamp when liveConsumption != null but liveReadAt == null.
Reason to suppress: liveConsumption and liveReadAt on ElectricityMeter are always set atomically together in SyncUserProfileUseCase.withLiveReadings() from the same LiveConsumption object. LiveConsumption.readAt is a non-nullable Instant, so liveReadAt == null implies liveConsumption == null. The inconsistent-pairing scenario is structurally impossible.
Do not flag theoretical null-pairing scenarios for fields that are guaranteed to be set atomically.
Related Skills
taste-skill
110.6kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
ai-job-search
69.8kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
46.6kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
