00-system/skills/notion/notion-connect/SKILL.md
Connect to any Notion database by name. Load when user mentions 'notion', 'connect notion', 'setup notion', 'query [database-name]', 'add to [database]', 'notion databases', or any database name from persistent context. Meta-skill that discovers workspace, caches schemas, and routes to appropriate operations.
npx skillsauth add abdullahbeam/nexus-design-abdullah notion-connectInstall 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.
Meta-skill for complete Notion workspace integration.
Enable natural language interaction with ANY Notion database. User says "query my Projects database" or "add a page to CRM" and it just works - no manual API calls, no remembering database IDs, no schema lookups.
This skill uses notion-master shared library. Load references as needed:
| Resource | When to Load |
|----------|--------------|
| notion-master/scripts/check_notion_config.py | Always first (pre-flight) |
| notion-master/references/setup-guide.md | If config check fails |
| notion-master/references/error-handling.md | On any API errors |
| notion-master/references/api-reference.md | For API details |
If user has never used Notion integration before:
Run config check to detect setup state:
python 00-system/skills/notion-master/scripts/check_notion_config.py
If exit code 2 (not configured), run the interactive setup wizard:
python 00-system/skills/notion-master/scripts/setup_notion.py
The wizard will:
.envuser-config.yaml01-memory/integrations/notion-databases.yamlAfter setup completes, user can immediately start querying databases
Setup triggers: "setup notion", "connect notion", "configure notion"
Every workflow MUST start with config validation:
python 00-system/skills/notion-master/scripts/check_notion_config.py
Exit code meanings:
If exit code 2 (config incomplete):
python 00-system/skills/notion-master/scripts/setup_notion.pyIf exit code 0 or 1: Continue to requested operation
Triggers: "connect notion", "sync notion", "discover databases", "what databases", "refresh notion"
Purpose: Find all accessible databases in user's Notion workspace and cache schemas.
Steps:
python 00-system/skills/notion-master/scripts/discover_databases.py
01-memory/integrations/notion-databases.yamlFirst-time flow: If notion-databases.yaml doesn't exist, discovery runs automatically.
Triggers: "query [database]", "find in [database]", "search [database]", "show [database]", "list [database]"
Purpose: Query any database by name with optional filters.
Steps:
01-memory/integrations/notion-databases.yaml
python 00-system/skills/notion-master/scripts/search_skill_database.py --db <database_id> [--filter "..."] [--sort ...] [--limit N]
Filter Syntax (load notion-master/references/filter-syntax.md if user needs help):
--filter "Status = Active"--filter "Priority = High"--filter "Tags contains Design"Note: Currently supports single filter per query. Multiple filters (AND/OR) planned for future.
Triggers: "add to [database]", "create in [database]", "new [item] in [database]"
Purpose: Create a new page in any database with property validation.
Steps:
python 00-system/skills/notion-master/scripts/create_page.py --db <database_id> --properties '{"Title": "...", "Status": "..."}'
Triggers: "create database", "new database", "add property to [database]", "update [database] schema"
Purpose: Create new databases or modify existing database schemas.
Steps:
python 00-system/skills/notion-master/scripts/manage_database.py create \
--parent <page_id> \
--title "Database Name" \
--properties '[{"name": "Name", "type": "title"}, {"name": "Status", "type": "select", "options": ["Todo", "Done"]}]'
python discover_databases.pypython 00-system/skills/notion-master/scripts/manage_database.py update \
--db <database_id> \
--add-property '{"name": "Priority", "type": "select", "options": ["Low", "Medium", "High"]}'
Supported Property Types for Creation:
title - Primary name field (required, one per database)rich_text - Multi-line textnumber - Numeric values (with optional precision)select - Single choice from optionsmulti_select - Multiple choices from optionsdate - Date/datetimecheckbox - Boolean true/falseurl, email, phone_number - Validated text fieldspeople - User assignmentrelation - Link to another databaseTriggers: "update [page]", "edit [page]", "change [property] to [value]", "modify page"
Purpose: Modify properties of an existing page.
Steps:
python search_skill_database.py --db <id> --filter "Name contains [search]"python 00-system/skills/notion-master/scripts/manage_page.py update \
--page <page_id> \
--properties '{"Status": "Done", "Priority": "High"}'
Triggers: "get page [id]", "show page details", "delete page", "remove [page]"
Purpose: Retrieve full page details or delete a page.
Steps:
python 00-system/skills/notion-master/scripts/manage_page.py get --page <page_id>
python 00-system/skills/notion-master/scripts/manage_page.py delete --page <page_id>
Triggers: "append to [page]", "add section to [page]", "edit content of [page]", "list blocks", "delete block"
Purpose: Read, append, update, and delete content blocks within pages.
Steps:
python 00-system/skills/notion-master/scripts/manage_blocks.py children --page <page_id>
# Simple block
python 00-system/skills/notion-master/scripts/manage_blocks.py append \
--page <page_id> --type paragraph --text "Your content here"
# Multiple blocks
python 00-system/skills/notion-master/scripts/manage_blocks.py append \
--page <page_id> --content '[{"type": "heading_1", ...}, {"type": "paragraph", ...}]'
python 00-system/skills/notion-master/scripts/manage_blocks.py update \
--block <block_id> --content '{"paragraph": {"rich_text": [...]}}'
python 00-system/skills/notion-master/scripts/manage_blocks.py delete --block <block_id> --confirm
Supported Block Types (load notion-master/references/block-types.md for full list):
paragraph, heading_1, heading_2, heading_3, quote, calloutbulleted_list_item, numbered_list_item, to_do, togglecode (with language), equationimage, video, file, bookmarkdivider, table_of_contentsTriggers: "list users", "who can access", "get user", "find user"
Purpose: List workspace users and get user details for @mentions.
Steps:
python 00-system/skills/notion-master/scripts/manage_users.py list --save
01-memory/integrations/notion-users.yamlpython 00-system/skills/notion-master/scripts/manage_users.py me
Triggers: "add comment", "list comments", "comment on [page]", "reply to comment"
Purpose: Create and list comments on pages and discussions.
Steps:
python 00-system/skills/notion-master/scripts/manage_comments.py list --page <page_id>
# New comment on page
python 00-system/skills/notion-master/scripts/manage_comments.py create \
--page <page_id> --text "Your comment here"
# Reply to existing discussion
python 00-system/skills/notion-master/scripts/manage_comments.py create \
--discussion <discussion_id> --text "Your reply here"
Status: Planned for Phase 6
Sub-workflows:
Location: 01-memory/integrations/notion-databases.yaml
---
last_synced: 2025-12-10T23:00:00
sync_count: 3
databases:
- id: "abc123-def456"
name: "Client Projects"
parent: "Marketing" # For disambiguation
url: "https://notion.so/..."
properties:
- name: "Name"
type: "title"
- name: "Status"
type: "select"
options: ["Not Started", "In Progress", "Complete"]
- name: "Priority"
type: "select"
options: ["Low", "Medium", "High"]
- name: "Due Date"
type: "date"
- name: "Assignee"
type: "people"
- id: "ghi789-jkl012"
name: "Content Calendar"
parent: null
url: "https://notion.so/..."
properties:
- name: "Title"
type: "title"
- name: "Publish Date"
type: "date"
- name: "Channel"
type: "multi_select"
options: ["Blog", "Twitter", "LinkedIn"]
---
# Notion Databases Context
Auto-generated by notion-connect skill.
Run "refresh notion" to update.
When user says a database name:
Disambiguation prompt (if multiple matches):
Found 3 databases matching "Projects":
1. Client Projects (Marketing)
2. Personal Projects
3. Project Templates
Which one? (enter number or be more specific)
| Error | Action | |-------|--------| | No databases found | Check Notion integration has database access | | Database not in context | Run discovery: "refresh notion" | | Permission denied | Verify integration connected to database | | Rate limited | Wait and retry with exponential backoff | | Invalid property | Show valid options from cached schema |
Load notion-master/references/error-handling.md for detailed troubleshooting.
First-time setup:
User: "connect to notion"
AI: Running Notion discovery...
Found 5 databases: Client Projects, Content Calendar, CRM, Tasks, Meeting Notes
Saved to context. You can now query any database by name!
Query by name:
User: "query my Projects for active items"
AI: Querying "Client Projects"...
Found 12 active items:
1. Website Redesign (High priority, due Jan 15)
2. Q1 Marketing Plan (Medium priority, due Jan 30)
...
Create page:
User: "add a new task to my Tasks database"
AI: Creating in "Tasks" database.
Required properties:
- Task Name: [your input]
- Status: Not Started / In Progress / Complete
- Due Date: [optional, format: YYYY-MM-DD]
What's the task name?
Notion Connect v1.1 - Meta-skill for complete Notion workspace integration
Changelog:
development
Load when user says "mental model", "think through this", "structured thinking", "help me decide", "analyze this problem", "first principles", "pre-mortem", "stakeholder mapping", "what framework should I use", or any specific model name. Provides 59 thinking frameworks for decision-making, problem decomposition, and strategic analysis.
development
Generate comprehensive philosophy and standards documents for any domain (UX design, landing pages, email outbound, API design, etc.). Load when user says "create philosophy doc", "generate standards for [domain]", "build best practices guide", or "create benchmarking document". Conducts deep research, synthesizes findings, and produces structured philosophy documents with principles, frameworks, anti-patterns, checklists, case studies, and metrics.
development
Validate Nexus-v3 system integrity and fix common issues automatically. Load when user mentions "validate system", "check system", or "fix problems". Runs comprehensive checks on folder structure, metadata files, and framework consistency with auto-repair capabilities.
development
Load when user says "validate docs", "check documentation consistency", "docs vs implementation", or "find documentation mismatches". Systematically compares implementation code against documentation to identify and fix inconsistencies.