Automated summary
Turns pasted raw text (Discord receipts, PC parts bullet lists) into structured rows in the DIY_PC Notion tables, with per-table classification, web enrichment and idempotent upserts.
Strengths
- Routes each item to the right table (エンクロージャー, ストレージ, PCConfig, PCInput) and extracts fields best-effort
- Key-based upsert (シリアル, 取り外し表示名, Name+purchase date) that only fills missing fields unless overwrite is set
- Targeted enrichment through web_search/web_fetch and follow-up questions limited to genuinely blocking fields
- No hardcoded Notion IDs: targets and token come from a local config file and NOTION_API_KEY
Limitations
- Assumes a pre-existing DIY_PC Notion schema with Japanese column names
- Requires manual setup (data_source_id, database_id, API token) before first use
- On ambiguous key matches across several rows it refuses to write and asks the user to disambiguate
When you paste a batch of PC part purchases or spec notes and want them loaded into the DIY_PC Notion databases without re-typing.
For anything unrelated to PC hardware, or when no Notion integration with the target tables has been configured.
Security analysis
CautionThe 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.
Examples
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
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
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. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
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 must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/diy-pc-parts-ingestion-mrwakgai'openskills read 'diy-pc-parts-ingestion-mrwakgai'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/diy-pc-parts-ingestion-mrwakgai/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Create Interactive Maps with kepler.gl
Data & AI
Create interactive map visualizations and export standalone HTML using the keplergl Python package. Use to plot geospatial data from DataFrames, GeoJSON, or CSV.
Agent-Driven Parameter Optimization
Data & AI
Guide for optimizing configurable systems with a measurable objective, using bounded trials and evidence-based recommendations.
ICP Visitor Outreach
Data & AI
Identify signed-up users matching the ideal customer profile but stalled, and draft personalized outreach to re-engage them.