ASVS 5.0.0 re-map: all three files, schema v2, translated from the ASVS project's own mapping - #123
Open
emmanuelgjr wants to merge 5 commits into
Open
emmanuelgjr wants to merge 5 commits into
emmanuelgjr wants to merge 5 commits into
Conversation
…class) The ASVS files were left out of the per-framework id grammar in #110 because ASVS was not among the ten frameworks that PR covered. The same swapped-column bug was still present: DSGAI_ASVS.md writes "| V8.1.1 - Sensitive data... | V8 Data Protection |", so control_id held the chapter and the requirement id sat inside control_name on 67 of the 151 ASVS rows. Adds the ASVS grammar - requirement ids V<chapter>.<section>.<requirement>, with the chapter as parent - so all 151 rows now carry a requirement id, and migrates the registry off the ids the old parse produced (75 -> 82 items, 17 chapter entries converted). The other ten frameworks are unchanged, which the migration run confirms: 0 added, 0 unresolved for each. This had to land before the 4.0.3 -> 5.0 translation: two thirds of the rows had no requirement id to translate. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Identifiers translated with the ASVS project own mapping file; requirement text replaced with 5.0.0 own wording; schema v2 columns added to every mapping table with relationship, rationale type and confidence reading DRAFT, because whether a 5.0.0 requirement still addresses the GenAI risk the row claims is expert judgment (C4), not a translation. Rows citing requirements 5.0.0 deleted keep their 4.0.3 identifier, carry a DRAFT marker naming the official disposition, and their Framework ver. column reads ASVS 4.0.3. The maturity-roadmap table is not a mapping table and gets no v2 columns, but its identifiers are translated too, so the file does not cite 4.0.3 numbers beside 5.0.0 ones. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Same translation and schema v2 treatment. This file held most of the swapped identifiers fixed in the prerequisite commit, so it is also where the most rows had no requirement id to translate until now. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Same treatment again. This file was the one flagged as still legacy tier; in fact all three were - none of the 151 ASVS rows carried a relationship and every one was unreviewed - so the schema v2 columns land across all three. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Registry rebuilt against the v5.0.0 release: the 44 requirement ids the mappings cite, titled with 5.0.0 own text, plus their sections and chapters (82 -> 78 items). The 11 ids 5.0.0 deleted keep their 4.0.3 title and carry source_status - several of those numbers exist in 5.0.0 as an entirely different requirement, so titling them from 5.0.0 would assert a mapping nobody made. framework-sources: mapped_version 4.0.3 -> 5.0.0, so ASVS reads as current in the freshness report rather than behind (3 current -> 4). docs/ASVS_4_TO_5_TRANSLATION.md lists every old -> new identifier with the official disposition, row count and entries affected. The instruction named reports/asvs-4-to-5-translation.md and the generator writes there too, but reports/ is gitignored, so the committed copy lives in docs/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
emmanuelgjr
force-pushed
the
feat/asvs-5.0-remap
branch
from
September 18, 2026 20:12
fc91f60 to
839a7d6
Compare
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.
Item 3 — #22, green-lit with widened scope. Do not merge yet. Five commits, one per logical unit.
The official mapping exists, so this proceeded
The ASVS project publishes
5.0/mappings/mapping_v4.0.3_to_v5.0.0.yml— 278 entries with verbs (MOVED TO,MODIFIED,SPLIT TO,MERGED TO,COVERED BY,DELETED, …). Every identifier change here comes from that file; requirement text comes from the v5.0.0 release. None of it is our judgment.Two corrections to what I reported earlier
Agentic_ASVS.md— 0 of 151 ASVS rows carried a relationship and every one wasunreviewed. My earlier claim came from grepping for the word "confidence", which appears in prose.DSGAI_ASVS.mdrows like| V8.1.1 — … | V8 Data Protection |still put the chapter incontrol_id: 67 of 151 rows had no requirement id to translate.Result
Per file: LLM 36 translated / 4 retained · DSGAI 51 / 16 · Agentic 40 / 4.
docs/ASVS_4_TO_5_TRANSLATION.mdlists every old → new identifier with its official disposition, row count and affected entries.You asked for
reports/asvs-4-to-5-translation.md; the generator writes there too, butreports/is gitignored, so the committed copy is indocs/. Say if you'd rather amend the ignore rule.A trap, and a bug I shipped into CI and then fixed
The trap: several deleted 4.0.3 numbers exist in 5.0.0 as an entirely different requirement (
V1.1.2among them). Renumbering them silently, or titling them from 5.0.0 data, would assert a mapping nobody made. Retained rows therefore keep their 4.0.3 id, carry a DRAFT marker with the official disposition, getsource_statusin the registry, and readASVS 4.0.3in theirFramework ver.column.The bug: my first migration matched rows rather than tables, so a maturity-roadmap table that merely lists ids was treated as a mapping table — it gained v2 columns it shouldn't have, and one cell had its text overwritten. Markdown lint caught it on the column count, which is the check doing its job. The migration now parses whole tables and only treats one as a mapping table if a column holds a single requirement id on at least two rows. Roadmap tables get their ids translated but no v2 columns, so no file cites 4.0.3 numbers beside 5.0.0 ones.
What is DRAFT, and why
Every migrated row's
relationship,rationale typeandconfidencereadDRAFT. The identifier translation is mechanical; whether a 5.0.0 requirement still addresses the GenAI risk the row claims is expert judgment (C4). Reviewer: ASVS leadership, per STRAT-04. Column layout matches the ISO 27001 schema-v2 template.Other effects
framework-sources:mapped_version4.0.3 → 5.0.0, so freshness reads 4 current · 1 behind (was 3 · 2).Verification
🤖 Generated with Claude Code