Skip to content

`uofa` CLI reference (v0.10.0)

Generated from uofa --help-all at 2026-07-17T04:02:52Z. 23 subcommands available.

uofa [--no-color] [--verbose] [--repo-root PATH] [--pack NAME] <command> [...]

Global flags inherited by every subcommand: --no-color, --verbose, --repo-root, --pack. See uofa --help for details.

generate ed25519 keypair for signing

uofa keygen [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME]
path

sign (or re-sign) a UofA file

uofa sign [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] --key KEY [--context CONTEXT] [--output OUTPUT]
file
FlagDescription
--key, -ked25519 private key (PEM)
--context, -cJSON-LD context file
--output, -ooutput path (default: overwrite input)

verify hash + ed25519 signature (C1 integrity)

uofa verify [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--pubkey PUBKEY] [--context CONTEXT]
[--decision-pubkey DECISION_PUBKEY]
file
FlagDescription
--pubkeyed25519 public key (default: keys/research.pub)
--context, -cJSON-LD context file
--decision-pubkeyengineer’s public key, to verify a SIP engineerDecision signature (Addendum A6)

validate against SHACL profiles (C2 completeness)

uofa shacl [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--raw] [--explain]
[--explain-functions EXPLAIN_FUNCTIONS]
[--explain-format {text,json,markdown,html}]
[--explain-backend {ollama,anthropic,openai,openai-compatible,bundled,mock}]
[--explain-model EXPLAIN_MODEL]
[--explain-base-url EXPLAIN_BASE_URL]
[--explain-max-items EXPLAIN_MAX_ITEMS] [--explain-no-cache]
file
FlagDescription
--rawshow raw pyshacl output instead of friendly messages
--explainrun the interpretation pipeline after the primary analysis
--explain-functionscomma-separated list of interpretation functions to run (values: explain, group, contextualize, cross, narrative). Default: all applicable for the command.
--explain-format {text, json, markdown, html}output format for the interpretation block. Default: same as the command’s primary —format, falling back to text.
--explain-backend {ollama, anthropic, openai, openai-compatible, bundled, mock}LLM backend for explain (overrides [llm] backend in uofa.toml)
--explain-modelmodel name on the chosen backend (overrides [llm] model)
--explain-base-urlbase URL for openai-compatible backends
--explain-max-itemslimit interpretation to top N items by severity
--explain-no-cachebypass cached interpretation results

detect quality gaps with Jena rule engine (C3)

uofa rules [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--rules RULES] [--context CONTEXT] [--build]
[--raw] [--format {summary,turtle,ntriples,jsonld,json}]
[--output OUTPUT] [--explain]
[--explain-functions EXPLAIN_FUNCTIONS]
[--explain-format {text,json,markdown,html}]
[--explain-backend {ollama,anthropic,openai,openai-compatible,bundled,mock}]
[--explain-model EXPLAIN_MODEL]
[--explain-base-url EXPLAIN_BASE_URL]
[--explain-max-items EXPLAIN_MAX_ITEMS] [--explain-no-cache]
file
FlagDescription
--rules, -rpath to .rules file
--context, -cJSON-LD context file
--buildauto-build the Jena JAR if missing
--rawshow raw output without coloring
--format, -f {summary, turtle, ntriples, jsonld, json}output format (default: summary). ‘json’ is the parsed-firings shape suitable for snapshot tests; ‘jsonld’ is the raw RDF.
--output, -owrite reasoned output to a file (default: stdout)
--explainrun the interpretation pipeline after the primary analysis
--explain-functionscomma-separated list of interpretation functions to run (values: explain, group, contextualize, cross, narrative). Default: all applicable for the command.
--explain-format {text, json, markdown, html}output format for the interpretation block. Default: same as the command’s primary —format, falling back to text.
--explain-backend {ollama, anthropic, openai, openai-compatible, bundled, mock}LLM backend for explain (overrides [llm] backend in uofa.toml)
--explain-modelmodel name on the chosen backend (overrides [llm] model)
--explain-base-urlbase URL for openai-compatible backends
--explain-max-itemslimit interpretation to top N items by severity
--explain-no-cachebypass cached interpretation results

