Backend Code Review
langgenius/dify
Reviews backend code under api/ for concrete, reproducible defects, routes to rule packs for architecture, schema, repositories and SQLAlchemy, and ranks findings from P0 to P3.
Checks a Workers sync capability against a list of common bugs, such as stuck cursors, endless pagination and lost deletions, and reports by severity.
$ npx skills add makenotion/workers-template --skill sync-validate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install makenotion/workers-template sync-validate --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/sync-validate .claude/skills/sync-validate && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sync-validate" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/sync-validate into .claude/skills/sync-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-validate", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/makenotion/workers-template/tree/main/.agents/skills/sync-validateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add makenotion/workers-template --skill sync-validate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install makenotion/workers-template sync-validate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/sync-validate .agents/skills/sync-validate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sync-validate" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/sync-validate into .agents/skills/sync-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-validate", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add makenotion/workers-template --skill sync-validate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install makenotion/workers-template sync-validate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/sync-validate .cursor/skills/sync-validate && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sync-validate" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/sync-validate into .cursor/skills/sync-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-validate", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/makenotion/workers-template.git --path .agents/skills/sync-validate--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add makenotion/workers-template --skill sync-validate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install makenotion/workers-template sync-validate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/sync-validate .gemini/skills/sync-validate && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sync-validate" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/sync-validate into .gemini/skills/sync-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-validate", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install makenotion/workers-template sync-validateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add makenotion/workers-template --skill sync-validate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/sync-validate .github/skills/sync-validate && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sync-validate" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/sync-validate into .github/skills/sync-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-validate", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add makenotion/workers-template --skill sync-validate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install makenotion/workers-template sync-validate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/sync-validate .opencode/skills/sync-validate && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sync-validate" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/sync-validate into .opencode/skills/sync-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-validate", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sync-validateChecks a Workers sync capability against a list of common bugs, such as stuck cursors, endless pagination and lost deletions, and reports by severity.
Each sync found in `src/index.ts` and the modules it imports is run through a numbered checklist, and findings come back grouped by severity. Before starting, the agent reads `.agents/skills/sync-guide/SKILL.md` for the underlying sync concepts, and its tools are limited to Read, Glob, Grep and Bash.
Critical checks cover pagination that never ends because `hasMore` never turns false, a `nextState` cursor that does not advance, missing handling of an undefined first-run state, batches of thousands of changes instead of about 100, replace mode where the source API offers change tracking, and misunderstanding that an incremental cursor persists between cycles. Structural checks look at bi-modal correctness: separate backfill and delta phases, and a delta cursor seeded from a marker taken before the backfill began. The description also lists consistency buffers and deletion handling.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 681d89d. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGlobGrepBashFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sync Capability Validator loads about 1.2k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 673 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Glob, Grep, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from makenotion/workers-template at commit 681d89d, republished under its MIT licence (© makenotion). 673 words, ~1,218 tokens.
.claude/skills/sync-validate/SKILL.md (or your agent's skills folder).Read the sync capabilities in src/index.ts (and any imported modules). For each sync found, run through the checklist below. Report findings grouped by severity.
Before starting, read .agents/skills/sync-guide/SKILL.md for the full sync concepts reference.
No pagination termination: Does hasMore eventually become false? Look for: infinite loops where nextState doesn't advance, missing base cases, conditions that can never be met.
Cursor doesn't advance: Does nextState change between iterations? If the cursor is the same as the previous state, the sync will loop forever. Check that each execute call makes progress.
Missing first-run handling: When state is undefined (first run), does the code handle it gracefully? Look for: state.cursor without state?.cursor, property access on potentially undefined state.
Batch too large: Is the sync returning thousands of changes in one execution? Recommend batches of ~100. Large batches will fail.
Replace mode when API supports change tracking: If mode is replace (or unset — it defaults to replace), does the source API support updated_at filters, event feeds, or similar change tracking? If so, recommend a replace-mode backfill plus a separate incremental delta sync sharing the same database. Do not recommend switching the existing sync directly to incremental, because that loses initial-load and mark-and-sweep behavior.
State persistence misunderstanding: In incremental mode, the cursor never resets between cycles. The next cycle starts exactly where the last one left off. Check for code that assumes a fresh start each cycle — this will cause records to be re-fetched or skipped permanently.
Single-mode cursor for incremental sync: Is the sync using the same cursor strategy for both backfill and delta? Unless the API sorts by updated_at and uses an opaque cursor (where one cursor naturally serves both), the sync should have a discriminated state union with separate backfill and delta phases.
Missing backfill-to-delta transition: For bi-modal syncs, how is the delta cursor seeded? It must come from a marker captured before the backfill started (event anchor, timestamp with overlap), NOT from the last record in the backfill. Otherwise, changes during the backfill window are lost permanently.
No overlap in transition: When transitioning from backfill to delta, is there an overlap window (e.g., backfillStartedAt - 5 minutes)? Without overlap, records modified during the backfill but before the delta cursor starts are missed permanently.
No consistency buffer: For incremental syncs hitting eventually consistent APIs, the cursor should lag behind "now" by 10-60 seconds. Without this, the cursor can advance past records that haven't been indexed by the source API yet — those records are lost permanently since the cursor never resets.
Timestamp cursor without tie-breaking: If using updated_at as a cursor, can multiple records share the same timestamp? If yes (batch imports, bulk updates, low-resolution timestamps), recommend the keyset pattern: (timestamp, id) with a query like WHERE ts > X OR (ts = X AND id > Y).
Missing delete handling: In incremental mode, are deletions handled? Check:
{ type: "delete", key } markers?Hardcoded secrets: Are API keys, tokens, or credentials in the code instead of a brokered credential or process.env? Flag any string that looks like a secret.
Missing error handling on fetch: Network calls without error handling will crash the sync on any transient failure. Consider whether the sync should catch and handle API errors or let them propagate (the runtime will retry the cycle).
For each issue found:
If no issues are found, say so. Don't invent problems.
© makenotion, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/sync-validate of makenotion/workers-template.
Open the folder on GitHubat commit 681d89d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in makenotion/workers-template, which our catalogue first saw on October 7, 2026.
Sync Capability Validator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sync Capability Validator this skillmakenotion/workers-template | 439 | 1 repos | ~1.2k | Automated safety check: Notes | MIT | |
| Backend Code Reviewlanggenius/dify | 158k | — | ~676 | Automated safety check: Pass | Custom licence | |
| Performance CheckZeroDeng01/sublinkPro | 1.7k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Gerrit Permission Managertheneoai/awesome-skills | 184 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Frappe Code Reviewfrappe/skills | 146 | — | ~3.8k | Automated safety check: Pass | None | |
| Qodo PR Resolversbusso/claudeclaw | 194 | — | ~4k | Automated safety check: Pass | MIT |
langgenius/dify
Reviews backend code under api/ for concrete, reproducible defects, routes to rule packs for architecture, schema, repositories and SQLAlchemy, and ranks findings from P0 to P3.
ZeroDeng01/sublinkPro
Checklist for reviewing code changes that touch queries, APIs, rendering, caching or algorithms for performance, scalability and resource-usage problems.
theneoai/awesome-skills
Expert manager for Gerrit multi-repository and multi-branch permission configurations.
frappe/skills
Review code for any Frappe application — a checklist distilled from years of engineering practice on correctness, security, performance, concurrency, readability, API design, and testing.
sbusso/claudeclaw
Review and resolve PR issues with Qodo - get AI-powered code review issues and fix them interactively (GitHub, GitLab, Bitbucket, Azure DevOps)
jorgerosal/wordpress-skills
WooCommerce extension code review for HPOS compatibility, payment gateway security, cart optimization, and template overrides.
makenotion/workers-template
Decides whether a Notion Worker should use a brokered credential, a plaintext environment secret, or OAuth to authenticate against a non-Notion service.
makenotion/workers-template
Walks you through designing a new sync for a Notion Worker, covering data source, mode, pagination and cursors, and then generates working code.
makenotion/workers-template
Works out why a Workers sync is failing or returning wrong data by reading run logs through the ntn CLI, matching errors to the sync code and proposing fixes.
makenotion/workers-template
Guides the design of Notion Workers syncs, from choosing a simple replace sync or a backfill plus delta pair to pagination, consistency buffers, pacing and deletion handling.
Categories
Checks a Workers sync capability against a list of common bugs, such as stuck cursors, endless pagination and lost deletions, and reports by severity. ts` and the modules it imports is run through a numbered checklist, and findings come back grouped by severity.md` for the underlying sync concepts, and its tools are limited to Read, Glob, Grep and Bash.
Sync Capability Validator fits situations like: reviewing a new sync capability before it ships; debugging a sync that loops forever or re-fetches the same records; deciding how to add incremental updates to a sync that currently replaces everything.
Run `npx skills add makenotion/workers-template --skill sync-validate -a claude-code`. Or copy the skill folder (.agents/skills/sync-validate in makenotion/workers-template) into .claude/skills/sync-validate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add makenotion/workers-template --skill sync-validate -a codex`. Or copy the skill folder (.agents/skills/sync-validate in makenotion/workers-template) into .agents/skills/sync-validate in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add makenotion/workers-template --skill sync-validate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sync-validate, .gemini/skills/sync-validate, .github/skills/sync-validate and .opencode/skills/sync-validate in your project.
SKILL.md names no scripts, command-line tools or credentials: Sync Capability Validator is instructions for the agent only. Our summary lists: A Workers project with syncs defined in src/index.ts. Its frontmatter pre-approves these tools: Read, Glob, Grep, Bash.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Sync Capability Validator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Sync Capability Validator: Backend Code Review (langgenius/dify, 158k stars), Performance Check (ZeroDeng01/sublinkPro, 1.7k stars), Gerrit Permission Manager (theneoai/awesome-skills, 184 stars) and Frappe Code Review (frappe/skills, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
makenotion (a GitHub organization, an official publisher) maintains it in makenotion/workers-template, which has 439 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 11, 2026.
Source: makenotion/workers-template on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.