From Tandem
Rank installed AI tools (Skills, Agents, Commands, Plugins) by fit for this project and write relevance overlays under 97-AI-Reference/. Reads PROJECT-CONTEXT.md (project type / tech stack) plus the installed inventory and ranks each item HIGH / MED / LOW with a one-line rationale keyed to project type. Use when the user wants to rank or audit which installed tools are relevant vs. off-stack, or invokes /Tandem:curate-toolkit.
How this skill is triggered — by the user, by Claude, or both
Slash command
/Tandem:curate-toolkitThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Operate as **PM hat**. The user has an installed set of AI tools — Skills, Agents, Commands, Plugins — and needs to know which ones are actually relevant to *this* project, and which are off-stack noise that should be deprioritised or ignored.
Operate as PM hat. The user has an installed set of AI tools — Skills, Agents, Commands, Plugins — and needs to know which ones are actually relevant to this project, and which are off-stack noise that should be deprioritised or ignored.
This skill reads the project's type and stack, enumerates the installed inventory, and produces a ranked, rationale'd relevance report written as overlays under 97-AI-Reference/. The ranking is judgment-led and non-deterministic — this skill describes the procedure and output shape, not a fixed ranking.
Use Read / Glob to detect file existence. Treat any missing file as "not present" — never hard-fail on absence.
_00-Project-Management/90-Standards/PROJECT-CONTEXT.md. Read the ## Project type selector (which checkbox is ticked), ## Tech stack, and ## Sub-agent mapping table. This is the primary ranking signal: tools that match the project type / stack rank higher; off-stack tools rank lower.## Sub-agent mapping table in PROJECT-CONTEXT.md names the preferred sub-agents by type_of_work. Cross-reference with the inventory below.skills/*/SKILL.md; read each name: and description: from frontmatter..claude/agents/*.md (or the repo's configured agent path); read each agent's name and stated purpose..claude/commands/*.md; read each command's name and stated purpose.plugin.json at the repo root (if present); list each plugin entry's name and description.97-AI-Reference/curate-toolkit-*.md to check whether a prior ranking already exists. If found, note the prior run date and whether a re-rank was requested.CLAUDE.md — for project-specific overrides or exclusions.From PROJECT-CONTEXT.md, identify:
## Tech stack.## Sub-agent mapping.If PROJECT-CONTEXT.md has not been filled in (all fields are still template placeholders), note this as a gap in the output and proceed with a best-effort ranking based on whatever stack signals are present in the repo.
For each of the four inventory categories — Skills / Agents / Commands / Plugins — produce a flat list of every item found, noting:
description: or equivalent).suggested_agents: frontmatter, the sub-agent map, or a story file) but not installed.Gap handling — never hard-fail: An uninstalled or unknown agent, skill, command, or plugin referenced anywhere in the project (including in suggested_agents: frontmatter, the sub-agent map, or any story file) is reported as a GAP in the inventory section. A gap is informational — it never hard-fails the resolution or ranking pass. Per the kit's resolution order: a named item that isn't installed causes the executor to degrade gracefully to the next step (discipline fallback → general-purpose). This skill mirrors that behaviour: flag the gap, assign a rank of LOW (gap — not installed), and continue. Do not abort.
For each item in the combined inventory, assign one of three tiers:
| Tier | Meaning |
|---|---|
| HIGH | Directly relevant to this project type / stack — reach for it routinely. |
| MED | Conditionally useful — relevant for specific task types or phases, not every session. |
| LOW | Off-stack or not applicable to this project type — deprioritise; may still be used if the need arises. |
Ranking criteria (apply in order; earlier criteria are stronger signals):
data-pipeline project), prefer LOW.## Sub-agent mapping table, prefer HIGH.(gap — not installed) note regardless of other signals.Provide a one-line rationale for each ranking, keyed to the project type and stack (e.g. "HIGH — Next.js project; this React skill maps directly to the primary framework").
97-AI-Reference/Output the ranking as one or more relevance overlay files. The overlay schema and exact field names are defined in ADR-0029 / STORY-04.3.03 — write the overlay to conform to that schema once it is available. Until STORY-04.3.03 delivers the schema, write the overlay in the interim format below and mark the file with schema: interim so a later migration pass can upgrade it.
Interim overlay format (use until ADR-0029 / STORY-04.3.03 schema lands):
---
schema: interim
generated_by: curate-toolkit
generated_at: <ISO 8601 timestamp>
project_type: <value from PROJECT-CONTEXT.md>
---
# Toolkit Relevance Overlay — <project name or repo>
## Skills
| Name | Tier | Rationale |
|------|------|-----------|
| <skill-name> | HIGH / MED / LOW | <one-line rationale keyed to project type> |
## Agents
| Name | Tier | Rationale |
|------|------|-----------|
## Commands
| Name | Tier | Rationale |
|------|------|-----------|
## Plugins
| Name | Tier | Rationale |
|------|------|-----------|
## Gaps (referenced but not installed)
| Item | Type | Referenced in | Rationale |
|------|------|---------------|-----------|
| <name> | skill/agent/command/plugin | <file or table where referenced> | GAP — not installed; degrade to general-purpose fallback |
Write the overlay to 97-AI-Reference/curate-toolkit-<YYYYMMDD>.md. If a file for today already exists, append a numeric suffix (e.g. -2).
Create the 97-AI-Reference/ directory if it does not exist.
After writing the overlay, report:
97-AI-Reference/curate-toolkit-<YYYYMMDD>.md./Tandem:curate-toolkit — re-run after updating PROJECT-CONTEXT.md or installing new tools to refresh the overlay.
Or: /Tandem:execute-story — to begin executing a story, using the HIGH-ranked sub-agents as the preferred executor pool.
The canonical overlay schema is defined in ADR-0029. This section is the normative reference for overlay authors (this skill) and overlay consumers (e.g. FEAT-04.6 dashboard renderer).
All overlays are written to 97-AI-Reference/ at the root of the consuming project.
File naming: curate-toolkit-<YYYYMMDD>.md. Append -2, -3, etc. if a same-day file exists.
Create the directory if absent. Never write overlays outside 97-AI-Reference/.
schema: v1
generated_by: curate-toolkit
generated_at: <ISO 8601 timestamp>
project_type: <value from PROJECT-CONTEXT.md § Project type>
| Field | Type | Allowed values | Description |
|---|---|---|---|
id | string | — | The item's unique identifier (skill name, agent filename, command name, or plugin name). Primary key for consumer lookups. |
kind | string | skill / agent / command / plugin | Inventory category. |
rank | string | HIGH / MED / LOW | Relevance tier for this project. |
rationale | string | one-line prose (≤ 120 chars) | Reason for the assigned rank, keyed to project type and stack. |
installed | boolean | true / false | Whether the item was found on disk at overlay-generation time. |
| Rank | Meaning |
|---|---|
HIGH | Directly relevant to this project type / stack — reach for it routinely. |
MED | Conditionally useful — relevant for specific task types or phases, not every session. |
LOW | Off-stack or not applicable to this project type — deprioritise. |
An item referenced anywhere (in suggested_agents: frontmatter, the sub-agent map, a story
file, or any other project artefact) but not found on disk is represented in the overlay as
an explicit gap marker. It is never omitted.
Gap marker convention:
installed: falserank: LOWrationale prefixed with GAP — not installed; (e.g. GAP — not installed; degrade to general-purpose fallback)Consumers must never infer the absence of an item as a ranking signal — the gap marker is the authoritative representation of an uninstalled or unknown item. The gap marker is informational and never aborts the overlay-generation pass.
v1 (this ADR). Readers gate on the schema: frontmatter field.schema: v2 and a migration pass on existing overlays.display_group, badge_color) without migration.This skill is registered via the kit's auto-discovery model (ADR-0003): placing
skills/curate-toolkit/SKILL.md in the skills/ directory is sufficient — no plugin.json
skills array entry is needed or added. The public Tandem build (npm run build:tandem, ADR-0028)
copies the skills/ tree and rewrites the name token to /Tandem:curate-toolkit; the scrub
gate confirms no internal token survives. Do not add this skill to plugin.json.
npx claudepluginhub data-ai-xyz/tandem --plugin TandemGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.