Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
214 commits
Select commit Hold shift + click to select a range
334bb96
Add cfgaudit → AVE crosswalk (static config-auditor) (#67)
predictor2718 Jul 23, 2026
f4d9b4e
docs: scaling and governance policy (#80)
chaksaray Jul 27, 2026
0ce799e
docs: cross-reference scaling-and-governance.md in README (#83)
chaksaray Jul 28, 2026
a367da6
docs: cross-reference scaling-and-governance.md in CLAUDE.md (#82)
chaksaray Jul 28, 2026
79406d0
docs: cross-reference scaling-and-governance.md in CONTEXT.md (#84)
chaksaray Jul 28, 2026
798a9c6
docs: cross-reference scaling-and-governance.md in CONTRIBUTING.md (#85)
chaksaray Jul 28, 2026
43928ee
docs: cross-reference scaling-and-governance.md in GOVERNANCE.md (#86)
chaksaray Jul 28, 2026
ad2ecf2
docs: add status glossary entry, cross-referencing scaling-and-govern…
chaksaray Jul 28, 2026
e94a8de
docs: CHANGELOG entry for scaling-and-governance.md (#88)
chaksaray Jul 28, 2026
8fcc70b
docs: cross-reference scaling-and-governance.md in ARCHITECTURE.md (#89)
chaksaray Jul 28, 2026
86a2a71
feat: validate records and update skills (#91)
chaksaray Jul 28, 2026
a699f5e
fix add ave record skill
chaksaray Jul 28, 2026
5b2b340
feat: AVE-2026-00060 through 00064 -- five new records from policy/co…
chaksaray Jul 28, 2026
fbbb422
Merge remote-tracking branch 'origin/main' into develop
chaksaray Jul 28, 2026
0cedb18
chore: regenerate consolidated records JSON
chaksaray Jul 28, 2026
f4cc426
feat: AVE-2026-00065 -- A2A agent card poisoning via embedded adversa…
chaksaray Jul 29, 2026
c9dce1e
Merge remote-tracking branch 'origin/main' into develop
chaksaray Jul 29, 2026
445a178
fix: stale piranha.bawbel.io reference in README (#99)
chaksaray Jul 31, 2026
a08240e
docs: add researcher-process.md (#101)
chaksaray Jul 31, 2026
8955456
chore: add ave gap diagram (#107)
chaksaray Jul 31, 2026
e1fe630
fix: GOVERNANCE.md deprecation_reason field claim (#106)
chaksaray Jul 31, 2026
2789ac1
docs: add API link and gap diagram to README (#108)
chaksaray Jul 31, 2026
e5953c6
Change image width to 100% in README
chaksaray Jul 31, 2026
b464ed9
docs: link AVE-2026-00046 writeup from its own record (#111)
chaksaray Aug 2, 2026
d8861a5
feat: AVE-2026-00066 -- hallucinated skill-name squatting (HalluSquat…
chaksaray Aug 3, 2026
46fc1ce
feat: AVE-2026-00067 -- skill composition trust transfer (SCR-TrustLi…
chaksaray Aug 3, 2026
c302152
feat: AVE-2026-00068 -- CLI command composition risk (MOSAIC) (#115)
chaksaray Aug 3, 2026
270a263
feat: AVE-2026-00069 -- multimodal image-hidden instructions (SkillCa…
chaksaray Aug 3, 2026
34a692f
feat: AVE-2026-00070 -- distributed cross-agent backdoor fragments (C…
chaksaray Aug 3, 2026
211f71c
Merge remote-tracking branch 'origin/main' into develop
chaksaray Aug 3, 2026
8e7b0e4
docs: collapsible record index (#119)
chaksaray Aug 3, 2026
375e853
Merge remote-tracking branch 'origin/main' into develop
chaksaray Aug 3, 2026
d2e597a
Merge remote-tracking branch 'origin/main' into develop
chaksaray Aug 6, 2026
0f79df3
feat: AVE-2026-00071 -- MCP daemon redirect (container posture) (#128)
chaksaray Aug 6, 2026
ccb716a
feat: AVE-2026-00072 -- MCP server bound to all interfaces (NeighborJ…
chaksaray Aug 6, 2026
66f821e
feat: AVE-2026-00073 -- telemetry/endpoint redirect via static config…
chaksaray Aug 6, 2026
16b459e
Merge remote-tracking branch 'origin/main' into develop
chaksaray Aug 6, 2026
9fa75bb
fix: pytest tests/ (CI's actual invocation) fails to collect tests/te…
chaksaray Aug 6, 2026
dfc9846
Remove 'Bawbel' reference from README (#134)
chaksaray Aug 6, 2026
3032813
feat: AVE-2026-00074 -- reclaimable dead external anchor (SkillJackin…
chaksaray Aug 6, 2026
c6761de
fix: use scoped PAT for dist/ regenerate auto-PR, not default GITHUB_…
chaksaray Aug 7, 2026
ca05ec6
feat: AVE-2026-00075 -- bytecode poisoning (compiled cache/source div…
chaksaray Aug 7, 2026
c22e000
chore: regenerate consolidated records JSON (#139)
chaksaray Aug 7, 2026
ca358df
Merge branch 'main' into develop
chaksaray Aug 7, 2026
79cad0d
feat: AVE-2026-00076 -- natural-language steering of an approval clas…
chaksaray Aug 7, 2026
4785a17
docs: clarify AVE-2026-00073 scope (MCP server URL, agent_card_url) (…
chaksaray Aug 7, 2026
772f768
chore: regenerate consolidated records JSON (#143)
chaksaray Aug 7, 2026
5f889ed
Merge branch 'main' into develop
chaksaray Aug 7, 2026
2fe60c5
fix: escape commit message in notify-ave-site client-payload (#145)
chaksaray Aug 8, 2026
3375ec3
feat: ramparts-to-ave crosswalk + numbering-mismatch caution (#147)
chaksaray Aug 8, 2026
2bd9a36
feat: nova-proximity-to-ave crosswalk (#152)
chaksaray Aug 8, 2026
fefcc62
fix: researcher field attribution rule and worked example (#154)
chaksaray Aug 9, 2026
33ade7a
feat: soft researcher/disclosure misattribution check (#157)
chaksaray Aug 9, 2026
d233d83
chore: regenerate consolidated records JSON (#156)
chaksaray Aug 9, 2026
d1efc63
fix: resolve the 10 records flagged by the researcher/disclosure chec…
chaksaray Aug 9, 2026
1caa0b0
chore: regenerate consolidated records JSON (#159)
chaksaray Aug 9, 2026
5e1e23e
Merge branch 'main' into develop
chaksaray Aug 9, 2026
243b19d
fix: mitre_atlas citation corrections per issue #127's audit (#162)
chaksaray Aug 9, 2026
416882c
chore: regenerate consolidated records JSON (#163)
chaksaray Aug 9, 2026
bb98dd9
Merge branch 'main' into develop
chaksaray Aug 9, 2026
47d628f
fix: ave-record-1.0.0.schema.json's $id still pointed at ave.bawbel.i…
chaksaray Aug 9, 2026
4f9e454
feat: AVE-2026-00077 -- cross-origin tool/resource declaration in a s…
chaksaray Aug 9, 2026
c16a4b9
Merge branch 'main' into develop
chaksaray Aug 9, 2026
ad5267f
chore: regenerate consolidated records JSON (#169)
chaksaray Aug 11, 2026
869b401
docs: add CONTRIBUTORS.md (#172)
chaksaray Aug 12, 2026
6dafbb2
Merge branch 'main' into develop
chaksaray Aug 13, 2026
d9409df
Add AVE-2026-00078/79/80: multi-agent pipeline boundary records (arXi…
chaksaray Aug 14, 2026
bdf12f3
Merge branch 'main' into develop
chaksaray Aug 14, 2026
d11da48
fix: correct AVE-2026-00070 researcher attribution (#182)
chaksaray Aug 14, 2026
dbc56d2
chore: regenerate consolidated records JSON (#180)
chaksaray Aug 14, 2026
ba0b0f1
research: AVE → OpenCRE pilot mapping (Batch 1 submitted, issue open)…
chaksaray Aug 15, 2026
e4db9d4
Merge branch 'main' into develop
chaksaray Aug 15, 2026
4b016ba
docs: independent validation section and technical write-ups (#184)
chaksaray Aug 15, 2026
37c91c7
docs: sync CONTRIBUTING.md with current process (#188)
chaksaray Aug 15, 2026
a6491b3
Sync main into develop, resolves PR #187's conflict (#189)
chaksaray Aug 15, 2026
dbb5b6d
feat: semia-to-ave crosswalk (#190)
chaksaray Aug 15, 2026
ff57a18
Merge branch 'main' into develop
chaksaray Aug 15, 2026
8ec7c2f
feat: skillsentry-to-ave and skill-security-scanner-to-ave crosswalks…
chaksaray Aug 15, 2026
604498a
docs: owasp_asi tagging rule, from the #196 audit (#197)
chaksaray Aug 23, 2026
b5e33bd
fix: owasp_asi mapping audit (48 corrected, 13 confirmed, 11 flagged …
chaksaray Aug 23, 2026
9365f00
chore: regenerate consolidated records JSON (#198)
chaksaray Aug 23, 2026
8602092
Merge branch 'main' into develop
chaksaray Aug 23, 2026
c494f8c
fix: AVE-2026-00048 attribution and remediation branding (#202)
chaksaray Aug 25, 2026
236360e
Merge remote-tracking branch 'origin/main' into develop
chaksaray Aug 25, 2026
8e910fc
Sync main into develop, resolves PR #204's conflict (#206)
chaksaray Aug 26, 2026
a1e50c1
chore: regenerate consolidated records JSON (#203)
chaksaray Aug 26, 2026
228d545
fix: researcher-attribution audit across the corpus (49 of 50) (#205)
chaksaray Aug 26, 2026
3048d1f
chore: regenerate consolidated records JSON (#207)
chaksaray Aug 26, 2026
00b69c5
Sync main into develop, resolves PR #204's conflict (#209)
chaksaray Aug 26, 2026
858d46d
Sync main into develop, resolves PR #204's conflict (again) (#210)
chaksaray Aug 26, 2026
759dddf
docs: fix stale independent-crosswalk count in README (3 -> 8) (#200)
chaksaray Aug 27, 2026
e843ea5
docs: three real improvements surfaced by external critique (#215)
chaksaray Aug 28, 2026
038dbf6
Sync main into develop, resolves PR #222's conflict (#226)
chaksaray Aug 29, 2026
8bdddfa
Sync main into develop, resolves PR #222's conflict (round 2) (#227)
chaksaray Aug 29, 2026
070b8ca
fix conflic test validate data
chaksaray Aug 29, 2026
4827171
fix generated at manifest
chaksaray Aug 29, 2026
824279a
docs: capability-behavior-vulnerability taxonomy audit (all 80 record…
chaksaray Aug 29, 2026
18da735
crosswalks: refresh cfgaudit to v1.13.0 (64 rules onto 27 classes) (#…
predictor2718 Aug 29, 2026
742d897
docs: cross-reference the boundary-failure record family (#233)
chaksaray Aug 29, 2026
8dcddde
Apply external_authority to AVE-2026-00074, clearing its enum-gap fix…
narko4u Aug 29, 2026
543bb3b
feat: standing capability-vulnerability taxonomy check (#231)
chaksaray Aug 30, 2026
81c3665
chore: regenerate consolidated records JSON (#235)
chaksaray Aug 30, 2026
475b18c
Sync main into develop, resolves PR #238's conflict (#239)
chaksaray Aug 30, 2026
f68e888
fix generate manifest time
chaksaray Aug 30, 2026
d997b25
Split the confidence floor warning into two named findings (#242)
astrogilda Sep 2, 2026
c9b8b58
crosswalks: add AVE to MAESTRO pilot (6 records, 3 of 7 layers) (#243)
chaksaray Sep 2, 2026
a6b9605
fix: benchmark-2026-06.md citation audit (closes #241) (#244)
chaksaray Sep 2, 2026
1786eee
docs: contain the benchmark-2026-06.md retraction (#249 follow-up, St…
chaksaray Sep 3, 2026
c35afa9
feat: framework_sources -- record which framework version a mapping w…
chaksaray Sep 3, 2026
1fc097b
feat: framework_sources backfill (owasp_asi, mitre_atlas), and a sche…
chaksaray Sep 4, 2026
fef4109
fix: owasp_mcp audit corrections (39 records) and framework_sources b…
chaksaray Sep 4, 2026
c7e1092
chore: regenerate consolidated records JSON (#258)
chaksaray Sep 4, 2026
8dd1d1f
update ave records latest date
chaksaray Sep 5, 2026
92bb011
docs: generated terms.md with sync check (#262)
chaksaray Sep 5, 2026
08a6b0b
feat: add source_url to framework_sources (#266)
chaksaray Sep 9, 2026
2684a82
fix conflict on terms
chaksaray Sep 9, 2026
5cf3a3d
docs: add contributor grid to README (#273)
chaksaray Sep 13, 2026
d756b26
Add AVE-2026-00081: Lingering Authority (arXiv:2606.22504) (#270)
chaksaray Sep 21, 2026
1ee54f8
feat: AVE-2026-00082 -- local skill name collision (deterministic rou…
chaksaray Sep 21, 2026
1f0c578
Sync main into develop, resolves PR #280's conflict
chaksaray Sep 21, 2026
6e227a7
feat: add AVE-2026-00083, Silent Guardrail Comparison Failure (#277)
chaksaray Sep 22, 2026
0e22ab2
chore: regenerate consolidated records JSON (#282)
chaksaray Sep 22, 2026
ce92f54
Merge branch 'main' into develop
chaksaray Sep 22, 2026
31be9c4
update readme, changelog and dist
chaksaray Sep 22, 2026
3589994
update latest update dist
chaksaray Sep 22, 2026
f9fea38
chore: sync codeql-action 4.38.0 from main into develop (#285)
chaksaray Sep 22, 2026
d361a33
feat: AVE-2026-00084, Lifecycle Hook Trust Decoupling (HookPry) (#289)
chaksaray Sep 28, 2026
651a753
fix: AVE-2026-00044, new variant instance from Clinejection (#294)
chaksaray Sep 29, 2026
75de001
chore: regenerate consolidated records JSON (#300)
chaksaray Sep 29, 2026
7dd911f
update records latest manifest
chaksaray Sep 29, 2026
8f35a4a
Sync main into develop (#303)
chaksaray Sep 29, 2026
67f62fd
feat: AVE-2026-00085, Collusive Cross-Skill Composition (ColluSkill) …
chaksaray Sep 30, 2026
0109b18
fix coflict
chaksaray Sep 30, 2026
2e29eac
chore: regenerate consolidated records JSON (#302)
chaksaray Sep 30, 2026
83bdda2
feat: AVE-2026-00086, Mid-Session WebMCP Tool Registry Hijacking (#293)
chaksaray Oct 1, 2026
722c029
feat: AVE-2026-00086 webmcp tool registry hijacking
chaksaray Oct 1, 2026
84d56cd
feat: AVE-2026-00087, Agentjacking (Tool Response Template Mimicry) (…
chaksaray Oct 1, 2026
4236175
feat: AVE-2026-00087, Agentjacking (Tool Response Template Mimicry)
chaksaray Oct 1, 2026
70d1244
chore: regenerate consolidated records JSON (#307)
chaksaray Oct 1, 2026
1ec6cdc
chore: regenerate consolidated records JSON
chaksaray Oct 1, 2026
5074921
ci: fail new or edited high-confidence records that omit evidence_van…
astrogilda Oct 5, 2026
25600bd
feat: standing check for mutation_count / ThM decision trail (#306)
chaksaray Oct 5, 2026
811a521
fix: ave-in-sarif.md vendor-neutrality and staleness (#311)
chaksaray Oct 5, 2026
fa87cf9
docs: correct the pre-existence claim in #306's CHANGELOG entry and s…
chaksaray Oct 14, 2026
a307084
Remove remaining Bawbel-branded infrastructure references and stale a…
chaksaray Oct 14, 2026
eee2431
doc: correct pre-existing claim for ThM
chaksaray Oct 14, 2026
733974d
chore: regenerate consolidated records JSON (#325)
chaksaray Oct 14, 2026
78aa003
crosswalks: refresh cfgaudit to v1.16.0 (66 rules onto 28 classes) (#…
predictor2718 Oct 23, 2026
31b81b9
Backfill framework_sources for the 61 remaining records, enforce it i…
chaksaray Oct 23, 2026
659ead8
chore: regenerate consolidated records JSON (#346)
chaksaray Oct 23, 2026
aa1676d
feat: AVE-2026-00088, Sandbox Side-Effect Trust Handoff (#331)
chaksaray Oct 23, 2026
3df547a
correct record date
chaksaray Oct 23, 2026
a41b395
chore: regenerate consolidated records JSON (#349)
chaksaray Oct 23, 2026
6114184
feat: AVE-2026-00089, Model-Supplied Sandbox Boundary (#336)
chaksaray Oct 23, 2026
ff220d2
fix conflict on the records
chaksaray Oct 23, 2026
ebebf2c
chore: regenerate consolidated records JSON (#351)
chaksaray Oct 23, 2026
5940399
Crosswalk: AVE to OWASP AI Exchange (pilot) (#338)
chaksaray Oct 23, 2026
f0cfe6d
update record date
chaksaray Oct 23, 2026
e7aa6e1
fix: cite external primary sources for AVE-2026-00063 and 00064 (#340)
chaksaray Oct 23, 2026
3e6e5cc
fix record time
chaksaray Oct 24, 2026
8e08eaa
chore: regenerate consolidated records JSON (#354)
chaksaray Oct 24, 2026
4cc841d
docs: correct AVE-2026-00044's README row and check the README agains…
avp9-nexus Oct 25, 2026
4eec3a7
doc: changelog
chaksaray Oct 25, 2026
fe4979a
feat: add an optional revisions array with a closed reason_code (#323)
astrogilda Oct 25, 2026
a3661ae
chore: regenerate consolidated records JSON (#359)
chaksaray Oct 25, 2026
984a6f1
crosswalks: rebuild skillspector from source at v2.13.1, rule level (…
chaksaray Oct 26, 2026
a53f4d5
release: schema 1.2.0, frozen versioned files, per-version validation…
chaksaray Oct 28, 2026
f8918b1
Merge main into develop, resolves PR #368's conflict
chaksaray Oct 28, 2026
ebe40ce
docs: move the untagged 1.2.0 and 1.3.0 CHANGELOG sections under Unre…
chaksaray Oct 29, 2026
4a6376f
chore: regenerate consolidated records JSON (#367)
chaksaray Oct 29, 2026
974bb85
feat: catalog releases with checksums, source commit and provenance (…
chaksaray Oct 29, 2026
8f3b05c
fix pin
chaksaray Oct 29, 2026
219a600
Merge main into develop after PR #371
chaksaray Oct 29, 2026
8858429
docs: drop the dist snapshot pin from the README offline example
chaksaray Oct 29, 2026
3abc228
docs: CHANGELOG for the v1.2.0 catalog release
chaksaray Oct 29, 2026
e4a9d80
Merge main into develop after PR #372 and the v1.2.0 release
chaksaray Oct 29, 2026
1cd3f4f
docs: implementer guide for pinned releases, offline use and status w…
chaksaray Oct 29, 2026
95152f0
release: schema 1.3.0, merged and rejected statuses (#104), revision …
chaksaray Oct 29, 2026
aec46a7
chore: regenerate consolidated records JSON (#378)
chaksaray Oct 29, 2026
e3a07bb
docs: implementer guide says schema 1.3.0's statuses are published (#…
chaksaray Oct 30, 2026
38d9979
Merge main into develop after the 1.3.0 promotion (#379)
chaksaray Oct 30, 2026
2121843
Merge main into develop after promotion #384
chaksaray Oct 30, 2026
fa2c55b
feat: revisions ratchet, append-only and required for gate-relevant c…
chaksaray Oct 30, 2026
3ceba71
Merge main into develop after promotion #385
chaksaray Oct 30, 2026
d24160d
docs: remove stale schema, coverage and detection-rule statements fro…
chaksaray Oct 30, 2026
3eb6a7e
Merge main into develop after promotion of #387
chaksaray Oct 30, 2026
236df96
test: README, CLAUDE.md and CONTRIBUTING field lists must match the s…
chaksaray Oct 30, 2026
9af2038
docs: explain how AVE works and how to use it, state stability, fix s…
chaksaray Oct 30, 2026
015ab3f
feat: check severity against the score's band (#396) (#398)
chaksaray Oct 30, 2026
dfb920f
check severity against the score's band
chaksaray Oct 30, 2026
6e019fd
docs: CVSS input reconciliation audit (#402) (#403)
chaksaray Oct 31, 2026
7c44527
docs: say what is immutable (the ave_id), not that records and credit…
chaksaray Oct 31, 2026
ffb9ec5
feat: output conformance checker for tools that emit AVE ids (#406) (…
chaksaray Oct 31, 2026
46aca62
add output conformance checker
chaksaray Oct 31, 2026
617d465
docs: decisions for generic-class records and a work queue for the au…
chaksaray Oct 31, 2026
2b31472
fix: repair eight cut-off behavioral fingerprints and guard against t…
chaksaray Oct 31, 2026
57eac64
repair eight cut-off behavioral fingerprint & guard
chaksaray Oct 31, 2026
9f22880
chore: regenerate consolidated records JSON (#416)
chaksaray Oct 31, 2026
d2b4917
feat: queue rewrite_fingerprint for the seven restored records, and s…
chaksaray Oct 31, 2026
e9894c0
rewrite fingerprint
chaksaray Oct 31, 2026
6676db2
feat: canonical SARIF taxonomy, form C and taxonomy checks (spec v1.2…
chaksaray Oct 31, 2026
5ccab7e
fix: quality batch 1, taxonomy fields for ten records (#422) (#423)
chaksaray Oct 31, 2026
af74ee1
fix: quality batch 2, taxonomy fields for ten records (#424) (#425)
chaksaray Oct 31, 2026
313bfe2
fix: quality batch 3, taxonomy fields for ten records (#426) (#427)
chaksaray Oct 31, 2026
7927a54
fix: quality batch 4, taxonomy fields for ten records (#428) (#429)
chaksaray Oct 31, 2026
615e56a
fix: quality batch 5, taxonomy fields for ten records (#430) (#431)
chaksaray Oct 31, 2026
8190dd5
fix: quality batch 6, taxonomy fields for ten records (#432) (#433)
chaksaray Oct 31, 2026
7fb1769
chore: regenerate consolidated records JSON (#436)
chaksaray Oct 31, 2026
6914f60
update manifest record time
chaksaray Oct 31, 2026
0753b2d
fix: quality batch 7, taxonomy fields for 4 records (#438) (#439)
chaksaray Nov 4, 2026
57f4f87
chore: regenerate consolidated records JSON (#441)
chaksaray Nov 4, 2026
1c58e8c
feat: ship the SARIF taxonomy as a verified catalog release asset (#443)
chaksaray Nov 4, 2026
8049673
chore: merge main back into develop after the squash-merged promotion…
chaksaray Nov 4, 2026
1e0665e
crosswalks: refresh cfgaudit to v1.18.1 (66 rules onto 28 classes) (#…
predictor2718 Nov 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions .github/workflows/catalog-release.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
name: catalog-release

# Publishes a catalog release: a GitHub Release tagged v<version> carrying
# ave-records.json, ave-records.manifest.json and SHA256SUMS, with a build
# provenance attestation for the two data files. Run by hand from
# ave-records.json, ave-records.manifest.json, ave-taxonomy.json (the SARIF
# taxonomy of exactly those records) and SHA256SUMS, with a build provenance
# attestation for the three data files. Run by hand from
# Actions > catalog-release; it builds a commit already on main and never
# pushes to the repository. Policy: docs/specs/scaling-and-governance.md,
# section 6.
Expand Down Expand Up @@ -126,19 +127,26 @@ jobs:
--manifest-out release/ave-records.manifest.json
jq --arg release "v$VERSION" '{release: $release} + .' release/ave-records.manifest.json > manifest.tmp
mv manifest.tmp release/ave-records.manifest.json
(cd release && sha256sum ave-records.json ave-records.manifest.json > SHA256SUMS)
python3 scripts/build_taxonomy.py \
--records release/ave-records.json \
--release "v$VERSION" \
--release-date "$(jq -r '.generated_at[:10]' release/ave-records.manifest.json)" \
--download-uri "https://github.com/$GITHUB_REPOSITORY/releases/download/v$VERSION/ave-taxonomy.json" \
--out release/ave-taxonomy.json
(cd release && sha256sum ave-records.json ave-records.manifest.json ave-taxonomy.json > SHA256SUMS)
cat release/ave-records.manifest.json release/SHA256SUMS

# the tag does not exist yet, so source_commit is checked against this run's commit
- name: Verify the release files
run: python scripts/check_release_assets.py release --tag "v$VERSION" --commit "$(git rev-parse HEAD)"
run: python scripts/check_release_assets.py release --tag "v$VERSION" --commit "$(git rev-parse HEAD)" --repo "$GITHUB_REPOSITORY"

- name: Attest build provenance for both data files
- name: Attest build provenance for the three data files
uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
with:
subject-path: |
release/ave-records.json
release/ave-records.manifest.json
release/ave-taxonomy.json

- name: Create the release
env:
Expand All @@ -157,4 +165,4 @@ jobs:
--title "AVE v$VERSION" \
--notes-file release-notes.md \
"${draft_flag[@]}" \
release/ave-records.json release/ave-records.manifest.json release/SHA256SUMS
release/ave-records.json release/ave-records.manifest.json release/ave-taxonomy.json release/SHA256SUMS
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ Format: [Semantic Versioning](https://semver.org). Schema versions and record se
## [Unreleased]

### SARIF
- **The taxonomy as a verified catalog-release asset** (#442). The `catalog-release` workflow builds
`ave-taxonomy.json` with `scripts/build_taxonomy.py` from the release's own `ave-records.json`, stamped with the
release's version, the manifest's date and its own download URL, lists it in `SHA256SUMS` and attests it with the
other data files. `scripts/check_release_assets.py` regenerates it from the release's records and demands a byte
match, naming the field or taxon that differs first, and takes a new `--repo owner/name` (default `aveproject/ave`)
so a fork's release is verified against the fork. Releases from v1.3.0 must carry the taxonomy; v1.0.0 to v1.2.0
verify as before. That makes the order mechanical: this has to merge before v1.3.0 is cut.
- **The AVE taxonomy as a canonical file, form C and taxonomy checks** (#420). `dist/ave-taxonomy-latest.json` is the AVE
taxonomy as a SARIF 2.1.0 `toolComponent` with a frozen `guid` (`5110b285-34d7-5334-94db-0308b24cfb49`, the UUIDv5 of
`https://aveproject.org/taxonomy/AVE`) and one taxon per record, including records whose status is not `active`.
Expand Down
27 changes: 24 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -512,12 +512,16 @@ watching and the API.
A catalog release is a [GitHub Release](https://github.com/aveproject/ave/releases)
tagged `vX.Y.Z`: a fixed copy of the record set that does not change after it is
published. Each one carries three files and a build provenance attestation for
the first two:
the first two; from v1.3.0 it carries a fourth, the SARIF taxonomy, which the
attestation covers too:

- `ave-records.json`: every published record.
- `ave-records.manifest.json`: the release tag, `schema_version`, `record_count`,
the SHA-256 of `ave-records.json` and `source_commit`, the commit it was built from.
- `SHA256SUMS`: checksums of both files.
- `ave-taxonomy.json` (from v1.3.0): the [SARIF taxonomy](docs/specs/ave-in-sarif.md)
of exactly these records, stamped with the release's own version, date and
download link, ready to embed in a tool's SARIF output.
- `SHA256SUMS`: checksums of the data files (three of them from v1.3.0).

Pin a tag, then check what you downloaded:

Expand All @@ -535,7 +539,24 @@ gh attestation verify ave-records.manifest.json --repo aveproject/ave
```

`check_release_assets.py` confirms the checksums, that the manifest matches the
records file, and that `source_commit` is the commit the tag points at.
records file, and that `source_commit` is the commit the tag points at. From
v1.3.0 it also regenerates `ave-taxonomy.json` from the records file and requires
a byte for byte match, and refuses a release without it.

From v1.3.0 on, add the taxonomy to the same steps. `--repo` is the repository the
release is published under, so verify a fork's release with `--repo owner/name`:

```bash
TAG=v1.3.0
curl -fsSLO "https://github.com/aveproject/ave/releases/download/$TAG/ave-taxonomy.json"
sha256sum -c SHA256SUMS # now covers three files
python ave-src/scripts/check_release_assets.py . --tag "$TAG" --git-dir ave-src --repo aveproject/ave
gh attestation verify ave-taxonomy.json --repo aveproject/ave
```

The taxonomy has stable URLs: `https://github.com/aveproject/ave/releases/download/vX.Y.Z/ave-taxonomy.json`
for a release, and `https://github.com/aveproject/ave/releases/latest/download/ave-taxonomy.json`
for the newest.

Three kinds of record file, and which is which:

Expand Down
34 changes: 21 additions & 13 deletions crosswalks/cfgaudit-to-ave.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,24 @@
"source": {
"tool": "cfgaudit",
"vendor": "cfgaudit",
"version": "1.16.0",
"version": "1.18.1",
"url": "https://github.com/cfgaudit/cfgaudit",
"license": "Apache-2.0",
"tool_class": "static configuration auditor",
"rules_total": 114,
"rules_total": 116,
"rules_mapped": 66,
"commit": "7868c87ff576de8e497cdc419a0095808b88a4dd"
"commit": "d490362f1889e84c2704ae304a0e6bb1863697fa"
},
"target": {
"standard": "AVE",
"version": "1.1.0",
"url": "https://aveproject.org",
"record_count": 87,
"record_count": 89,
"static_record_count": 61,
"commit": "7d32d20f0256e21725c8796ea7698befe3c3f10c"
"commit": "8e08eaaf2a6a870f44172c4504f46325d6ecde8c"
},
"generated": "2026-10-12",
"note": "cfgaudit is a static auditor of committable AI-agent CONFIGURATION files. It does not connect to running servers or observe runtime, so it maps only to AVE's static_detection records. Each cfgaudit rule emits its primary AVE id in JSON/SARIF output (see github.com/cfgaudit/cfgaudit/blob/main/docs/cfgaudit-to-ave.md). Mappings are class-level behavioral equivalence, not asserted identity. cfgaudit now maps 66 config-surface rules onto 28 AVE behavioral classes, up from 64 onto 27 at v1.13.0. This revision spans three cfgaudit releases (v1.14.0, v1.15.0, v1.16.0), which added eight rules, CFG107 through CFG114. Two map: CFG113 to AVE-2026-00001, a class this file did not cover before, and CFG114 to AVE-2026-00064. The other six are left unmapped on purpose and listed under config_surfaces_beyond_ave with the reason. The record set grew from 80 to 87; of the seven new records, AVE-2026-00082, 00084 and 00085 are static_detection and are listed under gaps, each with the detail that keeps it from mapping. Both sides are pinned by commit: cfgaudit at the v1.16.0 tag, AVE at the commit read.",
"generated": "2026-10-24",
"note": "cfgaudit is a static auditor of committable AI-agent CONFIGURATION files. It does not connect to running servers or observe runtime, so it maps only to AVE's static_detection records. Each cfgaudit rule emits its primary AVE id in JSON/SARIF output (see github.com/cfgaudit/cfgaudit/blob/main/docs/cfgaudit-to-ave.md). Mappings are class-level behavioral equivalence, not asserted identity. cfgaudit maps 66 config-surface rules onto 28 AVE behavioral classes, the same as at v1.16.0. This revision spans cfgaudit v1.17.0 to v1.18.1, which added two rules, CFG115 and CFG116. Both are left unmapped on purpose and listed under config_surfaces_beyond_ave with the reason: each makes the agent read a file on the reader's machine, which no record covers. The record set grew from 87 to 89; AVE-2026-00088 and 00089 are both runtime_observed, so the static count stays at 61 and no gap is added. Both sides are pinned by commit: cfgaudit at the v1.18.1 tag, AVE at the commit read.",
"mappings": [
{
"ave_id": "AVE-2026-00001",
Expand Down Expand Up @@ -302,10 +302,10 @@
],
"coverage": {
"ave_static_records": 61,
"cfgaudit_rules_total": 114,
"cfgaudit_rules_total": 116,
"cfgaudit_rules_mapped": 66,
"ave_classes_covered": 28,
"cfgaudit_rules_unmapped": 48
"cfgaudit_rules_unmapped": 50
},
"validation": {
"against": {
Expand Down Expand Up @@ -379,29 +379,37 @@
"CFG107",
"CFG110"
],
"note": "New. Codex shell_environment_policy.set (CFG107) and the Claude Code settings env block (CFG110) setting BASH_ENV, LD_PRELOAD, NODE_OPTIONS and similar, so code runs in every shell command and hook the agent starts. The mechanism is the one AVE-2026-00055 describes, but that record is bound to an untrusted MCP launch config; stretching it onto the agent's own process environment would change what it asserts."
"note": "Added at v1.14.0 (CFG107) and v1.15.0 (CFG110). Codex shell_environment_policy.set (CFG107) and the Claude Code settings env block (CFG110) setting BASH_ENV, LD_PRELOAD, NODE_OPTIONS and similar, so code runs in every shell command and hook the agent starts. The mechanism is the one AVE-2026-00055 describes, but that record is bound to an untrusted MCP launch config; stretching it onto the agent's own process environment would change what it asserts."
},
{
"surface": "a committed scheduler that fires prompts on a timer",
"example_rules": [
"CFG108"
],
"note": "New. A committed .claude/scheduled_tasks.json: its presence self-enables Claude Code's otherwise-off scheduler and enqueues a repository-authored prompt on a schedule. AVE-2026-00063 is a bypassed human approval gate; this bypasses no gate, it opens a new autonomous channel."
"note": "Added at v1.14.0. A committed .claude/scheduled_tasks.json: its presence self-enables Claude Code's otherwise-off scheduler and enqueues a repository-authored prompt on a schedule. AVE-2026-00063 is a bypassed human approval gate; this bypasses no gate, it opens a new autonomous channel."
},
{
"surface": "a declared configuration that never loads",
"example_rules": [
"CFG109",
"CFG012"
],
"note": "New. The repository states guardrails that are not in force because the agent does not load the file. Measured in both directions: Codex logs 'Invalid configuration; using defaults' and runs, and Claude Code silently discards a whole settings file, every deny rule and hook with it, on a top-level type error or on one unloadable PreToolUse or PermissionRequest hook entry. AVE-2026-00083 is the nearest in effect but is runtime_observed and scoped to a mechanism's own comparison logic."
"note": "CFG109 added at v1.15.0; CFG012 is older. The repository states guardrails that are not in force because the agent does not load the file. Measured in both directions: Codex logs 'Invalid configuration; using defaults' and runs, and Claude Code silently discards a whole settings file, every deny rule and hook with it, on a top-level type error or on one unloadable PreToolUse or PermissionRequest hook entry. AVE-2026-00083 is the nearest in effect but is runtime_observed and scoped to a mechanism's own comparison logic."
},
{
"surface": "a committed credential source sent to a committed endpoint",
"example_rules": [
"CFG112"
],
"note": "New. An MCP server's bearer_token_file names a file on the reader's machine whose content is sent as a bearer token to the server URL in the same committed file. AVE-2026-00047 is a credential written into the component; here the file names where to read one and where to send it, which no record covers."
"note": "Added at v1.15.0. An MCP server's bearer_token_file names a file on the reader's machine whose content is sent as a bearer token to the server URL in the same committed file. AVE-2026-00047 is a credential written into the component; here the file names where to read one and where to send it, which no record covers."
},
{
"surface": "a committed path that makes the agent read a file on the reader's machine",
"example_rules": [
"CFG115",
"CFG116"
],
"note": "New. CFG115: a committed config path is a symbolic link that resolves outside the repository, so the agent loads its settings, MCP config or instructions from a file on the machine that checked the repository out. CFG116: an @path import in a committed CLAUDE.md, AGENTS.md or .claude/rules file resolves outside the repository (~/..., an absolute path, ../ past the root); Claude Code loads it after a once-per-project approval dialog. A reviewer sees the link or the import line, but not the content of the file it reaches. AVE-2026-00001 is a remote fetch, AVE-2026-00047 a credential written into the component, AVE-2026-00053 a path traversal in an MCP tool's own path validation and AVE-2026-00089 a runtime_observed sandbox scope taken from a tool parameter; none covers a repository choosing which local file the agent reads."
}
]
}
Loading
Loading