SKILLEMALL.ai

BC portfolio-optimizer

Optimize investment portfolios through rebalancing, risk analysis, and tax-loss harvesting. Use when: (1) Rebalancing portfolio allocation, (2) Analyzing portfolio risk and diversification, (3) Finding tax-loss harvesting opportunities, (4) Calculating optimal asset allocation.

ClawHub Agent Skills author: saintlittlefish v1.0.0 5 files body ≈ 641 tokens Open the sourceclawhub.ai analyzed 4 d ago

As a process C 57/100 · Has gaps — weak spots: when it triggers, failures and branches, consistency

AnalyzerFinancetype and topics are labelled automatically from the skill text
JSON
Technical rating
B
89/100
safety, quality, tests
Safety 60%
99
Quality 40%
74
Run on models
none yet
Process rating
C
57/100
Has gaps
Failures and branches w 10
0
Progress reporting w 2
0
When it triggers w 12
20
the three weakest of ten parameters · all ten

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 · 1

    ✓ No critical or high findings

    Medium and low: 1
    • low Secrets in code secret-high-entropy-token scripts/billing_config.py:3
      High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)
      OWNER_WALLET = "0xF1…C55"
      quoted

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

    Against the Agent Skills spec

    • warning frontmatter-yaml SKILL.md: the frontmatter is not valid YAML (YAML parse error: Nested mappings are not allowed in compact mappings at line 2, column 14: description: Optimize investment portfolios through rebalancing, risk analysis,… ^ ); fields were read line by line. The usual cause is a colon inside an unquoted value

    Process rating: all ten parameters 57/100

    • 0Failures and branches. Linear process with no failure handling
    • 0Progress reporting. Says nothing while it works
    • 20When it triggers. No condition that starts the skill
    • 40Consistency. Frontmatter name (portfolio-optimizer) differs from the folder (xanadu-portfolio-optimizer)
    • 60Tools and files. Uses tools (python) that frontmatter does not declare
    • 60Result and completion. Output format stated, no completion criterion
    • 70Inputs and preconditions. Inputs and preconditions are listed
    • 100Steps. 26 steps
    • 100Execution cost. Instruction body is 641 tokens
    • 100Running it twice. No mutating operations

    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
    • +4Description does not say when NOT to use the skill (false activations)
    • -32 of 3 scripts are never mentioned in SKILL.md
    • +1No license
    • +2Single-language instructions
    • +3Description length 278: enough signal without eating the budget
    • +4Structure: 17 headings
    • +3Step-by-step instructions: 26 items
    • +3Output format is stated explicitly
    • +4Has examples (7 code blocks)

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

    External checks

    ClawHub: suspicious
    This skill needs Review because the supplied evidence shows charge-capable billing code and a hardcoded billing API key that are not clearly scoped to the expected user-facing purpose.
    LLM: suspicious (medium) · VirusTotal: · 29 May 2026