21 min readContent Generation

Implementation Guide: Draft Emergency Action Plans, COOPs & Training Support Packages

Step-by-step implementation guide for deploying AI to draft emergency action plans, coops & training support packages for Government & Defense clients.

Software Procurement

Microsoft Azure OpenAI Service (Azure Government)

Microsoft Azure GovernmentGPT-5.4Qty: Consumption-based

GPT-5.4: ~$0.005/1K input, ~$0.015/1K output. Full COOP (50–80 pages): ~$15–$30 per generation. EAP (15–25 pages): ~$5–$10. TSP (30–60 pages): ~$10–$20.

Required for all document generation. COOPs and EAPs frequently contain sensitive facility and personnel information (CUI//PRVCY for personnel rosters, CUI//CIKR for critical infrastructure details). All processing must remain within the FedRAMP High authorized boundary.

Microsoft SharePoint GCC High

MicrosoftSharePoint GCC High

Included in M365 GCC High

Stores COOP, EAP, and TSP drafts and approved versions. COOPs and EAPs must be version-controlled (annual review cycle) and access-controlled (not all staff should access the full COOP — need-to-know basis). TSPs are stored in a training library accessible to designated training developers and instructors.

Microsoft Power Automate (GCC High)

Microsoft Power Automate (GCC High)

MicrosoftGCC High

Included

Automates the annual COOP review cycle: triggers review workflows, routes sections to responsible owners, tracks completion, and generates the updated draft. Also triggers EAP review when facility changes occur (new floor plan, change in hazmat storage, personnel count changes).

HSIN (Homeland Security Information Network)

HSIN (Homeland Security Information Network)

DHS

$0

Government access only (no cost)

For state and local emergency management clients, HSIN is the primary secure collaboration platform for sharing COOPs and EAPs with state emergency management agencies, FEMA regions, and DHS Protective Security Advisors (PSAs). MSP must verify the client has active HSIN credentials before configuring distribution workflows.

Army Training Requirements and Resources System (ATRRS) — Integration

U.S. Army / DoD

$0

Government access (contractor access requires CAC or PKI credential). License type: Government access.

For defense contractor clients developing TSPs under Army training development contracts, ATRRS is the authoritative system for training records and TSP registration. The TSP generation pipeline must produce output in the format required for ATRRS upload. Contractor access requires appropriate contract authorization.

Prerequisites

  • Facility data inventory: EAP and COOP generation requires structured facility data: building addresses, floor plans (room/zone labels), occupant counts by floor, emergency exit locations, assembly areas, hazmat storage locations, utility shutoffs, and backup power systems. Work with the client's facilities manager to collect and organize this data before generation begins.
  • Mission-Essential Function (MEF) identification: COOP generation requires a completed MEF identification analysis — the list of functions the organization must continue at minimum during a disruption, ranked by priority and recovery time objective (RTO). This is a policy determination made by agency leadership, not a technical task. If the client has not completed MEF identification, this must be done before COOP generation. FCD-1 Annex B provides the framework.
  • Personnel roster and successor order: COOPs require a designated order of succession (who assumes leadership if primary officials are unavailable) and an emergency contact roster. These contain CUI//PRVCY — handle with strict access controls. Obtain from the client's HR or security office.
  • Vital records inventory: COOPs must address vital records protection — the list of records essential to reconstituting operations. Obtain the client's vital records inventory or work with them to create one.
  • Task/condition/standard inputs (TSPs): TSP generation requires inputs from subject matter experts: the specific task being trained, the conditions under which the task is performed, the standard for successful performance, and the reference materials (FM, TM, regulation) that define the standard. The MSP configures the generation pipeline; the SME provides the inputs.
  • FCD-1 and HSEEP templates: Download the current Federal Continuity Directive 1 (FCD-1) from FEMA (https://www.fema.gov/emergency-managers/national-preparedness/continuity) and the current HSEEP guidance. These define the required COOP format and content for federal agencies.
  • IT admin access: Azure Government subscription, SharePoint GCC High, Power Automate.

Installation Steps

...

Step 1: Build the Facility Data Model

Capture structured facility data for EAP and COOP generation in a standardized JSON schema stored in SharePoint GCC High.

facility_data_model.py
python
# Standard schema and example populated facility data for EAP/COOP
# generation

# facility_data_model.py
# Standard schema for facility data inputs to EAP/COOP generation

FACILITY_SCHEMA = {
    "facility_id": "str — unique identifier (e.g., BLDG-001)",
    "facility_name": "str — official name",
    "address": {
        "street": "str",
        "city": "str",
        "state": "str",
        "zip": "str"
    },
    "classification": "str — Unclassified / CUI / Classified",
    "agency_tenant": "str — primary occupying agency/organization",
    "occupant_count": {
        "normal_operations": "int",
        "maximum_occupancy": "int",
        "after_hours_estimate": "int"
    },
    "floors": [
        {
            "floor_number": "int or str (e.g., 'B1', '1', '2')",
            "primary_function": "str (e.g., 'Executive Offices', 'Data Center', 'Lab')",
            "occupant_count": "int",
            "emergency_exits": ["str — door/stairwell descriptions"],
            "assembly_area": "str — location description",
            "aps_and_wardens": [
                {"name": "str", "role": "str (Warden/Deputy)", "phone": "str"}
            ]
        }
    ],
    "hazmat_storage": [
        {"location": "str", "material": "str", "quantity": "str", "sds_on_file": "bool"}
    ],
    "utility_shutoffs": {
        "gas": "str — location description",
        "electric": "str — location description",
        "water": "str — location description"
    },
    "backup_systems": {
        "generator": {"present": "bool", "capacity_kw": "int", "fuel_type": "str", "runtime_hours": "int"},
        "ups": {"present": "bool", "coverage": "str"},
        "backup_comms": ["str — radio, satellite phone, etc."]
    },
    "emergency_contacts": [
        {"role": "str", "name": "str", "primary_phone": "str", "alternate_phone": "str"}
    ],
    "local_emergency_services": {
        "police_non_emergency": "str",
        "fire_non_emergency": "str",
        "hospital": "str",
        "poison_control": "1-800-222-1222"
    },
    "nearest_shelter": "str — location for severe weather/shelter-in-place",
    "facility_security_officer": {"name": "str", "phone": "str", "email": "str"}
}

# Example populated facility data
EXAMPLE_FACILITY = {
    "facility_id": "BLDG-MAIN-01",
    "facility_name": "Headquarters Building — Main Campus",
    "address": {"street": "1234 Federal Drive", "city": "Arlington", "state": "VA", "zip": "22201"},
    "classification": "CUI",
    "agency_tenant": "Defense Logistics Agency — Headquarters",
    "occupant_count": {"normal_operations": 450, "maximum_occupancy": 600, "after_hours_estimate": 25},
    "floors": [
        {
            "floor_number": 1,
            "primary_function": "Lobby, Security, Cafeteria",
            "occupant_count": 80,
            "emergency_exits": ["North lobby main exit", "South loading dock exit", "West stairwell A"],
            "assembly_area": "North parking lot — Designated Zone A (marked with orange cones)",
            "aps_and_wardens": [
                {"name": "Smith, Jane", "role": "Warden", "phone": "703-555-0101"},
                {"name": "Jones, Mark", "role": "Deputy", "phone": "703-555-0102"}
            ]
        }
    ],
    "hazmat_storage": [
        {"location": "Basement mechanical room", "material": "Cleaning chemicals", "quantity": "50 gallons", "sds_on_file": True}
    ],
    "utility_shutoffs": {
        "gas": "Northwest exterior wall, red valve, key with Security Desk",
        "electric": "Basement electrical room, main breaker panel B-1",
        "water": "Mechanical room B-3, blue shutoff valve"
    },
    "backup_systems": {
        "generator": {"present": True, "capacity_kw": 500, "fuel_type": "Diesel", "runtime_hours": 72},
        "ups": {"present": True, "coverage": "Server room and critical workstations only"},
        "backup_comms": ["Motorola APX 8000 radios (Security desk)", "Iridium satellite phone (Emergency cache)"]
    },
    "emergency_contacts": [
        {"role": "Facility Manager", "name": "Williams, Robert", "primary_phone": "703-555-0200", "alternate_phone": "703-555-0201"},
        {"role": "Security Operations Center", "name": "SOC (24/7)", "primary_phone": "703-555-0911", "alternate_phone": ""}
    ],
    "local_emergency_services": {
        "police_non_emergency": "703-558-2222",
        "fire_non_emergency": "703-558-3333",
        "hospital": "Virginia Hospital Center — 1701 N George Mason Dr, Arlington VA",
        "poison_control": "1-800-222-1222"
    },
    "nearest_shelter": "Arlington County Emergency Shelter — Washington-Lee High School, 1301 N Stafford St",
    "facility_security_officer": {"name": "Thompson, Carol", "phone": "703-555-0300", "email": "carol.thompson@agency.gov"}
}

Step 2: Build the Emergency Action Plan Generator

Generate a complete, facility-specific EAP from the structured facility data model.

eap_generator.py
python
# eap_generator.py

from openai import AzureOpenAI
import os, json, datetime

client = AzureOpenAI(
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_key=os.environ["AZURE_OPENAI_KEY"],
    api_version="2024-08-01-preview"
)

EAP_SYSTEM_PROMPT = """You are an emergency management specialist with expertise in
OSHA 29 CFR 1910.38 and federal facility emergency planning. Generate Emergency Action
Plans that are clear, actionable, and formatted for use by all employees including
those without emergency management training.

RULES:
- Use plain language — avoid jargon; employees must understand this under stress
- Use numbered action steps for all emergency procedures
- Write in second person ("You should...", "Proceed to...")
- Every emergency type must include: recognition cues, immediate actions, evacuation/shelter actions, accountability procedures, and all-clear procedures
- Flag any facility-specific data gaps with [FACILITY DATA REQUIRED]
- Mark output as DRAFT requiring Facility Manager and Safety Officer review"""

def generate_eap(facility_data: dict) -> str:
    facility_json = json.dumps(facility_data, indent=2)

    user_prompt = f"""Generate a complete Emergency Action Plan (EAP) for the following facility.

FACILITY DATA:
{facility_json}

Generate all required sections per OSHA 29 CFR 1910.38 and GSA PBS P 100 standards:

1. INTRODUCTION AND SCOPE
2. EMERGENCY REPORTING PROCEDURES (how to report each emergency type)
3. EMERGENCY CONTACTS AND NOTIFICATION CHAIN
4. FLOOR WARDEN ORGANIZATION (by floor, with names/phones from facility data)
5. EMERGENCY PROCEDURES — generate a separate procedures section for each:
   a. Fire/Smoke
   b. Active Threat / Shelter-in-Place (Violence)
   c. Medical Emergency
   d. Severe Weather / Tornado
   e. Hazardous Materials Release
   f. Bomb Threat
   g. Power Outage
   h. Earthquake
   i. Utility Failure (gas leak, water main break)
   j. Civil Disturbance
6. EVACUATION PROCEDURES (general + floor-specific routes from facility data)
7. ASSEMBLY AREAS AND ACCOUNTABILITY
8. PERSONNEL WITH DISABILITIES — assistance procedures
9. VISITORS AND CONTRACTORS — emergency instructions
10. VITAL RECORDS AND EQUIPMENT — what to grab if safe to do so
11. PLAN MAINTENANCE — annual review schedule and revision history

Include a one-page Quick Reference Card at the end (emergency numbers + key actions for top 5 emergencies).

Facility data: {facility_json}"""

    response = client.chat.completions.create(
        model=os.environ["AZURE_OPENAI_DEPLOYMENT"],
        messages=[
            {"role": "system", "content": EAP_SYSTEM_PROMPT},
            {"role": "user", "content": user_prompt}
        ],
        temperature=0.1,
        max_tokens=4000
    )

    header = f"""[DRAFT — AI GENERATED — REQUIRES FACILITY MANAGER, SAFETY OFFICER, AND LOCAL EMERGENCY SERVICES COORDINATION BEFORE DISTRIBUTION]
[Revision: 1.0 — Initial Draft | Date: {datetime.date.today().isoformat()}]
[Review Due: {(datetime.date.today().replace(year=datetime.date.today().year+1)).isoformat()}]

"""
    return header + response.choices[0].message.content

Step 3: Build the COOP Generator

Generate a complete COOP document from structured organizational inputs, aligned to FCD-1 and NIST SP 800-34.

coop_generator.py
python
# Generates a complete FCD-1/NIST SP 800-34 aligned COOP document from
# structured organizational data

# coop_generator.py

COOP_SYSTEM_PROMPT = """You are a federal continuity of operations planning specialist
with expertise in Federal Continuity Directive 1 (FCD-1), NIST SP 800-34, and
OMB M-19-17. Generate COOPs that meet federal requirements and are actionable
by personnel without prior continuity planning experience.

RULES:
- Follow FCD-1 required COOP elements exactly
- Mission-Essential Functions must be listed in priority order with RTOs
- Alternate facility details must be specific and verifiable
- Succession order must have at least 3 levels of depth
- All personnel information is CUI//PRVCY — mark accordingly on every page
- Mark output as DRAFT requiring agency leadership review and COOP coordinator approval"""

def generate_coop(org_data: dict) -> str:
    """Generate a draft COOP from organizational continuity data."""

    org_json = json.dumps(org_data, indent=2)

    user_prompt = f"""Generate a complete Continuity of Operations Plan (COOP) for:

ORGANIZATION DATA:
{org_json}

Generate all FCD-1 required elements:

SECTION 1: PURPOSE, SCOPE, AND APPLICABILITY
SECTION 2: MISSION-ESSENTIAL FUNCTIONS (MEFs)
   - List each MEF in priority order
   - Include: function description, responsible office, RTO (hours), dependencies
   - Primary MEFs (must continue within 12 hours)
   - Supporting MEFs (must continue within 30 days)

SECTION 3: ORDERS OF SUCCESSION
   - Agency Head succession (minimum 3 levels)
   - Key position succession for each MEF
   - Geographic and organizational dispersion requirements

SECTION 4: DELEGATIONS OF AUTHORITY
   - What authorities are pre-delegated during a continuity event
   - Limits of delegated authority
   - Conditions for invoking delegations

SECTION 5: CONTINUITY FACILITIES
   - Primary facility
   - Alternate facility (location, capacity, systems available)
   - Mobile/virtual operating capability

SECTION 6: CONTINUITY COMMUNICATIONS
   - Primary communication systems
   - Alternate communications (satellite, radio, GETS/WPS)
   - Communication tree and contact list

SECTION 7: VITAL RECORDS AND DATABASES
   - List of vital records by category
   - Location (original and backup)
   - Recovery procedures

SECTION 8: HUMAN CAPITAL
   - Essential personnel identification
   - Telework and remote work capability
   - Personnel accountability during continuity events

SECTION 9: DEVOLUTION OF CONTROL AND DIRECTION
   - Conditions for devolution
   - Devolution site and point of contact
   - Devolution procedures

SECTION 10: RECONSTITUTION
   - Decision criteria for reconstitution
   - Site restoration priorities
   - Return-to-normal operations procedures

SECTION 11: COOP PLAN MAINTENANCE AND TESTING
   - Annual review schedule
   - Test/training/exercise schedule (minimum: 1 tabletop + 1 functional per year)
   - Corrective action process

APPENDICES:
A: Emergency Contact Roster [MARK: CUI//PRVCY]
B: Vital Records Inventory
C: Alternate Facility Site Survey
D: Acronyms and Definitions

Organization data: {org_json}"""

    response = client.chat.completions.create(
        model=os.environ["AZURE_OPENAI_DEPLOYMENT"],
        messages=[
            {"role": "system", "content": COOP_SYSTEM_PROMPT},
            {"role": "user", "content": user_prompt}
        ],
        temperature=0.1,
        max_tokens=4000
    )

    return f"[DRAFT — AI GENERATED — CUI//PRVCY — REQUIRES AGENCY LEADERSHIP REVIEW]\n\n{response.choices[0].message.content}"

Step 4: Build the Training Support Package Generator

Generate structured TSPs from SME inputs, formatted for Army/DoD training development standards.

tsp_generator.py
python
# tsp_generator.py

TSP_SYSTEM_PROMPT = """You are a military training development specialist with expertise
in Army training development doctrine (ADDIE model, Army Training Circular 25-30).
Generate Training Support Packages (TSPs) that meet Army standards and enable
standardized instruction delivery by qualified instructors.

RULES:
- Follow Army TSP format (Commander's Task Summary, Instructor Guide, Student Handouts, Test)
- Every learning objective must be measurable (use action verbs: identify, demonstrate, calculate, construct)
- Task/Condition/Standard must be precise and assessable
- Include safety warnings and environmental considerations where applicable
- Mark output as DRAFT requiring Training Developer and Master Gunner/Subject Matter Expert review"""

def generate_tsp(tsp_inputs: dict) -> str:
    inputs_json = json.dumps(tsp_inputs, indent=2)

    user_prompt = f"""Generate a complete Training Support Package (TSP) from the following inputs:

TSP INPUTS:
{inputs_json}

Generate all required TSP components:

PART 1: COMMANDER'S TASK SUMMARY
- Task Number and Title
- Task Conditions
- Task Standards
- Training Location
- Training Time Required
- References (FM, TM, AR, etc.)
- Safety/Environmental Considerations
- Equipment Required (trainer and trainee)

PART 2: INSTRUCTOR GUIDE
- Learning Objectives (Terminal and Enabling)
- Instructor Prerequisites
- Lesson Plan by Phase:
  * Motivator (5 min): why this task matters to the mission
  * Presentation (variable): content delivery with timing
  * Application (variable): hands-on practice activities
  * Check on Learning: formative assessment questions
  * Summary: key points reinforcement
- Instructor Notes and Teaching Points
- Common Student Errors and Corrections

PART 3: STUDENT HANDOUT
- Task overview in student-friendly language
- Step-by-step procedures
- Decision aids and checklists
- Reference quick cards

PART 4: PRACTICAL EXERCISE
- Exercise scenario
- Exercise tasks (individual and collective)
- GO/NO-GO criteria

PART 5: WRITTEN TEST
- 10 multiple-choice questions covering key learning objectives
- Answer key
- Remediation guidance for common wrong answers

TSP inputs: {inputs_json}"""

    response = client.chat.completions.create(
        model=os.environ["AZURE_OPENAI_DEPLOYMENT"],
        messages=[
            {"role": "system", "content": TSP_SYSTEM_PROMPT},
            {"role": "user", "content": user_prompt}
        ],
        temperature=0.2,
        max_tokens=4000
    )

    return f"[DRAFT — AI GENERATED — REQUIRES SME AND TRAINING DEVELOPER REVIEW BEFORE INSTRUCTIONAL USE]\n\n{response.choices[0].message.content}"

Step 5: Configure the Annual COOP Review Power Automate Flow

Automate the annual COOP review cycle to ensure the plan stays current without requiring the continuity coordinator to manually track and initiate reviews.

Power Automate Flow: Annual COOP Review Cycle

TRIGGER: Scheduled — January 2 each year at 08:00 ET

STEP 1: Retrieve current COOP from SharePoint

  • Get file: /COOPs/[Agency]/[Agency]-COOP-Current-Approved.docx
  • Extract metadata: last review date, version number, COOP coordinator

STEP 2: Generate review notification emails

  • Send to COOP Coordinator — Subject: "ACTION REQUIRED: Annual COOP Review — Due March 31" | Body: "Your agency's COOP is due for annual review per FCD-1. The current approved version (attached) requires review and update in the following areas: [list sections]. Please complete review by March 1 to allow time for leadership approval before the March 31 deadline." | Attachment: Current approved COOP
  • Send to each Section Owner (succession officer, MEF owners, vital records manager) — Subject: "COOP Review — Your Section Due by February 15" | Body: "Please review your assigned COOP section and submit any updates to the COOP Coordinator by February 15."

STEP 3: Create review task list in SharePoint

  • Create SharePoint list: "COOP Review Tasks [Year]"
  • Add item for each reviewable section with fields: Section [Name], Owner [Person], Due Date: February 15, Status: Not Started, Comments: (blank)

STEP 4: Weekly reminder (every Monday Feb 1 – March 1)

  • Check review task list for incomplete items
  • Send reminder to owners of incomplete sections

STEP 5: Trigger regeneration (March 1 — after review inputs collected)

HTTP POST to Azure Function to regenerate COOP with collected review updates
http
POST to Azure Function: regenerate_coop_with_updates
Body: {
  "base_coop_path": "[SharePoint path]",
  "update_inputs": "[collected changes from review tasks]"
}

STEP 6: Route updated draft for leadership approval

  • Send approval request to Agency Director/Deputy Director
  • Include: diff showing changes from prior version, COOP coordinator certification
  • Timeout: 10 business days (escalate if no response)

STEP 7: Publish approved version

  • On approval: rename approved file to [Agency]-COOP-[Year]-Approved.docx
  • Archive prior version to /Archive/ folder
  • Update COOP tracker: version, approval date, next review date
  • Distribute to HSIN (if applicable) and designated emergency management contacts

Custom AI Components

COOP Gap Analysis Prompt

Type: Prompt Compares an existing COOP against current FCD-1 requirements and identifies gaps or outdated elements requiring update.

Implementation

text
SYSTEM PROMPT:
You are a federal continuity planning auditor. Compare the following existing COOP
against current Federal Continuity Directive 1 (FCD-1) requirements.

For each FCD-1 required element, assess the existing COOP:
- COMPLIANT: Element is present and meets current FCD-1 requirements
- OUTDATED: Element is present but references superseded guidance, outdated personnel, or expired dates
- INCOMPLETE: Element is present but missing required sub-components
- MISSING: Element is not addressed in the existing plan

For each non-compliant item:
- Describe the specific deficiency
- Cite the FCD-1 section requiring the element
- Estimate effort to remediate (Low / Medium / High)
- Recommend specific corrective action

Output as a structured gap analysis report with a compliance score (% of elements compliant).

EXISTING COOP:
{existing_coop_text}

EAP Quick Reference Card Generator

Type: Prompt Generates a single-page laminated quick reference card from the full EAP — the card posted in every office and common area.

Implementation:

EAP Quick Reference Card Generator Prompt
text
SYSTEM PROMPT:
From the following Emergency Action Plan, generate a single-page Quick Reference Card
suitable for lamination and posting in offices and common areas.

FORMAT REQUIREMENTS:
- Maximum 400 words total
- Large, clear headers for each emergency type
- 3-5 bullet points maximum per emergency (most critical actions only)
- Bold the single most important action for each emergency type
- Include emergency phone numbers in a prominent box at the top
- Include assembly area location prominently
- End with: "For full procedures, see the complete Emergency Action Plan posted at [LOCATION]"
- Use plain language — no acronyms without spelling out
- Design for reading in 30 seconds under stress

EMERGENCY ACTION PLAN:
{eap_text}

Testing & Validation

  • EAP completeness test: Generate a draft EAP from the example facility data and verify all 11 required sections are present. Have the facility manager verify that all facility-specific details (warden names, assembly areas, utility shutoff locations) are correctly reflected from the input data. Any discrepancy between input data and generated output is a pipeline defect.
  • OSHA compliance check: Have the client's safety officer or EHS consultant verify the generated EAP covers all required elements per OSHA 29 CFR 1910.38: reporting procedures, alarm system, evacuation procedures, emergency escape routes, procedures for employees who remain to shut down critical operations, and accounting for employees after evacuation.
  • COOP MEF coverage test: Generate a draft COOP and verify all identified MEFs are addressed with RTO, responsible office, and dependencies. The COOP coordinator should verify the priority ranking of MEFs matches leadership direction.
  • CUI marking test: Verify all COOP documents containing personnel rosters are marked CUI//PRVCY on every page before any distribution. Attempt to share the document via a standard SharePoint link and confirm the sensitivity label blocks external sharing.
  • TSP learning objective quality test: Have a training developer or Master Gunner review generated TSP learning objectives for measurability (each objective should be observable and assessable). Target: 100% of terminal and enabling learning objectives meet the condition-behavior-standard format.
  • COOP review flow test: Trigger the annual review Power Automate flow manually in a test environment. Verify all notification emails are sent to correct recipients, SharePoint tasks are created correctly, and the regeneration trigger fires on schedule.
  • EAP quick reference card test: Generate a quick reference card and verify it fits on one page (8.5x11) in 12pt font. Have a non-emergency-management employee read it and demonstrate they can identify the correct action for three random emergency scenarios.
  • Alternate facility data validation: Verify that the alternate facility listed in the COOP is actually available and has been pre-arranged with the facility owner. The AI generates language based on inputs — it cannot verify that the alternate facility agreement is current. The COOP coordinator must physically verify this annually.

Client Handoff

Handoff Meeting Agenda (75 minutes — Agency/Facility Leadership + COOP Coordinator + Safety Officer + IT Lead)

1
Facility data model review (15 min): Walk through the populated facility data model with the facility manager; Verify all data points are current and accurate; Establish the data update process (who updates, how often, what triggers an update)
2
Document generation demonstration (20 min): Generate a live EAP from the facility data and review the output; Generate a live COOP section and review the output; Show the COOP gap analysis tool against any existing plan
3
Review and approval workflow (15 min): Confirm the EAP review and approval chain (facility manager → safety officer → agency leadership); Confirm the COOP review chain (section owners → COOP coordinator → agency director); Review the annual review Power Automate flow calendar
4
Distribution and access controls (10 min): Review who has access to each document type; Confirm HSIN distribution list for COOP (if applicable); Review CUI//PRVCY handling for personnel roster appendices
5
Documentation handoff: Facility data model (populated JSON — stored in SharePoint GCC High); Generated EAP and COOP (draft versions — pending client review and approval); Annual review Power Automate flow documentation; Prompt template library (EAP, COOP, TSP, gap analysis, quick reference card); COOP coordinator contact list and escalation path; MSP support contact card

Maintenance

Monthly Tasks

  • Verify Power Automate flow health (no failed runs, credentials not expired).
  • Check for facility data changes reported by the facility manager (personnel changes, new hazmat, floor plan changes). Update the data model and flag for EAP update if changes are material.

Quarterly Tasks

  • Review COOP vital records inventory — verify backup copies of vital records are current.
  • Review succession roster — verify all named successors are still in their roles and contact information is current.
  • For TSP clients: check whether any referenced FMs, TMs, or regulations have been revised. Flag TSPs that reference superseded publications for update.

Annual Tasks

  • Trigger the COOP annual review cycle (Power Automate handles this automatically in January).
  • EAP annual review: generate a new EAP draft incorporating any facility changes from the year. Route for safety officer review and updated employee training.
  • Conduct or support a COOP tabletop exercise using the updated plan. Document results and feed lessons learned back into the next plan revision.
  • Verify alternate facility agreement is current (physical or written confirmation from the alternate site owner).

Alternatives

FEMA Continuity Planning Suite (Direct Federal Agencies)

FEMA provides continuity planning templates, workshops, and technical assistance directly to federal agencies through the Continuity Division. For agencies with FEMA regional relationships, FEMA technical assistance may supplement or partially replace the AI-generated COOP drafting. Best for: Agencies that qualify for and can schedule FEMA technical assistance. Tradeoffs: FEMA assistance is not on-demand — scheduling and availability vary by region. AI-assisted drafting is faster and available immediately.

Preparis / Castellan (Commercial Business Continuity Platforms)

Commercial BCP/COOP platforms like Preparis and Castellan provide guided plan-building workflows, exercise management, and notification systems. Best for: Defense contractors and commercial organizations that need a managed BCP platform rather than custom AI generation. Tradeoffs: Not FedRAMP authorized — not appropriate for federal agency CUI environments. Suitable for contractor unclassified COOP only.

Manual Expert Development (Conservative)

For high-security facilities (SCIFs, nuclear facilities, classified programs), AI-generated EAPs and COOPs may not be appropriate if the facility data itself is classified. Manual expert development by cleared emergency management specialists is required. The MSP can support document management and annual review workflows without using AI generation for the sensitive facility content.

Want early access to the full toolkit?