@flood-md/agent 0.2.10 → 0.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/DESIGN.md +8 -5
  2. package/README.md +1 -1
  3. package/SKILL.md +11 -0
  4. package/dist/catalog.json +1875 -295
  5. package/dist/materials/component-app-shell.md +47 -0
  6. package/dist/materials/component-app-top-bar.md +36 -0
  7. package/dist/materials/component-autocomplete.md +54 -0
  8. package/dist/materials/component-bulk-action-bar.md +52 -0
  9. package/dist/materials/component-button.md +1 -0
  10. package/dist/materials/component-card.md +2 -2
  11. package/dist/materials/component-collapsible.md +1 -0
  12. package/dist/materials/component-collection-toolbar.md +68 -0
  13. package/dist/materials/component-collection-view-switcher.md +49 -0
  14. package/dist/materials/component-combobox.md +10 -0
  15. package/dist/materials/component-command-palette.md +53 -0
  16. package/dist/materials/component-copy-button.md +1 -0
  17. package/dist/materials/component-data-table.md +14 -2
  18. package/dist/materials/component-date-picker.md +1 -0
  19. package/dist/materials/component-date-range-picker.md +1 -0
  20. package/dist/materials/component-date-time-picker.md +2 -0
  21. package/dist/materials/component-date-time-range-picker.md +4 -0
  22. package/dist/materials/component-drawer.md +1 -0
  23. package/dist/materials/component-figure.md +1 -1
  24. package/dist/materials/component-filter-condition.md +53 -0
  25. package/dist/materials/component-filter-group.md +55 -0
  26. package/dist/materials/component-icon-button.md +2 -0
  27. package/dist/materials/component-menubar.md +41 -0
  28. package/dist/materials/component-multi-select.md +10 -0
  29. package/dist/materials/component-navigation-group.md +51 -0
  30. package/dist/materials/component-navigation-item.md +59 -0
  31. package/dist/materials/component-navigation-tree.md +8 -0
  32. package/dist/materials/component-overflow-actions.md +47 -0
  33. package/dist/materials/component-page-header.md +40 -0
  34. package/dist/materials/component-popover.md +2 -1
  35. package/dist/materials/component-radio-card.md +2 -2
  36. package/dist/materials/component-segmented-control.md +6 -4
  37. package/dist/materials/component-sidebar.md +64 -0
  38. package/dist/materials/component-tabs.md +2 -0
  39. package/dist/materials/component-text.md +2 -2
  40. package/dist/materials/component-toggle.md +1 -0
  41. package/dist/materials/component-toolbar.md +4 -0
  42. package/dist/materials/component-tooltip.md +1 -1
  43. package/dist/materials/guide-agent-knowledge.md +13 -6
  44. package/dist/materials/guide-agents.md +8 -1
  45. package/dist/materials/guide-foundations.md +45 -2
  46. package/dist/materials/guide-installation.md +6 -6
  47. package/dist/materials/guide-interface-content.md +1 -1
  48. package/dist/materials/guide-introduction.md +4 -2
  49. package/dist/materials/guide-layout.md +39 -10
  50. package/dist/materials/guide-motion.md +69 -0
  51. package/dist/materials/guide-skills.md +9 -0
  52. package/dist/materials/recipe-collection-views.md +648 -0
  53. package/dist/materials/recipe-command-palette.md +31 -52
  54. package/dist/materials/recipe-filter-bar.md +12 -3
  55. package/dist/materials/recipe-grouped-form.md +5 -0
  56. package/dist/materials/recipe-navigation-workspace.md +222 -0
  57. package/dist/materials/recipe-record-management.md +296 -0
  58. package/dist/materials/recipe-record-workspace.md +207 -0
  59. package/dist/materials/recipe-settings-workspace.md +232 -0
  60. package/dist/materials/token-sys.color.context.base.action-disabled.json +41 -0
  61. package/dist/materials/token-sys.color.context.base.action-hover.json +41 -0
  62. package/dist/materials/token-sys.color.context.base.action-pressed.json +41 -0
  63. package/dist/materials/token-sys.color.context.base.action-rest.json +41 -0
  64. package/dist/materials/token-sys.color.context.base.avatar-background.json +41 -0
  65. package/dist/materials/token-sys.color.context.base.border-decorative.json +41 -0
  66. package/dist/materials/token-sys.color.context.base.divider-decorative.json +41 -0
  67. package/dist/materials/token-sys.color.context.base.field-background.json +41 -0
  68. package/dist/materials/token-sys.color.context.base.field-border.json +41 -0
  69. package/dist/materials/token-sys.color.context.base.field-disabled.json +41 -0
  70. package/dist/materials/token-sys.color.context.base.field-readonly.json +41 -0
  71. package/dist/materials/token-sys.color.context.base.indicator-track.json +41 -0
  72. package/dist/materials/token-sys.color.context.base.loading-placeholder.json +41 -0
  73. package/dist/materials/token-sys.color.context.base.muted-background.json +41 -0
  74. package/dist/materials/token-sys.color.context.base.on-surface-action-disabled.json +41 -0
  75. package/dist/materials/token-sys.color.context.base.on-surface-action-hover.json +41 -0
  76. package/dist/materials/token-sys.color.context.base.on-surface-action-pressed.json +41 -0
  77. package/dist/materials/token-sys.color.context.base.on-surface-action-rest.json +41 -0
  78. package/dist/materials/token-sys.color.context.base.selection-background.json +41 -0
  79. package/dist/materials/token-sys.color.context.base.supporting-background.json +41 -0
  80. package/dist/materials/token-sys.color.context.filled.action-disabled.json +41 -0
  81. package/dist/materials/token-sys.color.context.filled.action-hover.json +41 -0
  82. package/dist/materials/token-sys.color.context.filled.action-pressed.json +41 -0
  83. package/dist/materials/token-sys.color.context.filled.action-rest.json +41 -0
  84. package/dist/materials/token-sys.color.context.filled.avatar-background.json +41 -0
  85. package/dist/materials/token-sys.color.context.filled.border-decorative.json +41 -0
  86. package/dist/materials/token-sys.color.context.filled.divider-decorative.json +41 -0
  87. package/dist/materials/token-sys.color.context.filled.field-background.json +41 -0
  88. package/dist/materials/token-sys.color.context.filled.field-border.json +41 -0
  89. package/dist/materials/token-sys.color.context.filled.field-disabled.json +41 -0
  90. package/dist/materials/token-sys.color.context.filled.field-readonly.json +41 -0
  91. package/dist/materials/token-sys.color.context.filled.indicator-track.json +41 -0
  92. package/dist/materials/token-sys.color.context.filled.loading-placeholder.json +41 -0
  93. package/dist/materials/token-sys.color.context.filled.muted-background.json +41 -0
  94. package/dist/materials/token-sys.color.context.filled.selection-background.json +41 -0
  95. package/dist/materials/token-sys.color.context.filled.supporting-background.json +41 -0
  96. package/dist/materials/token-sys.color.field.readonly.json +41 -0
  97. package/dist/materials/token-sys.color.surface.avatar.json +41 -0
  98. package/dist/materials/token-sys.color.surface.current.json +41 -0
  99. package/dist/materials/token-sys.color.surface.muted.json +41 -0
  100. package/dist/materials/token-sys.color.surface.supporting.json +41 -0
  101. package/dist/materials/token-sys.motion.distance-panel.json +36 -0
  102. package/dist/materials/token-sys.motion.distance-small.json +36 -0
  103. package/dist/materials/token-sys.motion.duration-enter.json +36 -0
  104. package/dist/materials/token-sys.motion.duration-exit.json +36 -0
  105. package/dist/materials/token-sys.motion.duration-layer.json +36 -0
  106. package/dist/materials/token-sys.motion.duration-loop.json +36 -0
  107. package/dist/materials/token-sys.motion.duration-press.json +36 -0
  108. package/dist/materials/token-sys.motion.easing-enter.json +38 -0
  109. package/dist/materials/token-sys.motion.easing-exit.json +38 -0
  110. package/knowledge.json +115 -2
  111. package/manifest.json +11 -1
  112. package/package.json +9 -3
  113. package/references/component-families.md +146 -0
  114. package/references/composition.md +4 -4
  115. package/references/customization.md +14 -0
  116. package/references/flood-composition/SKILL.md +4 -0
  117. package/references/flood-data-display/SKILL.md +117 -0
  118. package/references/flood-feedback/SKILL.md +25 -0
  119. package/references/flood-forms/SKILL.md +31 -0
  120. package/references/flood-foundations/SKILL.md +36 -0
  121. package/references/flood-hierarchy/SKILL.md +23 -7
  122. package/references/flood-interface-content/SKILL.md +26 -5
  123. package/references/flood-motion/SKILL.md +44 -0
  124. package/references/flood-navigation/SKILL.md +195 -0
  125. package/references/flood-overlays/SKILL.md +35 -0
  126. package/references/flood-records/SKILL.md +42 -2
  127. package/references/flood-spacing/SKILL.md +38 -0
  128. package/references/flood-verification/SKILL.md +20 -0
  129. package/references/interface-content-examples.md +4 -0
  130. package/references/rendered-review.md +5 -0
  131. package/references/spacing.md +30 -0
  132. package/rules.json +94 -8
  133. package/workflows.json +28 -3
