# Authoring Global Scripts

> Authoring Global Scripts

- Skill: `aibot88/authoring-global-scripts` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add aibot88/authoring-global-scripts`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aibot88/authoring-global-scripts/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aibot88 (https://skillmd.com/u/aibot88)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/aibot88/authoring-global-scripts

---


# Authoring Global Scripts

Manage package scripts that apply to all packages in the monorepo.

## Steps

### Adding a Global Script

1. Add script to root `package.json` with `_:` prefix:
   ```json
   {
     "scripts": {
       "_:build": "tsgo -p tsconfig.build.json",
       "_:check:types": "tsgo --noEmit"
     }
   }
   ```

2. 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

