45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
---
|
|
title: “Beta-to-stable promotions must update orchestration callers atomically”
|
|
category: skill-design
|
|
date: 2026-03-23
|
|
module: plugins/compound-engineering/skills
|
|
component: SKILL.md
|
|
tags:
|
|
- skill-design
|
|
- beta-testing
|
|
- rollout-safety
|
|
- orchestration
|
|
severity: medium
|
|
description: “When promoting a beta skill to stable, update all orchestration callers in the same PR so they pass correct mode flags instead of inheriting defaults.”
|
|
related:
|
|
- docs/solutions/skill-design/beta-skills-framework.md
|
|
---
|
|
|
|
## Problem
|
|
|
|
When a beta skill introduces new invocation semantics (e.g., explicit mode flags), promoting it over its stable counterpart without updating orchestration callers causes those callers to silently inherit the wrong default behavior.
|
|
|
|
## Solution
|
|
|
|
Treat promotion as an orchestration contract change, not a file rename.
|
|
|
|
1. Replace the stable skill with the promoted content
|
|
2. Update every workflow that invokes the skill in the same PR
|
|
3. Hardcode the intended mode at each callsite instead of relying on the default
|
|
4. Add or update contract tests so the orchestration assumptions are executable
|
|
|
|
## Applied: ce:review-beta -> ce:review (2026-03-24)
|
|
|
|
This pattern was applied when promoting `ce:review-beta` to stable. The caller contract:
|
|
|
|
- `lfg` -> `/ce:review mode:autofix`
|
|
- `slfg` parallel phase -> `/ce:review mode:report-only`
|
|
- Contract test in `tests/review-skill-contract.test.ts` enforces these mode flags
|
|
|
|
## Prevention
|
|
|
|
- When a beta skill changes invocation semantics, its promotion plan must include caller updates as a first-class implementation unit
|
|
- Promotion PRs should be atomic: promote the skill and update orchestrators in the same branch
|
|
- Add contract coverage for the promoted callsites so future refactors cannot silently drop required mode flags
|
|
- Do not rely on “remembering later” for orchestration mode changes; encode them in docs, plans, and tests
|