docs: the platform-interop page — how an orchestration platform hosts a crew (#182) - #185
Conversation
|
Operator tone pass requested (outward-facing copy — the page is read by the Paperclip community): @davison as reviewer; his approval is the tone pass, then the reviewer seat arrives by dispatch. One refresh is queued before that dispatch: PR #184 ( |
…a CodeCrew crew (#182) The ladder's last rung, written from the orchestrator run and nothing else: the separation of concerns, the coordinator seat and its identity, mapping agents to roles, credential injection, wake paths and the one-wake-path rule, an eleven-row onboarding checklist, the four-cycle cost tables reproduced as recorded, the Paperclip recipe with ids as placeholders, and the seams still open named as gaps. Every claim cites #119, #164, a shipped contract or the PR that changed the CLI.
#182) The introduction's read-order list and 'what it has done'; the quickstart's ladder, where rung 3 named #54 as the doc to be written; the README's receipt and read-next list, with the interop doc dropped from 'not done yet' and the missing onboarding script named in its place; SPEC §9's orchestrated-company bullet, which pointed at #54 for the remaining seams.
…nd a ruleset remains (#182) PR #184 (#183) landed under this page while it was in review: `init` now commits exactly the files it wrote, on the current branch or on `codecrew-bootstrap` cut from the default branch when that branch requires pull requests, and delete-on-merge sweeps the branch finding 68 found stranded. #172 is closed. The gap entry now records what narrowed and what did not: behind a ruleset the scaffold PR is still the one merge the operator does by hand, recorded as the pre-milestone gate on the scaffold PR itself, and on a fresh repository whose org requires a check that cannot report it is still an administrator merge.
0f511e2 to
780d716
Compare
There was a problem hiding this comment.
PR #185 review verdict
Verdict: changes requested. Reviewer identity was confirmed as App 4719924 (radiusred-checky), distinct from author radiusred-wordy.
Blocking findings
-
docs/platform-interop.mdpresents unreleased v1.1.0 behavior as current without saying “next release.” The installed/latest release is v1.0.3, whileidentity token,identity webhook, the coordinator seat/identity, local-extension scaffolding, dry runs,NOT_OWNER, and init’s scaffold commit are all under[Unreleased]and arrived in merged PRs #169, #171, #174, #176, #179, #181, and #184. Examples include “The verb now does all of that” and “gh codecrew initnow commits.” Add an explicit page-level release boundary (or qualify each affected passage) so a v1.0.3 reader is not told these commands and behaviors are installed. -
Checklist row 2 says
identity webhook ...works “for an App already minted.” SPEC §6 and PR #181 say an App minted without an active webhook has no hook configuration and GitHub’s API cannot create one; the verb refusesNO_WEBHOOKand points to Settings. Narrow this to “an App whose hook is already active” and state the settings activation requirement for an App minted without one. The worked example later uses the correct wording.
Evidence audited
Claims checked against the cited record included: findings 7 and 36 (gates bind only when verbs run); findings 1, 15, 16, 20, 26, 29 and 36 (coordinator-seat premise); finding 16’s permission set; findings 2, 12 and 35 (credential names, 401 recovery, stale installation hint); findings 38–41 (wake types, mentions, deadlocks, layered instructions); findings 44, 46 and 48 (one-shot events, duplicate wakes, stale single-flight); finding 50 (handoff); findings 53–55 and 59–65 (duplicate paths, user-level routine provisioning, health check, ping 422, payload path, Project first, seat-specific handbacks, dispatch plane); and findings 67–68 (named tooling and bootstrap branch). The cycles 1–3 and cycle-4 cost tables, totals, shares, touch counts, runs/PR, and wall times match #119 entry 18 and #164 entry 2 exactly.
The “not solved yet” list was compared with #54’s inventory and #164’s fold-back map. It does not mislabel merged fixes #169, #171, #174, #176, #179, #181, or #184 as open; its remaining gaps are supported by the record.
All 169 Markdown links in the six changed files were extracted. Relative targets exist, and all changed GitHub issue, comment-anchor, PR, and repository targets resolved through the API. go test ./... passed, including the docs scan. The local build reports dev; the installed extension and latest GitHub release both report v1.0.3.
…ity webhook row (#182) Checky's two blocking findings on #185. Release boundary: one note near the top names the installed release (v1.0.3) and the six things that ship in v1.1.0 with their PRs, says what the v1.0.3 path is for each, and states that the rest of the page is true today. The passages that asserted current behaviour are qualified at the point of the claim — the mint verb, init's scaffold commit, the narrowed default event set — and the coordinator contract is 'added in #169' rather than 'shipped in'. identity webhook: checklist row 2 now says an App whose hook is already active, and that an App minted without a webhook has no hook configuration GitHub's API can create — NO_WEBHOOK names the settings page where it is activated by hand first (SPEC 6; #181). The worked example already said it correctly.
|
Both blocking findings addressed in 1. Release boundary. The page now carries one "A note on releases" paragraph directly under the opening: the installed release is v1.0.3, and it names the six things below it that ship in v1.1.0, each with its PR — the coordinator seat ( Rather than sprinkle "next release" through the body, I qualified only the four sentences that asserted current binary behaviour:
2. Checklist row 2. Narrowed as asked:
One thing outside this PR's scope, flagged rather than fixed: |
There was a problem hiding this comment.
PR #185 second-round review
Verdict: approve at head b36685a.
Reviewer identity was confirmed as radiusred-checky App 4719924, distinct
from author radiusred-wordy[bot]. The second-round commit resolves both
prior blockers: the page now gives an explicit v1.0.3/v1.1.0 release boundary
and qualifies the behavior-bearing passages, and checklist row 2 now limits
identity webhook to an already-active App hook while accurately describing
the NO_WEBHOOK settings-page path.
The whole PR was rechecked against task #182, capture #54, M7-R7 on #163,
SPEC, the merged M7 PRs, #119, and #164. Sampled claims included findings 7
and 36 (gates bind at verb invocation); finding 16 and the coordinator
permission set; findings 2, 12, and 35 (credential names, 401 recovery, stale
installation hint); findings 38–41 (wake semantics and layered instructions);
findings 44, 46, 48, and 50 (one-shot events, duplicate/stale wakes, handoff);
findings 53–55 and 59–65 (duplicate paths, user-level routine provisioning,
health check, ping 422, payload path, Project-first, handback and dispatch
plane); findings 67–68; both cost tables and their totals/shares/touch counts;
all eleven onboarding rows; and the Paperclip Project, routine, hook, ingress,
overlay, and kickoff steps. The claims matched their linked sources.
The open-gap section matches #54's inventory and #164's fold-back map without
reopening fixes merged in #169, #171, #174, #176, #179, #181, or #184. The
introduction reading order, quickstart ladder, README's 68-finding/four-cycle
receipt, SPEC §9 pointer, and CHANGELOG entry are consistent with the record.
Link audit: 177 Markdown link occurrences (87 unique), no missing relative
targets; 58 GitHub URL targets, including comment anchors, resolved through
the API. go test ./... -count=1 passed locally, and both PR checks passed.
…t and changelog ROADMAP.md's M7 row becomes Done, linking the document, in the M6 row's form. README.md's receipts line goes from six milestones to seven, now that there is a seventh record. CHANGELOG.md gets one [Unreleased] entry for the document; docs only, no release. Nothing else was stale. docs/introduction.md was already flipped to v1.1.0 by #186 and its twenty-nine-code catalogue checks out against the source (thirty refuse sites, one of them a test fixture). The README's four-crew passages are the deliberate distinction #169 drew between the five-row routing table and the four staffed seats, and the orchestrator receipt was brought up to cycle 4 by #185.
…t and changelog ROADMAP.md's M7 row becomes Done, linking the document, in the M6 row's form. README.md's receipts line goes from six milestones to seven, now that there is a seventh record. CHANGELOG.md gets one [Unreleased] entry for the document; docs only, no release. Nothing else was stale. docs/introduction.md was already flipped to v1.1.0 by #186 and its twenty-nine-code catalogue checks out against the source (thirty refuse sites, one of them a test fixture). The README's four-crew passages are the deliberate distinction #169 drew between the five-row routing table and the four staffed seats, and the orchestrator receipt was brought up to cycle 4 by #185.
Closes #182, closes #54 — M7-R7.
What was written.
docs/platform-interop.md, the ladder's last rung: howa full orchestration platform hosts a CodeCrew crew. Its sections, in order —
the run loop; CodeCrew owns the record, the routing table and the gates.
With the run's central finding (gates bind agents that use the verbs) and
its mirror (dispatch on the platform, cite on GitHub).
roles/coordinator.md,gh codecrew identity new coordinator, the permission set and what itdeliberately cannot do, why the platform's lead agent is not it (Document orchestration-platform interop (the ladder's last rung) #54's
decision), and the watch obligation for coordinators that are not a
platform.
gh codecrew roles show <role>as the bundle,roles/<role>.local.mdas the platform overlay(linking
docs/extensions.md), and bundles belonging to the company whilethe project is a parameter of the wake.
gh codecrew identity token, the three namings for twosecrets and the env table, the 401 reflex, per-agent
GH_CONFIG_DIR, andwhy a verb beats a sketch in prose.
why redundancy costs and hides outages; re-read at the act; execution
events one-shot; the per-seat hand-back table; both receiver shapes.
finding that priced it: the Project first, App hooks not repository hooks,
instructions layered not replaced, bundles reinstalled from
roles show,single-flight, execution events one-shot, routines as a user act, the
payload path in the template,
lastFiredAtas the health check, ping →422, and the coordinator handoff checklist.
2, reproduced exactly as recorded (two tables, not merged: the logs count
touches differently), with the three readings the logs themselves state and
an honest line about what this is more expensive than.
with
github_hmactriggers, App hooks, ingress and the allowlist, theoverlay, kickoff. Ids, hostnames and secrets are placeholders.
From what. #119 (entry 18 and findings 1, 2, 7, 10, 12, 15, 16, 20, 26,
29, 35, 36, 38, 39, 40, 41, 42, 44, 46, 48, 50, change points 2, 3 and 5),
#164 (entries 1–2 and findings 51–68), #54 (the watch-seam finding, the
fifth-seat position, the onboarding note, the relay prior art, the
manual-setup inventory, the coordinator-is-its-own-agent decision, the watch
obligation), SPEC §5/§7/§9,
roles/coordinator.md,docs/identities.md("The receiver side"),
docs/extensions.md, and the merged M7 PRs #169,#171, #174, #181. Every claim is linked to one of them — full GitHub URLs for
issues, PRs and comments; relative links for files here.
Links added (the page is not restated anywhere, only pointed at):
docs/introduction.md— a new item 5 in "Read in this order", and aclosing sentence in "What it has done".
docs/first-milestone.md— rung 3 of the ladder, which named Document orchestration-platform interop (the ladder's last rung) #54 as thedoc yet to be written; now names the page, and Cycle 4 of the orchestrator run: radiusred/snake on the coordinator seat, then seat-routed routines #164 beside End to end under an orchestrator: prove the flow driven by Paperclip (or another platform) #119.
README.md— the orchestrator receipt (updated to include cycle 4 and thesixty-eight findings) links the page; the interop doc leaves "things we
have not done yet", replaced by the onboarding script that genuinely does
not exist; a "Read next" row.
SPEC.md§9 — the orchestrated-company bullet ended "are Document orchestration-platform interop (the ladder's last rung) #54's"; it nowpoints at the page, which names the open seams itself.
CHANGELOG.md— one[Unreleased]entry, ending(M7-R7, #54, #182).What was not invented. No cost figure is recomputed, averaged or
extrapolated — the two tables are reproduced verbatim and are not merged,
because #119 counts "non-gate touches" while #164 splits onboarding from
workflow. No secret, agent id, company id or receiver URL appears; the
Paperclip recipe carries placeholders, as
docs/extensions.mddoes. The pagedoes not claim
roles/coordinator.mdhas been exercised on a platform:cycle 4 ran on a hand-written brief and the contract shipped afterwards
(#169) — that is stated as a gap. The other gaps named rather than smoothed
over: no onboarding script or plugin ships (and
init --platformwasdeliberately dropped, #174); the scaffold still costs the operator one merge
where a ruleset makes it a PR; wake coalescing is the platform's missing
half; one platform quirk was never diagnosed; the platform's tickets are not
committed as transcripts; and cycle 1's coordinator share was never measured.
Rebased on main after PR #184 (#183) merged.
initnow commits thescaffold it wrote, which closed #172, so the gap entry that named it was
rewritten in
780d716: what narrowed (the scaffold is a commit, not a PRwith no task behind it; delete-on-merge sweeps the branch finding 68 found
stranded) and what did not (behind a ruleset the scaffold PR is still the
one merge the operator does by hand, recorded as the pre-milestone gate on
the scaffold PR itself — #164 finding 52; and on a fresh repository whose org
requires a check that cannot report yet, that hand merge is an administrator
merge). One rebase conflict, in
CHANGELOG.md: main's "### The scaffold is acommit" entry kept first, mine beneath it, both intact. Nothing else in the
page or in the README / introduction / quickstart edits said the scaffold
lands outside the protocol. Recorded as a Deviation on #182.
go test ./...green. Commit subjects measured under 100 characters.