3.2 CLI Reference Audit — Meta-Issues

This file enumerates every observed mismatch between the live spec-kitty Typer surface, its rendered --help text, and the documentation that references it. Rows here are the canonical artefact for FR-010 of mission spec-kitty-3-2-docs-01KS4KSZ. They are not runtime tickets; each row is a candidate for a follow-up code or doc fix outside this mission, which is constrained by C-002 (no Typer code edits) and C-006 (all CLI/help mismatches land here).

Schema

Each row follows the MetaIssueEntry shape defined in kitty-specs/spec-kitty-3-2-docs-01KS4KSZ/data-model.md.

Columns:

Column Meaning
command_path Space-joined command path as exposed by Typer (e.g., spec-kitty agent decision open). Use PATH NO LONGER VISIBLE for stale entries that no longer resolve.
source_file Repo-relative source file that defines the command, or n/a for purely doc-side stale references.
source_function The Python function name that registers / implements the command, or TBD when introspection cannot pinpoint it.
observed_help Verbatim help summary surfaced by spec-kitty … --help at audit time.
observed_behavior_or_test_evidence Concrete evidence: live behavior, test name, or referencing doc path.
problem_type One of seven canonical values (see legend below).
recommended_fix Short description of the corrective action (code change, doc rewrite, deprecation cleanup).
owner_area Codebase area best positioned to take the fix: agent, mission, core, docs, tracker, doctor, etc.
blocking_status blocking, non_blocking, or resolved (see legend).

problem_type legend

  • inaccurate — the help text describes behaviour that differs from what the command actually does.
  • incomplete — the help text omits options, defaults, or side effects that operators need to know.
  • stale — the help text or documentation references a command/flag that no longer exists.
  • missing — a documented command path is not surfaced by the live Typer tree at all.
  • confusing — the surface is technically correct but contradicts itself (e.g., labelled "Internal" while top-level visible).
  • version_leakage — the help text or doc surfaces version-specific guidance that should be archived or migrated.

(MetaIssueEntry.ProblemType only enumerates six members today; if a future audit needs a seventh value, extend the schema in data-model.md first.)

blocking_status legend

  • blocking — must be resolved before the 3.2 publication checklist closes.
  • non_blocking — acknowledged, slated for a later mission.
  • resolved — fix landed and verified; row retained for traceability.

Seed rows (from cli-audit-3-2.md)

command_path source_file source_function observed_help observed_behavior_or_test_evidence problem_type recommended_fix owner_area blocking_status
spec-kitty implement src/specify_cli/cli/commands/implement.py implement Internal - allocate or reuse the lane worktree for a work package. Command is registered on the top-level spec-kitty Typer app (no hidden=True); docs/api/cli-commands.md lists it among user-facing commands; tutorials such as docs/guides/missions-overview.md instruct operators to invoke spec-kitty implement WP## directly. confusing Either drop the "Internal -" prefix from the help text to match the user-facing exposure, or mark the command hidden=True and re-route users through spec-kitty agent action implement exclusively. Decide and align help + docs together. core blocking
spec-kitty agent context update-context src/specify_cli/cli/commands/agent/context.py (removed) PATH NO LONGER VISIBLE src/specify_cli/cli/commands/agent/context.py:131 carries the comment # update-context command removed — agent_context.py was deleted in WP10.; the live tree only exposes spec-kitty agent context resolve. Stale references remain in docs/api/agent-subcommands.md, docs/guides/missions-overview.md, and docs/guides/claude-code-workflow.md. stale Remove every doc reference to agent context update-context and replace with agent context resolve where the intent matches; add a migration note for operators following older tutorials. docs blocking
spec-kitty agent workflow implement src/specify_cli/cli/commands/agent/__init__.py (Typer wiring), src/specify_cli/cli/commands/agent/workflow.py implement (registered under the action Typer name via app.add_typer(workflow.app, name="action", ...)) PATH NO LONGER VISIBLE agent/__init__.py mounts workflow.app as agent action, so the canonical path is spec-kitty agent action implement. docs/guides/implement-work-package.md and several skill prompts still instruct operators to run spec-kitty agent workflow implement. stale Rewrite the affected how-to and skill prompts to use spec-kitty agent action implement; consider a deprecation alias if external automation relies on the old name. docs blocking
spec-kitty agent feature, spec-kitty agent workflow src/specify_cli/cli/commands/agent/__init__.py n/a (no Typer registration) PATH NO LONGER VISIBLE docs/api/agent-subcommands.md (legacy hand-authored copy) described agent feature and agent workflow as compatibility aliases, but neither name is mounted on agent.app today. Only mission, tasks, context, release, action, status, tests, decision, retrospect, and the hidden profile alias are wired. stale Drop the legacy alias copy from documentation; if alias retention is desired, add an explicit Typer registration with hidden=True and document it. docs non_blocking
spec-kitty mission switch, spec-kitty mission-type switch src/specify_cli/cli/commands/mission_type.py switch_cmd (registered via @app.command("switch", deprecated=True); mission.py re-exports mission_type.app) [REMOVED] Switch active mission - this command was removed in v0.8.0. Both paths render help (--help exits 0), but executing the command itself raises typer.Exit(1) after printing an error. Audit page (cli-audit-3-2.md) flagged the help-vs-behaviour mismatch. confusing Either fully remove the deprecated command (so --help 404s like other removed paths) or rewrite the help summary to match the removed-but-still-discoverable behaviour. Update tutorials that historically used mission switch. mission non_blocking
spec-kitty agent profile vs spec-kitty agent profile list src/specify_cli/cli/commands/agent/__init__.py (mounts profiles_cmd.app under profile with hidden=True), src/specify_cli/cli/commands/profiles_cmd.py list_profiles Parent group spec-kitty agent profile is hidden (hidden=True); child spec-kitty agent profile list is visible because profiles_cmd.app does not propagate hidden status. The visible child appears in completion and --help walking even though its parent group is suppressed. The audit captured the mismatch as a UX cliff: users can hit the child without seeing the parent help banner. confusing Pick one path: (a) surface the parent group at top-level by adding spec-kitty profiles list (consistent with profiles_cmd.app), or (b) hide the child too so the asymmetry disappears. Update reference docs once chosen. agent non_blocking

How to add new rows

When the freshness checker (or an operator running spec-kitty … --help interactively) finds another mismatch, append a new row to the table above with the same nine columns. Cite a file path with a line range or a test name in observed_behavior_or_test_evidence so reviewers can verify without re-running the live tree. Rows whose problem_type is stale and whose docs have been removed should be flipped to blocking_status: resolved rather than deleted, to preserve the audit trail.