You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/rules/providers.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,7 +119,7 @@ hand-fed inline `Tags` and so agreed with the bug.
119
119
1. Create new file in `src/provisioning/providers/`
120
120
2. Implement `ResourceProvider` interface
121
121
3. Register in `src/provisioning/register-providers.ts` within the `registerAllProviders()` function
122
-
4. Refresh the CFn schema fixture for the new type: `node scripts/refresh-cfn-schemas.mjs --only-missing` (requires AWS credentials with `cloudformation:DescribeType`). Then classify every unaccounted property into `handledProperties` (if `create()`/`update()` wires the field) or `unhandledByDesign` (with a one-line rationale) so the new `property-coverage` test stays green — see [docs/provider-development.md](../../docs/provider-development.md) §3c.
122
+
4. Refresh the CFn schema fixture for the new type: `node scripts/refresh-cfn-schemas.mjs --only-missing` (requires AWS credentials with `cloudformation:DescribeType`). Then classify every unaccounted property into `handledProperties` (if `create()`/`update()` wires the field) or `unhandledByDesign` (with a one-line rationale) so the new `property-coverage` test stays green — see [docs/provider-development.md](../../docs/provider-development.md) §3c. If the provider FORWARDS a nested config blob (a `handledProperties` entry whose value is a nested object/array the provider re-shapes for the SDK), ALSO add it to `NESTED_KEY_TARGETS` in `scripts/gen-nested-key-coverage.ts` — the critic's first run audits every nested key spelling against the SDK model (the #1370 silent-drop class, issue #1373).
123
123
5. Write tests
124
124
6. Add the resource type to [docs/supported-resources.md](../../docs/supported-resources.md) (deploy/manage capability table) AND to [docs/import.md](../../docs/import.md) (import-side coverage: auto-lookup vs override-only vs sub-resource)
125
125
7.**If the provider gates a stabilization wait on `process.env['CDKD_NO_WAIT']`** (i.e. `--no-wait` skips a multi-minute poll for this type), add the resource type to the `--no-wait` docs in ALL of: the `--no-wait` table + intro in [docs/cli-reference.md](../../docs/cli-reference.md), the `--no-wait` feature bullet in [README.md](../../README.md), and the `noWaitOption` help string + JSDoc in [src/cli/options.ts](../../src/cli/options.ts). Enforced by `tests/unit/provisioning/no-wait-doc-coverage.test.ts` (fails CI if a `CDKD_NO_WAIT`-honoring provider has no handled type in the cli-reference table). The `AWS::Lambda::MicrovmImage` provider shipped honoring `--no-wait` but missed this list — the test is the backstop.
Copy file name to clipboardExpand all lines: .github/workflows/ci.yml
+19Lines changed: 19 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -199,6 +199,25 @@ jobs:
199
199
fi
200
200
- run: vp run audit:update-wrap-coverage:check
201
201
202
+
# Fail CI when docs/_generated/nested-key-coverage.{json,md} is stale
203
+
# relative to the provider sources / schema fixtures / SDK typings. The
204
+
# matrix diffs, per SDK provider forwarding a nested CFn config blob,
205
+
# the blob's nested CFn property names against the SDK client model's
206
+
# member names — a CFn key with no same-spelling SDK member and no
207
+
# explicit mention in the provider is a write-side silent drop (the
208
+
# #1370 CloudFront / #1304 MetricTimeZone class; issue #1373). The
209
+
# second step is the CRITIC: it hard-fails on any non-allow-listed
210
+
# divergence.
211
+
- name: nested-key-coverage matrix is up-to-date
212
+
run: |
213
+
vp run gen:nested-key-coverage
214
+
if ! git diff --quiet -- docs/_generated/nested-key-coverage.json docs/_generated/nested-key-coverage.md; then
215
+
echo "::error::nested-key-coverage matrix is stale — run \`vp run gen:nested-key-coverage\` and commit the regenerated docs/_generated/nested-key-coverage.{json,md}"
0 commit comments