Skip to content

chore(idris2): add SPDX headers to idris2/src/*.idr (#134) - #88

Merged
hyperpolymath merged 2 commits into
mainfrom
proof-debt/standards-134-spdx-headers
May 20, 2026
Merged

chore(idris2): add SPDX headers to idris2/src/*.idr (#134)#88
hyperpolymath merged 2 commits into
mainfrom
proof-debt/standards-134-spdx-headers

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Adds the estate-standard 3-line SPDX header (PMPL-1.0-or-later + your Open.ac.uk copyright) to all 14 Idris2 source files under `idris2/src/`, which were the last `.idr` files in the repo without one.

Why

`src/formal/Ephapax/Formal/.idr` etc. already use this exact header; `idris2/src/.idr` were the sole gap. Standards #134 listed this as an outstanding SPDX-coverage item.

What

  • 14 files touched, 42 insertions, 0 deletions, 0 modifications to existing lines.
  • Header is byte-identical to the existing template (RegionLinear.idr, Qualifier.idr).
  • Trailing newlines preserved.
  • Idris2 ignores `--` comments before `module …`, so the build is unchanged.

Test plan

  • All 14 files now match the canonical SPDX template
  • No existing line modified, no trailing newlines stripped
  • Baseline rot in `ephapax-parse-tests.ipkg` (`testLexPositions` / `parseWithBuf` undefined) verified pre-existing on `origin/main` and explicitly out of scope
  • Repo CI (license-check + dogfood-gate) goes green

Refs hyperpolymath/standards#124 #134

🤖 Generated with Claude Code

…134)

All 14 Idris2 source files under `idris2/src/` were missing the
SPDX-License-Identifier + copyright header that the rest of the repo
(`src/formal/Ephapax/Formal/*.idr` etc.) uses. PMPL-1.0-or-later is
already the repo licence (`LICENSE`) and the canonical SPDX template
across the estate is the three-line `-- SPDX… / -- Copyright… / --`
block, byte-identical to the existing `RegionLinear.idr`/`Qualifier.idr`
headers.

Pure mechanical change — only the three header lines are added; no
existing line is modified, trailing newlines preserved. Idris2 ignores
`--`-line comments before `module …`, so the build is unaffected.
Baseline rot under `ephapax-parse-tests.ipkg` (`testLexPositions` /
`parseWithBuf` undefined) is pre-existing on `origin/main` and not in
scope for this PR.

Refs hyperpolymath/standards#124 #134

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath
hyperpolymath marked this pull request as ready for review May 20, 2026 20:37
@hyperpolymath
hyperpolymath merged commit 32ea0c8 into main May 20, 2026
8 checks passed
@hyperpolymath
hyperpolymath deleted the proof-debt/standards-134-spdx-headers branch May 20, 2026 20:38
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 30 issues detected

Severity Count
🔴 Critical 7
🟠 High 6
🟡 Medium 17

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Issue in quality.yml",
    "type": "missing_workflow",
    "file": "quality.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in security-policy.yml",
    "type": "missing_workflow",
    "file": "security-policy.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Admitted leaves proof hole (1 occurrences, CWE-704)",
    "type": "admitted",
    "file": "/home/runner/work/ephapax/ephapax/formal/Semantics.v",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "Coq admit tactic leaves goal unproven (2 occurrences, CWE-704)",
    "type": "coq_admit_tactic",
    "file": "/home/runner/work/ephapax/ephapax/formal/Semantics.v",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "User-defined Coq axiom -- not verified by kernel (1 occurrences, CWE-704)",
    "type": "coq_axiom",
    "file": "/home/runner/work/ephapax/ephapax/formal/Semantics.v",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "believe_me undermines formal verification (1 occurrences, CWE-704)",
    "type": "believe_me",
    "file": "/home/runner/work/ephapax/ephapax/src/formal/Ephapax/Formal/RegionLinear.idr",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "assert_total bypasses totality checker (1 occurrences, CWE-704)",
    "type": "assert_total",
    "file": "/home/runner/work/ephapax/ephapax/src/formal/Ephapax/Formal/RegionLinear.idr",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "expect() in hot path (1 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/ephapax/ephapax/src/ephapax-repl/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "from_raw constructs types from raw pointers without safety checks (1 occurrences, CWE-676)",
    "type": "from_raw",
    "file": "/home/runner/work/ephapax/ephapax/src/ephapax-vram-cache/src/lib.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

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.

1 participant