← ClaudeAtlas

write-bash-scriptslisted

Write, review, and maintain Bash shell scripts for Agora backend services. Use whenever creating or editing any .sh file — test runners, build or publish scripts, entrypoints, env setup. Covers error handling, cleanup traps, argument validation, service readiness waits, and portability.
a-novel-kit/stack · ★ 1 · AI & Automation · score 67
Install: claude install-skill a-novel-kit/stack
# Bash Script Writing Skill Shell scripts in Agora backend services live in `scripts/` (developer tooling) or `builds/` (container entrypoints). Read the relevant section for the task at hand; the conventions at the end apply to every script. **Before writing or editing any script**, read the existing scripts in `scripts/` and `builds/` to understand the current patterns. --- ## Out of Scope: Release / Publish Scripts **Do not write or revive a `scripts/publish.sh` or `scripts/prepublish-version.sh`** for any service or kit repo. The release flow — version bump (workspace-aware), commit, tag, push, and GitHub Release — runs **in CI** in the `release-core` GitHub Action (`a-novel-kit/workflows`), triggered from the repo's release workflow with a release-type selector (patch / minor / major). It auto-detects whether the repo uses `pnpm-workspace.yaml` (recursive `pnpm version`) or not (root-only) and refreshes doc refs via `prepublish:doc` (`a-novel publish stamp`). The bash equivalents were deleted because each copy drifted independently (pnpm 10 → 11 broke two of three at once); no local release command replaces them. **The security model for who can publish is server-side**, not script-side: GitHub branch protection on `master` AND tag protection on `v*` enforce "only X can release." The CLI's preflight is UX — it surfaces a 403 before any local mutation — but it is not a boundary. In-container release steps (Docker image builds, npm publish on a pushed tag) are out o