Synthèse automatique
Transforme du texte brut collé (reçus Discord, listes de pièces PC) en lignes structurées dans les tables Notion DIY_PC, avec classification par table, enrichissement web et upsert idempotent.
Points forts
- Classe chaque élément vers la bonne table (エンクロージャー, ストレージ, PCConfig, PCInput) et extrait les champs au mieux
- Upsert par clé métier (シリアル, 取り外し表示名, Name+date d'achat) qui ne complète que les champs manquants sauf overwrite explicite
- Enrichissement ciblé via web_search/web_fetch et questions de suivi limitées aux champs réellement bloquants
- Aucun identifiant Notion codé en dur : IDs et token lus depuis une config locale et NOTION_API_KEY
Limites
- Suppose un schéma Notion DIY_PC préexistant, avec des colonnes nommées en japonais
- Nécessite une configuration manuelle (data_source_id, database_id, token) avant le premier usage
- En cas de collision de clé sur plusieurs lignes, le skill n'écrit pas et s'arrête pour demander l'arbitrage
Quand vous collez un lot brut d'achats ou de notes de spécifications de pièces PC et voulez le verser dans les bases Notion DIY_PC sans ressaisie.
Pour des données sans rapport avec le matériel PC, ou si aucune intégration Notion avec les tables cibles n'est configurée.
Analyse de sécurité
PrudenceThe skill is a legitimate Notion data-ingestion workflow, but it handles a powerful API token, performs network/API writes, can archive or overwrite records, and invokes web/script tools not declared in allowed-tools. These are legitimate but warrant caution rather than being considered safe or risky.
- •Requires a Notion integration token and writes/archives rows via Notion API; token must be handled carefully.
- •Supports storing the token inline in config.json (discouraged) and a legacy local token path.
- •Script supports overwrite:true and archive:true, which can modify or remove Notion data if misused.
- •Uses web_search/web_fetch for enrichment and script execution despite no allowed-tools being declared.
- •No evidence of destructive shell commands, credential exfiltration, obfuscated payloads, or safety-disabling instructions.
Exemples
Voici mon message Discord d'achat chez PCワンズ, ingère-le dans Notion :
- RATOC RS-EC32-R5G USBケース 2ベイ 8,977円 2026-01-18 JAN 4949090752191
- Seagate ST8000NM017B 8TB HDD シリアル ZL2XXXXX 19,800円 2026-02-03J'ai une ligne ストレージ créée en provisoire sans numéro de série pour mon Crucial MX500. Remplis le シリアル (22XXXXXX) et la date de scan sur cette ligne existante, sans écraser les autres champs.Il y a deux lignes en double pour l'エンクロージャー RS-EC32-R5G dans Notion : garde la plus complète et archive l'autre.name: diy-pc-ingest description: "Ingest pasted PC parts purchase/config text (Discord message receipts, bullet lists) into Notion DIY_PC tables (PCConfig, ストレージ, エンクロージャー, PCInput). Use when the user pastes raw purchase logs/spec notes and wants the AI to classify, enrich via web search, ask follow-up questions for unknowns, and then upsert rows into the correct Notion data sources using the 2025-09-03 data_sources API."
diy-pc-ingest
Setup (required)
This skill is intended to be shared. Do not hardcode your Notion IDs or token in the skill.
- Copy the example config:
skills/diy-pc-ingest/references/config.example.json→~/.config/diy-pc-ingest/config.json
- Fill in your Notion targets (IDs):
notion.targets.*.data_source_id(for schema/query)notion.targets.*.database_id(for creating pages)
- Provide a Notion integration token (choose one):
- env:
NOTION_API_KEY(recommended) - or
~/.config/notion/api_key(legacy local path) - or inline
notion.api_keyinconfig.json(not recommended if you publish/share configs)
Notes:
- This skill uses Notion-Version
2025-09-03by default. - Targets are read at runtime from config; see
references/config.example.json.
Canonical Notion targets
Use data_sources endpoints for schema/query, and pages endpoint for row creation.
(IDs are intentionally not included in this public skill. They live in your local config.)
Workflow (A: user pastes raw text)
-
Read the pasted text and decide target table per item:
- エンクロージャー: USB/RAID/HDDケース/ドック、ベイ数、JAN/型番、"安全な取り外し"表示名。
- ストレージ: HDD/SSD/NVMe/SATA/容量/シリアル/健康状態。
- PCConfig: CPU/GPU/RAM/PSU/MB/ケース/冷却/NIC/キャプチャ等。
-
Extract fields (best-effort). Prefer Japanese column names as they exist in each table.
-
Enrich specs using web_search/web_fetch when it reduces user work (e.g., bay count, interface, capacity, form factor). Keep it minimal; don’t overfill.
-
Ask follow-up questions only for fields needed to avoid ambiguity or bad joins.
- ストレージ: Serial missing → ask for serial (or confirm creating as “暫定/シリアル不明”).
- エンクロージャー: ベイ数 or USB/Thunderbolt/LAN unclear → ask.
- PCConfig: Identifier/型番 missing but needed to match existing row → ask.
-
Upsert into Notion using
scripts/notion_apply_records.js:- Provide JSONL records (one per item) on stdin.
- Script will:
- find an existing row by key (see below)
- patch only missing fields unless
overwrite=true - otherwise create a new row
-
Report results (created/updated/skipped) and link any created rows.
Upsert keys (rules)
- ストレージ:
シリアル(exact) is the primary key. If the existing row was created without serial, allow a safe fallback match by title + (optional)購入日/価格(円)to support post-fill of serial/health/scan-date. - エンクロージャー:
取り外し表示名(exact) else title/name. - PCConfig:
(Name + Purchase Date)を複合キーとして扱う(exact)。重複ヒット時は書き込まず質問。 - If a key collides with multiple rows, do not write; ask user.
JSONL input format for the apply script
Each line is a JSON object:
{"target":"enclosure","title":"RATOC RS-EC32-R5G","properties":{"種別":"USBケース","接続":"USB","ベイ数":2,"普段つないでるPC":"RECRYZEN","購入日":"2026-01-18","購入店":"PCワンズ","価格(円)":8977,"取り外し表示名":"RS-EC32-R5G","メモ":"JAN: 4949090752191"}}
Optional control fields (for cleanup / manual fixes):
page_id(orid): update this Notion page directly (bypasses upsert matching)archive: true: archive the page (useful for de-dup)overwrite: true: allow overwriting existing values (including clearing with null)
Optional behavior flags:
mirror_to_pcconfig: true(only fortarget=storage): also create/update apcconfigrow for the installed component.- requires:
現在の接続先PC,購入日,Name
- requires:
Targets: enclosure | storage | pcconfig | pcinput
Property value encoding:
- select/status: string name
- rich_text: string
- number: number
- date:
YYYY-MM-DD - checkbox: boolean
- relation: array of page_ids (advanced; avoid unless needed)
Notes
- Always use Notion-Version
2025-09-03. - Prefer
POST /v1/data_sources/{id}/queryover/databases/{id}/query. - Relation schema updates require
relation.data_source_id(not database_id).
Note (implementation)
- JS implementation is the default:
scripts/notion_apply_records.js - Legacy Python implementation is kept for reference:
scripts/_deprecated/notion_apply_records.py
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/diy-pc-parts-ingestion-mrwakgai/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/diy-pc-parts-ingestion-mrwakgai' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/diy-pc-parts-ingestion-mrwakgai/download' --output '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md.part' && mv '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md.part' '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/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/diy-pc-parts-ingestion-mrwakgai/SKILL.md' && test -s '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/diy-pc-ingest' && cp -R '.skill-downloads/diy-pc-parts-ingestion-mrwakgai' '.claude/skills/diy-pc-ingest'Cursor
test -f '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md' && test -s '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/diy-pc-ingest' && cp -R '.skill-downloads/diy-pc-parts-ingestion-mrwakgai' '.cursor/skills/diy-pc-ingest'Codex
test -f '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md' && test -s '.skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/diy-pc-ingest' && cp -R '.skill-downloads/diy-pc-parts-ingestion-mrwakgai' '.agents/skills/diy-pc-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/diy-pc-parts-ingestion-mrwakgai'openskills read 'diy-pc-parts-ingestion-mrwakgai'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/diy-pc-parts-ingestion-mrwakgai/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.
Créer des cartes interactives avec kepler.gl
Data & IA
Création de cartes interactives et export HTML autonome avec le package Python keplergl, à partir de données géospatiales (DataFrame, GeoJSON, CSV).
Optimisation de paramètres par agent
Data & IA
Guide d'optimisation de systèmes configurables avec objectif mesurable, via des essais bornés et une recommandation fondée sur des preuves.
Relance des visiteurs ICP
Data & IA
Identifiez les utilisateurs inscrits correspondant au profil client idéal mais qui n'ont pas activé, et rédigez des messages de relance personnalisés pour les réengager.