# AGENTS.md - Vue storybook parity rules

## Scope

- Scope: `examples/v2/vue/storybook/**`.
- Goal: visual and story-structure parity with `examples/v2/react/storybook/**`.

## Source of truth

- Treat React story names, grouping, and scenario intent as canonical.
- Mirror stories one-by-one with equivalent Vue components as they are ported.
- Keep story file ownership close to React so each Vue story maps directly to its React counterpart.

## Parity constraints

- If React has no Storybook equivalent for a shipped Vue parity feature, a Vue-only parity story is allowed and should be marked explicitly as a parity bridge.
- Story titles should stay aligned with React naming to preserve comparison clarity.
- Avoid introducing Vue-only scaffold abstractions that make React↔Vue story diffs harder to follow.

## Implementation guidance

- Start with placeholder/minimal parity stories when a Vue component exists but is incomplete.
- Upgrade each story to full behavior parity as the corresponding Vue primitive lands.
- Prefer stable, deterministic props/data so visual comparisons remain consistent.

## Story Completion Checklist (Blocking)

For each ported user-visible Vue feature, story parity is complete only if all items below are true.

1. There is a Vue story that maps to the corresponding React story intent.
2. Story title/grouping is aligned with React naming.
3. Core interaction states are represented (default, active/loading, error/fallback where applicable).
4. Slot/customization behavior is demonstrated when the feature uses Vue slots.
5. Story data is deterministic and stable for side-by-side React↔Vue comparison.
6. Story build and dev both succeed (`storybook build`, `storybook dev`).

## Validation

Run after meaningful changes:

1. `pnpm -C examples/v2/vue/storybook dev`
2. `pnpm -C examples/v2/vue/storybook build`
