plans
2026-05-11
2026 05 11 Jsdoc Changelog Every File

JSDoc Changelog Every File Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Add proper JSDoc comment blocks with @changes table to all TS/TSX files in the frontend that lack it.

Architecture: Each file gets a consistent JSDoc block at the top containing component/file description and a changelog table. Files are processed in parallel batches to handle the large volume efficiently.

Tech Stack: N/A (documentation task)


Files Summary

  • Total TS/TSX files: 581
  • Files with @changes: 46 (already done)
  • Files missing @changes: 535

JSDoc Block Template

/**
 * [ComponentName] — Brief one-line description
 *
 * @description Extended description of what this component/file does.
 *
 * @changes
 * | Date       | Author   | Change                                |
 * | ---------- | -------- | ------------------------------------- |
 * | YYYY-MM-DD | Curly Ng | Initial version or description of change |
 */

Special Cases

  1. Page files (page.tsx): Use page name as component name, describe the page's purpose
  2. Metadata files (metadata.ts): Note it's a Next.js metadata export
  3. Data files (.ts with data in name): Note it's static data
  4. Context files (*context.tsx): Note it's a React context
  5. Hook files (use-*.ts): Note it's a custom hook
  6. Schema files (*.schema.ts): Note it's a Zod schema
  7. Type files (*.types.ts): Note it contains type definitions

Batch Assignments

Batch 1: Contexts, Navigation, App Shell (50 files)

  • contexts/*.tsx
  • navigation.ts
  • app/layout.tsx, app/page.tsx
  • mdx-components.tsx

Batch 2: Dashboard Pages (50 files)

  • app/[locale]/dashboard/**/*.tsx
  • app/[locale]/dashboard/**/*.ts

Batch 3: Landing Pages (50 files)

  • app/[locale]/(landing)/page.tsx
  • app/[locale]/(landing)/*/page.tsx
  • app/[locale]/(landing)/*/metadata.ts

Batch 4: Inquiry Pages (50 files)

  • app/[locale]/(landing)/inquiry/**/page.tsx
  • app/[locale]/(landing)/inquiry/**/metadata.ts
  • app/[locale]/(landing)/inquiry/**/data.ts

Batch 5: Experience Pages (50 files)

  • app/[locale]/(landing)/experiences/**/page.tsx
  • app/[locale]/(landing)/experiences/**/metadata.ts

Batch 6: UI Components Part 1 (50 files)

  • components/ui/accordion.tsx through components/ui/field.tsx

Batch 7: UI Components Part 2 (50 files)

  • components/ui/form-*.tsx through components/ui/image-*.tsx

Batch 8: UI Components Part 3 (50 files)

  • components/ui/label.tsx through components/ui/radio-group.tsx

Batch 9: UI Components Part 4 (50 files)

  • components/ui/rating-display.tsx through components/ui/tabs.tsx

Batch 10: UI Components Part 5 (50 files)

  • components/ui/textarea.tsx through components/ui/why-card.tsx

Batch 11: Booking Components (50 files)

  • components/booking/**/*.tsx

Batch 12: Marketing Components Part 1 (50 files)

  • components/marketing/artists/**/*.tsx
  • components/marketing/about-*.tsx

Batch 13: Marketing Components Part 2 (50 files)

  • components/marketing/event-*.tsx
  • components/marketing/featured-*.tsx

Batch 14: Marketing Components Part 3 (50 files)

  • components/marketing/gallery-*.tsx
  • components/marketing/contact-*.tsx
  • components/marketing/video-*.tsx

Batch 15: Private Events & Venue (50 files)

  • components/marketing/private-events/**/*.tsx
  • components/marketing/venue-*.tsx
  • components/marketing/workshops/**/*.tsx

Batch 16: Home, Wall, Profile Components (50 files)

  • components/home/**/*.tsx
  • components/wall/**/*.tsx
  • components/profile/**/*.tsx

Batch 17: Admin Components (50 files)

  • components/admin/**/*.tsx

Batch 18: POS, Menu, Table Components (50 files)

  • components/pos/**/*.tsx
  • components/menu/**/*.tsx
  • components/table/**/*.tsx

Batch 19: Experience Sub-Components (50 files)

  • components/experiences/dinner-theater/**/*.tsx
  • components/experiences/french-mentalist/**/*.tsx

Batch 20: Minigames & Forms (35 files)

  • components/minigames/**/*.tsx
  • components/forms/**/*.tsx

Batch 21: Lib Files (50 files)

  • lib/**/*.ts

Batch 22: Hooks (50 files)

  • hooks/**/*.ts
  • hooks/**/*.tsx

Execution Notes

  • Files can be processed in parallel (10 batches at once recommended)
  • Each agent handles its batch independently
  • No code logic changes - only comment block additions
  • If a file already has a proper JSDoc block with @changes, skip it
  • For files with existing // ipsoc checked: comments, replace with proper JSDoc block

Verification

After all batches complete:

grep -rL "@changes" /Users/curlyz/usr/hol/apps/frontend --include="*.tsx" --include="*.ts" 2>/dev/null | grep -v node_modules | wc -l

Expected: 0