full pipeline: SHACL + integrity + rules (C1+C2+C3)

uofa check [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--pubkey PUBKEY] [--context CONTEXT]
[--rules RULES] [--skip-rules] [--build] [--oos | --no-oos]
[--derivations | --no-derivations] [--explain]
[--explain-functions EXPLAIN_FUNCTIONS]
[--explain-format {text,json,markdown,html}]
[--explain-backend {ollama,anthropic,openai,openai-compatible,bundled,mock}]
[--explain-model EXPLAIN_MODEL]
[--explain-base-url EXPLAIN_BASE_URL]
[--explain-max-items EXPLAIN_MAX_ITEMS] [--explain-no-cache]
file
FlagDescription
--pubkeyed25519 public key
--context, -cJSON-LD context file
--rules, -rpath to .rules file
--skip-rulesskip the Jena rule engine (no Java required)
--buildauto-build the Jena JAR if missing
--oosforce OOS rules on for this run, overriding pack config
--no-oosforce OOS rules off for this run, overriding pack config
--derivationsforce derivation pre-pass on for this run, overriding pack config
--no-derivationsforce derivation pre-pass off for this run, overriding pack config
--explainrun the interpretation pipeline after the primary analysis
--explain-functionscomma-separated list of interpretation functions to run (values: explain, group, contextualize, cross, narrative). Default: all applicable for the command.
--explain-format {text, json, markdown, html}output format for the interpretation block. Default: same as the command’s primary —format, falling back to text.
--explain-backend {ollama, anthropic, openai, openai-compatible, bundled, mock}LLM backend for explain (overrides [llm] backend in uofa.toml)
--explain-modelmodel name on the chosen backend (overrides [llm] model)
--explain-base-urlbase URL for openai-compatible backends
--explain-max-itemslimit interpretation to top N items by severity
--explain-no-cachebypass cached interpretation results

render a credibility report for a bundle, or for an HF model id/URL (fetch + extract)

uofa report [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--format {text,markdown,json}]
[--output OUTPUT] [--deterministic] [--revision REVISION]
[--save-bundle PATH] [--no-save-bundle]
[--extract-backend {ollama,anthropic,openai,openai-compatible,bundled,mock}]
[--extract-model EXTRACT_MODEL]
[--extract-base-url EXTRACT_BASE_URL]
source
FlagDescription
--format {text, markdown, json}output format (default: text)
--outputwrite the report to FILE instead of stdout
--deterministicid mode: skip the LLM and map the card with the README section/keyword scan (approximate; needs no model)
--revisionid mode: model-card git revision (default: latest)
--save-bundle PATHid mode: write the generated bundle to PATH (default: ./__.mrm-nist.jsonld)
--no-save-bundleid mode: do not keep the generated bundle
--extract-backend {ollama, anthropic, openai, openai-compatible, bundled, mock}id mode: LLM backend for extraction (else README scan)
--extract-modelid mode: model name on the chosen backend
--extract-base-urlid mode: base URL for openai-compatible backends

validate all examples against SHACL profiles

uofa validate [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--dir DIR] [--verify] [--pubkey PUBKEY]
FlagDescription
--dirdirectory to scan (default: all pack examples)
--verifyalso verify hash + signature integrity on each file
--pubkeyed25519 public key (default: keys/research.pub)

scaffold a new UofA project (template + keys + uofa.toml)

uofa init [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--profile {minimal,complete}] [--dir DIR]
[--provider PROVIDER] [--model MODEL]
name
FlagDescription
--profile {minimal, complete}starting profile (default: complete)
--dirparent directory (default: cwd)
--providerLLM provider for uofa extract (default: ollama)
--modelLLM model for uofa extract (default: llama3.2)

compare weakener profiles between two UofA files (COU divergence)

