docs(authoring): adopt scripts/ as the script packaging convention - #90
Merged
Conversation
This was referenced Aug 28, 2026
Defines how runnable scripts ship inside skills before the first wave of shared scripts lands: the file contract, PowerShell 7 as the single target with #Requires -Version 7.0, connection discovery and secrets rules, bundle closure for script imports, the fold-back gates for lifting a script out of a demo build, and the smoke-test rule for write scripts. Docs only; the validator checks and the migration of the four existing dw-setup-install scripts follow in the next PR.
…the default, not the only option
Justinvolved
force-pushed
the
docs/scripts-packaging-convention
branch
from
September 1, 2026 08:20
c1cd2fd to
0867f93
Compare
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.
What
Docs-only PR that fixes the rules before any script ships. Version 4.20.0 -> 4.21.0.
.claude/skills/dw-skill-authoring/SKILL.md, new section Shipping scripts: the script contract (scripts/layout per the Agent Skills spec; language per job with the runtime declared incompatibility:; language-neutral rules: actionable header with a READ-ONLY / WRITES opener, explicit parameters, exit codes, dry-run default beyond one row, connection discovery order with no default host/port/path/token, environment-only secrets, encoding; a PowerShell profile with comment-based help,SupportsShouldProcess, one shared module indw-data-access,dw-setup-installself-contained; a Python profile withargparseand--dry-run/--apply; linked## Scriptstable, forward-slash invocations). Script imports count toward bundle closure.skills/dw-demo-foldback/references/fold-back-workflow.md, new Step 1c: lifting a script from a demo build. Recurrence bar, script-specific sanitization classes, one-lesson-one-home for the superseded prose, retiring the demo copy, and the smoke-test rule (write scripts local-first; a hosted install only afterwards and underdw-demo-hostedshared-install discipline).skills/dw-demo-base/references/setup-checks.md: install-grade fix for a missingpwsh.CLAUDE.md,README.md,CHANGELOG.md,marketplace.jsonversion.Two things to review deliberately
#Requires -Version 7.0, PowerShell 7 is a machine prerequisite installed by the setup preflight next togit,ghandnode, and scripts never branch on the version. A skill may ship a script in another language (Python, Bash, JavaScript) where that fits better, e.g. text transforms over template files; the requirement is that the runtime is declared in the skill'scompatibility:frontmatter, not that it is PowerShell. The demo chain already mandates pwsh 7+ (setup-checks.md); the four existingdw-setup-installscripts are the only 5.1-compatible code and carry acurl.exe -kfallback plus an unguardedConvertFrom-Json -AsHashtablethat silently empties.mcp.jsonunder 5.1. The next PR removes that dual target.History
Opened first as #89, stacked on #87; GitHub auto-closed it when #87's branch was deleted on merge. Same single commit, now rebased onto
main.Checks
python scripts/validate-skills.py: 0 errors (7 pre-existing length warnings, untouched).node scripts/build-manifest.mjs --check: up to date.