Skip to content

Commit 1172368

Browse files
geledekclaude
andcommitted
skills: front-load output contracts; tests: add routing prompts; validate: size budget WARN
Learnings adopted from the book-to-skill ecosystem (virgiliojr94/book-to-skill, Skill_Seekers, Hassid's 5-minute method): - All 16 SKILL.md files state verdict vocabulary + boundary pointers before Role 1, so the contract survives context compaction - tests/golden-prompts.md gains 9 negative-trigger routing prompts incl. a dormancy check - scripts/validate.py warns (non-fatal) when a SKILL.md exceeds ~4K tokens - templates/SKILL.md.tmpl + CONTRIBUTING.md codify the five distillation questions, negative triggers, and counterfactual-reproduction checklist Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent c7898e5 commit 1172368

21 files changed

Lines changed: 117 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@ All notable changes to this plugin are documented here.
55
## [Unreleased]
66

77
### Added
8+
- Routing (negative-trigger) tests in `tests/golden-prompts.md` — nine prompts that must route to one skill and must NOT activate its adjacent sibling (tool-selection vs. literacy-curriculum, idea-diagnostic vs. roi-gate, data-deployment vs. agent-guardrail, …), plus a dormancy check. Inspired by the book-to-skill ecosystem's activation/dormancy testing.
9+
- Size-budget warning in `scripts/validate.py` — non-fatal WARN when a SKILL.md exceeds ~4K tokens (16K chars), keeping skills one-gulp loadable.
10+
- Distillation guide — the five extraction questions for turning a book, framework, or real decision into a skill, in `templates/SKILL.md.tmpl` and `CONTRIBUTING.md`, with negative-trigger and counterfactual-reproduction requirements in the pre-PR checklist.
811
- **New skill: `people-tool-selection`** — six-role selector for choosing which AI tool to put in front of a specific user group (training cohort, team, department). Constraint-first method: hard eliminators (cost, ecosystem, setup friction, data, language, IT policy) filter candidates before capability comparison; then picks an intervention mode (Deepen / Extend / Introduce) and ranks survivors by new-artifact delta per unit of friction. Outputs Adopt-now / Adopt-with-scaffolding / Pilot-with-subgroup / Skip plus a first-win exercise and growth path. Ships with the Mongolian-teachers reference case (NotebookLM chosen over advanced prompting, agent skills, and Manus). Skill count is now 16.
912

13+
### Changed
14+
- All 16 SKILL.md files now front-load their output contract — verdict vocabulary (and boundary pointers to adjacent skills) stated before Role 1, so the contract survives context compaction.
15+
1016
## [0.4.0] — 2026-07-02
1117

1218
### Added

CONTRIBUTING.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,25 @@ structure, and a pre-PR checklist), or copy any `SKILL.md`, rename it, and adjus
2222

2323
Example forks: sector-specific (`general-idea-diagnostic-healthtech`), internal process-aware (`roi-gate-[company]`), role-specific (`people-readiness-conversation-board`).
2424

25+
### 4. Distill a new skill from a book or your own practice
26+
27+
The skills here are distilled decision processes. To add one, answer five
28+
questions before writing any role (the full version lives in
29+
`templates/SKILL.md.tmpl`):
30+
31+
1. What decision does the skill gate, and who stands behind the verdict?
32+
2. What are the sequential questions? Each "because" in the original reasoning becomes a role.
33+
3. Which criteria are hard filters (eliminate) vs. ranking criteria (compare)? Keep them in separate roles.
34+
4. Which failure modes deserve their own role?
35+
5. What verdict vocabulary fits — without colliding with another skill's?
36+
37+
Then define 2–3 **negative triggers** — adjacent prompts that must route to a
38+
*different* skill — and add them to the routing table in
39+
`tests/golden-prompts.md`. Before merging, confirm the skill reproduces the
40+
case that inspired it, and that one counterfactual (a changed input) flips the
41+
verdict. `skills/people-tool-selection/` with its `cases/` file is the worked
42+
example of this process.
43+
2544
## What not to change in a fork
2645

2746
- The structural role sequence — it's the methodology, not a style choice

