Skip to content

feat(ci): give run-kipp-automation an optional stage input - #179

Merged
pleb merged 2 commits into
mainfrom
feat/kipp-stage-input
Aug 28, 2026
Merged

feat(ci): give run-kipp-automation an optional stage input#179
pleb merged 2 commits into
mainfrom
feat/kipp-stage-input

Conversation

@pleb

@pleb pleb commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

What changed

run-kipp-automation takes stage: work | publish instead of phase: all | work | publish. The input is optional, and leaving it unset means a single step runs the whole automation.

Why

The old enum collapsed two different facts into one value:

Value The run's shape What this step does
all single the work and the publish
work dual the work only
publish dual the publish only

all was not a peer of work and publish but their union, so the enum mixed levels and a reader had to already know the design to decode it. Naming only the second fact lets the first be derived from it, and frees phase to mean exactly one thing: the module-facing value a two-function automation sees in work() and publish().

The input description also named token refresh as the only reason to split a run. It is one of two, and either is sufficient on its own: the run may outlive the hour an installation token is good for, or the split keeps the write-scoped token out of the step that calls a model, since the work stage holds a read-only token.

Also in this PR

  • run-kipp-automation declares the record-digest output that generated two-step workflows wire into their publish step as KIPP_RUN_RECORD_DIGEST.
  • setup-kipp drops the unused ai-summary-model input, along with its validation, step output and KIPP_AI_SUMMARY_MODEL export.

Compatibility

Not a breaking change under the repository's versioning policy. Both Kipp actions landed in #177 and have never shipped in a tag or CHANGELOG entry, so nothing pinned to v2.4.0, v2 or latest resolves to them. There are no callers in this repository, and the only known consumers are the Kipp plugin's workflow templates and its functional-testing sandbox, both updated in lockstep with this commit.

Verification

The consuming side is updated and exercised against a live sandbox once this lands: the Kipp plugin re-pins to this commit, and the functional suite runs the two-step shape end to end (a stage: work step handing a digest-verified run record to a stage: publish step) plus the single-step shape.

Replace `phase: all | work | publish` with `stage: work | publish`, left unset
when a single step runs the whole automation.

The old enum collapsed two facts into one value: the shape of the run, and what
this step does. `all` was not a peer of `work` and `publish` but their union, so
the enum mixed levels and a reader had to already know the design to decode it.
Naming only the second fact lets the first be derived, and leaves `phase` free
to mean one thing: the module-facing value a two-function automation sees.

The description also now gives the real reason for splitting. A refreshed token
is the lesser one. The work stage holds a read-only token, so the write-scoped
credential never co-exists with a model call.

Declare the `record-digest` output that two-step workflows wire into their
publish step, and drop the unused `ai-summary-model` input from setup-kipp.
@github-actions

Copy link
Copy Markdown
Contributor

🛡️ SHA Pinned Actions Report

✅ All 31 file(s) passed — actions are allowed and pinned as required.

The `stage` description joined the two reasons with `and`, reading as though a
split needed both. Either is sufficient on its own: a run that may outlive the
hour an installation token is good for, or keeping the write-scoped token out
of the step that calls a model.
@pleb
pleb enabled auto-merge August 28, 2026 06:44
@pleb
pleb merged commit 39344fd into main Aug 28, 2026
1 check passed
@pleb
pleb deleted the feat/kipp-stage-input branch August 28, 2026 06:46
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