by heyman333
Make your AI agent write documents like Notion — Claude Code skill that locks document structure & Notion visual style
# Add to your Claude Code skills
git clone https://github.com/heyman333/agent-notion-template-docsGuides for using ai agents skills like agent-notion-template-docs.
agent-notion-template-docs is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by heyman333. Make your AI agent write documents like Notion — Claude Code skill that locks document structure & Notion visual style. It has 57 GitHub stars.
agent-notion-template-docs's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/heyman333/agent-notion-template-docs" and add it to your Claude Code skills directory (see the Installation section above).
agent-notion-template-docs is primarily written in Python. It is open-source under heyman333 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh agent-notion-template-docs against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Make your AI agent write documents like Notion — not like an AI.
Ask an AI agent to create a document and you'll often get the same kind of output: a purple gradient hero, emoji-heavy headings, cards with drop shadows.
notion-doc is an agent skill that gives those documents a Notion-like visual style.
It doesn't decide what goes into your document or how it's structured. Your agent still handles the content and outline. notion-doc only handles the presentation.
| Without notion-doc | With notion-doc |
|---|---|
![]() |
![]() |
The skill provides a set of HTML blocks commonly used in Notion:
<details>), checklists with strikethrough, quotes, and bookmark cardsword-break: keep-all)@media printThe agent doesn't generate CSS for each document. It copies template.html and fills in the content.
The template defines a 720px content width, #2C2C2B text color, and Notion's light and dark color palettes as CSS tokens.
Dark mode follows the viewer's theme. When printed or exported to PDF, it switches back to the light palette.
| Light | Dark |
|---|---|
![]() |
![]() |
Plugin installation is the recommended way to use notion-doc.
/plugin marketplace add heyman333/agent-notion-template-docs
/plugin install notion-doc@agent-notion-template-docs
By default the plugin is installed at the user scope — it applies to all of your projects and never touches the repo, so teammates are unaffected.
To narrow or widen that, pass --scope on the CLI:
# just me, just this project (.claude/settings.local.json — auto-gitignored)
claude plugin marketplace add heyman333/agent-notion-template-docs --scope local
claude plugin install notion-doc@agent-notion-template-docs --scope local
# the whole team on this project (.claude/settings.json — commit it)
claude plugin marketplace add heyman333/agent-notion-template-docs --scope project
claude plugin install notion-doc@agent-notion-template-docs --scope project
With project scope, teammates get an install prompt on their next session after pulling. With local scope, nothing you install shows up in git.
You can also copy the skill manually.
# this project only
cp -r skills/notion-doc <your-project>/.claude/skills/
# every project
cp -r skills/notion-doc ~/.claude/skills/
The skill consists of two plain files with no Claude-specific dependencies. Any agent that can read instruction files can use it.
See Using with other agents for ready-to-paste snippets for AGENTS.md, .cursor/rules, and GEMINI.md.
Once installed, notion-doc is applied automatically when you ask the agent to create a document.
For example:
You can also invoke it explicitly in Claude Code:
/notion-doc:notion-doc
The skill is designed around a single HTML template. The agent should use the template rather than creating its own CSS.
lint.py checks generated documents against template.html:
python3 skills/notion-doc/lint.py mydoc.html
For example:
✗ mydoc.html
ERROR [css-drift] CSS differs from the canon (1 lines). Do not write new CSS — + box-shadow: 0 4px 12px ...
ERROR [unknown-class] Classes not in the template: hero-card. Do not invent classes — pick from the block dictionary
The linter catches:
style attributeslanguage-* classIt uses only the Python standard library, so it can run in any agent or CI environment.
When installed as a Claude Code plugin, a PostToolUse hook runs after HTML files are written and reports what needs to be fixed. If the document was created without the skill, it gives a short reminder to use it.
The hook is limited to document files and skips apps, framework templates, and build output. See the gating tests.
Open the HTML files in a browser to see the actual output.
| File | Content | Blocks shown |
|---|---|---|
| sample.html | Campaign proposal (Korean) | Most of the available blocks: breadcrumb, TOC, 5 callout colors, tables, 2-column layout, toggle, checklist, bookmark, button |
| sample-tech.html | Incident analysis (Korean) | Syntax-highlighted code, red/yellow callouts |
| sample-en.html | Campaign proposal (English) | Same document as sample.html, in English |
| before.html | Without notion-doc | A typical default agent output |
.claude-plugin/
plugin.json # plugin manifest
marketplace.json # marketplace catalog
skills/notion-doc/
SKILL.md # block dictionary and visual rules
template.html # HTML template and CSS
lint.py # checks documents against the template
hooks/
hooks.json # PostToolUse hook
notion-doc-lint.py
test_gating.py # tests hook behavior
examples/ # rendered example documents
scripts/ # screenshots and Notion sync checks
docs/
using-with-other-agents.md
Notion continues to add new block types and change its visual design. This repo periodically checks a public Notion reference page to see if the implementation has drifted.
The weekly CI job, notion-sync, checks the reference page in three ways:
The results are compared against the committed baselines in sync/notion-tokens.json and sync/notion-snapshot.json.
Reference page:
Notion Block Reference — All of Notion's Blocks
(Thomas Frank's public reference page.)
When the reference changes, the CI job reports the difference and opens an issue. The report also indicates whether a new block type is already supported by notion-doc.
The visual style in template.html is based on Notion's own design tokens rather than manually approximated values.
Notion declares its tokens right in its inline styles (background: var(--c-graBacPri)), so every value can be traced instead of sampled:
The weekly notion-sync job re-checks all of it, so the template can't silently drift from Notion.