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 :
| File | Signification | Ce que vous faites |
|---|---|---|
current | Travail actif ou réservé sans attente ni blocage connu | Continuez avec la session propriétaire, ou reprenez-la explicitement |
ready | Structure et éligibilité à la réservation toutes deux validées | Préparez le contexte et acquérez la propriété |
waiting | Une attente utilisateur, un enregistrement d'exécution non résolu ou une dépendance inachevée | Obtenez la réponse ou inspectez le prérequis avant de réessayer |
blocked | Structure invalide, dépendances indisponibles, problèmes de source ou blocages explicites | Inspectez 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 :
--agentest 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 commeundeclared.- 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_revisionde premier niveau desession show, passession.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'utilisezhost recoverque pour une opération en suspens inspectée. - Conflit de révision → lisez
statuspour laproject_revisioncourante 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.