Skip to content

Commit a40d2c2

Browse files
alicodingclaude
andauthored
docs: close goal 0041 — OSS trust standards delivered, v0.1.0 live (#81)
Acceptance checked against what shipped (all four predicates evidenced in the archived file); the release exercise's own two pipeline-defect finds recorded. Claude-Session: https://claude.ai/code/session_01FJ8wStsHyu7XPLTspNjMnQ Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent fd451c5 commit a40d2c2

2 files changed

Lines changed: 64 additions & 24 deletions

File tree

docs/goals/BACKLOG.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,20 @@ session ends — never left only in an ephemeral session task list.**
3232
comments explain code per standard practice — business/product
3333
decisions and the owner's own words live in docs/, cited by id, never
3434
inline in source)**
35-
0. [ ] [0041 — OSS trust standards](0041-oss-trust-standards.md)
36-
owner-directed 2026-08-13, IN PROGRESS same session: adopt the
37-
trust signals high-trust OSS projects converge on, reject solo-repo
38-
ceremony with recorded reasons; baseline inventoried (Scorecard
39-
5.0, empty repo metadata, unexercised release.yml, missing
40-
community files), research agent dispatched
35+
0. [x] [0041 — OSS trust standards](archive/0041-oss-trust-standards.md)
36+
DELIVERED 2026-08-13, same day opened: peer-calibrated research
37+
(fzf/bat/glow/cli-cli live Scorecard + community profiles) split
38+
every gap into adopt/defer-with-trigger/reject-with-reason — all
39+
recorded in the archived file. Shipped: all 5 OSV vulnerability
40+
findings cleared, Token-Permissions fixed, container images
41+
digest-pinned + docker Dependabot, CodeQL (zero findings in own
42+
code), PR template, repo description+topics, and the
43+
owner-approved **v0.1.0 release** — whose three-attempt delivery
44+
itself surfaced and fixed two real latent defects (headless
45+
bindings-generation app launch, and the build task's
46+
backtick-substitution echo that executed `task run` — the probable
47+
source of Standing #8's phantom dev instances). Release live with
48+
provenance attestation verified against the downloaded asset.
4149
1. [x] [0038 — Comment hygiene: constraints, not narrative](archive/0038-comment-hygiene.md) — delivered 2026-08-13
4250
— rule (`.claude/rules/comments.md`) + gate
4351
(`check-comment-hygiene.sh`, lefthook + CI `comment-hygiene` job in

docs/goals/0041-oss-trust-standards.md renamed to docs/goals/archive/0041-oss-trust-standards.md

Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,28 @@ REJECTED with reasons (don't relitigate):
132132
ADR-0034 built).
133133

134134
OWNER DECISION SURFACED (outward-facing, not taken autonomously):
135-
- Cut v0.1.0 via the existing never-fired release.yml. Research
136-
verdict: a dead release workflow on a daily-commit repo reads as
137-
unfinished rather than deliberate; a tagged, provenance-attested
138-
v0.x is additive to (not competing with) the git-clone install
139-
story. Mechanics are ready — release.yml's preflight requires the
140-
tag to match build/config.yml's version. Awaiting the owner's call
141-
on timing.
135+
- Cut v0.1.0 via the existing never-fired release.yml — **owner
136+
approved 2026-08-13, DELIVERED same day** after three attempts that
137+
were themselves the dogfood payoff: attempt 1 hung 63 minutes
138+
(cancelled by hand), attempt 2 hit the new 30-minute job timeout,
139+
and the flushed logs surfaced TWO real latent defects fixed in the
140+
process — (a) `generate:bindings` always runs on a fingerprint-less
141+
fresh checkout and extracts bindings by LAUNCHING the real app,
142+
which never exits headless (`MILL_SKIP_BINDINGS=1`, set only by
143+
release.yml, now uses the committed bindings; PR #79, plus
144+
timeout-minutes 5/30/10 on the three jobs); (b) the root `build`
145+
task's help echo wrapped `task package`/`task run` in backticks
146+
inside a sh string — command substitution, so printing the message
147+
executed both tasks and launched the app; both hangs died in
148+
`darwin:run`, and any local `task build` did the same (the probable
149+
source of Standing #8's phantom concurrent instances; PR #80,
150+
plain quotes). Attempt 3: green in ~6 minutes end to end. Release
151+
v0.1.0 is live with `mill-0.1.0-macos-arm64` + `SHA256SUMS`,
152+
generated notes, and `gh attestation verify
153+
mill-0.1.0-macos-arm64 -R alicoding/mill` confirmed passing against
154+
the actually-downloaded asset. The git-clone install story is
155+
unchanged; the release is the provenance/verification artifact the
156+
research framed it as.
142157

143158
## CodeQL first-run triage (2026-08-13, same day)
144159

@@ -163,16 +178,33 @@ re-upload produced 21 code-scanning alerts; triage outcome:
163178
deliberately — dismissing regenerating SARIF alerts is churn, and
164179
the Security tab staying honest about accepted state is the point.
165180

166-
## Acceptance (checkable)
181+
## Acceptance (checked against what SHIPPED, 2026-08-13)
167182

168-
- [ ] Every gap named in the Baseline section above is either SHIPPED
183+
- [x] Every gap named in the Baseline section above is either SHIPPED
169184
(file/setting landed, verifiable in the repo) or REJECTED with a
170-
recorded reason in this file — no silent skips.
171-
- [ ] Scorecard: Token-Permissions raised from 0 (permissions blocks
172-
on every workflow); the Vulnerabilities-check findings
173-
identified and each fixed or recorded as accepted; any other
174-
check adopted (e.g. SAST) green in its first run.
175-
- [ ] Repo metadata (description, topics) set — the "is this
176-
abandoned?" smell gone.
177-
- [ ] Anything deliberately deferred carries a named trigger (e.g.
178-
"first release when X"), not an open-ended someday.
185+
recorded reason in this file — no silent skips. (Shipped: PR
186+
template, description+topics, CodeQL, permissions, vuln bumps,
187+
image pins + docker Dependabot, v0.1.0 release + CHANGELOG-via-
188+
generated-notes. Rejected/deferred with reasons: everything in
189+
Slice 2's lists, incl. SUPPORT.md/config.yml/feature-request
190+
template, Discussions, homepage.)
191+
- [x] Scorecard: Token-Permissions fixed (both flagged workflows;
192+
confirmed auto-closed in code scanning); all five
193+
Vulnerabilities findings identified and fixed (x/image 0.43,
194+
nanoid 3.3.18; confirmed auto-closed); CodeQL adopted and its
195+
first scan green on Mill's own code (3 vendored-scaffold
196+
findings dismissed with reasons). Scorecard's own aggregate
197+
re-scores on its weekly cron — the peer-calibration verdict
198+
stands regardless.
199+
- [x] Repo metadata (description, topics) set — verified via
200+
gh repo edit, 10 topics live.
201+
- [x] Anything deliberately deferred carries a named trigger:
202+
Discussions (second contributor), release-please (2nd+
203+
release), SBOM (a consumer asks), attestation-as-release-asset
204+
(only if the Scorecard number ever matters), TS 7 (TS 7.1
205+
stable compiler API — recorded in dependabot.yml itself).
206+
207+
Delivered across PRs #63, #70, #73 (icon rides goal 0001), #76
208+
(version), #79/#80 (release-pipeline fixes the release exercise
209+
itself surfaced), release run 31738976103 (v0.1.0 live, attestation
210+
verified). Archived same day.

0 commit comments

Comments
 (0)