brainstorming
Structured design dialogue that validates ideas before implementation begins.
import-skill
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.
Full skill instructions
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.
Structured design dialogue that validates ideas before implementation begins.
Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.
Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.
Introduction to the obra skills system with mandatory skill invocation rules and best practices.
Execute a written implementation plan with critical review and task checkpoints.
Delegate independent tasks to specialized agents working concurrently with isolated context.
Isolated git worktrees with smart directory selection and safety verification.
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Plan searchable and shareable content that drives traffic, builds authority, and generates leads.
README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.
Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.
Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.
The world's fastest calendar for remote work
Capture, organize, and utilize your knowledge effortlessly.
Instant Summaries of Audio & Video Interviews with AnySummary
Transform PDFs into engaging mind maps.
Chat with any PDF instantly
Create an optimal daily plan using your voice
A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.
AskYourPDF Pricing Plans: Tailored to Your Needs