SkillAgentSearch skills...

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/OctoMeter

Installs into whichever agent you are using.

About this skill
📦

Amazon Q Rules

Amazon Q Developer rules

Quality Score

57/100

Supported Platforms

Amazon Q

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.

Substance
26/30
Structure
11/20
Description
15/15
Adoption
0/20
Freshness
5/15

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 found

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.

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.

SkillScoreStarsUpdatedFormat
OctoMeter (this skill)by ryanw-mobile570—Amazon Q Rules
taste-skillby Leonxlnx100110.6ktodayCLAUDE.md
ai-job-searchby ai-job-search-dev10069.8ktodayCLAUDE.md
claude-howtoby luongnv8910046.6k2d agoCLAUDE.md
algorithmic-artby anthropics100177.9k44d agoSKILL.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.

Amazon 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

View on GitHub
GitHub Stars0
CategoryDevelopment
UpdatedNaNy ago
Forks0

Trust signals

68/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 medium1 low