Communitygithub.com

ultragoal

Workflow multi-objectif durable qui persiste les artefacts de planification et de registre sous .omc/ultragoal et imprime le texte de transfert Claude /goal pour la session active.

Qu'est-ce que ultragoal ?

Ultragoal est un outil de workflow durable conçu pour les sessions Claude Code. Il transforme un brief en un ensemble ordonné de goals, enregistre les événements (début, checkpoint, blocage, échec) dans un registre append-only persistant sous `.omc/ultragoal`, et génère un texte de transfert que l'agent Claude actif doit lire et utiliser pour configurer la commande `/goal` native. L'objectif est de permettre le suivi de tâches complexes et multi-sessions, en conservant l'état du plan et du registre à travers les redémarrages de session ou les changements d'arbre de travail, tout en utilisant `/goal` pour maintenir la concentration de l'agent. L'outil ne peut pas modifier l'état de `/goal` depuis le shell ; il produit uniquement des artefacts durables et des instructions que l'agent doit exécuter dans la session. Il prend en charge les espaces de travail multi-dépôts, les sessions parallèles, et applique une porte de révision finale via `ai-slop-cleaner`, `verification` et `code-review`.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/ultragoal

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

<Use_When>

  • L'utilisateur souhaite un moyen durable et natif au dépôt de suivre un ultragoal à travers plusieurs sessions Claude ou arbres de travail
  • Le travail est suffisamment volumineux pour justifier plusieurs « stories » ordonnées avec des compteurs de tentatives et des preuves par story
  • L'utilisateur souhaite que la complétion finale soit conditionnée par ai-slop-cleaner + vérification + $code-review
  • L'utilisateur souhaite que la directive Claude /goal active soit coordonnée avec le registre afin qu'un redémarrage de session ne perde pas la progression </Use_When>

<Do_Not_Use_When>

  • La tâche est une petite modification unique — utilisez plutôt la délégation directe ou ralph
  • L'utilisateur souhaite que l'assistant invoque littéralement /goal depuis le shell — ce n'est pas possible ; omc ultragoal écrit uniquement des artefacts et imprime un texte de transfert
  • L'utilisateur souhaite un artefact de planification uniquement, sans boucle d'exécution — utilisez plutôt plan </Do_Not_Use_When>

<Why_This_Exists> Le /goal de Claude Code est un hook Stop limité à la session : il empêche la session de s'arrêter tant qu'une condition n'est pas remplie, et se désactive automatiquement en cas de succès. C'est une excellente primitive d'exécution pour une seule session, mais elle perd l'état entre les sessions et n'impose pas en soi de porte de révision finale. omc ultragoal ajoute un plan durable, un registre et une couche de contrôle pour qu'une initiative longue et multi-étapes puisse survivre aux redémarrages de session, aux nouveaux arbres de travail et aux itérations de révision, tout en tirant parti de /goal de Claude pour maintenir l'agent actif concentré. </Why_This_Exists>