package/rules.json CHANGED
@@ -2,6 +2,15 @@
2
2
  "schemaVersion": 1,
3
3
  "scope": "Installed Flood React/Next.js projects",
4
4
  "rules": [
5
+ {
6
+ "id": "motion.state",
7
+ "when": "Adding or changing animation or transitions",
8
+ "for": ["designer", "developer", "agent"],
9
+ "requires": ["Installed motion tokens", "Component state and focus contract"],
10
+ "sourceOfTruth": "references/flood-motion/SKILL.md",
11
+ "guide": "references/flood-motion/SKILL.md",
12
+ "verify": ["Reduced motion", "Keyboard and pointer behavior", "Interrupted or reversed transitions"]
13
+ },
5
14
  {
6
15
  "id": "api.installed",
7
16
  "when": "Importing or changing Flood APIs",
@@ -102,6 +111,7 @@
102
111
  "verify": [
103
112
  "Resolved scoped semantic values",
104
113
  "Text and non-text contrast",
114
+ "For tinted themes, compare closed fields and open floating layers on canvas and filled surfaces, including the opaque fallback",
105
115
  "No parallel raw palette"
106
116
  ]
107
117
  },
@@ -140,7 +150,9 @@
140
150
  "guide": "references/verification.md",
141
151
  "verify": [
142
152
  "Commands and actual results recorded",
153
+ "For a new task screen, exercise the accepted result and applicable recovery path, including retained user state and focus",
143
154
  "Manual checks distinguished",
155
+ "For visual layout changes, compare settled renders and state the reason for the chosen treatment",
144
156
  "Untested behavior stated"
145
157
  ]
146
158
  },
