Skip to content

Night Watch Roles

Cindy Zhang edited this page Jun 23, 2026 · 1 revision

Night Watch — Role Assignments

Roles are assigned to specific Navis. Each role is non-overlapping — one Navi per role, one role per responsibility area. This prevents duplicate work and conflicting actions.

Active Roles

Role Assigned To Goal
QA DJ's Navi (thedjpetersen) Keep PRs green and up to date
PM Cindy's Navi (cixzhang) Keep tasks/issues tidy, wiki content up to date
Reviewer Cindy's Navi (cixzhang) Lightweight reviews for guidelines compliance
Vibe Test Runner Cindy's Navi (cixzhang) Run nightly vibe tests comparing Astryx vs baseline
Component Auditor Cindy's Navi (cixzhang) Ensure components follow theming, API, a11y, and export conventions
Quartermaster DJ's Navi (thedjpetersen) Maintain OSS→internal consumer supply chain
Doc Reviewer Joey's Navi (josephfarina) Keep component docs accurate and parser-compatible
Designer Ernest's Navi (ernestt) Score AI-generated UIs against ideal reference images
Figma Librarian Ernest's Navi (ernestt) Keep the Astryx OSS Figma Library in sync with code
Dependencies Cindy's Navi (cixzhang) Keep dependencies free of known vulnerabilities

Role Details

QA — DJ's Navi

Goal: Keep PRs green and up to date.

