Skip to content

`uofa` CLI reference (v0.8.0)

Generated from uofa --help-all at 2026-05-06T23:49:46Z. 19 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]
file
FlagDescription
--pubkeyed25519 public key (default: keys/research.pub)
--context, -cJSON-LD context file

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

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}]
[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

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