docs(cloudformation): add native aws/cloudformation component PRD - #2997
Draft
Erik Osterman (Cloud Posse) (osterman) wants to merge 5 commits into
Draft
docs(cloudformation): add native aws/cloudformation component PRD#2997Erik Osterman (Cloud Posse) (osterman) wants to merge 5 commits into
Erik Osterman (Cloud Posse) (osterman) wants to merge 5 commits into
Conversation
Contributor
|
Tip Atmos Pro
No affected stacks workflow was detected for this pull request. |
Dependency Review✅ No vulnerabilities or license issues found.Scanned FilesNone |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2997 +/- ##
==========================================
- Coverage 83.59% 83.58% -0.02%
==========================================
Files 1933 1933
Lines 189147 189147
==========================================
- Hits 158120 158097 -23
- Misses 23117 23132 +15
- Partials 7910 7918 +8
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Erik Osterman (Cloud Posse) (osterman)
force-pushed
the
osterman/cloudformation-component-prd
branch
from
August 27, 2026 11:39
586078e to
eb1e5bc
Compare
Promotes CloudFormation out of the custom-component escape hatch into a first-class, SDK-native component type (no shell-out, since AWS archived Rain), and establishes the aws/* namespace for future AWS-native primitives. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Numbered/bulleted list continuation lines used 3- or 5-space indents; editorconfig requires multiples of 2 for markdown. Aligns with this repo's established 4-space (not 3-space) convention for numbered-list continuations, seen across most other docs/prd/*.md files. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Captures two repo-specific pitfalls hit while stacking the aws/cloudformation implementation branches: gh stack checkout/switch doesn't clear the git index, so staged changes for identical files ride along across branch switches; and atmos-validate-editorconfig validates the whole tree, not the diff, so a lower stack layer's unfixed file can fail a commit on an upper layer that never touched it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…t over local pairwise diffs A real incident this session: git merge-tree between two adjacent stack branches' current tips showed zero conflicts, and merge-base --is-ancestor confirmed a strict fast-forward relationship, leading to concluding GitHub's reported conflict was a stale false positive. It wasn't — gh stack sync/rebase immediately reproduced the same conflict in the same files, because main had advanced past the stack's base since it was built, and a pairwise diff of the branches' current commits can't see what happens once the stack gets rebased onto current main (which is what actually determines mergeability). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
docs/prd/aws-cloudformation-component.md: - Fixed a workflow example using `command: cloudformation deploy <component>` instead of the actual `aws cloudformation` namespace. - Rewrote the Rollback & Stack Policy section: it described a nonexistent `on_failure` field with DO_NOTHING/ROLLBACK/DELETE values; the actual implementation only has `disable_rollback`, mapped to whichever of CreateChangeSet's OnStackFailure or ExecuteChangeSet's DisableRollback applies (mutually exclusive on a single changeset). - Documented termination_protection's apply-side lifecycle (a follow-up UpdateTerminationProtection call after every successful apply, applied unconditionally) alongside its already-documented delete-side behavior. - Noted macro/transform templates (Fn::Transform, AWS::Serverless) need no special handling — CreateChangeSet expands them given CAPABILITY_AUTO_EXPAND like any other capability. - Clarified NoEcho masking: CloudFormation's own NoEcho only hides values in the AWS Console, not API responses or Outputs/Metadata; Atmos's own value-based masker registration is what actually protects those values wherever they resurface, not just the original parameter field. Verified against current code before editing (packaging conditionality was already accurate — dismissed that finding). .claude/skills/gh-stack/SKILL.md: - Corrected "gh stack checkout is a thin wrapper over git checkout" — it resolves stack/PR numbers and URLs, fetches branches, and sets up local tracking; only the final branch switch goes through plain git checkout. - Fixed the clean-state rule: `git restore --staged .` alone doesn't get you to a clean state — it leaves working-tree modifications in place, which ride along to the next branch the same way staged changes do. - Stopped recommending `gh stack sync` as a "read-only" way to reproduce a conflict — per its own --help, it fetches, reconciles, cascade-rebases, and pushes every branch atomically. `gh stack rebase` reproduces the same conflict locally without pushing anything. - Documented `gh stack submit`'s non-atomicity (4 sequential steps; a mid-run failure can leave branches pushed with no PR yet; safe to rerun). Found via CodeRabbit review. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Erik Osterman (Cloud Posse) (osterman)
force-pushed
the
osterman/cloudformation-component-prd
branch
from
August 31, 2026 11:48
622e73a to
6257a6f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
what
aws/cloudformationcomponent type: deploy, inspect, and deleteCloudFormation stacks directly through the AWS SDK for Go v2, with no external binary
dependency (unlike the archived Rain tool).
gh-stackskill documenting this repo's stacked-PR workflow (gh stackCLI) and twogotchas specific to this repo (staged-changes bleed on layer switch, the whole-tree-scanning
editorconfig hook).
why
maintained path. A native, SDK-backed component type gives Atmos users the same
changeset/drift/StackSet ergonomics without depending on an external, unmaintained binary.
(
osterman/cfn-wiring-gap-fixes→cfn-phase1-core-lifecycle→cfn-phase2-changesets-drift-outputs→
cfn-phase3-stacksets-observability→cfn-phase4-migration-graduation).references
docs/prd/aws-cloudformation-component.mdcfn-phase4-migration-graduationfor the final,user-facing release notes covering the whole feature.