pilotswarm-release
Skill14 starsChanged 8 months agoMITView on GitHub
Prepare and cut Microsoft PilotSwarm releases through GitHub Actions, with all-provider testing, package tarballs and automatic test deployment.
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 9 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use for release preparation or publication in microsoft/PilotSwarm.
- Distinctive: line 11
Keep private configuration in protected GitHub environment secrets and ignored local files.
- Very specific: line 16
Run npm run check:privacy after staging release changes.
- Very specific: line 49
All provisioning and deployments run through GitHub Actions.
- Distinctive: line 56
Check working tree, remote tags/releases and the changes since the last release.
- Very specific: line 60
Add a dated CHANGELOG.md entry.
- Distinctive: line 81
Use the prepared version, not a guessed next imported tag.
- Distinctive: line 88
Do not immediately repeat the entire release gate when a few tests fail.
- Distinctive: line 124
No extra GitHub App is needed, and this does not authorize a release/deployment.
- Distinctive: line 133
If the head changes before execution, dispatch and approve a new run.
- Distinctive: line 169
If deployment fails after publication, retain the valid release and retry only
- Very specific: line 171
If a deployment-template/configuration fix is required, merge its validated PR and use reconcile_release_config=true with that published …
- Distinctive: line 176
If publication stops after creating a tag/draft, inspect that unpublished state.
- Very specific: line 182
Use Add release license notice (release-notices.yml) from main, with the existing version.
- Distinctive: line 187
Use this for v0.6.0's omitted embedded notice.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
PilotSwarm Release
Use for release preparation or publication in microsoft/PilotSwarm. Verify the
checkout's origin and run GitHub commands with --repo microsoft/PilotSwarm.
Prepare changes on a feature/ branch and squash-merge the PR into main.
Keep private configuration in protected GitHub environment secrets and ignored
local files. Never put environment names, endpoints or credentials in a PR.
See .github/DEPLOYMENT.md for deployment routing and
docs/developer/contributing/local-ci-and-tests.md for local validation setup.
Run npm run check:privacy after staging release changes.
Release contract
- The first Microsoft release was v0.6.0. Check remote tags and releases before selecting the next version; never replace a published tag as part of an ordinary release.
- Create release (
release-tarballs.yml) is a manual GitHub Action onmain. Merging a PR or pushing a tag does not publish a release. - One protected-environment approval precedes all cloud work. The Action captures the triggering main commit, validates package versions, runs the complete PostgreSQL baseline plus additive HorizonDB storage coverage, then builds the three npm-format tarballs.
- Real HorizonDB initialize/store/read coverage is mandatory in CI. Missing configuration or skipped/failed preflight blocks publication.
- The complete initial run may qualify directly, or through one sequential verification of 1-5 failed test cases total across its provider phases. All selected cases passing meets the release bar. Six or more failures fail immediately at qualification, without sequential execution. The original result remains visible; the accepted outcome is qualified after sequential verification, not a clean initial pass.
- Each package carries a package-local
LICENSEidentical to the root license, including Microsoft and original-contributor copyright notices and MIT permission text. Validate the actual tarball contents, not just manifest"license": "MIT"metadata. - The Action creates an annotated tag, a draft release, uploads the three
.tgzfiles plusSHA256SUMSandLICENSE, verifies assets, and publishes the release. - It then automatically deploys the same tested source commit to the test stamp using the shared Azure Action. This builds worker/portal deployment images in Azure Container Registry; it does not install the release tarballs. Refresh Azure OIDC login after the long test gate and immediately before deployment, before manifest uploads need a storage-audience token.
- Distribution is GitHub Release assets. Never run
npm publishor publish a starter image. Azure deployment images are a separate deployment concern. - All provisioning and deployments run through GitHub Actions. No local
az,kubectlor legacy shell mutations to deploy this repository's environment. - Setting up this workflow is not publishing a release. Dispatch Create release only when the user requests publication.
Preparation
- Check working tree, remote tags/releases and the changes since the last release. Report the proposed version before publication.
- Align the versions of
packages/sdk,packages/horizon-store,packages/app, their internal dependency/peer references, andpackage-lock.json. - Add a dated
CHANGELOG.mdentry. Update canonical documentation, relevant templates and examples when the shipped behavior changes. - Build locally and pack each package. Confirm every tarball includes its own
README, the complete canonical
package/LICENSE, and expected runtime files/plugins.validatePackageLicensesrejects source notice drift;validatePackedLicenserejects missing or altered notices in the artifact. - Merge the preparation PR with successful Basic checks. The release candidate is the captured main SHA; later unrelated main commits must not change the running release's source.
Publication
Releases use ubuntu-latest: the complete baseline runs on local Docker
PostgreSQL, followed by additive remote HorizonDB coverage. No Azure runner
registration is needed. Full-suite-on-HDB runs are optional and separate from
the release gate; only those runs use PROVIDER_TEST_RUNNER.
gh workflow run release-tarballs.yml --repo microsoft/PilotSwarm --ref main -f version=X.Y.ZUse the prepared version, not a guessed next imported tag. Monitor the Action,
resolve its environment gate with the authorized reviewer, and investigate any
failure. Never weaken the full-provider gate to publish. CI database setup and
required protected secrets are documented in .github/CI.md.
Bounded sequential release qualification
Do not immediately repeat the entire release gate when a few tests fail. The Action collects complete initial Vitest reports and run-health metadata, then counts failed test-case executions, not files:
| Initial failures | Release decision |
| 0 | Pass; no sequential verification |
| 1-5 total | Verify exactly those cases once, sequentially; all passing qualifies |
| 6 or more | Fail; do not launch sequential verification |
The cap is global across PostgreSQL SDK, Horizon unit/provider and HDB SDK phases. A case failing on two providers counts twice and must pass on both. Verification uses one worker, no file parallelism and concurrency one for concurrent test cases. It keeps the source SHA, assertions, model, provider and storage configuration unchanged; already-passing cases are not rerun.
Missing/incomplete results, interrupted processes, failed prerequisites, suite-level setup/hook or unhandled errors cannot be reclassified as a small case failure set. A missing, skipped, still-failing or ambiguous selected case blocks publication. The real HDB preflight and other build/validation prerequisites remain mandatory. Do not add framework retry settings or repeat the verification.
Preserve the original JSON and sequential JSON reports on the private runner.
The job summary records the original failure count, verification count and
qualification outcome without raw error text or secrets. Keep the run URL,
source SHA and ciHealth evidence. Report whether a run passed initially or
qualified after sequential verification; the latter is release-ready, but is
not proof that a load/concurrency issue was fixed.
Standalone diagnosis
For pre-merge integration tests, a repository writer/maintainer can post a
new standalone /test all PR comment. Follow its acknowledgement link, verify
the pinned SHA and approve the protected environment. Edited, quoted or
extended commands and ordinary issues are not accepted; the comment and
author's current permission are rechecked before candidate execution.
No extra GitHub App is needed, and this does not authorize a release/deployment.
Alternatively, dispatch Tests from main with
pr_number=<number>, providers=all, mode=parallel, and no suite filter.
The selection job uses only the repository token and pins the reviewed head before environment
approval. Verify its summary: approval intentionally trusts that candidate's
install/build/test code with the existing CI credentials, including the Azure
CI identity; a separate main control checkout is not a sandbox.
PR candidates run on hosted runners and get SHA-specific Tests / all status.
If the head changes before execution, dispatch and approve a new run; rerunning
source selection inside an existing run is rejected. A PR result cannot
substitute for qualification of the merged release candidate.
For HDB SDK failures, run the affected files through the protected Tests workflow. A requested sequential diagnostic run uses:
gh workflow run tests.yml --repo microsoft/PilotSwarm --ref main \
-f providers=horizondb -f mode=sequential \
-f 'suite=test/local/cms-seq-nodemap.test.js test/local/contracts.test.js test/local/management.test.js'Replace the example paths with the actual failed files. This runs only those files plus the real HDB preflight on a hosted runner; it does not repeat the PostgreSQL baseline. The job is explicitly labelled as diagnostics, cannot publish, and leaves normal release parallelism unchanged. For baseline failures, use the baseline suite filter or the documented local targeted test command.
A standalone filtered run has no complete initial-run evidence and therefore cannot independently qualify a release. Use the automatic bounded qualification stage above for the release decision; retain separate diagnostics for investigation.
Verify publication and deployment separately
Verify separately:
- complete baseline plus additive HDB qualification (initial pass or accepted sequential verification of at most five failures), including real HDB preflight;
- annotated tag resolves to the workflow's tested commit;
- GitHub Release is published and has
pilotswarm-sdk-<version>.tgz,pilotswarm-horizon-store-<version>.tgz,pilotswarm-<version>.tgz, checksums andLICENSE; - subsequent Azure worker and portal deployment succeeds and portal health is verified against the intended private configuration.
If deployment fails after publication, retain the valid release and retry only
Deploy Azure stamp with release_tag=v<version>. Never retag or republish.
If a deployment-template/configuration fix is required, merge its validated PR
and use reconcile_release_config=true with that published tag. This uses current
main's deployment configuration without rebuilding/pushing the existing release
images. Record both configuration and release/image SHAs; verify the effective
portal policy, not only the protected input or pod readiness.
If publication stops after creating a tag/draft, inspect that unpublished state;
resolve it deliberately before rerunning. Never delete a published release to
work around a failed run. Report release and deployment status separately.
Adding a missing notice to an existing release
Use Add release license notice (release-notices.yml) from main, with the
existing version. This separately approved, additive maintenance workflow only
uploads LICENSE; it never rebuilds packages, replaces checksums, changes tags
or deploys. It verifies all prior asset IDs, sizes and digests remain unchanged,
rejects a conflicting existing notice, and is idempotent for an identical one.
Use this for v0.6.0's omitted embedded notice; do not silently repack its assets.
Future tarballs must embed the notice as well as publishing the sidecar.
Package surface
pilotswarm-sdk: runtime, plugins, browser-safepilotswarm-sdk/api.pilotswarm-horizon-store: optional enhanced facts and graph providers.pilotswarm: TUI, portal/Web API and MCP server application.
There are exactly three package tarballs. GitHub's generated source archives are additional source downloads, not the package artifacts.
Storage test modes
--all-providers is the release coverage plan: complete stock PostgreSQL once,
then HDB provider tests and reviewed SDK storage integration tests. It does not
repeat unrelated SDK permutations. --with-horizondb runs the entire suite
with CMS/orchestration/facts/graphs on HDB. No flag means stock PostgreSQL only.
Parallelism defaults to eight test files. See .github/CI.md and the reviewed
scripts/provider-test-coverage.json exclusions; new suites default into HDB.
In this repository50 other files it gives its agents.
- packages/sdk/examples/repo-workspaces/seed/home/AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- agent-repair-loopSkill
- duroxide-orchestration-versioningSkill
- editorial-standardsSkill
- finance-research-standardsSkill
- valuation-methodsSkill
- pilotswarm-architectureSkill
- deployment-safetySkill
- incident-responseSkill
- add-activitySkill
- add-eventSkill
- add-testSkill
- add-toolSkill
- agent-versioningSkill
- azure-ps-test-runner-vmSkill
- debug-orchestrationSkill
- debug-testSkill
- horizondb-idiosyncrasiesSkill
- horizon-facts-eval-sweepSkill
- investigate-duroxide-runtimeSkill
- pilotswarm-aks-deploySkill
- pilotswarm-aks-resetSkill
- pilotswarm-new-env-deploySkill
- pilotswarm-perfSkill
- pilotswarm-portal-app-regSkill
- pilotswarm-portal-auth-assignmentsSkill
- pilotswarm-tuiSkill
- pilotswarm-vpn-client-profileSkill
- schema-migrationSkill
- notesSkill
- share-a-fileSkill
- cost-latency-analysisSkill
- graph-debugSkill
- orchestration-session-lifecycleSkill
- resourcemgrSkill
- sweeperSkill
- canvas-appsSkill
- html-visualsSkill
- pilotswarm-agent-versioningSkill
- pilotswarm-aks-identitySkill
- pilotswarm-azure-deployerSkill
- pilotswarm-azure-lessonsSkill
- pilotswarm-cli-builderSkill
- pilotswarm-duroxide-versioningSkill
- pilotswarm-hybrid-datastoreSkill
- pilotswarm-knowledge-harvesterSkill
- pilotswarm-portal-builderSkill
- pilotswarm-sdk-builderSkill
- pilotswarm-three-tierSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

