Notion Triage Skill
Reference knowledge for triaging pages from the Notion workspace root into the correct folder hierarchy. This skill is consumed by the /notion-triage command and provides the domain knowledge Claude needs to classify, rename, and route pages.
When to Activate
- Triaging unorganized pages from the Notion workspace root
- Creating new client or implementation folders
- Updating Table of Contents pages
- Classifying page content (client meeting, dev notes, domain knowledge, reference)
- Managing public vs private folder visibility
Workspace Structure
Root
+-- Private
| +-- Clients
| | +-- @drixxodev (direct clients -- get Public folders)
| | | +-- Par Excellence
| | | | +-- NetSuite CPQ
| | | | | +-- Meeting Notes
| | | | | +-- Technical Design Docs
| | | | | +-- Development Notes
| | | | | +-- Testing & QA
| | | | +-- Allocation
| | | +-- Ben Guard
| | | +-- NetSuite Alignment
| | | +-- Meeting Notes
| | +-- @terillium (employer clients -- NO public folders)
| | +-- McAllisters
| | | +-- WordPress Web Forms
| | | +-- ZoomInfo Integration
| | | +-- Finance Phase 2
| | | +-- AS400/FreightPop
| | | +-- File Archive Migration
| | +-- Dansons
| | | +-- Inbound Shipment
| | +-- First Light
| | | +-- Docket Integration
| | +-- Jockey Club
| | | +-- NetSuite Go-Live
| | +-- ACS
| | | +-- State Contracting
| | +-- Delaney Hillman
| | | +-- NetSuite Migration
| | +-- Terillium Internal
| | +-- General
| +-- Developer Notes
| +-- Areas (domain knowledge, ERP concepts)
| +-- Resources (links, tutorials, tool configs)
| +-- Templates
| +-- Archive (empty/obsolete pages)
+-- Public (@drixxodev clients ONLY)
+-- Par Excellence/
+-- Ben Guard/
Client Routing Rules
@drixxodev Clients (Direct)
These are Robert's direct consulting clients. They get Public folders for client-facing shared content.
| Client |
Implementations |
Public Folder |
| Par Excellence |
NetSuite CPQ, Allocation |
Yes |
| Ben Guard |
NetSuite Alignment |
Yes |
@terillium Clients (Employer)
These are Terillium's client engagements. NO public folders -- all content stays in Private.
| Client |
Implementations |
| McAllisters |
WordPress Web Forms, ZoomInfo Integration, Finance Phase 2, AS400/FreightPop, File Archive Migration |
| Dansons |
Inbound Shipment |
| First Light |
Docket Integration |
| Jockey Club |
NetSuite Go-Live |
| ACS |
State Contracting |
| Delaney Hillman |
NetSuite Migration |
| Terillium Internal |
General |
Client Keyword Matching
Keywords are defined in scripts/lib/notion-triage-config.json. Each client has top-level keywords plus implementation-specific keywords:
| Client |
Top-Level Keywords |
| Par Excellence |
PAR, CPQ, Par Excellence, configurator, proposal, Part 360, GPO, bundle |
| Ben Guard |
Ben Guard, Ship Central, Airtable, order-to-cash |
| McAllisters |
McAllisters, McAllister |
| Dansons |
Dansons, Danson |
| First Light |
First Light, Docket |
| Jockey Club |
Jockey Club, JC, TJC, Aquabase, Axis, T-Lor, PAYGO, CLEGO |
| ACS |
ACS, state contracting |
| Delaney Hillman |
Delaney, Hillman |
| Terillium Internal |
Terillium, sprint, PEM deal, time script, service item |
When multiple clients match, prefer the implementation-specific keyword match. If ambiguous, ask the user.
Content Classification
Category Signals
| Category |
Signals |
Destination |
| Client meeting |
Client keywords, participant names, action items, "we discussed", "follow up", agenda items |
Client > Implementation > Meeting Notes |
| Developer notes |
Code snippets, error messages, SuiteScript, troubleshooting, stack traces, field IDs |
Private > Developer Notes |
| Domain knowledge |
ERP concepts, business processes, accounting terms, not client-specific |
Private > Areas |
| Reference material |
Link collections, documentation, tutorials, tool configurations, bookmarks |
Private > Resources |
Personal Content Patterns
Pages containing ONLY these topics should be archived. Pages with mixed personal/work content should be flagged for user review.
Patterns: golf, pinehurst, pine needles, bay harbor, car insurance, deductible, gas money, fantasy football, march madness, vacation, airbnb
Title Conventions
Format by Category
| Category |
Format |
Example |
| Client meeting |
"ClientName: Brief Description" |
"Par Excellence: GPO Discount Rounding Fix" |
| Developer notes |
"[Dev] Description" |
"[Dev] SuiteScript Search Pagination Bug" |
| Domain knowledge |
"[Area] Topic" |
"[Area] NetSuite Revenue Recognition Flow" |
| Reference material |
"[Ref] Topic" |
"[Ref] SuiteScript 2.1 API Quick Reference" |
Title Cleanup Rules
- Strip
@ timestamp prefixes (e.g., "@Last Thursday 12:30 PM")
- Remove day names and time zones
- Capitalize properly
- Keep titles concise (under 80 characters)
TOC Format
Table of Contents pages live inside their parent folder and follow this template:
# [Folder Name] - Table of Contents
*Last updated: YYYY-MM-DD*
| # | Page | Summary | Created |
|---|------|---------|---------|
| 1 | Page Title | One-line AI-generated summary | YYYY-MM-DD |
| 2 | Page Title | One-line AI-generated summary | YYYY-MM-DD |
*[N] pages in this folder.*
- TOC title format:
"TOC: [Folder Name]" -- keeps it visually prominent at top of folder
- Summaries are one-line, AI-generated from page content
- Sorted by creation date (newest first)
- Page count footer
New Folder Conventions
Naming
- Client folder: plain name (e.g., "Acme Corp")
- Implementation folder: descriptive project name (e.g., "NetSuite CPQ", "Warehouse Integration")
- Standard sub-folders:
Meeting Notes (always created), plus Tech Docs, Dev Notes, Testing as needed
Config Alias Format
- Lowercase, hyphenated (e.g.,
acme-warehouse)
- Short but unambiguous
- Consistent with existing aliases in
~/.claude/notion-folders.json
New Client Checklist
- Determine ownership: @drixxodev (direct) or @terillium (employer)
- Create client folder under correct parent
- Create first implementation folder + Meeting Notes sub-folder
- If @drixxodev: create Public folder for client
- If @terillium: NO public folder
- Update
~/.claude/notion-folders.json with alias and folder IDs
- Update
scripts/lib/notion-triage-config.json with client keywords
MCP Tool Reference
| Operation |
Tool |
Notes |
| Search pages |
notion-search |
Find pages by title or content |
| Read page content |
notion-fetch |
Get full page content for classification |
| Create page or folder |
notion-create-pages |
New pages, folders, TOC pages |
| Move page to folder |
notion-move-pages |
Reparent pages after classification |
| Rename or update content |
notion-update-page |
Title rewrites, TOC regeneration (use replace_content for full replacement) |
Config Files
~/.claude/notion-folders.json (user-local, not in git)
Contains folder IDs, aliases, structural page IDs, and exclude lists. This file is business-sensitive and never committed to the repository.
scripts/lib/notion-triage-config.json (in repo)
Contains client keywords, implementation keywords, personal content patterns, and the fallback folder ID. Used by both the automated GitHub Actions script and this interactive triage command.
1---2name: notion-triage3description: Reference knowledge for Notion workspace triage — workspace structure, client routing rules, TOC format, folder conventions, and MCP tool mapping. Use when triaging root pages, creating client folders, or managing the workspace hierarchy.4---56# Notion Triage Skill78Reference knowledge for triaging pages from the Notion workspace root into the correct folder hierarchy. This skill is consumed by the `/notion-triage` command and provides the domain knowledge Claude needs to classify, rename, and route pages.910## When to Activate1112- Triaging unorganized pages from the Notion workspace root13- Creating new client or implementation folders14- Updating Table of Contents pages15- Classifying page content (client meeting, dev notes, domain knowledge, reference)16- Managing public vs private folder visibility1718## Workspace Structure1920```21Root22+-- Private23| +-- Clients24| | +-- @drixxodev (direct clients -- get Public folders)25| | | +-- Par Excellence26| | | | +-- NetSuite CPQ27| | | | | +-- Meeting Notes28| | | | | +-- Technical Design Docs29| | | | | +-- Development Notes30| | | | | +-- Testing & QA31| | | | +-- Allocation32| | | +-- Ben Guard33| | | +-- NetSuite Alignment34| | | +-- Meeting Notes35| | +-- @terillium (employer clients -- NO public folders)36| | +-- McAllisters37| | | +-- WordPress Web Forms38| | | +-- ZoomInfo Integration39| | | +-- Finance Phase 240| | | +-- AS400/FreightPop41| | | +-- File Archive Migration42| | +-- Dansons43| | | +-- Inbound Shipment44| | +-- First Light45| | | +-- Docket Integration46| | +-- Jockey Club47| | | +-- NetSuite Go-Live48| | +-- ACS49| | | +-- State Contracting50| | +-- Delaney Hillman51| | | +-- NetSuite Migration52| | +-- Terillium Internal53| | +-- General54| +-- Developer Notes55| +-- Areas (domain knowledge, ERP concepts)56| +-- Resources (links, tutorials, tool configs)57| +-- Templates58| +-- Archive (empty/obsolete pages)59+-- Public (@drixxodev clients ONLY)60 +-- Par Excellence/61 +-- Ben Guard/62```6364## Client Routing Rules6566### @drixxodev Clients (Direct)6768These are Robert's direct consulting clients. They get Public folders for client-facing shared content.6970| Client | Implementations | Public Folder |71|--------|----------------|---------------|72| Par Excellence | NetSuite CPQ, Allocation | Yes |73| Ben Guard | NetSuite Alignment | Yes |7475### @terillium Clients (Employer)7677These are Terillium's client engagements. NO public folders -- all content stays in Private.7879| Client | Implementations |80|--------|----------------|81| McAllisters | WordPress Web Forms, ZoomInfo Integration, Finance Phase 2, AS400/FreightPop, File Archive Migration |82| Dansons | Inbound Shipment |83| First Light | Docket Integration |84| Jockey Club | NetSuite Go-Live |85| ACS | State Contracting |86| Delaney Hillman | NetSuite Migration |87| Terillium Internal | General |8889### Client Keyword Matching9091Keywords are defined in `scripts/lib/notion-triage-config.json`. Each client has top-level keywords plus implementation-specific keywords:9293| Client | Top-Level Keywords |94|--------|-------------------|95| Par Excellence | PAR, CPQ, Par Excellence, configurator, proposal, Part 360, GPO, bundle |96| Ben Guard | Ben Guard, Ship Central, Airtable, order-to-cash |97| McAllisters | McAllisters, McAllister |98| Dansons | Dansons, Danson |99| First Light | First Light, Docket |100| Jockey Club | Jockey Club, JC, TJC, Aquabase, Axis, T-Lor, PAYGO, CLEGO |101| ACS | ACS, state contracting |102| Delaney Hillman | Delaney, Hillman |103| Terillium Internal | Terillium, sprint, PEM deal, time script, service item |104105When multiple clients match, prefer the implementation-specific keyword match. If ambiguous, ask the user.106107## Content Classification108109### Category Signals110111| Category | Signals | Destination |112|----------|---------|-------------|113| Client meeting | Client keywords, participant names, action items, "we discussed", "follow up", agenda items | Client > Implementation > Meeting Notes |114| Developer notes | Code snippets, error messages, SuiteScript, troubleshooting, stack traces, field IDs | Private > Developer Notes |115| Domain knowledge | ERP concepts, business processes, accounting terms, not client-specific | Private > Areas |116| Reference material | Link collections, documentation, tutorials, tool configurations, bookmarks | Private > Resources |117118### Personal Content Patterns119120Pages containing ONLY these topics should be archived. Pages with mixed personal/work content should be flagged for user review.121122Patterns: `golf`, `pinehurst`, `pine needles`, `bay harbor`, `car insurance`, `deductible`, `gas money`, `fantasy football`, `march madness`, `vacation`, `airbnb`123124## Title Conventions125126### Format by Category127128| Category | Format | Example |129|----------|--------|---------|130| Client meeting | `"ClientName: Brief Description"` | "Par Excellence: GPO Discount Rounding Fix" |131| Developer notes | `"[Dev] Description"` | "[Dev] SuiteScript Search Pagination Bug" |132| Domain knowledge | `"[Area] Topic"` | "[Area] NetSuite Revenue Recognition Flow" |133| Reference material | `"[Ref] Topic"` | "[Ref] SuiteScript 2.1 API Quick Reference" |134135### Title Cleanup Rules136137- Strip `@` timestamp prefixes (e.g., "@Last Thursday 12:30 PM")138- Remove day names and time zones139- Capitalize properly140- Keep titles concise (under 80 characters)141142## TOC Format143144Table of Contents pages live inside their parent folder and follow this template:145146```markdown147# [Folder Name] - Table of Contents148149*Last updated: YYYY-MM-DD*150151| # | Page | Summary | Created |152|---|------|---------|---------|153| 1 | Page Title | One-line AI-generated summary | YYYY-MM-DD |154| 2 | Page Title | One-line AI-generated summary | YYYY-MM-DD |155156*[N] pages in this folder.*157```158159- TOC title format: `"TOC: [Folder Name]"` -- keeps it visually prominent at top of folder160- Summaries are one-line, AI-generated from page content161- Sorted by creation date (newest first)162- Page count footer163164## New Folder Conventions165166### Naming167168- Client folder: plain name (e.g., "Acme Corp")169- Implementation folder: descriptive project name (e.g., "NetSuite CPQ", "Warehouse Integration")170- Standard sub-folders: `Meeting Notes` (always created), plus `Tech Docs`, `Dev Notes`, `Testing` as needed171172### Config Alias Format173174- Lowercase, hyphenated (e.g., `acme-warehouse`)175- Short but unambiguous176- Consistent with existing aliases in `~/.claude/notion-folders.json`177178### New Client Checklist1791801. Determine ownership: @drixxodev (direct) or @terillium (employer)1812. Create client folder under correct parent1823. Create first implementation folder + Meeting Notes sub-folder1834. If @drixxodev: create Public folder for client1845. If @terillium: NO public folder1856. Update `~/.claude/notion-folders.json` with alias and folder IDs1867. Update `scripts/lib/notion-triage-config.json` with client keywords187188## MCP Tool Reference189190| Operation | Tool | Notes |191|-----------|------|-------|192| Search pages | `notion-search` | Find pages by title or content |193| Read page content | `notion-fetch` | Get full page content for classification |194| Create page or folder | `notion-create-pages` | New pages, folders, TOC pages |195| Move page to folder | `notion-move-pages` | Reparent pages after classification |196| Rename or update content | `notion-update-page` | Title rewrites, TOC regeneration (use `replace_content` for full replacement) |197198## Config Files199200### `~/.claude/notion-folders.json` (user-local, not in git)201202Contains folder IDs, aliases, structural page IDs, and exclude lists. This file is business-sensitive and never committed to the repository.203204### `scripts/lib/notion-triage-config.json` (in repo)205206Contains client keywords, implementation keywords, personal content patterns, and the fallback folder ID. Used by both the automated GitHub Actions script and this interactive triage command.