00-system/skills/skill-dev/import-skill/SKILL.md
Import a skill from Notion (or other source) into local Nexus. Load when user mentions "import skill", "download skill", "add skill to nexus", "pull skill from notion", or selects a skill to import after querying.
npx skillsauth add abdullahbeam/nexus-design-abdullah import-skillInstall 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.
Download skill content from Notion and create it locally in 03-skills/.
This is an atomic building block that takes skill content (from Notion or other sources) and creates a proper skill folder structure in Nexus. It handles:
Typically used after query-notion-db when user selects a skill to import.
Before ANY import operation, verify Notion setup:
python ../../notion-master/scripts/check_notion_config.py
If configuration missing:
python ../../notion-master/scripts/setup_notion.pyExpected output if configured:
✅ ALL CHECKS PASSED
You're ready to use Notion skills
When importing a skill that already exists locally, the script automatically creates a backup:
[BACKUP] Existing skill backed up to: my-skill_20251210-134523
Backup location: 03-skills/.backup/
To disable backup: Use --no-backup flag (not recommended)
Before importing, validate the skill:
name: and description: in headerValidating skill content...
✅ File attached: {filename}
✅ Valid YAML header
✅ Content looks safe
Ready to import.
Before overwriting local skill:
⚠️ Local skill "{skill-name}" exists
Local version: Modified {date}
Notion version: Created by {owner} on {date}
Options:
1. Overwrite local with Notion version (backup created automatically)
2. Keep local version
3. Compare side-by-side
Choose (1-3):
| Operation | Status | Notes | |-----------|--------|-------| | Import single skill | ✅ Allowed | With backup if exists | | Batch import | ✅ Allowed | Multiple page IDs supported | | Import without file | ❌ Blocked | Skill must have attachment | | Import invalid SKILL.md | ⚠️ Recover | Auto-create from Notion properties |
From query-notion-db or user input, receive:
# Check if skill already exists
ls 03-skills/{skill-name}/SKILL.md
If exists:
⚠️ Skill "{skill-name}" already exists locally.
Options:
1. Overwrite - Replace with version from Notion (backup created)
2. Skip - Keep local version
What would you like to do?
Use the download script (handles all formats automatically):
python ../../notion-master/scripts/download_skill.py <page_id>
For batch import (multiple skills):
python ../../notion-master/scripts/download_skill.py <page_id1> <page_id2> <page_id3>
The script automatically:
03-skills/Optional parameters:
# Batch import multiple skills
python download_skill.py abc123 def456 ghi789
# Custom output directory
python download_skill.py abc123 --output-dir 03-skills
# Skip backup (not recommended)
python download_skill.py abc123 --no-backup
# JSON output for programmatic use
python download_skill.py abc123 --json
Supported formats:
.skill.json) - Preferred format, contains all skill files with base64-encoded contents.zip) - Legacy format, extracts folder structure.txt, .md) - Simple skills with just SKILL.mdExample output (single skill):
[INFO] Fetching page: 2c52cadf-bbbc-81ae-b81a-fd0600bc0122
[INFO] Skill: setup-linear-onboarding-template (v1.0)
[INFO] Downloading: setup-linear-onboarding-template.skill.json
[OK] Downloaded: 27,107 bytes
[INFO] Extracting skill...
✓ SKILL.md
✓ scripts/format_template.py
✓ references/client-name-template.md
[SUCCESS] Skill extracted to: 03-skills/setup-linear-onboarding-template
[SUCCESS] Files: 3
Skill structure:
SKILL.md
references/client-name-template.md
scripts/format_template.py
Example output (batch import):
==================================================
[BATCH] Importing 3 skills
==================================================
[1/3] Processing...
----------------------------------------
[INFO] Fetching page: abc123
[INFO] Skill: skill-one (v1.0)
...
[SUCCESS] Skill extracted to: 03-skills/skill-one
[2/3] Processing...
----------------------------------------
[INFO] Fetching page: def456
[BACKUP] Existing skill backed up to: skill-two_20251210-134523
...
[SUCCESS] Skill extracted to: 03-skills/skill-two
[3/3] Processing...
----------------------------------------
[ERROR] Page not found: ghi789
==================================================
[BATCH COMPLETE]
✓ Success: 2
✗ Failed: 1
- ghi789
==================================================
Required structure:
03-skills/{skill-name}/
└── SKILL.md # Required - skill definition
└── references/ # Optional - supporting docs
└── scripts/ # Optional - automation scripts
└── assets/ # Optional - images, templates
Validate SKILL.md has required YAML header:
---
name: skill-name
description: Load when user mentions "trigger phrase"...
version: 1.0
---
✅ Skill imported successfully!
📁 Location: 03-skills/{skill-name}/
📊 Version: 1.0
📄 Files:
- SKILL.md
- scripts/format_template.py
- references/guide.md
🔒 Backup: .backup/skill-name_20251210-134523 (if existed)
💡 Try it: Say "{trigger phrase}" to use this skill
| Parameter | Required | Description | |-----------|----------|-------------| | page_id(s) | Yes | One or more Notion page IDs | | --output-dir | No | Custom output directory (default: 03-skills) | | --no-backup | No | Skip backup of existing skills | | --json | No | Output results as JSON |
When you import a skill that already exists locally, the script:
03-skills/.backup/ directory (if doesn't exist).backup/{skill-name}_{timestamp}Backup naming: {skill-name}_YYYYMMDD-HHMMSS
Example:
03-skills/.backup/
├── my-skill_20251210-134523/
├── my-skill_20251209-091234/
└── other-skill_20251208-160045/
To restore a backup:
# Remove current version
rm -rf 03-skills/my-skill
# Restore from backup
cp -r 03-skills/.backup/my-skill_20251210-134523 03-skills/my-skill
Backups are not auto-deleted. Periodically clean up:
# Remove backups older than 30 days
find 03-skills/.backup -type d -mtime +30 -exec rm -rf {} +
User: "Show me skills for Linear integration"
AI: [Runs query-notion-db with Integration=Linear filter]
Found 2 skills:
1. setup-linear-onboarding-template (v1.0) - Fill Linear template projects
2. generate-linear-project-update (v1.0) - Create weekly status updates
Which would you like to import? (1, 2, or both)
User: "both"
AI: [Runs download_skill.py with both page IDs]
==================================================
[BATCH] Importing 2 skills
==================================================
[1/2] Processing...
✅ Imported: setup-linear-onboarding-template
📁 Location: 03-skills/setup-linear-onboarding-template/
📄 Files: 3
[2/2] Processing...
✅ Imported: generate-linear-project-update
📁 Location: 03-skills/generate-linear-project-update/
📄 Files: 1
==================================================
[BATCH COMPLETE]
✓ Success: 2
==================================================
User: "Import beam-list-agents"
AI: ⚠️ Skill "beam-list-agents" already exists locally.
Local version: Modified 2025-12-08
Notion version: v1.2 by Jack Li on 2025-12-10
Options:
1. Overwrite - Replace with Notion version (backup created)
2. Skip - Keep local version
User: "1"
AI: [BACKUP] Existing skill backed up to: beam-list-agents_20251210-135623
✅ Imported: beam-list-agents (v1.2)
📁 Location: 03-skills/beam-list-agents/
🔒 Backup: .backup/beam-list-agents_20251210-135623
Common errors:
| Error | Cause | Solution | |-------|-------|----------| | No file attached | Notion page has no Skill file | Ask user to attach file in Notion first | | Invalid SKILL.md | Missing YAML header | Create minimal header from Notion properties | | Download failed | Expired URL or network issue | Retry with fresh page query | | Extract failed | Corrupt zip or wrong format | Check file format, try manual download | | Page not found | Invalid page ID | Verify page ID from query results |
For detailed troubleshooting:
If downloaded file doesn't contain valid SKILL.md, create one from Notion data:
---
name: {skill-name}
description: {description from Notion}
version: {version from Notion or "1.0"}
---
# {Skill Name}
{Description from Notion}
## Purpose
{Purpose from Notion, or "Imported from Beam Nexus Skills database"}
---
*Imported from Notion on {date}*
Typically called after:
query-notion-db - User selects skill(s) from query resultsCan be followed by:
export-skill-to-notion - If user modifies and wants to push changes back.skill.json) containing all skill files with base64-encoded contents - preserves full skill structure including scripts/, references/, and assets/ folders.zip) - still supported for backward compatibility.txt or .md files - for skills with just SKILL.md03-skills/.backup/ before overwriting03-skills/ by defaultSkills use semantic versioning: MAJOR.MINOR or MAJOR.MINOR.PATCH
| Valid | Invalid |
|-------|---------|
| 1.0 | v1.0 (no "v" prefix) |
| 1.1 | 1 (needs MAJOR.MINOR) |
| 2.0 | latest (must be numeric) |
| 1.0.0 | 1.0.0.0 (too many segments) |
Version meaning:
2.0): Breaking changes, complete rewrites1.1, 1.2): Bug fixes, improvements, new featuresSee database-schema.md for full versioning rules.
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.