brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
snowflake-native-app-release-sheriffPreflight Snowflake Native App package releases from trusted, privacy-safe provider evidence without publishing, upgrading, altering, granting, or approving anything. Use when reviewing manifest/setup safety, security-scan gates, version and release-directive validation, App Spec or privilege changes, upgrade-cohort compatibility, and rollback readiness. Tr…
Independent GitHub snapshot · Automated classification · Original documentation governs
Produce a deterministic, as-of provider-side release preflight. A clean result
is READY_FOR_OPERATOR_RELEASE_AS_OF, never permission or an instruction to
publish, set a release directive, upgrade an application, or alter privileges.
Read both reference files before analysis. The input must use the exact schema-2
contract in references/evidence-contract.md
and must include independently retained hashes for the whole bundle, manifest,
setup script, normalized cohort rows/denominators, lifecycle evidence, and the
complete rollback receipt including its artifact digest. Every array carries an explicit count;
zero is evidence only when the owner-approved denominator is exactly zero.
Python 3.10+ is required. A Snowflake CLI profile is optional for collection and must already exist; authentication is configured outside this skill. The package manifest and setup script remain local inputs. Never send source SQL, package names, consumer names, account names, free-text scan failures, or App Spec definitions through the evidence packet. Use stable, account-scoped hashes.
Use an existing least-privilege Snowflake CLI profile with visibility to the selected package. The collector uppercases and strictly validates the unquoted one-part package selector, then binds the rendered-query receipt to the Snowflake-produced selected-package hash. An error receipt contains no package fingerprint.
python3 "${CLAUDE_SKILL_DIR}/scripts/collect_snowflake_evidence.py" \
--surface native-app-versions-current --application-package APP_PACKAGE \
--connection native-app-observer --output ./versions.json
python3 "${CLAUDE_SKILL_DIR}/scripts/collect_snowflake_evidence.py" \
--surface native-app-release-directives-current --application-package APP_PACKAGE \
--connection native-app-observer --output ./directives.json
python3 "${CLAUDE_SKILL_DIR}/scripts/collect_snowflake_evidence.py" \
--surface native-app-upgrade-cohorts-current --application-package APP_PACKAGE \
--connection native-app-observer --output ./cohorts.json
SHOW VERSIONS requires package visibility. SHOW RELEASE DIRECTIVES requires
package ownership or the documented package release/version management
privilege. SNOWFLAKE.DATA_SHARING_USAGE.APPLICATION_STATE is provider-only,
can lag up to 10 minutes, and does not retain uninstalled instances. Do not
escalate to ACCOUNTADMIN; missing or filtered evidence blocks the preflight.
Record the five hashes at independent trusted boundaries, then run:
python3 "${CLAUDE_SKILL_DIR}/scripts/analyze_native_app_release.py" \
--input ./native-app-evidence.json --evaluated-at "$EVALUATED_AT_UTC" \
--trusted-input-sha256 sha256:... \
--trusted-manifest-sha256 sha256:... \
--trusted-setup-sha256 sha256:... \
--trusted-cohort-sha256 sha256:... \
--trusted-lifecycle-sha256 sha256:... \
--trusted-rollback-sha256 sha256:... \
> ./native-app-preflight.json
Exit 0 means the bounded preflight passed. Exit 1 means valid but blocked;
exit 2 means invalid/untrusted evidence. The analyzer writes stdout only.
Confirm all three receipt ages, exact package/account hashes, source counts,
independent digests, target scan row, observed cohort denominator, compatibility
edges, lifecycle receipt, and rollback evidence before accepting exit 0.
APPROVED; QA does not initiate a security scan, so scan
status is reported but is not invented as approval.manifest_version is major-upgrade-only
and changing the requested privilege list is not a patch operation.FINALIZING.APPLICATION_STATE; the snapshot
alone cannot prove completeness or explain an uninstalled instance.Never execute ALTER APPLICATION PACKAGE, add/drop version or patch, set/unset a
release directive, publish a listing, approve an App Spec, run setup, upgrade an
application, or grant/revoke a privilege. Produce a review packet for a separate,
authorized human change window.
The report contains only finite finding codes, exact denominators, an as-of
status, explicit safe_to_publish: false and safe_to_upgrade: false,
non-claims, and a deterministic report hash. It never repeats input rows or raw
identifiers.
INVALID_EVIDENCE means the strict packet, receipt, type, hash, scope, cap, or
freshness contract failed; it intentionally does not echo the rejected value.
BLOCKED is well-formed evidence with one or more finite remediation codes.
Recollect permission-filtered, stale, or capped surfaces with the same approved
scope. Never fix missing evidence by escalating privileges or executing a change.
IN_PROGRESS on an EXTERNAL DEFAULT target yields
SECURITY_SCAN_NOT_APPROVED.INCOMPATIBLE_OR_UNTESTED_COHORT, even when every other instance is complete.READY_FOR_OPERATOR_RELEASE_AS_OF with both mutation flags false.references/evidence-contract.md — exact
fields, enums, hashes, freshness, and verdict rules.references/source-notes.md — primary Snowflake
documentation and provider/consumer limitations.