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/abderrahimghazali/drupal-boost/migrate-apinpx skills add abderrahimghazali/drupal-boost --skill migrate-apigit clone --depth 1 https://github.com/abderrahimghazali/drupal-boostWhat 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 | $0.00045 | $0.01044 |
| Opus 5 | $0.00023 | $0.00522 |
| Sonnet 5 | $0.00009 | $0.00209 |
| Haiku 4.5 | $0.00005 | $0.00104 |
Grade A, and why
migrate-api 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 2d 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.
How it starts
The opening of the file, as written. The whole thing — 198 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Drupal Migrate API
The Migrate API follows an ETL (Extract-Transform-Load) pattern.
Migration YAML Structure
id: my_migration
label: 'Migrate articles from legacy database'
migration_group: my_migrations
migration_tags:
- content
source:
plugin: d7_node # or csv, url, json, etc.
node_type: article
process:
title: title
body/value: body
body/format:
plugin: default_value
default_value: basic_html
uid:
plugin: migration_lookup
migration: my_users_migration
source: author_id
field_tags:
plugin: sub_process
source: tags
process:
target_id:
plugin: entity_generate
source: name
entity_type: taxonomy_term
bundle: tags
bundle_key: vid
value_key: name
destination:
plugin: entity:node
default_bundle: article
migration_dependencies:
required:
- my_users_migration
optional:
- my_tags_migration
Common Source Plugins
Database Source
source:
plugin: d7_node
node_type: article
# Or custom SQL:
plugin: custom_sql
query: "SELECT id, title, body FROM legacy_articles"
CSV Source (requires migrate_source_csv)
source:
plugin: csv
path: /path/to/data.csv
ids: [id]
header_offset: 0
fields:
- name: id
- name: title
- name: body
JSON/URL Source (requires migrate_plus)
source:
plugin: url
data_fetcher_plugin: http
data_parser_plugin: json
urls:
- 'https://api.example.com/articles'
item_selector: /data
fields:
- name: id
selector: /id
- name: title
selector: /attributes/title
ids:
id:
type: integer
Common Process Plugins
process:
# Direct copy
title: source_title
# Default value
status:
plugin: default_value
default_value: 1
# Value mapping
field_type:
plugin: static_map
source: legacy_type
map:
news: article
blog: blog_post
# Entity lookup/generate
uid:
plugin: migration_lookup
migration: users
source: author_id
# Date formatting
created:
plugin: format_date
source: date
from_format: 'Y-m-d H:i:s'
to_format: 'U'
# Concatenation
path:
plugin: concat
source:
- constants/prefix
- slug
delimiter: /
# Skip empty
field_image:
- plugin: skip_on_empty
source: image_url
method: process
- plugin: file_copy
source: image_url
destination: 'public://images/'
# Callback
title:
plugin: callback
callable: trim
source: title
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 2d ago First seen · 198 lines · 45 tokens per session scan A 6036a06fd58a
migrate-api is a skill published in the GitHub repository abderrahimghazali/drupal-boost (1 stars, last pushed 5mo ago), licensed MIT. It adds 45 tokens to every session and 1,044 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
cms-detection
Identify CMS, frameworks, and server technology stacks on live hosts.
angular-developer
Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or…
drupal-htmx
HTMX in Drupal 11.3+ core — the Htmx PHP fluent builder, dynamic forms with swapOob, partial routes with htmxroute, response headers, and Drupal.behaviors integration. Use when building interactive UI without full-page reloads using Drupal's native HTMX support.
drupal-search-api
Search API — index configuration, boost processors, field types, number field boosting, engagement metrics, and reindexing workflows.
drupal-contrib-mgmt
Drupal contrib module upgrade triage — Drupal.org issue queue research, local patch creation (git diff), composer-patches workflows, Drupal 11 compatibility via coreversionrequirement, Drupal Lenient handling, and upgradestatus analysis. Not for generic Composer dependency management.
drupal-migrations
Drupal migration API — D7-to-D11 upgrades, CSV imports, JSON API imports, and custom source/process/destination plugins.