docs: add the plan for the compiled parser and config layer - #800
Conversation
|
Warning Review limit reached
Next review available in: 49 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Three PRs in, the plan for this work lived in PR descriptions and in my head. This writes it down through to the end, including the config layer that has not been started, so the shape is reviewable before more of it gets built. Checkboxes rather than prose, so the file doubles as status: an unchecked box means the thing does not exist. It also records the known usage-lib divergences as a to-do list, the perf targets that gate mise integration, and the finding that mise, hk, pitchfork, and fnox have each rebuilt the same settings model — with the hand-written CLI binding being the part all four got subtly wrong. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8e1978a to
96b60f9
Compare
Greptile SummaryAdds an end-to-end roadmap for the compiled argv parser and proposed shared configuration layer.
Confidence Score: 5/5The documentation-only pull request appears safe to merge. The change introduces no runtime or build behavior, and no concrete inaccurate or actionable documentation defect remains. Important Files Changed
Reviews (1): Last reviewed commit: "docs: add the plan for the compiled pars..." | Re-trigger Greptile |
Instruction counts
No instruction-count regression above 1%. Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run. Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.
|
PLAN.md— the plan for this work written down end to end, including the parts that do not exist yet.Three PRs in (#797, #798, #799), the plan lived in PR descriptions and in my head. That is fine for one PR and not for a dozen, especially for the config layer, where the shape is worth arguing about before it gets built.
Checkboxes rather than prose, so the file doubles as status: an unchecked box means the thing does not exist. Ticking them as things land keeps it honest, and makes it obvious when a branch of the plan has stalled.
What it covers
takagainst a shadow CLI generated from mise's own committed spec. Explicitly: if the targets miss by a wide margin, write that down and stop. Nothing touches mise before this.lib/src/parse.rsand the corpus already knows how to verify a fix.The config section is the part worth reviewing
mise, hk, pitchfork, and fnox have each independently built the same settings model — a TOML registry,
build.rscodegen, a typedSettingsplus a meta map, project-over-global-over-defaults layering — and agree on ~80% of the vocabulary. The differences are mostly drift rather than intent:sources.clientries nothing reads, pitchfork's--helpdocuments a CLI layer it does not have (copied by hand into its committed spec), and fnox resolvesage_key_filethrough a hardcoded five-way chain because its settings and config files are separate systems.The proposal is to declare props in code, lower them into the spec's
config { prop ... }block — which exists today and no CLI emits or consumes — and generate the CLI binding instead of hand-writing it. That block needs extending first (deprecated,enum,optional,aliases,merge, scope, per-source lists), which is spec-first per the canonicality rule.Three open questions are listed rather than decided, including whether config belongs in this repo at all.
AI-assisted — Tool: Claude Code; model: anthropic/claude-fable-5; version: unavailable.
Note
Low Risk
Documentation-only addition with no runtime, build, or API changes.
Overview
Introduces
PLAN.mdas the canonical, in-repo plan for the compiled argv parser work and the later shared config layer—replacing plan text that lived only in PR descriptions.The doc uses unchecked checkboxes as status (unchecked = not built yet) and covers motivation (mise/clap cost), architecture (spec → usage-derive / usage-argv / usage-lib), milestones (done vs derive vs gate vs adoption), perf gate targets, corpus gaps, known usage-lib divergences as a fix list, and a config design sketch (unify mise/hk/pitchfork/fnox settings) with open questions—not implementation.
Reviewed by Cursor Bugbot for commit 96b60f9. Bugbot is set up for automated code reviews on this repo. Configure here.