feat: truthfulness gate + proof typecheck + trusted-base scripts#220
Merged
Conversation
- C001: CodeQL language fixes - C002: License identifier standardization - C003: Outdated actions audit - C004: Pin standards refs to SHA 861b5e9 - C005: Add workflow-level permissions
…patia SHA + fix CodeQL timeout Includes CodeQL timeout increase from 15 to 60 minutes. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
d0beeb8 to
4e4582e
Compare
🔍 Hypatia Security ScanFindings: 242 issues detected
View findings[
{
"reason": "Stale AI session file -- delete",
"type": "stale",
"file": "GEMINI.md",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "medium"
},
{
"reason": "Issue in scorecard-enforcer.yml",
"type": "missing_timeout_minutes",
"file": "scorecard-enforcer.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"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": "Issue in instant-sync.yml",
"type": "secret_action_without_presence_gate",
"file": "instant-sync.yml",
"action": "peter-evans/repository-dispatch",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in codeql.yml",
"type": "codeql_missing_actions_language",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/academic-workflow-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/ephapax-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/bofig-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/fireflag-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/sanctify-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
…emplate src/browser/ was never a real directory in this repo; the browser surface is cartridges/browser-mcp/. Corrects SD022 structural-drift alert. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 241 issues detected
View findings[
{
"reason": "Stale AI session file -- delete",
"type": "stale",
"file": "GEMINI.md",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "medium"
},
{
"reason": "Issue in scorecard-enforcer.yml",
"type": "missing_timeout_minutes",
"file": "scorecard-enforcer.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"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": "Issue in instant-sync.yml",
"type": "secret_action_without_presence_gate",
"file": "instant-sync.yml",
"action": "peter-evans/repository-dispatch",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in codeql.yml",
"type": "codeql_missing_actions_language",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/academic-workflow-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/ephapax-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/bofig-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/fireflag-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server/boj-server/cartridges/sanctify-mcp/adapter/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
2 tasks
hyperpolymath
added a commit
that referenced
this pull request
Jun 14, 2026
#221) ## Summary - `SafetyLemmas.idr`: two new exported lemmas needed for SafeHTTP/SafeCORS proof chains: - `allTake`: if `allRec p xs = True` then `allRec p (take n xs) = True` - `fromLteTrue`: converts a `Bool` lte witness `(a <= b) = True` to `LTE a b` - `falseImpliesNotTrue`: refactored from case-split to `rewrite prf in Refl` so it works for any `Bool b`, not just the `False` constructor - `mcp-bridge/tests/path_claims_test.js`: additional claim coverage These were in the working tree during the foundry/truthfulness-gate rebase (PR #220) and stashed for a clean PR. ## Test plan - [ ] `idris2 --typecheck src/abi/boj.ipkg` passes - [ ] `node mcp-bridge/tests/path_claims_test.js` passes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Summary
Adds three quality gate scripts for the BoJ stack:
scripts/typecheck-proofs.sh: runsidris2 --find-ipkg --checkon every.idrfile undersrc/abi/andcartridges/*/abi/; reports PASS/FAIL per file; exits 1 if any FAILscripts/check-trusted-base.sh: counts non-commentbelieve_mecalls inSafetyLemmas.idr; exits 1 if count != 5 (the declared axiom budget); currently PASS 5/5tests/truthfulness_check.sh: finds all cartridges withavailable:trueacross boj-server and sibling boj-server-cartridges, invokesboj-invokeon each first tool, fails if result is{"status":"stub"}; currently PASS=1 (textkit-mcp encode_base64), SKIP=264Also fixes the pre-commit hook's
boj-*AGPL classification heuristic —boj-serverishyperpolymath/boj-server(MPL-2.0), not a son-shared AGPL repo. Updated to only require AGPL when theboj-*repo actually has an AGPL LICENSE file.Gate results
Note:
typecheck-proofs.shsurfaces 3 pre-existing failures in core ABI modules (CartridgeDispatch parser error, SafeCORS unsolved constraint, SafePromptInjection unsolved constraint). These predate this PR; textkit-mcp's new ABI proof passes cleanly.Test plan
bash scripts/check-trusted-base.sh→ PASS 5/5bash tests/truthfulness_check.sh→ PASS=1 FAIL=0 (textkit-mcp)bash scripts/typecheck-proofs.sh→ shows pre-existing failures in core ABI (separate debt); textkit-mcp PASS🤖 Generated with Claude Code