todo2code

Ticket 048: Publish the GitHub event log adapter through governance

Goal and scope

Ticket-047 built a working GitHub acquisition adapter but could never publish it. Its work sits on a local main that branch protection refuses, and the squashed commits fail CI governance twice over. This ticket republishes the same bounded adapter through a route governance accepts, and removes the defect that made it unpublishable.

Three findings drive the scope:

  1. GOV-INTENT-003 — ticket-047’s intent.json and its implementation landed in one commit. The standard requires the plan to exist in an earlier commit than the implementation it authorizes.
  2. GOV-TICKET-001 — ticket-047 reached DONE before publication, and a closed ticket holds no authority over implementation paths, so its own PR is rejected.
  3. Unownable pathscripts/github-event-log.mjs read process.env.GITHUB_EVENT_PATH and process.env.GITHUB_REPOSITORY as fallbacks. verify:env scans scripts/** and requires every referenced key in .env.example, but no workstream in .governance/manifest.json owns .env.example, and the manifest is hash-locked to the pinned upstream standard. No ticket can legally make that edit.

Finding 3 is a defect, not a governance inconvenience: a bounded acquisition boundary should not silently inherit ambient process state. Both flags are already explicit, so the fallbacks are removed and the flags become required. .env.example then needs no change at all.

Ticket-047’s directory travels with this ticket as its historical record. Its DONE status and its log — including the explicit note that it carries no Koru or Validator approval — are preserved verbatim, not rewritten.

Acceptance criteria

Participants

Architecture and bounds

Non-goals

Approval boundary

The human owner approved this ticket on 2026-08-06, directing that the previous changes be carried forward and the underlying problem fixed. The plan commit carrying this file and intent.json precedes the implementation commit, as the standard requires.

Publication completed after Validator approval of exact head 92f99dc and all protected checks. PR #66 merged as main@f1b3d5d; this ticket is therefore DONE. The earlier validation evidence remains unchanged in the ticket audit record.