sync
Scaffold a new sync capability with guided setup — asks about data source, mode, pagination, and cursor design, then generates working code
Skill by makenotionOfficial
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/makenotion-sync-06a9e3
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/sync
What's inside
- Skill name
sync- Description
- Scaffold a new sync capability with guided setup — asks about data source, mode, pagination, and cursor design, then generates working code
- License
- MIT
- Instructions
- 416 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- allowed-tools: must be a space-separated string
Files (1)
- SKILL.md
SKILL.md (first lines)
## Instructions
You are helping the user create a new sync capability for their Notion Worker. Walk through each step, asking questions and making recommendations. Generate working code at the end.
Before you begin, read these reference files to understand sync patterns:
- `.agents/skills/sync-guide/SKILL.md` — concepts, modes, patterns, common mistakes
- `.agents/skills/sync-guide/api-pagination-patterns.md` — real-world API strategies
- `.agents/skills/sync-guide/examples/` — working code templates
Also read the current `src/index.ts` to understand what already exists.
### Step 1: Understand the Data Source
Ask the user:
- What data are you syncing? (e.g., "Jira issues", "Stripe customers", "ServiceNow tickets")
If they name a well-known API, look up its pagination mechanism and change-tracking capabilities (does it have `updated_at`? an events endpoint? cursor-based pagination?).
### Step 2: Determine the Right Architecture
Based on what you know about the data source, recommend one of two architectures:
#### Simple replace sync
Use when: the source is small (<1k records) OR the API has no change tracking
(no `updated_at`, no event feed).
One sync, replace mode. Re-fetches everything each cycle. The runtime
auto-deletes records that disappear from the source. Simplest option.
#### Backfill + delta pair
Use when: the API supports change tracking (`updated_at`, events, changelog) —
this covers most enterprise APIs (Salesforce, Stripe, Linear, GitHub, HubSpot).
Two separate syncs writing to the **same database**:
- **Backfill sync** (replace mode, `schedule: "manual"`): Paginates the full
dataset. Triggered manually via CLI when a full re-import is needed. Replace
mode's mark-and-sweep automatically cleans up records deleted from the source.
- **Delta sync** (incremental mode, `schedule: "5m"` or similar): Fetches only
recently changed records. Runs on a timer for low-latency updates.
Advantages over a single bi-modal sync:
- No phase discrimination in state — each sync has simple, focused state
- No backfill-to-delta transition logic
- Backfill and delta run independently — re-backfill anytime without disrupting delta
- Easier to reason about and debug
**Change tracking drives the decision, not dataset size.** A Linear workspace
may only have a few thousand issues, but its API supports the queries needed
for delta sync, so backfill+delta is the right choice. Conversely, a website
listing local pickleball courts has no `updated_since` endpoint regardless of
how many records it has.
Recommend an architecture with a brief explanation. Let the user override if
they disagree.
### Step 3: Design the Schema
Based on the API's response shape, propose a schema. Look up what fields the
API returns and map the most useful ones to Schema types. Don't ask the user
to enumerate fields — propose a sensible default and let them adjust.
For example, if syncing Jira issues, propose:
```ts
const issuesDb = worker.database("issuesDb", {
type: "managed",
initialTitle: "Jira Issues",
primaryKeyProperty: "Issue Key",
schema: {
properties: {
"Issue Key": Schema.richText(), // primaryKeyProperty — the unique ID
Summary: Schema.title(), // the main display field
Status: Schema.select([
{ name: "To Do" },
{ name: "In Progress", color: "yellow" },
{ name: "Done", color: "green" },
]), // mapped from Jira statuses
Assignee: Schema.richText(), // or Schema.people() if email available
Updated: Schema.date(),
},
},
})
```
Guidelines:
- Declare the database with `worker.database()` and reference the handle in `worker.sync()`
- Every schema needs exactly one `Schema.title()` — pick the most descriptive field
- Use `Schema.richText()` for the primary key property (the unique ID)
- Treat property order as product design, not API order. Put the title first,
followed by the five properties that best help an end user recognize,
evaluate, or act on the record.
- Keep opaque IDs, sync keys, timestamps used only for cursors, and other
implementation metadata out of the first six properties. Include a user-facing
identifier such as an order number or issue key early only when users genuinely
rely on it.
- Use `Schema.url()`, `Schema.email()`, `Schema.date()`, `Schema.number()`,
`Schema.checkbox()`, `Schema.select()` where the data type fits
- Use `Schema.relation("otherDatabaseKey")` for relations to another managed database
- Start with 10-20 properties — be generous, include most useful fields from the API
- See the full type list in `.agents/skills/sync-guide/SKILL.md` under "Schema Reference"
Present the proposed schema to the user and ask if they want to add, remove,
or change any fields before generating code.
### Step 4: Design the State Machine
Research the API to determine its pagination and change-tracking mechanisms.
Do NOT ask the user about pagination details — figure it out from the API docs,
your knowledge of the API, or by looking up the API. The user shouldn't need
to know whether their API uses opaque cursors vs page numbers.
You need to determine:From makenotion/notion-cookbook, MIT.
More from makenotion/notion-cookbook
- 0.787score
notion-research-documentation
makenotionOfficial
Researches questions across Notion sources and synthesizes cited briefs, comparisons, or reports.
SkillAFreshness: A★ 220Claude Code +9 - 0.787score
notion-knowledge-capture
makenotionOfficial
Captures conversations and supplied notes as Notion wiki pages, how-to guides, FAQs, decision records, or retrospectives.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-spec-to-implementation
makenotionOfficial
Converts Notion product or technical specs into implementation plans, linked tasks, and evidence-based progress updates.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-database-designer
makenotionOfficial
Turns scattered notes and recurring work into useful Notion trackers for requests, content plans, or team work.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-meeting-intelligence
makenotionOfficial
Prepares meeting agendas, internal pre-reads, and decision briefs using Notion context and relevant research.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-weekly-project-digest
makenotionOfficial
Produces evidence-based weekly project or team updates by comparing reporting periods, tasks, decisions, and blockers in Notion.
SkillAFreshness: A★ 220Claude Code +9 - 0.779score
sketch
makenotionOfficial
Sketch an App workflow as a reviewable flow diagram when planning or iterating on its design with the user.
SkillAFreshness: A★ 220Claude Code +9 - 0.746score
custom-blocks
makenotionOfficial
Create, modify, and troubleshoot custom blocks in Notion Workers.
SkillBFreshness: B★ 220Claude Code +9 - 0.746score
auth-guide
makenotionOfficial
Guide to setting up third-party authentication for a Notion Worker.
SkillBFreshness: B★ 220Claude Code +9 - 0.742score
sync-guide
makenotionOfficial
Comprehensive guide to building Notion Workers syncs — covers the two-sync architecture (backfill+delta), replace mode, pagination, consistency buffers…
SkillBFreshness: B★ 220Claude Code +9 - 0.739score
workflow
makenotionOfficial
Scaffold a Notion Worker Workflow with typed triggers and replay-safe durable steps.
SkillBFreshness: B★ 220Claude Code +9 - 0.739score
workflow-guide
makenotionOfficial
Reference for typed triggers, durable steps, replay-safe data flow, and idempotent Workflow effects.
SkillBFreshness: B★ 220Claude Code +9
Signals
- Stars
- 220
- Forks
- 59
- Open issues
- 2
- Last commit (this folder)
- Aug 18, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/makenotion/notion-cookbook
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from makenotion
- 0.787score
notion-knowledge-capture
makenotionOfficial
Captures conversations and supplied notes as Notion wiki pages, how-to guides, FAQs, decision records, or retrospectives.
SkillAFreshness: A★ 220Claude Code +9 - 0.787score
notion-research-documentation
makenotionOfficial
Researches questions across Notion sources and synthesizes cited briefs, comparisons, or reports.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-spec-to-implementation
makenotionOfficial
Converts Notion product or technical specs into implementation plans, linked tasks, and evidence-based progress updates.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-database-designer
makenotionOfficial
Turns scattered notes and recurring work into useful Notion trackers for requests, content plans, or team work.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-meeting-intelligence
makenotionOfficial
Prepares meeting agendas, internal pre-reads, and decision briefs using Notion context and relevant research.
SkillAFreshness: A★ 220Claude Code +9 - 0.783score
notion-weekly-project-digest
makenotionOfficial
Produces evidence-based weekly project or team updates by comparing reporting periods, tasks, decisions, and blockers in Notion.
SkillAFreshness: A★ 220Claude Code +9
Cite this page
sync skill. Agent Mart. https://agentmart.dev/skills/makenotion-sync-06a9e3 (last updated 2026-10-24)