Skip to Content
Skillsnav-features

nav-features

Shows every Navigator feature with its current state and toggles them, in the shared project config or in your personal override, without editing JSON by hand.

Triggers

Natural-language phrases that auto-invoke the skill:

  • “Show my features” / “navigator features” / “what features are enabled”
  • “Enable [feature]” / “disable [feature]” / “turn on/off [feature]”
  • “Configure navigator” / “my navigator settings”
  • “What can navigator do?”

Not invoked when you ask about your project’s features, mid-implementation, or at session start (that is nav-start).

What it does

  • Reads .agent/.nav-config.json (shared, committed) and .agent/.nav-config.local.json (personal, gitignored), merges them the same way the hook runtime does (DEFAULTS < shared < local), and renders one table: feature, status, one-line description.
  • enable <feature> / disable <feature> set the block’s enabled flag in the shared file.
  • enable|disable <feature> --local (v7.8.0) write the flag to the personal file instead. Rows the personal file decides show L in the status column, with a legend under the table. Toggling a shared value that your local file shadows prints a warning so the “nothing changed” moment has an explanation.
  • info <feature> prints the config key, default, version introduced and, when relevant, which file the current value comes from.
  • The first session after an install or version update shows the table once automatically.

Example

"Show my features"
v8.0.0 Features: ┌─────────────────────────┬────────┬───────────────────────────────────────────────┐ │ Feature │ Status │ Description │ ├─────────────────────────┼────────┼───────────────────────────────────────────────┤ │ task_mode │ [x] │ Auto-detects task complexity, defers to sk... │ │ loop_mode │ [ ] │ Autonomous loop execution (enable when nee... │ │ judge │ [ ] L │ Typed judge (TypeSafe Jev) behind the loop... │ │ adhd_mode │ [x] │ Per-person reply shaping (one next action,... │ │ ste_mode │ [ ] │ Per-person Simplified Technical English se... │ │ tier1 │ [ ] │ Zero-token answers for whitelisted prompts │ └─────────────────────────┴────────┴───────────────────────────────────────────────┘ L = personal override from .agent/.nav-config.local.json (not shared)
"Disable judge for me only"

Writes {"judge": {"enabled": false}} to .agent/.nav-config.local.json; the shared file and your teammates’ sessions are untouched. Typical when a contributor has no TypeSafe key in a repo where the judge is on.

Features you can toggle

Core: task_mode, tom_features, loop_mode, simplification, auto_update, knowledge_graph.

Hook runtime: dispatcher, tier1, stop_completion, reject_log, jit_memory, subagent_context, failure_diagnosis, judge, adhd_mode, ste_mode, config_guard, setup_hook, plus the *_hook toggles (compact_hook, workflow_enforcer_hook, read_guard_hook, workflow_state_hook, task_graph_sync_hook, profile_sync_hook).

tier1, stop_completion and judge ship off; reject_log ships on (it observes, never blocks). Enabling judge prints where to put the API key; it never goes in either config file.

adhd_mode and ste_mode are the personal rows: “enable adhd_mode” or “enable ste_mode” writes your switch under ~/.config/navigator, not the repo (same as saying adhd mode on or ste mode on); --local instead pins <key>_mode.on in .nav-config.local.json, and a repo pin wins over the personal switch. See Reply Modes.

Direct invocation

python3 "$PLUGIN_DIR/skills/nav-features/functions/feature_manager.py" show python3 "$PLUGIN_DIR/skills/nav-features/functions/feature_manager.py" enable loop_mode python3 "$PLUGIN_DIR/skills/nav-features/functions/feature_manager.py" disable judge --local python3 "$PLUGIN_DIR/skills/nav-features/functions/feature_manager.py" info tier1

Changes apply on the next session start; hook toggles may need a Claude Code restart.