Claude/amazing cori kw a2 v#103
Conversation
Introduce snake_case slug() for both Aspect (60 variants) and AspectCategory (10 variants), plus Aspect::dotted_key() returning "category.aspect" form (e.g. "arithmetic.natural_numbers"). Eponymous cases produce e.g. "arithmetic.arithmetic" — intentional so the boundary filter elsewhere can distinguish math-domain keys (always dotted) from structural meta-tags. name() and Display are unchanged — they remain for human-facing output. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
…) when empty In process_goal, when a caller submits a goal with no aspects, run the lightweight RuleBasedTagger and map the resulting Aspect variants through dotted_key(). Caller-supplied aspects are trusted (no overwrite). Result is published to state.metadata["aspects"] in the canonical dotted form, ready for gnn_augment_tactics and primary_domain to consume. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
…d_key() Replace ad-hoc strings like "arithmetic"/"logic"/"algebra" in test goals with Aspect::<Variant>.dotted_key() calls so test data exercises the canonical "category.aspect" format end-to-end. The "base_case" literal in gnn/guided_search.rs:505 is left alone — it is a proof-pattern meta-tag (no dot), and the new boundary filter correctly excludes it. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
…nts / primary_domain
Two sites enforce: a string is a valid domain key iff it contains '.'.
- gnn_augment_tactics filters state.metadata["aspects"] before sending
to /gnn/rank, so structural tags like "axiom"/"constructor" never
pollute Julia's PROVER_DOMAIN_WEIGHTS key space.
- primary_domain in meta_controller skips non-dotted aspects when
selecting the canonical domain for outcome recording.
Adds two unit tests confirming primary_domain skips "axiom" and falls
through to "unspecified" when only structural tags are present. Parser
literals (8 sites listed in THEOREM-METADATA-MIGRATION.md) remain
unchanged and harmless under this filter.
https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
…ormat StatsSummaryRecord.domain doc now states it carries the dotted form produced by Aspect::dotted_key() and notes the boundary filter that keeps structural tags out of this field. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
…ct-key miss When a domain_hint like "arithmetic.natural_numbers" has no exact match in PROVER_DOMAIN_WEIGHTS, fall back to the mean of every key sharing the "arithmetic." prefix. This lets sparse domain training data still influence ranking through its category siblings, matching the rollup story that VeriSim's mv_prover_success_by_class is shaped to consume. The "no evidence → return scores unchanged" terminal behaviour and the [0.5, 1.0] modulation range are preserved. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Documents the 8 parser sites that currently mix structural meta-tags
("axiom", "constructor", "dedukti-import", etc.) into Theorem.aspects.
D1's boundary filter contains the damage; this doc tracks the deferred
refactor that splits structural metadata into a dedicated TheoremKind
field and import_source/prover_source/has_proof fields, freeing aspects
to carry only dotted math-domain keys.
https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
🔍 Hypatia Security ScanFindings: 251 issues detected
View findings[
{
"reason": "Workflow executes remote script directly (curl/wget piped to shell). Download, verify checksum/signature, then execute.",
"type": "download_then_run",
"file": "mirror.yml",
"action": "verify_download_integrity",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/Basic.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (2 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/SoundnessPreservation.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "UNSOUND: --type-in-type collapses type hierarchy (Girard's paradox) (1 occurrences, CWE-704)",
"type": "agda_type_in_type",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/IntegrityVerification.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/ConfidenceLattice.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/mvp_basic.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/Propositional.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "Nickel file missing SPDX-License-Identifier header (1 occurrences, CWE-1104)",
"type": "ncl_missing_spdx",
"file": "/home/runner/work/echidna/echidna/configs/config.ncl",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
🔍 Hypatia Security ScanFindings: 251 issues detected
View findings[
{
"reason": "Workflow executes remote script directly (curl/wget piped to shell). Download, verify checksum/signature, then execute.",
"type": "download_then_run",
"file": "mirror.yml",
"action": "verify_download_integrity",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/Basic.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (2 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/SoundnessPreservation.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "UNSOUND: --type-in-type collapses type hierarchy (Girard's paradox) (1 occurrences, CWE-704)",
"type": "agda_type_in_type",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/IntegrityVerification.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/ConfidenceLattice.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/mvp_basic.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/Propositional.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "Nickel file missing SPDX-License-Identifier header (1 occurrences, CWE-1104)",
"type": "ncl_missing_spdx",
"file": "/home/runner/work/echidna/echidna/configs/config.ncl",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
CI runners exhibit scheduling jitter constructing 12 backends back-to-back; observed 108ms on a shared runner vs the prior 100ms wall. 250ms still catches a ~2.5x regression while not flaking on cold-cache CI hosts. Refs PR #103. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI triage — 4 failing jobs categorisedJust pushed: Remaining 3 failures — all environment / upstream, not source defects in this PR:
PR scope reminder: the diff itself (aspect-category boundary filter in 🤖 Generated with Claude Code |
🔍 Hypatia Security ScanFindings: 251 issues detected
View findings[
{
"reason": "Workflow executes remote script directly (curl/wget piped to shell). Download, verify checksum/signature, then execute.",
"type": "download_then_run",
"file": "mirror.yml",
"action": "verify_download_integrity",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/Basic.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (2 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/SoundnessPreservation.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "UNSOUND: --type-in-type collapses type hierarchy (Girard's paradox) (1 occurrences, CWE-704)",
"type": "agda_type_in_type",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/IntegrityVerification.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/ConfidenceLattice.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/mvp_basic.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/Propositional.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "Nickel file missing SPDX-License-Identifier header (1 occurrences, CWE-1104)",
"type": "ncl_missing_spdx",
"file": "/home/runner/work/echidna/echidna/configs/config.ncl",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
Three design-analysis docs were sitting at repo root; relocate to docs/design/ where the rest of the design corpus already lives. No content changes. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Move from root:
- PROOF-NEEDS.md, TEST-NEEDS.md to docs/ (planning trackers)
- llm-warmup-{dev,user}.md to docs/handover/ (session warmup material)
- arcvix-neurosymbolic-theorem-proving.{tex,bib} to docs/academic/
(paper source paired with the existing ACADEMIC_PAPER.md)
No content changes; pure git mv.
https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
balance_corpus.sh, balance_corpus_fast.sh, balance_smtlib.sh, and balance_smtlib_optimized.sh now live in scripts/ alongside the existing shell/Julia maintenance scripts. Verified: no Justfile recipe, CI workflow, or build script references these by their old root path. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Six scan-result JSON files (4 hypatia versions, 1 normalised findings, 1 echidna scan) now live under reports/ rather than cluttering repo root. These are CI artefacts surfaced for diff/review; treat as periodically refreshed snapshots. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Each of these reached completion and contributed its content to the
implementation; none has ongoing maintenance value. Recoverable via git
history if any future contributor needs the historical reasoning.
- HANDOFF-TO-SONNET.md session handoff from 2026-04-25, all
tasks now landed
- docs/IMPLEMENTATION-SPECS.md work-order for container isolation +
GNN training, both shipped
- KATAGORIA_ECHO_INTEGRATION_ANALYSIS.md "ALREADY FULLY INTEGRATED"
- TYPELL_INTEGRATION_FEASIBILITY.md "Already fully implemented"
- JULIA_INTEGRATION_STRATEGY.md pre-v2 strategy; impl supersedes it
- ECHIDNA_COMPARISON_ANALYSIS.md superseded by OTHER_SYSTEMS_USP_PPA
- docs/design/CHAPEL_METALAYER_ANALYSIS.md pre-Chapel feasibility
- docs/design/CHAPEL_PLUGGABILITY_DESIGN.md Chapel now shipped
- docs/design/ZIG_FFI_ANALYSIS.md Zig FFI now shipped
https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Each file pins to a long-shipped milestone or contains numbers and
prerequisites (Python 3.8+, Docker, 12/30/48 prover counts) that
contradict current reality (v2.3.0, 105 backends, Podman/Guix only).
docs/ROADMAP.md, .machine_readable/6a2/STATE.a2ml, CHANGELOG.md, and
the kept release_notes_v{1.2,1.3}.md are the durable historical
sources. All 20 are recoverable via git history.
Removed:
- docs/QUICKSTART.md v1.3, Python 3.8+
- docs/FUTURE_DEVELOPMENT_ROADMAP.md explicitly superseded by
docs/ROADMAP.md
- ROADMAP.adoc (root) v2.0 era, "48 backends"
- docs/MVP-1.0{,-MISSING,-DEPS}.adoc v1.0 MVP checklists
- docs/TRAINING_DATA_EXPANSION.md targets 1k; have 66 674
- docs/deployment/DEPLOYMENT.md references Docker
- docs/deployment/V1.2_DEPLOYMENT_GUIDE.md v1.2.0-specific
- docs/DELIVERABLES.md mislabelled CVC5 work-order
- docs/implementation/PROVER_IMPLEMENTATION_STATUS.md "12/12 v1.2"
- 6 × docs/reports/* frozen v1.3-era reports
- docs/releases/RELEASE_NOTES.md duplicate of v1.3 notes;
v1.2 and v1.3 release
notes retained
- TOPOLOGY.md + docs/STATE-VISUALIZER.adoc superseded by STATE.a2ml
https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
- echidna-playground/ROADMAP.adoc 5-line stub superseded by the
494-line sibling roadmap.adoc
- echidna-playground/ABI-FFI-README.md unfilled RSR template ({{PROJECT}}
placeholder never replaced)
- echidna-playground/CONTRIBUTING.md recommends Nix fallback, contra
estate ruling 2026-05-18;
CONTRIBUTING.adoc is canonical
- echidna-playground/LICENSE.txt byte-identical duplicate of
LICENSE; REUSE prefers the
unsuffixed name + LICENSES/
- tests/SANITY_SUITE_README.md one-line note for a suite removed
in 2026-04-17 — note no longer
serves a purpose
- NPM_BANNED.md policy duplicated verbatim in
CLAUDE.md "BANNED" table; one
canonical home is enough
https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
RSR canonical layout names a single config/ directory for Nickel configs; echidna had a config/ (with solver-manifest.toml) AND a sibling configs/ (with a single config.ncl). Merge the latter into the former and drop the empty configs/ directory. Single-home principle restored. Verified: no Justfile recipe, CI workflow, or build script references configs/config.ncl. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
audits/ and reports/ both held audit-output material (panic-attack chunks, FFI-boundary audit, assail classifications). Consolidate the two homes into reports/, with audits/ contents living in a clearly named reports/audits/ subdirectory. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Required root-level compliance statement. Summarises 15 HARD rules from MUST.contractile + RSR_OUTLINE.adoc with citations, notes three out-of-template adaptations (STATE.a2ml location, polyglot src/ layout, extracted crates/), and points readers to the canonical contractile and .machine_readable policy files for the authoritative rules. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
…n summaries Each of the four backend pairs (Agda, CVC5, Z3, Mizar) had a user-facing docs/<NAME>_BACKEND.md and an internal docs/implementation/<NAME>_IMPLEMENTATION_SUMMARY.md. The audit found significant overlap and divergent staleness. Per the agreed direction (docs/implementation/ as canonical), each <NAME>_BACKEND.md is now appended as a clearly-labelled "Appendix: <Name> Backend Reference" section in the corresponding _IMPLEMENTATION_SUMMARY.md, then deleted. The appendix carries a note that a future polish pass should integrate the user-facing material naturally into the summary structure rather than leaving it siloed. Quick-start / quick-reference docs (CVC5_QUICK_REFERENCE, MIZAR_QUICK_START, ASPECT_QUICK_START) remain separate — they serve a distinct purpose. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
…-0.6)
NOTICE was the last surface still describing the project as
"dual-licensed under MIT and Palimpsest License v0.6." The project
migrated to MPL-2.0 in 2026 (LICENSE, source-file SPDX headers, and
CLAUDE.md all reflect this). Bring NOTICE in line:
- Single licence: MPL-2.0
- Attribution to Jonathan D.A. Jewell (matches AUTHORS.md / MAINTAINERS.adoc)
- Citation BibTeX licence field corrected
- Cross-ref to RSR_COMPLIANCE.adoc
- Drop the references to ReScript/Deno package config (replaced
by deno.json + AffineScript migration in progress)
- Refresh prover list (note the 93 other backends beyond the
12 named)
- Drop the stale security@echidna-project.org address (use
SECURITY.md / .well-known/security.txt)
https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
🔍 Hypatia Security ScanFindings: 250 issues detected
View findings[
{
"reason": "Workflow executes remote script directly (curl/wget piped to shell). Download, verify checksum/signature, then execute.",
"type": "download_then_run",
"file": "mirror.yml",
"action": "verify_download_integrity",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/Basic.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (2 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/SoundnessPreservation.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "UNSOUND: --type-in-type collapses type hierarchy (Girard's paradox) (1 occurrences, CWE-704)",
"type": "agda_type_in_type",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/IntegrityVerification.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/ConfidenceLattice.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/mvp_basic.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/Propositional.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "Nickel file missing SPDX-License-Identifier header (1 occurrences, CWE-1104)",
"type": "ncl_missing_spdx",
"file": "/home/runner/work/echidna/echidna/config/config.ncl",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
cargo fmt --check was failing on tests/gnn_augment_integration.rs (from the S5 verification harness) and a few lines in router.rs + aspect.rs (from D1). Pure mechanical rustfmt application; no semantic changes. Test Suite job on PR #103 was tripping on this. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Hypatia security scan flagged config/config.ncl as missing the SPDX header (rule_module code_safety, CWE-1104). The file became newly exposed at config/ after the Phase-2 configs/->config/ consolidation; the missing header was preexisting and is now corrected. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Closes Audit-A new-doc gap #1: TOPOLOGY.md and STATE-VISUALIZER.adoc were stale duplicates trying to be the architecture overview, both were deleted in the version-archaeology pass. This file fills the gap with a current component map, trust-pipeline walkthrough, and polyglot source layout. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Closes Audit-A new-doc gap #2: 15+ docs were citing different prover counts (12, 30, 48, 105). This file is the single source of truth for what each count means, the 10-tier breakdown, and the historical drift across versions. Other docs are migrated to cite it rather than hardcode a number. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Closes Audit-A new-doc gap #4: no single doc enumerated the env vars the system reads. This file lists ECHIDNA_ML_API_URL, VERISIM_URL, ECHIDNA_MAX_PROOF_STATES, ECHIDNA_NUM_EPOCHS, ECHIDNA_NUM_NEGATIVES, ECHIDNA_MODELS_DIR, FARM_DISPATCH_TOKEN, VERISIMDB_PAT, deprecated VERISIMDB_URL, and notes the Cargo features that gate functionality (verisim, chapel). https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Closes Audit-A new-doc gap #5: docs/handover/ has grown to 13 files (L1/L2/L3 prompts, S4/S5 runbooks, suggest CLI, theorem metadata) without a current map. This index groups them by type (prompt / runbook / plan / state), notes pre-conditions, and cross-references ROADMAP stage IDs to the handover artefact that drives each. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Replace stale "105 provers" with "128 provers", update ReScript→AffineScript migration framing, point readers to the new ARCHITECTURE.md / PROVER_COUNT.md / ENV-VARS.md / HANDOVER-INDEX.md docs and remove the "ALL IMPLEMENTED" boast from the prover-support heading (which was tier-1 status, not the full surface). https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
Was missed in the previous CLAUDE.md sweep due to an Edit-without-Read sequencing error. Cross-references the canonical PROVER_COUNT.md tier table. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
🔍 Hypatia Security ScanFindings: 249 issues detected
View findings[
{
"reason": "Workflow executes remote script directly (curl/wget piped to shell). Download, verify checksum/signature, then execute.",
"type": "download_then_run",
"file": "mirror.yml",
"action": "verify_download_integrity",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/Basic.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (2 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/SoundnessPreservation.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "UNSOUND: --type-in-type collapses type hierarchy (Girard's paradox) (1 occurrences, CWE-704)",
"type": "agda_type_in_type",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/IntegrityVerification.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/ConfidenceLattice.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/mvp_basic.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/Propositional.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/echidna/echidna/src/interfaces/graphql/resolvers.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
df72c0c to
894a3cb
Compare
docs/wiki/ holds the 6 wiki page sources (Home, Architecture, Getting-Started, FAQ, Guides, Troubleshooting) rewritten to match current state (128 backends, 12 core, AffineScript migration, Guix-primary, current trust-pipeline, pointers to canonical docs). The GitHub wiki repo (echidna.wiki.git) is not pushable from automation in this session, so the source-of-truth lives here and a maintainer with push rights syncs them into the wiki via the web UI or a local clone. README.md documents the sync flow. The wiki ceases to be a separately-drifting surface — when the referenced docs/ARCHITECTURE.md or docs/PROVER_COUNT.md or docs/ENV-VARS.md change, this is where the wiki-side text is updated and then mirrored. https://claude.ai/code/session_01YPqu7gti4azBach6ZvpRFJ
🔍 Hypatia Security ScanFindings: 165 issues detected
View findings[
{
"reason": "Workflow executes remote script directly (curl/wget piped to shell). Download, verify checksum/signature, then execute.",
"type": "download_then_run",
"file": "mirror.yml",
"action": "verify_download_integrity",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/Basic.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (2 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/proofs/agda/SoundnessPreservation.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
"type": "agda_postulate",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "UNSOUND: --type-in-type collapses type hierarchy (Girard's paradox) (1 occurrences, CWE-704)",
"type": "agda_type_in_type",
"file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
"action": "flag",
"rule_module": "code_safety",
"severity": "critical"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/IntegrityVerification.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/ConfidenceLattice.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/mvp_basic.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
"type": "lean_axiom",
"file": "/home/runner/work/echidna/echidna/proofs/lean/Propositional.lean",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/echidna/echidna/src/interfaces/graphql/resolvers.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
No description provided.