Agent skill

Ecosystem

by glebis in glebis/claude-skills

Audit the Claude Code ecosystem — skill health and staleness, project activity pulse, CLAUDE.md instruction drift, Mac Mini service status.

MITAuto-check passedAgent Workflows

Install Ecosystem

skills CLI
$ npx skills add glebis/claude-skills --skill ecosystem -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install glebis/claude-skills ecosystem --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/glebis/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/ecosystem .claude/skills/ecosystem && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ecosystem
GitHub stars
389
Token cost
~2.1k tokens
SKILL.md length
289 words
Files
1
Skills in repo
91
Repo updated
First seen
Licence
MIT

At a glance

Audit the Claude Code ecosystem — skill health and staleness, project activity pulse, CLAUDE.md instruction drift, Mac Mini service status.

  • Works in 5 steps: Skill Health → Project Pulse → CLAUDE.md Drift → …
  • The user asks about ecosystem health
  • Calls git, curl and ssh
  • Abandoned projects

What it does

Ecosystem is an agent skill from glebis/claude-skills. Audit the Claude Code ecosystem — skill health and staleness, project activity pulse, CLAUDE.md instruction drift, Mac Mini service status. Use this skill whenever the user asks about ecosystem health, stale skills, abandoned projects, system status, infrastructure check, "what's broken", "what's stale", "how's my setup", or any request to review the state of their Claude Code environment. Also triggers on "/ecosystem", "audit my ecosystem", "ecosystem health", "ecosystem audit".

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Agent instruction files and Note-taking. The repository describes itself as: Collection of Claude Code skills for enhanced AI workflows. The licence is MIT.

When your agent uses it

  • The user asks about ecosystem health
  • Abandoned projects
  • Infrastructure check
  • Any request to review the state of their Claude Code environment

Example prompts

  • “s broken”
  • “s stale”
  • “s my setup”
  • “/ecosystem”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Skill Health
  2. Project Pulse
  3. CLAUDE.md Drift
  4. Mac Mini Health
  5. Attention Summary + Daily Note

What it can do on your machine

Read from SKILL.md and the folder at commit 7524dff. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • curl
    • ssh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, curl and ssh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ecosystem loads about 2.1k tokens when it runs. Until then it costs about 124 tokens; SKILL.md has 289 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~124
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from glebis/claude-skills at commit 7524dff, republished under its MIT licence (© glebis). 289 words, ~2,072 tokens.

Download SKILL.mdSave it as .claude/skills/ecosystem/SKILL.md (or your agent's skills folder).
name
ecosystem
description
Audit the Claude Code ecosystem — skill health and staleness, project activity pulse, CLAUDE.md instruction drift, Mac Mini service status. Use this skill whenever the user asks about ecosystem health, stale skills, abandoned projects, system status, infrastructure check, "what's broken", "what's stale", "how's my setup", or any request to review the state of their Claude Code environment. Also triggers on "/ecosystem", "audit my ecosystem", "ecosystem health", "ecosystem audit".

Ecosystem Audit

On-demand audit of the Claude Code ecosystem. Runs 4 checks, prints a full report with an attention summary, and appends a summary to today's daily note.

Workflow

Run all 4 checks sequentially using the bash blocks below. Each block runs in a fresh shell, so after all checks complete, compose the daily note summary and attention rollup from the terminal output you've collected.

CRITICAL: Run date +"%Y%m%d" before writing to the daily note.

Step 1: Skill Health

Scan ~/.claude/skills/ for skill freshness and broken symlinks.

bash
NOW=$(date +%s)
D30=$((NOW - 30*86400))
D90=$((NOW - 90*86400))
ACTIVE="" BROKEN=""
ACTIVE_N=0 RECENT_N=0 STALE_N=0 BROKEN_N=0 TOTAL=0

for entry in ~/.claude/skills/*/; do
  [ -d "$entry" ] || continue
  name=$(basename "$entry")
  TOTAL=$((TOTAL + 1))

  if [ -L "${entry%/}" ] && [ ! -e "${entry%/}" ]; then
    target=$(readlink "${entry%/}")
    BROKEN="${BROKEN}  - ${name} -> ${target}\n"
    BROKEN_N=$((BROKEN_N + 1))
    continue
  fi

  real_path="$entry"
  if [ -L "${entry%/}" ]; then
    real_path="$(readlink "${entry%/}")/"
  fi

  newest=$(find "$real_path" -type f -exec stat -f %m {} + 2>/dev/null | sort -rn | head -1)
  [ -z "$newest" ] && newest=0

  if [ "$newest" -ge "$D30" ]; then
    ACTIVE="${ACTIVE}, ${name}"
    ACTIVE_N=$((ACTIVE_N + 1))
  elif [ "$newest" -ge "$D90" ]; then
    RECENT_N=$((RECENT_N + 1))
  else
    STALE_N=$((STALE_N + 1))
  fi
done

echo "### Skills (${TOTAL} total)"
echo "- Active (30d): ${ACTIVE_N}${ACTIVE:+ — ${ACTIVE:2}}"
echo "- Recent (30-90d): ${RECENT_N}"
echo "- Stale (>90d): ${STALE_N}"
echo "- Broken symlinks: ${BROKEN_N}"
[ -n "$BROKEN" ] && printf "$BROKEN"
Step 2: Project Pulse

Scan ~/ai_projects/ for git repo activity and CLAUDE.md presence. Cap dormant and abandoned lists at 10 names to keep output readable.

bash
NOW=$(date +%s)
D30=$((NOW - 30*86400))
D180=$((NOW - 180*86400))
ACTIVE="" DORMANT="" ABANDONED="" DORMANT_N=0 ABANDONED_N=0 NO_CLAUDE=0
ACTIVE_N=0 GIT_TOTAL=0 DIR_TOTAL=0 NODATA=0

for dir in ~/ai_projects/*/; do
  [ -d "$dir" ] || continue
  DIR_TOTAL=$((DIR_TOTAL + 1))
  [ -d "${dir}.git" ] || continue
  GIT_TOTAL=$((GIT_TOTAL + 1))

  last_commit=$(git -C "$dir" log -1 --format=%ct 2>/dev/null)
  if [ -z "$last_commit" ]; then
    NODATA=$((NODATA + 1))
    continue
  fi

  name=$(basename "$dir")

  if [ "$last_commit" -ge "$D30" ]; then
    ACTIVE="${ACTIVE}, ${name}"
    ACTIVE_N=$((ACTIVE_N + 1))
  elif [ "$last_commit" -ge "$D180" ]; then
    DORMANT_N=$((DORMANT_N + 1))
    [ "$DORMANT_N" -le 10 ] && DORMANT="${DORMANT}, ${name}"
  else
    ABANDONED_N=$((ABANDONED_N + 1))
    [ "$ABANDONED_N" -le 10 ] && ABANDONED="${ABANDONED}, ${name}"
  fi

  [ ! -f "${dir}CLAUDE.md" ] && NO_CLAUDE=$((NO_CLAUDE + 1))
done

DORMANT_SUFFIX=""
[ "$DORMANT_N" -gt 10 ] && DORMANT_SUFFIX=" and $((DORMANT_N - 10)) more"
ABANDONED_SUFFIX=""
[ "$ABANDONED_N" -gt 10 ] && ABANDONED_SUFFIX=" and $((ABANDONED_N - 10)) more"

echo ""
echo "### Projects (${DIR_TOTAL} dirs, ${GIT_TOTAL} git repos)"
echo "- Active (30d): ${ACTIVE_N}${ACTIVE:+ — ${ACTIVE:2}}"
echo "- Dormant (30-180d): ${DORMANT_N}${DORMANT:+ — ${DORMANT:2}${DORMANT_SUFFIX}}"
echo "- Abandoned (>6mo): ${ABANDONED_N}${ABANDONED:+ — ${ABANDONED:2}${ABANDONED_SUFFIX}}"
[ "$NODATA" -gt 0 ] && echo "- No data (empty/corrupt): ${NODATA}"
echo "- Missing CLAUDE.md: ${NO_CLAUDE}"
Step 3: CLAUDE.md Drift

Check if CLAUDE.md files are stale relative to their project's latest commit. Uses git commit dates (not filesystem mtime) for accuracy.

bash
NOW=$(date +%s)
STALE_LIST="" STALE_N=0
UNTRACKED_LIST="" UNTRACKED_N=0

while IFS= read -r claude_file; do
  project_dir=$(dirname "$claude_file")
  while [ ! -d "${project_dir}/.git" ] && [ "$project_dir" != "$HOME/ai_projects" ]; do
    project_dir=$(dirname "$project_dir")
  done
  [ -d "${project_dir}/.git" ] || continue

  claude_commit=$(git -C "$project_dir" log -1 --format=%ct -- "$claude_file" 2>/dev/null)
  project_commit=$(git -C "$project_dir" log -1 --format=%ct 2>/dev/null)
  [ -z "$project_commit" ] && continue

  if [ -z "$claude_commit" ]; then
    rel_path="${claude_file#$HOME/}"
    UNTRACKED_LIST="${UNTRACKED_LIST}  - ~/${rel_path}\n"
    UNTRACKED_N=$((UNTRACKED_N + 1))
    continue
  fi

  diff=$((project_commit - claude_commit))
  if [ "$diff" -gt $((90*86400)) ]; then
    rel_path="${claude_file#$HOME/}"
    claude_date=$(date -r "$claude_commit" +%Y-%m-%d)
    project_date=$(date -r "$project_commit" +%Y-%m-%d)
    STALE_LIST="${STALE_LIST}  - ~/${rel_path} (last: ${claude_date}, project: ${project_date})\n"
    STALE_N=$((STALE_N + 1))
  fi
done < <(find ~/ai_projects -maxdepth 2 -name CLAUDE.md 2>/dev/null)

echo ""
echo "### CLAUDE.md Drift"
echo "- Stale instructions (>90d behind project): ${STALE_N}"
[ -n "$STALE_LIST" ] && printf "$STALE_LIST"
echo "- Untracked: ${UNTRACKED_N}"
[ -n "$UNTRACKED_LIST" ] && printf "$UNTRACKED_LIST"
Step 4: Mac Mini Health

SSH to agents-mac-mini and check services. Uses -T to avoid pseudo-tty and ECOSYS: prefix to filter iTerm escape codes from the output.

Custom services on the Mac Mini use various prefixes (com.server.*, com.telegram-agent.*, com.photopulse.*, com.health.*, com.temporal.*, ai.hermes.*, etc.), so count all non-Apple LaunchAgents.

bash
echo ""
echo "### Mac Mini"

MINI_OUTPUT=$(ssh -T -o ConnectTimeout=5 -o BatchMode=yes mac-mini 'export TERM=dumb; thumb=$(curl -s --max-time 3 -o /dev/null -w "%{http_code}" http://localhost:8080/ 2>/dev/null); viz=$(curl -s --max-time 3 -o /dev/null -w "%{http_code}" http://localhost:8081/ 2>/dev/null); agents=$(launchctl list 2>/dev/null | tail -n +2 | awk "{print \$3}" | grep -cv "^com\.apple" || echo 0); hdb_size=$(stat -f %z ~/ai_projects/health-import/health.db 2>/dev/null || echo 0); echo "ECOSYS:${thumb}|${viz}|${agents}|${hdb_size}"' 2>/dev/null)

DATA=$(echo "$MINI_OUTPUT" | grep "^ECOSYS:" | sed 's/^ECOSYS://')

if [ -z "$DATA" ]; then
  echo "- Status: UNREACHABLE (SSH failed)"
else
  IFS='|' read -r THUMB VIZ AGENTS HDB_SIZE <<< "$DATA"
  [ "$THUMB" = "200" ] && echo "- Thumb server (:8080): UP" || echo "- Thumb server (:8080): DOWN (${THUMB})"
  [ "$VIZ" = "200" ] && echo "- Viz server (:8081): UP" || echo "- Viz server (:8081): DOWN (${VIZ})"
  echo "- Custom LaunchAgents: ${AGENTS}"
  if [ "$HDB_SIZE" -gt 0 ] 2>/dev/null; then
    HDB_GB=$(echo "scale=1; ${HDB_SIZE}/1073741824" | bc)
    echo "- Health DB: ${HDB_GB} GB"
  else
    echo "- Health DB: NOT FOUND"
  fi
fi
Step 5: Attention Summary + Daily Note

After printing the full terminal report, add an attention summary highlighting anything that needs action:

### Attention
- [list any: broken symlinks, services DOWN, stale CLAUDE.md, Mac Mini unreachable]
- If nothing needs attention: "All clear."

Then compose a summary and write it to today's daily note.

Get today's date first:

bash
TODAY=$(date +"%Y%m%d")

Build the summary block from the results you collected in Steps 1-4 (re-read the terminal output above — variables don't carry across bash blocks). Format:

markdown
## Ecosystem

Skills: N active / N recent / N stale / N broken
Projects: N active / N dormant / N abandoned
CLAUDE.md drift: N stale, N untracked
Mac Mini: [status summary]

_Ecosystem audit · YYYY-MM-DD_

Write to ~/Brains/brain/Daily/${TODAY}.md:

  • If ## Ecosystem section already exists, replace everything from ## Ecosystem to the next ## heading (or - - - separator)
  • If it doesn't exist, insert above the first - - - separator
  • If any red flags (broken symlinks > 0, services down, stale CLAUDE.md > 3), prepend > [!warning] Ecosystem issues detected

© glebis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in ecosystem of glebis/claude-skills.

Open the folder on GitHubat commit 7524dff

Compare with similar skills

Ecosystem next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ecosystem compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ecosystem this skillglebis/claude-skills389—~2.1kAutomated safety check: PassMIT
Docs Gardeningmhmzdev/the-holy-quran-app889—~1.1kAutomated safety check: PassMIT
Harness Auditundefined-ui/second-brain-os1k—~855Automated safety check: PassMIT
Project Knowledge SorterYeachan-Heo/oh-my-claudecode40k—~356Automated safety check: PassMIT
Sake Workflowkattouf/Sake116—~935Automated safety check: PassMIT
Claude Code Knowledgedykyi-roman/awesome-claude-code103—~4kAutomated safety check: PassMIT

Similar skills

  • Docs Gardening

    mhmzdev/the-holy-quran-app

    Audit and maintain The Holy Qur'an app's knowledge base (AGENTS.md, .agents/rules/, docs/ OKF bundle) for staleness, broken cross-links, drift from code, and OKF structural issues.

    889 GitHub stars~1.1k tokensUpdated 28 days ago
    Agent WorkflowsAuto-check passed
  • Harness Audit

    undefined-ui/second-brain-os

    Audit an agent's harness against the four rings: containment, guides, sensors, permissions.

    1k GitHub stars~855 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Project Knowledge Sorter

    Yeachan-Heo/oh-my-claudecode

    Sorts what a session has learned into the right place, project memory, notepad or durable docs, and flags duplicate, stale or conflicting entries.

    40k GitHub stars~356 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Sake Workflow

    kattouf/Sake

    A skill your agent uses when starting any new task in the Sake project - ensures structured execution with knowledge discovery, quality checks, and organic growth of the project knowledge base…

    116 GitHub stars~935 tokensUpdated 6 mo ago
    Agent WorkflowsAuto-check passed
  • Claude Code Knowledge

    dykyi-roman/awesome-claude-code

    Comprehensive knowledge base for Claude Code formats, patterns, and configuration.

    103 GitHub stars~4k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Project Init

    BlackBeltTechnology/pi-agent-dashboard

    Scaffold an unconfigured directory into a configured pi project.

    315 GitHub stars~3.4k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from glebis/claude-skills

All 91 skills in this repo
  • Runs a human-first workflow for labeling PII spans in a transcript, then scores inter-annotator agreement and drafts an adjudicated gold set.

    389 GitHub stars~1.3k tokensUpdated 12 days ago
    Auto-check passed
  • Automates a dedicated, logged-in Chrome instance per profile without ever closing the user's own open tabs or browser windows.

    389 GitHub stars~973 tokensUpdated 12 days ago
    Auto-check passed
  • Deep Research

    glebis/claude-skills

    This skill should be used when conducting comprehensive research on any topic using the OpenAI Deep Research API.

    389 GitHub stars~2.6k tokensUpdated 12 days ago
    Auto-check: notes
  • Elimination Research

    glebis/claude-skills

    This skill should be used for elimination-style research where the user wants to choose from a shortlist of products, tools, services, vendors, or other options using explicit criteria, numeric…

    389 GitHub stars~1.6k tokensUpdated 12 days ago
    Auto-check passed
  • Narrated HTML Presentations

    glebis/claude-skills

    Generates a self-contained HTML presentation with article and slides modes, ElevenLabs voiceover narration and optional GPT Image 2 illustrations.

    389 GitHub stars~2.3k tokensUpdated 12 days ago
    Auto-check: notes
  • Writes fictional but realistic coaching or therapy session transcripts for evals, demos and few-shot examples, in several modalities and export formats.

    389 GitHub stars~2.9k tokensUpdated 12 days ago
    Auto-check passed

Questions about Ecosystem

What does Ecosystem do?

Audit the Claude Code ecosystem — skill health and staleness, project activity pulse, CLAUDE.md instruction drift, Mac Mini service status. Ecosystem is an agent skill from glebis/claude-skills.md instruction drift, Mac Mini service status.

When should I use Ecosystem?

Ecosystem fits situations like: the user asks about ecosystem health; abandoned projects; infrastructure check; any request to review the state of their Claude Code environment.

How do I install Ecosystem in Claude Code?

Run `npx skills add glebis/claude-skills --skill ecosystem -a claude-code`. Or copy the skill folder (ecosystem in glebis/claude-skills) into .claude/skills/ecosystem in your project. Claude Code loads it when a task matches its description.

How do I install Ecosystem in Codex?

Run `npx skills add glebis/claude-skills --skill ecosystem -a codex`. Or copy the skill folder (ecosystem in glebis/claude-skills) into .agents/skills/ecosystem in your project. Codex loads it when a task matches its description.

Can I use Ecosystem in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add glebis/claude-skills --skill ecosystem -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ecosystem, .gemini/skills/ecosystem, .github/skills/ecosystem and .opencode/skills/ecosystem in your project.

What does Ecosystem need to run?

Going by SKILL.md and its folder, Ecosystem needs the command-line tools its instructions call (git, curl and ssh).

Does Ecosystem access the network?

SKILL.md contains no URLs. Its commands use git, curl and ssh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Ecosystem safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ecosystem use?

Ecosystem is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ecosystem use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ecosystem?

Skills that share tags, products or a category with Ecosystem: Docs Gardening (mhmzdev/the-holy-quran-app, 889 stars), Harness Audit (undefined-ui/second-brain-os, 1k stars), Project Knowledge Sorter (Yeachan-Heo/oh-my-claudecode, 40k stars) and Sake Workflow (kattouf/Sake, 116 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ecosystem?

glebis (a GitHub user) maintains it in glebis/claude-skills, which has 389 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on September 26, 2026.

Source: glebis/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.