--- name: review-ml-choices description: > Show stored project choices and re-enter the skill that can change one. Trigger when the user asks what we decided, what the current settings are, or to change a stored project choice. SKIP an explicit sync, export, or “a constraint changed” request — those load sync-ml-reports, export-ml-project, or frame-ml-problem directly. HOW TO USE: run `review choices`, show that board, then load one owning skill. Do not policy set from here. metadata: modelTier: small --- # Review ML Choices Show stored choices. A change loads the skill that already owns that decision. Do not write `.skore` or the journal from here. ## Human-facing prose Details: `setup-workspace` `references/human_facing_prose.md`. The board uses data-science labels: where reports go, executed notebooks, documentation site, git commits, who manages the environment, data analysis, and each filled framing cell (prediction goal, deployment, metric, fold count, and the others below). Do not put skill ids, `G-*` names, or the wrapper CLI in the question. ## Sequence 1. Run `python -m skore_skills review choices`. The JSON is the board. Do not rebuild which rows are offered. Do not run `frame show` or `frame clear` here. 2. **AskUserQuestion**, one pick. Say first, in 2–4 lines, what a change authorizes — re-entering that setup, not a silent flag flip — and echo the current values from the JSON. A file link is an addition, never the context. Options are **Keep these** plus one option per `changeable` row and one option per `framing` row. `read_only` and `not_offered` are context, not options. Use each row's `value`. For `not_offered`, say that row's `reason`. When `framing_reason` is set, say it and do not offer framing rows. "Who manages the environment" is whether this project manages it (`policy.env.managed`). An installed skill is not that value. Do not write a skill id on the board. 3. **Keep these** → stop. Do not load a skill. 4. One `changeable` row → load that row's `skill` and stop. The close names the decision being re-opened, not the skill id. Do not `policy set`. Do not run the child's commands from memory. - `skore_mode` → the user asked to change where reports go. - `notebooks_site` → notebooks and the documentation site. - `git_autocommit` → the user asked to change that choice. - `env_managed` → do not run `env add-skore` here. If the recorded destination is `hub` or `mlflow`, do not use `--mode local`. - `data_analysis` when `action` is `rerun` → do not write a JOURNAL `skipped` row. The written analysis stays; the change is to run it again. 5. One `framing` row → load `frame-ml-problem` naming that row's `id`. Do not blank the cell here. 6. A request to change a `read_only` row: say that row's `reason` and stop. Do not load `setup-workspace` to rename. Do not `policy set`. ## Stop conditions - Do not `policy set` any key. - Do not edit JOURNAL, including a Data understanding `skipped` row. - Do not load `sync-ml-reports` when `policy.skore_mode` is unset. - Do not `env add-skore`, `git commit`, or scaffold `src/`. - If the owning skill is not installed, show the value and skip the change in one line. Do not invent that skill's steps.