gentle-ai-skill-registry · v1.0 · 2026-11-06 · sha256 b0a3336abed3b603

gentle-ai-skill-registry v1.0A

Immutable. This exact content never changes and is served at /api/v1/blob/b0a3336abed3b603.

---
name: gentle-ai-skill-registry
description: "Trigger: update skills, skill registry, actualizar skills, after skill changes. Index available skills by trigger and path."
license: MIT
metadata:
  author: gentleman-programming
  version: "1.0"
---

## Activation Contract

Use this skill after installing, removing, creating, moving, or renaming skills, or when a delegator needs a fresh skill index.

## Hard Rules

- The registry is an index, not a compiler or summary. `SKILL.md` remains the source of truth.
- Do not generate or inject compact rules by default; preserve author intent by passing exact skill paths to subagents.
- Always write `.atl/skill-registry.md`.
- Save the registry to Engram as `topic_key: skill-registry` when available, with `capture_prompt: false`.
- Skip `sdd-*`, `_shared`, and `skill-registry`; deduplicate by skill name, preferring project-level skills over user-level skills.
- The registry mirrors Pi's runtime-resolved skill set (`before_agent_start.systemPromptOptions.skills`) as the authority for skill name, scope, and disablement. The loose scan still walks the known agent roots, which include the Pi-managed `~/.pi/agent/skills` and `.pi/skills`; every path Pi resolved is suppressed from the loose results, so a skill Pi hides (`disableModelInvocation` or an excluded name) is never re-indexed as active. Never rescan `node_modules` or reparse `pi.skills` yourself.
- Add `.atl/` to `.gitignore` when possible unless explicitly disabled.

## Decision Gates

| Situation | Action |
| --- | --- |
| Same skill exists globally and in project | Keep the project-level skill |
| Pi-resolved skill and loose scan share a path | Keep the Pi-resolved record (exact path and source metadata); when Pi filtered that path out, suppress it instead of indexing it as an active row |
| Same skill exists in multiple global locations | Keep the first source in scan order |
| No skills found | Write an empty registry so agents stop searching blindly |
| Agent will delegate work | Select matching registry rows and pass their `SKILL.md` paths |

## Execution Steps

1. Scan the known user and project loose-scan directories for `*/SKILL.md`, including the Pi-managed `~/.pi/agent/skills` and `.pi/skills`; the runtime capture suppresses every path Pi already resolved, so a Pi-hidden skill never becomes an active row. npm-package and package-declared (`pi.skills`) skills arrive through the extension's runtime capture, not through this scan.
2. Read frontmatter only as needed to extract `name` and `description` trigger text.
3. Render `.atl/skill-registry.md` with scanned sources, registry contract, skill name, trigger/description, scope, and exact path.
4. Persist to Engram when available using `title: skill-registry`, `topic_key: skill-registry`, `type: config`, and `capture_prompt: false`.
5. Return the registry path, skill count, cache status, and whether Engram was updated.

## Output Contract

Return:
- Project name and `.atl/skill-registry.md` path.
- Number of indexed skills.
- Whether the cache was hit or regenerated.
- Any skipped or duplicate skills when relevant.

## References

- `docs/skill-style-guide.md` — how skills should be authored before indexing.
- `skills/_shared/skill-resolver.md` — how delegators use the index.