Files
initiative/specs/006-pre-commit-gate/plan.md

2.9 KiB

Implementation Plan: Pre-Commit Gate

Branch: 006-pre-commit-gate | Date: 2026-03-05 | Spec: spec.md Input: Feature specification from /specs/006-pre-commit-gate/spec.md

Summary

Enforce a pre-commit quality gate by adding Lefthook as a Git hooks manager. A lefthook.yml configuration defines a pre-commit hook that runs pnpm check. The hook auto-installs via a prepare script in package.json, ensuring zero manual setup for developers after pnpm install.

Technical Context

Language/Version: TypeScript 5.x (project), Go binary via npm (Lefthook) Primary Dependencies: lefthook (npm devDependency) Storage: N/A Testing: Manual verification (commit with passing/failing checks) Target Platform: macOS, Linux (developer workstations) Project Type: Monorepo (pnpm workspaces) -- web application with domain/application/web layers Performance Goals: No additional overhead beyond pnpm check execution time Constraints: Must auto-install on pnpm install; must not interfere with CI Scale/Scope: 2 files changed (lefthook.yml created, package.json modified)

Constitution Check

GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.

Principle Status Notes
I. Deterministic Domain Core N/A No domain logic changes
II. Layered Architecture PASS Tooling-only change, no layer imports affected
III. Agent Boundary N/A No agent layer changes
IV. Clarification-First PASS User explicitly specified Lefthook; no ambiguity
V. Escalation Gates PASS Feature is within spec scope
VI. MVP Baseline Language PASS No permanent bans introduced
VII. No Gameplay Rules N/A Not a gameplay feature
Development Workflow (merge gate) PASS Directly implements the "automated checks must pass" rule
Layer boundary compliance N/A No source code layer changes

Post-design re-check: All gates still pass. No design decisions introduced new violations.

Project Structure

Documentation (this feature)

specs/006-pre-commit-gate/
├── plan.md              # This file
├── research.md          # Phase 0 output
├── quickstart.md        # Phase 1 output
├── spec.md              # Feature specification
└── checklists/
    └── requirements.md  # Spec quality checklist

Source Code (repository root)

./
├── lefthook.yml         # NEW — Lefthook configuration (pre-commit hook)
├── package.json         # MODIFIED — add lefthook devDep + prepare script
└── (all existing files unchanged)

Structure Decision: This feature only adds tooling configuration at the repository root. No source code directories are created or modified. The existing monorepo structure (packages/*, apps/*) is unchanged.

Complexity Tracking

No constitution violations. Table not applicable.