<How_To_Use>

  1. Créer un plan à partir d'un brief :

    omc ultragoal create-goals --brief-file plan.md
    

    Ou avec des stories explicites :

    omc ultragoal create-goals --brief "livrer la migration" \
      --goal "Schema::Ajouter les nouvelles colonnes" \
      --goal "Backfill::Remplir les lignes par lots" \
      --goal "Cutover::Supprimer les anciennes colonnes et basculer les lectures"
    

    Le mode par défaut est aggregate (un seul /goal Claude couvre l'ensemble). Passez --claude-goal-mode per-story si vous souhaitez que chaque story ait son propre /goal.

    Espaces de travail multi-dépôts / sessions parallèles : lorsque plusieurs sessions Claude dans le même espace de travail doivent exécuter /ultragoal simultanément, passez soit --plan-id <id-stable> soit --auto-plan-id pour que le plan soit écrit dans .omc/ultragoal/plans/{planId}/ au lieu du chemin de plan unique partagé. Sans ce drapeau, deux sessions créant des goals se chevaucheraient. --auto-plan-id dérive {epochMs}-{slug} du titre du brief. Ensuite, transmettez le même --plan-id <id> à chaque sous-commande ultérieure de cette session. Utilisez omc ultragoal list-plans pour énumérer les planIds disponibles si nécessaire.

  2. Démarrer (ou reprendre) la story suivante :

    omc ultragoal complete-goals [<goal-id>]
    

    Sans identifiant de goal, cette commande conserve le comportement par défaut de reprendre la story active ou de démarrer la première story en attente. Avec un identifiant de goal, OMC cible exactement cette story éligible nommée (une story en attente peut être démarrée dans le désordre) ; elle ne passe jamais à une autre story. Une story active différente, un identifiant inconnu, une story terminée ou bloquée par la révision, ou une story échouée sans --retry-failed est rejetée sans modification de l'état. Une story nommée en cours est reprise sans changer son nombre de tentatives. Ceci imprime un texte de transfert destiné au modèle. L'agent Claude actif doit le lire et :

    • Définir le /goal Claude natif pour cette session — dans Claude Code autonome, ni le shell ni l'agent ne peuvent le faire, demandez donc à l'utilisateur de taper /goal <objectif agrégé> et d'attendre. --claude-goal-json (ci-dessous) ne fait que rapprocher le registre et ne satisfait pas la garde PreToolUse /goal, qui bloque les appels d'outil jusqu'à ce qu'elle observe un /goal actif.
    • Travailler la story.
    • Lorsque la story est terminée (et pour la story finale, après la porte de qualité complète), partager un instantané de l'état actif du /goal et appeler checkpoint.
  3. Enregistrer un checkpoint pour une story :

    omc ultragoal checkpoint --goal-id G001-... --status complete \
      --evidence "tests/files/Preuve PR" \
      --claude-goal-json '{"goal":{"objective":"...","status":"active"}}'
    

    Pour la story finale, passez également --quality-gate-json contenant les preuves aiSlopCleaner, verification et codeReview (toutes propres).

  4. Si la révision finale n'est pas propre, NE marquez PAS comme terminée. Enregistrez les blocages :

    omc ultragoal record-review-blockers --goal-id G00X-... \
      --title "Résoudre les blocages de la révision de code finale" \
      --objective "Corriger les problèmes de révision trouvés et relancer les portes finales" \
      --evidence "<les résultats de la révision>" \
      --claude-goal-json '{"goal":{"objective":"...","status":"active"}}'
    

    Ceci ajoute une nouvelle story de blocage et maintient le /goal Claude actif.

  5. Inspecter l'état à tout moment :

    omc ultragoal status
    

</How_To_Use>

<Important_Limitations>

  • Le shell ne peut pas invoquer ni modifier l'état de /goal de Claude Code. omc ultragoal ne fait que persister des artefacts durables et imprimer des instructions que l'agent Claude actif lit et exécute dans la session.
  • Les instantanés passés via --claude-goal-json sont des preuves fournies par le modèle de l'état actif de /goal ; OMC les valide pour leur cohérence textuelle avec l'objectif attendu du plan et l'événement du registre, mais il ne peut pas observer indépendamment l'état de /goal de Claude. Ils ne satisfont pas la garde PreToolUse /goal, qui nécessite un /goal actif réel — un instantané injecté par l'hôte ou le /goal natif défini par l'utilisateur dans la session.
  • Si la commande slash /goal de Claude est renommée ou restructurée, seul le libellé du transfert doit changer ; la logique de rapprochement est indépendante du nom. </Important_Limitations>

Mises en garde pour les sessions parallèles

  • Point d'ancrage pour espace de travail multi-dépôts : placez un marqueur .omc-workspace dans le répertoire parent afin que plusieurs sessions dans des sous-dépôts partagent un seul .omc/. Ordre de résolution : OMC_STATE_DIR > .omc-workspace > git > cwd. Voir docs/REFERENCE.md.
  • Source de l'identifiant de session : La variable d'environnement OMC_SESSION_ID l'emporte dans les contextes CLI ; les données payload.data.session_id l'emportent dans les contextes de hook.
  • Identifiant de plan (le cas échéant) : Deux exécutions dans le même espace de travail entreront en conflit sur les artefacts de plan partagés. Utilisez des identifiants de session distincts (le session_id du payload du hook est déjà isolé par session Claude Code), ou passez --plan-id pour que les exécutions ultragoal parallèles aient des registres séparés.
  • Verdict pour le parallélisme : pris en charge (chaque session écrit son propre état limité à la session).

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

agent-doc-discipline

Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and carrying a why, steps before reference, one meaning in one home, no restating what the environment already says. Mandatory at drydock seed generation and the launch C5 sediment pass; opt-in for any other agent-facing doc edit. The companion of minimal-code-discipline: that one disciplines code, this one disciplines papers.

ai-slop-cleaner

Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode

ask

Process-first advisor routing for Claude, Codex, Gemini, Antigravity, Grok, or Cursor via `omc ask`, with artifact capture and no raw CLI assembly

ask-navigator

Shipyard

autopilot

Full autonomous execution from idea to working code

autoresearch

Stateful single-mission improvement loop with strict evaluator contract, markdown decision logs, and max-runtime stop behavior

cancel

Cancel any active OMC mode (autopilot, ralph, ultragoal, swarm, ultrapilot, pipeline, team) and clean up retired legacy state

configure-notifications

Configure notification integrations (Telegram, Discord, Slack) via natural language

debug

Diagnose the current OMC session or repo state using logs, traces, state, and focused reproduction

deepinit

Deep codebase initialization with hierarchical AGENTS.md documentation

deep-interview

Socratic deep interview with mathematical ambiguity gating before explicit execution approval

drydock

Lay the keel of the shipyard harness in any repo — the 4-pillar shared environment (Context, Rules, Tools, Standards) across 5 surfaces (CLAUDE.md, skills, design-system, mcp/cli, shared context) so that every human and agent inherits the same design language and anyone can ship. Run once per repo; re-run with --check to audit drift.

execute

Carry an approved task through to working, verified code

external-context

Invoke parallel document-specialist agents for external web searches and documentation lookup

graph

Deterministic orchestration graph runtime - declarative DAG pipelines with journal-based crash recovery

harbor

Harbor intake for external work — the captain only handles unresolved decisions. Sweeps incoming issues and PRs, verifies every claim before disposition, reuses every decision already made, and hands the maintainer a docket whose pending items each carry one question with options, recommendation, impact and evidence. Agent-autonomous for facts and for actions covered by standing authorization; signed for every new judgment. Never merges.

hud

Configure HUD display options (layout, presets, display elements)

launch

Shipyard

loft

Loft the shape before cutting steel — answer a design question that prose cannot settle by building a throwaway artifact: a pure logic module in a clickable shell, or structurally different UI variants behind one route. The captain reacts to the artifact; the answer folds into the decision; the artifact never docks. Use when a design question stalls in words, when a navigator map carries a loft ticket, or when a spec discussion reaches

minimal-code-discipline

YAGNI-ladder coding discipline for writing changes — existence-first, reuse before writing, dependency ladder, shortest correct diff, with non-negotiables that must never be minimized away

Skills associés