Green test suite; harden CI workflows; academic + wiki → AsciiDoc#53
Merged
Conversation
…ailures - doc_generator: locate declaration line numbers by scanning the source (the AST carries none), so doc comments above CONST/POLICY declarations are found; capture only the contiguous comment block; populate constant examples from the signature; and list constant/policy names in the generated HTML index. - incremental_lexer: snap the re-lex window back to the start of its line, so an edit inside a comment (which yields no token) re-lexes the whole line instead of a mid-line fragment that was misread as identifiers. - fixtures: documented_policy.phr gains a multi-line policy comment and the lower-case "risk threshold" wording the tests assert; sample.phr is rewritten to valid syntax (it previously used unimplemented list-literal syntax). Net: the local ExUnit suite is now fully green (460 tests, 0 failures; 4 skipped ra/consensus tests). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AqMopxUsgu78rg5fhWBUkk
- secret-scanner: pin trufflesecurity/trufflehog to a release SHA (v3.95.6) and add the missing timeout-minutes to the trufflehog job. - scorecard-enforcer: move the score-gate run step into its own job so the publish job (which holds the OIDC id-token) contains no custom run steps; the SARIF is handed between jobs via an artifact. codeql.yml already uses `language: actions`, so that Hypatia finding is stale; the binary_to_term finding is a false positive (compiler.ex already passes :safe). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AqMopxUsgu78rg5fhWBUkk
Convert the academic proof corpus (31 files) and the wiki (19 pages) from Markdown to AsciiDoc per the estate "docs must be .adoc" policy, licensed CC-BY-SA-4.0 (via pandoc): - LaTeX math is preserved as [latexmath] blocks; the white-paper sets ":stem: latexmath" so it renders under asciidoctor. - stray in-body "SPDX-License-Identifier: MPL-2.0" lines from the old headers are removed (superseded by the new CC-BY-SA-4.0 header). - intra-wiki cross-links are repointed from .md to .adoc. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AqMopxUsgu78rg5fhWBUkk
🔍 Hypatia Security ScanFindings: 17 issues detected
View findings[
{
"reason": "Issue in scorecard-enforcer.yml",
"type": "scorecard_publish_with_run_step",
"file": "scorecard-enforcer.yml",
"action": "split_scorecard_publish_job",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"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 6 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/structural_drift/SD007 -- Hypatia structural_drift: SD007 -- 8 day(s) old",
"type": "CSA001",
"file": ".claude/CLAUDE.md",
"action": "review",
"rule_module": "code_scanning_alerts",
"severity": "medium"
},
{
"reason": "Code scanning (Hypatia): hypatia/structural_drift/SD007 -- Hypatia structural_drift: SD007 -- 8 day(s) old",
"type": "CSA001",
"file": ".claude/CLAUDE.md",
"action": "review",
"rule_module": "code_scanning_alerts",
"severity": "medium"
},
{
"reason": "Code scanning (Hypatia): hypatia/structural_drift/SD007 -- Hypatia structural_drift: SD007 -- 8 day(s) old",
"type": "CSA001",
"file": ".claude/CLAUDE.md",
"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 -- 8 day(s) old [STALE]",
"type": "CSA001",
"file": "lib/phronesis/compiler.ex",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code scanning (Hypatia): hypatia/workflow_audit/unpinned_action -- Hypatia workflow_audit: unpinned_action -- 8 day(s) old [STALE]",
"type": "CSA001",
"file": "secret-scanner.yml",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code scanning (Hypatia): hypatia/workflow_audit/scorecard_publish_with_run_step -- Hypatia workflow_audit: scorecard_publish_with_run_step -- 20 day(s) old [STALE]",
"type": "CSA001",
"file": "scorecard-enforcer.yml",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
hyperpolymath
marked this pull request as ready for review
June 20, 2026 02:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up addressing the three remaining buckets, in order.
1 · Tests — local suite now fully green (460 tests, 0 failures, 4 skipped)
The 6 failures left after #52 are fixed:
CONST/POLICYdeclarations by scanning the source; it captures only the contiguous comment block, populates constantexamplesfrom the signature, and lists constant/policy names in the HTML index. Thedocumented_policy.phrfixture gains a multi-line policy comment, andsample.phris rewritten to valid syntax (it used unimplemented list-literal syntax).(4 skipped = the ra/consensus tests, which need OTP 26 + the
rahex dep, unavailable in the sandbox.)2 · CI workflow hardening (Hypatia findings)
trufflesecurity/trufflehogto a release SHA (v3.95.6) and add the missingtimeout-minutes.runstep into its own job so the publish job (which holds the OIDCid-token) has no custom run steps; the SARIF is handed over via an artifact.codeql.ymlalready useslanguage: actions(that finding was stale); thebinary_to_termfinding is a false positive (compiler.exalready passes[:safe]).3 ·
academic/+wiki/→ AsciiDoc (CC-BY-SA-4.0)Converted the academic proof corpus (31 files) and the wiki (19 pages) from Markdown to AsciiDoc via pandoc, per the estate "docs must be
.adoc" policy:[latexmath]blocks (the white-paper sets:stem: latexmath);.md→.adoc.Remaining root-level
.mdare GitHub-required (CHANGELOG / SECURITY / CONTRIBUTING / CODE_OF_CONDUCT), AI-instruction files (CLAUDE.md, copilot-instructions.md), and.github/ISSUE_TEMPLATE/*— left as-is by convention.Verification
Built/tested on Elixir + OTP 25 (hex blocked →
jason/stream_datavendored as path deps for the test run only;mix.exs/mix.lockcommitted unchanged). Full suite green; changed modules compile warning-clean; all three edited workflows passyaml.safe_load.🤖 Generated with Claude Code
https://claude.ai/code/session_01AqMopxUsgu78rg5fhWBUkk
Generated by Claude Code