Synthèse automatique
Reprend une tâche bloquée en réinitialisant son compteur de boucles de correction et en relançant un agent de code avec un nouveau budget de boucles.
Points forts
- Automatise la reprise après épuisement du budget de boucles sans perdre le contexte de la tâche.
- Permet de personnaliser le budget de boucles et d'injecter des instructions supplémentaires.
- Valide l'état de la tâche avant la reprise pour éviter les conflits.
- Affiche clairement les critères d'échec et le contexte du blocage.
Limites
- Dépend du sentinel du pipeline de tâches et des hooks, ne fonctionne pas en dehors de cet environnement.
- Ne s'applique qu'aux tâches ayant le statut « stalled », pas aux autres états.
- Nécessite une confirmation manuelle pour réinitialiser les compteurs.
Quand une tâche a épuisé sa limite de boucles et que vous voulez la relancer avec d'éventuels ajustements.
Quand la tâche est déjà terminée, en cours, ou en revue ; ou si le problème nécessite une intervention manuelle plutôt qu'un simple nouvel essai.
Analyse de sécurité
SûrThe skill only performs local file manipulations (touching/removing a sentinel, editing task YAML metadata) and invokes other controlled internal skills. No destructive, exfiltrating, or obfuscated actions are performed.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
/continue-work TASK-042/continue-work TASK-042 --max-loops 20 "Check the #consent-gate naming in the auth module"Which of my tasks are currently stalled?name: continue-work
description: >
Resumes a stalled task by resetting its remediation loop counter and relaunching a
code agent. A task becomes stalled when the code skill exhausts its loop budget
(default 10 iterations) without satisfying all Definition of Done criteria. This skill
shows the user the last failing criteria, lets them add optional guidance, resets the
counter (with an optional new budget), and triggers a fresh implementation session.
Optionally accepts --max-loops N to set a custom loop budget for the new session.
Trigger on: "continue-work TASK-NNN", "/continue-work", "resume TASK-NNN",
"retry TASK-NNN", "unblock TASK-NNN", "restart work on TASK-NNN",
"reset loops for TASK-NNN", "give TASK-NNN more loops",
or any request to resume a task that is in stalled status.
Continue Work
Resume automated implementation for a task whose remediation loop budget was exhausted.
This skill resets the counters, optionally accepts new user guidance, and relaunches a
fresh code session with the full original context.
Sentinel — acquire before writing TASK cards
A PreToolUse hook (tasks-folder-guard.py) rejects every Write/Edit/MultiEdit/
NotebookEdit call targeting tasks/<CAP>/TASK-*.md unless the shared
task-pipeline sentinel /tmp/.claude-task-pipeline.active is present and
≤30 min old. This skill is on the allowlist (together with /task,
/task-refinement, /launch-task, /code, /fix, and
/pr-merge-watcher). The code session this skill relaunches acquires
its own sentinel inside its session — /continue-work only needs the
sentinel for its own counter-reset edits.
Before the first TASK-card write (resetting loop_count, stalled_reason,
status):
touch /tmp/.claude-task-pipeline.active
At the very end (success or graceful abort):
rm -f /tmp/.claude-task-pipeline.active
A stale sentinel grants write access to the next agent — explicit rm -f
on exit is preferred. The hook treats sentinels older than 30 minutes as
expired.
Usage
/continue-work TASK-NNN
/continue-work TASK-NNN --max-loops 15
/continue-work TASK-NNN --max-loops 20 "Look for #consent-gate not #gate-consentement"
| Argument | Required | Default | Description |
|----------|----------|---------|-------------|
| TASK-NNN | yes | — | Task identifier to resume |
| --max-loops N | no | same as previous max_loops | New loop budget for the session |
| "guidance text" | no | — | Optional hint injected into the remediation context |
Step 1 — Locate and Validate the Task
-
Find the task file at
/tasks/{capability-id}/TASK-NNN-*.md. If not found, scan alltasks/*/directories and report a list of stalled tasks. -
Verify the task status is
stalled:- If
status: done→ tell the user: "TASK-NNN is already done — nothing to resume." - If
status: in_progress→ tell the user: "TASK-NNN is already running." - If
status: in_review→ tell the user: "TASK-NNN is awaiting PR merge, not stalled." - If
status: todo→ tell the user: "TASK-NNN has not been started yet. Use/code TASK-NNN."
- If
-
Read from the task frontmatter:
loop_count: number of loops used before stallingmax_loops: the budget that was exhaustedstalled_reason: multi-line failure summary written by the code skill
Step 2 — Show the Stall Context
Present the situation clearly before asking the user to confirm:
⚫ TASK-[NNN] — [Title]
Capability: [ID] — [Zone]
Stalled after [loop_count] loop(s) / budget was [max_loops].
Last failing criteria:
❌ [Criterion 1]: [failure description from stalled_reason]
❌ [Criterion 2]: [failure description from stalled_reason]
Loop budget for new session: [new_max_loops]
(pass --max-loops N to change — current default: [max_loops])
Optional guidance to inject into the first remediation prompt:
[guidance if provided, or "(none — will retry with the same context)"]
Shall I reset and relaunch? [yes / no / --max-loops N "guidance"]
Wait for the user's confirmation (or adjustment) before proceeding.
Step 3 — Reset the Loop Counters
Determine the new max_loops value:
- If
--max-loops Nwas provided: useN - Otherwise: reuse the previous
max_loopsvalue (not 10 — respect the setting already in the file)
Update the task file frontmatter:
status: todo
loop_count: 0
max_loops: [new_max_loops]
# stalled_reason field: keep it for history but prefix with "# (resolved attempt):"
Write the updated frontmatter. Do not touch any other field (preserves depends_on,
priority, pr_url history, etc.).
Step 4 — Notify the Board
Invoke /sort-task to refresh /tasks/BOARD.md and reflect the todo status
(→ will transition to in_progress once the code agent starts). /launch-task
will pick it up reactively when its Step 6 fires.
Report:
Board updated: TASK-[NNN] moved from ⚫ stalled → 🟢 ready.
Step 5 — Relaunch via Code Skill
Invoke the code skill for TASK-NNN with the following additional context prepended:
── CONTINUE-WORK CONTEXT ──
This task was previously stalled after [loop_count] remediation loop(s).
Stall reason (last failing criteria):
[stalled_reason content]
[IF guidance provided]:
User guidance for this session:
"[guidance text]"
New loop budget: [new_max_loops] iterations.
Loop counter has been reset to 0.
── END CONTINUE-WORK CONTEXT ──
The code skill will:
- Read the updated
loop_count: 0/max_loops: [new_max_loops]from the frontmatter - Detect the zone and route to the correct implementation path
- Skip the initial implementation step if artifacts already exist and only re-run tests + remediation (the code skill handles this via the Stall Procedure check in Step 3)
- Run the matching test skill —
/test-business-capabilityfor non-CHANNEL tasks (test-business-capability agent) or/test-appfor CHANNEL tasks (test-app agent) — and loop up tonew_max_loopstimes
Say:
"Relaunching code skill for TASK-[NNN] with [new_max_loops] loop(s) available..."
Step 6 — Report
After the code skill completes (pass or new stall):
If all tests pass:
✅ TASK-[NNN] resumed and completed.
All DoD criteria validated after [loop_count] additional loop(s).
PR: [PR_URL]
If the budget is exhausted again:
⚫ TASK-[NNN] stalled again after [new_loop_count] additional loop(s).
Failing criteria (new run):
❌ [Criterion 1]
❌ [Criterion 2]
Suggestions:
- Increase the budget: /continue-work TASK-NNN --max-loops [N+10]
- Add targeted guidance: /continue-work TASK-NNN "specific hint about the failure"
- Review the FUNC ADR or task definition — the criterion may be ambiguous
- Run /task-refinement TASK-NNN to clarify the acceptance criteria before retrying
Skill Boundaries
- This skill only resumes
stalledtasks — it does not modify design decisions or task definitions. To change what a task must produce, use/task-refinement TASK-NNNfirst. - The
stalled_reasonwritten by the code skill is preserved in the file for traceability. Each new/continue-workrun annotates it with# (resolved attempt N):prefix rather than deleting it. - This skill does not create new branches — it resumes work on the existing
feat/TASK-NNN-{slug}branch where the previous implementation left off.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/continue-work-msh3us5g/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/continue-work-msh3us5g' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/continue-work-msh3us5g/download' --output '.skill-downloads/continue-work-msh3us5g/SKILL.md.part' && mv '.skill-downloads/continue-work-msh3us5g/SKILL.md.part' '.skill-downloads/continue-work-msh3us5g/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/continue-work-msh3us5g/SKILL.md' && test -s '.skill-downloads/continue-work-msh3us5g/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/continue-work' && cp -R '.skill-downloads/continue-work-msh3us5g' '.claude/skills/continue-work'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/continue-work-msh3us5g'openskills read 'continue-work-msh3us5g'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/continue-work-msh3us5g/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.