Flux de travail quotidien

Voir la source sur GitHub

Ce guide présente une routine quotidienne reproductible avec AWR : vérifier l'état de votre projet, réserver ou reprendre une tâche, enregistrer la progression, pointer, et effectuer la passation pour que vous — ou un agent — puissiez reprendre exactement là où les choses se sont arrêtées.

Avant de commencer, assurez-vous que votre projet est initialisé et que vous connaissez les concepts de base (éléments de travail, sessions, réservations, points de contrôle) — voir Démarrage rapide et Concepts. La même routine fonctionne via MCP ; voir MCP.

Une note sur les versions : certaines capacités ci-dessous (la vue action et work edit) reflètent l'arborescence source actuelle et peuvent ne pas être activées dans le paquet publié. Exécutez awr --help pour voir ce que votre installation prend en charge.

1. Commencez votre journée : trouvez l'action suivante

Lancez une vérification d'état avant toute autre chose :

awr status

awr status et l'outil MCP awr_project_status utilisent par défaut la vue action (view="action"). Elle répartit votre travail ouvert en quatre files, avec au plus cinq entrées par file plus les comptes exacts du total et des omis :

FileSignificationCe que vous faites
currentTravail actif ou réservé sans attente ni blocage connuContinuez avec la session propriétaire, ou reprenez-la explicitement
readyStructure et éligibilité à la réservation toutes deux validéesPréparez le contexte et acquérez la propriété
waitingUne attente utilisateur, un enregistrement d'exécution non résolu ou une dépendance inachevéeObtenez la réponse ou inspectez le prérequis avant de réessayer
blockedStructure invalide, dépendances indisponibles, problèmes de source ou blocages explicitesInspectez le travail cité et corrigez la cause

Restreignez la sélection avec des sélecteurs répétables — ils se croisent :

awr status --work GUIDE-1 --goal GOAL-1 --milestone M1

La file est un outil de navigation, pas d'autorisation : les réservations et les contrôles d'achèvement restent appliqués par leurs propres actions. awr ready garde son sens plus étroit — éligible à une nouvelle réservation — et omet le travail en cours.

2. Réservez ou reprenez la tâche

Configurez une fois par shell pour que chaque commande soit liée au projet et formatée en JSON :

AWR_BIN=/absolute/path/to/awr
AWR_PROJECT=/absolute/path/to/initialized/project
AWR_WORK=EXAMPLE-001
AWR_AGENT=agent-primary
AWR_MODEL=your-current-model
AWR_NOTES=$(mktemp -d "${TMPDIR:-/tmp}/awr-session.XXXXXX")
awrj() { "$AWR_BIN" --project "$AWR_PROJECT" --json "$@"; }

Du travail nouveau, réservé sous une nouvelle session :

AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session start --work "$AWR_WORK" --agent "$AWR_AGENT" \
  --provider generic --model "$AWR_MODEL" --claim --ttl-ms 3600000 \
  --expected-revision "$AWR_REV" > "$AWR_NOTES/start.json"
AWR_SESSION=$(jq -er '.session.id' "$AWR_NOTES/start.json")

La réservation est une propriété runtime ; elle ne réécrit pas le statut du travail source. Si une session existe déjà pour ce travail, inspectez-la avec session show et confirmez la propriété — un agent ou un modèle différent continue via session resume dans sa propre session.

3. Compilez votre contexte

Avant d'éditer, construisez le paquet de contexte pour la session :

awrj context bootstrap --session "$AWR_SESSION" --budget 1000 \
  > "$AWR_NOTES/bootstrap.json"
jq -e '.context.complete' "$AWR_NOTES/bootstrap.json"

awrj context compile --work "$AWR_WORK" --session "$AWR_SESSION" \
  --budget 5000 > "$AWR_NOTES/context.json"
jq -e '.completeness.complete and (.work_context != null)' "$AWR_NOTES/context.json"

Lisez le paquet, pas seulement le booléen. Sur BudgetExceeded, élargissez le budget ou restreignez le périmètre ; sur SourceStale, exécutez d'abord awr source reindex.

4. Travaillez, puis enregistrez un point de contrôle

Enregistrez ce qui s'est réellement passé — échecs, contexte manquant et boucles ouvertes :

AWR_CONTEXT_HASH=$(jq -er '.work_context.context_hash' "$AWR_NOTES/context.json")
AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session checkpoint --session "$AWR_SESSION" --agent "$AWR_AGENT" \
  --context-hash "$AWR_CONTEXT_HASH" \
  --digest "Record the work actually done; do not invent a passing review." \
  --next-action "State the exact next operator or agent action." \
  --open-loop "List every unresolved loop." \
  --expected-project-revision "$AWR_REV" > "$AWR_NOTES/checkpoint.json"

