roadmap: #284 filed

This commit is contained in:
Yeachan-Heo 2026-04-26 09:24:27 +00:00
parent 1a7b8ea893
commit 92a598e7e6

View File

@ -17203,3 +17203,15 @@ Gap. An operator who wants to raise or lower the compaction threshold for a proj
Required fix shape: (a) add `auto_compaction_threshold: Option<u32>` to `RuntimeFeatureConfig` (`:56` of `config.rs`); (b) populate it from a `settings.json`/`.clawrc` key (e.g., `autoCompactionInputTokensThreshold`) in the config loader alongside existing feature flags; (c) add a top-level `--compaction-threshold <N>` CLI flag in the global arg parser, parsed into `CliArgs`; (d) in `build_runtime_with_plugin_state`, call `.with_auto_compaction_input_tokens_threshold(...)` with precedence: CLI flag > config file > env var > compiled default; (e) surface the resolved threshold in `claw doctor --output-format json` under a `compaction` block so operators can inspect which source won; (f) validate in `ConfigValidator` that the threshold is a positive integer and warn on values under 10 000 (probable misconfiguration). Acceptance: `claw -p "x" --compaction-threshold 200000` uses 200 000; a `settings.json` with `"autoCompactionInputTokensThreshold": 150000` uses 150 000; env var still overrides config but not CLI; `claw doctor` shows `compaction.threshold_source` as one of `cli`, `config`, `env`, `default`.
**Status:** Open. No source code changed. Filed 2026-04-26 18:00 KST. Branch: feat/jobdori-168c-emission-routing. HEAD: `b05561c` (post-rebase onto origin/main, #282 already present). Cluster delta: extends `silent-fallback-family` (threshold is silently inherited from env-only path, config/CLI lanes absent); builder method `with_auto_compaction_input_tokens_threshold` present but unreachable from CLI path. Concrete delta this cycle: ROADMAP-only pinpoint appended after static audit confirmed zero calls to `with_auto_compaction_input_tokens_threshold` in `main.rs`, no compaction field in `RuntimeFeatureConfig`, and env-var as the sole runtime override. Concurrent-dogfood-rebase parity will be confirmed local==origin==fork after push.
## Pinpoint #284`/ultraplan` is documented as deep multi-step planning but the REPL implementation only prints a static three-line placeholder, so users complaining it is difficult to use are hitting a contract/behavior void rather than a UX copy issue
Dogfooded 2026-04-26 18:24 KST after Sigrid reported that users are complaining `ultraplan` is difficult to use. Static audit found the documented contract in `USAGE.md`: `/ultraplan [task]` is described as "Deep planning with multi-step reasoning" and promises "a structured plan with numbered steps, reasoning for each step, and expected outcomes." The actual REPL dispatch path in `rust/crates/rusty-claude-cli/src/main.rs` routes `SlashCommand::Ultraplan { task }` to `self.run_ultraplan(task.as_deref())`, and `run_ultraplan` only executes `println!("{}", format_ultraplan_report(task));`. `format_ultraplan_report` returns a static three-line report: `Task`, `Action break work into a multi-step execution plan`, and `Output plan should cover goals, risks, sequencing, verification, and rollback`. No internal prompt is run, no planning tool is invoked, no progress reporter is attached, no persisted plan artifact is created, and no numbered plan is produced.
Concrete failure mode: a user runs `/ultraplan refactor auth`, expecting an actual deep plan because docs and help say so, but receives meta-instructions about what a plan should contain. The command looks successful yet produces no usable plan. This explains "difficult to use" complaints better than a wording issue: the command is discoverable and documented, but its behavior is a placeholder masquerading as a product feature.
Gap. There is no product contract boundary separating implemented slash commands from scaffold/stub commands for `/ultraplan`. `STUB_COMMANDS` filters some unimplemented commands from help/completion, but `/ultraplan` is not filtered because it has a handler; the handler is still functionally stubbed. This is distinct from #280 hook-envelope opacity and #283 hidden env-only config: #284 is a user-facing slash-command promise vs runtime behavior gap.
Required fix shape: choose one of two explicit paths. Product path: implement `/ultraplan` by calling the internal prompt/runtime with an `InternalPromptProgressReporter::ultraplan`, persist the generated plan in session state, include numbered steps/risks/verification/rollback, and support JSON/resume behavior if appropriate. Honesty path: demote `/ultraplan` to a clearly labeled placeholder/stub, remove the "deep planning" promise from USAGE/help, and point users to the actual planning workflow. Acceptance: running `/ultraplan <task>` either returns a real structured plan or clearly refuses as not implemented; it must not succeed with a static meta-template.
**Status:** Open. No source code changed. Filed 2026-04-26 18:25 KST. Branch: feat/jobdori-168c-emission-routing. HEAD: `1a7b8ea` before filing. Cluster delta: slash-command-contract-vs-runtime +1; concrete user-signal source: Sigrid report of `ultraplan` usability complaints. Concrete delta this cycle: ROADMAP-only follow-up appended from docs/code audit.