CLAUDE.md@templates/product-starter-nextjs · git:20260820.9d29f4b · 2026-08-20 · sha256 89bda01e21dd50c1
CLAUDE.md@templates/product-starter-nextjs git:20260820.9d29f4bA
Immutable. This exact content is served forever at /api/v1/blob/89bda01e21dd50c1.
# CLAUDE.md — scaffolded Hamzaish product
> Seeded by the Hamzaish starter. At registration, replace `SLUG-TBD` with the real slug
> and flesh out product specifics from the factory's `templates/claude-md-template.md`
> (this file carries its two universal blocks so every scaffold is born factory-managed).
## Hamzaish-managed product (the factory contract — keep this section)
This repo is a **Hamzaish factory product** (slug: `SLUG-TBD`). Factory home:
`~/Claude/Hamzaish/products/SLUG-TBD/` — pinned goal, live status, slices, learnings,
decisions, validation ledger. On ANY change request in this repo, do this without being
asked (a follow-up is a new slice, not an exit from the factory):
1. **Re-enter the factory flow** (`/work-on SLUG-TBD` or `/hamzaish` when available);
read the factory `status.md` first.
2. **Pin the request as a slice** (one measurable "done" line) in `status.md` BEFORE building.
3. **Build with tests** — `bun run test` + `bun run test:e2e` stay green; new features
ship with new tests; never strip the starter's tests or CI.
4. **Verify end to end** against the really-running app (`bun dev`, HTTP 200) before
reporting done.
5. **Feed the loop**: mark the slice shipped in `status.md`, add transferable lessons to
`learnings.md`, and ground the retro (`bun run trace-report`, `bun run friction log`
from the factory repo).
6. **Make it visible (enablement protocol)** — plain day-1 language, value never
mechanism, no factory jargon. Open each task response with the 4-line plan (~80 words):
`🏭 Hamzaish plan` · **Goal:** what "done" looks like · **Steps:** the pieces of this
task, in order · **Commands:** each `/command` WITH what it does here · **Proof before
"done":** how it will be verified. Close with the 4-line receipt (max ~65 words):
`🏭 Hamzaish receipt` · **What you got:** the value added to the user's work ·
**Checked:** how it was verified (plus anything deliberately not done) ·
**Recommendation:** the ONE thing you'd do next and why, or exactly `NA` — never a
menu · **Try next:** ONE `/command` with what it does. Numbers only if the user feels them — test counts
yes, commit hashes no. Gate both bookends before sending: day-1 words only (no
insider nouns), exact shapes, caps respected, one Try-next command — `bun run
check-legibility` in the factory repo lints a bookend for you.
## Session-quality defaults (factory-shipped — apply in every session)
- **Only share links that work.** Before sharing a localhost link, verify a real dev
server answers HTTP 200 (`curl -s -o /dev/null -w "%{http_code}" http://localhost:PORT/`).
End build responses with the relevant links — clickable AND in a copyable code block.
- **Anything the user must copy/paste goes in its own fenced code block** — one command
per block, prose outside the block.
- **Secrets files are user-touched only.** Claude creates/edits only `*.example`
templates with placeholders (this starter ships `fnox.toml.example` /
`pitchfork.toml.example` for exactly this reason); the user copies and fills them.
Verify with non-printing checks (`grep -c`, `test -s`) — never print a secrets file.