@@ -179,6 +191,7 @@
179
191
  "guide": "references/spacing.md",
180
192
  "verify": [
181
193
  "Measure visible gaps and row pitch, including padding and minimum height",
194
+ "Compare two rendered treatments at the same viewport and name which preserves the intended grouping and visible emphasis",
182
195
  "Check wrapping and enlarged text",
183
196
  "Check fine/coarse pointers and nonoverlapping interactive targets",
184
197
  "Preserve keyboard focus and label activation",
@@ -223,6 +236,9 @@
223
236
  "guide": "references/flood-foundations/SKILL.md",
224
237
  "verify": [
225
238
  "Trace changed roles to their actual consumers",
239
+ "Compare actions, fields, choice/selection, supporting elements and indicators on canvas/default/raised/modal/floating materials",
240
+ "Nearest nested material resets context; transparent wrappers and picker bodies inherit it",
241
+ "Opaque/reduced-transparency and forced-colors paths retain readable content and reachable focus",
226
242
  "Distinguish decoration, necessary boundaries, selection and accent focus",
227
243
  "Check explicit icon sizing, heading semantics, long text and enlarged root geometry"
228
244
  ]
@@ -284,7 +300,8 @@
284
300
  "verify": [
285
301
  "Inspect actual FormData and field ownership",
286
302
  "Exercise accepted/refused controlled updates and incomplete drafts",
287
- "Defaults match representation; no defaultValue-as-update or invented save guarantee"
303
+ "Defaults match representation; no defaultValue-as-update or invented save guarantee",
304
+ "Verify submitted free text versus selected IDs and reject options belonging to an older manual query."
288
305
  ]
289
306
  },
