[
  {
    "id": "core-documentation-check-accuracy_installation_and_configuration_guide",
    "group": "core-documentation",
    "module": "core",
    "action": "check",
    "description": "Verify accuracy of the Installation and Configuration Guide against actual system behaviour",
    "status": "manual",
    "file": "tests/core/documentation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires expert human review: QA engineer must follow the guide step-by-step on a clean system",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires expert human review: QA engineer must follow the guide step-by-step on a clean system"
  },
  {
    "id": "core-documentation-check-accuracy_trouble_shooting_guide",
    "group": "core-documentation",
    "module": "core",
    "action": "check",
    "description": "Verify the Troubleshooting Guide procedures are accurate and complete",
    "status": "manual",
    "file": "tests/core/documentation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires expert human review to validate each troubleshooting scenario on a real system",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires expert human review to validate each troubleshooting scenario on a real system"
  },
  {
    "id": "core-documentation-write-changed_cli_configuration_commands",
    "group": "core-documentation",
    "module": "core",
    "action": "write",
    "description": "Extract and record changed CLI configuration commands for this release",
    "status": "automated",
    "file": "tests/core/documentation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-documentation-write-release_notes_feature_changes_and_known_issues",
    "group": "core-documentation",
    "module": "core",
    "action": "write",
    "description": "Extract and record Release Notes, feature changes, and known issues",
    "status": "automated",
    "file": "tests/core/documentation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-features-check-backward_compatibility_of_new_features",
    "group": "core-features",
    "module": "core",
    "action": "check",
    "description": "Verify new features are backward-compatible with existing configurations and older endpoint firmware",
    "status": "partial",
    "file": "tests/core/features.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Configuration import checks automated; functional compatibility with older endpoints requires manual testing",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Configuration import checks automated; functional compatibility with older endpoints requires manual testing"
  },
  {
    "id": "core-features-check-integration_of_new_features_with_existing_call_processing_and_modules",
    "group": "core-features",
    "module": "core",
    "action": "check",
    "description": "Verify new features integrate correctly with existing call processing and system modules",
    "status": "partial",
    "file": "tests/core/features.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "UI config checks automated; actual call-flow integration requires active telephony endpoints",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "UI config checks automated; actual call-flow integration requires active telephony endpoints"
  },
  {
    "id": "core-features-check-performance_and_resource_impact_assessment_of_new_features",
    "group": "core-features",
    "module": "core",
    "action": "check",
    "description": "Assess CPU/memory/network resource impact of new features under representative call load",
    "status": "manual",
    "file": "tests/core/features.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires SIPp load generator, performance monitoring infrastructure, and sustained load testing",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires SIPp load generator, performance monitoring infrastructure, and sustained load testing"
  },
  {
    "id": "core-features-check-provisioning_changes_for_new_features",
    "group": "core-features",
    "module": "core",
    "action": "check",
    "description": "Verify provisioning settings for new features are accessible in the admin portal",
    "status": "automated",
    "file": "tests/core/features.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-features-write-analysis_of_new_security_risks",
    "group": "core-features",
    "module": "core",
    "action": "write",
    "description": "Identify, analyse, and document new security risks introduced by features in this release",
    "status": "manual",
    "file": "tests/core/features.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Security risk analysis requires expert threat modelling, source code review, and human judgment",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Security risk analysis requires expert threat modelling, source code review, and human judgment"
  },
  {
    "id": "core-features-write-summary_of_each_new_feature_per_release",
    "group": "core-features",
    "module": "core",
    "action": "write",
    "description": "Extract and record a summary of each new feature included in this release",
    "status": "automated",
    "file": "tests/core/features.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-features-write-ui_ux_and_admin_portal_changes_validation",
    "group": "core-features",
    "module": "core",
    "action": "write",
    "description": "Capture and record all UI/UX changes in the admin portal for this release",
    "status": "automated",
    "file": "tests/core/features.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-installation-check-fresh_installation",
    "group": "core-installation",
    "module": "core",
    "action": "check",
    "description": "Verify complete fresh installation from scratch succeeds on each supported hypervisor",
    "status": "manual",
    "file": "tests/core/installation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires provisioning a clean VM, mounting ISO/OVA, and running the installation wizard",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires provisioning a clean VM, mounting ISO/OVA, and running the installation wizard"
  },
  {
    "id": "core-installation-check-initial_configuration",
    "group": "core-installation",
    "module": "core",
    "action": "check",
    "description": "Verify the initial configuration wizard completes successfully",
    "status": "automated",
    "file": "tests/core/installation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-installation-check-license_activation",
    "group": "core-installation",
    "module": "core",
    "action": "check",
    "description": "Verify license activation completes successfully and licensed features are unlocked",
    "status": "automated",
    "file": "tests/core/installation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-installation-check-post_install_service_status_and_port_verification",
    "group": "core-installation",
    "module": "core",
    "action": "check",
    "description": "Verify all required services are running and expected ports are open after installation",
    "status": "partial",
    "file": "tests/core/installation.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Service status via admin portal automated; TCP port verification requires nmap from external host",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Service status via admin portal automated; TCP port verification requires nmap from external host"
  },
  {
    "id": "core-interoperability-check-addm",
    "group": "core-interoperability",
    "module": "core",
    "action": "check",
    "description": "Verify ADDM integration is configured and reporting discovery data correctly",
    "status": "automated",
    "file": "tests/core/interoperability.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "External Systems",
        "value": "SIEM server (Splunk, ELK, QRadar) and/or ADDM/ADDM collector"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-interoperability-check-siem",
    "group": "core-interoperability",
    "module": "core",
    "action": "check",
    "description": "Verify SIEM integration is configured and forwarding security events",
    "status": "automated",
    "file": "tests/core/interoperability.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "External Systems",
        "value": "SIEM server (Splunk, ELK, QRadar) and/or ADDM/ADDM collector"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-repository-check-presence_of_all_mandatory_core-documentation_files",
    "group": "core-repository",
    "module": "core",
    "action": "check",
    "description": "Verify all mandatory core documentation files are listed in the repository",
    "status": "automated",
    "file": "tests/core/repository.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-repository-check-presence_of_companion_tools_and_supporting_scripts",
    "group": "core-repository",
    "module": "core",
    "action": "check",
    "description": "Verify companion tools and supporting scripts are available in the repository",
    "status": "automated",
    "file": "tests/core/repository.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-repository-check-presence_of_main_software_version_all_hypervisors",
    "group": "core-repository",
    "module": "core",
    "action": "check",
    "description": "Verify main software version packages are available for all supported hypervisors",
    "status": "automated",
    "file": "tests/core/repository.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-repository-check-presence_of_patch_version_and_its_compatibility",
    "group": "core-repository",
    "module": "core",
    "action": "check",
    "description": "Verify patch version packages and compatibility matrices are present",
    "status": "automated",
    "file": "tests/core/repository.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-repository-check-presence_of_release_notes_and_changelog",
    "group": "core-repository",
    "module": "core",
    "action": "check",
    "description": "FASE1-TEST-1779730773816",
    "status": "automated",
    "file": "tests/core/repository.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-repository-check-presence_of_trouble_shooting_guide",
    "group": "core-repository",
    "module": "core",
    "action": "check",
    "description": "Verify Troubleshooting Guide is present in the repository",
    "status": "automated",
    "file": "tests/core/repository.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Navigate to the download / documentation portal",
      "Search or locate the relevant file/link by filename pattern",
      "Assert presence and visibility of the expected document"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-security-check-auto_enrollment_certificate_management_process",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify auto-enrollment certificate management (ACME/Let's Encrypt) is configured and functional",
    "status": "automated",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-security-check-encryption_of_sensitive_data_at_rest_and_in_transit",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify sensitive data is encrypted at rest (DB) and in transit (HTTPS/TLS)",
    "status": "partial",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "HTTPS/TLS configuration verified via portal; DB-level at-rest encryption requires SSH/CLI access",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "HTTPS/TLS configuration verified via portal; DB-level at-rest encryption requires SSH/CLI access"
  },
  {
    "id": "core-security-check-ip_access_control_lists",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify IP Access Control Lists are properly configured and enforced",
    "status": "automated",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-security-check-known_vulnerable_dependencies_in_release_artifacts",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify release artifacts do not contain known vulnerable dependencies (CVE scan)",
    "status": "partial",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Vulnerability report page in portal automated; actual CVE scanning requires Trivy/OWASP-DC in CI",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Full CVE / dependency scanning (Trivy, Grype, OWASP Dependency-Check) in CI pipeline"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Vulnerability report page in portal automated; actual CVE scanning requires Trivy/OWASP-DC in CI"
  },
  {
    "id": "core-security-check-obtain_formal_security_team_sign_off_for_the_new_version",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Obtain formal written sign-off from the Security team approving the release",
    "status": "manual",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Governance gate requiring human decision and formal sign-off document; cannot be automated",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Governance gate requiring human decision and formal sign-off document; cannot be automated"
  },
  {
    "id": "core-security-check-previous_security_findings_have_been_remediated_before_release",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify all previously identified security findings are remediated before release",
    "status": "manual",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires access to security issue tracker and cross-referencing CVEs with the release changelog",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires access to security issue tracker and cross-referencing CVEs with the release changelog"
  },
  {
    "id": "core-security-check-security_event_logging_and_audit_trail_is_active",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify security event logging and audit trail are active and recording events",
    "status": "automated",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-security-check-sip_tls_and_srtp_encryption_enabled_by_default",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify SIP TLS and SRTP media encryption are enabled by default",
    "status": "automated",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-security-check-unnecessary_services_and_ports_are_disabled",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify unnecessary services and network ports are disabled",
    "status": "partial",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Service status via admin portal automated; port scanning requires nmap from external host",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Service status via admin portal automated; port scanning requires nmap from external host"
  },
  {
    "id": "core-security-check-verify_role_based_access_control_and_least_privilege_principle",
    "group": "core-security",
    "module": "core",
    "action": "check",
    "description": "Verify RBAC roles are correctly defined and least-privilege principle is enforced",
    "status": "automated",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-security-write-strong_password_policy",
    "group": "core-security",
    "module": "core",
    "action": "write",
    "description": "Navigate to security settings and record the current password policy configuration",
    "status": "automated",
    "file": "tests/core/security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-upgrade-check-configuration_and_database_migration_validation",
    "group": "core-upgrade",
    "module": "core",
    "action": "check",
    "description": "Verify configuration objects and database content migrate correctly after upgrade",
    "status": "partial",
    "file": "tests/core/upgrade.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "UI configuration checks automated; DB schema integrity validation requires direct database access",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "UI configuration checks automated; DB schema integrity validation requires direct database access"
  },
  {
    "id": "core-upgrade-check-in_place_upgrade_from_previous_major_version",
    "group": "core-upgrade",
    "module": "core",
    "action": "check",
    "description": "Verify in-place upgrade from the previous major version completes successfully without data loss",
    "status": "manual",
    "file": "tests/core/upgrade.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires a running instance of the previous version and dedicated upgrade test environment",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires a running instance of the previous version and dedicated upgrade test environment"
  },
  {
    "id": "core-upgrade-check-post_upgrade_regression_of_core_features",
    "group": "core-upgrade",
    "module": "core",
    "action": "check",
    "description": "Run automated regression checks on core portal features after upgrade",
    "status": "automated",
    "file": "tests/core/upgrade.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-upgrade-check-rollback_procedure_execution_and_verification",
    "group": "core-upgrade",
    "module": "core",
    "action": "check",
    "description": "Verify the rollback procedure successfully reverts the system to the previous version",
    "status": "manual",
    "file": "tests/core/upgrade.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires VM snapshot revert or package downgrade; needs physical/hypervisor-level access",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires VM snapshot revert or package downgrade; needs physical/hypervisor-level access"
  },
  {
    "id": "core-upgrade-check-schema_upgrade_and_data_integrity_check",
    "group": "core-upgrade",
    "module": "core",
    "action": "check",
    "description": "Verify database schema is correctly upgraded and all data maintains integrity",
    "status": "manual",
    "file": "tests/core/upgrade.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires direct database access (psql/mysql) and schema comparison tooling",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires direct database access (psql/mysql) and schema comparison tooling"
  },
  {
    "id": "core-upgrade-check-zero_downtime_upgrade_where_supported",
    "group": "core-upgrade",
    "module": "core",
    "action": "check",
    "description": "Verify zero-downtime upgrade keeps the service available throughout the upgrade process",
    "status": "manual",
    "file": "tests/core/upgrade.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Prepare clean or previous-version VM/image",
      "Perform installation or upgrade procedure",
      "Post-install verification via portal + external tools"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires active call sessions monitored during the upgrade window; calls cannot be managed by Playwright",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires active call sessions monitored during the upgrade window; calls cannot be managed by Playwright"
  },
  {
    "id": "core-virtualization-check-hypervisor_level_high_availability",
    "group": "core-virtualization",
    "module": "core",
    "action": "check",
    "description": "Verify hypervisor-level HA restarts the PBX VM after a host failure",
    "status": "manual",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires physical HA cluster with multiple hypervisor hosts; host failure must be simulated",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires physical HA cluster with multiple hypervisor hosts; host failure must be simulated"
  },
  {
    "id": "core-virtualization-check-live_migration_and_active_call_preservation",
    "group": "core-virtualization",
    "module": "core",
    "action": "check",
    "description": "Verify VM live migration preserves active calls without interruption",
    "status": "manual",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires HA infrastructure with 2+ hypervisor hosts and active SIP call sessions during migration",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires HA infrastructure with 2+ hypervisor hosts and active SIP call sessions during migration"
  },
  {
    "id": "core-virtualization-check-snapshot_backup_restore_and_consistency",
    "group": "core-virtualization",
    "module": "core",
    "action": "check",
    "description": "Verify VM snapshot and restore operations maintain full system consistency",
    "status": "partial",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Post-restore consistency checks via admin portal automated; snapshot/restore operation needs hypervisor access",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Post-restore consistency checks via admin portal automated; snapshot/restore operation needs hypervisor access"
  },
  {
    "id": "core-virtualization-write-guest_agent_integration",
    "group": "core-virtualization",
    "module": "core",
    "action": "write",
    "description": "Record guest agent integration status for each supported hypervisor",
    "status": "manual",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires direct access to hypervisor console (vCenter, Hyper-V Manager, virsh)",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires direct access to hypervisor console (vCenter, Hyper-V Manager, virsh)"
  },
  {
    "id": "core-virtualization-write-resource_allocation_vcpu_vram_vdisk",
    "group": "core-virtualization",
    "module": "core",
    "action": "write",
    "description": "Record vCPU, vRAM, and vDisk resource allocation for deployment templates",
    "status": "manual",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Hypervisor management plane access required; not exposed in PBX admin portal",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Hypervisor management plane access required; not exposed in PBX admin portal"
  },
  {
    "id": "core-virtualization-write-storage_thin_vs_thick_provisioning",
    "group": "core-virtualization",
    "module": "core",
    "action": "write",
    "description": "Record storage provisioning type and performance implications for each hypervisor",
    "status": "manual",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Storage details only visible in hypervisor storage management interface",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Storage details only visible in hypervisor storage management interface"
  },
  {
    "id": "core-virtualization-write-supported_hypervisors_deployment",
    "group": "core-virtualization",
    "module": "core",
    "action": "write",
    "description": "Record the list of supported hypervisors and deployment methods from the download portal",
    "status": "automated",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "core-virtualization-write-virtual_networking_configuration",
    "group": "core-virtualization",
    "module": "core",
    "action": "write",
    "description": "Record virtual networking configuration: virtual switches, VLANs, NIC assignments",
    "status": "manual",
    "file": "tests/core/virtualization.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires access to hypervisor networking configuration and virtual switch management",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS (admin portal) + optional SSH/CLI"
      },
      {
        "label": "Hypervisor Access",
        "value": "vCenter, Hyper-V Manager, Proxmox, or virsh (SSH/API)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires access to hypervisor networking configuration and virtual switch management"
  },
  {
    "id": "pbx-availability-check-active_passive_or_active_active_failover",
    "group": "pbx-availability",
    "module": "pbx",
    "action": "check",
    "description": "Verify Active-Passive or Active-Active failover transitions correctly on node failure",
    "status": "manual",
    "file": "tests/pbx/availability.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires HA cluster with 2+ nodes; failover must be triggered by stopping the active node",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Load Gen",
        "value": "SIPp or custom load generator + monitoring (Prometheus/Grafana recommended)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires HA cluster with 2+ nodes; failover must be triggered by stopping the active node"
  },
  {
    "id": "pbx-availability-check-automatic_failover_and_call_preservation",
    "group": "pbx-availability",
    "module": "pbx",
    "action": "check",
    "description": "Verify automatic failover preserves active calls (no drops, no audio interruption > 200ms)",
    "status": "manual",
    "file": "tests/pbx/availability.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires active call sessions during failover and simultaneous call-state monitoring",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Load Gen",
        "value": "SIPp or custom load generator + monitoring (Prometheus/Grafana recommended)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires active call sessions during failover and simultaneous call-state monitoring"
  },
  {
    "id": "pbx-availability-check-database_replication_and_sync_integrity",
    "group": "pbx-availability",
    "module": "pbx",
    "action": "check",
    "description": "Verify database replication between HA nodes maintains consistency and acceptable lag",
    "status": "manual",
    "file": "tests/pbx/availability.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires HA database cluster; verifying replication lag needs direct database access",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Load Gen",
        "value": "SIPp or custom load generator + monitoring (Prometheus/Grafana recommended)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires HA database cluster; verifying replication lag needs direct database access"
  },
  {
    "id": "pbx-availability-check-geographic_redundancy_and_geo_distribution",
    "group": "pbx-availability",
    "module": "pbx",
    "action": "check",
    "description": "Verify geo-distributed deployment handles site failover without service interruption",
    "status": "manual",
    "file": "tests/pbx/availability.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires multi-site infrastructure across geographic locations or WAN simulation",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Load Gen",
        "value": "SIPp or custom load generator + monitoring (Prometheus/Grafana recommended)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires multi-site infrastructure across geographic locations or WAN simulation"
  },
  {
    "id": "pbx-calls-check-call_hold_resume_and_music_on_hold",
    "group": "pbx-calls",
    "module": "pbx",
    "action": "check",
    "description": "Verify call hold, resume, and Music on Hold playback work correctly",
    "status": "manual",
    "file": "tests/pbx/calls.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires an active two-party call; MoH requires audio monitoring with real SIP phone hardware",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires an active two-party call; MoH requires audio monitoring with real SIP phone hardware"
  },
  {
    "id": "pbx-calls-check-call_waiting_notification_and_switching",
    "group": "pbx-calls",
    "module": "pbx",
    "action": "check",
    "description": "Verify call waiting notification and switching between active and waiting calls",
    "status": "manual",
    "file": "tests/pbx/calls.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires concurrent call sessions on the same extension with physical/softphone capable of call-waiting",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires concurrent call sessions on the same extension with physical/softphone capable of call-waiting"
  },
  {
    "id": "pbx-calls-check-caller_id_presentation_restriction_and_pai",
    "group": "pbx-calls",
    "module": "pbx",
    "action": "check",
    "description": "Verify Caller ID presentation, Anonymous restriction (CLIR), and P-Asserted-Identity header",
    "status": "manual",
    "file": "tests/pbx/calls.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires active call sessions and SIP packet capture to verify PAI header values",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires active call sessions and SIP packet capture to verify PAI header values"
  },
  {
    "id": "pbx-calls-check-inbound_call_from_sip_trunk_pstn",
    "group": "pbx-calls",
    "module": "pbx",
    "action": "check",
    "description": "Verify inbound call from a SIP trunk/PSTN routes correctly to the configured destination",
    "status": "manual",
    "file": "tests/pbx/calls.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires live SIP trunk connectivity to PSTN and a real DID number",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires live SIP trunk connectivity to PSTN and a real DID number"
  },
  {
    "id": "pbx-calls-check-internal_extension_to_extension_audio_call",
    "group": "pbx-calls",
    "module": "pbx",
    "action": "check",
    "description": "Verify internal extension-to-extension audio call connects with bi-directional audio",
    "status": "manual",
    "file": "tests/pbx/calls.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires two active SIP endpoints and human verification of two-way audio quality",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires two active SIP endpoints and human verification of two-way audio quality"
  },
  {
    "id": "pbx-calls-check-outbound_call_to_sip_trunk_pstn_with_caller_id",
    "group": "pbx-calls",
    "module": "pbx",
    "action": "check",
    "description": "Verify outbound call via SIP trunk presents the correct Caller ID on the receiving end",
    "status": "manual",
    "file": "tests/pbx/calls.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires live SIP trunk and verification of Caller ID at receiving PSTN party",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires live SIP trunk and verification of Caller ID at receiving PSTN party"
  },
  {
    "id": "pbx-calls-check-three_way_conference_and_multi_party_bridge",
    "group": "pbx-calls",
    "module": "pbx",
    "action": "check",
    "description": "Verify three-way conference calling and multi-party conference bridge functionality",
    "status": "manual",
    "file": "tests/pbx/calls.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires three or more active SIP endpoints and audio verification by human listeners",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires three or more active SIP endpoints and audio verification by human listeners"
  },
  {
    "id": "pbx-calls-security-check-acl_ip_whitelisting_and_rate_limiting",
    "group": "pbx-calls-security",
    "module": "pbx",
    "action": "check",
    "description": "Verify ACL IP whitelisting rules and SIP rate limiting are configured and enforced",
    "status": "partial",
    "file": "tests/pbx/calls-security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "ACL/rate-limit config via portal automated; functional enforcement testing requires network-level testing from non-whitelisted IP",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "ACL/rate-limit config via portal automated; functional enforcement testing requires network-level testing from non-whitelisted IP"
  },
  {
    "id": "pbx-calls-security-check-srtp_sdes_or_dtls_media_encryption",
    "group": "pbx-calls-security",
    "module": "pbx",
    "action": "check",
    "description": "Verify SRTP with SDES or DTLS-SRTP is enabled for media encryption on calls",
    "status": "partial",
    "file": "tests/pbx/calls-security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Encryption config verified via admin portal; confirming live RTP is encrypted requires Wireshark during active call",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Encryption config verified via admin portal; confirming live RTP is encrypted requires Wireshark during active call"
  },
  {
    "id": "pbx-calls-security-check-toll_fraud_prevention_rules_and_alerting",
    "group": "pbx-calls-security",
    "module": "pbx",
    "action": "check",
    "description": "Verify toll fraud prevention rules and alert notifications are configured",
    "status": "automated",
    "file": "tests/pbx/calls-security.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-codecs-check-codec_negotiation_g711_g729_opus_g722",
    "group": "pbx-codecs",
    "module": "pbx",
    "action": "check",
    "description": "Verify successful codec negotiation for G.711, G.729, Opus, and G.722",
    "status": "manual",
    "file": "tests/pbx/codecs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires SIP call traffic with codec-constrained endpoints and Wireshark packet capture to verify SDP negotiation",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires SIP call traffic with codec-constrained endpoints and Wireshark packet capture to verify SDP negotiation"
  },
  {
    "id": "pbx-codecs-check-dtmf_transmission_rfc2833_inband_sip_info",
    "group": "pbx-codecs",
    "module": "pbx",
    "action": "check",
    "description": "Verify DTMF digit transmission via RFC2833, in-band audio, and SIP INFO methods",
    "status": "manual",
    "file": "tests/pbx/codecs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires active call sessions with DTMF generation, packet capture, and IVR system for verification",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires active call sessions with DTMF generation, packet capture, and IVR system for verification"
  },
  {
    "id": "pbx-codecs-check-t38_fax_passthrough_and_error_correction",
    "group": "pbx-codecs",
    "module": "pbx",
    "action": "check",
    "description": "Verify T.38 fax passthrough and error correction (ECM) work correctly",
    "status": "manual",
    "file": "tests/pbx/codecs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Ensure SIP endpoints / softphones are registered",
      "Initiate or receive call using the required scenario",
      "Verify audio path, signaling, and media parameters"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires fax hardware or fax emulator (HylaFAX) and T.38 stack support",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Real RTP/SRTP media path and audio quality verification (human ear or PESQ/MOS tools)",
      "External SIP trunk / PSTN connectivity and DID numbers"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires fax hardware or fax emulator (HylaFAX) and T.38 stack support"
  },
  {
    "id": "pbx-configuration-check-backup_restore_full_system_configuration",
    "group": "pbx-configuration",
    "module": "pbx",
    "action": "check",
    "description": "Verify full system configuration backup and restore operations work correctly",
    "status": "automated",
    "file": "tests/pbx/configuration.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-configuration-check-bulk_csv_import_export_of_settings",
    "group": "pbx-configuration",
    "module": "pbx",
    "action": "check",
    "description": "Verify bulk CSV import and export of settings",
    "status": "automated",
    "file": "tests/pbx/configuration.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-configuration-check-dialplan_route_and_outbound_rule_creation",
    "group": "pbx-configuration",
    "module": "pbx",
    "action": "check",
    "description": "Verify creation and validation of dial plan rules and outbound routes",
    "status": "automated",
    "file": "tests/pbx/configuration.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-configuration-check-initial_system_setup_and_network_settings",
    "group": "pbx-configuration",
    "module": "pbx",
    "action": "check",
    "description": "Verify initial PBX system setup and network settings are correctly configured",
    "status": "automated",
    "file": "tests/pbx/configuration.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Log in to the admin portal (if required)",
      "Navigate to the relevant settings section",
      "Read current configuration values via UI or API"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-extensions-check-create_modify_delete_sip_extensions",
    "group": "pbx-extensions",
    "module": "pbx",
    "action": "check",
    "description": "Verify full CRUD lifecycle for SIP extensions in the admin portal",
    "status": "automated",
    "file": "tests/pbx/extensions.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-extensions-check-device_provisioning",
    "group": "pbx-extensions",
    "module": "pbx",
    "action": "check",
    "description": "Verify automatic device provisioning: profile generation and server URL accessible",
    "status": "partial",
    "file": "tests/pbx/extensions.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Provisioning profile creation via admin portal automated; actual device provisioning requires physical phone",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Provisioning profile creation via admin portal automated; actual device provisioning requires physical phone"
  },
  {
    "id": "pbx-extensions-check-extension_registration_with_deskphones_softphones",
    "group": "pbx-extensions",
    "module": "pbx",
    "action": "check",
    "description": "Verify SIP extension registers successfully from a desk phone and a softphone client",
    "status": "manual",
    "file": "tests/pbx/extensions.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires physical SIP desk phone (Yealink, Polycom) or softphone (Zoiper, MicroSIP)",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "SIP Endpoints",
        "value": "At least 2 registered SIP clients (deskphone or softphone: Zoiper, MicroSIP, Yealink, etc.)"
      },
      {
        "label": "Network",
        "value": "SIP trunk or local Asterisk/FreeSWITCH simulator for PSTN simulation"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires physical SIP desk phone (Yealink, Polycom) or softphone (Zoiper, MicroSIP)"
  },
  {
    "id": "pbx-logs-check-call_quality_metrics_mos_jitter_loss_per_call",
    "group": "pbx-logs",
    "module": "pbx",
    "action": "check",
    "description": "Verify per-call quality metrics (MOS score, jitter, packet loss) are collected and displayed",
    "status": "partial",
    "file": "tests/pbx/logs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "QoS metrics display UI automated; actual metric generation requires active call sessions with network impairment",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "QoS metrics display UI automated; actual metric generation requires active call sessions with network impairment"
  },
  {
    "id": "pbx-logs-check-cdr_generation_accuracy_completeness_and_export",
    "group": "pbx-logs",
    "module": "pbx",
    "action": "check",
    "description": "Verify CDR records contain all required fields and can be exported to CSV/PDF",
    "status": "automated",
    "file": "tests/pbx/logs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-logs-check-detailed_logging_levels_rotation_and_search",
    "group": "pbx-logs",
    "module": "pbx",
    "action": "check",
    "description": "Verify logging levels, log rotation, and log search/filter functionality",
    "status": "automated",
    "file": "tests/pbx/logs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-logs-check-real_time_active_call_and_registration_monitoring",
    "group": "pbx-logs",
    "module": "pbx",
    "action": "check",
    "description": "Verify real-time monitoring dashboard shows active calls and SIP registrations",
    "status": "automated",
    "file": "tests/pbx/logs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-logs-check-threshold_alarms_cpu_channels_disk_memory",
    "group": "pbx-logs",
    "module": "pbx",
    "action": "check",
    "description": "Verify threshold-based alarms for CPU, active channels, disk, and memory usage",
    "status": "automated",
    "file": "tests/pbx/logs.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-management-check-cli_management",
    "group": "pbx-management",
    "module": "pbx",
    "action": "check",
    "description": "Verify CLI management interface is accessible and key management commands execute correctly",
    "status": "partial",
    "file": "tests/pbx/management.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Web console (if present) verified via Playwright; full CLI coverage requires SSH automation integrated in CI pipeline",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Web console (if present) verified via Playwright; full CLI coverage requires SSH automation integrated in CI pipeline"
  },
  {
    "id": "pbx-management-check-gui_management",
    "group": "pbx-management",
    "module": "pbx",
    "action": "check",
    "description": "Verify all main admin portal sections load correctly and management actions are functional",
    "status": "automated",
    "file": "tests/pbx/management.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Full end-to-end execution via Playwright against the admin portal UI",
      "Navigation, form interaction, and assertions are scriptable"
    ],
    "notYet": [],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ]
  },
  {
    "id": "pbx-performance-check-cpu_memory_disk_io_utilization_under_sustained_load",
    "group": "pbx-performance",
    "module": "pbx",
    "action": "check",
    "description": "Verify CPU, memory, and disk I/O remain within limits under sustained call load",
    "status": "manual",
    "file": "tests/pbx/performance.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires SIPp load generator, server-side performance monitoring, and dedicated test environment",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Load Gen",
        "value": "SIPp or custom load generator + monitoring (Prometheus/Grafana recommended)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires SIPp load generator, server-side performance monitoring, and dedicated test environment"
  },
  {
    "id": "pbx-performance-check-long_duration_stability_72h_test",
    "group": "pbx-performance",
    "module": "pbx",
    "action": "check",
    "description": "Verify system stability under continuous call load over a 72-hour period",
    "status": "manual",
    "file": "tests/pbx/performance.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "72-hour test requires dedicated environment, SIPp continuous load, and automated monitoring with alerting",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Load Gen",
        "value": "SIPp or custom load generator + monitoring (Prometheus/Grafana recommended)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "72-hour test requires dedicated environment, SIPp continuous load, and automated monitoring with alerting"
  },
  {
    "id": "pbx-performance-check-memory_leak_and_resource_cleanup_detection",
    "group": "pbx-performance",
    "module": "pbx",
    "action": "check",
    "description": "Detect memory leaks and verify proper resource cleanup over extended operation",
    "status": "manual",
    "file": "tests/pbx/performance.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires extended monitoring with active call load and memory profiling tools (Valgrind, heap dumps)",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Hypervisor-level operations (vCenter, libvirt, vSphere) not reachable from browser automation",
      "Long-running load or HA failover scenarios need dedicated lab infrastructure"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Load Gen",
        "value": "SIPp or custom load generator + monitoring (Prometheus/Grafana recommended)"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires extended monitoring with active call load and memory profiling tools (Valgrind, heap dumps)"
  },
  {
    "id": "pbx-regression-check-core_call_features_after_any_code_change",
    "group": "pbx-regression",
    "module": "pbx",
    "action": "check",
    "description": "Run regression checks on core features after any code change to detect regressions",
    "status": "partial",
    "file": "tests/pbx/regression.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Admin portal regression automated; call-flow regression (inbound/outbound/hold/transfer) requires SIP endpoints",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Admin portal regression automated; call-flow regression (inbound/outbound/hold/transfer) requires SIP endpoints"
  },
  {
    "id": "pbx-regression-check-performance_baselines_comparison_against_previous_version",
    "group": "pbx-regression",
    "module": "pbx",
    "action": "check",
    "description": "Compare key performance metrics against baselines from the previous version",
    "status": "manual",
    "file": "tests/pbx/regression.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Most UI-driven configuration and verification steps via Playwright"
    ],
    "notYet": [
      "Requires SIPp load tests and statistical comparison of results against previous version baseline",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "manualReason": "Requires SIPp load tests and statistical comparison of results against previous version baseline"
  },
  {
    "id": "pbx-regression-check-previously_fixed_bugs_and_edge_cases_reverification",
    "group": "pbx-regression",
    "module": "pbx",
    "action": "check",
    "description": "Verify all previously fixed bugs and known edge cases have not regressed",
    "status": "partial",
    "file": "tests/pbx/regression.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "UI bug regressions automated; telephony-layer bug regressions require SIP client or SSH verification",
      "Requires external SIP endpoints or physical phones for media/audio validation"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "UI bug regressions automated; telephony-layer bug regressions require SIP client or SSH verification"
  },
  {
    "id": "pbx-regression-check-security_hardening_and_vulnerability_scan_baseline",
    "group": "pbx-regression",
    "module": "pbx",
    "action": "check",
    "description": "Verify security hardening settings and compare vulnerability scan baseline against previous version",
    "status": "partial",
    "file": "tests/pbx/regression.spec.ts",
    "steps": [
      "Open admin portal or repository URL in browser context",
      "Execute the main verification or configuration action described in the test",
      "Capture evidence (screenshot, log, API response)",
      "Assert expected outcome"
    ],
    "automatable": [
      "Portal UI configuration and verification steps (already partially automated)",
      "Data extraction and reporting of current settings"
    ],
    "notYet": [
      "Security config checks via portal automated; full CVE scan baseline requires Trivy/OpenVAS in CI pipeline",
      "Requires external SIP endpoints or physical phones for media/audio validation",
      "Full CVE / dependency scanning (Trivy, Grype, OWASP Dependency-Check) in CI pipeline"
    ],
    "dependencies": [
      {
        "label": "Admin Portal",
        "value": "https://pbx.local:4443 (configure via $BASE_URL)"
      },
      {
        "label": "Repository URL",
        "value": "${BASE_URL}/downloads or $REPO_URL"
      },
      {
        "label": "Protocol",
        "value": "HTTPS + SIP (UDP/TCP/TLS) + RTP/SRTP"
      },
      {
        "label": "Credentials",
        "value": "Admin user with sufficient privileges (portal + SSH where needed)"
      },
      {
        "label": "Test Data",
        "value": "Clean test tenant or lab PBX instance (recommended isolated environment)"
      }
    ],
    "partialNotes": "Security config checks via portal automated; full CVE scan baseline requires Trivy/OpenVAS in CI pipeline"
  }
]