Skip to main content
← Back to list
01Issue
FeatureShippedExtensionsPublic
Assigneesskunk-ape

Relationships

⊘ blocked by #2808⊘ blocked by #2818⊘ blocked by #2819⊘ blocked by #2795⊘ blocked by #2770⊘ blocked by #2932⊘ blocked by #2947⊘ blocked by #2952⊘ blocked by #2891⊘ blocked by #2956

#2820 stagecraft: publish @swamp/stagecraft: manifest, Lab exclusion, real-tree checks, packaged install, merge

Opened by skunk-ape · 9/30/2026· Shipped 10/2/2026

Publish @swamp/stagecraft: the final PR that adds the manifest, runs every publication check on the real tree, and merges. CI publishes on merge.

Rewritten 2026-10-02 (Seth). The earlier body predates the rename to stagecraft (#2932), the publication prep (#2947) and the decisions below; it is kept in this issue's history.

Where things stand

  • Manifest. It's held on branch cue/2947-stagecraft-manifest (commit 90131cd47), six commits behind main when this was written. It adds stagecraft/manifest.yaml, deletes no_manifest_test.ts and adds manifest_test.ts. Merging it to main publishes (.forgejo/workflows/publish.yml).
  • #2947 got quality to 12/12, passed fmt and a dry-run push on a scratch copy, and installed the packaged archive into a fresh repo, running it to a first human stop with the studio and skill.
  • swamp blockers are cleared. #2949 (push's eval check) ships in swamp 20261002.182915 (e2b0a082), so the real tree can be dry-run pushed for the first time. #2952 (token-count fields flagged as secrets) is merged in swamp (d7714fef); its warnings never block a push.
  • Linear has been tested against a real workspace by Seth, and it works.
  • Waits on: #2891 (Simulate follow-ups) and #2956 (work-item page follow-ups), both in progress. Seth wants them landed before this merges.
  • #2821 (software-factory's future and deprecation) is deferred and doesn't block this.

Checklist

  1. Rebase the manifest branch onto origin/main.

  2. Exclude the swamp-club Lab tracker from the package (Seth, 2026-10-02). It stays in the repo for possible team use but must not ship.

    • Remove tracker/swamp_club.ts from the manifest's models:. It's listed today.
    • Break the built-in tracker's import from the Lab backend: tracker/builtin.ts:36-39 imports CredentialSources and DEFAULT_SOURCES from _lib/tracker/backends/swamp_club.ts, the auth.json reader. Move what the built-in tracker needs into tracker core (_lib/tracker/core/) and have both trackers import it from there.
    • Check that every shipped module refers to the Lab only in strings, never in imports. Candidates include _lib/engine/tracker_binding.ts, _lib/tracker/core/adapter.ts, relations.ts, ticket_view.ts and the studio bundle. A boundary test should enforce it, as boundary_test.ts does for the engine/tracker seam.
    • manifest_test.ts asserts the Lab adapter, its backend, its fake and the auth test data are not in the manifest.
    • The adapter's own tests keep passing from source.
    • Add a DESIGN.md decision-log entry: kept, not shipped, with delete-or-move decided after launch.
  3. Version. Re-read it with swamp extension version @swamp/stagecraft and set it in the manifest.

  4. Metadata.

    • Replace the sdlc label: stagecraft is for any process, not only software. Consider workflow or process.
    • Check the description against the README, since the registry's Readme tab renders the manifest description.
    • Keep repository: as the repo's other manifests have it.
  5. swamp's checks on the real tree, with no scratch rewrites, recorded in the PR:

    • swamp extension fmt stagecraft/manifest.yaml
    • swamp extension quality stagecraft/manifest.yaml: expect 12/12
    • swamp extension push stagecraft/manifest.yaml --dry-run

    Use a swamp that includes #2949. If a release with #2952 is out, use it, so the token-count warnings disappear too.

  6. Packaged install. Install the dry-run archive into a fresh repo and run from zero to a first human stop: init --from a starter, validate, the studio (Design, Simulate, Board, a work-item page), and a work item driven to its first human stop on the built-in tracker. Confirm the skill arrives with the extension, and that swamp model type search stagecraft lists no @swamp/stagecraft/swamp-club.

  7. Verification. Run the repo's verify-build and verify-reviews on the PR and post the attestation; no attestation covers the manifest yet.

  8. Channel: confirm with Seth before merging. Stable (CI's default) or beta (swamp extension push --channel beta). Check whether publish.yml can pass a channel; beta may need it wired up.

  9. Merge: Seth merges. Merging publishes. Then confirm the registry shows @swamp/stagecraft, and that swamp extension pull @swamp/stagecraft into a fresh repo works.

  10. Announce. Release notes and changelog, plus a short announcement Seth can post. The team overview artifact may help.

Done when

@swamp/stagecraft is published, a fresh repo can pull it and run getting started, the Lab adapter isn't in the package, and every check above is recorded in the PR.

Out of scope: #2821 (deferred), and anything after launch (#2583, #2913, #2847, #2978, #2800, #2774, #2775, #2809, #2665, #2908, #2912).

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 10 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/2/2026, 8:55:35 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
skunk-ape assigned skunk-ape10/2/2026, 7:58:09 PM
skunk-ape linked blocked by #28089/30/2026, 4:49:53 PM
skunk-ape marked as blocked9/30/2026, 4:49:53 PM
skunk-ape linked blocked by #28189/30/2026, 4:49:54 PM
skunk-ape linked blocked by #28199/30/2026, 4:49:54 PM
skunk-ape linked blocked by #28219/30/2026, 4:49:54 PM
skunk-ape linked blocked by #27959/30/2026, 4:49:54 PM
skunk-ape linked blocked by #27709/30/2026, 4:49:54 PM
skunk-ape linked blocked by #291210/1/2026, 6:29:31 PM
skunk-ape linked blocked by #293210/1/2026, 11:58:21 PM
skunk-ape linked blocked by #294710/2/2026, 2:45:20 PM
skunk-ape removed blocked by #291210/2/2026, 3:22:44 PM
skunk-ape linked blocked by #295210/2/2026, 6:24:26 PM
skunk-ape removed blocked by #282110/2/2026, 7:47:08 PM
skunk-ape unblocked automatically10/2/2026, 7:47:08 PM
skunk-ape linked blocked by #289110/2/2026, 7:47:08 PM
skunk-ape marked as blocked10/2/2026, 7:47:08 PM
skunk-ape linked blocked by #295610/2/2026, 7:47:08 PM
skunk-ape unblocked automatically10/2/2026, 7:53:58 PM
Editable. Press Enter to edit.

system commented 9/30/2026, 4:49:42 PM

Classified automatically when this issue was filed.

  • Source: Extensions

If you feel this classification is incorrect, add a ripple to tell us so.

skunk-ape commented 10/2/2026, 1:25:07 PM

From #2819 (PR 436, merged): the stagecraft manifest needs README.md, REFERENCE.md and docs/studio.png in additionalFiles. The README shows the studio screenshot by the relative path docs/studio.png; after publish, check the registry page shows it, and if it does not, switch to the repo's raw URL.

skunk-ape commented 10/2/2026, 2:45:20 PM

Preparation is split out into #2947: the manifest, swamp's extension checks, repo verification and a packaged install. This issue keeps the final publish and announcement.

skunk-ape commented 10/2/2026, 3:36:17 PM

Hand-off from #2947 for the publish:

  • The manifest is on the branch cue/2947-stagecraft-manifest (one commit on top of #2947's PR). It adds stagecraft/manifest.yaml, deletes no_manifest_test.ts and adds manifest_test.ts, which checks the manifest lists every model and report entry point, the skill and each additional file. Rebase it onto main, then re-read the version with swamp extension version @swamp/stagecraft (it says 2026.10.02.1 today) before merging. Merging it publishes.
  • Run the full verify-build / verify-reviews loop on that PR; #2947 ran the stagecraft checks on the branch but no attestation covers it.
  • swamp-club #2949 blocks both swamp extension quality and push for stagecraft (the eval substring check against cel-js in the studio bundle). The publish needs a swamp release with that fix.
  • Push warnings to expect: the token-count fields flagged as secrets (swamp-club #2952), long-line and base64 warnings on the generated studio assets, and the request for a push-time adversarial review report, which is bound to the pushed code's hash, so write it at push time.
  • The registry shows the manifest description as the readme, not README.md, so the description is the registry page. docs/studio.png can't ship (additionalFiles allows only text types).
  • DESIGN.md still says a factory definition rejects a literal ${{ 'until go-live'. That is a go-live decision for this issue.

skunk-ape commented 10/2/2026, 6:21:19 PM

Added scope (Seth, 2026-10-02): the swamp-club Lab tracker stays in the repo but is left out of the published package.

  • The manifest held on cue/2947-stagecraft-manifest must exclude extensions/models/tracker/swamp_club.ts, _lib/tracker/backends/swamp_club*.ts (including the fake) and the auth.json test data.
  • No shipped code may import the Lab adapter. Shared code that does (the conformance contract, tracker kinds, the studio) gets the import broken, or the reference made test-only.
  • A packaged install must list no @swamp/stagecraft/swamp-club type. Add that to manifest_test.ts.
  • The adapter, its tests and its fake stay in the repo and keep passing, for use from source.
  • Record it in DESIGN.md's decision log. Delete-or-move is decided after launch.

skunk-ape commented 10/2/2026, 7:47:06 PM

Rewritten 2026-10-02 into the final-PR checklist (Seth). #2821 is deferred and no longer blocks. Waits on #2891 and #2956.

Sign in to post a ripple.