Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 2.83 KB

File metadata and controls

84 lines (63 loc) · 2.83 KB
name spec-forge-cli
description Use when the task requires operating or validating the package-local `spec-forge-cli` Rust command surface for initializing workspaces, resolving interactions, mutating YAML artifacts, recording approvals, selecting focus batches, checking gates, advancing stages, or validating UX contracts.

spec-forge-cli

Description

spec-forge-cli is the package-local Rust CLI surface for the spec-forge workflow family. It is the authoritative runtime for initializing workspaces, resolving interactions, applying answers, inspecting and mutating persisted YAML artifacts, recording approvals, selecting focus batches, checking gates, advancing stages, validating UX contracts, and returning help in either human-readable or structured formats.

Prerequisites

  • Rust 1.85 or newer for source builds.
  • A checked-out spec-forge repository when running the development command.
  • Node.js and npm only when using the release automation harness.

Invocation

  • Shipped binary: spec-forge-cli
  • Dev invocation: cargo run --
  • Release binary: target/release/spec-forge-cli

Command Surface

  • init
  • resolve
  • apply
  • focus
  • artifact get
  • artifact put
  • artifact merge
  • approve
  • gate check
  • stage advance
  • ux validate
  • help

Help Contract

  • Non-leaf default behavior: human-readable help on stdout.
  • --help: human-readable help on stdout.
  • help [COMMAND_PATH ...]: structured help in yaml, json, or toml.
  • Leaf missing required input: structured error on stderr with a nonzero exit code.

Input

Inputs are command-specific flags and inline YAML values. Most commands accept --target to resolve a project directory, .spec-forge collection, or spec workspace, and --spec-id to explicitly select the active spec when workspace state is ambiguous.

Output

Structured commands emit YAML by default and support --format json and --format toml. Human help is emitted only for --help, non-leaf commands without a subcommand, and the top-level command without arguments.

Errors

Leaf command failures return structured errors in the requested output format. Errors include a stable code and human-readable message; validation and workflow errors may include additional remediation context.

Examples

spec-forge-cli init --target . --request-title "My Spec"
spec-forge-cli resolve --target . --runtime-mode plan --write --format json
spec-forge-cli artifact get --target . --spec-id demo --file framing/request-context.yaml
spec-forge-cli help gate check --format toml

Package Scope

This package owns only the Rust CLI implementation and its package-local documentation and tests. It does not redefine stage order, Plan-mode requirements, approval-gate behavior, or the broader skill-family semantics described by the stage SKILL.md files and UX contract.