Repository navigation
feat(skills): devhelm-synthetics skill, refreshed skills, CI check of every example (stacked on #168) - #170
Merged
Merged
Conversation
caballeto
force-pushed
the
feat/synthetics-surfaces
branch
from
October 25, 2026 21:41
cbc3efc to
c608544
Compare
…ck of every example - New skills/devhelm-synthetics: preconditions, mode detection, the validate --online → test → fix → deploy loop, exit codes, secrets and deploy-confirmation rules, plan facts from account entitlements, @devhelm/synthetics waits, investigate/classify, untrusted-input rule. - Refresh configure/investigate/communicate/manage: drop commands and flags the CLI doesn't have, add synthetics verbs, the frozen exit-code table and secrets values set. - scripts/check-skill-examples.mjs checks every fenced devhelm example against the manifest and runs its --help; test/skills/examples.test.ts runs it in npm test. - Skills are stamped with the CLI version (metadata.version, restamped by npm version); doctor warns on a version mismatch; skills install and init install devhelm-synthetics; init's prompt names it. - scripts/sync-skill-repo.mjs publishes skills/ to devhelmhq/skill. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ard skill sync Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
caballeto
force-pushed
the
feat/synthetics-skills
branch
from
October 26, 2026 09:30
bc4de1c to
e55638a
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
AI skills for synthetics (doc 42 §11, doc 37 "What the shipped skill must contain"). Stacked on #168 (base
feat/synthetics-surfaces): review after #168, and retarget tomainonce #168 merges.What's covered (doc 42 §11 map)
devhelm-syntheticsskill: preconditions (--version,doctor -o json), mode detection (YAML / Terraform / SDK / existing Playwright /checkly.config.ts), the loopvalidate --online→test→ fix →deploy, exit-code table (4, 13, 14, 15, 16, 17, 18, 19), secrets rule, plan facts fromaccount entitlements, the deploy-confirmation rule (exit 15 → showchanges[], never add--yesfor production), one entry file per check,@devhelm/syntheticswaits for signup, investigate + classify, untrusted-input ruleskills/devhelm-synthetics/SKILL.md,references/writing-checks.md,references/investigating-runs.md, generatedreferences/_generated/*(runs, revisions, bundles, script config, secret requests, runtimes)secrets values setskills/devhelm-{configure,investigate,communicate,manage}/**scripts/generate-skill-references.mjs(now also supports explicit schema lists and stampsmetadata.version)devhelm …example with--helpand fails on an unknown commandscripts/check-skill-examples.mjs(npm run skills:check), run innpm testbytest/skills/examples.test.ts. It also refuses unknown long flagsdevhelm skills installinstallsdevhelm-syntheticsSKILL_NAMESinsrc/lib/skills.ts(inituses the same list)doctorwarns when installed skill version ≠ CLI versionskillVersion()readsmetadata.version;doctorskillscheck compares it with the CLI version (and flags edited copies)init's prompt now namesdevhelm-syntheticsdevhelmhq/skillpublishes the same setscripts/sync-skill-repo.mjs <skill-checkout>(npm run skills:sync)Version stamps: the generator stamps every SKILL.md with the package version; the npm
versionlifecycle script reruns it, soscripts/release.sh(which callsnpm version) restamps the skills in the bump commit. A frontmatter test fails if a stamp lags.Stale content fixed (examples):
audit→audit events;status-pages incidents updates create→post-update;subscribers create/delete→add/remove;--published→--enabled;--environment→--env;incidents resolve --reason→--message;dependencies create→track; secrets values never as arguments;monitors list --status→--health. Removed (no command exists):monitors uptime,resource-groups uptime,incidents reopen,environments use,workspaces use(→auth switch),plan-preview,webhooks deliveries,secrets get,domains get,init --from-platform.Tests
npm test: 61 files, 1236 tests, all pass locally (one run). The newexamples.test.tschecks 209 fenced examples across 110 commands and runs--helpfor each command.npm run lint,npm run typecheck: clean.Self-review
One reviewer pass (Sonnet) across the CLI, skill and templates diffs: 0 P0. Fixed these P1s: the deploy
--yesrule now treats every deploy as production unless the user says otherwise; billing multipliers are attributed to the right commands (test --repeat,trigger --region all,--max-runs); "Running" after deploy became aruns listcheck; the OTP example guards a missing code; the subjects are aligned; the bare-topic examples (devhelm audit) are now refused;sync-skill-reporefuses stale stamps or missing generated references; the doctor wording is clearer; the api-orders README coversAPI_URL.Review follow-ups (P1/P2 not done):
\-continued lines.ExampleResultcould become a discriminated union.skillVersion()with two small parsers; they could share one helper.-o) aren't validated.--helpruns are sequential (about 20 s).Deviations from doc 42
doctorcompares the stampedmetadata.version, and also warns when an installed copy with the same version was edited.Not in this PR
init --browser|--apiwrites its inline starters; it doesn't fetchdevhelmhq/templates. The templates PR mirrors init's layout. Fetching from templates would add a network dependency to an offline-safe command and needs a decision.@devhelm/syntheticsexports (email.address,email.wait,webhook.wait) follow RFC A5.1. The package has no published API reference yet; the skill must be re-checked when it ships.@devhelm/sdk/bundlerisn't resolvable frompackage.json). Locally everything passes with the sdk build installed.How to verify locally
🤖 Generated with Claude Code