视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
verify-v8-v9-migration-docs【文档与办公】Generate, audit, and verify Fluent UI v8-to-v9 component migration guides. Use when asked to inventory v8 components, inspect their v8 and v9 source, produce missing per-component documentation, prove the guides are accurate or exhaustive with sealed migrations, classify documentation gaps versus agent mistakes, or publish a verification matrix.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Build and prove the documentation in three stages:
Keep manifests, generated migrations, evaluation ledgers, and runner artifacts outside the Fluent UI checkout. Only documentation and skill corrections belong in the documentation pull request.
Do not describe the documentation as exhaustive until:
DOC_GAP;git diff --check pass;An AGENT_MISS does not by itself make a guide incomplete. Report it
transparently, but change the guide only when its instruction is missing,
incorrect, or materially ambiguous.
Identify:
Enumerate guide paths dynamically. Compare the mapping or index document with the guide files on disk, and fail on missing, duplicate, or unindexed guides. The first complete verification used 53 focused guides and 14 integration scenarios, but do not hardcode those counts after the guide set changes.
Record the initial worktree status. Never use broad restore or checkout commands while an audit contains intentional uncommitted corrections.
Build a coverage ledger from public exports, not from the existing guide list. The ledger must contain one row per public v8 component with:
Use these mapping kinds:
| Kind | Meaning |
|---|---|
direct | The component and core behavior have a v9 replacement. |
renamed | The destination component has a different name. |
decomposed | One v8 component becomes several v9 primitives. |
composed | Product-owned composition is required to preserve behavior. |
compat | The supported destination is a v9 compatibility package. |
shim | A migration shim is intentionally recommended as an intermediate step. |
no-equivalent | V9 has no supported equivalent; document alternatives and limitations. |
umbrella | The component is fully covered by another guide; record that guide explicitly. |
Do not silently omit deprecated, specialized, or package-specific components.
Give each one a disposition, even when the result is no-equivalent or
umbrella. Keep internal implementation helpers out of the public inventory.
Cross-check the ledger against:
Fail coverage validation on duplicate components, missing dispositions, broken guide paths, or guides that have no inventory row.
For the v8 side, inspect:
For the v9 side, inspect:
makeStyles, size, layout, and responsive behavior;Trace behavior to implementation source when types or stories are ambiguous. Do not infer defaults from naming, and do not treat an existing migration guide as authoritative evidence for itself.
For every v8 prop or behavior, record one outcome:
Create a guide for every uncovered supported mapping. Update an existing guide when research proves it incomplete or inconsistent. If multiple v8 components belong in one umbrella guide, make every covered component discoverable from the mapping index and from the guide itself.
Follow the neighboring FromV8 MDX structure exactly. A complete guide normally contains:
Meta, component migration title, and the standard title divider.The guide must be actionable without dependency source access. Include enough per-component instruction for an isolated agent to implement the migration, but do not paste entire source files or duplicate generic v9 documentation.
Examples must:
(event, data) callback values when required by v9;Update the component mapping/index and structural regression tests whenever a new guide or umbrella mapping is added. Structural tests should detect missing titles or dividers, duplicate registrations, broken paths, malformed fences, and invalid TSX snippets.
For each guide, verify claims against source rather than other prose:
Correct factual errors before running a focused scenario when source already proves them. Keep style homogeneous with neighboring migration guides:
Author scenarios deliberately; do not extract code fences automatically when a guide interleaves v8 and v9 examples.
Use this logical manifest schema:
{
"id": "component-example",
"guide_path": "Example.mdx",
"title": "Focused v8 behavior under test",
"source": "Complete self-contained v8 TSX",
"requirements": ["Hidden source-grounded behavior or accessibility requirement"]
}
Each source must:
Each hidden requirement must be observable from the source or established by an authoritative v8 default. Cover behavior, API mapping, accessibility, and visual semantics where relevant.
Validate before running:
Start from a normal v9 application template and its installed dependencies. Add every destination package referenced by the guides, including compat, charting, color-picker, migration-shim, and contrib packages.
Generated builds may resolve installed packages, but the migration agent must not inspect dependency source or type declarations. Validate the untouched template with its existing build and lint commands before launching agents.
Create a fresh workspace per scenario containing only:
INPUT.md with the source-only v8 microcase;GUIDE.mdx with exactly the target guide;src/<scenario-id>/index.tsx;Do not expose:
Allow read, search, and edit tools inside the workspace plus the existing build
and lint commands. Permit compilers to resolve dependencies without granting
the agent direct reads of node_modules.
Require the agent to read INPUT.md and GUIDE.mdx, preserve observable v8
behavior, edit only the target file, migrate to the documented v9 destination,
and finish only after build and lint pass.
Capture a trajectory log. Reject runs that use a non-allowlisted tool, cross the workspace boundary, read dependencies directly, or receive hidden evaluation material.
Run focused scenarios in bounded parallel batches. Keep every iteration in a new output directory so corrective runs remain auditable.
Record for each scenario:
Retain multi-component scenarios as an integration layer. Focused scenarios prove one guide at a time; integration scenarios prove that mappings compose in realistic workflows.
The migration agent must never see this step's requirements.
For every checklist item, inspect generated source for:
Classify each finding exactly:
| Classification | Meaning | Action |
|---|---|---|
DOC_GAP | The guide is missing, wrong, or materially ambiguous. | Correct the guide and rerun. |
AGENT_MISS | The guide clearly covered behavior that the code missed. | Record it; optionally rerun cleanly. |
VALID_VARIANT | The code differs but is source-equivalent. | Count as a pass. |
ORACLE_DEFECT | The checklist conflicts with authoritative source. | Correct the scenario, not the guide. |
Judge from source unless runtime inspection is explicitly part of the oracle. Do not turn every generated-code defect into more documentation; overfitting a guide to one agent output makes it noisy and less authoritative.
For every DOC_GAP:
DOC_GAP.If a rerun produces an AGENT_MISS, verify that the guide is explicit before
keeping the classification. Preserve all iterations in the ledger.
After the matrix reaches zero documentation gaps, review the complete diff against source and neighboring guide style. Look specifically for:
Fix high-confidence findings and rerun the affected focused scenarios.
Before committing:
git diff --check;DOC_GAP;Push only to the pull request's fork and branch. Never force-push unless explicitly authorized.
The pull-request comment must include:
AGENT_MISS descriptions;DOC_GAP and ORACLE_DEFECT, when true;Do not claim every generated migration matched ground truth when agent misses remain. The defensible conclusion is that the documentation has zero remaining documentation-attributable defects under the verified scenarios.
Keep an auditable external structure such as:
migration-verification/
component-coverage-ledger.csv
focused-component-scenarios.json
runs/
iteration-1/scenarios/<id>/
iteration-2/scenarios/<id>/
evaluations/
iteration-1/*.json
iteration-2/*.json
summary.md
pr-comment.md
Preserve earlier iterations so reviewers can see which defects were found, what changed, and whether the corrective rerun removed them.