Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/n24q02m/claude-plugins/bulk-updatenpx skills add n24q02m/claude-plugins --skill bulk-updategit clone --depth 1 https://github.com/n24q02m/claude-pluginsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/n24q02m/claude-plugins/bulk-update)<a href="https://agentmods.dev/skills/n24q02m/claude-plugins/bulk-update"><img src="https://agentmods.dev/badge/skills/n24q02m/claude-plugins/bulk-update.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00021 | $0.00778 |
| Opus 5 | $0.00010 | $0.00389 |
| Sonnet 5 | $0.00004 | $0.00156 |
| Haiku 4.5 | $0.00002 | $0.00078 |
Grade A, and why
bulk-update scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to bulk-update — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bulk Update
Update properties or content across many pages in a database safely.
Pagination (Critical)
Notion returns max 100 results per query. You MUST paginate to process all pages:
# First query
databases(action="query", database_id="<id>", filter={...}, page_size=100)
# Response includes: has_more=true, next_cursor="abc123"
# Continue until has_more=false
databases(action="query", database_id="<id>", filter={...}, page_size=100, start_cursor="abc123")
Never assume a single query returns all results. Always check has_more.
Dry-Run Mode
Before making any changes, ALWAYS show the user what will change:
- Query the database with the filter
- For each matching page, show:
- Page title (current value)
- What will change (old value -> new value)
- Total count of affected pages
- Ask for explicit confirmation before proceeding
Example dry-run output:
Found 23 pages matching filter. Changes:
1. "Project Alpha" -- Status: "Active" -> "Archived"
2. "Project Beta" -- Status: "Active" -> "Archived"
...
(21 more)
Proceed with update? (yes/no)
Update Execution
After user confirms:
-
Track progress -- maintain counters:
succeeded: pages updated successfullyfailed: pages that errored (with page ID and error message)skipped: pages already in target state
-
Update each page:
pages(action="update", page_id="<id>", properties={ "Status": { "select": { "name": "Archived" } } }) -
Rate limit awareness:
- Notion rate limit: 3 requests/second average
- For large batches (50+ pages), warn user it may take time
- If you get 429 errors, pause and retry
-
Error recovery:
- Never stop on first error -- continue processing remaining pages
- Collect all failures with their page IDs
- After completion, report: "Updated 20/23 pages. 3 failed: [page IDs + error reasons]"
- Offer to retry failed pages
Property Value Format
Remember the nested format (same as organize-database skill):
// Properties must use typed nested objects
{ "Status": { "select": { "name": "Done" } } }
{ "Tags": { "multi_select": [{ "name": "urgent" }, { "name": "review" }] } }
{ "Priority": { "number": 1 } }
{ "Reviewed": { "checkbox": true } }
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 102 lines · 21 tokens per session scan A a9b2e3732296
bulk-update is a skill published in the GitHub repository n24q02m/claude-plugins (4 stars, last pushed today), licensed Apache-2.0. It adds 21 tokens to every session and 778 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to bulk-update, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
airtable-automation
Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views. Always search tools first for current schemas.
agency-os
Notion-as-source-of-truth dispatch board for running your work like an AI agency. One Tasks database is the source of truth; tasks flow Suggestion through Discussion, To-Do, In Progress, and Done with subtasks, recurring cadences, dependencies, and template subtrees. Batch execution fans approved To-Do rows out to…
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
flow-next-guide
Recommend the smallest sufficient flow-next workflow from the starting state. Stateless router. Use when unsure which command or stage applies next.
obsidian-bases
Create and configure Obsidian Bases — database-like views of notes. Activate this skill when users want to create bases, write filters, formulas, or set up table/cards/list/map views.
commit-helper
Help create git commits and PRs with properly formatted messages and release notes following CockroachDB conventions. Use when committing changes or creating pull requests.