Skip to content

CLI Surface

The bijux-pollenomics command is the canonical operational interface. Every subcommand belongs to collection, evidence inspection, validation, or publication, and its effect on repository state should be knowable before it runs.

flowchart LR
    Command["named subcommand"] --> Arguments["validated scope and paths"]
    Arguments --> Handler["owned runtime operation"]
    Handler --> Result{"operation class"}
    Result -->|inspect| Stdout["structured or human-readable output"]
    Result -->|validate| Status["diagnostics and process status"]
    Result -->|write| Files["reviewable tracked artifacts"]

Command Families

Family Commands State effect
capability and ownership surface-map, product-scope, ownership-map, source-support read-only orientation
animal evidence structure adna-layout, adna-runtime-manifest, adna-artifact-plan, adna-curation-manifest, adna-normalization-bundle read-only manifests and plans
animal evidence review adna-archive-projects, adna-domestication-coverage, adna-species, adna-species-review, adna-release-bar, adna-release-readiness read-only coverage and release posture
validation validate-collection-summary validates an existing summary without recollection
collection and contract refresh collect-data, refresh-data-contract-surfaces, refresh-animal-adna-foundation writes governed data and, for the animal refresh, related publication surfaces
publication report-country, report-multi-country-map, publish-reports writes scoped report and atlas products

Command Synopsis

Form Result
collect-data <sources...> collect one or more source families, or all
adna-layout --species <name> canonical species evidence paths
adna-runtime-manifest --species <name> source bundles and analysis boundaries for one species
adna-artifact-plan --species <name> deterministic species rebuild paths and governed payloads
adna-curation-manifest --species <name> curated, pending, and rejected projects
adna-normalization-bundle --species <name> project summaries, study summaries, lineage, and refusals
adna-archive-projects [--species <name>] archive inventory and project-side metadata that still needs to feed sample extraction
adna-domestication-coverage cross-species curation coverage, including thin and unsupported areas
adna-species canonical species identity, support status, and modality matrix
adna-species-review --species <name> product role, assignment rule, archive integrity, and project admission reviews
report-country <country> one AADR country report bundle
report-multi-country-map <countries...> a shared geography surface with country toggles
publish-reports the configured world, regional, and country publication tree

--output-root defaults to data for collection or docs/report for publication. Commands with additional roots expose them in subcommand help.

Machine-Readable Inspection

Commands with --json expose the same governed result as their table form, without presentation-oriented line parsing. For example:

bijux-pollenomics source-support --json
bijux-pollenomics adna-species-review --species "Bos taurus" --json
bijux-pollenomics adna-release-readiness --species "Bos taurus" --json

Species arguments accept a registered alias or Latin name. The resolved Latin name remains the stable identity in evidence paths and result payloads. JSON output makes the contract automatable, but callers must still interpret status, refusal, and qualification fields instead of treating record presence as readiness.

Inspect Before Materializing

bijux-pollenomics product-scope
bijux-pollenomics ownership-map
bijux-pollenomics source-support
bijux-pollenomics adna-species
bijux-pollenomics publish-reports --help

Help is part of the interface contract. Use subcommand help to confirm required inputs, default version, country scope, and destination before an operation that writes files.

Materialization Boundaries

Collection and publication accept explicit roots so source data and products can be directed to a known destination:

bijux-pollenomics collect-data all --version v66 --output-root data
bijux-pollenomics publish-reports \
  --aadr-root data/aadr \
  --version v66 \
  --output-root docs/report \
  --context-root data

collect-data acquires the selected collector-managed families and updates their collection state. It may use the network. publish-reports reads the existing AADR and context roots and materializes world, regional, and country products. It does not collect missing source data.

Command Required scope Primary result Does not establish
collect-data one or more source names, or all family captures, normalized data, and collection summary publication admission
refresh-data-contract-surfaces data root and AADR version collection summary and checked-in contract surfaces new upstream acquisition
report-country one political-entity value one AADR country report bundle multi-source regional synthesis
report-multi-country-map one or more political-entity values one named shared evidence surface with country toggles a global or default publication
publish-reports country list, data roots, version, and output root current world, regional, and country publication tree stronger precision than the inputs provide
refresh-animal-adna-foundation species, countries, and governed roots animal capture, normalized evidence, and dependent animal publications refresh of collector-managed environmental families

Command Impact Evidence

The command name alone is not an operation record. Retain the evidence that matches its state effect:

Command example Before execution Result to retain After execution
product-scope installed distribution identity stdout or JSON-equivalent inspection result and process status no governed file change
source-support --json installed distribution and requested output mode structured support matrix and process status no governed file change
validate-collection-summary summary path and content identity validation status and diagnostics validated file remains unchanged
collect-data selected families, version, destination, and prior collection summary capture metadata, hashes, normalization result, and process status compare family-owned trees and new collection summary
publish-reports AADR root, context root, countries, version, output root, and prior manifests publication summary, manifests, review packets, and process status compare membership and qualifications, not only rendered files
refresh-animal-adna-foundation species scope, evidence roots, report roots, and prior animal manifests refresh result, validation, review, and release posture inspect the full animal evidence and publication dependency set

For a writer, an unchanged process status with an unexpected semantic diff is not enough evidence of correctness. For an inspector, an empty filesystem diff is expected and does not mean the command produced no useful result.

Failure Semantics

Argument errors—such as an unknown subcommand, missing required species, or unsupported source name—fail before the operation runs. Contract and input errors fail during the owned operation. Successful validation prints the validated summary path; successful writers print a concise materialization summary. Callers should rely on the process status and governed artifacts, not on the presence of an output directory left by an earlier run.

Shell success is intentionally narrower than scientific success. Exit status zero means the handler completed its contract. An inspector may report a blocked release in valid JSON and still exit successfully because the refusal is the requested result. Automation must read the status fields inside review payloads rather than converting every successful process into admission.

Conversely, a non-zero exit means the requested contract did not complete; a directory from a previous run is not evidence of partial success. Compare the governing manifest or summary identity before and after the invocation to determine which state remains authoritative.

Automation Must Read Two Statuses

Process status Governed result status Interpretation
non-zero no accepted new result the operation contract did not complete; inspect diagnostics and retain the prior governed identity
zero admitted or ready execution completed and the named result reports positive fitness for its declared boundary
zero qualified, excluded, blocked, or refused execution completed by producing an accountable negative or restricted scientific result
zero no scientific status field use the command-specific contract; an orientation response is not an admission decision

Automation that checks only $? can publish unsupported language. Automation that treats every refusal payload as a process failure loses a valid governed outcome. Record the process status, parse the command's documented result fields, and resolve the manifest or review identity before acting.

Alias Command

The pollenomics executable is supplied by the compatibility distribution and forwards to the same runtime with a shorter program name. It does not own separate handlers, defaults, evidence rules, or report logic. Durable operational documentation and system ownership use the canonical bijux-pollenomics name.

For Python imports, continue to the API surface. For safe operation sequences, continue to operator workflows.