Skip to content

docs: answers the merged security and server work earns, and the license rule - #20

Merged
HackTuah merged 6 commits into
mainfrom
docs/badge-answers-round2
Oct 6, 2026
Merged

HackTuah merged 6 commits into
mainfrom
docs/badge-answers-round2

Conversation

@HackTuah

@HackTuah HackTuah commented Oct 6, 2026

Copy link
Copy Markdown
Member

What

The badge answers that the merged PRs (#13 server secrets/XDG/uninstall, #15 Sobelow/CodeQL/OSV-Scanner) and today's ruleset change now earn:

Level Criterion Now
Silver static_analysis_common_vulnerabilities Met
Silver crypto_credential_agility Met
Silver installation_standard_variables Met
Silver installation_common Met
Passing static_analysis_common_vulnerabilities Met (reworded)
Baseline 3 osps_vm_05_01, 05_02, 05_03, 06_01, 06_02 Met

Ruleset (done 2026-10-06): main now requires osv-scanner, analyze (actions) and analyze (javascript-typescript). It also has a code scanning rule: a CodeQL alert of high or critical security severity, or of severity error, blocks the merge. The analyze jobs alone pass even when they find something, so this rule is what makes a finding block.

License rule: the dependency policy now follows the Apache Software Foundation's categories:

  • Category A (Apache-2.0, MIT, BSD, ISC, 0BSD, Zlib, Unicode-3.0, CC0…) is allowed.
  • Category B (MPL-2.0, EPL-2.0, OFL fonts, CC-BY media) is allowed only unmodified, labelled, and recorded in DECISIONS.md.
  • Category X (GPL, LGPL, AGPL, SSPL, BUSL, non-commercial terms) is never allowed.

Everything shipped today is Apache-2.0, MIT, public domain (SQLite) or Unicode-3.0 (CLDR). Recorded in DECISIONS.md.

Checked

bestpractices-links --check (209 answers valid), check-old-name, reuse lint. Every claim was checked against main and the live ruleset.

🤖 Generated with Claude Code

…nse rule

PRs #13 and #15 merged, and the main ruleset now requires osv-scanner,
the two CodeQL analyses and CodeQL code scanning results (security
severity high or higher, or errors). So these answers are Met, each with
its evidence:

- silver static_analysis_common_vulnerabilities (Sobelow, CodeQL),
  crypto_credential_agility (NAME_FILE secrets),
  installation_standard_variables (XDG) and installation_common
  (install-service.sh --uninstall; the browser's extension manager);
- passing static_analysis_common_vulnerabilities, reworded;
- Baseline osps_vm_05_01, 05_02, 05_03, 06_01 and 06_02.

The dependency policy's license list now follows the Apache Software
Foundation's categories (A allowed, B only unmodified and recorded, X
never), decided by the lead agent at the maintainer's request and
recorded in DECISIONS.md. Its two "Not yet" notes are gone: the
ruleset requires both the dependency scan and code scanning results.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ayla Croft <dev@scriptkittyos.com>
@HackTuah
HackTuah requested a review from minitru as a code owner October 6, 2026 20:21
The page was hard to use: twenty buttons, a checkbox to remember, and
answers that kept changing back. The cause of the last part: a criterion
repeated at a higher level (crypto_weaknesses at passing and silver, for
example) is one field on the entry, and 13 of them had different text at
each level, so saving one form overwrote the other.

- One answer per shared field (the stricter level's), and --check now
  fails if two copies differ.
- The page downloads the entry's JSON and lists only the answers whose
  status or text differs, with the saved status next to each, as few
  buttons per form as fit, each replacing what is saved. --all lists
  everything, for a new entry.
- roles_responsibilities, osps_ac_02_01 and osps_br_02_01 no longer
  describe the GitHub team or the old tag ruleset, and silver
  achieve_passing is Met (passing was earned on 2026-10-06).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ayla Croft <dev@scriptkittyos.com>
Comment thread scripts/bestpractices-links.mjs Fixed
Ayla Croft and others added 4 commits October 6, 2026 16:32
…re Met with PR #16

PR #16 runs Credo in strict mode and tests with --warnings-as-errors, adds
about 60 stricter ESLint rules, and enforces the JavaScript layout with
@stylistic/eslint-plugin. These were the last two silver MUSTs. Merge #16
before this, so the answers are true when they are saved on the form.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ayla Croft <dev@scriptkittyos.com>
The stricter ESLint rules in PR #16 (no-shadow) flag the page builder's
local 'links', which hides the exported links(). Renamed to 'parts'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ayla Croft <dev@scriptkittyos.com>
… the document

CodeQL (js/file-access-to-http, medium) flagged that the badge page built
its request URL from text read out of docs/best-practices.md. The id is
public and only the entry's public JSON was fetched, so nothing leaked,
but no file contents need to reach a request at all: the script now
fetches a fixed PROJECT id, and --check fails if the document names a
different entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ayla Croft <dev@scriptkittyos.com>
@HackTuah
HackTuah merged commit 76cd1b0 into main Oct 6, 2026
14 checks passed
@HackTuah
HackTuah deleted the docs/badge-answers-round2 branch October 6, 2026 21:24
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.

2 participants