Claude-Mind: Skill for Claude Code

.claude/skills/aspirations-strategic-scan/SKILL.md

aspirations-strategic-scan is a skill for Claude Code from zkysar1/Claude-Mind. It costs 96 tokens per session (28,831 once invoked), scanned A, original, MIT.

A recurring strategic review that examines outside signals, recent task results, knowledge gaps, portfolio balance, and the agent's motivations. It then suggests new areas of work based on what it finds.

In plain words
What is it for?
Use it for periodic reviews of goals, infrastructure, email, audit records, knowledge freshness, and unexplored work that may deserve attention.
Why use it?
It helps an agent notice broader opportunities and unmet needs instead of reacting only to the latest task or conversation.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

This is zkysar1/Claude-Mind's own configuration. It tells Claude Code how to work on Claude-Mind itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything Claude-Mind configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is echo '{"date":"<today>","event":"strategic_scan","details":"{len(signals)} signals: {len(high_signals)} HIGH, {len(medium_signals)} MEDIUM, {len(low_signals)} L.

Reuse

Borrowing it

Nothing to install: this file belongs to zkysar1/Claude-Mind. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/zkysar1/Claude-Mind/main/.claude/skills/aspirations-strategic-scan/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/zkysar1/Claude-Mind

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for aspirations-strategic-scan

README.md
[![agentmods](https://agentmods.dev/badge/skills/zkysar1/claude-mind/aspirations-strategic-scan/github.svg)](https://agentmods.dev/skills/zkysar1/claude-mind/aspirations-strategic-scan)
Your own site
<a href="https://agentmods.dev/skills/zkysar1/claude-mind/aspirations-strategic-scan"><img src="https://agentmods.dev/badge/skills/zkysar1/claude-mind/aspirations-strategic-scan/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for aspirations-strategic-scan

Your own site · 80×15
<a href="https://agentmods.dev/skills/zkysar1/claude-mind/aspirations-strategic-scan"><img src="https://agentmods.dev/badge/skills/zkysar1/claude-mind/aspirations-strategic-scan.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 96 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 28,831 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Anti-Refusal · line 70
    Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.
    Fix: Remove instructions that suppress warnings, disclaimers, or ethical commentary. Let the agent surface safety-relevant caveats to the user.
  • high Tool Misuse · line 275
    Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
    Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00096 $0.28831
Opus 5 $0.00048 $0.14416
Sonnet 5 $0.00019 $0.05766
Haiku 4.5 $0.00010 $0.02883

Measured today against content hash 940a99fa94f6, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

aspirations-strategic-scan scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

# `subprocess.run(..., shell=True)` uses **/bin/sh** (dash on the Linux
.claude/skills/aspirations-strategic-scan/SKILL.md · 1,575 lines

How it starts

The opening of the file, as written. The whole thing — 1,575 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/aspirations-strategic-scan -- Strategic Environmental Scan

Periodically "step back and look at the world." Unlike sparks (reactive to one goal) or evolution (watching agent learning curves), this skill reads the ENVIRONMENT -- recurring goal outputs, knowledge freshness, portfolio balance, and unexplored territory -- and generates work from what it observes.

Design principle: Sparks ask "what did I just learn?" Evolution asks "how am I growing?" Strategic scan asks "what does the world need?" This is the intrinsic motivation engine.

Inputs

  • scan_trigger: Why the scan was triggered ("goal_cadence", "recurring_settling", "time_cadence")
  • source: Source identifier for goal/aspiration creation

Step 0: Load Conventions

Bash: load-conventions.sh with each name from the conventions: front matter. Read only the paths returned (files not yet in context). If output is empty, proceed.

Phase S1: Recurring Goal Output Review

Read recent execution history for each recurring goal. Recurring goals are the agent's "sensors" -- they periodically observe the world and produce data. This phase reads that data and looks for signals that demand new work.

# ⛔ ALREADY OWNED — DO NOT RE-FILE. The header used to read "KNOWN-INERT"; that
# is FALSIFIED as of 2026-08-16 — the `achievedCount` gate is LIVE (echo, cc-03,
# both files in one call: summary 36 of 220 carry the key and 34 clear `>= 2`, so
# S1 selects ~34 sensors/scan; the full compact carries 92/74). The prior
# 0-of-2437 reading (zeta, cc-02, 2026-08-12) was real and is SUPERSEDED; when and
# why the field appeared is unmeasured — do not assert a cause. A recurrence now
# announces itself via the zero-guard below rather than printing as health.
#
# ⚠ THE GATE GOING LIVE MADE THIS PHASE MORE DANGEROUS, NOT LESS — a silent
# no-op became a confidently-stale detector, and the second owner below is now
# the binding defect. S1 reads only the BOUND AGENT's experience file, and world
# sensors are run by whichever agent picks them up. Measured the same run on
# `g-335-09` (the live customer-spend monitor — a revenue sensor): this box held
# **7 of 30** records fleet-wide (23%), newest local **2026-08-02** against fleet
# newest **2026-08-16** on zeta. Read locally, S1 would have reported "30th
# consecutive zero-live run" as a current finding while the fleet was at run 48+,
# and zeta's two newest records are titled `refusing-a-zero-from-the-wrong-channel`
# and `dark-envs-keep-billing` — i.e. that zero had already been refused.
# BEFORE REPORTING ANY S1 TREND: count the sensor's records across ALL agent
# stores (`/opt/ayoai-mind/agents/*/experience*.jsonl`) and compare the newest
# fleet-wide timestamp to your newest local one. A local-only read of a world
# sensor is a claim about this box, never about the sensor.
# ⚠ THAT COMPARISON CANNOT RUN ON THE WORST CASE: `mine == 0` yields no local
# timestamp, and `len(entries) < 2 -> continue` drops the sensor BEFORE any
# detector — no signal, no warning, no count, so "healthy" and "invisible to this
# box" print identically (guard-1715). Measured 2026-08-19 (alpha, cc-04,
# 6.8.0-137-generic), top-10 sensors / 6 stores: 10/10 cross-agent, 9/10 local <
# fleet; `g-353-03` read **mine 0 of 12** (bravo holds all 12), `g-115-151`
# (production health, ach=140) mine 1/5 with local newest 26d behind fleet. The
# only mine==fleet row was alpha-private by construction. SO: report the
# `mine/fleet` census per sensor and name `mine < 2` rows DROPPED. Owned by
# g-115-3215 — file nothing.
#
# OPEN OWNERS (re-verify before acting): **g-115-3215** — the cross-agent
# blindness, now the LIVE one; g-115-5318 (8 of 10 recurring goals have <2
# experience records). g-115-3246 CLOSED 2026-08-21: its S1 premise expired with
# the FALSIFIED line above, and it shipped the zero-guard below.
#
# This marker exists because the ritual honestly recomputes S1 every scan, so with
# nothing here saying the finding is known, each pass re-derives it as new — the
# guard-1984 shape (a guardrail cannot outvote the instrument it guards), so the
# note belongs in the INSTRUMENT, not in another goal (rb-7613). A suppression
# marker with no re-examination path makes the first suppression the last one
# forever (tree node `detector-dedup-lease-without-release`); the FALSIFIED line
# above is that release — RE-MEASURE, do not inherit.
#
# The old `lastAchievedAt is not None` substitute is NO LONGER NEEDED (it was a
# workaround for the absent field). Run the gate as written. Do NOT file a goal
# about the gate itself.
Bash: load-aspirations-compact.sh -> IF path returned: Read it
recurring_goals = [g for asp in compact for g in asp.goals
                   if g.get("recurring", False) and g.get("achievedCount", 0) >= 2]
# REGRESSION GUARD (g-115-3246), symmetric with S2's below: the fleet HAS recurring
# sensors, so a 0 here means the projection lacks `achievedCount`, NOT that the
# fleet is quiet. A detector whose broken state renders identically to its healthy
# state is invisible -- that asymmetry is why S2a was caught and S1 was not.
recurring_total = sum(1 for asp in compact for g in asp.goals if g.get("recurring", False))
IF len(recurring_goals) == 0:
    Output: ">> WARN strategic-scan S1: 0 sensors from {recurring_total} recurring goals -- projection likely lacks `achievedCount` (g-115-3246). Check WHICH file load-aspirations-compact.sh returned before trusting 'no recurring-sensor signals': the full compact carries the field, the summary does not."

signals = []
FOR EACH rg in recurring_goals (cap at 10 most-recently-achieved):
    # Read last 3 experience entries for this recurring goal
    Bash: experience-read.sh --goal {rg.id}
    entries = parse result

    IF entries is empty or len(entries) < 2: continue  # need 2+ for trend

    # S1a: Regression detection
    # Are metrics, health indicators, or quality measures getting WORSE
    # across recent entries? The LLM interprets the experience text --
    # this is domain-agnostic because any recurring goal's output works.
    # Look for: error counts increasing, success rates decreasing,
    # response times increasing, data quality declining, scores dropping.
    IF entries show worsening trend across 2+ consecutive executions:
        signals.append({
            type: "regression",
            source_goal: rg.id,
            aspiration: rg.parent_asp_id,
            description: "Recurring goal '{rg.title}' shows worsening trend: {what_is_declining}",
            severity: "HIGH",
            evidence: [concise entry summaries]
        })

    # S1b: Anomaly detection
    # Did the most recent execution produce results significantly
    # different from the prior pattern? Not necessarily worse -- just different.
    # Anomalies are worth investigating because they signal change.
    IF latest entry is significantly different from prior entries:
        signals.append({
            type: "anomaly",
            source_goal: rg.id,
            aspiration: rg.parent_asp_id,
            description: "Anomaly in '{rg.title}': {what_changed}",
            severity: "MEDIUM",
            evidence: [concise entry summaries]
        })

    # S1c: Stagnation detection
    # Has this recurring goal produced identical/near-identical results
    # for 3+ consecutive executions? If so, the monitoring may need to
    # look at something different, or the thing being monitored is stuck.
    IF all entries are semantically identical for 3+ executions:
        signals.append({
            type: "stagnation",
            source_goal: rg.id,
            aspiration: rg.parent_asp_id,
            description: "Recurring goal '{rg.title}' producing identical results for {N} executions -- monitoring may need to evolve or the subject is stuck",
            severity: "LOW",
            evidence: [latest entry summary]
        })

Read the full file on GitHub · 1,575 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed 940a99fa94f6
  2. 4d ago Changed · +13 lines 8f9f0479b780
  3. 9d ago Changed · -3 lines be19bbcddf65
  4. 12d ago First seen · 1,565 lines · 96 tokens per session scan A 5026a0f4e3b5

Subscribe to this mod's changes

aspirations-strategic-scan is a skill published in the GitHub repository zkysar1/Claude-Mind (5 stars, last pushed yesterday), licensed MIT. It adds 96 tokens to every session and 28,831 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

hive.browser-automation

Required before any hive-browser CLI command. The browser is driven from the terminal by running hive-browser ... --json via terminalexec — not via MCP tools. Teaches the browser lifecycle rules (the bridge attaches to the USER'S running Chrome — never kill or launch browser processes; timeouts are transport issues…

aden-hive/hive · 142 tokens

hive.worker-delegation

Concrete patterns for breaking colony work into parallel worker jobs via runplaybook — when fan-out helps, how to model the goal as a tracker table, write the worker skill, author the playbook, pilot, and let convergence retry/resume the gap.

aden-hive/hive · 58 tokens

hive.linkedin-automation

Read before automating LinkedIn with browser tools. LinkedIn combines shadow DOM (#interop-outlet), strict Trusted Types CSP that silently drops innerHTML, Lexical composer, native beforeunload dialogs that hang the bridge, and aggressive spam filters — each has bitten us at least once. Verified flows for profile…

aden-hive/hive · 99 tokens

hive.x-automation

Read before automating X / Twitter with browser tools. Verified flows for post, reply, delete, search-and-engage, plus the Draft.js compose quirks that silently disable the send button. Includes the daily-reply and job-market-reply playbooks. Requires hive.browser-automation for the underlying screenshot + coordinate…

aden-hive/hive · 81 tokens

hive.slack-notifications-setup

Set up a Slack notification channel (Sentinel) for a colony by driving the browser — reuse or create the "Hive Sentinel" Slack app from a JSON manifest, install it, capture the bot + app tokens, create/select the channel via the Slack API, and turn Sentinel on so the colony can ping the user on Slack and accept…

aden-hive/hive · 136 tokens

hive.writing-hive-skills

Author a new Agent Skill for a Hive agent that conforms to the Agent Skills specification (SKILL.md with YAML frontmatter, optional scripts/references/assets directories). Use when the user asks to create, scaffold, add, or package a new skill for a Hive agent.

aden-hive/hive · 63 tokens