Skip to content

Learnskill

URL: https://mkdocs.justinsforge.com/memory/general/reference_learnskill/

/learnskill <thing-name> [--invocable|--internal] [--type atomic|orchestrator]

Forge-native graduation orchestrator. Built 2026-05-02. Turns the "I just hacked together this thing" moment into a documented, idempotent, registered tool with one slash command.

What it does

Eight-step procedure: 1. Capture intent from the just-completed task 2. Classify (atomic vs orchestrator, invocable vs internal helper) 3. Generate canonical script at forge/scripts/forge_<name>.{py,sh} with idempotency + fail-loud structure 4. Write SKILL.md if user-invocable (matches /research, /strategy patterns) 5. Write topic file at forge/memory/general/reference_<name>.md 6. Add one-line MEMORY.md index entry under the right section 7. Smoke test (happy path + bad input + idempotency check) 8. Report + offer 30-day /followup to verify usage

When it fires

The graduate hacks to skills feedback memory defines the trigger signals: seen-twice rule, obvious reuse, external-tool wrapper, format conversion, API call boilerplate, multi-step CLI chain, or Justin flagging it.

Output contract

Every graduated tool produces: - Canonical script (chmod 755, idempotent, fail-loud, no em dashes, snake_case naming per FORGE-DOCTRINE.md Section 4) - SKILL.md (only if --invocable) - Topic file (always, with mkdocs URL) - MEMORY.md index entry (one line, under correct section) - Successful smoke test

Halts if any step fails. No half-graduations.

When NOT to use

  • Truly one-off work (renaming three files, fixing a typo)
  • Re-running an existing forge script with different args (use /followup to schedule it)
  • Heavyweight skill development needing evals + iteration (use skill-creator plugin instead)
  • Editing an existing forge tool (edit in place, update topic file)

Cost model

Subscription quota only. The graduation work happens in the current session, no worker spawn needed. Per cost-aware automation defaults.