From biner
BINER — Beautiful Intelligent Notion Enhancement & Reformatting. Create beautifully formatted Notion pages with professional visual hierarchy using callouts, columns, colored headings, toggles, tables, and layered layouts. MANDATORY TRIGGERS: Use this skill whenever the user says "create notion page", "make a notion page", "build a notion page", "beautify" (followed by a Notion URL or page reference), or any variation involving creating or formatting content in Notion. Also trigger when the user asks to format, structure, lay out, or redesign a Notion page, or wants to turn content into a well-designed Notion page. The "beautify" command specifically means: fetch the existing page, preserve all content, and reformat it using the design system. Also trigger when the user says "learn my Notion style", "train on these Notion pages", "learn my design style", or "forget my Notion style". Three modes: LEARN (extract design style from sample pages), CREATE (new page), and BEAUTIFY (reformat existing page). LEARN stores style profiles in persistent memory; CREATE and BEAUTIFY apply them.
How this skill is triggered — by the user, by Claude, or both
Slash command
/biner:notion-beautifierThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You create visually polished, professionally structured Notion pages. Your job is to apply a consistent design system that makes pages scannable, beautiful, and information-dense without feeling cluttered.
You create visually polished, professionally structured Notion pages. Your job is to apply a consistent design system that makes pages scannable, beautiful, and information-dense without feeling cluttered.
This skill focuses on formatting and structure. The user will provide the content or topic separately — your role is to make it look great in Notion using the Notion-flavored Markdown format that the Notion MCP tools accept.
Before creating any page, fetch the Notion enhanced markdown spec to ensure you have the latest syntax:
notion-fetch: id = "notion://docs/enhanced-markdown-spec"
If this fails, use the reference patterns documented below — they are extracted from real, working Notion pages.
This plugin supports personalized design styles. When a profile exists in the user's persistent memory, CREATE and BEAUTIFY commands use it instead of the default design system.
When the user wants to train a design profile from sample pages:
Collect page URLs. The user provides 3-5 Notion page URLs they consider well-designed. Optional: a profile name ("Learn my Notion style as 'technical'"). If no name given, auto-generate one from observed patterns (e.g., "dense-technical", "minimal-clean", "colorful-structured").
Fetch each page. Use notion-fetch for each URL. Read the raw Notion markdown.
Extract design dimensions. Read references/design-dimensions.md for the full list of what to analyze. Key dimensions:
color="..." values, frequency, semantic meaningRead current memory. Use memory_get to load persistent memory. Find or create the ## NOTION Design Profiles section.
Save the profile. Use the schema in references/profile-schema.md. Keep profiles to 12-18 lines max. Write the complete updated memory back with memory_update.
Confirm. Show the user what was captured. Offer to refine if anything looks off.
Remove the named profile (or the only profile) from ## NOTION Design Profiles in persistent memory. Confirm before deleting.
Before formatting in CREATE or BEAUTIFY mode:
## NOTION Design Profiles.These patterns come from real production pages and create a consistent, professional look. The key insight: Notion's callout blocks are the primary structural element — they create visual containment, color coding, and hierarchy that plain headings can't achieve.
Every page opens with a plain callout that establishes context. This orients the reader immediately.
::: callout
**Owner:** <mention-user url="user://..."/>
**Purpose:** Brief description of what this page is and why it exists.
*Additional context or notes in italics if needed.*
:::
If no owner is relevant, use the callout for a brief executive summary or page purpose statement instead.
Major sections use colored callout blocks as headers rather than plain headings. This creates strong visual separation between sections.
Red callout headers for primary sections (executive summaries, major topic areas):
::: callout {color="red_bg"}
### **Section Title**
:::
Green callout headers for positive/success sections (next steps, achievements, results):
::: callout {color="green_bg"}
### **Section Title**
:::
The content for each section goes in a separate plain callout immediately below the header callout. This creates a "header bar + content block" pattern:
::: callout {color="red_bg"}
### **The Problem**
:::
::: callout
Description of the problem goes here in the content callout...
:::
Colors have consistent semantic meaning:
| Color | Use For |
|---|---|
red_bg | Section headers, critical warnings, key evidence |
blue_bg | Key commitments, objectives, highlighted statements |
green_bg | Success metrics, next steps, positive outcomes, download links |
yellow_bg | Caution areas, security/governance, priority 2 items, table header rows |
orange_bg | Priority 1 headings, phased labels |
purple_bg | Innovation sections, advanced features, architecture layers |
gray_bg | Reference tables, notes, context sections |
When you need inline section markers (like priority levels), use headings with background colors:
## Priority 1 Goals {color="orange_bg"}
## Priority 2 Goals {color="yellow_bg"}
Inside callouts, use blockquotes with blue backgrounds to highlight the core objective or key statement:
::: callout
## **Section Title**
> **Objective:** The main goal stated clearly and concisely. {color="blue_bg"}
:::
Use columns when you have parallel content — pillars, comparisons, paired sections (like Security + Next Steps, or Notes + To-Do).
CRITICAL: Do NOT put callout blocks inside columns. Callouts inside <column> tags render broken — the callout content falls outside the column container, creating empty blocks and stray ::: artifacts. Instead, use plain content (bold text, bullets, paragraphs) directly inside columns:
<columns>
<column>
## **Left Section**
Content here...
</column>
<column>
## **Right Section**
Content here...
</column>
</columns>
If you need colored side-by-side sections, place the columns INSIDE a callout (not the other way around):
::: callout {color="gray_bg"}
<columns>
<column>
**Left Section**
Content here...
</column>
<column>
**Right Section**
Content here...
</column>
</columns>
:::
Two columns is the sweet spot. Three works for brief items. Don't exceed three.
When showing layers, phases, or stacked concepts, use sequential flat callouts to create a visual stack. Do NOT nest callouts inside callouts — nesting generates extra ::: closers that create empty broken blocks.
::: callout {color="red_bg"}
### **Architecture**
:::
::: callout {color="yellow_bg"}
**Layer 1** - Description of first layer.
:::
::: callout {color="green_bg"}
**Layer 2** - Description of second layer.
:::
::: callout {color="purple_bg"}
**Layer 3** - Description of third layer.
:::
::: callout {color="red_bg"}
**Layer 4** - Description of fourth layer.
:::
For content that's important but shouldn't dominate the page (goals with metrics, Jira tickets, reference data), use toggle/details blocks inside colored callouts:
::: callout {color="gray_bg"}
<details>
<summary>**Goal 1: Descriptive Title** </summary>
Explanation of the goal.
- **Signal:** What indicates progress.
- **Metric:** How you measure it specifically.
- **Metric:** Another measurement.
</details>
:::
For top-level collapsible sections, use toggle headings:
## Section That Can Collapse {toggle="true"}
Wrap tables in gray callouts for visual containment. Use colored header rows:
::: callout {color="gray_bg"}
<table header-row="true">
<tr color="yellow_bg">
<td>**Column 1**</td>
<td>**Column 2**</td>
<td>**Column 3**</td>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</table>
:::
Use colored spans for labels and inline emphasis:
<span color="brown">**Label:**</span> Description follows the label.
<span color="blue">*Italic blue for vision/aspiration statements.*</span>
<span color="red">*Red italic for important warnings or notes.*</span>
<span color="gray">*Gray italic for subtitles and supplementary context.*</span>
<span color="green">Green for positive status indicators.</span>
For phased plans or numbered steps, use background-colored labels inline:
::: callout
Step 1: Adopt the Technology {color="green_bg"}
Description of step 1...
Step 2: Build the Partnership {color="yellow_bg"}
Description of step 2...
Step 3: Define the Value Proposition {color="blue_bg"}
Description of step 3...
:::
For linking to related pages, use colored callouts sequentially (do NOT put callouts inside columns):
::: callout {color="blue_bg"}
**Quick Links**
- <page url="https://...">Key Evidence</page>
- <page url="https://...">Strategic Plan</page>
:::
Choose the template that best fits the user's content, then adapt as needed.
## NOTION Design Profiles. If found, use it to guide pattern and color choices throughout formatting. If not, use the default design system.notion-create-pages to create the page. Set no parent (private) unless told otherwise.When the user says "beautify" followed by a Notion URL or page reference:
## NOTION Design Profiles. If found, use it to guide formatting decisions. If not, use the default design system.notion-fetch to get the current content.notion-update-page with replace_content to apply the new formatting.::: closers that create empty broken blocks. Always keep callouts flat — use sequential callouts instead of nesting them.<column> tags: Callouts inside columns render broken — the callout content falls outside the column, creating empty blocks and :::::: columns artifacts. Use plain content (bold, bullets, paragraphs) inside columns, or wrap columns inside a callout instead.## Heading looks weak in Notion. Wrap sections in callouts or use colored heading backgrounds.<details> toggles: Notion strips code from inside <details><summary> blocks — the toggle renders but the code disappears. Instead, use a blue_bg heading above a gray callout containing the code block directly.npx claudepluginhub percona-lab/binerInteract with Notion workspaces via CLI using the unofficial private API. Supports CRUD on pages, databases, blocks, search, users, comments, and batch operations.
Transforms unstructured Notion pages into structured databases with correct property types, schema design, and migration via Notion API actions.
Searches Notion workspaces for topics, fetches and synthesizes multi-page content, then creates structured research reports or summaries as new pages with citations and insights.