Skip to content

docs(agents): cover multi-step exercises in the audit agents - #405

Merged
thierryvm merged 1 commit into
mainfrom
docs/agents-multistep-refresh
Sep 29, 2026
Merged

thierryvm merged 1 commit into
mainfrom
docs/agents-multistep-refresh

Conversation

@thierryvm

@thierryvm thierryvm commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

Why

During #403 and #404 each audit agent ended its report with its own blind spots. This PR writes those lessons into the agents, so the next multi-step exercise PR is audited correctly from the start.

What changes (docs only)

  • terminal-fidelity-auditor: rebuild a lesson's Git setup by hand (environment recipe included) instead of classifying every git command NOT-RUNNABLE-HERE; replay the commands exercise steps ask for; check claims in warn / restart / successMessage (a text without …ByEnv also shows on Windows); git may be missing from pwsh -NoProfile's PATH; never open a file through its association. Trigger extended to step texts.
  • curriculum-validator: validators used through stepAccepts(...) are not orphans; new check for multi-step exercises (validate xor steps, per-step ByEnv symmetry, one solution command per step); dangling unlocks as info; write scripts to a temporary .mts file. Triggered by changes to the Exercise type, exerciseSteps.ts, lessonSetup.ts, lessonSolutions.ts, LessonPage.tsx.
  • test-runner: Playwright test.skip(true, reason) is a runtime skip, not a leaked .skip(.
  • CLAUDE.md: fidelity trigger covers step texts; multi-step exercises must have no dead end when commands are typed out of order.

Models: every agent keeps its alias (opus ×13, sonnet ×8), so the Sonnet agents already run on the latest Sonnet; no frontmatter change (agentFrontmatter.test.ts 64/64).

Verification

Voie C — docs-only, 0 runtime file. Smoke test on the preview (HTTP 200 on key routes) before merge.

🤖 Generated with Claude Code

Résumé par Sourcery

Amélioration des consignes de l’agent d’audit afin de valider de manière fiable les exercices en plusieurs étapes et le comportement du shell dans différents environnements.

Corrections de bugs :

  • Empêcher les audits du test-runner de signaler à tort les exclusions d’exécution de Playwright comme des tests ignorés ayant fuité.

Améliorations :

  • Renforcer les consignes de validation du programme pour les exercices en plusieurs étapes, notamment les références aux validateurs, l’exhaustivité des étapes, la symétrie des environnements, la couverture des solutions et la détection des impasses.
  • Étendre les consignes d’audit de la fidélité du terminal afin de couvrir le comportement du shell décrit par les étapes et les messages de l’exercice, les configurations Git reproductibles, les limitations de PowerShell et l’exécution plus sûre des commandes.
  • Étendre les consignes d’appel de l’agent afin que les modifications du comportement des exercices en plusieurs étapes fassent l’objet d’audits du programme et de la fidélité du terminal.

Documentation :

  • Mettre à jour les consignes relatives au programme, à la fidélité du terminal, au test-runner et au projet afin d’intégrer les enseignements tirés de l’audit des exercices en plusieurs étapes.
Original summary in English

Summary by Sourcery

Improve audit-agent guidance for reliably validating multi-step exercises and shell behavior across environments.

Bug Fixes:

  • Prevent test-runner audits from falsely flagging Playwright runtime skips as leaked skipped tests.

Enhancements:

  • Strengthen curriculum validation guidance for multi-step exercises, including validator references, step completeness, environment symmetry, solution coverage, and dead-end detection.
  • Expand terminal-fidelity auditing guidance to cover shell behavior described by exercise steps and messages, reproducible Git setups, PowerShell limitations, and safer command execution.
  • Extend agent invocation guidance so changes to multi-step exercise behavior receive curriculum and terminal-fidelity audits.

Documentation:

  • Update curriculum, terminal-fidelity, test-runner, and project guidance to encode lessons from auditing multi-step exercises.

What the agents reported about their own blind spots during #403/#404:

- terminal-fidelity-auditor: rebuild a Git setup by hand (recipe) instead
  of stopping at NOT-RUNNABLE-HERE; replay the commands exercise steps ask
  for and check the claims of warn/restart/successMessage; git is not on
  pwsh's PATH; never launch a file by its association.
- curriculum-validator: count validators used through stepAccepts (no
  false orphans), check steps (validate xor steps, per-step ByEnv
  symmetry, one solution command per step), unlocks as info, write
  scripts to a .mts file.
- test-runner: a Playwright test.skip(true, reason) is a runtime skip,
  not a leaked .skip.
- CLAUDE.md: the fidelity trigger covers step texts; multi-step
  exercises must have no dead end out of order.

All agents keep their model alias (opus / sonnet), so the Sonnet agents
already run on the latest Sonnet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
terminal-learning Ready Ready Preview Sep 29, 2026 10:34pm UTC

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 54 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@sourcery-ai

sourcery-ai Bot commented Sep 29, 2026

Copy link
Copy Markdown

Guide de l’évaluateur

Les mises à jour portant uniquement sur la documentation expliquent aux agents d’audit comment valider, rejouer et évaluer des exercices en plusieurs étapes, en particulier les leçons reposant sur Git, tout en corrigeant la détection des ignorations à l’exécution et en élargissant les déclencheurs d’invocation concernés.

Diagramme de séquence pour l’audit de fidélité des exercices reposant sur Git

sequenceDiagram
    participant Auditor as terminal-fidelity-auditor
    participant Setup as lessonSetup.ts
    participant Engine as Terminal simulator
    participant Shell as Isolated Git shell
    participant Steps as Exercise steps
    Auditor->>Setup: Read lesson setup
    Auditor->>Shell: Rebuild repository and commits
    Auditor->>Engine: setup.apply(createInitialState(), env)
    Auditor->>Steps: Read instruction and environment variants
    loop Each requested command sequence
        Auditor->>Engine: processCommand(command)
        Auditor->>Shell: Run command in rebuilt repository
        Engine-->>Auditor: Simulated result
        Shell-->>Auditor: Real-shell result
    end
    Auditor->>Steps: Check warn, restart, and successMessage claims
    Auditor-->>Auditor: Classify fidelity differences
Loading

Diagramme de flux pour l’audit des exercices en plusieurs étapes

flowchart TD
    Change[Exercise or lesson change] --> Trigger{Relevant trigger?}
    Trigger -->|steps, setup, solutions, UI| Validator[curriculum-validator]
    Trigger -->|step shell text or behavior| Fidelity[terminal-fidelity-auditor]
    Trigger -->|general code or test change| Runner[test-runner]
    Validator --> Structure[Validate step structure and solutions]
    Validator --> Orphans[Include stepAccepts validators]
    Fidelity --> Replay[Replay commands in simulator and real shell]
    Fidelity --> Claims[Check warn, restart, and successMessage claims]
    Runner --> Skip[Distinguish runtime test.skip from leaked .skip]
    Structure --> Review[Report findings]
    Orphans --> Review
    Replay --> Review
    Claims --> Review
    Skip --> Review
Loading

Modifications au niveau des fichiers

Modification Détails Fichiers
Extension de la couverture du validateur de curriculum aux exercices en plusieurs étapes et amélioration de la fiabilité de ses scripts de validation dans différents shells.
  • Compter les validateurs référencés via stepAccepts(...) lors de la détection des éléments orphelins.
  • Valider la structure des étapes, la symétrie des variantes d’environnement, les commandes de solution propres à chaque étape et les risques d’ignorance liés à l’état de configuration.
  • Traiter les déverrouillages sans suite comme des informations et utiliser des fichiers .mts temporaires pour les scripts non triviaux.
  • Déclencher le validateur pour les modifications apportées à l’Exercise et aux fichiers associés d’étapes/configuration/solutions/UI.
.claude/agents/curriculum-validator.md
Refonte des consignes sur la fidélité du terminal afin d’auditer le comportement des exercices en plusieurs étapes et de reproduire fidèlement les leçons Git dans des shells isolés.
  • Exiger la reconstruction manuelle des dépôts Git à partir des données de configuration de la leçon, avec une configuration Git déterministe et isolée.
  • Rejouer les commandes intégrées aux instructions des étapes et vérifier les affirmations concernant le comportement du shell dans les messages des étapes.
  • Tenir compte des différences de PATH dans PowerShell, de la sortie Git sans TTY et interdire le lancement de fichiers via des associations externes.
  • Étendre le déclencheur de l’agent au texte des étapes de l’exercice et aux champs décrivant le comportement du shell.
.claude/agents/terminal-fidelity-auditor.md
Affinement des consignes du test-runner afin de distinguer les ignorations intentionnelles à l’exécution des ignorations statiques de tests introduites accidentellement.
  • Exclure les appels Playwright test.skip(true, reason) du modèle de détection des .skip introduits accidentellement.
  • Documenter pourquoi ces ignorations à l’exécution sont légitimes.
.claude/agents/test-runner.md
Mise à jour des consignes d’évaluation à l’échelle du dépôt pour la fidélité des exercices en plusieurs étapes et la détection des impasses.
  • Déclencher l’audit de fidélité du terminal lorsque le texte ou les messages des étapes décrivent le comportement du shell.
  • Exiger l’évaluation des séquences de commandes exécutées dans le désordre et vérifier que chaque exercice en plusieurs étapes dispose d’un parcours permettant de récupérer la situation.
CLAUDE.md

Conseils et commandes

Interagir avec Sourcery

  • Déclencher une nouvelle évaluation : commentez @sourcery-ai review sur la pull request.
  • Poursuivre les discussions : répondez directement aux commentaires d’évaluation de Sourcery.
  • Générer une issue GitHub à partir d’un commentaire d’évaluation : demandez à Sourcery de créer une issue à partir d’un commentaire d’évaluation en y répondant. Vous pouvez également répondre à un commentaire d’évaluation avec @sourcery-ai issue pour créer une issue à partir de celui-ci.
  • Générer un titre de pull request : écrivez @sourcery-ai n’importe où dans le titre de la pull request pour générer un titre à tout moment. Vous pouvez également commenter @sourcery-ai title sur la pull request pour (re)générer le titre à tout moment.
  • Générer un résumé de pull request : écrivez @sourcery-ai summary n’importe où dans le corps de la pull request pour générer un résumé de PR à tout moment, exactement à l’endroit souhaité. Vous pouvez également commenter @sourcery-ai summary sur la pull request pour (re)générer le résumé à tout moment.
  • Générer le guide de l’évaluateur : commentez @sourcery-ai guide sur la pull request pour (re)générer le guide de l’évaluateur à tout moment.
  • Résoudre tous les commentaires de Sourcery : commentez @sourcery-ai resolve sur la pull request pour résoudre tous les commentaires de Sourcery. Utile si vous avez déjà traité tous les commentaires et ne souhaitez plus les voir.
  • Ignorer toutes les évaluations de Sourcery : commentez @sourcery-ai dismiss sur la pull request pour ignorer toutes les évaluations Sourcery existantes. Particulièrement utile si vous souhaitez recommencer une évaluation : n’oubliez pas de commenter @sourcery-ai review pour déclencher une nouvelle évaluation !

Personnaliser votre expérience

Accédez à votre tableau de bord pour :

  • Activer ou désactiver des fonctionnalités d’évaluation telles que le résumé de pull request généré par Sourcery, le guide de l’évaluateur, etc.
  • Modifier la langue d’évaluation.
  • Ajouter, supprimer ou modifier des consignes d’évaluation personnalisées.
  • Ajuster d’autres paramètres d’évaluation.

Obtenir de l’aide

Original review guide in English

Reviewer's Guide

Documentation-only updates teach the audit agents how to validate, replay, and review multi-step exercises, especially Git-backed lessons, while also correcting runtime-skip detection and broadening the relevant invocation triggers.

Sequence diagram for Git-backed exercise fidelity auditing

sequenceDiagram
    participant Auditor as terminal-fidelity-auditor
    participant Setup as lessonSetup.ts
    participant Engine as Terminal simulator
    participant Shell as Isolated Git shell
    participant Steps as Exercise steps
    Auditor->>Setup: Read lesson setup
    Auditor->>Shell: Rebuild repository and commits
    Auditor->>Engine: setup.apply(createInitialState(), env)
    Auditor->>Steps: Read instruction and environment variants
    loop Each requested command sequence
        Auditor->>Engine: processCommand(command)
        Auditor->>Shell: Run command in rebuilt repository
        Engine-->>Auditor: Simulated result
        Shell-->>Auditor: Real-shell result
    end
    Auditor->>Steps: Check warn, restart, and successMessage claims
    Auditor-->>Auditor: Classify fidelity differences
Loading

Flow diagram for multi-step exercise auditing

flowchart TD
    Change[Exercise or lesson change] --> Trigger{Relevant trigger?}
    Trigger -->|steps, setup, solutions, UI| Validator[curriculum-validator]
    Trigger -->|step shell text or behavior| Fidelity[terminal-fidelity-auditor]
    Trigger -->|general code or test change| Runner[test-runner]
    Validator --> Structure[Validate step structure and solutions]
    Validator --> Orphans[Include stepAccepts validators]
    Fidelity --> Replay[Replay commands in simulator and real shell]
    Fidelity --> Claims[Check warn, restart, and successMessage claims]
    Runner --> Skip[Distinguish runtime test.skip from leaked .skip]
    Structure --> Review[Report findings]
    Orphans --> Review
    Replay --> Review
    Claims --> Review
    Skip --> Review
Loading

File-Level Changes

Change Details Files
Expanded the curriculum validator’s coverage of multi-step exercises and made its validation scripts more reliable across shells.
  • Count validators referenced through stepAccepts(...) when detecting orphans.
  • Validate step structure, environment-variant symmetry, per-step solution commands, and setup-state skipping risks.
  • Treat dangling unlocks as informational and use temporary .mts files for nontrivial scripts.
  • Trigger the validator for changes to the Exercise and related step/setup/solution/UI files.
.claude/agents/curriculum-validator.md
Reworked terminal-fidelity guidance to audit multi-step exercise behavior and reproduce Git lessons accurately in isolated shells.
  • Require manual reconstruction of Git repositories from lesson setup data with deterministic, isolated Git configuration.
  • Replay commands embedded in step instructions and verify shell-behavior claims in step messages.
  • Account for PowerShell PATH differences, non-TTY Git output, and prohibit launching files through external associations.
  • Extend the agent trigger to exercise step text and shell-behavior fields.
.claude/agents/terminal-fidelity-auditor.md
Refined test-runner guidance to distinguish intentional runtime skips from leaked static test skips.
  • Exclude Playwright test.skip(true, reason) calls from the leaked .skip detection pattern.
  • Document why these runtime skips are legitimate.
.claude/agents/test-runner.md
Updated repository-wide review guidance for multi-step exercise fidelity and dead-end detection.
  • Trigger terminal-fidelity auditing when step text or messages describe shell behavior.
  • Require review of out-of-order command sequences and ensure every multi-step exercise has a recoverable path.
CLAUDE.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@thierryvm
thierryvm merged commit aeb2110 into main Sep 29, 2026
4 checks passed
@thierryvm
thierryvm deleted the docs/agents-multistep-refresh branch September 29, 2026 22:36

This branch was successfully deployed

1 active deployment
Preview — 5ef618c2 Deployed Sep 29, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant