Generated banner for Notion Knowledge Capture
Generated logo for Notion Knowledge Capture

Notion Knowledge Capture

OpenAIOfficialCreated by Notion Labs, IncDistributed by OpenAI

  • Skill
  • Workflow
  • Automation and integrations
  • MIT
  • No issues found

From the author

Capture conversations and decisions into structured Notion pages; use when turning chats/notes into wiki entries, how-tos, decisions, or FAQs with proper linking.
— the description by Notion Labs, Inc

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a systematic approach to transforming ephemeral chat logs and notes into durable, searchable, and structured knowledge within Notion. It guides the user through defining the content type, identifying the appropriate database, extracting key information, and performing the necessary Notion API operations to create or update pages. By following these steps, teams can ensure that decisions, how-to guides, and FAQs are properly documented, linked, and maintained.

What it does

  • Defines the purpose and audience for knowledge capture.
  • Identifies the correct Notion database and template for the content type.
  • Extracts facts, decisions, rationale, and action items from conversations.
  • Structures content into standardized formats like FAQs, decision logs, or how-to guides.
  • Creates or updates Notion pages using specific API tool calls.
  • Links new content to existing hub pages and related records.

When to use it

  • When you need to turn a productive team chat into a permanent wiki entry.
  • When documenting a technical decision and its rationale for future reference.
  • When creating a how-to guide based on a troubleshooting session.
  • When building an FAQ database from recurring user or team questions.

Advantages

  • Ensures consistent documentation standards across the team.
  • Reduces information loss by formalizing informal discussions.
  • Improves discoverability through structured tagging and linking.
  • Provides clear guardrails for interacting with the Notion API.

Usage examples

“We just decided on the new API authentication flow. Can you capture this in our decision log?”
The agent will extract the alternatives, rationale, and final decision, then create a structured entry in the decision log database.
“Turn our recent discussion about setting up the local dev environment into a how-to guide.”
The agent will structure the steps, prerequisites, and edge cases into a Notion page using the how-to template.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/openai/notion-knowledge-capture/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip notion-knowledge-capture.zip -d .agents/skills

Documentation by Notion Labs, Inc

Knowledge Capture

Convert conversations and notes into structured, linkable Notion pages for easy reuse.

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: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

  • 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.

Workflow

0) If Notion tools are unavailable, pause and ask the user to connect the Notion app:
  1. Enable the bundled Notion app for this plugin or session.

  2. Complete the Notion auth flow if prompted.

  3. Start a new session if the tools still do not appear.

After the app is connected, finish your answer and tell the user to retry so they can continue with Step 1.

1) Define the capture
  • Ask purpose, audience, freshness, and whether this is new or an update.

  • Determine content type: decision, how-to, FAQ, concept/wiki entry, learning/note, documentation page.

2) Locate destination
  • Pick the correct database using reference/*-database.md guides; confirm required properties (title, tags, owner, status, date, relations).

  • If multiple candidate databases, ask the user which to use; otherwise, create in the primary wiki/documentation DB.

3) Extract and structure
  • Extract facts, decisions, actions, and rationale from the conversation.

  • For decisions, record alternatives, rationale, and outcomes.

  • For how-tos/docs, capture steps, pre-reqs, links to assets/code, and edge cases.

  • For FAQs, phrase as Q&A with concise answers and links to deeper docs.

4) Create/update in Notion
  • Use Notion:notion-create-pages with the correct data_source_id; set properties (title, tags, owner, status, dates, relations).

  • Use templates in reference/ to structure content (section headers, checklists).

  • If updating an existing page, fetch then edit via Notion:notion-update-page.

  • Add relations/backlinks to hub pages, related specs/docs, and teams.

  • Add a short summary/changelog for future readers.

  • If follow-up tasks exist, create tasks in the relevant database and link them.

References and examples

  • reference/ — database schemas and templates (e.g., team-wiki-database.md, how-to-guide-database.md, faq-database.md, decision-log-database.md, documentation-database.md, learning-database.md, database-best-practices.md).

  • examples/ — capture patterns in practice (e.g., decision-capture.md, how-to-guide.md, conversation-to-faq.md).

Files

examples/decision-capture.md

Example: Decision Record Capture

User Request: "Document our decision to move from REST to GraphQL API"

Workflow

1. Extract Decision from Context

From conversation, identified:

  • Decision: Migrate customer-facing API from REST to GraphQL

  • Context: REST endpoints becoming unwieldy (50+ endpoints)

  • Alternatives: Keep REST, try gRPC, adopt GraphQL

  • Rationale: Better client experience, type safety, single endpoint

2. Find Decision Log
Notion:search
query: "architecture decisions"
query_type: "internal"
filters: {}

Found: "Architecture Decision Records" database

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

Got properties: Decision (title), Date, Status, Domain, Impact, Deciders, Stakeholders

4. Create Decision Record
Notion:notion-create-pages
parent: { data_source_id: "decision-log-collection-id" }
pages: [{
  properties: {
    "Decision": "Migrate to GraphQL API",
    "date:Date:start": "2025-10-16",
    "date:Date:is_datetime": 0,
    "Status": "Accepted",
    "Domain": "Architecture",
    "Impact": "High"
  },
  content: "[Full decision record with context, rationale, alternatives...]"
}]

Content sample:

# Migrate Customer-Facing API to GraphQL

## Context
Our REST API has grown to 50+ endpoints with inconsistent patterns. Frontend and mobile teams request new endpoints frequently, leading to:
- API bloat and maintenance burden
- Over-fetching/under-fetching data
- Slow iteration on client features
- Inconsistent error handling

## Decision
Migrate customer-facing API from REST to GraphQL while maintaining REST for internal services.

## Rationale
**Why GraphQL**:
- Clients fetch exactly what they need (no over/under-fetching)
- Single endpoint, self-documenting schema
- Type safety with code generation
- Better developer experience
- Industry standard for client-facing APIs

## Options Considered

### Option A: Keep REST (Status Quo)
**Pros**: No migration cost, team familiar
**Cons**: Doesn't solve core problems, maintenance keeps growing
**Decision**: Rejected - doesn't address root cause

### Option B: gRPC
**Pros**: Performance, strong typing
**Cons**: Browser support issues, steeper learning curve, not designed for client-facing
**Decision**: Rejected - better for internal services

### Option C: GraphQL
**Pros**: Solves over/under-fetching, great DX, strong ecosystem
**Cons**: Learning curve, caching complexity, migration effort
**Decision**: **Accepted**

## Consequences

**Positive**:
- Faster frontend/mobile development
- Reduced API maintenance burden
- Better type safety and tooling
- Single endpoint simplifies deployment

**Negative**:
- 3-4 month migration timeline
- Team needs training
- Need to solve caching strategy
- Monitoring/debugging patterns different

## Implementation Plan
1. GraphQL server setup (Apollo Server)
2. Schema design workshop
3. Gradual migration (start with new features)
4. Dual-run period (both REST and GraphQL)
5. Deprecate old REST endpoints

**Timeline**: Start Q4 2025, complete Q1 2026
**Owner**: Backend team lead

## Success Metrics
- API response times improve 30%
- Client fetch efficiency (less data transferred)
- Reduced new endpoint requests
- Developer satisfaction scores
5. Make Discoverable

Added link from Architecture Wiki and notified team in Slack.

Key Success Factors

  • Captured decision while context fresh

  • Documented alternatives considered

  • Included both pros and cons

  • Clear implementation plan

  • Saved to decision log for future reference

  • Made discoverable for team

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Notion Labs, Inc
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/notion/skills/notion-knowledge-capture · commit d420d13
Licence
MIT License (redistribution allowed)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Notion Labs, Inc or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download notion-knowledge-capture.zip