Synthèse automatique
Crée un nouveau « scrap » dans un wiki Scraps à partir d’un prompt, d’une URL ou de markdown, le relie aux scraps pertinents et vérifie le résultat.
Points forts
- Propose un déroulé adapté à chaque type de source (prompt, URL, terme atomique), avec le moment où poser une question de clarification.
- Soigne la qualité du graphe grâce à des conventions explicites pour les liens `[[...]]` et les tags, ainsi qu’un sens de lien du concret vers l’abstrait.
- Prévoit une heuristique de longueur maximale selon la familiarité du sujet pour éviter les notes redondantes.
- Gère les collisions de titres via des dossiers de contexte et recommande de lire 3 à 8 scraps liés avant de rédiger.
Limites
- Dépend de la CLI externe `scraps` et d’une arborescence de wiki spécifique ; les commandes ne sont pas détaillées.
- Le SKILL.md fourni s’arrête avant les étapes finales de vérification, donc le contrôle de cohérence annoncé reste incomplet.
- Les heuristiques de longueur et de liaison demandent encore un jugement éditorial et peuvent ne pas convenir à toutes les conventions de wiki.
À utiliser pour ajouter une note, résumer un article ou archiver un échange de questions-réponses dans un wiki Scraps déjà organisé autour de la CLI `scraps`.
À éviter pour une prise de notes autonome hors d’un wiki Scraps, ou lorsque la CLI `scraps` et les conventions de liens requises ne sont pas disponibles.
Analyse de sécurité
PrudenceThe skill is an editorial workflow for a local notes wiki. It uses powerful tools (Bash, network fetch, bulk Grep/Edit) but only for legitimate, well-scoped purposes: querying a documented CLI, fetching user-supplied sources, drafting one Markdown file, and converting plain-text mentions to internal links. There is no exfiltration, no curl|sh, no credential handling, no obfuscated payload, and no instruction to disable safety checks. The residual risk is the usual one for fetch-then-write skills, so 'caution' rather than 'safe'.
- •Declares and uses Bash to shell out to the `scraps` CLI; commands shown are read/query/lint only, with no destructive or system-modifying invocations, but agent-authored shell execution is inherently broad.
- •WebFetch/WebSearch pull in arbitrary user-pasted URLs; fetched page content becomes untrusted input that is then written into wiki files and used to edit existing scraps (indirect prompt-injection surface), though the skill gives no instruction to follow fetched content as commands.
- •Write/Edit plus Grep-driven bulk edits of existing scraps mean a single invocation can modify many files; scope is bounded (plain-text mention → wiki link) and no deletion or external transmission is instructed.
Exemples
Add a scrap about retrieval-augmented generation for internal documentation and link it to the relevant notes in my wiki.Summarize this article as a scrap and connect it to existing scraps on vector databases: https://example.com/vector-db-overviewSave this answer as a scrap: We compared pgvector and Qdrant for a small team; pgvector won on operational simplicity, while Qdrant offered better filtering. Link it to our vector database notes.name: ingest description: Create a new scrap from a source (prompt, URL, or arbitrary markdown), update cross-links in related scraps, and run a sanity check. Use this when the user wants to add a scrap, summarize an article, save synthesized content to the wiki, or file back a Q&A result. allowed-tools: Read, Write, Edit, Bash, WebFetch, WebSearch, Glob, Grep user-invocable: true argument-hint: [source]
Ingest
Add a new scrap to the wiki and integrate it into the existing graph.
Implements Karpathy's Ingest primitive for Scraps: read a source, draft a new scrap, update related scraps with cross-links, and sanity-check the result. A single ingest typically touches the new scrap plus 1–5 existing scraps.
When to use
- "Write a scrap about X" / "Add a scrap on Y" (prompt source)
- "Summarize this article" / a pasted URL (web source)
- "Save this answer as a scrap" / file-back from a query (markdown source)
Source types
| Source | Provided as | First step |
| --- | --- | --- |
| prompt | user's topic, instruction, or ready-to-use content (e.g., a /query synthesis) | if the input is complete content, use as-is; otherwise gather context (search related scraps) and ask one clarifying question only when scope is unclear |
| URL | pasted link | WebFetch <url>, extract title and key content |
| term | an atomic term surfaced in discussion (often unknown until just now) | treat the term itself as the title; skip clarifying questions |
Workflow
-
Identify source and topic
- URL:
WebFetch→ use OGP / heading title as initial title - prompt: if the input is complete content (e.g., a
/querysynthesis), use as-is; if it's a topic, ask one clarifying question only when scope is unclear - term: the term is the title; do not ask clarifying questions (the discussion already established scope). Proceed to step 2 with the term as the search keyword.
- URL:
-
Research existing wiki state
scraps search "<keyword>" --jsonto find related scrapsscraps tag list --jsonto find relevant tags- Read 3–8 of the most related scraps by passing each hit's
keyback:scraps get "<key>" --json - Use
scraps get "<key>" --json headingsfirst when only the outline is needed
-
Decide title and ctx
- Pick a clear, atomic title
- If the title collides with an existing scrap, add a context folder:
scraps/<ctx>/<title>.md - ctx depth ≤ 3
-
Decide max-lines (familiarity heuristic)
- Count related scraps from step 2 (low: 0–5, medium: 6–15, high: 16+)
- Low → 5–7 lines (protect working memory)
- Medium → 10–12 lines (schema is forming, more detail welcome)
- High → 5–7 lines (avoid redundant explanation; prefer link-rich brevity)
- Skip this step if the user specified
--max-linesexplicitly (CLI flag is authoritative) - If the user signals depth in conversation ("go deeper" / "longer" / "厚めに" etc.), bump one band upward; "shorter" / "ライトに" etc. bumps downward. Conversation cue overrides the heuristic but stays below the explicit
--max-linesflag.
-
Draft the scrap
- Plain Markdown with
[[link]]for references and#[[tag]]for tags - Link vs tag: reference a scrap with
[[Title]], never#[[Tag]](tags are only existing categories from step 2). A[[Title]]must resolve to a real scrap — a concept that should exist but doesn't yet stays plain text, since an unresolved[[Title]]is a broken link (step 7), not a forward reference. - Link direction & fidelity (outbound): links flow concrete → abstract — a concrete scrap links out to the abstractions it depends on; the reverse is the anti-pattern (concrete scraps link IN instead, step 6), and siblings link only on a direct, asymmetric relation. From a source, add only what it attests — never a concrete entity it doesn't name (a CVE, product, person), though an abstraction it genuinely instantiates is fine.
- Record a source URL in the frontmatter
sources(- resource: <URL>), not as a body autolink; step 7 asks for the path instead when the wiki already has a page for that source - Stay within max-lines
- Plain Markdown with
-
Cross-link inbound mentions (Karpathy's "update related entity and concept pages")
- Existing scraps that already name the new title in plain text should link IN to it. This is the reverse of step 5's outbound links — here you edit the existing scraps. Discover candidates with Grep, judge each in context, then convert.
- Discover (Grep, high recall): now that the title is fixed (step 3),
Grepthe wiki for the literal title across*.md, with surrounding context.scraps searchmatches key, title, description and tags but never the body, so it cannot find mentions — do not use it for discovery. - Judge each hit (review, high precision): Grep is a substring match, so review every hit in context and keep only a standalone-term occurrence of the title. Skip a hit that is merely part of a longer term — title
GitHubinsideGitHub App/GitHub Actions, or title状態inside状態管理(Japanese has no word boundaries, so context judgement is mandatory, not a regex\b). If that longer term is itself a scrap or should be one, leave it intact rather than splitting it. - Convert: turn each surviving plain-text mention into
[[new title]](use[[new title|surface form]]for an inflected or aliased form). Skip occurrences already inside[[...]]/#[[...]]and skip the new scrap's own file. Do not invent mentions Grep did not find. - Cover every scrap that survives review — do not stop at the first one or two.
- Backlinks are auto-computed by Scraps; explicit reverse links are redundant
-
Post-write sanity check
- Tag check: list every
#[[tag]]you wrote and confirm each already appeared in thescraps tag list --jsonfrom step 2. A tag that was not in that list was almost certainly meant to be a[[link]]— convert it. Add a genuinely new tag only when you deliberately intend a new cross-cutting category. (Broken-link lint cannot catch this: a stray tag is valid syntax, it just creates a single-use tag.) scraps lint --rule broken-link --rule source-has-page(purpose: confirm the new scrap introduced no broken references, and that a source with its own page is named by that page's/<key>.mdpath)- For non-trivial violations, hand off to the
lint-rule-handleragent
- Tag check: list every
Wiki-link syntax
| Syntax | Meaning |
| --- | --- |
| [[Title]] | normal link |
| [[Title|Display]] | alias |
| [[Ctx/Title]] | context-disambiguated link |
| [[Title#Heading]] | heading reference |
| #[[Tag]] | tag |
| <https://...> | autolink (renders as OGP card) |
[[ ]] and #[[ ]] are disjoint namespaces: [[Title]] references a scrap; #[[Tag]] declares or joins a tag. Using #[[ ]] to point at a scrap does not link — it silently creates a stray single-use tag.
CLI used
scraps search <query> --jsonscraps get <key> [--heading <heading>] --json [fields](<key>is the scrap's path without.md, as results return it;<name> --ctx <ctx>is still accepted)scraps tag list --jsonscraps tag backlinks <tag> --jsonscraps lint --rule <rule>
These commands are shown with --json because this skill consumes structured output — without it Scraps prints human-formatted text that is unstable to parse, so --json is part of the command, not an option. Use scraps <cmd> --help only as a fallback for a rare flag not listed here, not as a routine discovery step; for deeper syntax or spec questions, consult the scraps-llm-wiki-schema agent (it reads the official docs).
Further reading
- Scraps docs: https://boykush.github.io/scraps/
- Karpathy's Ingest / Query / Lint framing: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
- Composition with other primitives, dialogue / catch-up patterns, and primitive boundaries: see the
scraps-llm-wiki-schemaagent.
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/ingest-a-scrap-into-the-wiki-mvj1oca1/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/ingest-a-scrap-into-the-wiki-mvj1oca1' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ingest-a-scrap-into-the-wiki-mvj1oca1/download' --output '.skill-downloads/ingest-a-scrap-into-the-wiki-mvj1oca1/SKILL.md.part' && mv '.skill-downloads/ingest-a-scrap-into-the-wiki-mvj1oca1/SKILL.md.part' '.skill-downloads/ingest-a-scrap-into-the-wiki-mvj1oca1/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.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Write, Edit, Bash, WebFetch, WebSearch, Glob, Grep
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/ingest-a-scrap-into-the-wiki-mvj1oca1/SKILL.md' && test -s '.skill-downloads/ingest-a-scrap-into-the-wiki-mvj1oca1/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ingest' && cp -R '.skill-downloads/ingest-a-scrap-into-the-wiki-mvj1oca1' '.claude/skills/ingest'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/ingest-a-scrap-into-the-wiki-mvj1oca1'openskills read 'ingest-a-scrap-into-the-wiki-mvj1oca1'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/ingest-a-scrap-into-the-wiki-mvj1oca1/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.
Lecteur PDF
Productivite
Lit et extrait le texte de fichiers PDF (rapports, contrats, tableurs). Gère les fichiers locaux, les URL et les pièces jointes WhatsApp. Utilisez-le dès qu'un contenu PDF est nécessaire, même sans demande explicite.
Workflows de messagerie Discord
Productivite
Utilisez l'outil message pour envoyer, modifier et modérer des messages Discord avec des composants interactifs.
Aperçu interactif des verdicts
Productivite
Générer un aperçu HTML interactif des verdicts (garder/supprimer) pour la revue par le mainteneur, puis traiter le JSON de retour.