feat(skills): refresh marketplace release workflows
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: ai-proj-macos-release
|
||||
description: Build, sign, notarize, publish, and verify the AI-Proj macOS Apple Silicon package through the repository's release chain. Use when asked to release, republish, update, or repair the downloadable macOS application, including Gatekeeper failures and download-manifest updates. Do not use for service deployments or unrelated applications.
|
||||
---
|
||||
|
||||
# AI-Proj macOS release
|
||||
|
||||
Use this workflow only for an explicitly requested AI-Proj macOS package release. Repository scripts and current project instructions are authoritative; stop and report any contradiction.
|
||||
|
||||
## Resolve the release contract
|
||||
|
||||
Before building, read the nearest `AGENTS.md`, the desktop package configuration, and the repository's macOS build, publish, and verification scripts. Resolve from those files:
|
||||
|
||||
- application version and architecture;
|
||||
- production API configuration;
|
||||
- signing identity and notarization mechanism;
|
||||
- object-storage bucket, endpoint, release prefix, and public manifest;
|
||||
- required website or download-manifest fallback version.
|
||||
|
||||
Do not copy machine-specific credential paths or identifiers into source control. Use the operator's configured secure credential provider without printing secret values.
|
||||
|
||||
## Release flow
|
||||
|
||||
1. Confirm the requested release version is unused. Keep package metadata, native application metadata, artifact filename, public manifest, and website fallback aligned.
|
||||
2. Use a clean checkout of the exact approved commit. Run the repository's production desktop build script with the production API mode.
|
||||
3. Require a valid Developer ID signature. If the repository's default notarization profile is unavailable, use another already-authorized App Store Connect credential source only after confirming its key, key ID, and issuer belong together.
|
||||
4. Submit the final package to Apple notarization, wait for acceptance, staple the ticket, and validate it.
|
||||
5. Mount the package read-only and verify the nested application with `codesign`, `spctl`, and the repository's smoke checks. Require Gatekeeper to report a notarized Developer ID.
|
||||
6. Publish through the repository script. Use its configured object-storage credentials and upload mode; never handcraft a mutable public path when the script provides immutable versioned objects.
|
||||
7. Require remote read-back verification of size and SHA-256. Upload artifacts first and update the public manifest last.
|
||||
8. Download the public artifact independently and repeat signature, notarization, Gatekeeper, size, and checksum verification.
|
||||
9. Confirm the manifest's latest version and asset URL, then update the website entry if the request includes it.
|
||||
|
||||
## Failure boundaries
|
||||
|
||||
- Missing signing or storage credentials: stop and report the missing configured provider; do not search broadly through personal files.
|
||||
- Notarization authentication failure: stop and correct the credential tuple; never publish an unnotarized package.
|
||||
- Gatekeeper reports an unnotarized or invalid application: do not publish.
|
||||
- Upload stalls or fails: use only an alternative mode supported by the repository script, then repeat remote checksum verification.
|
||||
- A public version already exists: do not overwrite it unless the user explicitly authorizes replacement and the repository permits it.
|
||||
- Never expose signing keys, API keys, keychain passwords, storage credentials, or token values in logs, commits, manifests, or bundles.
|
||||
|
||||
Record the exact commit, version, artifact checksum and size, Apple result, public URL, manifest result, and verification outcome. Do not mark the release complete until the independently downloaded artifact passes all checks.
|
||||
Reference in New Issue
Block a user