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.
curl -O https://raw.githubusercontent.com/zkysar1/Claude-Mind/main/.claude/skills/aspirations-strategic-scan/SKILL.mdgit clone --depth 1 https://github.com/zkysar1/Claude-MindWrote 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.
[](https://agentmods.dev/skills/zkysar1/claude-mind/aspirations-strategic-scan)<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.
<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>- NVIDIA SkillSpector warn
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.
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.
| Model | Per session | Once 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 |
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 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]
})
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.
- today Changed 940a99fa94f6
- 4d ago Changed · +13 lines 8f9f0479b780
- 9d ago Changed · -3 lines be19bbcddf65
- 12d ago First seen · 1,565 lines · 96 tokens per session scan A 5026a0f4e3b5
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.
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…
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.
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…
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…
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…
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.