Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when syncing research documents to Notion. Handles Notion synchronization operations including state management and encoding validation.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -15% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 409% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -29% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -2% | 0% |
This skill provides standardized procedures for synchronizing research documents to Notion, ensuring data integrity and avoiding common pitfalls.
/daily-routine workflowFile: .notion_sync_state.json
Purpose: Tracks which files have been synced to avoid duplicates
Structure:
json{ "research/daily_briefs/Multi_Target_Analysis_20260117.md": { "page_id": "abc123...", "last_synced": "2026-01-17T10:30:00Z" } }
| Script | Purpose | Use Case | |--------|---------|----------| | ops/sync_full_research.py | Full repository sync | Initial setup, major updates | | scripts/sync_to_notion.py | Incremental sync | Daily updates | | scripts/sync_vault.py | Vault-specific sync | Knowledge base updates |
powershell# Ensure documents are clean .bin\python\python.exe ops/lint_reports.py
Why: Notion API rejects malformed Markdown or encoding issues
powershell# Full sync (use sparingly) .bin\python\python.exe ops/sync_full_research.py # Incremental sync (recommended) .bin\python\python.exe scripts/sync_to_notion.py
.notion_sync_state.json updatedSymptom: Notion pages show garbled text
Root cause: File not UTF-8 encoded
Solution:
powershell# Fix encoding first .bin\python\python.exe ops/lint_reports.py # Then retry sync .bin\python\python.exe scripts/sync_to_notion.py
Symptom: Same report appears multiple times in Notion
Root cause: Sync state file corrupted or missing
Solution:
powershell# Check sync state cat .notion_sync_state.json # If corrupted, backup and regenerate Copy-Item .notion_sync_state.json .notion_sync_state.json.backup # Then run full sync
Symptom: 429 Too Many Requests error
Root cause: Notion API rate limits exceeded
Solution:
Symptom: 401 Unauthorized error
Root cause: Invalid or expired Notion API token
Solution:
NOTION_API_KEY environment variableQ: Should I run full sync or incremental sync?
Q: When should I sync?
/daily-routine completion (Phase 6)Q: What if sync fails?
lint_reports.py to fix encoding.notion_sync_state.json integrityAlways run quality checks before syncing:
powershell.bin\python\python.exe ops/lint_reports.py
Prefer incremental over full sync to:
Periodically check .notion_sync_state.json:
powershell.bin\python\python.exe ops/diagnose_notion.py
What it checks:
Scenario 1: Sync state corrupted
powershell# Backup current state Copy-Item .notion_sync_state.json .notion_sync_state.json.backup # Clear state (forces full resync) Remove-Item .notion_sync_state.json # Run full sync .bin\python\python.exe ops/sync_full_research.py
Scenario 2: Partial sync failure
powershell# Identify failed files from error log # Manually fix those files # Retry incremental sync .bin\python\python.exe scripts/sync_to_notion.py
Other measured skills in the registry, with their headline benchmark lift.