docs: point to the outcome set instead of restating it #30
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/outcome-set-pointers"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #29 for its review comments 119844, 119845, 119846, and 119847.
Stacked on #29; merge after it.
🤖 Generated with Claude Code
Review
01M44D7VYFRQP4VJNS6FQ10MFF— head9895834673b5b0c10f9369a3d02c286313ddabeeReview — j4k-oss/review-wrapper @
61c3b02b72Scope: diff against base tree
47c7ab2f663eStatus: dispatched — coverage complete (5/5 slots terminal)
Facts: current review-wide projection
Computed under:
Findings (4)
medium — Supersession note copies the pass-bound operations from code
01M44DFBM0FHYZ5WA97BQNM831README.md(snippet)01M44DNBQFE0NHV9XK076S4TK7· valid: The grounded README sentence enumerates three pass-bound operations. The reported trace names src/wrapper/orchestrator.ts and the wait, classification, and reconciliation paths using pinnedPassId; its source and prose member lists agree. This is a maintained copy of a code-defined set, so point to the pinnedPassId flow instead.medium — Composition prose copies the reconciler set from WrapperDeps
01M44DFMH5QS6MV3BARXYXBA4AREADME.md(snippet)01M44DNBQFE0NHV9XK076S4TK7· valid: The grounded phrase counts and names the reconcilers. The current body identifies src/contract/types.ts as the WrapperDeps source and lists summary, inline, and dispositions on both sides. The copy can drift when that type changes; point to WrapperDeps. Earlier valid verdicts are consistent but do not determine this result.medium — The action input table restates action.yml
01M44DJ0KDFW02S42E948JP33GREADME.md(snippet)01M44DNBQFE0NHV9XK076S4TK7· valid: The grounded README table names expected-service-origin as its sole action input. The body names action.yml as the runner-read manifest and reports that it defines the same sole member and origin-pin semantics. The table duplicates that contract and can drift; point to action.yml inputs. Prior matching verdicts do not supply the premise for this decision.medium — The recovery table duplicates the emitted failure remedies
01M44DJJTNTDKYW678SK206YZ4README.md(snippet)01M44DNBQFE0NHV9XK076S4TK7· valid: The grounded table lists five displayed failure cases and remedies. The reported trace names src/wrapper/remedies.ts and its four selected cases plus fallback, with no member mismatch, and says the wrapper emits the remedies on failure log lines. The table copies that maintained recovery set; direct readers to the emitted remedy and retain the retry instruction. The exact dependency labels are not needed for this local set comparison.Other claims
01M44DH5HKQFA3T9JJSGAEFP8Mmedium — Required environment variables are copied into the README01M44DK5FQJDPCKECYQK6GRXSGlow — The outcome source pointer promises behavior that the array does not defineCoverage
Coverage pass: 01M44D7W1HGECNQEB92JBMYYV2
Accounting: complete
Slot health: healthy
@ -86,2 +73,5 @@| 12 | `head-moved` | No PR comment or conversation-resolution writes; the newer run owns the comment surface. See the timing below. | 0 || 13 | `diff-unreadable` | No comment — the service could not read the PR's diff from the forge. Names the re-run remedy. | 1 |The outcomes and their exit codes are `OUTCOMES` and `OUTCOME_EXIT` in`src/contract/types.ts`, where each outcome's entry carries its behaviour. The remedythat a failure's log line names is chosen by `FAILURE_REMEDIES` in`src/wrapper/orchestrator.ts`, and a wait failure's log prefix by `prefixFor` in`src/wrapper/remedies.ts`.medium — Failure-remedy pointer omits wait and coverage recovery code
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44BXBNSKYRF476WQ2FV9KNBof review01M44BKEX0F9Z6R1V9DNFCF1R2Fixed in
591c92f. The Outcomes section now sends a session failure's remedy toFAILURE_REMEDIESand a stuck or partial-coverage run's log line, remedy included, toformatStuckRemedyandformatExecutionRecoveryinsrc/wrapper/remedies.ts.@ -159,7 +151,7 @@ re-ask command printed in the partial-coverage diagnostic.`GITHUB_REPOSITORY`, builds the forge client, derives the run's inputs from the eventpayload, and hands the orchestrator its collaborators: the wait protocol, the clock, andthe three reconcilers (summary, inline, dispositions). The orchestrator's exit codemedium — Composition paragraph duplicates the reconciler set
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44BVNK6Z2MXP8KQH0V6PQ53of review01M44BKEX0F9Z6R1V9DNFCF1R2Tracked in #32, which replaces the collaborator list in the composition paragraph with a pointer to
WrapperDepsinsrc/contract/types.ts. It is stacked on this PR.The unadjudicated claim
01M44BTESXJKH5PCCHGSW3K4W5is valid: the paragraph under the environment table listed the forge and runner variables a second time, and nothing would fail when the two lists drift. Tracked in #32, which replaces that list with a pointer toforgeCredentials,readWrapperInputsandsrc/main.ts, the code that reads those variables. It is stacked on this PR.@ -159,7 +151,7 @@ re-ask command printed in the partial-coverage diagnostic.`GITHUB_REPOSITORY`, builds the forge client, derives the run's inputs from the eventpayload, and hands the orchestrator its collaborators: the wait protocol, the clock, andthe three reconcilers (summary, inline, dispositions). The orchestrator's exit codemedium — Composition prose copies the reconciler set from WrapperDeps
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44DFMH5QS6MV3BARXYXBA4Aof review01M44D7VYFRQP4VJNS6FQ10MFF@ -170,3 +162,2 @@Row 11 pins execution waiting, coverage classification, and report accounting to onedispatch pass. The report request carries that `pass_id` even if another dispatchbecomes latest. Claims, findings, and triage settlement remain review-wide facts.Supersession leaves execution waiting, coverage classification, and report accountingpinned to one dispatch pass. The report request carries that `pass_id` even if anothermedium — Supersession note copies the pass-bound operations from code
lens
restated-sets· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44DFBM0FHYZ5WA97BQNM831of review01M44D7VYFRQP4VJNS6FQ10MFFValid. The phrase names the three reconcilers that
WrapperDepsinsrc/contract/types.tsalready defines, and nothing would flag the copy if that type changed. Tracked in #32, which rewrites the Composition paragraph to saysrc/main.tshands the orchestrator "the collaborators thatWrapperDepsinsrc/contract/types.tsnames", with no list. It is stacked on this PR.Valid. Tracked in #36, which replaces the list of pass-bound operations with a pointer to the
pinnedPassIdthatreviewinsrc/wrapper/orchestrator.tspins and hands to the steps that take a pass id. Checking the source also showed the old sentence overstated the wait: insidewaitForSettle, only the stage-1 coverage poll is scoped to the pinned pass, and the wait ends on the review-level triage settle. It is stacked on this PR.This is review
01M44D7VYFRQP4VJNS6FQ10MFFof591c92f. Two of its findings are summary-only, and it left two claims unadjudicated.01M44DJ0KDFW02S42E948JP33G("The action input table restates action.yml") and01M44DJJTNTDKYW678SK206YZ4("The recovery table duplicates the emitted failure remedies") are valid. The review of #32 raised the same two points. Tracked in #34, which points atinputsinaction.ymland at the remedy printed on the failure log line. It targetsmain, because both tables are older than this PR.01M44DK5FQJDPCKECYQK6GRXSG("The outcome source pointer promises behavior that the array does not define") is valid.OUTCOMESholds only names, with a comment beside each entry that summarizes its behaviour. Tracked in #36, which rewords the pointer to promise only that. It is stacked on this PR.01M44DH5HKQFA3T9JJSGAEFP8M("Required environment variables are copied into the README") is held, not applied. The environment table is the only place that tells a calling workflow which variables to set and what each must hold, and no single source file defines that set:src/credentials.ts,src/wrapper/event-context.tsandsrc/main.tseach read part of it. Replacing the table with pointers changes what the README promises the workflows that call this action, so it waits for that decision.01M44DH5HKQFA3T9JJSGAEFP8M(the README copies the required environment variables) is declined; it was held above. The table is the usage contract for someone wiring the action into another repository: which variables to set and what each must hold. No single definition exists to point at, becausesrc/credentials.ts,src/wrapper/event-context.tsandsrc/main.tseach read part of the set.591c92fc379895834673