Punchline Lab
Try it free
/speckit-constitution

Constitution

Project principles — once per repo

.specify/memory/constitution.md
# Punchline Lab (speckit-demo) Constitution

## Core Principles

### I. Specification-first delivery
Features start in `specs/` with user scenarios and acceptance criteria. Implementation must trace back to those artifacts; drift is fixed in spec/plan, not silently in code.

### II. Demo-safe operations
No real payment, OAuth, or LLM API secrets in this repository. Billing, auth, and “AI” joke generation are mocked or local with clear UI copy and `localStorage` only.

### III. Small vertical slices
Ship one cohesive micro SaaS surface (landing, joke generator, dashboard, Spec Kit learning path) before adding backends or external APIs.

### IV. Teach by example
The in-app `/learn` flow must surface **real** artifacts from this repo (constitution, spec, plan, tasks) so adopters see Spec Kit on a product they can run.

### V. Agent-friendly structure
Keep modules small, typed, and colocated (Next.js App Router, shared `src/lib`). Prefer readable components over premature abstraction.

## Stack constraints

- Next.js (App Router), TypeScript, Tailwind CSS, shadcn/ui
- Joke engine: curated lists + templating in `src/lib/joke-engine.ts` (no OpenAI keys)
- Client-side demo storage (`localStorage`) unless a later spec adds a real API
- Spec Kit skills live under `.cursor/skills`; shared templates under `.specify/`

## Workflow

1. Amend constitution rarely; version it when principles change.
2. Per feature: `/speckit-specify` → `/speckit-plan` → `/speckit-tasks` → `/speckit-implement` → `/speckit-converge`.
3. Optional: `/speckit-clarify`, `/speckit-checklist`, `/speckit-analyze` when ambiguity or risk is high.

## Governance

This constitution overrides ad-hoc decisions. Changes require updating this file and noting the version/date below.

**Version**: 1.1.0 | **Ratified**: 2026-10-03 | **Last Amended**: 2026-10-03