- Home
- Skills
- Gentleman Programming
- Gentleman.Dots
- Gentleman Trainer
gentleman-trainer_skill
- Shell
1.3k
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill gentleman-programming/gentleman.dots --skill gentleman-trainer- SKILL.md6.9 KB
Overview
This skill documents patterns and workflows for adding Vim Trainer RPG content in installer/internal/tui/trainer. It captures required data shapes, module progression, exercise design rules, and the decision tree for adding modules, exercises, and boss fights. Use it as a checklist to keep new content consistent and testable.
How this skill works
The skill inspects the trainer code patterns: ModuleID constants, exercise struct fields, module unlock order, lesson→practice→boss progression, and validation rules. It guides adding files, registering modules, creating exercises and boss chains, and wiring unlocks. It maps each change to tests and simulator validation commands to keep behavior correct.
When to use it
- Adding a new training module (module constants, registration, unlock order)
- Creating lessons, practice exercises, or boss fight steps
- Designing or updating exercise content (missions, solutions, hints, explanations)
- Adjusting progression, unlock conditions, or points/timeouts
- Working on the Vim command simulator or validation logic
Best practices
- Define every module as a ModuleID constant in types.go and add it to moduleUnlockOrder
- Create exercises in exercises_{module}.go with unique IDs using the module_number format
- Provide multiple valid Solutions, mark an Optimal solution, and include clear Mission, Hint, and Explanation
- Structure bosses with 5–7 BossSteps, set Lives (commonly 3), and include varied skills from the module
- Keep Levels progressive (1–10), use realistic code snippets, and run the trainer tests after changes
Example use cases
- Add ModuleNewModule: add ModuleID constant, append to moduleUnlockOrder, register in GetAllModules, implement lessons and boss file
- Create horizontal_005: new Exercise with Code, CursorPos, Solutions (all valid), Optimal, Hint, Explanation, Points, TimeoutSecs
- Implement horizontal_boss: build BossExercise with 5 steps, Lives=3, each step is an Exercise with TimeLimit
- Fix validation: update Solutions list and rely on validateViaSimulator for creative answers; run TestSimulator and TestExercise
FAQ
Use {module}_{number} for regular exercises and {module}_boss_{step} for boss steps, e.g., horizontal_001, vertical_boss_3.
What belongs in Solutions vs Optimal?
Solutions must include all valid input variants accepted by the simulator; Optimal should be the shortest or best-practice command you want to teach.