skills/learnwy-dispatch/SKILL.md
Internal single-process coordinator for the three IDE-hook events used by the learnwy-* skills. UserPromptSubmit aggregates english-learner + llm-wiki + prompt-optimizer scans; Stop aggregates english-learner + knowledge-consolidation scans; SessionStart aggregates llm-wiki + english-learner + learnwy-status scans. Not user-invokable — installed automatically alongside the underlying skills. Triggers on every UserPromptSubmit / Stop / SessionStart event in Claude Code / Trae.
npx skillsauth add learnwy/skills learnwy-dispatchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Single-process coordinator for the three IDE-hook events shared by the learnwy-* skills.
Before this skill, every event fired N separate hook commands — one Node process per skill — and the user saw N back-to-back <system-reminder> blocks per turn. That multiplies the per-turn hook startup cost (~50 ms × N vs ~50 ms) and clutters context.
This skill replaces those entries with one hook per event that imports each skill's pure scanner function, runs them in-process, and emits a single combined reminder.
hooks/user-prompt-submit.cjs)| Order | Module | Returns reminder when |
|---|---|---|
| 1 | english-learner/lib/prompt-scan.scanPrompt | English ratio ≥ 0.6 OR Chinese learn-intent OR Chinese ratio ≥ 0.3 |
| 2 | llm-wiki/lib/prompt-scan.scanPrompt | wiki/topics.txt has any keyword overlapping a 4+ char word in the message |
| 3 | prompt-optimizer/lib/prompt-scan.scanPrompt | explicit "optimize my prompt" trigger OR long structured prompt-shape |
hooks/stop.cjs)| Order | Module | Returns reminder when |
|---|---|---|
| 1 | english-learner/lib/stop-scan.scanStop | Assistant response has 2–4 advanced English words worth surfacing |
| 2 | knowledge-consolidation/lib/stop-scan.scanStop | Response shows substantive resolution signals (race condition / regression / "subtle"), not session-local trivia |
hooks/session-start.cjs)| Order | Module | Returns reminder when |
|---|---|---|
| 1 | llm-wiki/lib/session-scan.scanSession | wiki/topics.txt exists — inject ≤30 topics |
| 2 | english-learner/lib/session-scan.scanSession | First session of the day — push 3 due-for-review cards |
| 3 | learnwy-status/lib/session-scan.scanSession | First session of the ISO week — prepend a compact cross-skill digest |
Each scanner is a pure (message | payload) => string | null (a couple have minor side effects: prompt-optimizer appends to ~/.learnwy/prompt-optimizer/events.jsonl; KC writes a debounce stamp).
If any scanner throws, the failure is swallowed and the others still run.
This skill is installed by pnpm run install:hooks like any other skill. The corresponding UserPromptSubmit entries in english-learner, llm-wiki, and prompt-optimizer hooks.json files have been removed — only this skill registers a UserPromptSubmit handler now.
After upgrading from a version without learnwy-dispatch, run:
pnpm run uninstall:hooks # remove the old per-skill UserPromptSubmit entries
pnpm run install:hooks # install the dispatcher (and re-register the others)
The pnpm run install:hooks orchestrator performs an uninstall sweep before installing, so you can re-run it any time as a one-shot, idempotent operation.
There is no user-facing slash command and no cli.cjs <subcommand> other than install / uninstall. The skill description's trigger keywords exist purely so the AI surface area knows it is registered — direct invocation has no value.
tools
Fallback skill when no project-specific one matches. Provides 10 battle-tested software-engineering methodology agents: problem-definer (Weinberg), story-mapper (Patton), spec-by-example (Adzic), domain-modeler (DDD/Evans), responsibility-modeler (CRC/Wirfs-Brock), architecture-advisor (Bass), tdd-coach (Beck), refactoring-guide (Fowler), legacy-surgeon (Feathers), test-strategist (Crispin). Use when user asks about DDD, TDD, refactoring, story mapping, test strategy, or software-architecture quality attributes.
development
Use when the user wants to build, implement, or develop a feature. Orchestrates evidence-driven Spec-Driven Development. Default lifecycle is `lite` (INIT → IMPLEMENTING → TESTING → DONE); auto-promote to `standard` or `full` when scope, risk, or AC traceability demands it. Triggers: 'develop feature', 'implement this', 'build feature', 'add module', 'fix bug', '开发功能', '实现这个'.
documentation
当用户需要创建、更新或设计项目级技能(.agents/skills/*/SKILL.md)时使用此技能。Analyzes the user's problem and project context to design reusable skill solutions. 触发词:'创建技能'、'编写技能'、'构建技能'、'添加技能'、'更新技能'、'项目技能'、'新建技能'、'设计技能', or when the user describes a repetitive workflow that should be captured as a reusable AI skill.
tools
Use this skill when the user wants to install, add, or configure a skill in a project. Analyze the project's tech stack and workflow, then recommend and install the best-matching skill. Triggers: 'install skill', 'add skill', 'configure skill', 'set up skill', 'enable skill', 'use skill in project', 'project skill', or when the user asks how to bring an existing skill capability into the current workspace.