Skip to content

API Documentation ​

This document details all fe-harness CLI commands, parameters, return values, and usage examples.

Command Overview ​

CommandPurposeWrites Files
versionOutput CLI versionNo
scaffoldDelegate framework CLI + layer Harness on topYes
initInitialize existing projectYes
planOutput structured planNo
inspectView project factsNo
doctorRead-only diagnosticsNo
inputsCheck inputsMostly read-only
taskManage tasksYes
verifyRun verificationWrites reports
apiOpenAPI operationsinspect: no
designDesign Token operationsinspect: no
uiUI System managementinstall: yes
skillsInstall Skillsinstall: yes
optimizeIdempotently upgrade existing HarnessYes, selected groups only
validateValidate Harness integrityNo
hostsManage multi-host thin entrypointsinstall: yes

version ​

Output CLI version information.

Usage ​

bash
fe-harness version
fe-harness -v
fe-harness --version

Output Example ​

fe-harness v1.2.4

Parameters ​

None


scaffold ​

Delegate the framework CLI to create a project, then layer Harness on top: cascade options + skeleton injection + route splitting.

Usage ​

bash
fe-harness scaffold <project-name> [options]

Parameters ​

ParameterTypeDefaultDescription
<project-name>string-Project name (lowercase letters, digits, hyphens)
--profilestringnone (interactive mode)consumer-h5 / admin-web / mini-program
--stackstringfirst available for profileuni-app / vue3-vite / react-vite / taro / next.js
--uistringnullUI component library adapter
--hostsstringcodexHost list, comma-separated
--with-routesbooleanfalseSplit routes from a PRD
--prdstringnullPRD file path
--skip-installbooleanfalseSkip dependency installation
--skip-framework-clibooleanfalseSkip framework CLI (existing project)
--dry-runbooleanfalsePreview steps
--jsonbooleanfalseJSON output

Execution Steps ​

  1. Validate cascade compatibility
  2. Delegate framework CLI to create the project
  3. fe-harness init (add Harness files + idempotency verification)
  4. fe-harness hosts install (multi-host thin entrypoints)
  5. fe-harness ui systems install (UI adapter, optional)
  6. Inject engineering skeleton (directory boundaries + ESLint/Prettier + test infrastructure)
  7. Route splitting (when a PRD is provided)
  8. Write project.yaml
  9. Install dependencies

Cascade Matrix ​

Profile → Stack → UI System → framework options. Upper-level options constrain lower-level available options; incompatible combinations are rejected in step 1.

ProfileAvailable StacksAvailable UI Systems
consumer-h5uni-app / vue3-vite / react-vitetdesign-uniapp / vant / nutui
admin-webvue3-vite / react-vite / next.jstdesign / antd / element-plus
mini-programuni-app / tarotdesign-uniapp / nutui

Examples ​

bash
# Interactively create a Consumer H5 project
fe-harness scaffold my-h5 --profile consumer-h5

# Specify stack and UI
fe-harness scaffold my-admin --profile admin-web --stack vue3-vite --ui tdesign

# Mini-program project
fe-harness scaffold my-mp --profile mini-program --stack taro

# Existing project, skip framework CLI
fe-harness scaffold my-existing --profile consumer-h5 --skip-framework-cli

# Split routes from a PRD
fe-harness scaffold my-h5 --profile consumer-h5 --with-routes --prd ./prd.md

# Preview steps
fe-harness scaffold my-h5 --profile consumer-h5 --dry-run

# Skip dependency installation
fe-harness scaffold my-h5 --profile consumer-h5 --skip-install

# JSON output
fe-harness scaffold my-h5 --profile consumer-h5 --json

Output Example ​

json
{
  "status": "success",
  "projectName": "my-h5",
  "profile": "consumer-h5",
  "stack": "uni-app",
  "ui": null,
  "steps": [
    "cascade-validate",
    "framework-cli",
    "init",
    "hosts-install",
    "skeleton-inject"
  ],
  "files": [
    "package.json",
    "src/main.js",
    "src/pages/index/index.vue",
    ".fe-harness/project.yaml",
    "AGENTS.md"
  ]
}

What Gets Created ​

  • Project structure created by the framework CLI
  • .fe-harness/ config directory and project.yaml
  • AGENTS.md constraint file
  • Engineering skeleton (ESLint/Prettier, test infrastructure, directory boundaries)
  • Multi-host thin entrypoints
  • UI System Adapter (when --ui is specified)

init ​

Initialize an existing project with fe-harness configuration.

Usage ​

bash
fe-harness init [options]

Parameters ​

ParameterTypeDefaultDescription
--dry-runbooleanfalsePreview initialization without writing
--jsonbooleanfalseOutput in JSON format

Examples ​

bash
# Preview initialization
fe-harness init --dry-run

# Execute initialization
fe-harness init

# JSON output
fe-harness init --json

Behavior ​

  • Detects project type
  • Generates .fe-harness/ directory
  • Creates AGENTS.md
  • Does not overwrite existing files (unless explicitly specified)

