.claude/skills/notion-publish/SKILL.md
Publish markdown documents to Notion as private pages. Use for sharing specs, docs, or session outputs.
npx skillsauth add lucidlabs-hq/agent-kit notion-publishInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Publish markdown documents directly to Notion as private pages.
When publishing to Notion:
/notion-publish [file.md] # Publish specific file
/notion-publish # Publish from clipboard/selection
secret_)# In ~/.claude-time/integrations.json
{
"notion": {
"token": "secret_xxx...",
"default_parent_page_id": "abc123..."
}
}
notion.so/Page-Name-<PAGE_ID># Lies die Markdown-Datei
CONTENT=$(cat "$FILE_PATH")
TITLE=$(head -1 "$FILE_PATH" | sed 's/^#\s*//')
Mapping:
| Markdown | Notion Block Type |
|----------|-------------------|
| # Heading | heading_1 |
| ## Heading | heading_2 |
| ### Heading | heading_3 |
| Paragraph | paragraph |
| - item | bulleted_list_item |
| 1. item | numbered_list_item |
| code | code |
| > quote | quote |
| --- | divider |
| | table | | table |
NOTION_TOKEN=$(cat ~/.claude-time/integrations.json | jq -r '.notion.token')
PARENT_PAGE=$(cat ~/.claude-time/integrations.json | jq -r '.notion.default_parent_page_id')
curl -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $NOTION_TOKEN" \
-H "Content-Type: application/json" \
-H "Notion-Version: 2022-06-28" \
-d '{
"parent": { "page_id": "'"$PARENT_PAGE"'" },
"properties": {
"title": [{ "text": { "content": "'"$TITLE"'" } }]
},
"children": [
// ... converted blocks
]
}'
Nach erfolgreichem Publish:
Published to Notion:
───────────────────────────────────────────────────────────────────────────────
Title: Session Boot Screen Spec
URL: https://notion.so/Session-Boot-Screen-Spec-abc123
Parent: Agent Kit Docs
Created: 2026-01-28 18:30
───────────────────────────────────────────────────────────────────────────────
Vor dem Publish wird das Dokument automatisch bereinigt:
CLEANUP RULES:
1. Remove all emoji characters (Unicode ranges)
2. Remove emoji shortcodes (:emoji:)
3. Replace emoji bullets with plain dashes
4. Ensure H1 is plain text (no icons)
5. Remove decorative Unicode symbols
Beispiel:
VORHER:
# 🚀 Session Boot Screen
## ✅ Features
- 📋 Feature 1
NACHHER:
# Session Boot Screen
## Features
- Feature 1
/notion-publish [file.md] --parent [page-id] # Specific parent page
/notion-publish [file.md] --title "Custom" # Override title
/notion-publish [file.md] --public # Make page public (later)
| Error | Solution | |-------|----------| | "Invalid token" | Token in integrations.json prüfen | | "Page not found" | Parent Page mit Integration geteilt? | | "Rate limited" | Warten, dann erneut versuchen | | "Invalid blocks" | Markdown-Format prüfen |
~/.claude-time/integrations.json gespeichert# Publish current spec
/notion-publish .claude/reference/session-boot-spec.md
# Publish session summary
/notion-publish ~/.claude-time/reports/project-2026-01-28.md
# Publish with custom title
/notion-publish WORKFLOW.md --title "Agent Kit Workflow Guide"
development
Deploy invoice-accounting-assistant to HQ server. Runs tests first (TDD), then builds and deploys. Use when ready to push changes to staging/production.
testing
Visual UI verification with agent-browser. Use after implementing UI components to take screenshots, verify interactions, and self-check your work. FASTER than E2E tests.
documentation
Update README with current project status and features. Use after completing features.
tools
--- name: time-report description: Cross-project time report. Aggregates all session data from ~/.claude-time/sessions/. Use to see how much time was spent across all projects. disable-model-invocation: true allowed-tools: Bash, Read argument-hint: [all | this-week | this-month | last-month | {project-name}] --- # Time Report: Cross-Project Session Overview ## Objective Read ALL session files from `~/.claude-time/sessions/*.json` and produce an aggregated time report. Supports filtering by pe