用途:在 OWASP MASTG 仓库中,将草稿文件里所有伪造/占位组件 ID 替换为下一个可用的真实顺序 ID,同时处理文件名与文件内容。适用于 PR 新增使用 0x## 占位 ID 的 MASTG 组件,或被要求“修复伪造 ID”“分配真实 ID”“使用下一个可用 ID”的场景。
主要能力:草稿 ID 采用 MASTG-TYPE-0x##(十六进制后缀,如 0x01、0x0a)模式;真实 ID 使用补零的 4 位十进制,如 MASTG-KNOW-0122。需注意 MASTG-BEST-00ea 这类不含 0x 前缀的小写十六进制也属伪造 ID,需手动扫描 git diff --name-only origin/master...HEAD 输出,查找含小写字母 a–f 或非 4 位十进制的 ID 式后缀。
工作流(脚本均位于本技能的 scripts/ 下,从仓库根目录运行):1)运行 bash .github/skills/mastg-assign-ids/scripts/find_fakes.sh 找出当前分支所有伪造 ID 文件;2)运行 python3 .github/skills/mastg-assign-ids/scripts/next_id.py 获取各组件类型的下一个可用真实 ID,同 PR 多个同类型新组件按 next_id、next_id+1 顺序分配;3)显式记录伪造 ID 到真实 ID 的映射,替换时更长的模式优先;4)用 git mv 重命名文件以保留历史,如 git mv old-path/MASTG-TYPE-0x01.md new-path/MASTG-TYPE-NNNN.md,目录型 ID 同理;5)以 OLD=NEW 参数运行 python3 .github/skills/mastg-assign-ids/scripts/fix_ids.py,自动覆盖 frontmatter 的 id: 字段和 knowledge: 列表;6)运行 bash .github/skills/mastg-assign-ids/scripts/verify.sh 与 next_id.py 验证,若仍有伪造 ID verify.sh 退出 1;7)向用户给出 ID 变更对照总结。
组件位置:MASTG-APP 在 apps/.md;MASTG-BEST 在 best-practices/.md;MASTG-DEMO 在 demos/<platform>/<MASVS-CAT>/MASTG-DEMO-NNNN/ 目录;MASTG-KNOW 在 knowledge/<platform>/<MASVS-CAT>/MASTG-KNOW-NNNN.md;MASTG-TECH 在 techniques/<platform>/MASTG-TECH-NNNN.md;MASTG-TEST 在 tests-beta/<platform>/<MASVS-CAT>/MASTG-TEST-NNNN.md;MASTG-TOOL 在 tools/<type>/MASTG-TOOL-NNNN.md。
限制:始终用 git mv 而非 mv;始终只处理当前分支变更文件,不得触碰整个仓库;所有搜索与替换需排除 .github/;frontmatter 的 id: 字段必须与文件名一致。