Quelques points à comprendre sur les points de contrôle :

  • --agent est une déclaration de l'appelant. Une valeur qui ne correspond pas à la session est rejetée avec des conseils de reprise ; une valeur correspondante reste non vérifiée — le CLI ne peut pas authentifier le modèle réel derrière une étiquette. L'omettre enregistre l'origine comme undeclared.
  • Le résumé et le hash de contexte sont vos affirmations. Utilisez le vrai dernier hash utilisé ; un point de contrôle enregistré ne prouve ni un contexte vérifié, ni des tests réussis, ni un travail achevé.
  • Pour le garde-fou de révision, utilisez la project_revision de premier niveau de session show, pas session.revision. En cas de conflit, inspectez les changements intervenus avant de réessayer.
  • Un point de contrôle ne réécrit jamais l'action suivante adossée à la source. Pour changer le contrat, éditez la source faisant autorité.

5. Corrigez les petites modifications de champs sans éditer le YAML à la main

Quand le plan source a besoin d'une petite correction — disons que la source indique « Rédiger le guide » mais que la vraie étape suivante est « Relire la conclusion » — prévisualisez la modification :

awr --json work edit GUIDE-1 --request-key guide-next-1 --actor writer \
  --reason 'Clarify the review step' --next-action 'Review the conclusion'

La réponse montre l'emplacement dans la source, les anciennes et nouvelles valeurs, et les empreintes avec lesquelles accepter. Examinez-les, puis répétez la commande en ajoutant :

--accept --source-fingerprint SOURCE_FINGERPRINT \
--expected-preview PREVIEW_FINGERPRINT --expected-revision REVISION

Les champs pris en charge sont --title, --summary, --priority et --next-action. Après une réponse incertaine, vérifiez host status --key guide-next-1 ; une modification de champ ne change jamais la propriété, le cycle de vie ou la vérification.

6. Terminez la session — ou transmettez-la

Quand vous vous arrêtez pour la journée :

AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session end --session "$AWR_SESSION" --outcome incomplete \
  --expected-revision "$AWR_REV"

Terminer libère la réservation ; cela n'achève pas le travail source. Votre point de contrôle de l'étape 4 est ce qui permet au travail de reprendre proprement.

7. Reprenez là où vous (ou un agent) vous êtes arrêté

Plus tard — ou depuis un autre agent — reprenez depuis la session prédécesseure :

AWR_PREDECESSOR=the-recorded-awr-session-id
awrj session show "$AWR_PREDECESSOR"
AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session resume --from-session "$AWR_PREDECESSOR" \
  --agent "$AWR_AGENT" --provider generic --model "$AWR_MODEL" \
  --budget 5000 --expected-revision "$AWR_REV" > "$AWR_NOTES/resume.json"
jq -e '.context_ready' "$AWR_NOTES/resume.json"
AWR_SESSION=$(jq -er '.resumed.session.id' "$AWR_NOTES/resume.json")

La reprise crée une nouvelle session AWR ; elle ne bascule pas le chat natif de votre hôte. Compilez ensuite le contexte à nouveau (étape 3) et continuez. Après une compaction de l'hôte, si la même session AWR est toujours active, recompilez simplement — réservez session resume à une vraie passation.

Pour comparer le plan avec ce qui a été enregistré en dernier, consultez l'objet progress exposé par status --view action et work show KEY :

  • source_next_action — le texte faisant autorité du plan source, avec son localisateur, sa révision source et sa fraîcheur.
  • latest_checkpoint_next_action — le point de contrôle le plus récent pour ce travail, cette branche et cette propriété exacts, ou null s'il n'y en a pas.
  • differs_from_source — vrai quand le texte du point de contrôle diverge de la source. Une observation, pas un problème : enregistrer la progression ne modifie jamais le contrat original ni n'établit l'achèvement.

Le texte de progression est plafonné à 240 caractères (signalé truncated) ; utilisez work show KEY et session show SESSION pour le texte complet.

Quand quelque chose tourne mal

  • Réponse d'enregistrement incertaine → vérifiez host status --key REQUEST_KEY ; n'utilisez host recover que pour une opération en suspens inspectée.
  • Conflit de révision → lisez status pour la project_revision courante et réessayez avec celle-ci.
  • Point de contrôle suspect → lisez l'enregistrement complet avec session show SESSION ; un enregistrement interrompu sans reçu d'achèvement n'est pas un point de contrôle de reprise.

Pour davantage de modes de défaillance, voir Dépannage. Pour le vocabulaire de cette routine, voir Concepts.