Metadata
| Status | done |
|---|---|
| Assigned | agent-831 |
| Agent identity | f51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e |
| Created | 2026-04-27T19:33:54.912799125+00:00 |
| Started | 2026-04-27T19:35:56.817122231+00:00 |
| Completed | 2026-04-27T19:50:57.155902625+00:00 |
| Tags | eval-scheduled |
| Eval score | 0.90 |
| └ blocking impact | 0.92 |
| └ completeness | 0.90 |
| └ coordination overhead | 0.90 |
| └ correctness | 0.92 |
| └ downstream usability | 0.85 |
| └ efficiency | 0.88 |
| └ intent fidelity | 0.84 |
| └ style adherence | 0.88 |
Description
Description
Per docs/config-ux-design.md §6.2, ship 'wg config lint [--global|--local|--merged]' as a read-only sibling of 'wg migrate config'. Walks the merged config and emits warnings for everything 'wg migrate config' would change, without rewriting. The 'what's stale?' exploration step before committing to migration.
Files to touch
- src/cli.rs — add ConfigSubcommand::Lint variant
- src/commands/config_cmd.rs — add fn lint_config(); reuse migrate.rs predicate logic
- tests/integration_canonical_config.rs — extend with lint tests
Validation
- Failing test first: lint_reports_deprecated_keys
- Failing test first: lint_reports_stale_models
- Failing test first: lint_does_not_modify_files
- cargo build + cargo test pass with no regressions
- Manual smoke: lint a config with deprecated/stale keys → reports them in human-readable form
Depends on
Required by
- (none)
Log
- 2026-04-27T19:35:56.817124977+00:00 Spawned by coordinator --executor claude --model opus
- 2026-04-27T19:36:15.523299029+00:00 Starting: orientating on existing migrate.rs predicates and config_cmd.rs structure
- 2026-04-27T19:50:29.071852879+00:00 Implementation done: Lint subcommand on ConfigSubcommand, lint_config()/LintTarget in config_cmd.rs reusing migrate_one with dry_run=true. 5 new tests in integration_canonical_config.rs all green (lint_reports_deprecated_keys, lint_reports_stale_models, lint_does_not_modify_files, lint_reports_renamed_keys, lint_clean_local_config_reports_clean). Manual smoke confirms human-readable output + JSON mode + clean config detection. Pre-existing test failures on main (config::tests::test_global_config_path, smoke_context.rs ResumeConfig) are unrelated.
- 2026-04-27T19:50:50.730072885+00:00 Committed: 67b46056d — pushed to remote
- 2026-04-27T19:50:57.155905851+00:00 Task pending eval (agent reported done; awaiting `.evaluate-*` to score)
- 2026-04-27T19:54:40.592705820+00:00 PendingEval → Done (evaluator passed; downstream unblocks)