The CLI demonstrates the standard command layout: a thin entry point, one
file per public command, split subcommand modules when a command grows,
command-level help, and version reporting. The primary executable is
dev-std; wn-dev-std remains a compatibility
alias. Text output, JSON output, and help output leave one blank padding
line before the first content line and one blank padding line after the
final content line before returning to the shell prompt.
Runs repository audit checks for release signoff. Package roots run their
configured profile checks. Workspace roots aggregate explicitly registered
member policy boundaries. The default scope is all, unless a
package config declares enabled_scopes; callers may request
narrower scopes such as
docs.plans, docs.adrs,
docs.domains, docs.requirements,
docs.build, docs.test_strategy for the
canonical test strategy document,
docs.surfaces, docs.traceability,
docs.links, docs.artifacts,
docs.vendors, docs.release, and
tests. Text and JSON
output are supported. --check-upstream-version performs an
optional PyPI freshness check and reports only a warning.
Helpers for compliant ADR documents. adr list lists ADRs
from the discovered project root, adr show renders one ADR
by id, and adr create writes a canonical ADR source file.
Text output is the default. adr list starts with the
discovered root, an indented status summary, status sections, and record
entries with colored TTY status badges and record ids. ADR titles and
paths render on indented continuation lines to keep terminal rows narrow.
JSON output follows the same root, marker, path, metadata, and body
conventions used by plan and log read commands.
Compatibility alias for audit. Existing repositories and CI
jobs may keep using this command while new signoff wiring should call
audit.
Helpers for generated governance documentation.
governance html projects compliant plan, log, ADR, and
requirement Markdown sources into browseable HTML pages with standard
data-dev-std-gov-* attributes, an index page, metadata
tables, generated cross-links for known refs, and repeatable
--css stylesheet hooks.
governance resolve validates or rewrites
data-dev-std-gov-ref hooks in downstream HTML docs so they
point at generated governance pages. gov is the short
command alias.
Helpers for compliant plan documents. plan list lists plans
from the discovered project root, grouping the text view into
current, dependency-waiting, parked/pending, and blocked sections with TTY
color unless NO_COLOR is set. Section headings have divider
rules, official states render as background-color badges in TTY output,
plan ids render as black text on white, and step ids use a different
treatment so dependency chains and step lists are easier to scan. The text
view starts with the discovered root, then a blank line, then an indented
summary block with one state count per line. Each plan item shows the plan
id and official state, created date, nested latest attached log detail
with its step id, supporting path, nested dependency detail, grouped step
lists with colored headings, step titles on indented continuation lines,
nested step-dependency bullets, and explicit exit-criteria status counts.
JSON output remains the stable machine-readable form. plan show
renders one plan by id, plan create writes a new canonical plan,
plan status updates the plan status, and
plan step lists, adds, or updates structured step state. The
command also reports structured exit criteria from
[[exit_criteria]] metadata so users and agents can determine
whether a plan is ready for closeout. Newly created plans include a default
pending exit criterion. Dedicated exit-criterion mutation commands are a
future slice. The command discovers the package root by walking upward to
dev-std.toml, legacy wn-dev-std.toml, a
configured pyproject.toml, or a .git fallback
boundary.
Helpers for compliant requirement documents.
requirement list lists requirements from the discovered
project root, requirement show renders one requirement by
id, and requirement create writes a canonical requirement
source file. Text output is the default. requirement list
starts with the discovered root, an indented status summary, status
sections, and record entries with colored TTY status badges and record
ids. Requirement titles and paths render on indented continuation lines
to keep terminal rows narrow. JSON output follows the same root, marker,
path, metadata, and body conventions used by plan and log read commands.
Read commands fail when the governance catalog has metadata, traceability,
or rogue legacy-document failures.
Helpers for compliant plan work logs. Bare log list lists
logs across all plans, log list <plan-id> filters to one
plan, log show renders one log by globally unique log id, and
log create <plan-id> <step-id>
writes a new timestamped log entry attached to a specific plan step after
the same root discovery and catalog validation used by plan.
Log creation accepts either --body for short text or
--body-file for longer Markdown that should avoid shell
command-line length, newline, and quoting limits. Agents should prefer
--body-file whenever the log body is more than a short
one-line note. Bare log list groups text output by plan and
then step; filtered log list <plan-id> groups by step. Both
views include an indented summary, nested log entries, wrapped path fields,
and TTY color for plan, step, and log ids unless NO_COLOR is set.
log show renders log metadata as a compact nested block before
the body. JSON output remains the stable machine-readable form.
Prints a standard profile summary as text or JSON. The default profile is
python-package; --profile cpp-library renders
the C++ native profile, --profile csharp-app renders the
C# profile, --profile javascript-web-app renders the
no-build browser JavaScript/CSS profile, and
--profile python-js-app renders the Python-served browser app
profile. --profile zephyr-firmware renders the Zephyr
firmware profile.
Reports the package version, Python version, and major dependency
versions. --check-upstream checks PyPI for a newer
released wn-dev-std version and reports only a warning.