mattpocock/to-spec

Transformer la conversation en cours en un cahier des charges et le publier sur le tracker de tickets du projet : pas d’interview, juste une synthèse de ce qui a déjà été discuté.

Qu'est-ce que to-spec ?

Cette compétence génère automatiquement un cahier des charges (spec) à partir du contexte de votre conversation actuelle et de la compréhension de la base de code, sans poser de questions supplémentaires à l’utilisateur. Elle est particulièrement utile pour les développeurs utilisant des assistants IA comme Claude Code, Cursor ou Codex, car elle synthétise les discussions existantes en spécifications structurées, prêtes à être publiées sur le tracker de tickets du projet. Le processus comprend l’exploration du dépôt, l’identification des points de test (seams) existants ou nouveaux — en privilégiant le moins possible de couches — et la rédaction d’un spec suivant un modèle détaillé incluant problème, solution, user stories, décisions d’implémentation et de test, périmètre et notes complémentaires. Le skill publie ensuite le spec dans le tracker de tickets avec l’étiquette `ready-for-agent`, éliminant ainsi tout besoin de triage supplémentaire. Il respecte le vocabulaire du domaine du projet et les ADR existants, et nécessite que le vocabulaire des étiquettes de triage et le tracker aient été fournis au préalable (sinon, l’utilisateur est invité à exécuter `/setup-matt-pocock-skills`).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/engineering/to-spec

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

Cette compétence prend le contexte actuel de la conversation et la compréhension de la base de code pour produire un cahier des charges. N'interviewez PAS l'utilisateur ; synthétisez simplement ce que vous savez déjà.

Le tracker de tickets et le vocabulaire des étiquettes de triage doivent vous avoir été fournis. Sinon, dites à l'utilisateur d'exécuter /setup-matt-pocock-skills.

Processus

  1. Explorez le dépôt pour comprendre l'état actuel de la base de code, si ce n'est pas déjà fait. Utilisez le vocabulaire du glossaire du domaine du projet tout au long du cahier des charges et respectez les ADR (Architecture Decision Records) dans la zone que vous touchez.

  2. Esquissez les seams (points de test) auxquels vous allez tester la fonctionnalité. Les seams existants doivent être préférés aux nouveaux. Utilisez le seam le plus haut possible. Si de nouveaux seams sont nécessaires, proposez-les au point le plus haut que vous pouvez. Le moins de seams dans la base de code est préférable – le nombre idéal est un.

Vérifiez avec l'utilisateur que ces seams correspondent à ses attentes.

  1. Rédigez le cahier des charges en utilisant le modèle ci-dessous, puis publiez-le sur le tracker de tickets du projet. Appliquez l'étiquette de triage ready-for-agent – pas besoin de triage supplémentaire.

<modèle-spec>

Énoncé du problème

Le problème auquel l'utilisateur est confronté, du point de vue de l'utilisateur.

Solution

La solution au problème, du point de vue de l'utilisateur.

User Stories

Une liste LONGUE et numérotée de user stories. Chaque user story doit être au format :

  1. En tant qu', je veux <fonctionnalité>, afin de <bénéfice>

Cette liste de user stories doit être extrêmement exhaustive et couvrir tous les aspects de la fonctionnalité.

Décisions d'implémentation

Une liste des décisions d'implémentation qui ont été prises. Cela peut inclure :

  • Les modules qui seront construits/modifiés
  • Les interfaces de ces modules qui seront modifiées
  • Des clarifications techniques du développeur
  • Des décisions architecturales
  • Des changements de schéma
  • Des contrats API
  • Des interactions spécifiques

N'incluez PAS de chemins de fichiers spécifiques ou d'extraits de code. Ils pourraient devenir obsolètes très rapidement.

Exception : si un prototype a produit un extrait qui encode une décision plus précisément que la prose ne le peut (machine à états, réducteur, schéma, forme de type), intégrez-le dans la décision concernée et notez brièvement qu'il provient d'un prototype. Limitez-vous aux parties riches en décisions, pas une démonstration fonctionnelle, juste les éléments importants.

Décisions de test

Une liste des décisions de test qui ont été prises. Incluez :

  • Une description de ce qui constitue un bon test (tester uniquement le comportement externe, pas les détails d'implémentation)
  • Quels modules seront testés
  • Des précédents pour les tests (c'est-à-dire des types de tests similaires dans la base de code)

Hors périmètre

Une description des éléments qui sont hors périmètre pour ce cahier des charges.

Notes complémentaires

Toutes notes complémentaires sur la fonctionnalité.

</modèle-spec>

Individual skills in this repo

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

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/grill-with-docs

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

Skills associés