Scope:

  • Fix CI failures on Navi-authored PRs (build, test, lint)
  • Re-run flaky CI checks (screenshots, a11y)
  • Flag stale PRs and branches
  • Monitor dependency alerts
  • Diagnose (but don't fix) CI failures on non-Navi PRs

Does NOT do:

  • Issue triage or labeling (that's PM)
  • Code review for guidelines (that's Reviewer)
  • Feature implementation

Full instructions: Night Watch QA


PM — Cindy's Navi

Goal: Keep tasks and issues tidy, wiki content up to date.

Scope:

  • Triage open issues — ensure they have enough detail to implement
  • Label issues correctly
  • Keep wiki documentation current and organized
  • Flag under-specified issues with clarifying questions
  • Track issue-to-PR linkage

Does NOT do:

  • Fix CI or push code (that's QA)
  • Review PR code quality (that's Reviewer)
  • Close or resolve issues unilaterally

Full instructions: Night Watch PM


Reviewer — Cindy's Navi

Goal: Lightweight reviews on PRs to ensure they adhere to project guidelines.

Scope:

  • Review PRs for design token usage (no hardcoded values)
  • Check accessibility: ARIA roles, keyboard nav, aria-label on icon buttons
  • Verify primitive reuse (Dialog, Button, Icon, etc.)
  • Check composition patterns: files under ~400 lines, displayName set
  • Ensure :hover styles use @media (hover: hover) guards
  • Stick to easy-to-evaluate, objective checks

Does NOT do:

  • Approve PRs — never approve without a human
  • Subjective design feedback
  • Fix CI or push code (that's QA)
  • Issue triage (that's PM)

Full instructions: Night Watch Reviewer


Vibe Test Runner — Cindy's Navi

Goal: Run nightly vibe tests comparing Astryx vs baseline code generation quality.

Scope:

  • Run the full vibe test pipeline once per night (not hourly)
  • Sample 10 prompts, spawn sub-agents for Astryx and baseline
  • Deploy report to gh-pages
  • Post results as a GitHub issue
  • Notify human with summary

Does NOT do:

  • Run more than once per night
  • Fix CI or push code (that's QA)
  • Review PRs (that's Reviewer)
  • Triage issues (that's PM)

Full instructions: Night Watch Vibe Test Runner


Component Auditor — Cindy's Navi

Goal: Ensure all components follow theming, API, accessibility, and export conventions.

Scope:

  • Audit CSS variable usage (no hardcoded colors, shadows, spacing, radii, typography)
  • Verify xdsThemeProps placement, variant classNames, sub-element targeting
  • Check component reuse (Button for close buttons, Icon with registry, Divider)
  • Enforce prop naming (boolean is/has, callback on{Verb}, start/end)
  • Verify type/context naming (unprefixed <Component>*), component structure (displayName, file header, BaseProps)
  • Check input component consistency (field props, status shape, size variants)
  • Audit accessibility contracts (label, ARIA wiring, focus preservation)
  • Verify export hygiene (index.ts, type exports, tsup entry points)
  • Fix findings via PRs, flag ambiguous cases for human review

Does NOT do:

  • Subjective design decisions
  • Review PRs (that's Reviewer)
  • Fix CI (that's QA)
  • Triage issues (that's PM)

Full instructions: Night Watch Component Auditor


Quartermaster — DJ's Navi

Goal: Maintain the supply chain from OSS Astryx (GitHub) through to internal consumers, continuously improving parity with mockups and features.

Scope:

  • Monitor automated code sync from GitHub to internal consumers
  • Ensure Astryx packages are consumable after import
  • Track internal template integration and parity with designs
  • Resolve path resolution and build issues in the import pipeline

Does NOT do:

  • Fix CI on PRs (that's QA)
  • Triage GitHub issues (that's PM)
  • Review PRs for guidelines (that's Reviewer)
  • Implement new Astryx components on GitHub (daytime feature work)

This role primarily operates on internal infrastructure. Detailed instructions are on the internal wiki.

Full instructions: Night Watch Quartermaster


Doc Reviewer — Joey's Navi

Goal: Keep component docs compatible with Storybook autodocs and catch content-level issues the type checker can't see.

Scope:

  • Validate JSDoc @example blocks for Storybook compatibility (no tsx tag, single example)
  • Detect prop documentation drift (TypeScript interface vs .doc.mjs props)
  • Check example quality and composition patterns
  • Validate legacy README structure for the 6 unmigrated components

Not in scope: .doc.mjs type structure — CI handles this via tsc --checkJs.

  • Send PRs to fix issues found

Does NOT do:

  • Fix CI or push code (that's QA)
  • Review PR code quality (that's Reviewer)
  • Triage issues (that's PM)
  • Rewrite component implementations
  • Make subjective style changes

Full instructions: Night Watch Doc Reviewer



Designer — Ernest's Navi

Goal: Score AI-generated UI screenshots against human-provided ideal reference images.

Scope:

  • Maintain ideal reference images in internal/vibe-tests/ideals/ (committed from Drive uploads)
  • Run design-judge.ts after each nightly vibe test to produce Design dimension scores
  • Include Design scores in the Night Watch report
  • Coordinate with designers on ideal image coverage and quality

Does NOT do:

  • Run the vibe test pipeline itself (that's Vibe Test Runner)
  • Fix CI or push code fixes (that's QA)
  • Triage issues (that's PM)
  • Review PRs for guidelines (that's Reviewer)

Full instructions: Night Watch Designer


Figma Librarian — Ernest's Navi

Goal: Keep the Astryx OSS Figma Library in sync with the code in packages/core/src/.

Scope:

  • Detect code changes to component prop interfaces since last run
  • Classify changes (new prop, removed prop, renamed prop, new variant value, new component)
  • Read current Figma component state via use_figma MCP tool
  • Modify existing Figma components in-place for prop changes
  • Build new Figma components from scratch using the CC Figma Builder 4-phase workflow
  • Respect human overrides via three-way diff (CODE / FIGMA / AGENT state)
  • Use native Figma Slots (SLOT property + SlotNode) for freeform ReactNode props

Does NOT do:

  • Visual design judgment (that's Designer)
  • Code review or PR review (that's Reviewer)
  • CI fixes (that's QA)
  • Issue triage (that's PM)
  • Component code auditing (that's Component Auditor)
  • Publish the Figma library — humans publish

Schedule: Once per day at 12pm PST, Mon–Fri. Requires Ernest's Mac with Figma open via MCP.

Full instructions: Night Watch Figma Librarian


Dependencies — Cindy's Navi

Goal: Keep dependencies free of known vulnerabilities.

Scope:

  • Check Dependabot alerts weekly (Sundays 6am PST)
  • Auto-resolve transitive dependency vulnerabilities via pnpm overrides
  • Verify fixes with build + test (+ flow tests for tooling deps like vite)
  • File GitHub issues for major version bumps requiring human review
  • Create verified PRs for all auto-fixes

Does NOT do:

  • Apply major version bumps without human review
  • Merge PRs
  • Fix CI on other PRs (that's QA)
  • Feature work or refactoring

Full instructions: Night Watch Dependencies


Coordination

PM, Reviewer, Vibe Test Runner, Component Auditor, and Dependencies are assigned to Cindy's Navi. PM and Reviewer run once per night at 2am PST. Component Auditor runs at 3am PST. Vibe Test Runner runs at 4am PST. Dependencies runs weekly on Sundays at 6am PST. QA and Quartermaster run independently on DJ's Navi — QA focuses on PR health, Quartermaster on the import pipeline and ensuring @xds/core is consumable internally. Doc Reviewer runs on Joey's Navi with its own nightly schedule. Figma Librarian runs on Ernest's Navi once daily at 12pm PST (requires Mac + Figma MCP).

Related Pages

All roles share the same "What NOT to Do" constraints from the Night Watch Overview.

Changing Roles

To add, remove, or reassign a role, see Night Watch Adding Roles. Update this page to reflect the change.

Clone this wiki locally