| name | authoring-global-scripts |
| description | Authors and manages global package scripts using the _: prefix convention. Scripts defined in root package.json are propagated to all packages with the prefix stripped. |
Authoring Global Scripts
Manage package scripts that apply to all packages in the monorepo.
Steps
Adding a Global Script
-
Add script to root package.json with _: prefix:
{
"scripts": {
"_:build": "tsgo -p tsconfig.build.json",
"_:check:types": "tsgo --noEmit"
}
}
-
Run the sync script at .claude/skills/authoring-global-scripts/scripts/sync-package-scripts.ts
Auditing for Inconsistencies
Run with --check flag to verify all packages are in sync without modifying:
tsx .claude/skills/authoring-global-scripts/scripts/sync-package-scripts.ts --check
Reference
Convention
| Location | Format | Example |
|---|
| Root package.json | _:script-name | "_:build": "tsgo -p tsconfig.build.json" |
| Package package.json | script-name | "build": "tsgo -p tsconfig.build.json" |
The _: prefix marks scripts as "global templates". The sync script:
- Strips the prefix when copying to packages
- Replaces all package scripts (packages should not have custom scripts)
- Warns about extra scripts in packages that aren't in the template
Relative Paths
Relative paths like ../../oxlint.json are preserved as-is. They're relative from each package directory, so ../../ correctly points to the monorepo root from packages/*/.
Notes
- Packages should NOT have custom scripts - all scripts come from the global template
- If a package needs a unique script, reconsider whether it belongs as a global script
- Run audit (
--check) to catch manual edits that broke the pattern