Command
/whats-new
Review and enable Claude Octopus features added since you installed
One command from octo.
shell
$ npx -y skills add nyldn/claude-octopus --agent claude-codeShips with octo. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/whats-new
Context preview
What this command does when you run it.
Review and enable Claude Octopus features added since you installed
Stats
Stars3,900
Forks367
LanguageShell
LicenseMIT
What is in the file
Measured from the whats-new.md below.
- 577 words, about a 3 minute read.
- Organized into 10 sections.
- Includes 3 worked examples.
- Ships with 50 other commands in this plugin.
Command definition
whats-new.md
--- command: whats-new description: "Review and enable Claude Octopus features added since you installed" allowed-tools: Bash, Read --- # What's New (/octo:whats-new) **Your first output line MUST be:** `🐙 Octopus What's New` Show the settings added since the user's install point that still need a policy choice, ask each as its own question, and record the answers so they are never asked twice. ## Why this command exists Features added after a user installs are invisible to them. The SessionStart advisory asks for these choices automatically on the first session after an upgrade, but that prompt is capped and suppressed in non-interactive sessions, so this command is how the user reaches the same questions deliberately, and how they revisit a choice they already made. Only features declaring `decision: required` in the manifest appear here. A feature that ships with a sensible default and no real fork in behaviour is not a question and must not be raised as one. ## EXECUTION CONTRACT (Mandatory) ### Step 1 — Load the outstanding questions ```bash source "${CLAUDE_PLUGIN_ROOT:-.}/scripts/lib/features.sh" 2>/dev/null \ || source ./scripts/lib/features.sh octo_features_available || { echo "Feature disclosure unavailable (jq missing, or manifest/ledger unreadable)." exit 0 } # Tab-separated. Q<TAB>id<TAB>question, then C<TAB>id<TAB>value<TAB>label<TAB>description. octo_features_prompt_manifest # Features blocked on a missing prerequisite, listed but not askable. for id in $(octo_features_offerable_ids); do prereq="$(octo_features_prereq "$id")" octo_features_prereq_ok "$prereq" || printf 'BLOCKED\t%s\t%s\n' "$id" "$prereq" done ``` If nothing is returned, say `Nothing new to decide since your last upgrade.` and stop. Do not pad the output or invent questions. ### Step 2 — Ask Call `AskUserQuestion` with one question per `Q` line, using that feature's question text and its own `C` choices verbatim. Do not invent options, do not reword a policy choice into a yes/no, and keep each choice description's cost note, because that is usually what the answer turns on. `AskUserQuestion` takes at most 4 questions per call and 4 options per question. If there are more than 4 outstanding features, ask the first four, record them, then ask the rest in a second call. `BLOCKED` features are shown with their missing prerequisite (for example `requires the Codex CLI`) and are NOT asked. Show them rather than hiding them, so the user learns the prerequisite exists. WAIT for the answers. Apply nothing the user did not pick. ### Step 3 — Record every answer ```bash octo_features_record "<id>" "<chosen value>" "<current plugin version>" ``` Record all of them, including any that picks the feature's default. Recording is what stops the question being asked again; an unrecorded answer means the user is asked the same thing after the next upgrade. Read the current plugin version from `.claude-plugin/plugin.json` (`.version`). Never hardcode it. A recorded choice takes effect immediately for this repository. To pin one for every shell, tell the user to export the feature's key with the chosen value: ```bash echo 'export <KEY>=<value>' >> ~/.zshrc # or ~/.bashrc ``` ### Step 4 — Confirm Print what is now set, one line per feature, plus anything still blocked on a missing prerequisite. End on the substantive state, no closer. ## Notes - Never write to `state.json` with anything other than `octo_features_record` and `octo_features_seed_watermark`. Hand-rolled `jq` edits here have raced the SessionStart hook's own write in the past. - Do not re-ask a feature the ledger already records a choice for. The offer list already excludes them; do not work around it. The user asking this command directly is the supported way to revisit a settled choice. - This command never changes model routing, permissions, or quality gates by itself. It records consent; the runtime reads consent.
