Skip to content
Back to skills

Skill Steward

ASecurity

Use when installed skills need a lifecycle audit: scans the forge registry and the configured skill directories for staleness, overlap, and conflicting triggers, then proposes a retire, promote, merge, or quarantine action per skill with evidence.

  • 6 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 2, 2026
ai-agentspythongo

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add aegntic/cognitive-os --skill skill-steward --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Steward?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Skill Steward
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aegntic-skill-steward/badge)](https://www.skillsdirectory.com/skills/aegntic-skill-steward)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: skill-steward
description: 'Use when installed skills need a lifecycle audit: scans the forge registry and the configured skill directories for staleness, overlap, and conflicting triggers, then proposes a retire, promote, merge, or quarantine action per skill with evidence.'
tags: [agent-forge, lifecycle, audit, hygiene, registry, stewardship]
version: 0.1.0
license: MIT
metadata:
  provenance: 'original design for the agent-forge lifecycle; no upstream body derived'
  forge_status: seed
---

# Skill Steward

Audit the installed skill base and propose lifecycle actions per skill. The steward never edits or deletes anything itself: it reads, verifies, and writes a proposal memo. Execution is a separate human-approved step. This is the pruning side of the forge loop; unpruned skill libraries rot into trigger conflicts nobody can debug.

## When to Run

1. Monthly cadence, or when the registry passes roughly thirty tracked skills.
2. After a bulk import (feeds wiring, machine migration, profile sharing).
3. When the agent fires the wrong skill or fires two skills for one request.

## Inputs

```yaml
registry: # Default agent-forge/registry.yaml.
skill_dirs: # Default: the dirs listed in the Hermes profile's skills.external_dirs,
  # plus agent-forge/skills and the repo skills/ dir. Override to scope.
max_actions: # Default 10. An audit that proposes everything proposes nothing.
```

## Protocol

### Step 1: Inventory

Walk each skill dir, collect every SKILL.md, and parse frontmatter: name, description, version, tags, provenance. Cross-reference against registry.yaml. Record three gap classes:

1. **Untracked**: on disk, absent from the registry (decision needed: track or ignore).
2. **Ghost**: in the registry, absent on disk (decision needed: relink or retire).
3. **External-canonical**: tracked by reference only (example: aegntic/tab-harvest); verified by URL, never duplicated into the forge.

### Step 2: Staleness Signals

Per skill, gather honest signals without inventing precision:

1. `last_verified` age in registry.yaml (days since).
2. File mtime of SKILL.md.
3. Presence of unresolved QC failures (run `python3 agent-forge/tools/qc.py <dir>`).
4. Broken references: internal links or scripts that no longer exist.
5. Version still 0.1.0 with no recorded verification history.

Do not fabricate usage counts. If no signal exists, the memo says "no signal"; that is itself a finding (undocumented skills decay silently).

### Step 3: Overlap and Conflict Detection

1. **Trigger overlap**: two skills whose use-when conditions can fire on the same request. Extract the trigger clause (first sentence of description) and compare pairwise within shared tag groups. Flag pairs sharing two or more significant words.
2. **Shadowing**: identical `name:` in two configured dirs; Hermes resolves by path order, which the user cannot see. Flag all duplicates.
3. **Merge candidates**: overlapping skills whose union fits one trigger sentence with an OR of scopes.
4. **Conflict with provenance**: a skill that claims a pattern source its body does not reflect, or an ATTRIBUTION.md entry with no corresponding skill.

### Step 4: Action Proposal Memo

One page, one action per line, strongest first:

```markdown
# Skill Steward Audit {date}

## Summary

{N} skills scanned across {D} dirs; {X} actions proposed, {Y} deferred for lack of signal.

## Proposed Actions

1. RETIRE {skill}: {evidence} -> {disposition: archive path or registry status flip}
2. PROMOTE {skill}: seed -> stable: {evidence: QC pass history + verification events}
3. MERGE {a} + {b} -> {name}: {shared trigger sentence}
4. QUARANTINE {skill}: {reason: QC fail, ghost references, provenance mismatch}
5. TRACK {untracked dir}: {why it belongs in the registry}

## Registry Deltas (apply after approval)

{exact YAML lines to add or change}
```

Rules:

1. Every action cites its evidence lines from Steps 1 to 3.
2. RETIRE never deletes: archive with a dated reason (instincts are archived, not destroyed).
3. PROMOTE requires at least one passing QC run and one real-session verification.
4. QUARANTINE is reversible; RETIRE of an archived skill requires the human, not the steward.
5. Cap the memo at `max_actions`; rank the rest as deferred with one-line reasons.

### Step 5: Hand Off

1. Present the memo. Wait for explicit approval before any mutation.
2. On approval, apply the registry deltas exactly as written, then re-run the audit scoped to the touched skills to confirm the deltas landed.
3. Contentious calls (merge chains, retire of anything with provenance) go to `council-of-skills` instead of the memo.

## Hard Rules

1. The steward proposes; the human disposes. No direct edits to skill bodies.
2. Never move a skill out of an external feed clone; feeds are read-only.
3. One audit, one memo: no side-channel fixes while the audit is open.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.