Official agent skill

Migrate Required Input Dependency

by elastic in elastic/integrations

Migrate an Elastic integration package from a legacy inline agent template to integrations with required input dependencies (requires.input, streams[].package).

OfficialApache-2.0Auto-check passed

Install Migrate Required Input Dependency

skills CLI
$ npx skills add elastic/integrations --skill migrate-required-input-dependency -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install elastic/integrations migrate-required-input-dependency --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/elastic/integrations.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/migrate-required-input-dependency .claude/skills/migrate-required-input-dependency && rm -rf skills-src

Use ~/.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/

Facts

Skill name
migrate-required-input-dependency
GitHub stars
336
Token cost
~4.9k tokens
SKILL.md length
2,038 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

Migrate an Elastic integration package from a legacy inline agent template to integrations with required input dependencies (requires.input, streams[].package).

  • Works in 4 steps: Discover the package → Gather developer decisions (required… → Execute migration → …
  • The user asks to migrate an integration to an input package
  • SKILL.md covers Rules, Phase 1 — Discover the package, Phase 2 — Gather developer… and Phase 3 — Execute migration, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Migrate Required Input Dependency is an agent skill from elastic/integrations, published by the product's own GitHub organization. Migrate an Elastic integration package from a legacy inline agent template to integrations with required input dependencies (requires.input, streams[].package). Gathers developer decisions on dataset naming, variable overrides, stack constraints, and tests before applying changes. Use when the user asks to migrate an integration to an input package, adopt requires.input, switch to streams[].package, or mentions required input dependencies. Requires elastic-package CLI.

Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires elastic-package CLI. Designed for packages in elastic/integrations.

The licence is Apache-2.0.

When your agent uses it

  • The user asks to migrate an integration to an input package
  • Adopt requires.input
  • Switch to streams[].package
  • Mentions required input dependencies

Example prompts

  • “/migrate-required-input-dependency”

Requirements

  • Compatibility (from SKILL.md): Requires `elastic-package` CLI. Designed for packages in elastic/integrations.

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Discover the package
  2. Gather developer decisions (required before migration)
  3. Execute migration
  4. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit a0dffc9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires `elastic-package` CLI. Designed for packages in elastic/integrations.

    From compatibility in the SKILL.md frontmatter.

Context cost

Migrate Required Input Dependency loads about 4.9k tokens when it runs. Until then it costs about 129 tokens; SKILL.md has 2,038 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~129
When it runs · the whole SKILL.md, loaded when a task matches
~4.9k

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.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated 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.

SKILL.md

The full file from elastic/integrations at commit a0dffc9, republished under its Apache-2.0 licence (© elastic). 2,038 words, ~4,897 tokens.

Download SKILL.mdSave it as .claude/skills/migrate-required-input-dependency/SKILL.md (or your agent's skills folder).
name
migrate-required-input-dependency
description
Migrate an Elastic integration package from a legacy inline agent template to integrations with required input dependencies (`requires.input`, `streams[].package`). Gathers developer decisions on dataset naming, variable overrides, stack constraints, and tests before applying changes. Use when the user asks to migrate an integration to an input package, adopt `requires.input`, switch to `streams[].package`, or mentions required input dependencies. Requires elastic-package CLI.
compatibility
Requires `elastic-package` CLI. Designed for packages in elastic/integrations.
license
Apache-2.0
metadata.origin
elastic/integrations
metadata.guide
elastic-package/docs/howto/migrate_integration_required_input_dependency.md

migrate-required-input-dependency

Migrate an integration package to integrations with required input dependencies.

Authoritative guide: HOWTO: Migrate an integration package to use required input dependencies (docs/howto/migrate_integration_required_input_dependency.md in elastic-package on main)

At the start of Phase 1, read that guide from a local elastic-package checkout or from the URL above.

Reference implementation: elastic/integrations#19719 (packages/elastic_package_registry). If main still shows legacy input: / inline collector templates, diff against the PR branch — do not copy pre-migration patterns from main.

Rules

  1. Never edit package files until all decision gates in Phase 2 are answered and you have presented a migration plan summary for confirmation.
  2. Prefer manifest variable overrides over hardcoding values in stream.yml.hbs (hardcoding causes Fleet UI values that have no effect). For each variable, be explicit about intent per the how-to guide Variable overrides section: who sets it (integration author vs end user), whether it appears in Fleet, and whether the rendered agent template references it via {{variable}} rather than a hardcoded literal.
  3. Set dataset: on the data stream manifest when the integration dataset must differ from the input package default — do not expose data_stream.dataset as a user variable unless the developer explicitly chooses that approach.
  4. Keep local stream.yml.hbs limited to integration-owned template fragments only.
  5. Run elastic-package build and elastic-package test after migration; use elastic-package test policy --generate only after the developer reviews generated expectations.
  6. Do not treat an unmigrated reference package on main as source of truth — use the guide and PR #19719 when packages/elastic_package_registry is still legacy.

Phase 1 — Discover the package

  1. Confirm elastic-package version succeeds. If missing, stop and point to the elastic-package install guide. Version should be minimum v0.125.1.

  2. Locate the integration package root (manifest.yml, type: integration).

  3. Read the legacy setup:

    • manifest.yml — policy_templates, format_version, conditions, existing requires
    • Each data stream's manifest.yml and agent/stream/*.hbs
    • fields/, ingest pipelines, dashboards tied to the current dataset/index name
    • _dev/test/config.yml, policy/system/pipeline tests
  4. Identify the target input package — search local packages/ for type: input; if not found, check the package registry or ask the developer.

  5. Diff legacy template vars/defaults against the input package manifest vars/defaults. Flag input-only variables (present on input, absent from legacy template) for Gate D.

  6. Record the integration's historical dataset name(s) from policy tests, dashboards, output_permissions, or data_stream.dataset usage.

Present a short inventory: package name, data streams, legacy input type, proposed input package, variables that differ between legacy and input defaults, input-only variables, and common diffs (for example hosts path format).

Phase 2 — Gather developer decisions (required before migration)

Use AskQuestion when available; otherwise ask conversationally. Do not proceed to Phase 3 until every applicable gate below is resolved.

Gate 0 — Migration appropriateness
DecisionOptions / prompt
Suitable input package exists?Yes — proceed · No — stop; recommend creating/publishing an input package first
Stack supports format_version ≥ 3.6?Yes (stack 9.4+) · No — stop; plan stack upgrade or defer migration
Drop-in replacement assumed?Confirm developer understands dataset, variable precedence, and policy expectations need explicit work
Multiple data streamsSame input package for all streams, or per-stream input packages (rare)?
Gate A — Scope and dependency
DecisionOptions / prompt
Input packageWhich input package? (e.g. prometheus_input)
Input version pinExact version for requires.input (e.g. "1.0.1") — use elastic-package requires update later to bump pins
Input version sourcePublished registry version · Unpublished — local requires.source for tests (build still fetches from registry unless using a local registry)
Data streams in scopeAll data streams or a subset?
Gate B — Stack and format version
DecisionOptions / prompt
format_versionDefault 3.6.5 unless developer specifies otherwise (minimum 3.6 for requires.input)
conditions.kibana.versionRequired minimum for target stack? (guide example: ^9.4.4)
Changelog type for stack dropenhancement (typical) or breaking-change?
Gate C — Dataset management

Explain the risk: without an explicit dataset, documents may index under the input package default (e.g. metrics-prometheus-*).

DecisionOptions / prompt
Dataset name per data streamConfirm historical name (e.g. elastic_package_registry.metrics)
Dataset strategydataset: on data stream manifest (recommended) · data_stream.dataset stream var · Auto-naming package_name.stream_type (only if historically correct)

Default recommendation when unsure: dataset: on the data stream manifest.

Gate D — Variable overrides (per variable)

Follow the how-to guide Variable overrides section. The rendered agent policy merges three layers: input package template defaults, integration stream.yml.hbs, and user-selected values. Understanding which layer wins is critical.

Include every variable from the input package manifest, even if absent from the legacy template. For data_stream.dataset on the input package, prefer manifest dataset: (Gate C), not a stream var override.

Variables can be declared at stream level (streams[].vars in the data stream manifest) or input level (policy_templates[].inputs[].vars in the package manifest). Input-level declarations are promoted to input-scoped variables. Use stream-level vars for per-data-stream tuning; use input-level vars when the override applies to every data stream that references the input package in that policy template.

For each variable, ask the developer to classify:

CategoryMeaningAction
A — Integration-onlyNot in input package (e.g. metrics_path)Add data stream var + reference in slim stream.yml.hbs via {{variable}}
B — Override input defaultInput default differs from legacy behaviour (e.g. rate_counters: false)Redeclare on streams[].vars with integration default
C — InheritInput default matches legacy (e.g. use_types: true)Remove from local template and data stream manifest; do not redeclare or hardcode

For each A and B variable, also confirm variable intent:

  • Who sets it: integration author default vs end user at policy creation?
  • Fleet visibility: show_user: true (user-facing) or false (advanced/hidden)?
  • Template binding: referenced via {{variable}} in stream.yml.hbs or merged from the input template — not a hardcoded literal that bypasses Fleet?
  • Default value (confirm against legacy template)

Category C variables inherit from the input package during bundling with show_user: false by default (advanced options in Fleet) — no explicit redeclaration needed.

Explicitly ask whether any variable should be hardcoded in stream.yml.hbs. If yes, warn that Fleet may still show the input default in the UI and user edits will not apply. Document the choice in the migration plan.

Present the variable matrix (name → category → intent → default → show_user → template binding) and get confirmation before editing.

Gate E — Local development and tests
DecisionOptions / prompt
Local input source pathRelative path for _dev/test/config.yml (e.g. ../prometheus_input) if input is unpublished — affects elastic-package test only
Policy testsConfirm default (vars: ~) + overrides test; which vars to exercise in overrides? For multiple data streams sharing the same input type, policy expectations must list sibling streams as enabled: false
Policy expectation generationGenerate with --generate after plan approval, or defer until post-edit review?
Pipeline regression testsAny known edge cases (null and missing fields)?
System test trafficDoes the service need synthetic traffic for metrics to appear? Which hit assertions need extending?
Fleet variable spot-checkInstall built package in local stack and create a policy when possible — confirm Fleet-visible variables map to the rendered agent template and user edits take effect
Gate F — Collateral changes
DecisionOptions / prompt
Field mapping fixesAny long → double or similar type corrections? Compare integration and input package fields/ against collector output. Check for breaking changes if users may already have data indexed under the old type (mapping conflicts, reindex). Changelog: bugfix when the prior type was wrong and never worked; breaking-change when the correction is incompatible with existing indices.
Ingest pipeline re-testRe-test against real collector output after input package switch?
Dashboard migrationRe-export for target stack Lens version · Validate only · N/A
DocumentationManually document input dependency if {{ inputDocs }} is empty?
Package version bumpMinor bump typical for this migration?
Show full SKILL.md (820 more words)Show less
Gate G — Plan confirmation

Summarize the full plan:

  • Manifest changes (requires.input, policy_templates, format_version, version bump)
  • Per data stream: remove legacy input: key, streams[].package, dataset:, category A/B streams[].vars only, slim template contents with {{variable}} bindings
  • Variable intent matrix (categories A/B/C, Fleet visibility, template binding)
  • Test and changelog changes

Ask the developer to confirm the plan before making any edits.

Phase 3 — Execute migration

Apply changes in this order (see migrate_integration_required_input_dependency.md):

  1. manifest.yml — format_version, requires.input, policy_templates → package: <input>, bump version per Gate F
  2. data_stream/<name>/manifest.yml — set dataset:; replace legacy input: with streams[].package; add template_path: stream.yml.hbs; declare streams[].vars for categories A/B only; remove category C vars from local manifest
  3. agent/stream/stream.yml.hbs — keep only integration-owned fragments; remove all collector config merged from the input package
  4. _dev/test/config.yml — policy/system requires.source if Gate E applies
  5. Policy tests — test-default.yml, test-overrides.yml; generate expectations only after developer approval; confirm every Fleet-visible variable maps to the rendered agent template and user-set values take effect; confirm every Fleet-visible variable maps to the rendered agent template and user-set values take effect
  6. Ingest pipelines — re-run pipeline tests; add null and missing-field cases per Gate E/F
  7. System tests — extend hit assertions and traffic fixtures per Gate E
  8. changelog.yml — migration (enhancement), stack constraint, field fixes (bugfix) per Gate B/F
  9. Docs — elastic-package build to regenerate docs; then manual input section in _dev/build/docs/ if Gate F requires it

Do not bump unrelated packages or refactor outside migration scope.

Phase 4 — Verify

From the package directory:

bash
elastic-package build
elastic-package check
elastic-package test -v

If system tests need variants or traffic, run what the developer confirmed in Gate E.

Verify variables in Fleet

Per the how-to guide end-to-end verification step, install the built package in a local stack and create an agent policy when possible:

  1. Fleet UI ↔ template binding — every variable shown in Fleet should have a corresponding entry in the rendered agent template ({{variable}} reference or merged input-template binding). Flag any variable visible in the UI whose effective value is a hardcoded literal in stream.yml.hbs — user edits to that field will not apply.
  2. User overrides take effect — change a Fleet-visible variable in the policy UI and confirm the rendered agent policy updates (policy test overrides should cover this; Fleet spot-check when a variable is not exercised in tests).
  3. Defaults match intent — Fleet defaults for categories A/B match the integration manifest; category C inherited vars appear under advanced options unless explicitly redeclared.

Report:

  • Build/test pass/fail with relevant log excerpts
  • Policy output: data_stream.dataset and output_permissions index names (e.g. metrics-<dataset>-ep); confirm every Fleet-visible variable maps to the rendered agent template
  • Fleet variable spot-check results (UI fields shown, template bindings, user override behaviour) when a local stack was available
  • Dashboard spot-check on target stack when Gate F confirmed
  • Platform gaps still relevant after migration:
GapTracking
Variables visible in UI but ignored by templateelastic/integrations#19719
No integration-level opt-out for input variablesFuture enhancement
{{ inputDocs }} empty for streams[].packageelastic/elastic-package#3696
Dataset variable vs manifest dataset: fieldelastic/elastic-package#3713, elastic/elastic-package#3719, elastic/kibana#275312
Verification checklist

Mark each item done or N/A:

  • format_version ≥ 3.6.5 and requires.input pinned to a published input version
  • dataset: explicitly set on the data stream manifest when it must differ from the input default
  • Local stream.yml.hbs contains only integration-owned template fragments; integration-specific or overridden values use {{variable}} references, not hardcoded literals that bypass Fleet
  • Variable intent is explicit per Variable overrides: manifest vars for categories A/B, inherit input defaults when acceptable (category C) — avoid silent template hardcoding that leaves misleading values in the Fleet UI
  • Variable overrides use streams[].vars, not silent template hardcoding
  • Legacy input: key removed; streams[].package in place
  • _dev/test/config.yml declares requires for local input package during development
  • Policy tests (default + overrides): expectations confirm every Fleet-visible variable maps to the rendered agent template and user-set values take effect — review dataset, overridden defaults, sibling streams (enabled: false where required); spot-check in Fleet when policy tests do not cover a variable
  • System tests pass with realistic service traffic where needed
  • Pipeline regression tests for edge cases found during migration
  • Changelog entries: migration, stack constraint, field-mapping fixes (use breaking-change when mapping type updates affect existing indices)
  • Docs manually updated if {{ inputDocs }} is empty
  • Dashboards validated on the target stack version

Decision quick-reference

Suitable input package + stack 3.6+?     → Gate 0 must pass before migrating
Legacy var differs from input default?  → B: redeclare on streams[].vars
Var only in integration template?       → A: add var + {{variable}} in slim template
Input default matches legacy?           → C: inherit; remove from local template/manifest
Input-only var on input package?        → Classify in Gate D (often C or N/A)
Per-stream vs all-streams override?     → streams[].vars vs policy_templates[].inputs[].vars
Variable intent unclear?                → Who sets it, Fleet visibility, template binding — see how-to Variable overrides
Fleet UI shows var but template ignores?→ Hardcoding anti-pattern; use manifest override or document intentional
Dataset must stay stable?               → dataset: on data stream manifest
Unpublished input package?              → _dev/test/config.yml requires.source (tests only)
Bump input pins later?                  → elastic-package requires update

Anti-patterns

  • Starting migration without Gate 0 — no suitable input package or unsupported stack
  • Copying patterns from packages/elastic_package_registry on main while PR #19719 is unmerged
  • Migrating without confirming dataset name → silent index rename
  • Skipping output_permissions index name review in policy expectations
  • Hardcoding overrides in stream.yml.hbs without developer acknowledgement → Fleet UI mismatch; variable shown in UI but user edits ignored
  • Using hardcoded literals in stream.yml.hbs for values that should be Fleet-configurable — use {{variable}} and manifest vars instead
  • Using data_stream.dataset as a user variable when dataset: field suffices
  • Leaving legacy input: alongside new streams[].package
  • Running elastic-package test policy --generate and committing expectations without developer review
  • Leaving full collector config in local template after switching to streams[].package
  • Skipping ingest pipeline re-test after collector output shape changes
  • Assuming requires.source in test config satisfies elastic-package build (build still uses registry)

© elastic, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/migrate-required-input-dependency of elastic/integrations.

Open the folder on GitHubat commit a0dffc9

Compare with similar skills

Migrate Required Input Dependency 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.

Migrate Required Input Dependency compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Migrate Required Input Dependency this skillelastic/integrations336—~4.9kAutomated safety check: PassApache-2.0
Legacy Migration Plannertech-leads-club/agent-skills7k—~1.8kAutomated safety check: PassCC-BY-4.0
Reversible MigrationJuliusBrussee/caveman110k1 repos~196Automated safety check: PassApache-2.0
Database Migrationsaffaan-m/ECC275k4 repos~3kAutomated safety check: PassMIT
Database Migrationsaffaan-m/ECC275k1 repos~2.4kAutomated safety check: PassMIT
Legacy ModernizerJeffallan/claude-skills12k—~1.6kAutomated safety check: PassMIT

Similar skills

  • Legacy Migration Planner

    tech-leads-club/agent-skills

    Produces evidence-based migration plans using the Strangler Fig pattern for monolith splits, rewrites and framework upgrades, without implementing them.

    7k GitHub stars~1.8k tokensUpdated 17 days ago
    DevelopmentAuto-check passed
  • Reversible Migration

    JuliusBrussee/caveman

    Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and…

    110k GitHub starsUsed in 1 repo~196 tokens
    DevelopmentAuto-check passed
  • Safe, reversible database migration patterns: forward-only production changes, expand-contract zero-downtime renames, concurrent indexes, batched backfills, and per-tool workflows for PostgreSQL…

    275k GitHub starsUsed in 4 repos~3k tokens
    DatabasesAuto-check passed
  • Şema değişiklikleri, veri migration'ları, rollback'ler ve PostgreSQL, MySQL ve yaygın ORM'ler (Prisma, Drizzle, Django, TypeORM, golang-migrate) arasında sıfır kesinti deployment'ları için…

    275k GitHub starsUsed in 1 repo~2.4k tokens
    DatabasesAuto-check passed
  • Legacy Modernizer

    Jeffallan/claude-skills

    Plans incremental migrations of aging systems with the strangler fig pattern, using dependency maps, rollback plans, characterization tests and gradual traffic shifts.

    12k GitHub stars~1.6k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Guides migrating AngularJS 1.x apps to modern Angular: choosing a strategy, running a hybrid app with ngUpgrade, and converting controllers, directives and services.

    40k GitHub starsUsed in 11 repos~1.8k tokens
    DevelopmentAuto-check passed

More from elastic/integrations

  • Validate Integration Docs

    elastic/integrations

    Official

    Lint an Elastic integration package's markdown with vale and propose fixes.

    336 GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Questions about Migrate Required Input Dependency

What does Migrate Required Input Dependency do?

Migrate an Elastic integration package from a legacy inline agent template to integrations with required input dependencies (requires.input, streams[].package). Migrate Required Input Dependency is an agent skill from elastic/integrations, published by the product's own GitHub organization.package).

When should I use Migrate Required Input Dependency?

Migrate Required Input Dependency fits situations like: the user asks to migrate an integration to an input package; adopt requires.input; switch to streams[].package; mentions required input dependencies.

How do I install Migrate Required Input Dependency in Claude Code?

Run `npx skills add elastic/integrations --skill migrate-required-input-dependency -a claude-code`. Or copy the skill folder (.agents/skills/migrate-required-input-dependency in elastic/integrations) into .claude/skills/migrate-required-input-dependency in your project. Claude Code loads it when a task matches its description.

How do I install Migrate Required Input Dependency in Codex?

Run `npx skills add elastic/integrations --skill migrate-required-input-dependency -a codex`. Or copy the skill folder (.agents/skills/migrate-required-input-dependency in elastic/integrations) into .agents/skills/migrate-required-input-dependency in your project. Codex loads it when a task matches its description.

Can I use Migrate Required Input Dependency in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add elastic/integrations --skill migrate-required-input-dependency -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrate-required-input-dependency, .gemini/skills/migrate-required-input-dependency, .github/skills/migrate-required-input-dependency and .opencode/skills/migrate-required-input-dependency in your project.

What does Migrate Required Input Dependency need to run?

SKILL.md names no scripts, command-line tools or credentials: Migrate Required Input Dependency is instructions for the agent only. Compatibility (from SKILL.md): Requires `elastic-package` CLI. Designed for packages in elastic/integrations..

Does Migrate Required Input Dependency access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Migrate Required Input Dependency safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Migrate Required Input Dependency use?

Migrate Required Input Dependency is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Migrate Required Input Dependency use?

About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Migrate Required Input Dependency?

Skills that share tags, products or a category with Migrate Required Input Dependency: Legacy Migration Planner (tech-leads-club/agent-skills, 7k stars), Reversible Migration (JuliusBrussee/caveman, 110k stars), Database Migrations (affaan-m/ECC, 275k stars) and Database Migrations (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Migrate Required Input Dependency?

elastic (a GitHub organization, an official publisher) maintains it in elastic/integrations, which has 336 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.

Source: elastic/integrations on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.