Synthèse automatique
Transforme des ADR acceptés et des documents d'idées en spécifications d'implémentation formelles, en interrogeant l'auteur sur les frontières du contrat et en appliquant une checklist de rigueur.
Points forts
- Entretien structuré couvrant types, signatures, cas d'erreur, cas limites, ordonnancement et contraintes
- La vérification de rigueur interdit les « à définir » et impose des contraintes mesurables ainsi qu'un comportement explicite pour chaque erreur
- Pousse à découper la spec par préoccupation délimitée et à extraire des modules profonds
- Relie la spec aux ADR par des références croisées et la mise à jour de l'index docs/specs/README.md
Limites
- Nécessite au moins un ADR accepté comme point d'entrée ; impossible de partir de zéro
- Suppose les conventions du projet : gabarit docs/specs, tâches mise, commande /de-slopify, index des specs
- La précision finale dépend des réponses à l'entretien ; le code existant n'est consulté qu'en cas de besoin
Quand un ADR accepté doit devenir un contrat implémentable pour une API, un protocole filaire ou un format de données.
Pour de la configuration d'outillage ou des conventions de documentation, ou lorsque l'ADR est déjà assez précise pour coder directement.
Analyse de sécurité
SûrThis is a documentation/prose authoring workflow: it reads ADRs and idea docs, interviews the user, and writes a markdown spec file. The only executable actions are a project task runner (`mise run fmt/lint`), a self-hosted slash command, and a git commit gated on explicit user approval. There is no network egress, no secret handling, no destructive filesystem operations, and no obfuscated payloads, so the listing itself carries no meaningful execution risk. The only minor note is that these shell invocations are implied rather than declared in allowed-tools.
- •Skill instructs running project-local commands (`mise run fmt`, `mise run lint`, `/de-slopify`) even though no allowed-tools are declared, so tool permissions are ambiguous at the harness level
Exemples
Read docs/adr/0012-session-serialization.md and write the spec for the session serialization format. Interview me on field types, error cases, and size limits before drafting.Turn the accepted ADR on the plugin API into a formal spec at docs/specs/0007-plugin-api.md — cover every function signature, error type, and edge case, and leave no TBDs.Based on the accepted daemon IPC ADR, decide whether this should be one spec or several, then draft the wire protocol spec with measurable constraints.name: write-spec description: | Write a formal specification from accepted ADRs and idea docs. Interviews about contract boundaries, sketches bounded concerns, and produces a spec with no hand-waving.
Use when: transitioning from accepted ADRs to implementation specs, formalizing API surfaces, wire protocols, or data formats. Must have at least one accepted ADR as input.
Write Spec
Turn accepted ADRs into formal implementation contracts. A spec defines the exact interface, behavior, and constraints that code must satisfy.
Skip for: decisions that don't need formal contracts (tooling config, doc conventions), or when the ADR itself is specific enough to implement from directly.
Process
1. Gather Input
Read the accepted ADR(s) that led to this spec. Read the idea docs they reference. Identify what the spec must formalize — the ADR decided what, the spec defines how exactly.
2. Interview About the Contract Boundary
Walk through each branch of the contract, resolving ambiguity:
- Types: What are the exact data structures? Field names, types, optionality, invariants.
- Functions/Messages: What are the signatures? Parameters, return types, error types.
- Error Cases: What can go wrong? How is each error reported? What does the caller do?
- Edge Cases: Empty input, maximum sizes, concurrent access, version mismatches.
- Constraints: Performance budgets, memory limits, security requirements.
- Ordering: Are operations sequential, concurrent, or unordered? What happens during races?
For each question, provide a recommended answer. If the answer requires exploration (reading existing code, checking a dependency's API), do the exploration.
3. Sketch Bounded Concerns
Identify if this spec should be one document or split into multiple specs. One spec per bounded concern:
- One API surface (plugin API, config API, agent control API)
- One wire protocol (daemon↔client IPC, remote access WebSocket)
- One data format (session serialization, scroll buffer archive format)
Look for opportunities to extract deep modules — interfaces that encapsulate complexity behind a simple, testable boundary that rarely changes.
4. Write the Spec
Use the project's spec template (docs/specs/0000-template.md). Every section must be concrete:
Overview: One paragraph — what this spec defines and why.
Contract: The formal definition. No hand-waving. Every type is defined. Every function has a signature. Every message has a format. If referencing an IDL file (.proto, .wit), the IDL is the source of truth and the spec explains behavior and constraints the IDL can't express.
Behavior: Expected behavior for normal and error cases. Edge cases called out explicitly. State transitions documented if applicable.
Constraints: Performance budgets, memory limits, security requirements, backward compatibility guarantees.
References: Link to the ADR(s) that led here and the idea doc(s) for broader context.
5. Rigor Check
Before presenting the spec:
- [ ] Every type is fully defined (no
TBD,details later,to be determined) - [ ] Every function/message has input types, output types, and error types
- [ ] Every error case has a defined behavior (what happens, what the caller sees)
- [ ] Edge cases are called out (empty, maximum, concurrent, disconnected)
- [ ] Constraints are measurable (not "fast" but "< X ms" or "competitive with Y")
- [ ] All ADR decisions are reflected in the spec
- [ ] Cross-references link to real docs
- [ ] If an IDL file is referenced, its path is specified
6. Checks
mise run fmt— formatmise run lint— lint/de-slopifyon all prose- Verify frontmatter is complete (spec number, title, status: draft, date, ADR references, tags)
- Check all cross-references resolve
7. Update Index
- Add the new spec to the index table in
docs/specs/README.md. - Update cross-references in related ADR and idea docs if needed.
8. Commit Gate
Present the spec summary and wait for explicit "commit" before committing.
Common Mistakes
| Mistake | Fix | | ----------------------------------------- | -------------------------------------------------------------------- | | Spec restates the ADR's rationale | Spec defines the contract; ADR explains why. Don't duplicate. | | "TBD" or "details later" in any section | Resolve it now or split into a separate spec with a dependency note. | | Types defined only by example | Write the full type definition. Examples supplement, not replace. | | Error cases listed without behavior | For each error: what does the system do? What does the caller see? | | Performance constraints as absolutes | Use "competitive with X" or "measured by benchmark Y" per ADR-0002. | | Spec too broad (covers multiple concerns) | Split into focused specs. One API surface, one protocol, one format. |
Output
A spec file at docs/specs/NNNN-short-title.md following the project template. If the spec references an IDL, the IDL file path is specified (the file itself may not exist yet — the spec is the contract, the IDL is generated during implementation).
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/write-spec-mryiqikg/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/write-spec-mryiqikg' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/write-spec-mryiqikg/download' --output '.skill-downloads/write-spec-mryiqikg/SKILL.md.part' && mv '.skill-downloads/write-spec-mryiqikg/SKILL.md.part' '.skill-downloads/write-spec-mryiqikg/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/write-spec-mryiqikg/SKILL.md' && test -s '.skill-downloads/write-spec-mryiqikg/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/write-spec' && cp -R '.skill-downloads/write-spec-mryiqikg' '.claude/skills/write-spec'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/write-spec-mryiqikg'openskills read 'write-spec-mryiqikg'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/write-spec-mryiqikg/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.
Rédaction de docs Supabase
Documentation
Rédigez, éditez et révisez le contenu de la documentation Supabase : guides, tutoriels, références et partiels. Suivez les guides de style et les règles de validation MDX/TOML.
Créer un enregistrement de décision d'architecture
Documentation
Créer un nouveau ADR avec numérotation séquentielle, l'enregistrer dans le graphe AgentDB et le lier aux ADR associés.
Mise à jour de plan avec recherche approfondie
Documentation
Met à jour un document de plan en lançant des sous-agents en parallèle pour analyser un sujet sur tous les passes du compilateur, puis consolide les résultats.