Restructure into a pnpm + Turborepo monorepo (library + docs, unified manifest) - #1
Conversation
create-next-app (TS/Tailwind/App Router) with hookli@1.3.16 installed from npm for live demos, brand assets in public/, and the Ralph loop ported in: check.sh gate (lint + tsc + next build), docs-tuned prompt.md, prd.json seeded with 15 tasks (research usehooks-ts first -> design system -> landing -> per-hook doc pages with interactive demos -> search -> donation placeholder -> SEO/OG -> polish -> final QA). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rce of truth Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oter, Wordmark) Brand tokens from docs/DESIGN.md as Tailwind v4 @theme vars; JetBrains Mono via next/font for headings/wordmark; root metadata (title template, svg favicon, separate viewport export); shared Header/Footer; boilerplate page/svgs/favicon.ico removed; interim branded home page (T3 builds the hero). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Hero headline reuses Wordmark with new xl size + steps() cursor blink (solid under prefers-reduced-motion); InstallCommand + CopyButton (2s check feedback, aria-live) as shared components for later reuse (footer/docs index per DESIGN.md); Copy/Check icons added to Icons.tsx. T3 marked done in prd.json. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lock, useToggle demo) Six-feature grid with new lucide-style icons; LiveProofSection pairs a shiki-highlighted useToggle sample with the same hook running live, imported from the published hookli package. CodeBlock (css-variables theme wired to brand tokens in globals.css) + lib/shiki.ts are built for T6 reuse. shiki@4.3.1 added per DESIGN.md dependency policy. T4 marked done in prd.json. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sidebar, [slug] scaffold) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…age (tabs, error boundary, API tables) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…orage (live demos, shared demo UI) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rkMode (TTL countdown, scoped theme panel) + useToggle polish Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…osition, useInfiniteScroll (dropdown, crosshair panel, window-scroll batches) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ocation (jsonplaceholder demo with 404 state, click-gated geolocation) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…pattern, focus trap, full-screen mobile sheet) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…t page, footer link) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…, apple-icon, metadataBase) Root + per-hook opengraph-image via next/og ImageResponse (brand lockup / hook card, JetBrains Mono from @fontsource devDep); {h} apple-icon; sitemap.ts + robots.ts derived from the hooks registry; openGraph/twitter metadata wired through layout and [slug] generateMetadata. SITE_URL is a placeholder origin until deploy (NEXT_PUBLIC_SITE_URL overrides). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ng hooks index + bottom CTA, pressed states, /docs + /support og titles) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…a Sans, hookli. wordmark + hook mark, OG/apple-icon recolor) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…phy cleanup) Complete the brand v3 pass: the recolor + Plus Jakarta headings + hookli. wordmark landed in 5c3fa89, but the font-mono cleanup across UI chrome was left uncommitted and prd.json still marked T17 todo. Strip font-mono from category eyebrows, pager, sidebar/mobile-nav, demo tabs, cards, CTAs, ApiTable heads, support cards, and the search palette — monospace now stays only on code-like content (CodeBlock, InstallCommand, type/value cells, demo inputs, kbd keycaps). Reverted a stray shiki default-lang change (no caller uses it). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e template) Single reusable components/HookPage.tsx renders all 11 hook pages from registry + HOOK_DOCS + hook-sources; [slug]/page.tsx is now a thin routing wrapper. Adds right-rail On-This-Page TOC (scroll-spy) + support slot, line-numbered Usage with auto-highlighted hook-call line, embedded vendored hook source + view-on-GitHub, Parameters default chips, type-alias tables, and MDN Web-API chips in the lead description. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…klog Author the real conventions by reading the Nzmly storefront-v2 CLAUDE.md: kebab-case files AND folders (components included), PascalCase exports only, role->feature folders with index.ts barrels, named exports, token-only styling, import order, a11y. Refresh the stale brand section + prompt.md quality bar to brand v3. Rewrite T18 as a pure kebab-case rename of components/*.tsx (demos/lib already comply) and re-add T19 (dark-theme tonal-scale fix). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rename all 21 root components/*.tsx to kebab-case (exports stay PascalCase) per AGENTS.md Conventions; update every @/components alias import and the relative imports inside header/footer/sidebar/search-palette. demos/ and lib/ were already kebab-case and are untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ay scale) #003748 was doing double duty as page + card base, so the site read as a bright saturated teal-blue with cards that barely separated. Recast it as a token-only tonal scale in the same hue family: --color-ground #04191f near-black page (was #003748) --color-ground-raised #003748 cards/surfaces (was #0a4557) --color-ground-overlay #0a4557 nested/hover/active (new step) Every bg-ground/bg-ground-raised usage inherits the new depth automatically — cards now visibly lift off a near-black ground; inset wells (demo inputs, api default chips) read as recessed. One component edit: search-palette active result now uses bg-ground-overlay (post-remap bg-ground/70 would render darker than its panel — a selection must lift, not recess). Borders stay translucent slate/40, which adapts a step lighter than whichever surface it sits on. DESIGN.md + AGENTS.md brand notes synced to the new scale. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rewrite README from create-next-app boilerplate to a real app README (stack, dev/build/gate commands, sitemap, structure, how to add a hook). QA every route against DESIGN.md + quality bar via a read-only audit — codebase clean. Small fixes: sync viewport themeColor to the T19 near-black ground (#04191f), de-hardcode a stale hook-count comment, reconcile DESIGN.md to the T16 TOC. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fix the monotone 'teal everything' look: retune ground tokens to a near-black neutral base (ground #0A1315 / raised #101D21 / overlay #17282E) so cards read as subtle bordered panels and #003748/#30C5CA become accents, not fills. Sync the new variant-4 banner into public/. Token-only — every surface inherits it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Docs index gains a numbered 3-step Quick start (install / import / use) in place of the bare Install heading. Each hook page now ends with a registry- derived "Related hooks" grid (same category first, topped up in registry order) via a new relatedHooks() helper — improving discoverability. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…o wrap Adopt .surface and accent icon chips on the /support cards for consistency with the rest of the site. Add w-full to the hero and 404 taglines so the max-w-md paragraph wraps inside the viewport instead of overflowing at 375px. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nter, useStep, useCountdown, useMap) Add full doc pages for five state hooks, each following the data-driven HookPage template: registry entry + interactive demo + HOOK_DOCS entry (usage, parameters, returns, type aliases) + vendored source snapshot. - useBoolean: value with setTrue/setFalse/toggle - useCounter: count with increment/decrement/reset/setCount - useStep: 1-indexed stepper with bounded Back/Next - useCountdown: self-stopping countdown timer - useMap: key/value editor over an immutable Map Registry now derives 16 hooks. Sources vendored from hookli@1.4.0 (installed) — stale 1.3.16 version comments updated. DemoButton gains disabled-state styling for useStep's bounded controls. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…morphicLayoutEffect, useEventCallback, useEventListener, useUnmount) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sMounted, useDocumentTitle) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…seDebounceCallback) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ocalStorage) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ectionObserver, useResizeObserver, useScrollLock, useClickAnyWhere) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eScreen, useWindowSize) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…useScript, useTernaryDarkMode) Adds full doc pages (registry + live demo + HOOK_DOCS + vendored source) for the last three undocumented hooks, completing the DH backlog: - useTernaryDarkMode (state): segmented light/system/dark control + Cycle, scoped preview panel, mounted-gated to avoid a hydration mismatch. - useCopyToClipboard (dom): input + Copy button with aria-live status. - useScript (dom): click-gated external load of canvas-confetti with a status readout and a reduced-motion-aware Celebrate button. Registry now 40 hooks; all three prerender. Gate green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ce root Restructure the hookli repo into a pnpm + Turborepo monorepo. Library files moved to packages/hookli/ (src, package.json, tsup/vitest/tsconfig, README, CLAUDE, CHANGELOG). Root: pnpm-workspace.yaml, turbo.json, workspace package.json. yarn.lock dropped (pnpm). LICENSE/CONTRIBUTING/SECURITY/CODE_OF_CONDUCT stay at root. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Docs now consume the library via workspace:* (symlinked, no npm round-trip); dropped apps/docs lockfile + ralph (root governs). pnpm 11: verifyDepsBeforeRun off (esbuild/sharp use prebuilt binaries). turbo run build/test/lint/typecheck = 6/6 green across both workspaces; docs prerenders all 40 hook pages against the local library. Root package.json/pnpm-workspace.yaml/turbo.json/.npmrc added. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Root CLAUDE.md (whole-repo) linking the two workspace CLAUDE.md files (Nzmly hierarchical pattern); library + docs each keep their own conventions doc. - ralph/check.sh is now SCOPED — gates only the changed workspace via turbo filters. - ralph prompt.md/prd.json/progress.txt rewritten for the monorepo; retired library-only ralph docs. - .claude: bring reusable Nzmly commands (speckit.*, watch-prs, way-of-working, local-dev) + agents (frontend-code-reviewer, task-orchestrator, product-owner); git-safety hooks already present. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The library now owns the canonical hook list: packages/hookli/hooks.manifest.json (40 hooks, shipped + exported as 'hookli/manifest'). One source feeds both: - README 'Available hooks' list + count badge are GENERATED (scripts/gen-readme.mjs, runs on prepublishOnly) — no more hand-edited list or stale '11 hooks'. - apps/docs registry imports 'hookli/manifest' (hardcoded 40-entry array deleted); sidebar/search/pages/counts all derive from it. turbo: typecheck now dependsOn build so Next's .next/types exist first. Gate green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Keeps the real brand assets (hookli-banner.svg/.png, hookli-icon.svg); removes the banner/site exploration screenshots — matches d6b13a3 on the library main. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 252 files, which is 202 over the limit of 50. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (41)
📒 Files selected for processing (256)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Analysis CompleteGenerated ECC bundle from 63 commits | Confidence: 90% View Pull Request #2Repository Profile
Changed Files (297)
Top hotspots
Top directories
Analysis Depth Readiness (evidence-backed, 57%)ECC Tools uses this to decide whether recommendations should stay at commit-history/setup guidance or expand into CI, security, harness, reference-set, AI-routing, and team backlog work.
Reference Set Readiness (2/7, 29%)
Likely Future Issues (5)
Suggested Follow-up Work (5)
Copy-ready bodies chore: sync config templates for apps/docs/eslint.config.mjs + apps/docs/next.config.ts ## Summary
- Update the example env files, sample configs, or deployment templates that should mirror the changed runtime configuration surface.
## Why
- Backfill example env files or config templates before a fresh setup drifts from the shipped runtime surface.
## Touched paths
- `apps/docs/eslint.config.mjs`
- `apps/docs/next.config.ts`
## Validation
- Update the repo example env file or config template that should reflect the new runtime settings.
- Run the setup, boot, or deployment validation flow that depends on the changed config surface.test: add browser coverage for apps/docs/app/docs/[slug]/page.tsx + apps/docs/app/docs/page.tsx ## Summary
- Add browser or end-to-end coverage for the recently changed user-facing surface.
## Why
- Backfill browser coverage before another user-facing UI change lands on the touched surface.
## Touched paths
- `apps/docs/app/docs/[slug]/page.tsx`
- `apps/docs/app/docs/page.tsx`
## Validation
- Add or extend browser / e2e coverage for the changed component, page, or flow.
- Exercise the visible user journey that depends on the touched UI surface.security: add scanner evidence for .claude/agents/frontend-code-reviewer.md + .claude/agents/product-owner.md ## Summary
- Add security scanner or code-scanning evidence for the recently changed security-sensitive surface.
## Why
- Backfill explicit scanner or code-scanning evidence before another security-sensitive change lands on the touched surface.
## Touched paths
- `.claude/agents/frontend-code-reviewer.md`
- `.claude/agents/product-owner.md`
## Validation
- Run or add the relevant security scanner, code scanning, secret scanning, or dependency/security review check for the touched surface.
- Attach the scanner output, SARIF/code-scanning result, or focused security regression test to the follow-up PR.
- Confirm the changed auth, billing, webhook, secret-handling, agent, or CI surface has an explicit pass/fail gate.analysis: add reference-set evidence for .claude/agents/frontend-code-reviewer.md + .claude/agents/product-owner.md ## Summary
- Add reference-set or eval evidence for the recently changed AI, analyzer, skill, agent, command, or harness guidance surface.
## Why
- Backfill eval, golden trace, benchmark, or reference-set evidence before another AI or harness-analysis change lands on the touched surface.
## Touched paths
- `.claude/agents/frontend-code-reviewer.md`
- `.claude/agents/product-owner.md`
## Validation
- Add or update an eval, golden trace, benchmark, fixture, or reference-set artifact for the changed AI/harness behavior.
- Compare the changed behavior against the maintained reference set and record the pass/fail evidence.
- Confirm the follow-up evidence covers the same analyzer, skill, agent, command, or harness surface touched by this PR.harness: add config quality evidence for .claude/agents/frontend-code-reviewer.md + .claude/agents/product-owner.md ## Summary
- Add harness compatibility evidence for the recently changed config surface.
## Why
- Backfill harness audit, adapter matrix, or cross-harness compatibility evidence before another config change lands on the touched surface.
## Touched paths
- `.claude/agents/frontend-code-reviewer.md`
- `.claude/agents/product-owner.md`
## Validation
- Run or update the harness audit, adapter compliance matrix, or cross-harness compatibility check for the changed config.
- Add or update a regression, fixture, or doc evidence path that covers the affected harness, MCP, plugin, or agent loading behavior.Detected Workflows (7)
Generated Instincts (33)
After merging, import with: Files
|
Merges the library and docs into one repo with a single source of truth. Built and tested in a worktree; gate green.
What changed
After merge (human steps)
🤖 Generated with Claude Code