Document Standards
All Crew Aids must follow these structural standards. The GitLab CI/CD pipeline parses folder and file names to generate PDF filenames and validate the site build - deviations from these standards can cause build failures or incorrect PDF output.
Labeling Systemβ
Every Crew Aid has a Reference Code that uniquely identifies it. This code is derived entirely from where the document lives in the folder structure - it is never written into the files themselves.
Full Reference Code format: <UNIT>-<CATEGORY>-<TYPE>-<SERIES>
Example: 262COS-DIP-SOP-001 - a Standard Operating Procedure (SOP) developed by 262COS focused on the DIP.
Document Typesβ
| Type | Description |
|---|---|
SOP | Standard Operating Procedure - step-by-step procedures to achieve a specific outcome |
AID | Aid - reference or methodology guide for situations where a rigid step-by-step SOP is not viable |
CL | Checklist - normally references SOPs for accomplishing task items within the list |
Category IDsβ
| Category | Folder | Description |
|---|---|---|
EP | 00_EMERGENCY | Emergency procedures |
PRE | 01_PRE_EXECUTION | Pre-mission, planning, and non-execution procedures |
DIP | 02_DIP | CVA/H DIP procedures |
MIP | 03_MIP | CVA/H MIP procedures |
COMM | 04_COMMUNICATION | Communication and task management tools and processes |
HA | 05_HOST_ANALYST | Host Analyst procedures |
NA | 06_NETWORK_ANALYST | Network Analyst procedures |
OPS | 07_OPERATIONS | General cyber operations procedures |
CTE | 08_CTE | Cyber Threat Emulation and red-team activities |
ICS | 09_ICS | ICS/SCADA related procedures |
LEAD | 10_ELEMENT_LEAD | Mission Element Lead processes |
IA | 11_INTEL | Intel related procedures |
ELK | 12_ELASTIC | Logstash, Elasticsearch, Kibana, and Beat procedures |
MS | 13_METASPONSE | Metasponse procedures |
SO | 14_SECURITY_ONION | Security Onion procedures |
EG | 16_ENDGAME | Endgame procedures |
GIT | 17_GIT | Git procedures |
POST | 99_POST_EXECUTION | Post-mission and debriefing procedures |
XX | XX_* | Reserved for draft, archived, or template documents |
Folder and File Namingβ
Document Folderβ
Create the document folder inside the appropriate category folder. The folder name encodes the document type, series number, and title:
<TYPE>-<SERIES> - <TITLE>
- Use the next unused series number for the given type within that category folder
- Use a space-hyphen-space (
-) separator between the series ID and the title - Keep the title short and descriptive
Example:
CREW_AIDS/02_DIP/SOP-005 - CVAH 3.8 DIP Operations Reference/
This folder encodes the reference code 262COS-DIP-SOP-005.
Page Filesβ
Each section of the document is a separate .md file. Files are displayed in alphabetical order, so prefix each filename with a zero-padded two-digit number and underscore:
00_introduction.md
01_procedures.md
02_reference.md
The # H1 heading on the first line of each file sets the page title in Docusaurus. If there is no H1, Docusaurus defaults to a cleaned-up version of the filename.
Assets Folderβ
Store all images used by the document in an assets/ subfolder inside the document folder. Keep assets specific to each document in that document's own assets/ folder to avoid filename collisions across documents.
SOP-005 - CVAH 3.8 DIP Operations Reference/
βββ assets/
β βββ screenshot.png
βββ _category_.json
βββ 00_introduction.md
βββ 01_procedures.md
_category_.jsonβ
Every document folder must contain a _category_.json file. This file tells Docusaurus to generate an index page for the document with navigation tiles for each sub-page.
Required format:
{
"label": "262COS-<CATEGORY>-<TYPE>-<SERIES> - <TITLE>",
"link": {
"type": "generated-index",
"description": "One-sentence description of what this document covers."
}
}
The description field must be inside the link object. Placing it at the top level is a common mistake that causes Docusaurus to ignore it silently - or in some versions, to throw a build error.
Correct:
{ "label": "...", "link": { "type": "generated-index", "description": "..." } }
Wrong:
{ "label": "...", "description": "...", "link": { "type": "generated-index" } }
The label must contain the full document identifier followed by the title, exactly matching the folder name. This is what appears in the Docusaurus sidebar.
00_introduction.md - Mandatory Requirementsβ
Every Crew Aid must have a 00_introduction.md as its first page. The CI/CD pipeline reads the revision history table from this file to construct the PDF filename - if the table is absent, the version date is omitted from the PDF name.
Mandatory sections:
- Revision History table (required for versioned PDF output) - add a new row for every change
- Purpose - one or two sentences on what the document is for
Optional but standard sections:
- End-State - expected results after successfully following the document
- Requirements - everything needed before starting
- Considerations - limitations, caveats, or context the reader should know
Revision History table format:
| Date | Author | Summary |
|:------------|:---------------|:---------------------|
| 22-MAR-2026 | CW2 Bernadotte | Initial draft |
| 01-APR-2026 | CW2 Bernadotte | Added Phase 2 steps |
Use DD-MON-YYYY date format. The most recent entry date is used as the version date in the PDF filename.