FLOWCHART.md

May 5, 2026 Β· View on GitHub

Hack23 Logo

πŸ”„ Hack23 Homepage β€” Flowcharts

Process Flows: CI/CD, Deployment, and Content Management
Workflow Documentation for hack23.com

Owner Version Status Review Cycle

License OpenSSF Scorecard

πŸ“‹ Document Owner: CEO | πŸ“„ Version: 1.1 | πŸ“… Last Updated: 2026-04-21 (UTC) πŸ”„ Review Cycle: Quarterly | ⏰ Next Review: 2026-07-21 🏷️ Classification: Public Low Standard


DocumentFocusDescription
πŸ›οΈ ArchitectureC4 ModelSystem structure and containers
πŸ“Š Data ModelDataContent model and data structures
πŸ”„ FlowchartProcessesProcess flows (this document)
πŸ“ˆ State DiagramStatesDeployment and content lifecycle
🧠 MindmapConceptsSystem conceptual relationships
πŸ”„ WorkflowsCI/CDGitHub Actions workflow details (10 workflows)
πŸ›‘οΈ Security ArchitectureSecurityDefense-in-depth controls
🎯 Threat ModelThreatsSTRIDE / MITRE ATT&CK analysis
πŸ”„ BCP PlanResilienceBusiness continuity & recovery flows
πŸ›‘οΈ CRA AssessmentComplianceEU Cyber Resilience Act conformity
πŸš€ Future FlowchartRoadmapPlanned process improvements

🎯 Overview

This document provides comprehensive flowcharts for the Hack23 homepage, documenting all major processes across the 10 GitHub Actions workflows that power the project: CI/CD deployment (main.yml), pull-request validation (pullrequest.yml), continuous quality (quality-checks.yml), supply-chain scoring (scorecards.yml), dependency review (dependency-review.yml), versioned releases with SLSA Level 3 attestation (release.yml), Copilot environment provisioning (copilot-setup-steps.yml), PR labelling (labeler.yml), repository label baseline (setup-labels.yml), and agentic workflow compilation (compile-agentic-workflows.yml).


πŸš€ Main Deployment Flow

%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
    Start([πŸ“ Code Push to Main]) --> Checkout[Checkout Repository]
    Checkout --> Setup[Setup Node.js 26]
    Setup --> Validate{Validate Content}

    Validate --> HTMLHint[πŸ” HTMLHint Linting]
    Validate --> HTML5Val[βœ… HTML5 Validation]
    Validate --> LinkCheck[πŸ”— Link Checking]

    HTMLHint --> QualityGate{Quality Gate}
    HTML5Val --> QualityGate
    LinkCheck --> QualityGate

    QualityGate -->|Pass| Minify[πŸ“¦ Minify HTML/CSS/JS]
    QualityGate -->|Fail| FailNotify[❌ Notify Failure]

    Minify --> Deploy[☁️ Deploy to S3]
    Deploy --> Invalidate[πŸ”„ CloudFront Cache Invalidation]
    Invalidate --> Lighthouse[πŸ“Š Lighthouse Audit]

    Lighthouse --> SecurityScan[πŸ›‘οΈ ZAP Security Scan]
    SecurityScan --> Complete([βœ… Deployment Complete])

    FailNotify --> End([πŸ›‘ Pipeline Failed])

    style Start fill:#2979FF,stroke:#0D47A1,color:#fff
    style Complete fill:#00C853,stroke:#00796B,color:#fff
    style End fill:#FF3D00,stroke:#BF360C,color:#fff

πŸ”€ Pull Request Verification Flow

%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
    PR([πŸ”€ Pull Request Opened]) --> Harden[πŸ”’ Harden Runner]
    Harden --> Checkout[πŸ“₯ Checkout Code]
    Checkout --> SetupNode[βš™οΈ Setup Node.js 26]

    SetupNode --> ParallelChecks{Parallel Checks}

    ParallelChecks --> HTMLHint[πŸ” HTMLHint]
    ParallelChecks --> HTML5Val[βœ… HTML5 Validator]
    ParallelChecks --> LinkCheck[πŸ”— Linkinator]

    HTMLHint --> Results{All Checks Pass?}
    HTML5Val --> Results
    LinkCheck --> Results

    Results -->|Yes| Approve[βœ… Ready for Review]
    Results -->|No| RequestChanges[❌ Request Changes]

    Approve --> Review[πŸ‘€ Code Review]
    Review --> Merge{Approved?}

    Merge -->|Yes| MergeToMain[πŸ”€ Merge to Main]
    Merge -->|No| Update[πŸ“ Update PR]
    Update --> ParallelChecks

    MergeToMain --> DeployTrigger([πŸš€ Trigger Deploy])

    style PR fill:#2979FF,stroke:#0D47A1,color:#fff
    style Approve fill:#00C853,stroke:#00796B,color:#fff
    style RequestChanges fill:#FF3D00,stroke:#BF360C,color:#fff

