Create Bridge Spec
Use this skill to find the bridge boundary that owns the reported behavior and
preserve only the decisions a durable spec needs. It is a routing aid, not a
required planning framework or a checklist of bridge subsystems.
Read AGENTS.md and the
architecture overview, following only
the guides relevant to the reported behavior. Trace code facts from the
repository instead of asking the user to supply them.
Ground The Change
Before drafting a spec—or deciding that one is needed—establish:
- Behavior: the concrete provider-author or Pulumi-user behavior changing.
- Path: the mode, lifecycle transition, and current code path that exhibit
it.
- Ownership: the layer that owns each capability involved.
- Proof: the smallest executable check that would make the change done.
Investigate any uncertainty that would materially change ownership, support
scope, or design. Name the assumption, plausible alternative, and quickest repo
or downstream probe that distinguishes them. Do not turn clear boundaries into
an assumption-analysis ritual.
Keep The Change Narrow
- Propose the smallest end-to-end change that fixes the motivating path.
- Treat adjacent build-time, SDKv2, PF, mux, dynamic, and lifecycle cases as
compatibility questions to disposition, not automatic requirements to
implement.
- Preserve existing behavior in adjacent or unsupported paths when stronger
shared semantics cannot be established safely.
- Before adding generic machinery for an uncommon case, check whether it occurs
in current bridge paths, tests, downstream providers, or user reports. Record
its incidence, safe fallback, and possible follow-up when support is costly.
- Broaden across SDKv2 and PF, muxing, dynamic bridge, or downstream providers
only when the motivating behavior depends on their agreement or an existing
compatibility contract requires it. Otherwise document why the behavior is
mode-specific.
- Keep downstream providers as focused proof points, not bridge-owned
inventories.
Choose The Artifact
Use the conversation when behavior, path, ownership, and proof are clear. Do not
create a design document merely because this skill was loaded.
Create a checked-in spec when the user asks for one or unresolved semantic,
ownership, lifecycle, or compatibility decisions must survive review or
handoff. Crossing a repository boundary by itself is not enough. Use a temporary
handoff/status note instead when only branch state, rollout progress, or blockers
need to survive another session.
Keep The Spec Compact
Include only sections that preserve a decision or make the implementation
reviewable:
- Summary: what changes, who observes it, and why it matters.
- Current Path: the relevant build-time or runtime flow grounded in code.
- Desired Semantics: testable behavior and explicit non-goals.
- Design: capability owners, data or schema sources, and rejected shortcuts.
- Compatibility Dispositions: only applicable modes and lifecycle risks,
each marked supported now, unaffected, existing fallback, explicitly
unsupported/non-goal, or deferred.
- Validation: the smallest proof for each important invariant.
Omit sections that add no information. Keep temporary rollout notes out of the
durable semantics.
Proof And Guardrails
- Prefer one focused test that proves the user-visible or
provider-author-visible regression.
- Add lower-level, cross-mode, golden, or downstream tests only when they provide
distinct proof or useful failure localization. The test locations in
AGENTS.md are routing options, not a required matrix.
- Use repository-prescribed
mise and test commands. Start focused before
broadening validation.
- Do not hand-edit generated SDKs, generated schema artifacts, vendored upstream
provider code, or submodule content.
Return to the maintainer with concrete options when the semantic owner or safe
fallback is unclear, the implementation is becoming substantially broader than
the reported behavior, a rare case requires disproportionate complexity, a
broader compatibility decision is needed, or required proof depends on
credentials or external state unavailable in the current environment. Report
the evidence gap and concrete validation options.
1---2name: create-bridge-spec3description: Use when creating, reviewing, or revising a design/spec for a non-trivial Pulumi Terraform Bridge behavior change. Applies across build-time generation, runtime SDKv2, runtime Plugin Framework, muxed providers, dynamic bridge, lifecycle/state behavior, schema metadata, docs/codegen boundaries, and downstream provider proofs. Do not use for narrow code edits where the behavior and validation path are already obvious.4---56# Create Bridge Spec78Use this skill to find the bridge boundary that owns the reported behavior and9preserve only the decisions a durable spec needs. It is a routing aid, not a10required planning framework or a checklist of bridge subsystems.1112Read [`AGENTS.md`](../../../AGENTS.md) and the13[architecture overview](../../../docs/architecture/overview.md), following only14the guides relevant to the reported behavior. Trace code facts from the15repository instead of asking the user to supply them.1617## Ground The Change1819Before drafting a spec—or deciding that one is needed—establish:20211. **Behavior**: the concrete provider-author or Pulumi-user behavior changing.222. **Path**: the mode, lifecycle transition, and current code path that exhibit23 it.243. **Ownership**: the layer that owns each capability involved.254. **Proof**: the smallest executable check that would make the change done.2627Investigate any uncertainty that would materially change ownership, support28scope, or design. Name the assumption, plausible alternative, and quickest repo29or downstream probe that distinguishes them. Do not turn clear boundaries into30an assumption-analysis ritual.3132## Keep The Change Narrow3334- Propose the smallest end-to-end change that fixes the motivating path.35- Treat adjacent build-time, SDKv2, PF, mux, dynamic, and lifecycle cases as36 compatibility questions to disposition, not automatic requirements to37 implement.38- Preserve existing behavior in adjacent or unsupported paths when stronger39 shared semantics cannot be established safely.40- Before adding generic machinery for an uncommon case, check whether it occurs41 in current bridge paths, tests, downstream providers, or user reports. Record42 its incidence, safe fallback, and possible follow-up when support is costly.43- Broaden across SDKv2 and PF, muxing, dynamic bridge, or downstream providers44 only when the motivating behavior depends on their agreement or an existing45 compatibility contract requires it. Otherwise document why the behavior is46 mode-specific.47- Keep downstream providers as focused proof points, not bridge-owned48 inventories.4950## Choose The Artifact5152Use the conversation when behavior, path, ownership, and proof are clear. Do not53create a design document merely because this skill was loaded.5455Create a checked-in spec when the user asks for one or unresolved semantic,56ownership, lifecycle, or compatibility decisions must survive review or57handoff. Crossing a repository boundary by itself is not enough. Use a temporary58handoff/status note instead when only branch state, rollout progress, or blockers59need to survive another session.6061## Keep The Spec Compact6263Include only sections that preserve a decision or make the implementation64reviewable:6566- **Summary**: what changes, who observes it, and why it matters.67- **Current Path**: the relevant build-time or runtime flow grounded in code.68- **Desired Semantics**: testable behavior and explicit non-goals.69- **Design**: capability owners, data or schema sources, and rejected shortcuts.70- **Compatibility Dispositions**: only applicable modes and lifecycle risks,71 each marked supported now, unaffected, existing fallback, explicitly72 unsupported/non-goal, or deferred.73- **Validation**: the smallest proof for each important invariant.7475Omit sections that add no information. Keep temporary rollout notes out of the76durable semantics.7778## Proof And Guardrails7980- Prefer one focused test that proves the user-visible or81 provider-author-visible regression.82- Add lower-level, cross-mode, golden, or downstream tests only when they provide83 distinct proof or useful failure localization. The test locations in84 `AGENTS.md` are routing options, not a required matrix.85- Use repository-prescribed `mise` and test commands. Start focused before86 broadening validation.87- Do not hand-edit generated SDKs, generated schema artifacts, vendored upstream88 provider code, or submodule content.8990Return to the maintainer with concrete options when the semantic owner or safe91fallback is unclear, the implementation is becoming substantially broader than92the reported behavior, a rare case requires disproportionate complexity, a93broader compatibility decision is needed, or required proof depends on94credentials or external state unavailable in the current environment. Report95the evidence gap and concrete validation options.