Skip to content

ci(lean): add Lean proof gate (lake build) guarding the metatheory#61

Merged
hyperpolymath merged 2 commits into
mainfrom
claude/gifted-fermat-EmVcv
Jun 22, 2026
Merged

ci(lean): add Lean proof gate (lake build) guarding the metatheory#61
hyperpolymath merged 2 commits into
mainfrom
claude/gifted-fermat-EmVcv

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

There was no Lean CI anywhere in the estate, so the mechanized proofs (type safety, Sandbox Isolation Thm 1, Capability Soundness Thm 2, Ethical Verdict Consistency, BFT quorum-intersection Thm 3) were unguarded against regression. This gate runs lake build on every push/PR via leanprover/lean-action (SHA-pinned v1.5.0), building academic/formal-verification/lean4/ on core Lean (no Mathlib, no test/lint targets). A broken proof now fails CI.

https://claude.ai/code/session_01DQACj3RFmAPZaBPgR9SAaS

There was no Lean CI anywhere in the estate, so the mechanized proofs
(type safety, Sandbox Isolation Thm 1, Capability Soundness Thm 2,
Ethical Verdict Consistency, BFT quorum-intersection Thm 3) were
unguarded against regression. This gate runs `lake build` on every
push/PR via leanprover/lean-action (SHA-pinned v1.5.0), building
academic/formal-verification/lean4/ on core Lean (no Mathlib, no
test/lint targets). A broken proof now fails CI.

https://claude.ai/code/session_01DQACj3RFmAPZaBPgR9SAaS
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 6 issues detected

Severity Count
🔴 Critical 0
🟠 High 3
🟡 Medium 3
View findings
[
  {
    "reason": "binary_to_term without :safe option -- deserialization attack (1 occurrences, CWE-502)",
    "type": "elixir_send_unsanitised",
    "file": "/home/runner/work/phronesis/phronesis/lib/phronesis/compiler.ex",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "Nominal-only SAST in phronesis: codeql.yml language matrix contains no language present in the repo and lacks `actions`, so CodeQL records zero results on every commit. Remediation: set the CodeQL matrix to `language: actions`.",
    "type": "StaticAnalysis",
    "file": "/home/runner/work/phronesis/phronesis",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "medium",
    "remediation": "Add CodeQL or equivalent SAST workflow.",
    "scorecard_check": "SAST"
  },
  {
    "reason": "Repository has 4 non-main remote branch(es). Policy: single main branch only.",
    "type": "GS007",
    "file": ".",
    "action": "delete_remote_branches",
    "rule_module": "git_state",
    "severity": "medium"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/scorecard/StaticAnalysis -- Hypatia scorecard: StaticAnalysis -- 2 day(s) old",
    "type": "CSA001",
    "file": "phronesis",
    "action": "review",
    "rule_module": "code_scanning_alerts",
    "severity": "medium"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/code_safety/elixir_send_unsanitised -- Hypatia code_safety: elixir_send_unsanitised -- 10 day(s) old [STALE]",
    "type": "CSA001",
    "file": "lib/phronesis/compiler.ex",
    "action": "escalate",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  },
  {
    "reason": "Code-scanning alert hypatia/code_safety/elixir_send_unsanitised (high) at lib/phronesis/compiler.ex is 10 days old (threshold: 7 days) -- overdue for remediation",
    "type": "CSA003",
    "file": "lib/phronesis/compiler.ex",
    "action": "escalate",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit e4278c9 into main Jun 22, 2026
5 checks passed
@hyperpolymath
hyperpolymath deleted the claude/gifted-fermat-EmVcv branch June 22, 2026 19:45
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 6 issues detected

Severity Count
🔴 Critical 0
🟠 High 3
🟡 Medium 3
View findings
[
  {
    "reason": "binary_to_term without :safe option -- deserialization attack (1 occurrences, CWE-502)",
    "type": "elixir_send_unsanitised",
    "file": "/home/runner/work/phronesis/phronesis/lib/phronesis/compiler.ex",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "Nominal-only SAST in phronesis: codeql.yml language matrix contains no language present in the repo and lacks `actions`, so CodeQL records zero results on every commit. Remediation: set the CodeQL matrix to `language: actions`.",
    "type": "StaticAnalysis",
    "file": "/home/runner/work/phronesis/phronesis",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "medium",
    "remediation": "Add CodeQL or equivalent SAST workflow.",
    "scorecard_check": "SAST"
  },
  {
    "reason": "Repository has 3 non-main remote branch(es). Policy: single main branch only.",
    "type": "GS007",
    "file": ".",
    "action": "delete_remote_branches",
    "rule_module": "git_state",
    "severity": "medium"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/scorecard/StaticAnalysis -- Hypatia scorecard: StaticAnalysis -- 2 day(s) old",
    "type": "CSA001",
    "file": "phronesis",
    "action": "review",
    "rule_module": "code_scanning_alerts",
    "severity": "medium"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/code_safety/elixir_send_unsanitised -- Hypatia code_safety: elixir_send_unsanitised -- 10 day(s) old [STALE]",
    "type": "CSA001",
    "file": "lib/phronesis/compiler.ex",
    "action": "escalate",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  },
  {
    "reason": "Code-scanning alert hypatia/code_safety/elixir_send_unsanitised (high) at lib/phronesis/compiler.ex is 10 days old (threshold: 7 days) -- overdue for remediation",
    "type": "CSA003",
    "file": "lib/phronesis/compiler.ex",
    "action": "escalate",
    "rule_module": "code_scanning_alerts",
    "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.

2 participants