plan ​

Output a structured plan for scaffold/init operations.

Usage ​

bash
fe-harness plan <scaffold|init> [options]

Examples ​

bash
fe-harness plan scaffold my-h5 --json
fe-harness plan init --json

Output Example ​

json
{
  "operation": "scaffold",
  "projectName": "my-h5",
  "files": [
    {
      "path": "package.json",
      "action": "create",
      "description": "Project config file"
    }
  ]
}

inspect ​

View project facts and capabilities.

Usage ​

bash
fe-harness inspect [options]

Parameters ​

ParameterTypeDefaultDescription
--jsonbooleanfalseOutput in JSON format

Examples ​

bash
fe-harness inspect
fe-harness inspect --json

Output Fields ​

  • Project type
  • Tech stack
  • File structure
  • Configuration info
  • Agent capabilities

doctor ​

Read-only diagnostics for project health check.

Usage ​

bash
fe-harness doctor [options]

Parameters ​

ParameterTypeDefaultDescription
--jsonbooleanfalseOutput in JSON format

Checks ​

  • Config file completeness
  • Script availability
  • Input file status
  • Token configuration
  • Agent readiness
  • Sensitive path detection (.env, private keys — names only, not content)

audit ​

Eight-dimension maturity audit, inspired by ai-harness-init.

Usage ​

bash
fe-harness audit [options]

Eight Dimensions ​

DimensionChecks
reproducibilityNode version, package manager, lock file
commandsbuild/test/lint/type-check scripts
code_qualityESLint, Prettier, TS config, module boundaries
testingUnit/E2E/visual tests, coverage closure
architectureprofile/platform/stack consistency, module boundaries
inputsPRD/RP/UI/API/assets registration
agent_ecosystemAGENTS.md, Skills, agent adapters
design_governanceDesign Token, UI System, visual baselines

Scoring ​

StatusScore
passed100
warning60
failed0
manualNot scored

Grades ​

GradeScore Range
A≥ 90
B80-89
C70-79
D60-69
E50-59
F< 50

Output ​

  • Per-dimension score and grade
  • Overall score and grade
  • P0-P2 improvement list (P0=command/safety failures, P1=other failures, P2=warnings)
  • Markdown report written to tmp/fe-harness/audit-report.md

Examples ​

bash
fe-harness audit
fe-harness audit --json

optimize ​

Idempotently upgrade an existing Harness, aligning to the latest Harness spec by group.

Usage ​

bash
fe-harness optimize [options]

Parameters ​

ParameterTypeDefaultDescription
--dry-runbooleanfalseList precise diffs without writing files
--groupsstring-Comma-separated list of groups to execute
--jsonbooleanfalseOutput in JSON format

Five Groups ​

GroupContent
docsAGENTS.md and fact files under docs/
rulesRule files under .fe-harness/rules/
adaptersHost adapters and thin entrypoints
engineeringEngineering config (lint, tsconfig, scripts, etc.)
toolsAgent toolchain and Skills

Behavior ​

  • Reads existing Harness and project config, listing precise diffs across five groups.
  • --dry-run lists diffs without writing files.
  • When --groups is not specified, interactively prompts the user to select groups.
  • When --groups is specified, only the selected groups are executed.
  • After execution, a second dry comparison verifies idempotency; remaining diffs are reported.

Examples ​

bash
# Preview all group diffs
fe-harness optimize --dry-run

# Execute only docs and rules groups
fe-harness optimize --groups docs,rules

# Execute all five groups
fe-harness optimize --groups docs,rules,adapters,engineering,tools

# JSON output
fe-harness optimize --dry-run --json

Output Example ​

json
{
  "status": "success",
  "groups": {
    "docs": { "diffs": 3, "applied": true },
    "rules": { "diffs": 1, "applied": true },
    "adapters": { "diffs": 0, "applied": false },
    "engineering": { "diffs": 2, "applied": true },
    "tools": { "diffs": 0, "applied": false }
  },
  "idempotent": true
}

validate ​

Validate Harness integrity, checking managed blocks, rules, adapters, and link consistency.

Usage ​

bash
fe-harness validate [options]

Parameters ​

ParameterTypeDefaultDescription
--jsonbooleanfalseOutput in JSON format

Checks ​

CheckDescription
Managed block matchingVerify all managed block markers are complete and content matches the source
Rule completenessCheck rule files under .fe-harness/rules/ are complete and not missing
Host adaptersVerify installed host adapter entrypoints and managed blocks are healthy
Markdown linksScan documentation links to ensure they point to valid paths
Forbidden pathsCheck for forbidden paths that should not be included in Harness

Examples ​

bash
fe-harness validate
fe-harness validate --json

Output Example ​

json
{
  "status": "passed",
  "checks": {
    "managed_blocks": "passed",
    "rules": "passed",
    "host_adapters": "passed",
    "markdown_links": "warning",
    "forbidden_paths": "passed"
  },
  "warnings": [
    "docs/PROJECT_MAP.md: broken link to docs/ARCHITECTURE.md"
  ]
}