290
307
  {
@@ -303,6 +320,7 @@
303
320
  "guide": "references/flood-forms/SKILL.md",
304
321
  "verify": [
305
322
  "Normal and prevented reset preserve documented ownership",
323
+ "A settings reset restores the last accepted values, including after a successful save",
306
324
  "Minute/second defaults match selected precision",
307
325
  "Advisory messages remain valid; native errors and disabled/read-only retain distinct semantics"
308
326
  ]
@@ -343,6 +361,7 @@
343
361
  "guide": "references/flood-overlays/SKILL.md",
344
362
  "verify": [
345
363
  "Check used sides, viewport edges, resize, long content and RTL",
364
+ "Select fits ordinary option labels even when the trigger is narrow, and stays within the viewport with long labels",
346
365
  "No drawer gap caused by page scrollbar gutter",
347
366
  "Header, footer and padding leave a useful body reading area at enlarged narrow sizes; fitting rectangles alone is insufficient",
348
367
  "Popup remains distinguishable with no rail-covered or clipped essential content"
@@ -365,7 +384,21 @@
365
384
  "verify": [
366
385
  "Native link behavior and current destination preserved",
367
386
  "Selection, focus and expansion remain distinct",
368
- "Long labels and final sidebar items remain usable in actual supported orientations"
387
+ "Long labels and final sidebar items remain usable in actual supported orientations",
388
+ "Check sidebar width in both directions and with reduced motion; omit visible group titles that repeat context",
389
+ "Compare top header anchors across short/long routes and check focus when an action moves into overflow.",
390
+ "Global module, contextual page, disclosure and context visibility have separate owners",
391
+ "Modifier clicks preserve the current tab; location versus page current semantics are accurate",
392
+ "Validate complete route identity; invalid extra segments cannot produce unnamed destinations",
393
+ "Scoped filters/search do not leak between modules; disappearing focus has a stable fallback after row/pane/dialog removal",
394
+ "Collapsed hints appear on hover and keyboard focus without replacing native links or competing with an open flyout",
395
+ "Disclosure glyphs remain subordinate to destination icons while hit areas and shared trailing centers remain intact",
396
+ "Pane toggle artwork, accessible name and aria-expanded reflect the accepted visible state",
397
+ "Scrollbars use a deliberate edge budget without permanent unused document strips or shifting navigation tracks",
398
+ "NavigationItem is the shared row owner for NavigationList and NavigationTree; split selection spans both link and disclosure",
399
+ "Disclosure-only rows have one full-row button; link-plus-disclosure keeps separate native targets and independent accepted state",
400
+ "Configurable group headings, separators and collapse preserve accessible names and reachable compact destinations",
401
+ "Measure actual account/profile trigger centers with header and body in every compact profile, not only decorative glyph centers"
369
402
  ]
370
403
  },
371
404
  {
@@ -385,7 +418,8 @@
385
418
  "verify": [
386
419
  "Caption, headers and named-value relationships preserved",
387
420
  "Row actions remain independent named controls",
388
- "File metadata/status/progress reuse their existing primitives"
421
+ "File metadata/status/progress reuse their existing primitives",
422
+ "Test one supplied server page without local slicing/sorting; declare and validate page/dataset selection scope."
389
423
  ]
390
424
  },
391
425
  {
@@ -425,7 +459,8 @@
425
459
  "verify": [
426
460
  "Pending/success/error/cancel/local state is truthful",
427
461
  "Unknown progress never fabricates a percentage",
428
- "Empty content explains its cause and appropriate next action"
462
+ "Empty content explains its cause and appropriate next action",
463
+ "Distinguish missing, malformed and unreadable persistence; retain data/draft after refused writes and require explicit replacement."
429
464
  ]
430
465
  },
431
466
  {
@@ -545,10 +580,12 @@
545
580
  "verify": [
546
581
  "Changed copy has a necessary role or is removed",
547
582
  "Titles, subtitles and hints do not repeat obvious context",
583
+ "Compare copy across the shell, list and opened record; keep a repeated fact only when it changes scope, action or comprehension in its location",
548
584
  "Accessible names, needed constraints and recovery remain available",
549
585
  "Each supporting sentence serves a specific decision or recovery need in the current state, not a hypothetical future risk",
550
586
  "No standing implementation/storage caption merely because the data has a retention limitation",
551
- "Prototype provenance stays in README/test handoff unless it changes a current record/choice/action; no automatic permanent environment badge"
587
+ "Prototype provenance stays in README/test handoff unless it changes a current record/choice/action; no automatic permanent environment badge",
588
+ "Review canonical previews and copied recipes: optional descriptions are absent unless they add a real distinction."
552
589
  ]
553
590
  },
554
591
  {
@@ -606,7 +643,7 @@
606
643
  "guide": "references/flood-hierarchy/SKILL.md",
607
644
  "verify": [
608
645
  "Task, group and field roles are distinguishable without redundant headings",
609
- "Label is closer to its control than independent fields/groups",
646
+ "Labels and controls read as groups after accounting for line height, fill and adjacent boundaries",
610
647
  "Related rows share measured control edges; width exceptions have a content reason",
611
648
  "Dialog title/body inset is owned once; actions remain reachable at enlarged text",
612
649
  "Calendar content remains readable inside viewport collision limits"
@@ -632,7 +669,10 @@
632
669
  "Field to decision and list/detail placement choices recorded outside UI",
633
670
  "Identity and summary remain readable with long and missing metadata",
634
671
  "Stable scan positions or real named comparison columns, not drifting pseudo-columns",
635
- "List, details, first-use and filtered empty states reviewed separately"
672
+ "List, details, first-use and filtered empty states reviewed separately",
673
+ "A short mutually exclusive filter for one table uses a selection control; verify keyboard selection, surviving search/sort and focused control",
674
+ "Record edits preserve applied filters and list position; focus returns to the opener or a surviving list control",
675
+ "For a row opening in-place details, compare title-to-metadata rhythm and the shared table edge; exercise row activation, keyboard entry and independent nested controls"
636
676
  ]
637
677
  },
638
678
  {
@@ -653,7 +693,53 @@
653
693
  "Category/state/urgency distinguished with names where needed, not color alone",
654
694
  "Essential triage/comparison fields retained; optional attributes do not compete equally",
655
695
  "Dates identify useful events with suitable precision; formatted equality is not event equality",
656
- "Counts and supporting text add current value; necessary announcements remain"
696
+ "Compare filter and footer count scope before keeping both; show missing evidence where it changes a decision",
697
+ "Necessary announcements remain"
698
+ ]
699
+ },
700
+ {
701
+ "id": "composition.family",
702
+ "when": "Adding a reusable component or changing its visual contract",
703
+ "for": [
704
+ "designer",
705
+ "developer",
706
+ "agent",
707
+ "reviewer"
708
+ ],
709
+ "requires": [
710
+ "Closest existing component contracts",
711
+ "Actual host interaction requirements"
712
+ ],
713
+ "sourceOfTruth": "Matching source/installed declarations and semantic tokens",
714
+ "guide": "references/component-families.md",
715
+ "verify": [
716
+ "Closest siblings rendered at the same size, surface and root text scale",
717
+ "Shape, nested inset and content-box overflow budget checked together",
718
+ "Read-only editing restrictions kept separate from focus and disabled semantics",
719
+ "Another consumer checked after a shared primitive correction"
720
+ ]
721
+ },
722
+ {
723
+ "id": "spacing.shared-tracks",
724
+ "when": "Composing repeated navigation or record rows with headers, groups or fixed footers",
725
+ "for": [
726
+ "designer",
727
+ "developer",
728
+ "agent",
729
+ "reviewer"
730
+ ],
731
+ "requires": [
732
+ "Rendered role anatomy",
733
+ "Declared leading/text/trailing tracks and nested-indent rule"
734
+ ],
735
+ "sourceOfTruth": "Shared rendered content tracks, including scroll gutter budget",
736
+ "guide": "references/flood-spacing/SKILL.md",
737
+ "verify": [
738
+ "Measure glyph centers and text starts across header, peer rows, groups and footer",
739
+ "Compare badge and disclosure centers; reserve missing peer icon slots",
740
+ "Check tracks with and without overflow, nested rows, RTL and enlarged text",
741
+ "Repair the owning component/shared grid rather than applying per-item offsets",
742
+ "Compare outer start/end clearance in expanded and compact states; internally aligned content must not drift to one edge"
657
743
  ]
658
744
  }
