feat(gatorwalk-factory): remove stage templates and apply; ship example lifecycles in the skill (swamp-club #2767) #381

Merged
seth merged 3 commits from cue/2767-gatorwalk-factory-remove into main 2026-09-30 16:02:02 +00:00
Owner

Closes swamp-club #2767.

What

Cuts the stage-template feature from gatorwalk-factory before go-live, and replaces it with curated example lifecycles shipped inside the skill.

  • Removed: the @swamp/gatorwalk-factory/template model type, the lifecycle holder's apply method and applied-lifecycle record, the contract / exit: / $param parts of the lifecycle format, the template-only graph checks (exit-unreachable, productsMissingOnEntry), templates/, and their tests and fixtures. Every transition now names to.
  • Examples: .claude/skills/gatorwalk-factory/references/examples/ holds minimal, starter, build-swamp-extension, and swamp-club-swamp-extensions (renamed from swamp-extensions, a real-world example to read). Each opens with what it is for and what to change first. lifecycles/ is gone: the extension ships no lifecycle of its own.
  • Tests: new extensions/models/examples_test.ts runs the holder's real validate on every example and pins its warnings. The starter runtime walk moved into lifecycles_test.ts.
  • Docs: the skill points agents at the examples. README and DESIGN.md drop the template sections, and DESIGN.md gains a decision log entry recording why.

Why the examples live in the skill

swamp extension pull installs a skill into every enrolled harness's skill directory (Claude, Cursor, Codex/OpenCode, Kiro), so a skill-relative path works in all of them. An extension-root examples/ would land under the pulled extension's files/ directory, which the skill cannot name, and push rejects symlinks.

Decisions

  • The CEL-only on-path check apply made is not kept. It is tracked as swamp-club #2792, to be planned with #2680.
  • No model version bump: the extension has never been published.
  • Terminology question (lifecycle vs factory) filed as swamp-club #2785.

Verification

Verified at cc635804c: verify-build 13/14 (codegen idempotency skipped by guard), verify-reviews 3/3 pass. Attestation 6ea0b694-60d0-4fdd-b8f9-e31f45d9faf1. Locally: 440 unit and 23 integration tests.

🤖 Generated with Claude Code

Closes swamp-club #2767. ## What Cuts the stage-template feature from gatorwalk-factory before go-live, and replaces it with curated example lifecycles shipped inside the skill. - **Removed:** the `@swamp/gatorwalk-factory/template` model type, the lifecycle holder's `apply` method and `applied-lifecycle` record, the contract / `exit:` / `$param` parts of the lifecycle format, the template-only graph checks (`exit-unreachable`, `productsMissingOnEntry`), `templates/`, and their tests and fixtures. Every transition now names `to`. - **Examples:** `.claude/skills/gatorwalk-factory/references/examples/` holds `minimal`, `starter`, `build-swamp-extension`, and `swamp-club-swamp-extensions` (renamed from `swamp-extensions`, a real-world example to read). Each opens with what it is for and what to change first. `lifecycles/` is gone: the extension ships no lifecycle of its own. - **Tests:** new `extensions/models/examples_test.ts` runs the holder's real `validate` on every example and pins its warnings. The starter runtime walk moved into `lifecycles_test.ts`. - **Docs:** the skill points agents at the examples. README and DESIGN.md drop the template sections, and DESIGN.md gains a decision log entry recording why. ## Why the examples live in the skill `swamp extension pull` installs a skill into every enrolled harness's skill directory (Claude, Cursor, Codex/OpenCode, Kiro), so a skill-relative path works in all of them. An extension-root `examples/` would land under the pulled extension's `files/` directory, which the skill cannot name, and push rejects symlinks. ## Decisions - The CEL-only on-path check `apply` made is not kept. It is tracked as swamp-club #2792, to be planned with #2680. - No model version bump: the extension has never been published. - Terminology question (lifecycle vs factory) filed as swamp-club #2785. ## Verification Verified at cc635804c: verify-build 13/14 (codegen idempotency skipped by guard), verify-reviews 3/3 pass. Attestation 6ea0b694-60d0-4fdd-b8f9-e31f45d9faf1. Locally: 440 unit and 23 integration tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(gatorwalk-factory): remove stage templates and apply; ship example lifecycles in the skill (swamp-club #2767)
All checks were successful
CI / Review Integrity (pull_request) Successful in 1m7s
CI / Validate Attestation (pull_request) Successful in 1m1s
cc635804c3
Cut the stage-template feature before go-live: the template model type,
the lifecycle holder's apply method and applied-lifecycle record, the
contract/exit/$param parts of the lifecycle format, the template-only
graph checks (exit-unreachable, productsMissingOnEntry), the starter
stage templates and their tests. Transitions now always name `to`.

Replace it with curated example lifecycles in the skill, under
.claude/skills/gatorwalk-factory/references/examples/: minimal, starter,
build-swamp-extension, and swamp-club-swamp-extensions (renamed from
swamp-extensions) as a real-world example. lifecycles/ is gone. Each
example says what it is for and what to change first, and
examples_test.ts runs the holder's validate method on every one. The
skill points agents at them; README and DESIGN.md drop the template
sections, and DESIGN.md gains a decision log recording the cut.

The CEL-only on-path check apply made is tracked in swamp-club #2792.
No model version bump: the extension has never been published.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Brings in #380 (swamp-club #2768), which changed lifecycles/swamp-extensions.yaml,
its mapping and lifecycles_test.ts. git followed the moves to
swamp-club-swamp-extensions.yaml/.md; the new one-driver tests take the
swamp-club-swamp-extensions test titles, and the example's header no longer
names the issue-lifecycle skill, which #380 removed from its stages.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(verification): keep the example lifecycle path on one line in the verify workflow description
All checks were successful
CI / Validate Attestation (pull_request) Successful in 55s
CI / Review Integrity (pull_request) Successful in 1m21s
02bb40e796
Both reviewers flagged that the path split across lines in a literal
block, so a copied path was broken.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seth merged commit 302028c2c8 into main 2026-09-30 16:02:02 +00:00
seth deleted branch cue/2767-gatorwalk-factory-remove 2026-09-30 16:02:02 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
swamp-club/swamp-extensions!381
No description provided.