SKILLEMALL.ai

BC osint-investigation

Follow the money via public records and sanctions data.

NousResearch/hermes-agent Hermes author: NousResearch MIT 29 files · 16 scripts body ≈ 2 791 tokens Open the sourcegithub.com↗ analyzed 6 d ago

Follow the money via public records and sanctions data.

As a process C 60/100 · Has gaps — weak spots: result and completion, inputs and preconditions

IntegrationData and analyticsLegalResearchtype and topics are labelled automatically from the skill text
Runs in: Hermes Agent
JSON
Technical rating
B
93/100
safety, quality, tests
Safety 60%
100
Quality 40%
83
Run on models
none yet
Process rating
C
60/100
Has gaps
Result and completion w 14
0
Inputs and preconditions w 11
0
Failures and branches w 10
50
the three weakest of ten parameters · all ten

The same skill appears in 1 more place: hermes-agent

How to improve

    For the model run — optional
    • 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 · 0

    ✓ No critical or high findings

    Files scanned: 29. Evidence is masked. Grey chips explain why severity was lowered.

    Against the Agent Skills spec

    ✓ No remarks against the Agent Skills spec

    Process rating: all ten parameters 60/100

    • 0Result and completion. Does not say what the result is
    • 0Inputs and preconditions. Does not say what the process needs to start
    • 50Failures and branches. 0 branches, has a failure section
    • 60Tools and files. Uses tools (bash, web, python) that frontmatter does not declare
    • 60Consistency. The Hermes dialect needs category and tags
    • 100Steps. 25 steps
    • 100When it triggers. States when to use and when not to
    • 100Execution cost. Instruction body is 2791 tokens
    • 100Running it twice. No mutating operations
    • 100Progress reporting. Reports progress
    • 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

    • +5Description has no quoted example phrases that should trigger the skill
    • +3Description length 55: 120–800 characters recommended
    • +3Output format is not stated: the model decides each time
    • -32 of 16 scripts are never mentioned in SKILL.md
    • +2Single-language instructions
    • +4Description says when NOT to use the skill
    • +4Structure: 12 headings
    • +3Step-by-step instructions: 25 items
    • +4Has examples (7 code blocks)
    • +1License stated

    Quality base 70; lint remarks subtract, signals add up to 100. Result: 83.

    In the sandbox The scripts kept to themselves

    The skill's scripts were run in a throwaway machine: no network, fake keys in the home directory, a tracer watching. We wrote down what they did. Reaching for the network or for secrets caps the technical grade at C; a quiet run adds no points.

    Запущено 12 скриптов, ещё 4 не поместились в лимит; каждому дали двадцать секунд, поддельный домашний каталог с ключами и сеть, в которой ничего нет.

    Из них 10 не дошли до работы, и об их поведении мы ничего не узнали.

    scripts/_http.pyничего за пределами своей папки
    scripts/_normalize.pyничего за пределами своей папки
    scripts/build_findings.pyне запустился: build_findings.py: error: the following arguments are required: --cross-links
    scripts/entity_resolution.pyне запустился: entity_resolution.py: error: the following arguments are required: --left, --left-name-col, --right, --right-name-col, --out
    scripts/fetch_courtlistener.pyне запустился: fetch_courtlistener.py: error: the following arguments are required: --query, --out
    scripts/fetch_gdelt.pyне запустился: fetch_gdelt.py: error: the following arguments are required: --query, --out
    scripts/fetch_icij_offshore.pyне запустился: fetch_icij_offshore.py: error: the following arguments are required: --out
    scripts/fetch_nyc_acris.pyне запустился: fetch_nyc_acris.py: error: the following arguments are required: --out
    scripts/fetch_ofac_sdn.pyне запустился: fetch_ofac_sdn.py: error: the following arguments are required: --out
    scripts/fetch_opencorporates.pyне запустился: fetch_opencorporates.py: error: the following arguments are required: --query, --out
    scripts/fetch_sec_edgar.pyне запустился: fetch_sec_edgar.py: error: the following arguments are required: --out
    scripts/fetch_senate_ld.pyне запустился: fetch_senate_ld.py: error: the following arguments are required: --out

    10 Oct 2026