Skip to content

Clarify baseline command: always reset to current state #37

@jakekaplan

Description

@jakekaplan

Problem

baseline and relax are confusing. Their names don't clearly communicate their behavior:

  • baseline currently does "ratcheting" - it tries to be smart about tightening limits over time, rejecting growth by default
  • relax is a quick fix that adds a buffer to failing files

The ratcheting behavior in baseline is clever, but the command name suggests something simpler: "set the baseline to the current state."

Proposal

Change baseline so its primary purpose is "always reset to the current state of the world":

  • Initialization: loq baseline should be the natural first command when adopting loq on an existing codebase
  • Re-baselining: When you've made deliberate changes and want to accept the new reality, loq baseline should capture that

The current ratcheting logic (reject growth, only tighten) is useful but belongs elsewhere or behind a flag.

Questions to resolve

  1. What happens to the ratcheting functionality? Options:

    • Move to a separate loq ratchet command
    • Make it a flag like --ratchet or --no-growth
    • Remove it entirely (YAGNI?)
  2. How does this affect relax? If baseline becomes "reset to current state", relax might be redundant or could be simplified to just "add buffer to current limits"

  3. Should baseline create config if it doesn't exist? (currently requires existing config, unlike relax)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions