CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

actual-setup

Set up Actual Computer (actual.inc) inference in Hermes.

60

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./optional-skills/devops/actual-setup/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

92%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is an exemplar of operational writing: every step is an executable command, both relay and local flows carry explicit verification probes, and the pitfalls encode hard-won failure knowledge (reasoning_effort 400s, context-window overflow masquerading as SSE bugs, download-id vs installed-name confusion) with concrete remediation. The only criticism is modest duplication between the Quick Reference table, the How-to-Run steps, and the Verification section, which could be consolidated to save tokens.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious operational knowledge (exact commands, error strings like 'Expecting value: line 1 column 1 (char 0)' and 'Provider returned an empty stream', issue numbers, and the 409-without-quantization rule) and explains nothing Claude already knows. It loses a point to duplication rather than padding: the Quick Reference table repeats values already stated in How to Run (relay URL, ACTUAL_API_KEY, ACTUAL_BASE_URL, provider id), and the Verification section repeats the same 'hermes chat -Q -q ...' commands verbatim from the step lists. This is 'efficient; minor instances... that could be trimmed' (anchor 4), not anchor 5's 'every token earns its place'.

4 / 5

Actionability

Every step is a copy-paste-ready command: curl for model discovery, 'hermes config set model.provider actual', 'actual models download "Qwen/Qwen2.5-0.5B-Instruct-GGUF/Q4_K_M"' with the exact repo/quant string, and verification probes with deterministic expected outputs ('Reply with exactly: ACTUAL_OK' / 'LOCAL_OK'). The few placeholders (MODEL_ID_FROM_DISCOVERY, INSTALLED_MODEL_NAME) are not gaps — the preceding discovery steps tell you exactly where to get their values, and the skill distinguishes download ids from installed names explicitly. This matches anchor 5: 'Fully executable... specific examples cover the common cases'.

5 / 5

Workflow Clarity

Both flows (relay and local) are clearly numbered with explicit validation checkpoints at each phase — verify the key via /v1/models, verify end-to-end with a deterministic probe, verify with a reduced toolset in local mode. Error-recovery feedback loops are present throughout: expired device codes ('re-run actual for a fresh one'), 400s on reasoning effort (clamp or 'agent.reasoning_overrides.<model>: high'), empty-stream symptom with three concrete fixes, and 409 downloads ('explicit quantization'). This is anchor 5: 'Clear sequence with explicit validation steps; feedback loops for error recovery'.

5 / 5

Progressive Disclosure

The body is a well-sectioned overview (When to Use, Prerequisites, How to Run, Quick Reference, Pitfalls, Verification) that keeps core workflow inline while offloading the peripheral OpenCode-client integration to a single clearly signaled one-level-deep reference ('For other OpenAI-compatible clients (e.g. OpenCode), see references/opencode.md' — the file exists in the bundle). There is no nesting of references and no monolithic inline dump of material that belongs elsewhere. This fits anchor 5: 'Clear overview with well-signaled one-level-deep references... easy navigation'.

5 / 5

Total

19

/

20

Passed

Description

52%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is distinct and unambiguous about its niche, but it is a single generic action verb short on concrete capabilities and entirely lacks trigger guidance. Users searching for 'actual', 'local inference', or 'provider setup' would find it, but the model has no 'use when' signal to decide invocation, and the description understates the two-mode capability (relay and local daemon) the skill actually covers.

Suggestions

Add an explicit 'Use when...' clause, e.g. 'Use when the user wants actual.inc as a Hermes inference provider, mentions an ac_ key, or wants fully-local on-device inference.'

Enumerate the concrete actions the skill performs: configure relay or local daemon modes, set ACTUAL_API_KEY/ACTUAL_BASE_URL, download and load GGUF models, and verify the provider end-to-end.

Include natural trigger variations users would actually say: 'local inference', 'self-hosted', 'OpenAI-compatible provider', 'gguf', 'Actual Computer'.

DimensionReasoningScore

Specificity

The description names the domain — "Set up Actual Computer (actual.inc) inference in Hermes" — but the only action is the generic verb "Set up", with no concrete sub-actions (relay vs local modes, key/env-var configuration, model download). This matches anchor 2 ('Names the domain but actions are minimal or generic', e.g. 'Processes PDF files') rather than anchor 3, which requires 1-2 concrete actions like 'extracts content'.

2 / 5

Completeness

The 'what' is clear (set up Actual Computer inference as a Hermes provider), but there is no 'when' guidance at all — no 'Use when...' clause or equivalent trigger phrasing. Per the judging guidelines, a missing 'Use when...' clause caps completeness at 3, and anchor 3 ('Has a clear what but when is missing') is the exact fit; anchor 4 requires explicit when-guidance which is absent.

3 / 5

Trigger Term Quality

It contains relevant specific keywords ("Actual Computer", "actual.inc", "inference", "Hermes", "Set up") but misses common natural variations users would say — local inference, self-hosted, OpenAI-compatible, relay, gguf, model setup. This is 'some relevant keywords but missing common variations or synonyms' (anchor 3), above anchor 2 because the terms present are genuinely specific rather than generic filler.

3 / 5

Distinctiveness Conflict Risk

Naming two specific products — "Actual Computer (actual.inc)" and "Hermes" — carves out a very narrow niche that virtually no other skill would occupy, so conflict risk is minimal ('Clear niche with distinct triggers; minimal conflict risk'). It cannot score higher than 5, and unlike anchor 4's 'minor overlap risk with closely related skills', there are no closely related skills that would plausibly collide on these triggers.

5 / 5

Total

13

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository

NousResearch/hermes-agent

Path

optional-skills/devops/actual-setup/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.