πŸ•ΈοΈ Ada Research Browser

spec.md
← Back

Feature Specification: CI/CD Pipeline and Living Dashboard

Feature Branch: 005-ci-cd-dashboard Created: 2026-02-15 Status: Draft Input: Automated validation on every commit with a published compliance dashboard including GitHub Actions workflows, GitHub Pages dashboard, README badges, and branch protection rules.

Clarifications

Session 2026-02-15

User Scenarios & Testing (mandatory)

User Story 1 - PR Validation Feedback (Priority: P1)

A developer opens a pull request with Ansible role changes. The CI pipeline automatically runs linting, syntax checking, and YAML validation. Within minutes, the developer sees pass/fail status checks directly in the GitHub PR interface, allowing them to fix issues before requesting review.

Why this priority: This is the foundation of the CI/CD pipeline. Without automated validation on PRs, code quality cannot be enforced and all other features depend on this working correctly.

Independent Test: Can be tested by opening a PR with intentional lint errors and verifying the status check fails, then fixing the errors and verifying the status check passes.

Acceptance Scenarios:

  1. Given a developer pushes a commit to a PR branch, When the CI workflow triggers, Then lint, syntax-check, and YAML validation jobs run automatically
  2. Given CI jobs complete, When the developer views the PR, Then they see green checkmarks or red X marks for each validation step
  3. Given a validation job fails, When the developer clicks the failed check, Then they see specific error messages with file paths and line numbers
  4. Given all validation jobs pass, When the PR is ready for review, Then the "Checks passed" status is displayed

User Story 2 - Live Compliance Dashboard (Priority: P1)

A team lead or CISO wants to view the current compliance posture without accessing the repository or running commands. They navigate to a public GitHub Pages URL and see an HTML dashboard showing SPRS score, control status by family, and POA&M summary. The dashboard updates automatically after each merge to main.

Why this priority: This is the primary deliverable for stakeholder visibility. It enables auditors and leadership to monitor compliance without technical expertise or repository access.

Independent Test: Can be tested by navigating to the GitHub Pages URL after a merge and verifying the dashboard displays current compliance data with no manual intervention required.

Acceptance Scenarios:

  1. Given a merge to main completes, When the dashboard workflow runs, Then the GitHub Pages site updates within 5 minutes
  2. Given a user navigates to the dashboard URL, When the page loads, Then they see the compliance dashboard without authentication
  3. Given the dashboard is displayed, When the user views the page, Then they see SPRS score, control family breakdown, and POA&M summary
  4. Given an auditor needs compliance artifacts, When they visit the dashboard, Then they can download the framework crosswalk CSV

User Story 3 - Generated Documentation Access (Priority: P2)

A PI or researcher needs to understand CUI compliance requirements without reading technical documentation. They access the GitHub Pages site and find audience-specific guides (PI guide, researcher quickstart) written in plain language. The documentation regenerates automatically when the underlying data models change.

Why this priority: Supports the constitutional principle of "Plain Language First" and enables self-service access to compliance guidance for non-technical stakeholders.

Independent Test: Can be tested by accessing the generated PI guide on GitHub Pages and verifying it contains plain-language explanations without technical jargon.

Acceptance Scenarios:

  1. Given generated docs exist on GitHub Pages, When a user navigates to the docs section, Then they see links to PI guide, researcher quickstart, sysadmin reference, and other audience-specific documents
  2. Given the control_mapping.yml or glossary is updated, When a merge to main occurs, Then the generated documentation reflects the changes
  3. Given a PI accesses their guide, When they read the content, Then all technical terms link to glossary definitions

User Story 4 - README Status Badges (Priority: P2)

A visitor to the repository wants to quickly assess project health and compliance status. They see badges in the README showing CI status, current SPRS score, and last assessment date. The badges update automatically with each CI run.

Why this priority: Provides at-a-glance project status for all repository visitors, building confidence in the project's maintenance and compliance posture.

Independent Test: Can be tested by viewing the README and verifying badges display current status, then triggering a CI run and verifying badges reflect the new state.

Acceptance Scenarios:

  1. Given the README contains badge markup, When a user views the repository, Then they see a CI status badge (passing/failing)
  2. Given an SPRS score badge is configured, When the user views the README, Then they see the current compliance score with appropriate color coding
  3. Given the last assessment date badge is configured, When the user views the README, Then they see when the compliance was last verified

User Story 5 - Branch Protection Enforcement (Priority: P2)

A repository maintainer wants to ensure all code merged to main has passed validation. They configure branch protection rules requiring CI checks to pass and at least one approval before merge. Developers cannot bypass these requirements.

Why this priority: Enforces code quality gates and ensures the main branch always reflects validated, reviewed code. Supports the "Compliance as Code" principle.

Independent Test: Can be tested by attempting to merge a PR with failing CI or without approval and verifying GitHub blocks the merge.

Acceptance Scenarios:

  1. Given branch protection is configured, When a PR has failing CI checks, Then the merge button is disabled with a message explaining why
  2. Given branch protection requires approval, When a PR has no approvals, Then the merge button is disabled
  3. Given a PR has passing CI and required approvals, When the developer clicks merge, Then the merge completes successfully

User Story 6 - Nightly Assessment Run (Priority: P3)

A sysadmin wants to ensure compliance is continuously monitored even when no code changes occur. A scheduled workflow runs the full compliance assessment nightly against a test inventory, updating the dashboard and alerting if issues are detected.

Why this priority: Provides continuous compliance monitoring beyond code changes. Lower priority because it builds on the existing dashboard infrastructure.

Independent Test: Can be tested by checking the dashboard after a scheduled run completes (without any code changes) and verifying assessment results are updated.

Acceptance Scenarios:

  1. Given the nightly schedule is configured, When the scheduled time arrives, Then the assessment workflow runs automatically
  2. Given the nightly assessment completes, When results are generated, Then the dashboard reflects the latest assessment data
  3. Given the nightly assessment detects a compliance regression, When the workflow completes, Then appropriate notification or logging occurs

Edge Cases

Requirements (mandatory)

Functional Requirements

GitHub Actions Workflow

GitHub Pages Dashboard

README Badges

Branch Protection

Documentation Generation

Key Entities

Success Criteria (mandatory)

Measurable Outcomes

Assumptions

Out of Scope