scripts/validate.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
5. plugin.json version == marketplace.json metadata.version.
1414
6. Every skill has SKILL.md + README.md; frontmatter `name` matches the
1515
directory name; `description` present and <= 1024 chars.
16+
7. WARN (non-fatal) when a SKILL.md body exceeds ~4K tokens — skills should
17+
stay loadable in one gulp; density over completeness.
1618
1719
Exits non-zero with a list of failures if anything is inconsistent.
1820
"""
@@ -23,13 +25,19 @@
2325
import sys
2426

2527
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
28+
SKILL_SIZE_BUDGET = 16_000 # chars, ~4K tokens
2629
errors = []
30+
warnings = []
2731

2832

2933
def err(msg: str) -> None:
3034
errors.append(msg)
3135

3236

37+
def warn(msg: str) -> None:
38+
warnings.append(msg)
39+
40+
3341
def frontmatter(text: str) -> dict:
3442
m = re.match(r"\A---\n(.*?)\n---\n", text, re.DOTALL)
3543
fields = {}
@@ -70,6 +78,13 @@ def frontmatter(text: str) -> dict:
7078
elif len(desc) > 1024:
7179
err(f"skills/{skill}/SKILL.md: description is {len(desc)} chars (limit 1024)")
7280

81+
# check 7: size budget (warning only)
82+
if len(body) > SKILL_SIZE_BUDGET:
83+
warn(
84+
f"skills/{skill}/SKILL.md is {len(body):,} chars "
85+
f"(budget {SKILL_SIZE_BUDGET:,} ≈ 4K tokens) — consider moving detail to references/ or cases/"
86+
)
87+
7388
# check 1: every backticked .md pointer resolves
7489
for ref in set(re.findall(r"`([a-z0-9-]+\.md)`", body)):
7590
in_references = os.path.isfile(os.path.join(ROOT, "references", ref))
@@ -143,6 +158,8 @@ def frontmatter(text: str) -> dict:
143158
err(f"version drift — plugin.json has {pv!r}, marketplace.json has {mv!r}")
144159

145160
# ---- report ---------------------------------------------------------------
161+
for w in warnings:
162+
print(f" WARN - {w}")
146163
if errors:
147164
print(f"FAIL — {len(errors)} issue(s):\n")
148165
for e in errors:

skills/general-idea-diagnostic/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ description: Use when evaluating an AI idea, AI concept, or early-stage AI propo
77

88
Diagnose an AI idea at concept stage — before pilot design, before investment, before any build decision. Five sequential roles. Maintain all prior reasoning as state — each role builds on the previous.
99

10+
Verdict vocabulary (stable output contract): **Fund / Fund-with-condition / Reframe / Kill**, plus solution mode **Replace / Augment / Create**. This gates the *concept*; the funding decision comes later — use `general-roi-gate` for investment approval.
11+
1012
After each role, output a clearly labeled section, then proceed to the next role. Do not stop until all five are complete.
1113

1214
---

skills/general-maturity-assessment/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Plot the organization on the AI maturity curve. Identify the binding constraint.
99

1010
Two complementary frameworks: MIT CISR's four-stage sequential model (where are we, and what is next?) + Accenture's Foundation × Differentiation 2×2 (what is the binding constraint that's keeping us here?). Use both — they answer different questions.
1111

12+
Output contract (stable): MIT CISR stage placement (**Stage 1 / Stage 2 / Stage 3 / Stage 4**) plus Accenture archetype, with named next-stage actions.
13+
1214
---
1315

1416
## Part 1: MIT CISR Stage Placement

skills/general-peer-cases/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ Anchor base rate: 95% of GenAI pilots produce zero measurable P&L impact (MIT 20
1111

1212
The library is bundled in `references/`. Pull cases by archetype match — not by name recall.
1313

14+
Output contract (stable): asker profile, case bundle, cross-case patterns, and a confidence state — including **No-analog-found** when fewer than 3 archetype matches exist.
15+
1416
---
1517

1618
## Step 1: Asker Profile

skills/general-roi-gate/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ A pre-flight risk gate before greenlighting any AI investment. Runs PwC's 20-ite
99

1010
This skill gates *funding decisions* — after the idea has been assessed (use `general-idea-diagnostic` for concept-stage gating) and after a pilot brief exists (use `process-pilot-design` for pilot structuring). This is the investment-approval gate.
1111

12+
Verdict vocabulary (stable output contract): **Approve / Approve-with-conditions / Return-for-revision / Reject**.
13+
1214
---
1315

1416
## Role 1: Objective-Mode Audit

skills/general-use-case-discovery/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Most enterprises drown in candidate ideas and pilot the wrong one. MIT's 95/5 fi
99

1010
Anchor: McKinsey's three-objective mix (productivity / growth / transformation), Andrew Ng's three moats, BCG 10/20/70 effort split.
1111

12+
Per-candidate verdict vocabulary (stable output contract): **Greenlight / Stage-and-watch / Park / Reject**.
13+
1214
## Role 1: Value-Pool Mapper
1315

1416
Where is the dollar-or-hour pain, by sub-function? Do not start from "what can AI do" — start from where the bleeding is.

skills/people-frontline-engagement/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ A five-role protocol for engaging fearful or skeptical frontline experts as co-d
99

1010
Stanford's 2025 enterprise study: 77% of the hardest costs in AI deployment are invisible — change management, redesign, trust. Skip this protocol and the pilot stalls inside the 95% non-impact band. Run all five roles in order. Carry every quote forward as state.
1111

12+
Verdict vocabulary (stable output contract): **Co-designed / Imposed-with-resistance / Stalled**.
13+
1214
---
1315

1416
## Role 1: Empathic Listener

skills/people-literacy-curriculum/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Design a role-anchored AI literacy program that satisfies EU AI Act Art. 4 (mand
99

1010
Anchor: BCG 88/25 manager role-modeling — 88% of managers say role-modeling AI matters, only 25% do it visibly; weekly-AI-use rates jumped 55%→72% YoY in cohorts where managers used the tools themselves. Training without manager role-modeling is theatre.
1111

12+
Verdict vocabulary (stable output contract): **Compliant-and-effective / Compliant-not-effective / Non-compliant**. This designs the enterprise-wide *program*; for choosing which single tool to put in front of a specific group, use `people-tool-selection`.
13+
1214
---
1315

1416
## Step 1: Mental-Model Taxonomy

0 commit comments

Comments
 (0)