Skip to content

feat(harness): enforce prop default docs#248

Merged
egdev6 merged 1 commit into
mainfrom
feat/247-prop-default-docs
May 30, 2026
Merged

feat(harness): enforce prop default docs#248
egdev6 merged 1 commit into
mainfrom
feat/247-prop-default-docs

Conversation

@egdev6
Copy link
Copy Markdown
Member

@egdev6 egdev6 commented May 30, 2026

Summary

  • Adds a verifier that fails when public component props with runtime defaults lack matching @default JSDoc in types.ts.
  • Wires the verifier into local hooks and CI workflows.
  • Updates contributor/auditor harness docs and existing component prop metadata so the new gate passes.

Closes #247

Review scope

  • Primary files/areas:
    • scripts/verify-prop-default-docs.mjs
    • .atl/skills/** component contributor/auditor contract updates
    • .github/workflows/test.yml
    • .github/workflows/storybook-build.yml
    • lefthook.yml
    • component types.ts JSDoc metadata updates
  • Out of scope:
    • Runtime component behavior changes.
    • Discord notification workflow.
    • Unrelated local working-tree files in the original checkout.
  • Review workload: medium — many files, but most are docs/metadata and one verifier script.

Type of change

  • New component
  • Existing component update/refactor
  • Bug fix
  • Accessibility
  • Design tokens
  • Storybook/docs
  • Infrastructure/tooling
  • NPM/dependencies

Workflow gates

  • Linked issue is present with Closes #NNN or maintainer approved an exception.
  • Linked issue has label status:approved before implementation starts.
  • Work was started through the Project flow: assignee set, Project status In progress, branch/worktree recorded.
  • PR title follows Conventional Commit format: <type>(<optional scope>): <description>.
  • Commits follow the same commitlint-enforced format.
  • Diff is focused; unrelated work is called out in Review scope.
  • MCP/runtime artifacts are absent: .playwright-mcp, page-*.png, page-*.jpeg, *.md.playwright-output.

Component evidence (required for component changes)

N/A — this PR changes component public prop documentation metadata only; no runtime component implementation changed.

Accessibility evidence

N/A — no runtime UI behavior changed.

Validation evidence

  • TypeScript: pnpm exec tsc --noEmit passed via lefthook pre-commit.
  • Unit tests: pnpm test passed via lefthook pre-push — 28 files, 440 tests.
  • Build/package: N/A.
  • Storybook or visual check: N/A — no visual/runtime changes.
  • Accessibility check: N/A — no runtime UI changes.
  • Security/dependency check: no dependency changes.
  • Prop docs verifier: node scripts/verify-prop-default-docs.mjs passed.
  • Formatting/lint: pnpm exec biome check <changed relevant files> passed via lefthook and manual validation.
  • Workflow syntax: .github/workflows/test.yml and .github/workflows/storybook-build.yml parsed as YAML locally.
  • Review: fresh-context reviewer found no blockers.

Screenshots or recordings

N/A — metadata/tooling change only.

Notes for reviewer

The verifier intentionally checks literal/defaultable cases and avoids broad semantic inference for complex derived values. It covers:

  • hook/component destructuring defaults;
  • empty array/object constants;
  • CVA defaultVariants;
  • nullish fallback chains such as disabled ?? isDisabled ?? false.

@egdev6 egdev6 added the type:feature Feature changes label May 30, 2026
@egdev6 egdev6 merged commit 0d92e8f into main May 30, 2026
9 checks passed
@egdev6 egdev6 deleted the feat/247-prop-default-docs branch May 30, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:feature Feature changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[INFRA] Enforce component prop default docs

1 participant