Deduplicate skills and commands — route everything through /do#39
Merged
Jason-Adam merged 3 commits intomainfrom Mar 30, 2026
Merged
Deduplicate skills and commands — route everything through /do#39Jason-Adam merged 3 commits intomainfrom
Jason-Adam merged 3 commits intomainfrom
Conversation
Every skill+command pair was showing up twice in the slash command menu (e.g. /gc and /autodidact-gc). Remove all commands except /do, which serves as the single user-facing entry point and routes to skills via the cost-ascending router. - Remove 15 command wrappers from COMMAND_FILES, keep only do.md - Add legacy cleanup to install/uninstall for old command symlinks - Create skills for forget and learn-status (were command-only) - Rename learn_status → learn-status for naming consistency - Merge review keyword routing into polish (review was an alias) - Move learn-status pattern before learn to prevent greedy matching - Add mine subcommand docs to learn skill (was only in command) - Update all router tests for new skill names Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR removes redundant slash-command wrappers so /do is the single user-facing entry point, and updates routing/skills to support forget and learn-status as first-class skills (including renaming learn_status → learn-status and routing review → polish).
Changes:
- Deduplicates command entry points by installing only
do.mdand cleaning up legacy command symlinks. - Updates router patterns/keyword scoring to use
learn-status, routereviewtopolish, and qualifyforget/learn-statuswithautodidact-. - Adds new skill markdown for
forgetandlearn-status, and extendslearnwith aminesubcommand section.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
install.py |
Installs only /do and removes legacy command symlinks on install/uninstall. |
src/router.py |
Renames learn_status → learn-status, routes review → polish, and qualifies new skills. |
tests/test_router.py |
Updates assertions for new skill names and review→polish routing. |
skills/do/skill.md |
Updates Tier 3 guidance to list fully-qualified autodidact skills (including new ones). |
skills/learn/skill.md |
Adds documentation for the mine subcommand workflow. |
skills/learn-status/skill.md |
Adds the new knowledge-inventory skill protocol. |
skills/forget/skill.md |
Adds the new forget/decay skill protocol. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add polish.md to _LEGACY_COMMANDS (was missing, would leave orphan) - Tighten learn-status regex from .? to [-_\s]? to reject learnXstatus - Remove stale review alias mention from _qualify_skill docstring - Remove duplicate comment in _patch_settings Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…on test - Rename test_review_routes_to_review → test_review_routes_to_polish - Rename test_forget_command_only → test_forget_routes_to_forget_skill - Drop \s from learn-status regex so "learn status codes" routes to learn - Add regression test for learn vs learn-status ambiguity - Add concrete decay/delete commands to forget skill protocol Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Jason-Adam
added a commit
that referenced
this pull request
Mar 31, 2026
Commit #39 removed all commands except /do from the install script but left 16 orphan command .md files in the repo. This cleans them up and updates every doc to reflect the skill-based architecture. - Delete 16 dead command files from commands/ (only do.md remains) - Rewrite docs/commands.md as "Skill Reference" with /do routing examples - Add missing gc and create-pr sections to skill reference - Fix broken README anchor links to gc and create-pr - Update all docs to use /do prefix in examples (loop.md, planning.md) - Correct stale counts: hooks 8->9, skills 14->16, commands 17->1 - Replace ASCII architecture diagram with mermaid in README - Update test count 392->460 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 tasks
Jason-Adam
added a commit
that referenced
this pull request
Mar 31, 2026
* Remove dead command files and fix stale docs after skill consolidation Commit #39 removed all commands except /do from the install script but left 16 orphan command .md files in the repo. This cleans them up and updates every doc to reflect the skill-based architecture. - Delete 16 dead command files from commands/ (only do.md remains) - Rewrite docs/commands.md as "Skill Reference" with /do routing examples - Add missing gc and create-pr sections to skill reference - Fix broken README anchor links to gc and create-pr - Update all docs to use /do prefix in examples (loop.md, planning.md) - Correct stale counts: hooks 8->9, skills 14->16, commands 17->1 - Replace ASCII architecture diagram with mermaid in README - Update test count 392->460 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Move loop box below connected skills in mermaid diagram Eliminates crisscrossing lines by placing the loop node beneath run, campaign, and fleet instead of beside the router. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Address PR review comments: mermaid IDs and skill invocation docs - Use underscore IDs for hyphenated mermaid nodes to fix rendering - Clarify that only /do is installed, no direct /skill-name commands Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/gcand/autodidact-gc). This removes all 15 redundant command wrappers, keeping only/doas the single user-facing entry point that routes toautodidact-*skills via the cost-ascending router.forgetandlearn-status(previously command-only with no skill counterpart).learn_status→learn-statusfor naming consistency with other kebab-case skills.Changes
install.py
COMMAND_FILESreduced to["do.md"]learn-statusandforgettoSKILL_DIRS_LEGACY_COMMANDSlist for cleanup of old symlinks during install/uninstallsrc/router.py
learn_status→learn-statuseverywherelearn-statusandforgetto_AUTODIDACT_SKILLS(getautodidact-prefix)reviewkeyword scores intopolish—reviewnow routes directly toautodidact-polishlearn.?statuspattern beforelearnto prevent greedy matchingNew skills
skills/forget/skill.md— 5-section skill for decaying/removing learningsskills/learn-status/skill.md— 5-section skill for knowledge inventory dashboardskills/learn/skill.md — Added
minesubcommand section (was only in the removed command wrapper)skills/do/skill.md — Updated Tier 3 classification to list all skills with
autodidact-prefix (no more command-only exceptions)Test Plan
ruff checkandruff formatcleanmypypasses./installand verify only/doappears in command menu (no duplicates)/do gc,/do review,/do forget,/do learn-statusall route correctly🤖 Generated with Claude Code