659
745
  ],
package/workflows.json CHANGED
@@ -2,6 +2,11 @@
2
2
  "schemaVersion": 1,
3
3
  "scope": "Task routing for the existing Flood dark base; applicability is not test evidence",
4
4
  "workflows": [
5
+ {
6
+ "id": "motion",
7
+ "guide": "references/flood-motion/SKILL.md",
8
+ "all": true
9
+ },
5
10
  {
6
11
  "id": "composition",
7
12
  "guide": "references/flood-composition/SKILL.md",
@@ -23,6 +28,7 @@
23
28
  ],
24
29
  "components": [
25
30
  "Card",
31
+ "PageHeader",
26
32
  "Section",
27
33
  "EmptyState"
28
34
  ]
@@ -52,7 +58,9 @@
52
58
  "Button",
53
59
  "Label",
54
60
  "Fieldset",
55
- "ErrorSummary"
61
+ "ErrorSummary",
62
+ "CollectionToolbar",
63
+ "CollectionViewSwitcher"
56
64
  ]
57
65
  },
58
66
  {
@@ -65,12 +73,17 @@
65
73
  "Select",
66
74
  "Combobox",
67
75
  "MultiSelect",
76
+ "FilterCondition",
77
+ "FilterGroup",
68
78
  "TreeSelect",
69
79
  "DatePicker",
70
80
  "DateRangePicker",
71
81
  "TimePicker",
72
82
  "DateTimePicker",
73
- "DateTimeRangePicker"
83
+ "DateTimeRangePicker",
84
+ "CollectionToolbar",
85
+ "CollectionViewSwitcher",
86
+ "Sidebar"
74
87
  ]
75
88
  },
76
89
  {
@@ -88,7 +101,15 @@
88
101
  "ToggleGroup",
89
102
  "SegmentedControl",
90
103
  "Accordion",
91
- "Collapsible"
104
+ "Collapsible",
105
+ "CollectionViewSwitcher",
106
+ "NavigationItem",
107
+ "NavigationGroup",
108
+ "NavigationTree",
109
+ "NavigationList",
110
+ "AppShell",
111
+ "AppTopBar",
112
+ "Sidebar"
92
113
  ]
93
114
  },
94
115
  {
@@ -98,6 +119,8 @@
98
119
  "content"
99
120
  ],
100
121
  "components": [
122
+ "FilterCondition",
123
+ "FilterGroup",
101
124
  "UploadItem",
102
125
  "UploadList",
103
126
  "EmptyState",
@@ -112,6 +135,8 @@
112
135
  "DataListItem",
113
136
  "Table",
114
137
  "DataTable",
138
+ "SegmentedControl",
139
+ "CollectionToolbar",
115
140
  "DescriptionList",
116
141
  "Card",
117
142
  "Section",