uofa diff [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--build] [--skip-rules] [--explain]
[--explain-functions EXPLAIN_FUNCTIONS]
[--explain-format {text,json,markdown,html}]
[--explain-backend {ollama,anthropic,openai,openai-compatible,bundled,mock}]
[--explain-model EXPLAIN_MODEL]
[--explain-base-url EXPLAIN_BASE_URL]
[--explain-max-items EXPLAIN_MAX_ITEMS] [--explain-no-cache]
file_a file_b
FlagDescription
--buildauto-build the Jena JAR if missing
--skip-rulescompare static hasWeakener arrays instead of running rules
--explainrun the interpretation pipeline after the primary analysis
--explain-functionscomma-separated list of interpretation functions to run (values: explain, group, contextualize, cross, narrative). Default: all applicable for the command.
--explain-format {text, json, markdown, html}output format for the interpretation block. Default: same as the command’s primary —format, falling back to text.
--explain-backend {ollama, anthropic, openai, openai-compatible, bundled, mock}LLM backend for explain (overrides [llm] backend in uofa.toml)
--explain-modelmodel name on the chosen backend (overrides [llm] model)
--explain-base-urlbase URL for openai-compatible backends
--explain-max-itemslimit interpretation to top N items by severity
--explain-no-cachebypass cached interpretation results

interpret pre-existing structured output from rules/check/diff/shacl

uofa explain [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] (--from-file FROM_FILE | --from-stdin)
[--input-type {rules,check,diff,shacl}]
[--functions FUNCTIONS] [--format {text,json,markdown}]
[--max-items MAX_ITEMS] [--no-cache]
[--backend {ollama,anthropic,openai,openai-compatible,bundled,mock}]
[--model MODEL] [--base-url BASE_URL]
FlagDescription
--from-fileread structured output from FILE
--from-stdinread structured output from stdin
--input-type {rules, check, diff, shacl}override auto-detection of input type
--functionscomma-separated list of interpretation functions to run
--format {text, json, markdown}output format (default: text)
--max-itemslimit interpretation to top N items by severity
--no-cachebypass cached interpretation results
--backend {ollama, anthropic, openai, openai-compatible, bundled, mock}LLM backend (overrides [llm] backend in uofa.toml)
--modelmodel name on the chosen backend
--base-urlbase URL for openai-compatible backends

generate JSON Schema or import constants from SHACL shapes

uofa schema [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--output OUTPUT] [--emit {json,python}]
FlagDescription
--output, -ooutput path (default depends on —emit format)
--emit {json, python}output format: json (JSON Schema, default) or python (import constants)

list and inspect installed domain packs

uofa packs [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--detail]
[name]
FlagDescription
--detailshow detailed pack information

list all weakener patterns across active packs

uofa catalog [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--format {table,json,md}] [--all-packs]
FlagDescription
--format, -f {table, json, md}output format (default: table)
--all-packsenumerate patterns across every installed pack (overrides —pack). Use this for a complete catalog view; the default —pack=vv40 only surfaces core + vv40 patterns.

migrate UofA files from v0.3 to v0.4

uofa migrate [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--from FROM_VER] [--to TO_VER] [--dry-run]
file
FlagDescription
--fromsource version (default: v0.3)
--totarget version (default: v0.4)
--dry-runprint changes without modifying the file

import an Excel workbook into a UofA JSON-LD file

uofa import [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--output OUTPUT] [--sign] [--key KEY]
[--check] [--profile {minimal,complete}]
[--sip-pubkey SIP_PUBKEY]
[--decision-pubkey DECISION_PUBKEY]
[file]
FlagDescription
--output, -ooutput path (default: same directory, .jsonld extension)
--signsign the output after generation
--key, -kpath to ed25519 private key (required with —sign, or auto-detected from project)
--checkrun all quality gates on the output
--profile {minimal, complete}override profile auto-detection
--sip-pubkeySIP measurement public key for verifying a SIP-bundle input (default: keys/research.pub)
--decision-pubkeyengineer public key for verifying a SIP-bundle engineerDecision on import

extract assessment data from evidence documents into an Excel template