πŸ“ Content Update Flow

%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
    Start([πŸ“ Content Change Needed]) --> Identify{Change Type}

    Identify -->|New Page| CreatePage[Create HTML Page]
    Identify -->|Edit Content| EditHTML[Edit Existing HTML]
    Identify -->|Translation| Translate[Create Language Variant]
    Identify -->|Blog Post| CreateBlog[Create Blog Post]

    CreatePage --> AddMeta[Add Meta Tags & Schema.org]
    EditHTML --> ValidateMeta[Verify Meta Tags]
    Translate --> AddHreflang[Add Hreflang Tags]
    CreateBlog --> AddBlogMeta[Add Blog Metadata]

    AddMeta --> UpdateSitemap[πŸ—ΊοΈ Update Sitemap]
    ValidateMeta --> UpdateSitemap
    AddHreflang --> UpdateSitemap
    AddBlogMeta --> UpdateSitemap

    UpdateSitemap --> CheckI18n{Multi-language<br/>Impact?}

    CheckI18n -->|Yes| UpdateTranslations[Update All Language Variants]
    CheckI18n -->|No| CreatePR[Create Pull Request]

    UpdateTranslations --> CreatePR
    CreatePR --> CIChecks[βš™οΈ CI Verification]
    CIChecks --> Deploy([πŸš€ Deploy])

    style Start fill:#2979FF,stroke:#0D47A1,color:#fff
    style Deploy fill:#00C853,stroke:#00796B,color:#fff

πŸ›‘οΈ Security Scanning Flow

%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
    Trigger([πŸ”„ Scheduled / Push]) --> Scorecard[πŸ“Š OpenSSF Scorecard]
    Trigger --> CodeQL[πŸ” CodeQL Analysis]
    Trigger --> DepReview[πŸ“¦ Dependency Review]

    Scorecard --> Results{Security Results}
    CodeQL --> Results
    DepReview --> Results

    Results -->|Issues Found| Triage[πŸ” Triage Findings]
    Results -->|Clean| Passed[βœ… Security Passed]

    Triage --> Severity{Severity?}

    Severity -->|Critical/High| Immediate[🚨 Immediate Fix]
    Severity -->|Medium| Planned[πŸ“‹ Planned Fix]
    Severity -->|Low| Backlog[πŸ“ Add to Backlog]

    Immediate --> Fix[πŸ”§ Apply Fix]
    Fix --> Verify[βœ… Verify Fix]
    Verify --> Results

    Passed --> Report[πŸ“Š Update Security Dashboard]

    style Trigger fill:#2979FF,stroke:#0D47A1,color:#fff
    style Passed fill:#00C853,stroke:#00796B,color:#fff
    style Immediate fill:#FF3D00,stroke:#BF360C,color:#fff

πŸ“Š Quality Assurance Flow

%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart LR
    Input[πŸ“„ HTML Pages] --> Lint[πŸ” HTMLHint<br/>Syntax Check]
    Lint --> Validate[βœ… HTML5 Validator<br/>W3C Compliance]
    Validate --> Links[πŸ”— Linkinator<br/>Broken Links]
    Links --> A11y[β™Ώ Lighthouse<br/>Accessibility]
    A11y --> Perf[⚑ Lighthouse<br/>Performance]
    Perf --> SEO[πŸ” Lighthouse<br/>SEO Score]
    SEO --> Output{All Passing?}

    Output -->|Yes| Ready[βœ… Quality Approved]
    Output -->|No| Fix[πŸ”§ Fix Issues]
    Fix --> Input

    style Input fill:#2979FF,stroke:#0D47A1,color:#fff
    style Ready fill:#00C853,stroke:#00796B,color:#fff

πŸ—οΈ Release Build Flow

%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
    Tag([🏷️ Tag Push / Manual]) --> Checkout[πŸ“₯ Checkout]
    Checkout --> Setup[βš™οΈ Setup Node.js 26]
    Setup --> Minify[πŸ“¦ Minify Assets]
    Minify --> Attest[πŸ” Generate SLSA Attestation]
    Attest --> Release[πŸ“¦ Create GitHub Release]
    Release --> Deploy[☁️ Deploy to Production]
    Deploy --> PostDeploy[πŸ“Š Post-Deploy Verification]
    PostDeploy --> Done([βœ… Release Complete])

    style Tag fill:#2979FF,stroke:#0D47A1,color:#fff
    style Done fill:#00C853,stroke:#00796B,color:#fff

πŸ“‹ ISMS Compliance

These process flows align with: