← Files Cecil-IA Labs FFmpegARCHIVED FILE
docs/development/checklists/foundation.md
2.96 KB · Sep 30, 2026 · 23:17 UTC
# Milestone 1 — Completion Checklist **Target:** `v0.1.0-alpha.1` **Status:** ✅ Implemented > **Historical note:** Milestone 1 provisionally selected Execa. Milestone 2 superseded that decision with the audited native `spawn` boundary documented in ADR 0002. | Requirement | Status | Evidence | |---|---:|---| | Repository foundation | ✅ | root package structure | | Configure TypeScript strict mode | ✅ | `tsconfig.json` | | Configure ESM | ✅ | `package.json`, `tsconfig.json` | | Configure `tsx` for development | ✅ | `package.json` scripts/devDependency | | Configure production build | ✅ | `tsconfig.build.json`, `npm run build` | | Configure npm `bin` | ✅ | `package.json` → `cecilia-ffmpeg` | | Add Commander CLI | ✅ | `src/cli/program.ts` | | Select a process-runner strategy | ✅ | Execa was selected provisionally here; ADR 0002 supersedes it with native `spawn` in Milestone 2 | | Add Zod validation | ✅ | `src/cli/global-options.ts` + pre-action validation | | Add Vitest | ✅ | `vitest.config.ts`, `test/cli/*` | | Add formatting/linting | ✅ | ESLint flat config + Prettier config | | Implement `--output` | ✅ | `src/cli/program.ts` | | Implement `--overwrite` | ✅ | `src/cli/program.ts` | | Implement `--dry-run` | ✅ | `src/cli/program.ts` | | Implement `--json` | ✅ | `src/cli/program.ts` | | Implement `--quiet` | ✅ | `src/cli/program.ts` | | Implement `--verbose` | ✅ | `src/cli/program.ts` | | Implement `--ffmpeg-path` | ✅ | `src/cli/program.ts` | | Implement `--ffprobe-path` | ✅ | `src/cli/program.ts` | | Preserve Milestone 0 `--keep-temp` | ✅ | `src/cli/program.ts` | | Expose frozen command grammar | ✅ | `src/cli/command-spec.ts` | | No FFmpeg invocation in Milestone 1 CLI help | ✅ | no process runtime exists in `src/`; smoke tests inspect help only | | Plugin portable manifest | ✅ | `plugin.json` | | Concrete project license | ✅ | `LICENSE`, ADR 0001 | ## Acceptance criterion Required target: ```bash npm run cli -- --help ``` The implementation is wired for this command and does not import or execute FFmpeg/FFprobe. In the assembly environment, npm dependencies could not be fetched because outbound DNS for `registry.npmjs.org` is unavailable. Therefore the exact dependency-backed command could not be executed here. ### Validation completed in the assembly environment - JSON files parsed successfully. - JavaScript configuration passed `node --check`. - All TypeScript source and test files passed TypeScript parser/transpile diagnostics using the installed TypeScript compiler. - No `child_process`, `spawn`, `exec`, or `ffmpeg` execution implementation exists in `src/`. ### Final local verification after download ```bash npm install npm run validate npm run cli -- --help ``` ## Gate to Milestone 2 Milestone 2 may implement binary discovery, FFmpeg/FFprobe execution, cancellation, structured execution results, and dry-run rendering through the shared runtime. Domain commands must continue to avoid direct process execution.
SHA-256: 2d0370e5ffb0441f865c6624aca04e84847930c859cb8b5ce3b1aaf458638092