Skip to content

fix: structure data neutrality - #49

Merged
chaksaray merged 19 commits into
mainfrom
develop
Jul 19, 2026
Merged

fix: structure data neutrality#49
chaksaray merged 19 commits into
mainfrom
develop

Conversation

@chaksaray

Copy link
Copy Markdown
Contributor

No description provided.

chaksaray added 19 commits July 18, 2026 11:15
* Create CNAME

* Update CNAME to aveproject.org

* feat: rebuild records.js with 8 new AVE records (51 -> 59)

Pulled the latest records from bawbel/ave/records and regenerated
records.js via scripts/build-records.js, validating against the
v1.0.0 schema. Updates the records badge count in README.

* chore: replace ave.bawbel.io references with aveproject.org

Updates canonical URLs, meta tags, JSON-LD, sitemap, robots.txt,
crosswalk schema references, and docs to point at the new
aveproject.org domain.
…e API (#28)

* Create CNAME

* Update CNAME to aveproject.org

* fix: repoint record citation to the aveproject/ave source, not the private API

The drawer's citation text was hardcoded to api.piranha.bawbel.io, a
separate Bawbel product endpoint, independent of what a record's own
references say. Point it at the actual records/*.json source file in
aveproject/ave instead, and drop the "Bawbel/" prefix from the citation
string itself — a researcher pasting this into their own paper shouldn't
carry Bawbel branding in a citation meant to reference the open standard.
* Create CNAME

* Update CNAME to aveproject.org

* feat: rewrite schema.html for v1.1.0

The live page still documented the v1.0.0 shape: no provenance_vector,
trifecta_profile, mitigation, or example_patterns; owasp_mapping and
mitre_atlas_mapping shown as live field names; a flat 15-required-fields
list that didn't reflect the draft/active conditional split; and
github.com/bawbel/ave links throughout.

Rewritten against the canonical schema/ave-record-1.1.0.schema.json in
aveproject/ave: documents the two new v1.1.0 classification objects,
renames the framework mapping fields, splits required fields into the
8 always-required plus the 7 that apply once a record leaves draft, and
repoints domain/GitHub links to aveproject.org and aveproject/ave.
* Create CNAME

* Update CNAME to aveproject.org

* fix: remove Bawbel vendor coupling from architecture.html

The detection-layers table's scanner column, the runtime-records callout,
and the validation section's SVG and prose all named or implied a single
reference implementation (bawbel scan, bawbel-scanner, PiranhaDB,
api.piranha.bawbel.io) as if it were part of the standard. AVE is meant to
be implementation-neutral: describe what a conforming scanner or fixture
relationship looks like in the abstract, not which vendor ships it.
Every footer carried Bawbel's own consumer-facing slogan ("Sense. Protect.
Secure. — ocean & beyond") and bare domain directly beneath the sentence
stating AVE is meant to outlive any single implementation, including
Bawbel's — a direct contradiction on every page of the standard's site.

Replaced with a copyright line and license, keeping two spans so the
.base flex layout (justify-content: space-between) isn't disturbed. Six
files needed this, not four: schema.html was not already fixed as assumed,
and scoring.html carries the same footer template but wasn't in scope of
the original audit.
…mn (#36)

The crosswalk table's row builder still read owasp_mapping and
mitre_atlas_mapping, both renamed away, and never read nist_ai_rmf at all
since that field didn't exist when this table was first built. Reading a
missing property returns undefined silently, so this failed with no
console error.

Adds a fourth NIST AI RMF column and reads owasp_asi/mitre_atlas/
nist_ai_rmf directly from each record. Verified against the live
records.js: AVE-2026-00001 now populates real values in all four
framework columns.
Reworks sentences, headings, and the shared footer paragraph across all
six pages to read without em-dashes, per house style. Title tags, meta
descriptions, SVG diagram labels, and JS placeholder/label strings are
left untouched as non-prose exceptions.
Transcribes docs/specs/ave-implementer-guide.md from aveproject/ave
(post em-dash and stale-endpoint fixes in PR #65) using the site's
existing page template (topbar/pagehead/footer from schema.html).

Not yet linked from nav or footer on any page; that's a separate change.
…card (#45)

* feat: add implementer-guide.html

Transcribes docs/specs/ave-implementer-guide.md from aveproject/ave
(post em-dash and stale-endpoint fixes in PR #65) using the site's
existing page template (topbar/pagehead/footer from schema.html).

Not yet linked from nav or footer on any page; that's a separate change.

* feat: wire implementer guide into nav/footer, add copy buttons and homepage card

- Adds a "Guide" top-nav link and "Implementer Guide" footer link to all
  six existing pages plus a self-referential active link on the new page
  itself. Verified at both desktop and mobile widths: the nav does not
  wrap or crowd with six items, and the mobile hamburger menu opens
  cleanly with all six entries plus GitHub.
- Fixes stale github.com/bawbel/ave nav/footer/body links (registry,
  crosswalks, architecture, scoring) to github.com/aveproject/ave, found
  while touching those same nav blocks. github.com/bawbel/scanner links
  (the separate reference-scanner repo) are untouched.
- Adds a copy-to-clipboard button to each code block on
  implementer-guide.html, reusing the site's existing dark codeblock
  styling. Verified live: click copies the exact code text and the
  button swaps to a checkmark.
- Adds a sixth "Implementer guide" card to the homepage route grid,
  matching the existing card style and completing a 3x2 layout.
…#48)

Fix 1: JSON-LD "name" field ("AVE — ..." -> "AVE: ...") on all seven
pages, the last em-dash in that field.

Fix 2: JSON-LD publisher reassigned from Bawbel (name + bawbel.io url)
to AVE Project (name + aveproject.org url) on all seven pages, matching
the neutral framing already used elsewhere on the site. logo was
already correct and untouched.

Fix 3: registry.html didn't read its own ?q= param, so the SearchAction
already advertised in every page's structured data pointed at a feature
that didn't exist. Pre-fills the existing #q search input from
location.search on load, before the single existing render() call --
no parallel search mechanism, just feeding the URL param into the
filter that was already wired to that input's input event.
@chaksaray
chaksaray merged commit 6277eb4 into main Jul 19, 2026
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.

1 participant