e-naxosMAF COURSE / COURS
English

MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1

Analyse et action : Start/End

Comparer une analyse valide et un brouillon prêt pour l’action, sans écrire en base.

Objectifs

Fichiers de travail et prérequis

Prérequis : Demo050 et Demo080. Travailler dans une copie de la distribution complète, avec exercises/Actionability/Start, End et shared/Maf.Backlog. Seul cet exercice distribue une complétion Start/End ; aucun modèle ou fichier d’état n’est nécessaire.

Deux projets, un même contrat partagé
ProjetRôle
Start/Actionability.Start.csprojVersion volontairement incomplète ; code de sortie 2
End/Actionability.End.csprojSolution vérifiant les trois comptes ; code de sortie 0 si conformes
shared/Maf.BacklogValidation commune à conserver sans modification
using Maf.Backlog;

var draft = new BacklogDraft("CSV export", "Bug", "high", "Reporting",
    "Large CSV exports freeze the UI.", ["Which dataset size reproduces the issue?"]);
Console.WriteLine("Exercise incomplete: implement the read-only analysis/action comparison.");
Console.WriteLine($"Analysis errors: {draft.Validate(forAction: false).Length}");
return 2;

exercises/Actionability/Start/Program.cs · L1–L7 · 9a895c94534c

Code source · Actionability · Dossier

Travail à réaliser

dotnet build BaseTechnique.slnx -m:1 -c Release
dotnet run --project exercises/Actionability/Start/Actionability.Start.csproj -c Release --no-build

Dans Start, appeler Validate(forAction: false) puis Validate(forAction: true) sur le brouillon initial. Créer ensuite une copie avec ClarifyingQuestions vide et valider cette copie pour action. Afficher les trois comptes d’erreurs. Ne pas ajouter de persistance, de permission ni modifier le validateur partagé.

Ce qu’il faut expliquer

Le brouillon initial contient une question ouverte sur la taille du jeu de données. Il peut être recevable comme analyse tout en restant bloqué pour action. Le fait de retirer cette question dans une fixture contrôlée ne prouve pas qu’un utilisateur réel a répondu.

Indices avant la correction

Comparer Validate(forAction: false) à Validate(forAction: true). Utiliser with pour créer un nouveau brouillon ; ne pas changer le validateur partagé. Afficher les trois compteurs puis retourner un code qui vérifie leur valeur.

Comparer à End

dotnet run --project exercises/Actionability/End/Actionability.End.csproj -c Release --no-build

Résultats attendus, issus du fichier End : Analysis errors: 0 ; Action errors before clarification: 1 ; Action errors after clarification: 0. End vérifie ces trois valeurs et termine avec 0 si elles concordent, 1 sinon. Aucun nouveau lancement de l’exercice n’est revendiqué ici.

using Maf.Backlog;

var draft = new BacklogDraft("CSV export", "Bug", "high", "Reporting",
    "Large CSV exports freeze the UI.", ["Which dataset size reproduces the issue?"]);
int analysisErrors = draft.Validate(forAction: false).Length;
int actionErrors = draft.Validate(forAction: true).Length;
var clarified = draft with { ClarifyingQuestions = [] };
int clarifiedErrors = clarified.Validate(forAction: true).Length;
Console.WriteLine($"Analysis errors: {analysisErrors}");
Console.WriteLine($"Action errors before clarification: {actionErrors}");
Console.WriteLine($"Action errors after clarification: {clarifiedErrors}");
Console.WriteLine("Validation does not grant permission or approval. No business write was attempted.");
return analysisErrors == 0 && actionErrors == 1 && clarifiedErrors == 0 ? 0 : 1;

exercises/Actionability/End/Program.cs · L1–L13 · 9a895c94534c

Code source · Actionability · Dossier

Une frontière de validation

Retour au raisonnement

Prérequis

Pour poursuivre

lot014-consolidation-1 · 2026-10-24 · 9a895c94534cd5fc6f3da883e37e5f7856e588c1