migrate

A command that previews tasks, bugs, or decisions found in Markdown files and can import selected items into a draft task store.

In plain words
What is it for?
Use it to scan project Markdown files, inspect proposed imports, and create drafts for later sorting and acceptance.
Why use it?
It lets you move existing lists into a structured system without changing the original files, so you can review the results before applying them.

Command

Part of the goal-flight plugin — 10 skills, 17 commands, 3 hooks shipped together

Install

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.

agentmods
npx agentmods add commands/simonrowland/goal-flight/migrate
Clone the repo
git clone --depth 1 https://github.com/simonrowland/goal-flight

Or install goal-flight, the plugin that ships this one along with the rest of its 10 skills, 17 commands, 3 hooks.

Per session 13 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 510 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00013 $0.00510
Opus 5 $0.00006 $0.00255
Sonnet 5 $0.00003 $0.00102
Haiku 4.5 $0.00001 $0.00051

Measured 3d ago against content hash 108b057d3fb8, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

migrate 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 3d 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.

commands/migrate.md · 48 lines

How it starts

The opening of the file, as written. The whole thing — 48 lines — stays where its author put it; the contents beside it link to each section on GitHub.

migrate

Use when an existing project already has markdown task, bug, or issue lists and the controller needs a guided, non-destructive entry point into the task store.

Flow

  1. Pick one or more project-root-relative markdown globs: python3 goalflight_task.py migrate --source "docs/**/*.md".
  2. Read the preview. It runs harvest in dry-run JSON mode and prints candidates grouped by source file. --dry-run --json returns the same harvest-shaped JSON preview for tooling. No source file is deleted, moved, or edited.
  3. Apply only when the preview is right: python3 goalflight_task.py migrate --source "docs/**/*.md" --apply.
  4. Curate the created drafts: python3 goalflight_task.py list --tag harvest, then lane, done, review, and accept as appropriate.

Options:

  • --source <glob> may be repeated. Globs are project-root-relative.
  • --kind task|bug|decision sets the default kind for source-list items.
  • --lane <lane> stamps created source-list drafts; default deferred.
  • --source-limit N caps files consumed per glob before reporting dropped matches; raise it for intentionally large imports.
  • --no-history passes through to harvest and skips RESUME-NOTES history backfill.
  • --all-bullets includes bullets outside task/backlog/action/TODO/open/next sections; default preview filters those prose sections out.
  • --no-implicit-resume passes through to harvest. --source imports are source-only by default and do not create implicit RESUME-NOTES candidates.
  • --dry-run --json prints the harvest-shaped JSON preview without applying.
  • --apply creates draft items after printing the same preview.

Caveats

Source-row dedup is position-stable, not edit-stable. Re-running the same unchanged source skips rows by source file and row/table position, but editing a source so rows shift or move can re-import those rows as new drafts. Preview before --apply; curation and duplicate-by-title checks catch most obvious repeats.

Read the full file on GitHub · 48 lines

Changes

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.

  1. 3d ago First seen · 48 lines · 13 tokens per session scan A 108b057d3fb8

Subscribe to this mod's changes

migrate is a command published in the GitHub repository simonrowland/goal-flight (20 stars, last pushed 5d ago), licensed MIT. It adds 13 tokens to every session and 510 once invoked, about $0.0001 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-30.