Skip to content

Security hardening + evidence-based standards across portfolio templates#12

Merged
MelbourneDeveloper merged 7 commits into
mainfrom
securityhardening
Jun 14, 2026
Merged

Security hardening + evidence-based standards across portfolio templates#12
MelbourneDeveloper merged 7 commits into
mainfrom
securityhardening

Conversation

@MelbourneDeveloper

Copy link
Copy Markdown
Collaborator

Summary

Two related threads, applied to this repo and standardized in the portfolio templates/spec/skill so every repo inherits them:

1. GitHub security baseline (supply-chain + code scanning)

  • Dependabot — grouped version + security updates (minor/patch + major per ecosystem), weekly, no PR-spam. Template + self.
  • CodeQL — separate codeql.yml, exactly three triggers (PR→main, weekly schedule, v* release tag — scans the released SHA), tailored matrix (repo languages ∩ CodeQL-supported-at-runtime), SHA-pinned, public-visibility gated.
  • Dependency reviewci.yml security job (fail-on-severity: high), omitted where a native vuln-gate already covers deps.
  • Secret scanning + push protection, SECURITY.md + private vulnerability reporting — mandated in spec, templated, applied here.
  • Anti-duplication — one owner per concern (lint=style, CodeQL=vulnerable code, ONE dep scanner, platform secret scanning). Duplicate analysis wastes Actions minutes.

2. Evidence-based framing + tight Makefiles

  • [EVIDENCE] (spec) / "Why — Run the Data" (README) / evidence pointer (AGENTS.md) — each standard is now mapped to the research that justifies it: AI writes less secure code with false confidence (Stanford CCS 2023), individual speed ≠ delivery gains (DORA 2024), ~8× duplication (GitClear 2025), coverage ≠ verification (Google mutation testing), noisy analysis gets switched off (Google static analysis), self-report is unreliable (METR 2025). Pushes data-driven AI decisions + security best practice. Full playbook: https://www.nimblesite.co/ai-strategy/.
  • [MAKE-TIGHT] (spec + template) — anti-bloat rule: the standard 7 are a vocabulary not a quota; keep the public surface tight; non-standard targets are private (_-prefixed) by default; no dead targets.

Test plan

  • make lint — clean (validates Playwright config).
  • F# suite (dotnet fsi dashboard/test-report.fsx) — 175/175 passed.
  • Playwright E2E runs in the CI container (the native Chromium download hangs locally; documented in this repo).
  • All new spec cross-references ([GITHUB-*], [TEST-RULES], [CI-DESLOP], [MARKER-CLEANUP], [MAKE-TIGHT]) resolve.

🤖 Generated with Claude Code

@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@MelbourneDeveloper
MelbourneDeveloper merged commit 9105896 into main Jun 14, 2026
6 of 7 checks passed
@MelbourneDeveloper
MelbourneDeveloper deleted the securityhardening branch June 14, 2026 01:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants