Help us improve
Share bugs, ideas, or general feedback.
From agency
MCP-driven Drive-zu-Notion Curator. Vier Operations: setup (komplett-Listing Source-Folder paginated, alle Files verarbeiten, DBs initial anlegen), routine (incremental, filter createdTime gt newest_in_last_run, cap 50 ASC, Status-Report bei Backlog), review-inbox (askuser-driven, on-demand), repair (komplett-Listing /curated/ paginated, diff gegen Notion). Kopiert Drive-Files EINMAL nach /Claude/curated/ flach, klassifiziert via Title plus Content gegen Topics-DB, indexiert klassifizierte Files als Sub-Pages mit Auszug, schickt unklare Klassifikationen in Inbox-DB. Notion ist State-Source. Sensitive Topics werden NICHT inhaltlich gelesen. Trigger bei drive aufräumen, drive sortieren, drive curate, kuratiere meine docs, neue docs einsortieren, drive cleanup, repair drive notion, drive scan, drive routine, drive sweep, files in topic einsortieren auch ohne explizites skill-Wort. v0.4.0 nutzt Drive-MCP plus Notion-MCP.
npx claudepluginhub netzkontrast/agency-backupsHow this skill is triggered — by the user, by Claude, or both
Slash command
/agency:gdrive-notion-curatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
MCP-only Skill. Drive ist passiver Bucket — Notion macht die Strukturarbeit.
README.mdassets/ddl-statements.sqlassets/topics-config.yamlreadme.mdreferences/classification-rules.mdreferences/duplicate-handling.mdreferences/notion-schema.mdreferences/repair-consistency.mdreferences/resume-logic.mdreferences/sensitive-handling.mdreferences/slug-rules.mdreferences/topics-initial.mdreferences/workflow-phases.mdscripts/classify.pyscripts/duplicate_check.pyscripts/language_detect.pyscripts/slug.pyCreates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
MCP-only Skill. Drive ist passiver Bucket — Notion macht die Strukturarbeit.
DRIVE (passiver Bucket) NOTION (Strukturebene)
─────── ──────
/Claude/ 📁 Claude Drive Files
├── (Source-Folder) Eine Page pro Drive-File.
│ └── (User-Inbox) Drive-IDs, Sprache, Status,
└── curated/ Topic-Relation, Page-Link.
├── kohaerenz-protokoll-x.md
├── trauma-dis-doc-y.md 📚 Claude Topics
├── english-notes-z.md Eine Page pro Topic.
└── ... Sub-Pages = File-Inhalte (Auszug).
flach.
einmal kopiert. 📥 Claude Topic Inbox
slug-filename. Eine Page pro Vorschlag für
neuen Topic. Awaits askuser.
parentId = '<id>'.Original Drive ID filtert schon-verarbeitete Files. User kann Setup re-triggern bei Crash.| Operation | Trigger | Drive-Listing | File-Cap |
|---|---|---|---|
setup | One-time bei Skill-Erst-Nutzung. DBs anlegen + initial-sweep. | Komplett, paginated, alle Files im Source | unbegrenzt |
routine | Routine. Findet neue Files seit letztem Run. | Filter createdTime > newest_in_last_run, paginated | 50 (ASC by createdTime) |
review-inbox | On-demand. Geht Topic-Inbox durch mit askuser. | — (nur Notion) | unbegrenzt (Inbox-DB-Größe) |
repair | On-demand. Drift zwischen Drive /curated/ und Notion. | Komplett /curated/, paginated | unbegrenzt |
setup. Falls Setup mid-run abbricht: setup nochmal triggern — Skip-Regel filtert schon-verarbeitete Files, Skill macht weiter.routine. Bei Backlog >50 mehrfach triggern bis Status-Report sagt "0 Files übrig".review-inbox. Kann nach jeder routine getriggert werden, ist aber separat.repair.Alle Operations spezifiziert in references/workflow-phases.md. Hier die Kurzform:
/Claude/curated/-Folder anlegen (idempotent)assets/topics-config.yaml (11 Topics)/tmp/gdrive-curator-state.json speichernworkflow-phases.md § "setup")→ Detail: references/workflow-phases.md § "setup"
last_run_id, newest_in_last_run, Duplicate-Sets (siehe references/resume-logic.md)query: parentId='<source>' and trashed=false and createdTime > '<newest_in_last_run>'→ Detail: references/workflow-phases.md § "routine"
Status=pending-reviewask_user_input_v0:
Approve neuer Topic / Merge in <existing-slug> / Reject / Skip→ Detail: references/workflow-phases.md § "review-inbox"
/curated/ flat, paginated bis komplettCurated Drive ID gesetzt, paginated→ Detail: references/repair-consistency.md
| File | Wann lesen |
|---|---|
references/workflow-phases.md | Vor jeder Operation die zugehörige Sektion |
references/notion-schema.md | Bei Setup und bei Schema-Migrationen |
references/duplicate-handling.md | In setup und routine vor jedem Copy |
references/resume-logic.md | Bei jedem Skill-Start (setup, routine, repair) |
references/repair-consistency.md | Bei repair |
references/slug-rules.md | Vor jedem Filename-Slug |
references/sensitive-handling.md | Bei jedem File mit potentiell sensitiven Keywords |
references/classification-rules.md | In setup und routine für Title+Content-Match |
references/topics-initial.md | Bei Setup zur Topics-DB-Befüllung |
| Script | CLI-Nutzung |
|---|---|
scripts/slug.py | python3 scripts/slug.py "<title>" → slug-filename |
scripts/classify.py | python3 scripts/classify.py --title "<t>" --content "<c>" --topics-yaml topics.yaml → JSON |
scripts/language_detect.py | python3 scripts/language_detect.py "<text>" → de/en/mixed/unknown |
scripts/duplicate_check.py | python3 scripts/duplicate_check.py "<title>" --md5 "<md5>" --size <bytes> → JSON |
| Asset | Inhalt |
|---|---|
assets/ddl-statements.sql | SQL DDL für die 3 Notion-DBs (Files, Topics, Inbox) |
assets/topics-config.yaml | Initial Topics-Set (11 Topics inkl. sensitive-Flag) |
| Operation | Cost |
|---|---|
| setup, leer | ~10k (DBs anlegen, keine Files) |
| setup, 100 Files Source | ~150-300k (mit Content-Reads + Notion-Writes) |
| setup, 500 Files Source | ~750k-1.5M — User sollte vorher mehrfache Trigger einplanen |
| routine, 0 neue Files | ~5-10k (nur State-Holen + leeres Listing) |
| routine, 50 Files | ~80-150k |
| review-inbox, 10 Einträge | ~5-10k (askuser-driven) |
| repair, 100 Files curated | ~30-60k abhängig von Findings |
search_files hat kein orderBy — alle Sortierung client-side nach Listing)