Problem Statement
Severity: Medium
The migrate-scan skill has drifted from actual trop CLI semantics and currently gives incorrect migration guidance.
Two factual mismatches:
- It instructs agents to check for
.trop.yaml, but the CLI config loader supports trop.local.yaml (alongside trop.yaml), not .trop.yaml.
- 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)
- 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.
- 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
- Create reservations in two different directories.
- 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.
- 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
Problem Statement
Severity: Medium
The
migrate-scanskill has drifted from actualtropCLI semantics and currently gives incorrect migration guidance.Two factual mismatches:
.trop.yaml, but the CLI config loader supportstrop.local.yaml(alongsidetrop.yaml), not.trop.yaml.trop list --format jsonshows reservations "for this directory," but directory scoping only happens when--filter-pathis 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:56trop.yamlor.trop.yaml.plugins/trop/skills/migrate-scan/SKILL.md:57trop list --format jsonis directory-scoped.Reference implementation behavior:
trop/src/config/loader.rs:124-139trop.yamlandtrop.local.yaml.trop-cli/src/commands/list.rs:49-50--filter-pathis an optional argument.trop-cli/src/commands/list.rs:81-96filter_pathis present.Recommended Fix
Update
plugins/trop/skills/migrate-scan/SKILL.mdto match CLI behavior.Optional wording improvement for precision:
--filter-path)".Validation Strategy
Automated (recommended)
listbehavior:trop list --format jsonreturns both paths.trop list --format json --filter-path <pathA>returns only pathA-scoped entries.migrate-scanreferencestrop.local.yaml.migrate-scanuses--filter-pathwhen claiming directory-scoped listing.Manual verification
trop list --format jsonand confirm it includes entries outside A.trop list --format json --filter-path "$PWD"and confirm it only includes A-scoped entries.migrate-scantext no longer mentions.trop.yamland correctly documents--filter-pathbehavior.🤖 Discovered by Codex · expanded by Codex · filed by Claude Code