fix(landing): only list commands the terminal runs and the lessons teach - #401
Conversation
The hero listed, per environment and level, 22 commands the simulator did not know (systemctl, launchctl, Get-Service, New-PSDrive...) and 4 no lesson taught. Each listed command now runs in that environment and appears as a word of its own in that environment's lesson code or exercises; landingTotals.test.ts checks both, and fails on the old list. - module subtitle: five levels, up to Git and AI (was "two levels") - module counts from MODULE_PREVIEWS instead of a hardcoded 11 - roadmap: real git branches, the app install guide and the explained reference examples are available; in progress now names multi-step exercises and the taught commands not simulated yet (find, sort, diff) - tests 2 700+ -> 2 900+; docs/plan.md banner brought up to #400 - CHANGELOG and STORY Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Sorry @thierryvm, you've used your own review budget of 250,000 diff characters for the last 7 days.
You can request another review in 2 hours and 30 minutes by commenting @sourcery-ai review. Upgrade to get a review now.
Guide du réviseurLa PR rend les promesses de la page d’accueil exécutables et étayées par le programme pédagogique, ajoute des tests de détection de dérive pour les commandes principales, les niveaux et le nombre de modules, et met à jour la feuille de route ainsi que la documentation du projet afin de refléter l’état actuel du produit. Diagramme de séquence pour valider les commandes de la page d’accueilsequenceDiagram
participant Test as landingTotals.test.ts
participant Landing as ENV_LEVELS
participant Engine as processCommand
participant Lessons as Lesson content
Test->>Landing: Read hero commands by environment and level
loop Each displayed command
Test->>Engine: processCommand(environment, command)
Engine-->>Test: Command result
Test->>Lessons: Search whole-word command usage
Lessons-->>Test: Taught or missing
end
Test-->>Landing: Pass only when command runs and is taught
Diagramme de flux pour les contrôles de dérive du contenu de la page d’accueilflowchart LR
Modules[MODULE_PREVIEWS] --> Counts[Module counts and level subtitle]
Env[ENV_LEVELS] --> Commands[Hero command lists]
Commands --> Execute[processCommand by environment]
Commands --> Curriculum[Lesson code blocks and exercises]
Execute --> Valid[Executable promise]
Curriculum --> Valid
Counts --> Validated[Landing content verified]
Valid --> Validated
Modifications au niveau des fichiers
Conseils et commandesInteragir avec Sourcery
Personnaliser votre expérienceAccédez à votre tableau de bord pour :
Obtenir de l’aide
Original review guide in EnglishReviewer's GuideThe PR makes landing-page promises executable and curriculum-backed, adds drift-detection tests for hero commands, levels, and module counts, and updates roadmap and project documentation to match the current product state. Sequence diagram for validating landing-page commandssequenceDiagram
participant Test as landingTotals.test.ts
participant Landing as ENV_LEVELS
participant Engine as processCommand
participant Lessons as Lesson content
Test->>Landing: Read hero commands by environment and level
loop Each displayed command
Test->>Engine: processCommand(environment, command)
Engine-->>Test: Command result
Test->>Lessons: Search whole-word command usage
Lessons-->>Test: Taught or missing
end
Test-->>Landing: Pass only when command runs and is taught
Flow diagram for landing-content drift checksflowchart LR
Modules[MODULE_PREVIEWS] --> Counts[Module counts and level subtitle]
Env[ENV_LEVELS] --> Commands[Hero command lists]
Commands --> Execute[processCommand by environment]
Commands --> Curriculum[Lesson code blocks and exercises]
Execute --> Valid[Executable promise]
Curriculum --> Valid
Counts --> Validated[Landing content verified]
Valid --> Validated
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
ls sorts its names and adds no slash; PowerShell answers Get-Location with its Path table and Test-Path with True, instead of bash-style listings. The prompt follows cd (~/projects, C:\Users\user\projects), blank output lines keep their height, ls keeps its double spaces, and long commands wrap at the edge like a terminal, not after a hyphen. Outputs captured from GNU bash and PowerShell 7. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Idea from @Thierry: the profile file, aliases and functions, a prompt that shows the folder, the git branch and the Node version, colours, then Starship and Oh My Posh, with the practice terminal showing the learner's prompt live. Listed as planned on the public roadmap and in docs/ROADMAP.md, whose banner is brought up to #401; CHANGELOG, STORY. Co-authored-by: Claude Opus 5.5 <[email protected]>
Why
The landing page should only claim what exists. Its totals were already guarded by
landingTotals.test.ts, but the hero lists commands per environment and level, and typing them in the terminal showed that 22 answered "commande introuvable" (systemctl,launchctl,caffeinate,defaults,xcode-select,Get-Service,New-PSDrive,Register-ScheduledTask…) and 4 more were taught in no lesson (pbcopy,pbpaste,Write-Host,Clear-Host).What changes
ENV_LEVELS(hero): every command listed runs in that environment and appears as a word of its own in that environment's lesson code blocks or exercises. The macOS level 3 is no longer "Homebrew" (brew is only mentioned in lesson text, never practised).MODULE_PREVIEWS.length(share text, footer line).find,sort,diff,tar…). Test count 2 700+ → 2 900+.lssorted, no/;Get-Locationwith itsPathtable;Test-Path→Trueinstead of bash-style listings under Windows); the prompt followscd, blank lines keep their height,lskeeps its double spaces, long commands wrap at the edge like a terminal. New tests interminalPreview.test.tsx.docs/plan.mdbanner brought up to feat(terminal): real git branches, merges and conflicts, matching Git 2.56 #400; CHANGELOG and STORY.Verification
landingTotals.test.ts: new checks run each hero command inprocessCommandfor its environment and look for it as a whole word in the lessons (a substring search lettopmatch "stop"); another ties the "N niveaux" subtitle to the highest module level, and the roadmap's module count toMODULE_PREVIEWS. Run against the previouslandingContent.ts, the command checks fail (8 of 9 levels).landingContent.tsstill imports neither the curriculum nor the engine (THI-118 bundle constraint).Follow-ups
find,sort,uniq,diff,sed,df,du,tar,which,Where-Object,Sort-Object…).Get-ChildItemprints a bash-style list instead of PowerShell's table, andNew-Item -Type Directory my-appcreates a folder namedDirectory.🤖 Generated with Claude Code
Résumé par Sourcery
Veiller à ce que la page d’accueil ne promette que des commandes de terminal et du contenu pédagogique actuellement disponibles.
Correctifs :
Améliorations :
Documentation :
Tests :
Original summary in English
Summary by Sourcery
Ensure the landing page only promises terminal commands and learning content that currently exist.
Bug Fixes:
Enhancements:
Documentation:
Tests: