← Files Cecil-IA Labs FFmpegARCHIVED FILE

docs/development/checklists/cli-installation-release-workflow.md

2.2 KB · Sep 30, 2026 · 23:17 UTC

↓ Download file

# CLI Installation & Release Workflow — Completion Checklist

**Roadmap slot:** 14.5  
**Package version:** `0.9.9` (release hardening; no version bump)  
**Status:** Implementation complete; validation and merge pending

## Public installation

- [x] Preserve `bin.cecilia-ffmpeg -> ./dist/cli.js`.
- [x] Document `npm install -g @cecilialabs/ffmpeg`.
- [x] Keep package-runner usage supported; since v1.1 it must explicitly select `cecilia-ffmpeg` because the package exposes multiple binaries.
- [x] Do not add a shell-mutating `postinstall`.

## Local development

- [x] Add `npm run setup:cli`.
- [x] Add build-before-link `npm run link:cli`.
- [x] Add `npm run unlink:cli`.
- [x] Prompt before build/link.
- [x] Detect whether `cecilia-ffmpeg` is already in `PATH`.
- [x] Prompt separately before changing `~/.bashrc`.
- [x] Keep Bash changes idempotent.
- [x] Avoid automatically editing non-Bash shell configuration.

## Packaging and publishing

- [x] Add `prepack -> npm run build`.
- [x] Preserve `prepublishOnly -> npm run validate`.
- [x] Add repository-only `scripts/publish-npm.sh`.
- [x] Require clean `master` for actual publication.
- [x] Verify parity with `origin/master`.
- [x] Verify npm authentication.
- [x] Reject duplicate published versions.
- [x] Pack and inspect the exact tarball before publishing.
- [x] Publish the exact inspected `.tgz`.
- [x] Verify registry propagation.
- [x] Offer annotated Git tag only after publish.
- [x] Keep repository scripts outside the npm package.

## CLI UX

- [x] Add `Cecil-IA Labs · FFmpeg Media Toolkit` headline to help.
- [x] Preserve plain/non-TTY behavior.
- [x] Preserve JSON contracts.
- [x] Cover headline in CLI help tests.

## Quality

- [x] Add `verify:distribution`.
- [x] Add it to `npm run validate`.
- [ ] Run `npm run validate` locally.
- [ ] Exercise `npm run setup:cli` interactively.
- [ ] Exercise `./scripts/publish-npm.sh --dry-run --allow-non-master`.

## Acceptance criterion

A contributor can expose the compiled checkout as `cecilia-ffmpeg` with explicit consent, a public user receives the command through standard npm installation without shell mutation, and a maintainer can publish the exact inspected package artifact from a clean synchronized `master`.

SHA-256: 723832df281727ec9eb8191acec2dce78552724df72c38157d8c65a7e3384c91