Pin the maturity disclaimer on every entry point
tests / runner-env (confined) (pull_request_target) Successful in 1m40s
tests / tests (pull_request_target) Successful in 2m8s
tests / compose-schema (pull_request_target) Successful in 1m50s
tests / runner-env (privileged) (pull_request_target) Successful in 1m37s

dejima carries this and its wording covers all three repositories by name: these projects, any of these repositories. A reader landing here would not have seen it.

Duplicated rather than linked, which is the opposite of what attribution and the security policy do here, and deliberately. A disclaimer behind a link is a disclaimer the reader does not see, and its whole value is being on the page where the security argument is being made. Everything else that gets linked is reference material someone goes looking for; this is the one thing that has to arrive uninvited.

test/disclaimer.bats pins it. The line is the one most likely to be dropped without anyone deciding to drop it - by a rewrite of some section that happened to contain it - and every other test here would still pass on a repository that had lost it.
This commit is contained in:
2026-08-10 20:46:08 -07:00
parent 3b95ff7a30
commit c61eebb5b5
2 changed files with 40 additions and 0 deletions
+12
View File
@@ -13,6 +13,18 @@ Neither tier holds against an attacker who is already root on the box.
The README's [How it fails](README.md#how-it-fails) section covers this in
detail.
## This is not proven software
These projects are in early development. Nothing in them has been through
outside review, an external audit, or adversarial testing by anyone other than
the people who wrote them. Where a design argument is stated it is one person's
reasoning; where a test asserts something it asserts what that person thought
to check.
Treat every security property described in any of these repositories as a claim
awaiting scrutiny rather than one that has survived it, and do not deploy them
where being wrong would matter.
## Reporting a vulnerability
Email **dejima@branderson.io**. Please do not open a public issue for a
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env bats
# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright (C) 2026 Brad Anderson
#
# The maturity disclaimer, pinned in every place a reader can land.
#
# A repository that argues at length for its own security properties is exactly
# the one that has to say those properties are unreviewed. It is also the line
# most likely to be quietly dropped as a project starts to feel established -
# not by decision, but by a rewrite of a section that happened to contain it.
#
# Nothing else here would notice. Every other test in this suite would still
# pass on a repository that had lost it.
setup() {
REPO="$(cd "$BATS_TEST_DIRNAME/.." && pwd)"
}
@test "every entry point says this is unreviewed early development" {
for f in README.md SECURITY.md; do
grep -q 'reviewed by anyone else\|outside review' "$REPO/$f" || {
echo "$f does not say the work is unreviewed" >&2
false
}
done
grep -q 'Not ready to be depended on' "$REPO/README.md"
grep -q 'not proven software' "$REPO/SECURITY.md"
}