Files
football/docs/project-spec.md
Charles N Wyble d4eeaccbcc refactor: Move specifications to docs directory
- Move football-spec.md to docs/football-spec.md
- Move project-spec.md to docs/project-spec.md

💘 Generated with Crush

Assisted-by: GLM-4.6 via Crush <crush@charm.land>
2026-01-21 15:38:44 -05:00

3.6 KiB

I need to initiate a new engineering project to build a highly secure, compliant Debian 13 (Trixie) installation ISO using a strict Docker-based workflow.

Please generate a detailed, technical Specification Document (in Markdown format) that outlines the requirements for this project. This document will serve as the blueprint for a Test-Driven Development (TDD) implementation.

The specification must cover the following requirements in detail:

1. Target System Profile

  • OS: Debian 13 (Trixie).
  • Desktop: Minimal IceWM Window Manager with LightDM Display Manager.
  • Applications: Remmina, WireGuard, Mousepad, PCManFM.
  • Networking: Wifi and Bluetooth must be permanently disabled (Kernel Blacklist).
  • Connectivity: No general internet access. All network traffic must be routed exclusively through a WireGuard tunnel.
  • Firewall: A "Deny All" default policy. The only allowed outbound traffic is UDP traffic to the specific IP/Port defined in the WireGuard configuration file. This must be dynamically configured by parsing the .conf file, not hardcoded.
  • Authentication: No auto-login. Usernames must be hidden in the Display Manager (Privacy Mode).
  • Workflow:
    • USB drives must be mountable to copy configurations.
    • Desktop shortcuts must exist to:
      1. Edit /etc/wireguard/wg0.conf (with root privileges via pkexec).
      2. Apply the VPN configuration and update the firewall rules dynamically.

2. Installation Automation

  • The build process must utilize live-build.
  • The ISO must use a preseed.cfg file to automate localization and software selection, BUT it must require manual interaction for:
    • Disk Partitioning.
    • Root Password Setup.
    • Non-root User Creation (User must be added to sudo group).

3. Development Environment & Constraints

  • Host System: The host environment is restricted. NO Make, NO Python, NO Ruby, NO build tools allowed on the host.
  • Allowed Tools: docker, git, libvirt (virt-install/virsh).
  • Orchestration: A single shell script wrapper (run.sh) is allowed on the host to invoke Docker commands.
  • Builder Container: All build tools (live-build, debootstrap) and testing tools must run inside a Docker container.
  • Permissions: All output files generated by the container must be owned by the user invoking Docker (not root).

4. Quality Assurance & Testing (TDD)

  • Methodology: Strict Test-Driven Development. The specification must define that tests are written before code.
  • Testing Tools: bats-core for testing, shellcheck for linting.
  • Coverage: 100% code coverage is mandatory (Unit tests for logic, Integration tests for ISO generation).
  • Code Standards: All Bash scripts must run in Strict Mode (set -euo pipefail).

5. Compliance (CMMC / FedRAMP / STIG)

  • The specification must demand the inclusion of a Compliance Matrix (COMPLIANCE.md).
  • This matrix must map specific STIG IDs and CIS Benchmark controls (e.g., disabling unused filesystems, enforcing strong passwords, configuring auditd) to specific configuration hooks in the build process.

6. Output Format

  • Provide the complete project structure (files and directories).
  • Provide the content logic for:
    • run.sh (Host wrapper).
    • Dockerfile (Build/Test environment).
    • tests/ (BATS test structure).
    • config/hooks/live/ (Security hardening and firewall scripts).
    • src/ (Internal build scripts).

Please generate this comprehensive specification document now.