Skip to content

docs(launchpad): record ADR-0008 -- security audit privilege - #174

Merged
tucktuck101 merged 1 commit into
launchpadfrom
docs/adr-0008-security-audit-privilege
Aug 16, 2026
Merged

docs(launchpad): record ADR-0008 -- security audit privilege#174
tucktuck101 merged 1 commit into
launchpadfrom
docs/adr-0008-security-audit-privilege

Conversation

@serina-mcfall

Copy link
Copy Markdown

Summary

Records ADR-0008 for #65: the repository security audit under #62 runs with the bare GITHUB_TOKEN, reporting indeterminate where it can't see rather than guessing. Includes a pre-specified contingency plan (the GitHub App upgrade path) rather than leaving the gap as an open worry.

Related issue

Closes #65

Issue type

ADR


Agent provenance

Field Value
Harness / provider Claude Code
Model claude-sonnet-5
Session reference N/A - harness does not expose a run id/URL
Initiating human @serina-mcfall

Objective

Write launchpad/decisions/ADR-0008-security-audit-privilege.md, recording the decision already made and confirmed with the repository owner via comments on #65, and close the issue.

Impacted components

  • launchpad/decisions/ADR-0008-security-audit-privilege.md (new)
  • launchpad/scripts/test-adr-0008-frontmatter.sh (new)

Approach and rejected alternatives

Numbered ADR-0008, not ADR-0065 — coordinating with 0005 (PR #152) and 0006/0007 (PR #161, which needed correcting from exactly this same issue-number mistake per Serina's own review on that PR). Set status: Proposed rather than Accepted while this PR is open, matching the convention both sibling PRs use.

No alternative approach considered for the decision content itself — Option 1 was recommended, discussed, and confirmed with the repository owner directly (see #65's comment thread); this PR only formalizes that into the document the repo's own process requires.

Verification

Command run:

bash launchpad/scripts/test-adr-0008-frontmatter.sh

Raw output:

PASS: ADR-0008 exists at the expected path
PASS: not filed under the issue number (0065) — that mistake is what #161's review caught
PASS: frontmatter parses and status is Proposed (not Accepted) while the PR is open
PASS: the H1 heading number matches the filename
PASS: no duplicate ADR numbers on this branch (found: none)

Full decisions/ directory listing (verify no duplicate numbers by eye):
ADR-0001-handbook-repository-location-and-publication-target.md
ADR-0002-handbook-source-repository-scope.md
ADR-0003-handbook-page-provenance-contract.md
ADR-0004-handbook-staleness-detection-mechanism.md
ADR-0008-security-audit-privilege.md
README.md

5 passed, 0 failed
  • Tests or checks were run and the raw output is pasted above
  • The diff is confined to the scope of the linked issue
  • No secrets, keys, tokens or hostnames were added to tracked files

Not verified

  • Whether the cohort can actually obtain org-owner rights to execute the contingency's GitHub App upgrade path if its trigger ever fires — recorded in the ADR as an open fact to check at that time, not assumed here.
  • Did not independently re-verify the 404-ambiguity claims from adr: what privilege the repository security audit runs with #65 as filed (that secret-scanning/alerts and branches/launchpad/protection return 404 at this account's privilege) — those were established when the issue was originally filed and re-confirmed in the discussion that led to this decision, not re-run fresh for this PR.

Security implications

None beyond what's already recorded in the ADR itself: this decision keeps the audit's credential surface at zero (no new credential is introduced), with the tradeoff being some settings will read indeterminate rather than a confirmed pass/fail until/unless the documented contingency is invoked.

Escalations

None — this was a live back-and-forth with the repository owner (recorded via the recommendation and contingency-plan comments on #65) rather than an agent decision.

Records the decision for #65: the repository security audit under #62
runs with the bare GITHUB_TOKEN (Option 1 as filed), reporting
indeterminate where it can't see -- never rendering that as a pass.

Decided directly with the repository owner rather than in a separate
PR review thread: the recommendation and a pre-specified contingency
plan (the GitHub App upgrade path, Option 3, with its trigger and exact
steps written out so nobody has to re-derive it under pressure) were
both posted as comments on #65 first and confirmed there before this
document was written -- the same pattern ADR-0005 recorded for a
decision made outside its own issue thread.

Numbered ADR-0008, not ADR-0065 -- coordinating with 0005 (PR #152),
0006 and 0007 (PR #161, itself just corrected from an issue-number
mistake per Serina's own review on that PR) so this doesn't repeat it.
status: Proposed, matching the convention both sibling PRs use while
still open for review.

launchpad/scripts/test-adr-0008-frontmatter.sh checks the file exists
at the right path, isn't filed under the issue number, has valid
frontmatter with status Proposed, and that the H1 heading matches the
filename.

Verified:

$ bash launchpad/scripts/test-adr-0008-frontmatter.sh
5 passed, 0 failed

Closes #65

Signed-off-by: Serina Mcfall <serina.mcfall@gmail.com>
@serina-mcfall serina-mcfall added the by:agent Filed or authored by an AI agent, not a human label Aug 14, 2026
@serina-mcfall
serina-mcfall marked this pull request as ready for review August 14, 2026 22:49
@tucktuck101
tucktuck101 merged commit 43ac1c1 into launchpad Aug 16, 2026
21 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

by:agent Filed or authored by an AI agent, not a human

Projects

None yet

Development

Successfully merging this pull request may close these issues.

adr: what privilege the repository security audit runs with

2 participants