How to Generate Guidance
Generating guidance creates outputs from your baseline. By default it generates documentation (AsciiDoc, HTML, PDF). With additional flags, you can also generate compliance scripts, configuration profiles, and more.
Generate Guidance
Section titled “Generate Guidance”-
Run the command with your baseline
Terminal window ./mscp.py guidance custom/baselines/BASELINE_NAME.yamlExample:
Terminal window ./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yaml -
Add flags for additional outputs
Terminal window ./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yaml -s -pThis generates guidance docs plus compliance script (
-s) and configuration profiles (-p).Generate all outputs at once with
-A:Terminal window ./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yaml -A -
Find your files
All outputs are saved to
build/BASELINE_NAME/:Directorybuild/
Directory800-53r5_moderate_macos_26.0/
- 800-53r5_moderate_macos_26.0.adoc AsciiDoc source
- 800-53r5_moderate_macos_26.0.html Web documentation
- 800-53r5_moderate_macos_26.0.pdf Printable documentation
- 800-53r5_moderate_macos_26.0.md Markdown (if -m)
- 800-53r5_moderate_macos_26.0_compliance.sh Compliance script (if -s)
- 800-53r5_moderate_macos_26.0.xlsx Excel spreadsheet (if -x)
Directorymobileconfigs/ Configuration profiles (if -p)
- …
Directoryactivations/ DDM components (if -d)
- …
Directoryconfigurations/
- …
Directoryassets/
- …
Directorypreferences/
- …
-
Run the script with your baseline
Terminal window ./scripts/generate_guidance.py baselines/BASELINE_NAME.yamlExample:
Terminal window ./scripts/generate_guidance.py baselines/800-53r5_moderate.yaml -
Add flags for additional outputs
Terminal window ./scripts/generate_guidance.py -s -p baselines/800-53r5_moderate.yamlThis generates guidance docs plus compliance script (
-s) and configuration profiles (-p). -
Find your files
All outputs are saved to
build/BASELINE_NAME/:Directorybuild/
Directory800-53r5_moderate/
- 800-53r5_moderate.adoc AsciiDoc source
- 800-53r5_moderate.html Web documentation
- 800-53r5_moderate.pdf Printable documentation
- 800-53r5_moderate_compliance.sh Compliance script (if -s)
- 800-53r5_moderate.xls Excel spreadsheet (if -x)
Directorymobileconfigs/ Configuration profiles (if -p)
Directoryunsigned/ Unsigned profiles
- …
Directorysigned/ Signed profiles (if -H)
- …
Directorypreferences/ Preference plists
- …
Directorydeclarative/ DDM components (if -D)
Directoryactivations/
- …
Directoryconfigurations/
- …
Directoryassets/
- …
Directorypreferences/ Audit preference files
- …
Command Reference
Section titled “Command Reference”| Flag | Output |
|---|---|
| (none) | Guidance documents (.adoc, .html, .pdf) |
-A | All outputs |
-s | Compliance script |
-p | Configuration profiles |
--consolidated-profile | Single consolidated configuration profile |
--granular-profiles | Granular profiles |
-d | DDM components |
-x | Excel spreadsheet (.xlsx) |
-m | Markdown documentation |
Additional options:
| Flag | Description |
|---|---|
-l LOGO | Include custom logo in documentation |
-L LANG | Language for output |
-H HASH | Sign configuration profiles with certificate |
--audit_name NAME | Custom name for audit plist and log |
--reference REF | Use reference ID instead of rule ID |
--dark | Dark mode output |
| Flag | Output |
|---|---|
| (none) | Guidance documents (.adoc, .html, .pdf) |
-s | Compliance script |
-p | Configuration profiles (one per payload) |
-P | Single consolidated configuration profile |
-D | DDM components |
-x | Excel spreadsheet |
Additional options:
| Flag | Description |
|---|---|
-h | Show help message |
-l LOGO | Include custom logo in documentation |
-H HASH | Sign configuration profiles with certificate |
-a NAME | Custom name for audit plist and log |
-r REF | Use reference ID instead of rule ID |
Common Examples
Section titled “Common Examples”Generate all outputs:
./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yaml -AGenerate documentation only:
./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yamlGenerate everything for MDM deployment:
./mscp.py guidance custom/baselines/DISA-STIG_macos_26.0.yaml -s -p -dGenerate with signed profiles:
./mscp.py guidance custom/baselines/cis_lvl2_macos_26.0.yaml -p -H YOUR_CERT_HASHGenerate documentation with custom logo:
./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yaml -l /path/to/logo.pngGenerate Markdown output:
./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yaml -mGenerate documentation in a specific language:
./mscp.py guidance custom/baselines/800-53r5_moderate_macos_26.0.yaml -L deThe default language is English (en). Available languages are determined by the locales present in config/locales/. See Generate Localization for how to create and compile translation files.
Generate documentation only:
./scripts/generate_guidance.py baselines/800-53r5_moderate.yamlGenerate everything for MDM deployment:
./scripts/generate_guidance.py -s -p -D baselines/DISA-STIG.yamlGenerate with signed profiles:
./scripts/generate_guidance.py -p -H YOUR_CERT_HASH baselines/cis_lvl2.yamlGenerate documentation with custom logo:
./scripts/generate_guidance.py -l /path/to/logo.png baselines/800-53r5_moderate.yamlBuilt-in vs Custom Baselines
Section titled “Built-in vs Custom Baselines”| Type | Location | Use Case |
|---|---|---|
| Generated | config/custom/baselines/ | Baselines created by ./mscp.py baseline |
| Tailored | config/custom/baselines/ | Tailored baselines for your organization |
| Type | Location | Use Case |
|---|---|---|
| Built-in | baselines/ | Standard frameworks without customization |
| Custom | build/baselines/ | Tailored baselines for your organization |
Both produce the same outputs. Custom baselines reflect your organization’s specific settings and excluded rules.
Next Steps
Section titled “Next Steps”- How to Generate Configuration Profiles — Details on the
-pflag - How to Generate Compliance Scripts — Details on the
-sflag - Guidance File Example — See a sample PDF output