Skip to content

learn.py MOVES dict is missing five verbs — devague explain deviate/summary/plan all fail #98

Description

@OriNachum

Found while dogfooding the seven-leg flow on #97. The MOVES dict in
devague/cli/_commands/learn.py holds 15 entries, but the CLI registers 20
verbs. Five are absent: deviate, summary, plan, learn, and explain.

MOVES drives two surfaces, so the gap is user-visible in both:

  • devague explain <move> reads it directly, so three shipped verbs 404:

    $ devague explain deviate
    error: unknown move: deviate

    (Same for explain summary and explain plan. The hint then lists only
    the 15 known moves, which reads as "deviate isn't a move" rather than
    "deviate is missing from a lookup table".)

  • bare devague learn renders its Moves: block by iterating the same
    dict, so the taught inventory silently omits the entire execution seam —
    the deviate and summary verbs that 0.18.0 shipped.

This is pre-existing, not a regression: deviate/summary landed in 0.18.0
and plan well before that, and neither shipped a MOVES row. The #97 branch
adds a lapse row for its own new verb and deliberately leaves this alone, so
the fix stays reviewable on its own.

Suggested fix: add the five missing rows, then pin the invariant with a test
that walks the registered subparsers and asserts every verb has a MOVES
entry — otherwise the next verb repeats this.

  • devague (Claude)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions