Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Assessment Objectives

Assessment objectives are the assessable leaves beneath controls in CMMC and compatible catalogs such as NIST 800-171A. The objective command group reads and updates their per-system implementation rows through the same governed public API used by MCP tools and the web workspace.

Read Objective Readiness

List all objectives for one control:

pretorin objective list \
  --framework-id cmmc-l2 \
  --control AC.L2-3.1.1 \
  --system "My System"

Each row includes the stable catalog objective ID, per-system implementation UUID, effective status and source, approval posture, conflict state, linked evidence count, and evidence-expectation coverage.

Use --open-only to show only objectives that still need work:

pretorin objective list -f cmmc-l2 -c AC.L2-3.1.1 --open-only

--open-only is an assessment-objective filter, not a CMMC score. It uses the status, approval, initialization, and conflict fields returned by the platform. It requires --control so the CLI can read the complete catalog objective set, including an uninitialized objective, in one bounded control-context call.

Framework-wide triage supports server-side status, conflict, limit, and offset filters:

pretorin objective list --status in_progress --only-conflicts --limit 100

Inspect one implementation UUID to see its determination statement, current narrative and API-token-authored draft, approval actor/time, evidence, expectation coverage, and merged history:

pretorin objective show <objective_implementation_uuid>
pretorin objective show <objective_implementation_uuid> --history-limit 100

Evidence-Expectation Coverage

Objective-linked evidence and expectation coverage are intentionally separate:

  • Only operating evidence explicitly bound to an expectation makes it covered.
  • Suggested evidence is labeled unconfirmed and never counts as coverage.
  • Objective-linked evidence without any expectation binding is listed separately.
  • A bound expectation absent from the active-tier coverage response is shown as unavailable; it is never silently dropped or treated as covered.

An objective can therefore have linked evidence while one or more of its bound expectations remain uncovered.

Author and Approve Objectives

Initialize rows for a control when needed. Seeding is idempotent; current CMMC attachments normally materialize these rows automatically:

pretorin objective seed AC.L2-3.1.1 --framework-id cmmc-l2

Start work, author the narrative draft, and manage evidence:

pretorin objective start <objective_implementation_uuid> --reason "Begin assessment"
pretorin objective narrative <objective_implementation_uuid> \
  "Authorized users are identified through the governed account inventory."
pretorin objective link-evidence <objective_implementation_uuid> <evidence_id>
pretorin objective unlink-evidence <objective_implementation_uuid> <evidence_id>

Approve only after the platform’s grounding prerequisites are satisfied:

pretorin objective approve <objective_implementation_uuid>
pretorin objective reopen <objective_implementation_uuid>

API tokens may approve grounded objective leaves and the platform records agent attribution. These commands never approve the parent control. A 409 approval failure prints the server’s structured prerequisite list; --json preserves the error code, HTTP status, complete details, and missing_prerequisites array.

JSON Output

Place the global flag before the command:

pretorin --json objective list -f cmmc-l2 -c AC.L2-3.1.1
pretorin --json objective show <objective_implementation_uuid>

JSON output is complete and untruncated. It preserves the server response and adds explicit readiness and expectation_coverage projections for scripting.