hosts ​

Manage multi-host thin entrypoints, installing entry files for different Agent hosts.

Subcommands ​

  • list: List supported hosts and installation status
  • install: Install a thin entrypoint for the specified host

Usage ​

bash
fe-harness hosts list [options]
fe-harness hosts install [options]

Supported Hosts ​

HostDescription
codexCodex entrypoint
opencodeOpenCode entrypoint
claudeClaude Code entrypoint
cursorCursor entrypoint
traeTrae entrypoint

Parameters ​

ParameterTypeDescription
--hoststringHost name
--jsonbooleanJSON output

Behavior ​

  • Installs entry files using managed blocks and stable IDs.
  • Does not overwrite existing content; only inserts managed blocks.
  • When --host is not specified, interactively prompts for selection.

Examples ​

bash
# List supported hosts and installation status
fe-harness hosts list --json

# Install Claude Code entrypoint
fe-harness hosts install --host claude

# Install Codex entrypoint
fe-harness hosts install --host codex --json

Output Example ​

json
{
  "status": "success",
  "host": "claude",
  "installed": true,
  "entry": ".claude/CLAUDE.md",
  "managedBlocks": 3
}

inputs ​

Check, compare, and analyze input files.

Subcommands ​

  • inspect: Check input files and manifest
  • analyze: Analyze evidence conclusions and conflicts
  • diff: Compare input changes

Usage ​

bash
fe-harness inputs inspect --json
fe-harness inputs analyze --json
fe-harness inputs diff --json

task ​

Manage task numbers, history, and snapshots.

Subcommands ​

  • create: Create new task
  • history: View task history
  • snapshot: Create task snapshot

Usage ​

bash
# Create task
fe-harness task create --title "First request" --json

# View history
fe-harness task history T001 --json

# Create snapshot
fe-harness task snapshot T001 --title "First request" --request "Complete page" --json

Parameters ​

ParameterTypeDescription
--titlestringTask title
--requeststringRequest description
--jsonbooleanJSON output

verify ​

Execute verification modes.

Verification Modes ​

  • quick: Quick verification
  • feature: Feature verification
  • runtime: Runtime verification
  • interaction: Interaction verification
  • visual: Visual verification
  • audit: Audit verification

Usage ​

bash
fe-harness verify quick
fe-harness verify feature
fe-harness verify visual
fe-harness verify audit

Output ​

Generates verification reports (Markdown or JSON).


api ​

OpenAPI inspection and generation.

Subcommands ​

  • inspect: Inspect OpenAPI file
  • generate: Generate TypeScript types

Usage ​

bash
fe-harness api inspect --task T001 --json
fe-harness api generate --task T001 --dry-run
fe-harness api generate --task T001

Parameters ​

ParameterTypeDescription
--taskstringTask number
--dry-runbooleanPreview generation

design ​

Design Token inspection, discovery, and comparison.

Subcommands ​

  • tokens inspect: Inspect Token file
  • tokens discover: Discover existing styles
  • tokens diff: Compare Token changes

Usage ​

bash
fe-harness design tokens inspect --json
fe-harness design tokens discover --json
fe-harness design tokens diff --json

ui ​

UI System Adapter management.

Subcommands ​

  • systems list: List available systems
  • systems install: Install adapter

Usage ​

bash
fe-harness ui systems list --json
fe-harness ui systems install tdesign-uniapp --dry-run --json
fe-harness ui systems install tdesign-uniapp

skills ​

Install Agent Skills.

Subcommands ​

  • list: List available Skills
  • install: Install Skill

Usage ​

bash
fe-harness skills list --json
fe-harness skills install --project --name consumer-h5-harness
fe-harness skills install --global --provider claude

Parameters ​

ParameterTypeDescription
--projectbooleanProject-level install
--globalbooleanGlobal install
--providerstringProvider (claude, cursor, all)
--namestringSkill name

Error Handling ​

Common Error Codes ​

CodeDescription
ENOENTFile not found
EEXISTFile already exists
INVALID_CONFIGInvalid configuration
MISSING_INPUTMissing input

Error Output Format ​

json
{
  "error": {
    "code": "ENOENT",
    "message": "File not found: .fe-harness/project.yaml",
    "suggestion": "Run 'fe-harness init' to initialize the project"
  }
}

Environment Variables ​

VariableDescription
FE_HARNESS_DEBUGEnable debug mode
FE_HARNESS_CONFIGCustom config file path

Configuration Files ​

.fe-harness/project.yaml ​

Project configuration file defining:

  • Project type
  • Tech stack
  • Verification mode mapping
  • File paths

AGENTS.md ​

Project constraint file defining:

  • Business-neutral engineering rules
  • Verification requirements
  • Agent workflow guidelines

More Information ​

Business-neutral by design. Project-owned by default.