uofa extract [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--model MODEL] [--output OUTPUT]
[--glob GLOB] [--thinking]
[--prompt-version PROMPT_VERSION]
[--extract-backend {ollama,anthropic,openai,openai-compatible,bundled,mock}]
[--extract-model EXTRACT_MODEL]
[--extract-base-url EXTRACT_BASE_URL]
[source ...]
FlagDescription
--modellegacy litellm model string (e.g. ‘ollama/qwen3.5:4b’). For new configs, prefer —extract-backend + —extract-model.
--output, -ooutput Excel path (default: {source}-extracted.xlsx)
--globfile filter pattern (e.g. ‘.pdf’ or ‘.pdf,*.docx’)
--thinkingenable thinking/reasoning mode (slower, may improve accuracy)
--prompt-versiontag for scoring log tracking (e.g. ‘v2-detailed’)
--extract-backend {ollama, anthropic, openai, openai-compatible, bundled, mock}LLM backend for extract (overrides [llm] backend)
--extract-modelmodel name on the chosen backend (overrides [llm] model)
--extract-base-urlbase URL for openai-compatible backends (e.g. Together AI, vLLM)

generate / orchestrate / classify synthetic credibility evidence packages

uofa adversarial [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME]
{generate,run,analyze,prep-review,bundle,judge,triage,adjudicate}
...

install or verify the LLM extract runtime (Ollama + qwen3.5:4b)

uofa setup [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--bundle BUNDLE]
[--create-bundle CREATE_BUNDLE] [--model MODEL]
[--port PORT] [--no-byo] [--yes] [--no-verify]
{verify,uninstall} ...
FlagDescription
--bundleinstall from an offline bundle (REQ-DIST-004 air-gapped path)
--create-bundlepackage the current install into a tar.gz for an offline machine
--modelmodel tag to pull (default: qwen3.5:4b)
--portport for the managed Ollama daemon (default: 11434)
--no-byoskip BYO Ollama detection; install a UofA-managed copy
--yes, -yskip confirmation prompts (downloads, uninstall)
--no-verifyskip the post-install verify step

run the C1+C2+C3 pipeline against a bundled fixture (no setup needed)

uofa demo [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--no-passage] [--no-jsonld]
FlagDescription
--no-passageskip printing the input passage (useful for piping)
--no-jsonldskip printing the pre-computed JSON-LD

measure a surrogate and emit a signed evidence bundle (or init to set up)

uofa interrogate [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--adapter ADAPTER]
[--benchmark BENCHMARK] [--reference REFERENCE]
[--scope SCOPE] [--output OUTPUT] [--key KEY]
[--seed SEED]
{init} ...
FlagDescription
--adapterModelAdapter ref: ‘pkg.module.ClassName’ or ‘/path/file.py:ClassName’
--benchmarkbenchmark inputs (.npz/.json)
--referencereference outputs (.npz/.json) — supplied, never generated
--scopedeclared-scope config (.json/.toml)
--output, -ooutput path for the signed evidence bundle (.json)
--key, -ked25519 SIP measurement key (auto-detected from project keys/ if omitted)
--seedseed recorded in measurement provenance

review a SIP comparison (read-only) or sign an engineer decision

uofa decision [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME]
{review,sign} ...

basic guardrail: turn weakener firings into a signed engineer-commanded action (§6)

uofa guardrail [-h] [--no-color] [--verbose] [--repo-root PATH]
[--pack NAME] [--key KEY]
[--threshold {Critical,High,Medium,Low}]
[--action {restrict,clip,refuse}] [--min-hits MIN_HITS]
[--output OUTPUT]
file
FlagDescription
--key, -ked25519 key to sign the action (auto-detected from project keys/ if omitted)
--threshold {Critical, High, Medium, Low}engineer-commanded severity threshold to trigger (default: High)
--action {restrict, clip, refuse}engineer-commanded response on trigger (default: restrict)
--min-hitsminimum hits for a firing to count toward the trigger (default: 1)
--output, -ooutput path for the package + guardrailAction (default: in place)