Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions plugins/box/skills/box/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ Follow these steps in order when coding against Box.
- When a task requires understanding document content — classification, extraction, categorization — use Box AI (Q&A, extract) as the first method attempted. Box AI operates server-side and does not require downloading file bodies. Fall back to metadata inspection, previews, or local analysis only if Box AI is unavailable, not authorized, or returns an error on the first attempt.
- Pace Box AI calls at least 1–2 seconds apart. For content-based classification of many files, classify a small sample first to validate the prompt and discover whether cheaper signals (filename, extension, metadata) can sort the remaining files without additional AI calls.
- Avoid downloading file bodies or routing content through external AI pipelines when Box-native methods (Box AI, search, metadata, previews) can answer the question server-side.
- Connected Box tool availability can vary by account. If a Box MCP call returns `Tool <name> not found`, treat that tool as unavailable for the rest of the current task. Do not retry it with different arguments or call it again later; switch to an available fallback.
- For connected Box app or MCP text reads, use `get_file_content` or Deep Research `fetch` only when the file is likely to have markdown or extracted-text content. If Box says markdown or text representation is unavailable, do not retry the same text read; switch to preview, metadata, or the next scoped fallback.
- For connected Box previews, avoid `get_file_preview` for files known to exceed 3 MB. Reuse `size` from existing search, listing, or details results when it is already available.
- Request only the fields the application actually needs, and persist returned Box IDs instead of reconstructing paths later.
Expand Down
7 changes: 4 additions & 3 deletions plugins/notion/skills/notion-knowledge-capture/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ Convert conversations and notes into structured, linkable Notion pages for easy
## Quick start
1) Clarify what to capture (decision, how-to, FAQ, learning, documentation) and target audience.
2) Identify the right database/template in `reference/` (team wiki, how-to, FAQ, decision log, learning, documentation).
3) Pull any prior context from Notion with `Notion:notion-search` → `Notion:notion-fetch` (existing pages to update/link).
3) Pull any prior context from Notion with `Notion:search` → `Notion:fetch` (existing pages to update/link).
4) Draft the page with `Notion:notion-create-pages` using the database’s schema; include summary, context, source links, and tags/owners.
5) Link from hub pages and related records; update status/owners with `Notion:notion-update-page` as the source evolves.

## Tool-call guardrails
- Use one literal search query per `Notion:notion-search` call and include `filters: {}` when no narrower filter is needed. If several query variants are useful, issue separate searches instead of writing `or` or `+` inside one query string.
- Only pass Notion page, database, or data-source URLs/IDs to `Notion:notion-fetch`. Search can also surface external connected-source URLs; use those as context or citations, but do not feed them into `notion-fetch`.
- Notion tool availability can vary by workspace. If a Notion MCP call returns `Tool <name> not found`, treat that tool as unavailable for the rest of the current task. Do not retry it with different arguments or call it again later; use `Notion:search` and `Notion:fetch` where sufficient.
- Use one literal search query per `Notion:search` call and include `filters: {}` when no narrower filter is needed. If several query variants are useful, issue separate searches instead of writing `or` or `+` inside one query string.
- Only pass Notion page, database, or data-source URLs/IDs to `Notion:fetch`. Search can also surface external connected-source URLs; use those as context or citations, but do not feed them into `fetch`.
- Create pages with an explicit `parent` and a `pages` array. For database-backed pages, fetch the database first and use the returned `collection://...` data source ID.
- To edit existing page content, fetch the current page first, then use `Notion:notion-update-page` with `command: "update_content"`, `properties: {}`, and exact `old_str` / full replacement `new_str` pairs. For property-only edits, use `command: "update_properties"` with `content_updates: []`. The current deployed schema expects both top-level fields even when one is unused. Do not invent insertion-only commands.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"Includes specific commands, configurations, or examples from conversation",
"Adds context about why/when to use this process in Overview section",
"Notes common issues and solutions mentioned in discussion in Troubleshooting section",
"Uses Notion:notion-search to find team wiki location or asks user",
"Uses Notion:search to find team wiki location or asks user",
"Creates page using Notion:notion-create-pages with structured content and appropriate parent",
"Uses clear, descriptive title like 'How to Deploy to Production'",
"Applies Notion markdown formatting (headings, code blocks, bullets)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
"Extracts from context: decision made, options considered (PostgreSQL vs MongoDB), rationale, trade-offs",
"Creates document with proper structure including Date, Status (Accepted), and Deciders",
"Includes both positive and negative consequences (trade-offs) in Consequences section",
"Uses Notion:notion-search to check if decision log database exists",
"Uses Notion:search to check if decision log database exists",
"If database exists, asks whether to add there or create standalone page",
"If creating in database, fetches schema using Notion:notion-fetch and sets properties: Decision title, Date, Status, Domain (Architecture), Deciders, Impact",
"If creating in database, fetches schema using Notion:fetch and sets properties: Decision title, Date, Status, Domain (Architecture), Deciders, Impact",
"Uses Notion:notion-create-pages with parent: { data_source_id } for database or { page_id } for parent page",
"Applies proper Notion markdown formatting with sections",
"Suggests linking from architecture docs or project pages"
Expand All @@ -25,6 +25,6 @@
"Consequences include both positive (benefits) and negative (trade-offs)",
"If in database, properties are set correctly from schema (Decision, Date, Status: Accepted, Domain: Architecture, Impact)",
"Document is dated and has status 'Accepted'",
"Uses correct tool names (Notion:notion-search, Notion:notion-fetch, Notion:notion-create-pages)"
"Uses correct tool names (Notion:search, Notion:fetch, Notion:notion-create-pages)"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Extract distinct Q&A pairs from conversation:
### Step 3: Determine Destination

```
Notion:notion-search
Notion:search
query: "FAQ deployment"
query_type: "internal"
filters: {}
Expand All @@ -43,7 +43,7 @@ filters: {}
Found: "Deployment FAQ" database in Engineering Docs

```
Notion:notion-fetch
Notion:fetch
id: "deployment-faq-database-id"
```

Expand Down Expand Up @@ -115,7 +115,7 @@ pages: [{
### Step 5: Update FAQ Index

```
Notion:notion-fetch
Notion:fetch
id: "faq-index-page-id"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ From conversation, identified:

### 2. Find Decision Log
```
Notion:notion-search
Notion:search
query: "architecture decisions"
query_type: "internal"
filters: {}
Expand All @@ -23,7 +23,7 @@ Found: "Architecture Decision Records" database

### 3. Fetch Schema
```
Notion:notion-fetch
Notion:fetch
id: "architecture-decision-records-database-id"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Organized into:

### 3. Find Location
```
Notion:notion-search
Notion:search
query: "deployment documentation"
query_type: "internal"
filters: {}
Expand Down Expand Up @@ -112,7 +112,7 @@ Production deployment using GitHub Actions with zero-downtime rolling updates.

### 5. Make Discoverable
```
Notion:notion-fetch
Notion:fetch
id: "engineering-wiki-homepage"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Example for documentation database:
Before creating pages, always fetch database to get schema:

```
Notion:notion-fetch
Notion:fetch
id: "database-url-or-id"
```

Expand Down
9 changes: 5 additions & 4 deletions plugins/notion/skills/notion-meeting-intelligence/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@ Prep meetings by pulling Notion context, tailoring agendas/pre-reads, and enrich

## Quick start
1) Confirm meeting goal, attendees, date/time, and decisions needed.
2) Gather context: search with `Notion:notion-search`, then fetch with `Notion:notion-fetch` (prior notes, specs, OKRs, decisions).
2) Gather context: search with `Notion:search`, then fetch with `Notion:fetch` (prior notes, specs, OKRs, decisions).
3) Pick the right template via `reference/template-selection-guide.md` (status, decision, planning, retro, 1:1, brainstorming).
4) Draft agenda/pre-read in Notion with `Notion:notion-create-pages`, embedding source links and owner/timeboxes.
5) Enrich with Codex research (industry insights, benchmarks, risks) and update the page with `Notion:notion-update-page` as plans change.

## Tool-call guardrails
- Use one literal search query per `Notion:notion-search` call and include `filters: {}` when no narrower filter is needed.
- Only fetch Notion page, database, or data-source URLs/IDs; external connected-source search results are not valid `Notion:notion-fetch` inputs.
- Notion tool availability can vary by workspace. If a Notion MCP call returns `Tool <name> not found`, treat that tool as unavailable for the rest of the current task. Do not retry it with different arguments or call it again later; use `Notion:search` and `Notion:fetch` where sufficient.
- Use one literal search query per `Notion:search` call and include `filters: {}` when no narrower filter is needed.
- Only fetch Notion page, database, or data-source URLs/IDs; external connected-source search results are not valid `Notion:fetch` inputs.
- Create meeting pages with an explicit `parent` and a `pages` array.
- Query databases with `Notion:notion-query-data-sources` under a top-level `data` object, using fetched `collection://...` URLs as table names.
- When editing a page, fetch its current content first and use `Notion:notion-update-page` with supported commands such as `update_content` or `update_properties`; on the current deployed surface, use `properties: {}` for `update_content` and `content_updates: []` for `update_properties`. Do not invent insertion-only commands.
Expand All @@ -33,7 +34,7 @@ After the app is connected, finish your answer and tell the user to retry so the

### 1) Gather inputs
- Ask for objective, desired outcomes/decisions, attendees, duration, date/time, and prior materials.
- Search Notion for relevant docs, past notes, specs, and action items (`Notion:notion-search`), then fetch key pages (`Notion:notion-fetch`).
- Search Notion for relevant docs, past notes, specs, and action items (`Notion:search`), then fetch key pages (`Notion:fetch`).
- Capture blockers/risks and open questions up front.

### 2) Choose format
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"skills": ["meeting-intelligence"],
"query": "Prep for tomorrow's meeting where we need to decide on our database migration approach. Create both an internal pre-read for the team and an agenda for the meeting.",
"expected_behavior": [
"Step 1: Uses Notion:notion-search to find context about database migration (project pages, technical specs, previous discussions, options analysis)",
"Step 2: Fetches at least 2-3 relevant pages using Notion:notion-fetch to gather information from Notion",
"Step 1: Uses Notion:search to find context about database migration (project pages, technical specs, previous discussions, options analysis)",
"Step 2: Fetches at least 2-3 relevant pages using Notion:fetch to gather information from Notion",
"Step 3: Identifies the decision to be made and available options from fetched Notion content",
"Step 4: Enriches with Codex research - adds decision-making frameworks (e.g., cost-benefit analysis, risk assessment), technical context for migration approaches, best practices for database migrations",
"Step 5: Distinguishes Notion facts from Codex insights in synthesis",
Expand All @@ -29,6 +29,6 @@
"External agenda follows structure from SKILL.md Step 6 (Meeting Details → Objective → Agenda Items → Discussion Topics → Decisions Needed → Action Items → Related Resources)",
"Documents are cross-linked (pre-read mentions agenda, agenda mentions pre-read)",
"Meeting date is included in both titles",
"Uses correct tool names (Notion:notion-search, Notion:notion-fetch, Notion:notion-create-pages for BOTH documents)"
"Uses correct tool names (Notion:search, Notion:fetch, Notion:notion-create-pages for BOTH documents)"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"skills": ["meeting-intelligence", "task-manager"],
"query": "Prep for Friday's project status meeting on the Mobile App Redesign project. Create both an internal pre-read and an external agenda.",
"expected_behavior": [
"Step 1: Uses Notion:notion-search to find Mobile App Redesign project page",
"Step 2: Fetches project page using Notion:notion-fetch to get current status and context",
"Step 3: Uses Notion:notion-search to find tasks database",
"Step 1: Uses Notion:search to find Mobile App Redesign project page",
"Step 2: Fetches project page using Notion:fetch to get current status and context",
"Step 3: Uses Notion:search to find tasks database",
"Step 4: Queries task database using Notion:notion-query-data-sources for project tasks (WHERE Project = 'Mobile App Redesign')",
"Step 5: Analyzes task data: calculates completion %, identifies completed work, in-progress items, and blockers",
"Step 6: Enriches with Codex research - adds project management insights (velocity trends, risk patterns, common project pitfalls), suggests discussion frameworks if risks identified, provides context on timeline implications",
Expand All @@ -29,6 +29,6 @@
"Codex enrichment adds value (project management insights, risk patterns, velocity analysis)",
"Links to project page and task database using mention tags",
"Documents are cross-linked for easy navigation",
"Uses correct tool names (Notion:notion-search, Notion:notion-fetch, Notion:notion-query-data-sources, Notion:notion-create-pages for BOTH documents)"
"Uses correct tool names (Notion:search, Notion:fetch, Notion:notion-query-data-sources, Notion:notion-create-pages for BOTH documents)"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

### 1. Search Customer Info
```
Notion:notion-search
Notion:search
query: "Acme Corp"
query_type: "internal"
filters: {}
Expand All @@ -21,7 +21,7 @@ Found:
### 2. Fetch Details
```
Repeat for each Notion page result:
Notion:notion-fetch
Notion:fetch
id: "acme-crm-notes-page-id"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

### 1. Search for Context
```
Notion:notion-search
Notion:search
query: "Q4 objectives KPIs quarterly results"
query_type: "internal"
filters: {}
Expand All @@ -21,7 +21,7 @@ Found:
### 2. Fetch & Analyze
```
Repeat for each Notion page result:
Notion:notion-fetch
Notion:fetch
id: "q4-okrs-page-id"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
### Step 1: Search for Context

```
Notion:notion-search
Notion:search
query: "database migration"
query_type: "internal"
teamspace_id: "engineering-teamspace-id"
Expand All @@ -29,21 +29,21 @@ filters: {
### Step 2: Fetch Relevant Pages

```
Notion:notion-fetch
Notion:fetch
id: "database-migration-proposal-page-id"
```

**Extracted**: Proposes migrating from MongoDB to PostgreSQL, outlines timeline and risks

```
Notion:notion-fetch
Notion:fetch
id: "database-performance-issues-page-id"
```

**Extracted**: Current pain points - slow queries, schema flexibility issues, transaction limitations

```
Notion:notion-fetch
Notion:fetch
id: "migration-options-analysis-page-id"
```

Expand All @@ -53,7 +53,7 @@ id: "migration-options-analysis-page-id"
3. Hybrid approach (MongoDB + PostgreSQL)

```
Notion:notion-fetch
Notion:fetch
id: "previous-migration-postmortem-page-id"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

### 1. Search for Context
```
Notion:notion-search
Notion:search
query: "sprint planning product backlog"
query_type: "internal"
teamspace_id: "engineering-team"
Expand All @@ -22,7 +22,7 @@ Found:
### 2. Fetch Details
```
Repeat for each Notion page result:
Notion:notion-fetch
Notion:fetch
id: "sprint-planning-context-page-id"
```

Expand Down
13 changes: 7 additions & 6 deletions plugins/notion/skills/notion-research-documentation/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@ metadata:
Pull relevant Notion pages, synthesize findings, and publish clear briefs or reports (with citations and links to sources).

## Quick start
1) Find sources with `Notion:notion-search` using targeted queries; confirm scope with the user.
2) Fetch pages via `Notion:notion-fetch`; note key sections and capture citations (`reference/citations.md`).
1) Find sources with `Notion:search` using targeted queries; confirm scope with the user.
2) Fetch pages via `Notion:fetch`; note key sections and capture citations (`reference/citations.md`).
3) Choose output format (brief, summary, comparison, comprehensive report) using `reference/format-selection-guide.md`.
4) Draft in Notion with `Notion:notion-create-pages` using the matching template (quick, summary, comparison, comprehensive).
5) Link sources and add a references/citations section; update as new info arrives with `Notion:notion-update-page`.

## Tool-call guardrails
- Use one literal search query per `Notion:notion-search` call and include `filters: {}` when no narrower filter is needed.
- Only fetch Notion page, database, or data-source URLs/IDs. Search results can include external connected-source URLs, which are not valid `Notion:notion-fetch` inputs.
- Notion tool availability can vary by workspace. If a Notion MCP call returns `Tool <name> not found`, treat that tool as unavailable for the rest of the current task. Do not retry it with different arguments or call it again later; use `Notion:search` and `Notion:fetch` where sufficient.
- Use one literal search query per `Notion:search` call and include `filters: {}` when no narrower filter is needed.
- Only fetch Notion page, database, or data-source URLs/IDs. Search results can include external connected-source URLs, which are not valid `Notion:fetch` inputs.
- Create output pages with an explicit `parent` and a `pages` array.
- When updating an existing report, fetch it first and use `Notion:notion-update-page` with `update_content`, `properties: {}`, and search-and-replace pairs. For property-only updates, use `update_properties` with `content_updates: []`. The current deployed schema expects both top-level fields even when one is unused. Do not invent insertion-only commands.

Expand All @@ -31,8 +32,8 @@ Pull relevant Notion pages, synthesize findings, and publish clear briefs or rep
After the app is connected, finish your answer and tell the user to retry so they can continue with Step 1.

### 1) Gather sources
- Search first (`Notion:notion-search`); refine queries, and ask the user to confirm if multiple results appear.
- Fetch relevant pages (`Notion:notion-fetch`), skim for facts, metrics, claims, constraints, and dates.
- Search first (`Notion:search`); refine queries, and ask the user to confirm if multiple results appear.
- Fetch relevant pages (`Notion:fetch`), skim for facts, metrics, claims, constraints, and dates.
- Track each source URL/ID for later citation; prefer direct quotes for critical facts.

### 2) Select the format
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
"skills": ["research-documentation"],
"query": "Research our API authentication approach and create a summary document in Notion",
"expected_behavior": [
"Searches Notion workspace for authentication-related pages using Notion:notion-search",
"Searches Notion workspace for authentication-related pages using Notion:search",
"Uses appropriate search terms like 'API authentication', 'auth', 'API security'",
"Applies filters if relevant (e.g., created_date_range, creator filters)",
"Fetches at least 2-3 relevant pages using Notion:notion-fetch to get detailed content",
"Fetches at least 2-3 relevant pages using Notion:fetch to get detailed content",
"Analyzes the fetched content to extract key information about authentication approach",
"Creates a structured research summary document using Research Summary format (see reference/formats.md)",
"Includes sections: Executive Summary, Key Findings, Detailed Analysis, Recommendations, Sources",
Expand Down
Loading