Communitygithub.com

loft

Façonner la coque avant de couper l'acier — répondre à une question de conception que la prose ne peut trancher en construisant un artefact jetable : un module logique pur dans une coque cliquable, ou des variantes UI structurellement différentes derrière une seule route. Le capitaine réagit à l'artefact ; la réponse s'intègre à la décision ; l'artefact n'accoste jamais. À utiliser quand une question de conception s'enlise dans les mots, quand une carte de navigateur porte un ticket de loft, ou quand une discussion de specs atteint « il faudrait le voir ».

Qu'est-ce que loft ?

Loft est une compétence de conception logicielle qui permet de prendre des décisions architecturales ou UX en créant rapidement un artefact jetable, évitant ainsi des itérations coûteuses sur du code de production. Elle distingue deux types de questions : la branche logique (modèle, règles métier, algorithme) pour laquelle on isole un module pur sans DOM ni I/O, et la branche UI (disposition, navigation) où l'on crée trois variantes structurellement différentes derrière une même route. L'artefact ne doit jamais être fusionné dans `main` : la décision du capitaine est consignée dans la spécification, tandis que l'artefact reste sur une branche `loft/<nom>` comme preuve historique. Cette compétence s'utilise dans Claude Code, Cursor, et d'autres agents IA compatibles avec les skills, et repose sur une discipline stricte : un seul commandement pour lancer, pas de persistance, pas de tests, et une durée de vie limitée à quelques minutes de construction et une session de décision.

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

Demander à votre IA préférée

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

Documentation

Que fait loft ?

Ne coupe pas l'acier tant que la forme n'est pas juste. Les constructeurs navals tracent les lignes de la coque à taille réelle et les ajustent avant la moindre découpe. Loft applique le même principe aux questions de conception : quand les mots ont atteint leur limite — deux réponses plausibles, aucune falsifiable par la discussion — construis un artefact exécutable bon marché, laisse le capitaine y réagir, et intègre cette réaction dans la décision.

Le contrat de rôles. L'équipe construit l'artefact ; le capitaine a pour seule tâche de réagir — et cette réaction est la décision. L'artefact est un instrument pour voir, jamais une longueur d'avance sur le livrable.

Quand lofter

  • une question de conception s'enlise dans la prose : reformulée à plusieurs reprises, toujours pas tranchable (« à quoi devrait ressembler la page de chemin ? », « ce modèle d'état semble-t-il juste ? »)
  • une carte de navigateur porte un ticket loft
  • une discussion de spécifications atteint « il faudrait le voir d'abord »

Ne pas lofter quand :

  • la question peut être répondue par des preuves dans le dépôt ou en demandant au capitaine (c'est interviewer, pas lofter)
  • la destination elle-même n'est pas claire (c'est du brouillard — /oh-my-claudecode:ask-navigator)
  • la réponse existe déjà dans une ADR (ne pas lofter des décisions déjà tranchées)
  • la « question de conception » est en fait un bug (c'est la juridiction du débogueur)

Choisir la branche

Choisis selon ce que demande la question. Une mauvaise branche gaspille tout l'artefact.

Branche logique — le modèle est-il juste ?

Pour les questions d'état, de règles métier, de forme des données ou d'algorithmes (« le déverrouillage régresse-t-il lors d'une reprise ? », « ce reducer tient-il aux limites ? ») :

  1. Isole le cœur décisionnel — la machine d'état, le reducer, le schéma ou l'algorithme — comme un module pur : pas de DOM, pas d'E/S, pas de framework. Écrit de sorte qu'une fois la forme confirmée, il passe dans le vrai codebase inchangé.
  2. Enveloppe-le dans une coque HTML cliquable : un bouton par scénario, les cas limites délicats parcourus dans l'ordre, l'état complet visible après chaque clic.
  3. Une fois la confirmation que le module est prêt à être extrait — il rentre dans le vrai travail via un lancement. Pendant le loft, main reste intact et la coque reste sur la branche.

Branche UI — à quoi cela doit-il ressembler ?

Pour les questions de forme et d'agencement (« étapes ou cartes ? », « où vit la progression ? ») :

  1. Une route, trois variantes structurellement différentes — architecture de l'information, modèle de navigation, densité. Des variantes qui ne diffèrent que par le style ne répondent à rien : trois resurfaçages ne sont que du papier peint.
  2. Un sélecteur sur la page permet de passer d'une variante à l'autre ; intègre-les dans le produit existant si possible, pour que la densité réelle des données éprouve le design au lieu de trois lignes factices bien rangées.
  3. Une fois la confirmation, la décision est transférée et les variantes restent sur la branche comme enregistrement de la raison pour laquelle cela ressemble à cela.

La discipline

  • Une seule commande à lancer — la commande de serve la plus simple existant dans le dépôt ; intègre le module dans la coque si les CORS du module file:// poseraient problème. Se charge en secondes ; aucune étape de build au-delà de ce que le dépôt propose déjà.
  • Pas de persistance, pas de tests, pas d'abstractions, pas de gestion d'erreurs au-delà du chemin heureux. L'artefact doit être quelque chose que tu ne voudrais pas livrer — les règles existent pour qu'il en reste ainsi.
  • Attends-toi à ce que la première forme soit contestée : révise sur la branche dans la même session. La confirmation par le capitaine de la forme finale est la décision ; un artefact que personne ne conteste répond généralement à une question que personne ne se posait.
  • La durée de vie totale de l'artefact est de quelques minutes pour le construire et une session pour décider. S'il commence à se transformer en code de production, arrête : ce travail est un effort de lancement, pas un loft. Le coût irrécupérable est le mode d'échec que cette compétence vise à prévenir.
  • Un loft répond à une question. Deux questions équivalent à deux lofts — ou à une question qui en cachait en fait deux.

Intégrer la réponse

L'artefact est une preuve, pas un point d'arrivée. Quand le capitaine réagit :

  1. Enregistre la décision là où elle vit — dans le commentaire du ticket, la section Décisions d'Implémentation des spécifications, ou la note de décision en attente — dans les propres mots du capitaine, plus une ligne de justification. Un fragment plus précis que la prose (le reducer, la machine d'état, le schéma) peut y être intégré, marqué comme lofté.
  2. Pousse l'artefact sur une branche loft/<nom>. Elle ne fusionne jamais : elle reste comme source première qu'un futur lecteur pourra ouvrir quand le « pourquoi » de la décision comptera.
  3. Rien de l'artefact n'atterrit dans main — pour la branche logique, le module confirmé rentre dans le vrai travail via lancement ; pour la branche UI, la vraie page est construite à partir de la décision.

Périmètre et non-objectifs

  • Loft produit des réponses, pas des livrables : pas d'exécution continue, pas de fichiers d'état, rien de toujours actif.
  • Il ne diagnostique pas (débogueur), ne cartographie pas le brouillard (/oh-my-claudecode:ask-navigator), n'approuve pas sa propre réponse (la réaction du capitaine est la seule validation).
  • Il ne remplace pas l'approbation des seams : une UI loftée montre la forme ; les seams de test associés sont toujours approuvés en C2.

Définition de l'achèvement

Le capitaine a réagi, la réponse se trouve là où vit la décision, l'artefact est sur sa branche — et aucune ligne de l'artefact n'est dans main.

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

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

omc-doctor

Diagnose and fix oh-my-claudecode installation issues

Skills associés