## 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

# Framework Browsing

The `frameworks` command group lets you browse compliance frameworks, control families, and individual controls. The browsing commands documented on this page are read-only and available to all authenticated users.

The same command group also exposes write-side commands for authoring, validating, uploading, forking, and rebasing custom frameworks — see Custom Framework Authoring at the bottom of this page for a quick index, or jump directly to the Custom Frameworks guide for the end-to-end workflow.

## List All Frameworks

    $ pretorin frameworks list
    [°~°] Consulting the compliance archives...
                            Available Compliance Frameworks
    ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓
    ┃ ID          ┃ Title       ┃ Version     ┃ Tier         ┃ Families ┃ Controls ┃
    ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩
    │ cmmc-l1     │ CMMC 2.0    │ 2.0         │ tier1_essen… │        6 │       17 │
    │             │ Level 1     │             │              │          │          │
    │ cmmc-l2     │ CMMC 2.0    │ 2.0         │ tier1_essen… │       14 │      110 │
    │             │ Level 2     │             │              │          │          │
    │ ...         │             │             │              │          │          │
    └─────────────┴─────────────┴─────────────┴──────────────┴──────────┴──────────┘

    Total: 26 framework(s)

The ID column is what you use in all other commands.

The exact total and available framework set can vary as the platform catalog expands. Use `pretorin frameworks list` to see the live catalog available to your account.

## Get Framework Details

    $ pretorin frameworks get fedramp-moderate
    [°~°] Gathering framework details...
    ╭───────────────── Framework: FedRAMP Rev 5 Moderate Baseline ─────────────────╮
    │ ID: fedramp-moderate                                                         │
    │ Title: FedRAMP Rev 5 Moderate Baseline                                       │
    │ Version: fedramp2.1.0-oscal1.0.4                                             │
    │ OSCAL Version: 1.0.4                                                         │
    │ Tier: tier1_essential                                                        │
    │ Category: government                                                         │
    │ Published: 2024-09-24T02:24:00Z                                              │
    ╰──────────────────────────────────────────────────────────────────────────────╯

## List Control Families

    $ pretorin frameworks families nist-800-53-r5
    [°~°] Gathering control families...
                           Control Families - nist-800-53-r5
    ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━┓
    ┃ ID                          ┃ Title                       ┃ Class ┃ Controls ┃
    ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━┩
    │ access-control              │ Access Control              │ ac    │       25 │
    │ audit-and-accountability    │ Audit and Accountability    │ au    │       16 │
    │ awareness-and-training      │ Awareness and Training      │ at    │        6 │
    │ configuration-management    │ Configuration Management    │ cm    │       14 │
    │ ...                         │                             │       │          │
    └─────────────────────────────┴─────────────────────────────┴───────┴──────────┘

> Important: Family IDs are slugs like `access-control`, not short codes like `ac`. The short code is shown in the Class column for reference, but commands require the full slug ID.

### CMMC Family IDs

CMMC frameworks use level-specific family slugs:

    $ pretorin frameworks families cmmc-l2

CMMC family IDs include the level suffix, e.g., `access-control-level-2` instead of `access-control`.

## Get Family Details

    pretorin frameworks family nist-800-53-r5 access-control

## List Controls

    # Family filter via positional argument
    pretorin frameworks controls nist-800-53-r5 access-control

    # Family filter via flag (equivalent)
    pretorin frameworks controls nist-800-53-r5 --family access-control --limit 10

    # All controls in the framework (no family filter)
    pretorin frameworks controls fedramp-moderate

The family filter is optional and may be passed as a positional argument or with `--family`/`-f`. Without `--limit` (default `0`), all matching controls are shown.

> Important: Control IDs are zero-padded — use `ac-01`, not `ac-1`. See Control ID Formats for details.

## Get Control Details

    $ pretorin frameworks control nist-800-53-r5 ac-02
    [°~°] Looking up control details...
    ╭─────────────────────────────── Control: AC-02 ───────────────────────────────╮
    │ ID: ac-02                                                                    │
    │ Title: Account Management                                                    │
    │ Class: SP800-53                                                              │
    │ Type: organizational                                                         │
    │                                                                              │
    │ AI Guidance: Available                                                       │
    ╰──────────────────────────────────────────────────────────────────────────────╯

    Parameters:
      - ac-02_odp.01: prerequisites and criteria
      - ac-02_odp.02: attributes (as required)
      - ac-02_odp.03: personnel or roles
      - ac-02_odp.04: policy, procedures, prerequisites, and criteria
      - ac-02_odp.05: personnel or roles

### Brief Mode

By default, the full control is shown including statement, guidance, and references. Use `--brief` to show only the basic info panel:

    $ pretorin frameworks control nist-800-53-r5 ac-02 --brief

The default (no flag) includes:

- Statement — the formal control requirement text
- Guidance — implementation guidance from the framework
- Related Controls — other controls that relate to this one

### Common Mistakes

Using the wrong ID format produces an error:

    $ pretorin frameworks control nist-800-53-r5 ac-1
    [°~°] Looking up control details...
    [°︵°] Couldn't find control ac-1 in nist-800-53-r5
    Try pretorin frameworks controls nist-800-53-r5 to see available controls.

Use zero-padded IDs: `ac-01`, not `ac-1`.

## Framework Metadata

Get per-control metadata for a framework:

    pretorin frameworks metadata nist-800-53-r5

## Submit Artifacts

Submit a compliance artifact JSON file:

    pretorin frameworks submit-artifact artifact.json

See Artifact Generation for the artifact schema.

## JSON Output

All framework commands support JSON output for scripting and AI agents:

    pretorin --json frameworks list
    pretorin --json frameworks control nist-800-53-r5 ac-02

## Custom Framework Authoring

In addition to the read-only browsing commands above, the `frameworks` group exposes the write-side commands that drive the custom-framework revision lifecycle. These let you author your own catalog, validate it locally, upload it as a draft revision, and fork or rebase against an upstream Pretorin-managed framework.

Command | Description
--- | ---
`pretorin frameworks init-custom <id>` | Scaffold a minimal valid `unified.json` for a new custom framework.
`pretorin frameworks validate-custom <unified.json>` | Validate a `unified.json` artifact against the bundled JSON Schema.
`pretorin frameworks build-custom <input> -f <id>` | Normalize an OSCAL or custom catalog into uploadable `unified.json`.
`pretorin frameworks upload-custom <unified.json> [--publish]` | Upload as a draft revision, optionally publishing in one step.
`pretorin frameworks fork-framework <upstream-id>` | Create a linked-fork draft from an upstream framework.
`pretorin frameworks rebase-fork <fork-id>` | Create a rebase draft for a fork against the latest upstream revision.
`pretorin frameworks revisions <framework-id>` | List all draft and published revisions for a framework.
`pretorin frameworks export-oscal <unified.json>` | Regenerate an OSCAL catalog from a `unified.json` artifact.

See the Custom Frameworks guide for the full end-to-end workflow, the supported input shapes recognized by `build-custom`, and the linked-fork / rebase model.