Compound
npx -y skills add Andamio-Platform/coach --skill compoundAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Capture and apply knowledge from course development to improve future runs.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
9.8 KB, as published. Nobody here has run it
Skill: Compound Knowledge
Description
Extracts patterns, heuristics, and calibration data from course development artifacts. Feeds knowledge back into /draft-slts, /assess-slts, /self-assess-readiness, and /classify-lesson-types to make each run smarter than the last.
Invocation Modes
/compound # Interactive: asks what to compound
/compound quality-review # Compound from specific phase
/compound readiness # Compound from readiness assessment
/compound classification # Compound from lesson type classification
/compound --course=go-pbl --rollup # Full course retrospective
Instructions
Path Resolution
Resolve file paths based on your execution context:
- Plugin context (
${CLAUDE_PLUGIN_ROOT}is set): Read knowledge from${CLAUDE_PLUGIN_DATA}/knowledge/(user data), falling back to${CLAUDE_PLUGIN_ROOT}/knowledge/(seed data). Write all knowledge updates to${CLAUDE_PLUGIN_DATA}/knowledge/— never modify the plugin's bundled seed data. - Clone/symlink context (default): Read and write knowledge at
knowledge/relative to the project root.
All knowledge/ paths referenced below follow this resolution. In plugin context, substitute the appropriate prefix.
Phase Selection
If invoked without arguments, present phase options:
## What would you like to compound?
| # | Phase | Source Artifact | Extracts |
|---|-------|-----------------|----------|
| 1 | quality-review | 02-slts-quality-review.md, 01-slts.md | Successful rewrites, quality issues |
| 2 | readiness | 05-readiness-assessment.md | Tier distribution, context shopping list |
| 3 | classification | 04-lesson-type-classification.md | Verb patterns, edge cases, heuristics |
| 4 | lesson-build | lessons/*.md | Actual vs self-assessed confidence |
| 5 | context-add | assets/ + re-run readiness | Which resources unlocked which SLTs |
| 6 | rollup | All artifacts | Full course retrospective |
Which phase? (Or specify course: --course=slug)
Course Selection
If no course specified, scan courses-in-progress/ and ask which course to compound from:
## Select Course
| # | Course | Status | Artifacts Available |
|---|--------|--------|---------------------|
| 1 | andamio-for-contributors | building | 01, 02, 03, 04, 05 |
| 2 | andamio-for-api-developers | building | 01, 02, 03, 04, 05 |
Which course?
Also check examples/ for seeding data (like go-slts-readiness-assessment.md).
Extraction Logic by Phase
Phase: quality-review
Source files:
02-slts-quality-review.md(assessment output)01-slts.md(revised SLTs, if exists)
Extract:
-
Successful rewrites: Compare SLTs between quality review suggestions and revised SLTs. For each rewrite:
- before: "original SLT text" after: "improved SLT text" issue_type: unmeasurable_verb | task_focused | too_broad | etc. key_change: "what made the difference" course: "course-slug" date: "YYYY-MM-DD"Append to
knowledge/slt-patterns/successful-rewrites.yaml -
Quality issues: Extract patterns from "Needs Work" SLTs:
- pattern: "how to detect" description: "what the problem is" impact: ["Student-Facing Language", "Specificity"] frequency: 1 example_bad: "I can understand blockchain" example_fix: "I can explain how a blockchain maintains data integrity by identifying three mechanisms" courses_seen_in: ["course-slug"]Append to
knowledge/slt-patterns/quality-issues.yaml -
Verb effectiveness: Extract verbs from "Strong" SLTs and add to verb bank:
- verb: "compare" bloom_level: analyze success_count: 1 example_slts: ["I can compare X to Y by identifying..."]Update
knowledge/slt-patterns/verb-bank.yaml
Phase: readiness
Source files:
05-readiness-assessment.mdexamples/go-slts-readiness-assessment.md(for seeding)
Extract:
-
Context leverage: Parse the Context Shopping List and update rankings:
- resource: "Apollo API reference + transaction building examples" type: "Docs + Example Code" slts_unlocked: ["102.2", "102.3", "102.5", "102.6", ...] priority: High obtained: false effectiveness: nullUpdate
knowledge/readiness/context-leverage.yaml -
Calibration baseline: Record self-assessed tiers for later comparison:
- slt_id: "go-pbl:099.1" self_assessed: Ready actual_outcome: null # filled in after lesson-build dimensions_off: null notes: null date: "YYYY-MM-DD"Append to
knowledge/readiness/calibration.yaml
Phase: classification
Source files:
04-lesson-type-classification.md
Extract:
-
Verb patterns: From the Heuristics Developed section:
- verb: "explain" suggests: exploration confidence: high count: 1 examples: ["I can explain why Bursa was built..."]Update
knowledge/lesson-types/heuristics.yaml -
Subject patterns: From topic clusters:
- keywords: ["API", "endpoint", "library"] suggests: developer_documentation confidence: high count: 1 examples: ["I can build a web API using Fiber..."]Update
knowledge/lesson-types/heuristics.yaml -
Edge cases: From ambiguous classifications:
- slt: "I can set up my development environment..." candidates: ["how_to_guide", "organization_onboarding"] chosen: how_to_guide deciding_factor: "Generic procedure, not org-specific" question_that_helped: "Would this SLT exist in a generic course?" course: "course-slug" date: "YYYY-MM-DD"Append to
knowledge/lesson-types/edge-cases.yaml
Phase: lesson-build
Source files:
lessons/*.md05-readiness-assessment.md(for comparison)
Extract:
-
Calibration updates: Compare actual lesson-building experience to self-assessed readiness:
- slt_id: "course:module.slt" self_assessed: Ready actual_outcome: success | partial | failure dimensions_off: ["Code Demo was actually Weak"] notes: "Apollo API changed since training" date: "YYYY-MM-DD"Update existing entries in
knowledge/readiness/calibration.yaml -
Compute calibration stats: After updating entries:
- Calculate accuracy_rate
- Identify common_overconfidence patterns
- Identify common_underconfidence patterns
- Generate adjustment rules
Phase: context-add
Source files:
assets/(newly added context)- Re-run
/self-assess-readiness(or compare to previous)
Extract:
- Context effectiveness: For resources that were obtained:
Update- resource: "gOuroboros README" obtained: true effectiveness: confirmed | partial | unhelpful notes: "Unlocked 4/5 expected SLTs, one still needs examples"knowledge/readiness/context-leverage.yaml
Phase: rollup
Run all extraction phases for a single course. Produce a summary report:
## Compound Report: [Course Name]
### Knowledge Captured
| Category | Count | Files Updated |
|----------|-------|---------------|
| Successful Rewrites | 3 | successful-rewrites.yaml |
| Quality Issues | 2 | quality-issues.yaml |
| Verb Bank Entries | 5 | verb-bank.yaml |
| Context Resources | 8 | context-leverage.yaml |
| Calibration Entries | 12 | calibration.yaml |
| Lesson Type Heuristics | 4 | heuristics.yaml |
| Edge Cases | 2 | edge-cases.yaml |
### Aggregate Stats Update
- Courses processed: [n]
- Total SLTs analyzed: [n]
- Successful rewrites captured: [n]
- Calibration accuracy: [%]
### Top Insights
1. [Most impactful pattern discovered]
2. [Second most impactful]
3. [Third most impactful]
Output Format
After extraction, always report:
## Compound Complete
**Phase:** [phase name]
**Course:** [course name]
### Extracted
| Knowledge Type | Count | Status |
|----------------|-------|--------|
| [type] | [n] | Added / Updated / Unchanged |
### Files Modified
- `knowledge/slt-patterns/successful-rewrites.yaml` - Added 2 entries
- `knowledge/readiness/context-leverage.yaml` - Updated 3 entries
### Index Updated
- `last_updated`: [timestamp]
- `slts_analyzed`: [new total]
Knowledge Consumption Check
Before modifying knowledge files, read the current state. When updating:
- Increment counts (don't reset)
- Append to lists (don't overwrite)
- Merge patterns (combine evidence from multiple courses)
- Deduplicate (same pattern from different courses = one entry with multiple course references)
Integration Points
This skill produces knowledge that other skills consume:
| Skill | Reads From | Uses For |
|---|---|---|
/draft-slts | verb-bank.yaml, quality-issues.yaml | Prefer effective verbs, avoid problematic patterns |
/assess-slts | quality-issues.yaml, successful-rewrites.yaml | Flag known issues, suggest proven fixes |
/self-assess-readiness | calibration.yaml, context-leverage.yaml | Adjust confidence, prioritize shopping list |
/classify-lesson-types | heuristics.yaml, edge-cases.yaml | Improve initial guesses, handle known ambiguities |
Guidelines
- Always read before writing. Load current YAML state before appending.
- Preserve existing data. Never overwrite — merge and increment.
- Be specific in patterns. Vague patterns don't compound.
- Update the index. Always update
knowledge/index.yamlstats after any extraction. - Report what changed. The user should see exactly what knowledge was captured.
- Seed from examples. Use
examples/go-slts-readiness-assessment.mdto prime the knowledge base.