Tests that probe whether the AI system loads the right specialized skill for your request. Covers content creation skills (presentation, spreadsheet, design, memory, writing) and engineering discipline skills (debugging, TDD, security, code review, simplification). Includes collision guards, paraphrased variants, and deprecated-skill detection.
AI systems use skill matching — a behind-the-scenes mechanism that decides which specialized instructions to load. When it works, the right skill fires. When it breaks: wrong skill, no skill, or a deprecated skill fires.
How to tell: In Aperio, look for 📚 Loaded skill: name. In other systems, judge by behaviour.
The Direct prompts use obvious keywords. The Paraphrased prompts use natural, casual language. Strong matching handles both. Brittle matching only handles Direct.
Expect: pptx
pptx fires for both. The matcher recognizes presentation intent without the trademark keyword.canvas-design or doc-coauthoring fires instead.Expect: xlsx
xlsx fires for both. Recognizes "CSV," "pivot," and "chart" as spreadsheet operations.Expect: canvas-design
canvas-design fires for both. No UI-design or presentation skill steals it.theme-factory or pptx loads instead.Expect: memory-protocol & wiki
memory-protocol fails on "note"/"keep." wiki fires for memory prompt or vice versa.Expect: prompt-optimizer, doc-coauthoring, reasoning-planning
doc-coauthoring fires for prompt-optimizer. No skill fires.These five skills were added 2026-06-13. They govern how the agent approaches debugging, testing, security, code review, and simplification. Each test verifies the right skill fires — both for Direct technical phrasing and Paraphrased natural language.
Expect: debugging-and-error-recovery
debugging-and-error-recovery fires for both. The matcher recognizes "walk me through finding what's broken" as debugging intent.Expect: test-driven-development
test-driven-development fires for both. Recognizes "prove it works" as TDD intent.webapp-testing fires instead (collision — both involve "testing").⚠ Collision guard: "run a playwright browser screenshot test" must still fire webapp-testing, not TDD.
Expect: security-and-hardening
security-and-hardening fires for both. Recognizes "can't be exploited through user input" as security hardening.Expect: code-review-and-quality
code-review-and-quality fires.coding-standards fires instead (collision — "review my Go code's naming conventions" should still go to coding-standards).⚠ Collision guard: "review my Go code's naming conventions and style" must fire coding-standards, not code-review.
Expect: code-simplification
code-simplification fires.Tests whether deprecated skills (coding-examples, memory-learning) still incorrectly fire.
coding-standards, memory-protocol) or no skill fires.coding-examples or memory-learning fires — dead skills still active in the matcher.Results fill in automatically. The "Skill loaded" column is for noting which skill actually fired on failures.
| Test | Expect | Direct | Paraphrased | Notes |
|---|---|---|---|---|
| Content Creation | ||||
| 1. Presentation | pptx | — | — | |
| 2. Spreadsheet | xlsx | — | — | |
| 3. Visual Design | canvas-design | — | — | |
| 4a. Memory | memory-protocol | — | — | |
| 4b. Wiki | wiki | — | — | |
| 5a. Prompt Optimizer | prompt-optimizer | — | — | |
| 5b. Doc Coauthoring | doc-coauthoring | — | Direct only | |
| 5c. Reasoning/Planning | reasoning-planning | — | Direct only | |
| Engineering Discipline | ||||
| 6. Debugging | debugging-and-error-recovery | — | — | |
| 7. TDD | test-driven-development | — | — | |
| 8. Security | security-and-hardening | — | — | |
| 9. Code Review | code-review-and-quality | — | Direct only | |
| 10. Code Simplification | code-simplification | — | Direct only | |
| Bonus: Ghost Skill | no deprecated | — | (extra) | |
| DIRECT: ____ / 13 | PARAPHRASED: ____ / 8 | BONUS: ____ / 1 | OVERALL: ____ / 22 | ||||
coding-examples or memory-learning fires, the matcher still references deprecated skills.| Symptom | Likely cause |
|---|---|
| Skill fires for Direct but not Paraphrased | Keywords too narrow (exact-match only) |
| Wrong skill fires for Paraphrased | Keyword collision — another skill's keywords overlap |
| No skill fires at all | Keywords too conservative, or matcher threshold too high |
| Deprecated skill fires | Old keywords still present in the matcher index |
| Skill that should always fire doesn't | Keywords are missing or skill isn't registered |
Aperio's autotune tool does exactly what you just did manually — programmatically: runs prompts through the matcher, scores accuracy, mutates keywords, and keeps improvements. These manual tests give you the same signal without running any code. If you find Paraphrased failures, those are exactly the cases autotune would fix.