Skip to content

migrate-scan skill has factual drift from CLI semantics #51

@plx

Description

@plx

Problem Statement

Severity: Medium

The migrate-scan skill has drifted from actual trop CLI semantics and currently gives incorrect migration guidance.

Two factual mismatches:

  1. It instructs agents to check for .trop.yaml, but the CLI config loader supports trop.local.yaml (alongside trop.yaml), not .trop.yaml.
  2. It states trop list --format json shows reservations "for this directory," but directory scoping only happens when --filter-path is explicitly provided.

This can cause agents to miss valid local config files and report unrelated reservations during migration workflows.

Specific Files / Lines Affected

  • plugins/trop/skills/migrate-scan/SKILL.md:56
    • Current text references trop.yaml or .trop.yaml.
  • plugins/trop/skills/migrate-scan/SKILL.md:57
    • Current text implies unfiltered trop list --format json is directory-scoped.

Reference implementation behavior:

  • trop/src/config/loader.rs:124-139
    • Loader checks trop.yaml and trop.local.yaml.
  • trop-cli/src/commands/list.rs:49-50
    • --filter-path is an optional argument.
  • trop-cli/src/commands/list.rs:81-96
    • Path filtering is only applied when filter_path is present.

Recommended Fix

Update plugins/trop/skills/migrate-scan/SKILL.md to match CLI behavior.

- - Look for `trop.yaml` or `.trop.yaml` in the project root
- - Run `trop list --format json` to see existing reservations for this directory
+ - Look for `trop.yaml` or `trop.local.yaml` in the project root
+ - Run `trop list --format json --filter-path "$PWD"` to see existing reservations for this directory
+ - Note: without `--filter-path`, `trop list` returns all reservations

Optional wording improvement for precision:

  • Replace "for this directory" with "for this directory/path prefix (when using --filter-path)".

Validation Strategy

Automated (recommended)

  1. Add/extend a CLI integration test for list behavior:
    • Seed reservations under two different paths.
    • Assert trop list --format json returns both paths.
    • Assert trop list --format json --filter-path <pathA> returns only pathA-scoped entries.
  2. Add a lightweight skill-content regression check (if skill validation tests exist) ensuring:
    • migrate-scan references trop.local.yaml.
    • migrate-scan uses --filter-path when claiming directory-scoped listing.

Manual verification

  1. Create reservations in two different directories.
  2. From directory A:
    • Run trop list --format json and confirm it includes entries outside A.
    • Run trop list --format json --filter-path "$PWD" and confirm it only includes A-scoped entries.
  3. Confirm updated migrate-scan text no longer mentions .trop.yaml and correctly documents --filter-path behavior.

🤖 Discovered by Codex · expanded by Codex · filed by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Non-blocking semantic, stability, completeness, or correctness.claude-code-pluginConcerns trop's claude code plugin.discovered-by-codexIssues discovered by codex.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions