@flood-md/agent 0.2.9 → 0.2.10

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 (374) hide show
  1. package/DESIGN.md +26 -4
  2. package/README.md +35 -4
  3. package/SKILL.md +31 -0
  4. package/dist/catalog.json +7136 -0
  5. package/dist/materials/component-accordion.md +42 -0
  6. package/dist/materials/component-alert-dialog.md +46 -0
  7. package/dist/materials/component-alert.md +41 -0
  8. package/dist/materials/component-aspect-ratio.md +36 -0
  9. package/dist/materials/component-avatar-group.md +39 -0
  10. package/dist/materials/component-avatar.md +40 -0
  11. package/dist/materials/component-badge.md +37 -0
  12. package/dist/materials/component-blockquote.md +35 -0
  13. package/dist/materials/component-breadcrumb.md +36 -0
  14. package/dist/materials/component-button-group.md +39 -0
  15. package/dist/materials/component-button.md +43 -0
  16. package/dist/materials/component-calendar.md +59 -0
  17. package/dist/materials/component-card.md +46 -0
  18. package/dist/materials/component-center.md +39 -0
  19. package/dist/materials/component-character-count.md +42 -0
  20. package/dist/materials/component-check-card.md +39 -0
  21. package/dist/materials/component-checkbox-group.md +48 -0
  22. package/dist/materials/component-checkbox.md +37 -0
  23. package/dist/materials/component-code-snippet.md +37 -0
  24. package/dist/materials/component-collapsible.md +40 -0
  25. package/dist/materials/component-color-picker.md +49 -0
  26. package/dist/materials/component-color-swatch.md +35 -0
  27. package/dist/materials/component-combobox.md +50 -0
  28. package/dist/materials/component-command-list.md +48 -0
  29. package/dist/materials/component-container.md +36 -0
  30. package/dist/materials/component-context-menu.md +43 -0
  31. package/dist/materials/component-copy-button.md +42 -0
  32. package/dist/materials/component-data-list-item.md +40 -0
  33. package/dist/materials/component-data-list.md +38 -0
  34. package/dist/materials/component-data-table.md +58 -0
  35. package/dist/materials/component-date-field.md +57 -0
  36. package/dist/materials/component-date-picker.md +66 -0
  37. package/dist/materials/component-date-range-field.md +62 -0
  38. package/dist/materials/component-date-range-picker.md +72 -0
  39. package/dist/materials/component-date-time-picker.md +60 -0
  40. package/dist/materials/component-date-time-range-picker.md +66 -0
  41. package/dist/materials/component-description-list.md +42 -0
  42. package/dist/materials/component-dialog.md +45 -0
  43. package/dist/materials/component-divider.md +37 -0
  44. package/dist/materials/component-drawer.md +50 -0
  45. package/dist/materials/component-dropzone.md +45 -0
  46. package/dist/materials/component-editable.md +57 -0
  47. package/dist/materials/component-empty-state.md +41 -0
  48. package/dist/materials/component-error-summary.md +40 -0
  49. package/dist/materials/component-field.md +46 -0
  50. package/dist/materials/component-fieldset.md +46 -0
  51. package/dist/materials/component-figure.md +36 -0
  52. package/dist/materials/component-file-input.md +45 -0
  53. package/dist/materials/component-file-item.md +48 -0
  54. package/dist/materials/component-file-list.md +39 -0
  55. package/dist/materials/component-file-meta.md +36 -0
  56. package/dist/materials/component-flood-root.md +33 -0
  57. package/dist/materials/component-grid.md +38 -0
  58. package/dist/materials/component-heading.md +38 -0
  59. package/dist/materials/component-hover-card.md +48 -0
  60. package/dist/materials/component-icon-button.md +41 -0
  61. package/dist/materials/component-icon-slot.md +37 -0
  62. package/dist/materials/component-image-preview.md +50 -0
  63. package/dist/materials/component-image.md +37 -0
  64. package/dist/materials/component-inline-code.md +36 -0
  65. package/dist/materials/component-inline.md +39 -0
  66. package/dist/materials/component-input-group.md +43 -0
  67. package/dist/materials/component-input.md +39 -0
  68. package/dist/materials/component-kbd.md +34 -0
  69. package/dist/materials/component-label.md +37 -0
  70. package/dist/materials/component-link.md +35 -0
  71. package/dist/materials/component-list-box.md +57 -0
  72. package/dist/materials/component-list.md +40 -0
  73. package/dist/materials/component-menu.md +54 -0
  74. package/dist/materials/component-meter.md +43 -0
  75. package/dist/materials/component-metric.md +39 -0
  76. package/dist/materials/component-multi-select.md +52 -0
  77. package/dist/materials/component-navigation-list.md +38 -0
  78. package/dist/materials/component-navigation-tree.md +43 -0
  79. package/dist/materials/component-number-input.md +47 -0
  80. package/dist/materials/component-pagination.md +44 -0
  81. package/dist/materials/component-password-input.md +43 -0
  82. package/dist/materials/component-pin-input.md +45 -0
  83. package/dist/materials/component-popover.md +47 -0
  84. package/dist/materials/component-progress.md +42 -0
  85. package/dist/materials/component-radio-card.md +43 -0
  86. package/dist/materials/component-radio-group.md +49 -0
  87. package/dist/materials/component-radio.md +39 -0
  88. package/dist/materials/component-range-calendar.md +58 -0
  89. package/dist/materials/component-rating.md +46 -0
  90. package/dist/materials/component-resizable-panels.md +48 -0
  91. package/dist/materials/component-scroll-area.md +42 -0
  92. package/dist/materials/component-search-input.md +40 -0
  93. package/dist/materials/component-section.md +42 -0
  94. package/dist/materials/component-segmented-control.md +51 -0
  95. package/dist/materials/component-select.md +45 -0
  96. package/dist/materials/component-skeleton.md +42 -0
  97. package/dist/materials/component-skip-link.md +37 -0
  98. package/dist/materials/component-slider.md +51 -0
  99. package/dist/materials/component-spinner.md +37 -0
  100. package/dist/materials/component-split.md +40 -0
  101. package/dist/materials/component-stack.md +37 -0
  102. package/dist/materials/component-status-indicator.md +38 -0
  103. package/dist/materials/component-steps.md +40 -0
  104. package/dist/materials/component-surface.md +37 -0
  105. package/dist/materials/component-switch.md +35 -0
  106. package/dist/materials/component-table.md +46 -0
  107. package/dist/materials/component-tabs.md +43 -0
  108. package/dist/materials/component-tag-input.md +46 -0
  109. package/dist/materials/component-tag.md +40 -0
  110. package/dist/materials/component-text.md +39 -0
  111. package/dist/materials/component-textarea.md +38 -0
  112. package/dist/materials/component-time-field.md +56 -0
  113. package/dist/materials/component-time-picker.md +60 -0
  114. package/dist/materials/component-timeline.md +38 -0
  115. package/dist/materials/component-toast-region.md +42 -0
  116. package/dist/materials/component-toggle-group.md +44 -0
  117. package/dist/materials/component-toggle.md +39 -0
  118. package/dist/materials/component-toolbar.md +42 -0
  119. package/dist/materials/component-tooltip.md +40 -0
  120. package/dist/materials/component-tree-select.md +56 -0
  121. package/dist/materials/component-tree.md +52 -0
  122. package/dist/materials/component-upload-item.md +52 -0
  123. package/dist/materials/component-upload-list.md +40 -0
  124. package/dist/materials/component-visually-hidden.md +37 -0
  125. package/dist/materials/guide-agent-knowledge.md +88 -0
  126. package/dist/materials/guide-agents.md +96 -0
  127. package/dist/materials/guide-faq.md +84 -0
  128. package/dist/materials/guide-foundations.md +232 -0
  129. package/dist/materials/guide-installation.md +79 -0
  130. package/dist/materials/guide-interface-content.md +76 -0
  131. package/dist/materials/guide-introduction.md +40 -0
  132. package/dist/materials/guide-layout.md +193 -0
  133. package/dist/materials/guide-privacy.md +23 -0
  134. package/dist/materials/guide-project-ui.md +127 -0
  135. package/dist/materials/guide-skills.md +108 -0
  136. package/dist/materials/guide-theming.md +73 -0
  137. package/dist/materials/recipe-command-palette.md +66 -0
  138. package/dist/materials/recipe-filter-bar.md +59 -0
  139. package/dist/materials/recipe-form-submission.md +39 -0
  140. package/dist/materials/recipe-grouped-form.md +66 -0
  141. package/dist/materials/recipe-select-all.md +31 -0
  142. package/dist/materials/recipe-split-button.md +26 -0
  143. package/dist/materials/recipe-table-bulk-actions.md +88 -0
  144. package/dist/materials/recipe-workspace-review.md +134 -0
  145. package/dist/materials/token-sys.color.accent.content.json +41 -0
  146. package/dist/materials/token-sys.color.action.danger.content.json +42 -0
  147. package/dist/materials/token-sys.color.action.ghost.content.json +41 -0
  148. package/dist/materials/token-sys.color.action.ghost.disabled-content.json +41 -0
  149. package/dist/materials/token-sys.color.action.ghost.disabled.json +41 -0
  150. package/dist/materials/token-sys.color.action.ghost.hover.json +41 -0
  151. package/dist/materials/token-sys.color.action.ghost.pressed.json +41 -0
  152. package/dist/materials/token-sys.color.action.ghost.rest.json +41 -0
  153. package/dist/materials/token-sys.color.action.on-surface.content.json +39 -0
  154. package/dist/materials/token-sys.color.action.on-surface.disabled-content.json +39 -0
  155. package/dist/materials/token-sys.color.action.on-surface.disabled.json +39 -0
  156. package/dist/materials/token-sys.color.action.on-surface.hover.json +39 -0
  157. package/dist/materials/token-sys.color.action.on-surface.pressed.json +39 -0
  158. package/dist/materials/token-sys.color.action.on-surface.rest.json +39 -0
  159. package/dist/materials/token-sys.color.action.primary.content.json +39 -0
  160. package/dist/materials/token-sys.color.action.primary.disabled-content.json +39 -0
  161. package/dist/materials/token-sys.color.action.primary.disabled.json +39 -0
  162. package/dist/materials/token-sys.color.action.primary.hover.json +39 -0
  163. package/dist/materials/token-sys.color.action.primary.pressed.json +39 -0
  164. package/dist/materials/token-sys.color.action.primary.rest.json +39 -0
  165. package/dist/materials/token-sys.color.action.subtle.content.json +39 -0
  166. package/dist/materials/token-sys.color.action.subtle.disabled-content.json +39 -0
  167. package/dist/materials/token-sys.color.action.subtle.disabled.json +39 -0
  168. package/dist/materials/token-sys.color.action.subtle.hover.json +39 -0
  169. package/dist/materials/token-sys.color.action.subtle.pressed.json +39 -0
  170. package/dist/materials/token-sys.color.action.subtle.rest.json +39 -0
  171. package/dist/materials/token-sys.color.border.decorative.json +42 -0
  172. package/dist/materials/token-sys.color.border.default.json +39 -0
  173. package/dist/materials/token-sys.color.border.floating.json +39 -0
  174. package/dist/materials/token-sys.color.border.strong.json +39 -0
  175. package/dist/materials/token-sys.color.content.default.json +41 -0
  176. package/dist/materials/token-sys.color.content.helper.json +39 -0
  177. package/dist/materials/token-sys.color.content.subtle.json +43 -0
  178. package/dist/materials/token-sys.color.divider.decorative.json +41 -0
  179. package/dist/materials/token-sys.color.feedback.error.json +39 -0
  180. package/dist/materials/token-sys.color.feedback.info.json +39 -0
  181. package/dist/materials/token-sys.color.feedback.success.json +39 -0
  182. package/dist/materials/token-sys.color.feedback.warning.json +39 -0
  183. package/dist/materials/token-sys.color.field.background.json +39 -0
  184. package/dist/materials/token-sys.color.field.border.json +39 -0
  185. package/dist/materials/token-sys.color.field.boundary.json +39 -0
  186. package/dist/materials/token-sys.color.field.content.json +39 -0
  187. package/dist/materials/token-sys.color.field.disabled-content.json +39 -0
  188. package/dist/materials/token-sys.color.field.disabled.json +39 -0
  189. package/dist/materials/token-sys.color.field.placeholder.json +39 -0
  190. package/dist/materials/token-sys.color.focus.ring.json +39 -0
  191. package/dist/materials/token-sys.color.indicator.accent.json +39 -0
  192. package/dist/materials/token-sys.color.indicator.fill.json +39 -0
  193. package/dist/materials/token-sys.color.indicator.track.json +39 -0
  194. package/dist/materials/token-sys.color.loading.placeholder.json +42 -0
  195. package/dist/materials/token-sys.color.scrollbar.thumb-hover.json +39 -0
  196. package/dist/materials/token-sys.color.scrollbar.thumb.json +39 -0
  197. package/dist/materials/token-sys.color.selection.background.json +39 -0
  198. package/dist/materials/token-sys.color.selection.content.json +39 -0
  199. package/dist/materials/token-sys.color.selection.floating.json +39 -0
  200. package/dist/materials/token-sys.color.shadow.floating.json +39 -0
  201. package/dist/materials/token-sys.color.surface.canvas.json +39 -0
  202. package/dist/materials/token-sys.color.surface.default.json +39 -0
  203. package/dist/materials/token-sys.color.surface.floating-translucent.json +39 -0
  204. package/dist/materials/token-sys.color.surface.floating.json +39 -0
  205. package/dist/materials/token-sys.color.surface.overlay.json +39 -0
  206. package/dist/materials/token-sys.color.surface.raised.json +39 -0
  207. package/dist/materials/token-sys.control.2xl.gap.json +34 -0
  208. package/dist/materials/token-sys.control.2xl.height.json +34 -0
  209. package/dist/materials/token-sys.control.2xl.icon-size.json +34 -0
  210. package/dist/materials/token-sys.control.2xl.line-height.json +31 -0
  211. package/dist/materials/token-sys.control.2xl.padding-inline.json +34 -0
  212. package/dist/materials/token-sys.control.2xl.text-size.json +34 -0
  213. package/dist/materials/token-sys.control.2xs.gap.json +34 -0
  214. package/dist/materials/token-sys.control.2xs.height.json +34 -0
  215. package/dist/materials/token-sys.control.2xs.icon-size.json +34 -0
  216. package/dist/materials/token-sys.control.2xs.line-height.json +31 -0
  217. package/dist/materials/token-sys.control.2xs.padding-inline.json +34 -0
  218. package/dist/materials/token-sys.control.2xs.text-size.json +34 -0
  219. package/dist/materials/token-sys.control.lg.gap.json +34 -0
  220. package/dist/materials/token-sys.control.lg.height.json +34 -0
  221. package/dist/materials/token-sys.control.lg.icon-size.json +34 -0
  222. package/dist/materials/token-sys.control.lg.line-height.json +31 -0
  223. package/dist/materials/token-sys.control.lg.padding-inline.json +34 -0
  224. package/dist/materials/token-sys.control.lg.text-size.json +34 -0
  225. package/dist/materials/token-sys.control.md.gap.json +34 -0
  226. package/dist/materials/token-sys.control.md.height.json +34 -0
  227. package/dist/materials/token-sys.control.md.icon-size.json +34 -0
  228. package/dist/materials/token-sys.control.md.line-height.json +31 -0
  229. package/dist/materials/token-sys.control.md.padding-inline.json +34 -0
  230. package/dist/materials/token-sys.control.md.text-size.json +34 -0
  231. package/dist/materials/token-sys.control.sm.gap.json +34 -0
  232. package/dist/materials/token-sys.control.sm.height.json +34 -0
  233. package/dist/materials/token-sys.control.sm.icon-size.json +34 -0
  234. package/dist/materials/token-sys.control.sm.line-height.json +31 -0
  235. package/dist/materials/token-sys.control.sm.padding-inline.json +34 -0
  236. package/dist/materials/token-sys.control.sm.text-size.json +34 -0
  237. package/dist/materials/token-sys.control.xl.gap.json +34 -0
  238. package/dist/materials/token-sys.control.xl.height.json +34 -0
  239. package/dist/materials/token-sys.control.xl.icon-size.json +34 -0
  240. package/dist/materials/token-sys.control.xl.line-height.json +31 -0
  241. package/dist/materials/token-sys.control.xl.padding-inline.json +34 -0
  242. package/dist/materials/token-sys.control.xl.text-size.json +34 -0
  243. package/dist/materials/token-sys.control.xs.gap.json +34 -0
  244. package/dist/materials/token-sys.control.xs.height.json +34 -0
  245. package/dist/materials/token-sys.control.xs.icon-size.json +34 -0
  246. package/dist/materials/token-sys.control.xs.line-height.json +31 -0
  247. package/dist/materials/token-sys.control.xs.padding-inline.json +34 -0
  248. package/dist/materials/token-sys.control.xs.text-size.json +34 -0
  249. package/dist/materials/token-sys.effect.floating.blur.json +34 -0
  250. package/dist/materials/token-sys.effect.floating.saturation.json +31 -0
  251. package/dist/materials/token-sys.effect.floating.shadow-blur.json +34 -0
  252. package/dist/materials/token-sys.effect.floating.shadow-offset.json +34 -0
  253. package/dist/materials/token-sys.focus.offset.json +34 -0
  254. package/dist/materials/token-sys.focus.width.json +34 -0
  255. package/dist/materials/token-sys.font.mono.json +36 -0
  256. package/dist/materials/token-sys.font.sans.json +35 -0
  257. package/dist/materials/token-sys.layer.base.json +31 -0
  258. package/dist/materials/token-sys.layer.modal.json +31 -0
  259. package/dist/materials/token-sys.layer.popover.json +31 -0
  260. package/dist/materials/token-sys.layer.sticky.json +31 -0
  261. package/dist/materials/token-sys.layer.toast.json +31 -0
  262. package/dist/materials/token-sys.motion.duration-fast.json +34 -0
  263. package/dist/materials/token-sys.motion.duration-normal.json +34 -0
  264. package/dist/materials/token-sys.motion.duration-reduced.json +34 -0
  265. package/dist/materials/token-sys.motion.easing.json +36 -0
  266. package/dist/materials/token-sys.radius.action.json +34 -0
  267. package/dist/materials/token-sys.radius.block.json +34 -0
  268. package/dist/materials/token-sys.radius.field.json +34 -0
  269. package/dist/materials/token-sys.radius.indicator.json +34 -0
  270. package/dist/materials/token-sys.radius.surface.json +34 -0
  271. package/dist/materials/token-sys.scrollbar.inset.json +34 -0
  272. package/dist/materials/token-sys.scrollbar.min-thumb.json +34 -0
  273. package/dist/materials/token-sys.scrollbar.size.json +34 -0
  274. package/dist/materials/token-sys.size.choice.json +34 -0
  275. package/dist/materials/token-sys.size.container.lg.json +37 -0
  276. package/dist/materials/token-sys.size.container.md.json +37 -0
  277. package/dist/materials/token-sys.size.container.sm.json +37 -0
  278. package/dist/materials/token-sys.size.grid.min-item.json +37 -0
  279. package/dist/materials/token-sys.size.indicator.lg.json +34 -0
  280. package/dist/materials/token-sys.size.indicator.md.json +34 -0
  281. package/dist/materials/token-sys.size.indicator.sm.json +34 -0
  282. package/dist/materials/token-sys.size.keycap.lg.json +34 -0
  283. package/dist/materials/token-sys.size.keycap.md.json +34 -0
  284. package/dist/materials/token-sys.size.keycap.sm.json +34 -0
  285. package/dist/materials/token-sys.size.switch-height.json +34 -0
  286. package/dist/materials/token-sys.size.switch-thumb.json +34 -0
  287. package/dist/materials/token-sys.size.switch-width.json +34 -0
  288. package/dist/materials/token-sys.size.touch.json +34 -0
  289. package/dist/materials/token-sys.space.0.json +34 -0
  290. package/dist/materials/token-sys.space.1.json +34 -0
  291. package/dist/materials/token-sys.space.12.json +34 -0
  292. package/dist/materials/token-sys.space.2.json +34 -0
  293. package/dist/materials/token-sys.space.3.json +34 -0
  294. package/dist/materials/token-sys.space.4.json +34 -0
  295. package/dist/materials/token-sys.space.6.json +34 -0
  296. package/dist/materials/token-sys.space.8.json +34 -0
  297. package/dist/materials/token-sys.stroke.width.json +34 -0
  298. package/dist/materials/token-sys.type.body.line-height.json +31 -0
  299. package/dist/materials/token-sys.type.body.size.json +34 -0
  300. package/dist/materials/token-sys.type.body.tracking.json +34 -0
  301. package/dist/materials/token-sys.type.body.weight.json +31 -0
  302. package/dist/materials/token-sys.type.compact.line-height.json +31 -0
  303. package/dist/materials/token-sys.type.compact.size.json +34 -0
  304. package/dist/materials/token-sys.type.compact.tracking.json +34 -0
  305. package/dist/materials/token-sys.type.compact.weight.json +31 -0
  306. package/dist/materials/token-sys.type.control.line-height.json +31 -0
  307. package/dist/materials/token-sys.type.control.size.json +34 -0
  308. package/dist/materials/token-sys.type.control.tracking.json +34 -0
  309. package/dist/materials/token-sys.type.control.weight.json +31 -0
  310. package/dist/materials/token-sys.type.dialog-title.line-height.json +33 -0
  311. package/dist/materials/token-sys.type.dialog-title.size.json +36 -0
  312. package/dist/materials/token-sys.type.dialog-title.tracking.json +36 -0
  313. package/dist/materials/token-sys.type.dialog-title.weight.json +33 -0
  314. package/dist/materials/token-sys.type.display.line-height.json +31 -0
  315. package/dist/materials/token-sys.type.display.size.json +34 -0
  316. package/dist/materials/token-sys.type.display.tracking.json +34 -0
  317. package/dist/materials/token-sys.type.display.weight.json +31 -0
  318. package/dist/materials/token-sys.type.field-label.line-height.json +33 -0
  319. package/dist/materials/token-sys.type.field-label.size.json +36 -0
  320. package/dist/materials/token-sys.type.field-label.tracking.json +36 -0
  321. package/dist/materials/token-sys.type.field-label.weight.json +33 -0
  322. package/dist/materials/token-sys.type.group-title.line-height.json +33 -0
  323. package/dist/materials/token-sys.type.group-title.size.json +36 -0
  324. package/dist/materials/token-sys.type.group-title.tracking.json +36 -0
  325. package/dist/materials/token-sys.type.group-title.weight.json +33 -0
  326. package/dist/materials/token-sys.type.helper.line-height.json +31 -0
  327. package/dist/materials/token-sys.type.helper.size.json +34 -0
  328. package/dist/materials/token-sys.type.helper.tracking.json +34 -0
  329. package/dist/materials/token-sys.type.helper.weight.json +31 -0
  330. package/dist/materials/token-sys.type.label.line-height.json +31 -0
  331. package/dist/materials/token-sys.type.label.size.json +34 -0
  332. package/dist/materials/token-sys.type.label.tracking.json +34 -0
  333. package/dist/materials/token-sys.type.label.weight.json +31 -0
  334. package/dist/materials/token-sys.type.large.line-height.json +31 -0
  335. package/dist/materials/token-sys.type.large.size.json +34 -0
  336. package/dist/materials/token-sys.type.large.tracking.json +34 -0
  337. package/dist/materials/token-sys.type.large.weight.json +31 -0
  338. package/dist/materials/token-sys.type.lead.line-height.json +31 -0
  339. package/dist/materials/token-sys.type.lead.size.json +34 -0
  340. package/dist/materials/token-sys.type.lead.tracking.json +34 -0
  341. package/dist/materials/token-sys.type.lead.weight.json +31 -0
  342. package/dist/materials/token-sys.type.page.line-height.json +31 -0
  343. package/dist/materials/token-sys.type.page.size.json +34 -0
  344. package/dist/materials/token-sys.type.page.tracking.json +34 -0
  345. package/dist/materials/token-sys.type.page.weight.json +31 -0
  346. package/dist/materials/token-sys.type.section.line-height.json +31 -0
  347. package/dist/materials/token-sys.type.section.size.json +34 -0
  348. package/dist/materials/token-sys.type.section.tracking.json +34 -0
  349. package/dist/materials/token-sys.type.section.weight.json +31 -0
  350. package/knowledge.json +409 -0
  351. package/lib/index.d.ts +33 -0
  352. package/lib/index.mjs +144 -0
  353. package/lib/inspect.d.ts +12 -0
  354. package/lib/inspect.mjs +187 -0
  355. package/manifest.json +41 -1
  356. package/package.json +7 -1
  357. package/references/flood-composition/SKILL.md +30 -0
  358. package/references/flood-data-display/SKILL.md +32 -0
  359. package/references/flood-feedback/SKILL.md +24 -3
  360. package/references/flood-forms/SKILL.md +51 -2
  361. package/references/flood-foundations/SKILL.md +7 -0
  362. package/references/flood-hierarchy/SKILL.md +87 -0
  363. package/references/flood-interface-content/SKILL.md +142 -0
  364. package/references/flood-overlays/SKILL.md +7 -0
  365. package/references/flood-records/SKILL.md +108 -0
  366. package/references/flood-spacing/SKILL.md +16 -0
  367. package/references/flood-verification/SKILL.md +52 -0
  368. package/references/interface-content-examples.md +47 -0
  369. package/references/knowledge.md +49 -0
  370. package/references/record-decisions.md +25 -0
  371. package/references/rendered-review.md +97 -0
  372. package/references/routing.md +1 -0
  373. package/rules.json +152 -2
  374. package/workflows.json +146 -10
@@ -11,6 +11,12 @@ ownership. Read the matching DateField/DateTimePicker component guide for its
11
11
  specific civil-value and draft contract; [accessibility](../accessibility.md)
12
12
  documents associations and feedback.
13
13
 
14
+ For an ordinary business date field, prefer DatePicker so users can both type and
15
+ choose visually. DateField is the lower-level segmented editor without a popup;
16
+ choose it for an explicit entry-only interaction or inside a composition that
17
+ already supplies Calendar. Do not silently omit the calendar just because the
18
+ brief did not enumerate every affordance of choosing a date.
19
+
14
20
  ## Assign ownership
15
21
 
16
22
  - Field supplies label/description/error associations through its render props;
@@ -31,6 +37,47 @@ documents associations and feedback.
31
37
  Host validation decides the error and useful message. Keep native constraints,
32
38
  invalid focus and the accessible message association coherent.
33
39
 
40
+ For visual roles and rhythm, read the [hierarchy skill](../flood-hierarchy/SKILL.md).
41
+ Fieldset legendSize="section" is for an independent section; a short form may
42
+ need no inner heading. Field labels and values keep their documented sizes.
43
+
44
+ ## Group before laying out fields
45
+
46
+ Choose the form's reading order and semantic groups before placing controls in
47
+ columns. Establish shared outer tracks, gap and group padding. Use a single Grid for
48
+ related rows; do not narrow one numeric field in only one row merely because its
49
+ value is short. Preserve corresponding vertical edges before optimizing widths. Related groups
50
+ should share those tracks: do not independently choose a four-column grid above
51
+ two columns below and assume their edges align. A group may span the whole layout
52
+ when its content needs it; not every field should have the same width.
53
+
54
+ For Flood record/settings forms without a denser host requirement, start with
55
+ at most two field tracks per semantic group. Four metadata fields become two
56
+ pairs rather than an automatic four-field strip. Use one track for a narrow group
57
+ or long field. A denser table editor, filter toolbar or explicit host design is
58
+ a different context; record why its structure needs more tracks.
59
+
60
+ For two peer groups, use two equal outer tracks and subdivide each consistently
61
+ when a group contains short related fields. A pair of two-field groups can read
62
+ more clearly than four unrelated columns. This is a pattern to evaluate, not a
63
+ rule that every form has two columns or an invoice-specific template.
64
+
65
+ Keep a group's title, controls and supporting message together in reading and DOM
66
+ order. Distinguish page, group and field roles without adding headings merely to
67
+ fill containers. Compare shared leading/trailing edges and gutters in the rendered
68
+ form, including absent descriptions, long labels and changed field values.
69
+
70
+ Measure the controls' content edges, not only the Grid boxes. A full-width padded
71
+ Surface containing two tracks and two separately padded Surfaces can use identical
72
+ Grid props while their actual controls differ by one surface inset. Nested padding
73
+ must participate in the same track budget. Compare corresponding first/second
74
+ control starts and widths across those groups; matching outer containers is not
75
+ sufficient. Do not insert an empty grid child merely to occupy an unexplained gap.
76
+ For a concrete starting structure, discover recipe:grouped-form in the installed
77
+ catalog. It demonstrates shared tracks and two-field peer groups in a workspace
78
+ form. Adapt its grouping to the host; do not copy its business content or add
79
+ unrequested sample records.
80
+
34
81
  ## Exercise transitions, not just props
35
82
 
36
83
  Check entry, clear, incomplete drafts, invalid input, accepted/refused controlled
@@ -41,5 +88,7 @@ representation genuinely requires it. Do not silently replace user edits.
41
88
  FileInput cannot receive a fabricated FileList or ordinary controlled text value.
42
89
  Separate selection from upload transport and progress. Calendar/date/time controls
43
90
  represent their documented civil values; do not infer a timezone or server save.
44
- Show a real success only after the host operation succeeds. In a local example,
45
- state explicitly that changes are local.
91
+ Show a real success only after the host operation succeeds. Explain consequential
92
+ storage limits once where they matter; a local example does not require a banner
93
+ or repeated captions about its implementation. Follow the interface-content
94
+ workflow for placement and wording.
@@ -27,6 +27,13 @@ applies the existing dark base; it does not start a palette, theme or motion red
27
27
  owns explicit artwork dimensions; IconButton owns the accessible action/target.
28
28
  A large control does not mean an unconstrained SVG or oversized supporting copy.
29
29
 
30
+ Action icons are artwork with an explicit IconSlot size, not a plus, arrow or
31
+ cross typed into the label. Font glyph bounds vary even at the same font size.
32
+ Use the project's licensed icon pack or an original SVG in IconSlot; text-only
33
+ actions can omit the icon. Keep real symbols that are content, such as currency,
34
+ phone prefixes or mathematical expressions, as text. Inspect the actual artwork
35
+ and its centre relative to the label at the chosen Button size.
36
+
30
37
  ## Evidence
31
38
 
32
39
  Trace a changed role to its consumers and compare resting, hover, selected,
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: flood-hierarchy
3
+ description: Establish visual hierarchy, shared form tracks and vertical rhythm in Flood screens, forms and overlays. Use when titles, groups and labels compete or a composed interface feels flat; not a fixed page template.
4
+ ---
5
+
6
+ # Structure before emphasis
7
+
8
+ Start with the user's task, reading order and installed component contracts.
9
+ Distinguish the task title, genuinely independent groups, field labels, input
10
+ values and actions before choosing their size or color. A short form may need
11
+ only its task title and labels. Do not add a legend, subtitle, card or divider
12
+ merely to create visual levels. Meaning comes from the interface-content workflow;
13
+ this workflow makes that meaning visible.
14
+
15
+ ## Assign each relationship to its owner
16
+
17
+ - Dialog owns its task heading and the body inset. Its dark title uses the
18
+ dialog-title role (1.25rem / 600); it is distinct from compact popup captions.
19
+ - Field owns the label-to-control relationship: space-1 (.25rem) in the dark
20
+ profile. DateField/TimeField already use that relationship. Leave room between
21
+ independent fields instead of increasing the gap inside every label/control pair.
22
+ - Field labels use field-label typography (.8125rem / 500) and readable primary
23
+ content color. Do not shrink every label or fade necessary labels to manufacture
24
+ hierarchy; units, required markers, errors and accessible associations remain.
25
+ - Fieldset defaults to a compact label-sized legend for related choices. Use
26
+ legendSize="section" for a necessary independent form section: group-title
27
+ typography (1rem / 600) and space-4 before its fields. A legend is still a native
28
+ group label, not a new document heading level. Optional hint/choice relationships
29
+ keep their compact component-owned spacing.
30
+ - Grid owns common tracks; Stack and Inline own relationships between fields,
31
+ groups and actions. Never duplicate component anatomy with styled text.
32
+
33
+ These are installed recipe defaults, not permission to use missing APIs in an
34
+ older package or to override private selectors in a host stylesheet.
35
+
36
+ ## Establish a shared frame
37
+
38
+ Use one Grid for related rows that should share vertical edges. Two equal tracks
39
+ are a useful starting point for four short fields; long names and descriptions
40
+ can span the width. Numeric content being short does not by itself justify a
41
+ narrower track in only one row. If a specialized width is necessary, preserve the
42
+ common grid or deliberately separate that group and check its visual relationship.
43
+ Do not repair a whole-frame mismatch with manual widths on individual controls.
44
+
45
+ Choose the user's reading order first. In an ordinary date/time form, a pair of
46
+ calendar and time controls can share tracks with a later pair of duration/status
47
+ controls. This is an example, not an appointment-specific template. Independent
48
+ semantic grouping can justify another order. Do not turn every group into a box.
49
+
50
+ ## Choose a rhythm, not a uniform gap
51
+
52
+ For an ordinary desktop form, start with space-6 between field rows and space-8
53
+ between independent groups or before the closing action row. The Dialog body
54
+ inset is already space-6: do not add the same inset again to the first child.
55
+ Keep a label nearer its control than the next field and a group title nearer
56
+ its own fields than the next group. Dense filters, table editors and choice lists
57
+ have different budgets; apply their component recipes instead of spreading this
58
+ form rhythm everywhere.
59
+
60
+ Treat action order/alignment as part of the task. An end-aligned cancel/primary
61
+ pair can finish a short desktop dialog clearly. This is not a universal order:
62
+ respect host conventions, direction, destructive confirmation and keyboard flow.
63
+ Do not add a footer surface or separator unless it resolves a real boundary.
64
+
65
+ Record lists and details need an information budget as well as type hierarchy.
66
+ Use the [records workflow](../flood-records/SKILL.md) for metadata placement,
67
+ comparison columns and status/category/priority meanings; do not give every
68
+ attribute equal visual emphasis.
69
+
70
+ ## Verify the relationships
71
+
72
+ Read the actual title/group/label styles; inspect the rendered result rather
73
+ than comparing font-size declarations alone. Check complete text and long values,
74
+ not only empty inputs. Measure the left/right edges of corresponding controls
75
+ across rows, including nested padding and optional fields. A shared outer Grid
76
+ alone is not proof that the input edges align.
77
+
78
+ At the host's desktop baseline include 1280px with 24px root text as well as
79
+ normal 1280/1440px views. Ensure the final action remains reachable if the dialog
80
+ needs to scroll. Open actual date/selection popups: a calendar needs readable
81
+ content width even when its anchor is narrow; a selection list has a different
82
+ width contract. Keep viewport collision limits and nested Escape/focus ownership.
83
+
84
+ Report the consequential choices and actual evidence outside the product UI.
85
+ An empty inspector result does not establish hierarchy, necessary copy or visual
86
+ quality. Preserve a failed clean run; improve the library/guidance owner before
87
+ starting a fresh evaluation, rather than editing the historical result.
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: flood-interface-content
3
+ description: Write or review Flood interface content with editorial decisions about copy, labels, hierarchy and states. Use for visible UI text and reference adaptation; not typography styling, campaigns or rewriting user documents.
4
+ ---
5
+
6
+ # Edit the information, then the wording
7
+
8
+ Read the task, existing product vocabulary and the relevant component contracts.
9
+ Keep the requested audience, language, surface and scope. A test host is not an
10
+ invitation to add a product story, onboarding, promotional banners or new flows.
11
+ User-authored records and document bodies remain data; changing interface copy
12
+ does not authorize rewriting them.
13
+
14
+ ## Give every text element a job
15
+
16
+ Before adding copy, identify the user's current task and state. Each visible
17
+ string should identify an object or control, distinguish choices, supply needed
18
+ input guidance, explain a relevant consequence, report a real state or support
19
+ recovery in the current task/state. A fact being potentially useful someday is
20
+ not sufficient. If its removal changes none of those, remove the element rather than
21
+ replace it with another friendly sentence.
22
+
23
+ Make the decision in context:
24
+
25
+ - **Keep** a necessary label, distinction, constraint, consequence at the relevant decision or recovery step after a real failure.
26
+ - **Rewrite** an ambiguous or inaccurate message using the product's terms.
27
+ - **Move** secondary, occasionally needed information to a relevant help surface.
28
+ - **Remove** duplication, routine interface narration and filler added to fill space.
29
+
30
+ Do not turn this into a shortest-copy contest. A longer explanation can be the
31
+ correct choice for an unfamiliar decision, an exceptional state or a material
32
+ consequence of an action being considered here. An ordinary list/editor is not a
33
+ storage-selection or data-deletion decision: do not add a standing browser/storage
34
+ warning just because clearing browser data could lose records. Put implementation
35
+ limits in documentation/help; explain deletion/replacement consequences before
36
+ the applicable action and actual persistence failures when they occur.
37
+ Do not hide essential instructions or risks behind a tooltip merely
38
+ to make a screen quieter. Preserve accessible names and associations when reducing
39
+ visible copy; use the component's documented hideLabel API where appropriate.
40
+
41
+ ## Separate prototype provenance from product state
42
+
43
+ An explicitly requested local prototype or fixture-backed test app does not need
44
+ an always-visible Demo, Prototype, Local only or Test environment badge merely
45
+ because of its development context. Put that provenance and its implementation
46
+ limits in the project README, test brief or review handoff. Do not fill a sidebar
47
+ footer, header or empty region with a reminder, or replace a removed badge with
48
+ a differently worded banner.
49
+
50
+ Keep a visible distinction when it changes a decision on this surface: sample
51
+ records mixed with real records, a meaningful selectable simulation mode, or an
52
+ action whose effect/destination differs between environments. Place it beside the
53
+ affected record, choice or action. Do not invent a mode switch or warning flow to
54
+ justify an environment label. An isolated prototype is not a mixed live workspace.
55
+
56
+ Removing prototype chrome does not authorize claims of real live video, delivered
57
+ messages, production connectivity or other unimplemented capabilities. Keep
58
+ accurate object/media accessible names and action wording; document the simulation
59
+ in the handoff. Real Draft/Pending/Offline record states are not prototype labels
60
+ and must not be removed by a word-matching rule.
61
+
62
+ ## Keep one vocabulary and an honest hierarchy
63
+
64
+ Use the user's domain nouns and existing action terms. Name destinations by what
65
+ they contain and actions by the result they cause. Avoid vague completion labels
66
+ when several outcomes are possible. A validation check does not establish expert
67
+ review; preparing a document does not send it; exporting a PDF does not create a
68
+ restorable backup of editable records.
69
+
70
+ A page title identifies its task or object. Add an eyebrow or subtitle only when
71
+ it conveys another useful distinction. Do not automatically stack a category,
72
+ the same category in a title, and a sentence describing that title. Section titles
73
+ name actual groups; they do not each require an explanation. Semantic heading
74
+ levels reflect the document structure, independently of visual sizing.
75
+
76
+ Keep necessary repetition across different contexts: a dialog may need the
77
+ affected object named again, a long form may repeat its primary action at the end,
78
+ and a printed document has its own content hierarchy. Do not remove those merely
79
+ because similar words appear elsewhere on the screen.
80
+
81
+ ## Explain only what changes a decision
82
+
83
+ Prefer a clear label or unit to an added helper paragraph. Add a field hint for a
84
+ non-obvious format, source or choice; do not narrate typing or repeat its label.
85
+ Technical properties of the implementation belong in developer documentation
86
+ unless the user is making a decision about them. A document preview usually
87
+ does not need a caption about embedded fonts or selectable PDF text.
88
+
89
+ Check actual behavior before writing states:
90
+
91
+ - Errors say what failed and how the user can recover, without raw exception text
92
+ or unsupported assurances. Keep entered data and associate errors with controls.
93
+ - Success names an operation that actually completed. Avoid celebratory filler
94
+ and repeated announcements for routine edits. The feedback workflow owns timing.
95
+ - Empty results and a first-use empty collection are different states. Use the
96
+ shortest useful explanation and next action for the actual case.
97
+ - A sample-data label is justified when it prevents a real misunderstanding.
98
+ Put it where that distinction matters. Do not repeat demo disclaimers throughout
99
+ a test interface whose context is already established.
100
+
101
+ For list/detail metadata, apply the [records workflow](../flood-records/SKILL.md).
102
+ Use its decision examples to distinguish useful priority/recency from redundant
103
+ labels and counts; the right amount of information depends on the user task.
104
+
105
+ ## Adapt reference content by purpose
106
+
107
+ For each reference pattern, identify the question it answers and the capability
108
+ that makes its wording true. Transfer that relationship to the host's actual
109
+ objects, actions and states. Do not transplant a competitor's role names, approval
110
+ stages, promises, regulatory language or marketing line into a different product.
111
+ If the host has no equivalent capability, omit that element rather than invent one.
112
+
113
+ Borrowing a two-pane editor does not imply borrowing an OCR claim or a payment
114
+ workflow. Product references inform structure; user records and confirmed product
115
+ facts supply content. Keep unavailable capabilities explicit in guidance, not as
116
+ decorative warnings on every screen.
117
+
118
+ ## Review the composed surface
119
+
120
+ Default optional subtitles and descriptions to absent. A page title plus its
121
+ primary action normally needs no sentence narrating that action. An empty-state
122
+ title identifies the missing content; it is not a slogan. Add explanation only
123
+ when it changes the user's next decision or supplies a needed constraint.
124
+
125
+ After rendering, identify each supporting sentence's new information. If it only
126
+ restates the title, predicts obvious typing/calculation, or repeats another help
127
+ location, remove it. Read the decision examples when uncertain; reading this
128
+ workflow without applying that review does not satisfy it. Preserve essential
129
+ consequences and actionable errors rather than stripping every explanation.
130
+
131
+ Read the whole screen in task order, including navigation, heading, fields,
132
+ actions and the state after an action. Review visible strings together with
133
+ accessible names, placeholders and announcements. Check repeated meaning across
134
+ locations, not just repeated words in one file. Removing a subtitle should not
135
+ leave its reserved space or an empty banner behind.
136
+
137
+ For a writing pass, report the consequential keep/rewrite/move/remove decisions
138
+ outside the product UI, and exercise the affected action or error. Automated
139
+ phrase scans cannot establish editorial quality. Use [decision examples](../interface-content-examples.md)
140
+ when a similar-looking string needs different treatment in another context.
141
+ Do not claim an independent agent evaluation when the author already knows the
142
+ implementation or corrected the initial output manually.
@@ -22,11 +22,18 @@ surface or remove a modal's background inertness. Escape dismisses the active
22
22
  layer; a nested menu/select must not also close its parent dialog. Restore opener
23
23
  focus unless the host intentionally moved it elsewhere.
24
24
 
25
+ Task Dialog titles and body insets use their own recipe; do not reuse compact
26
+ popup caption typography for the modal task. The
27
+ [hierarchy workflow](../flood-hierarchy/SKILL.md) owns title/group/field relations.
28
+
25
29
  ## Inspect the actual host
26
30
 
27
31
  Check placement at viewport edges, resize, narrow/enlarged text, RTL and parent
28
32
  scrolling. Selection popups and calendar popups have distinct content geometry;
29
33
  use the supported field/anchor sizing behavior, not a universal fixed width.
34
+ DatePicker calendar panels have a 20rem preferred minimum, bounded by available
35
+ viewport width; narrow anchors need not force cramped calendar content. Selection
36
+ lists and time lists retain their separate contracts.
30
37
  Verify nested radii/insets, surface distinction over a parent Surface and that
31
38
  essential content stays outside scrollbar rails. No clipping or noisy duplicate
32
39
  contours should be concealed with extra wrappers.
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: flood-records
3
+ description: Compose record lists and detail views with a clear metadata hierarchy. Use for crowded status/category/priority/date rows, drifting scan positions or deciding between a list and a comparison table.
4
+ ---
5
+
6
+ # Select information for the current decision
7
+
8
+ Read the task and installed DataListItem, Table/DataTable, DescriptionList and
9
+ feedback contracts relevant to it. Start with what the user needs to recognize,
10
+ compare or act on before opening a record. A record's available schema is not the
11
+ content specification for every surface. Use the
12
+ [interface-content workflow](../flood-interface-content/SKILL.md) for wording and
13
+ [hierarchy workflow](../flood-hierarchy/SKILL.md) for visual relationships.
14
+
15
+ Before JSX, make a short field -> decision -> list/detail placement record in
16
+ development notes. Include the reason for an omitted field; do not place this
17
+ planning text in the interface. Read the
18
+ [decision examples](../record-decisions.md) when meanings or placement are unclear.
19
+
20
+ ## Choose the record structure
21
+
22
+ - Use DataList/DataListItem when identity, a useful summary and opening the record
23
+ are primary. Keep the title and summary as one readable unit. Give secondary
24
+ attributes a subordinate relationship rather than filling every trailing slot.
25
+ - If users compare several independent attributes across records, use Table or
26
+ DataTable with actual named columns. A long Inline of unrelated values at each
27
+ row end is not a substitute for comparison columns.
28
+ - Use DescriptionList for named values in details. A detail view can expose more
29
+ information than a list; it does not need to repeat the list's chip arrangement.
30
+ - Selection is not navigation. A record list does not become ListBox merely
31
+ because users click its entries. Retain a real Link and independent actions.
32
+
33
+ When a scan signal is useful at the trailing edge, keep its position stable
34
+ across sibling records. Test the longest and missing values, not only equal sample
35
+ strings. Multiple right-justified values with variable lengths produce shifting
36
+ pseudo-columns even when their gaps match. Use an explicit common comparison
37
+ structure or move secondary attributes into the copy area.
38
+
39
+ ## Distinguish metadata roles before styling
40
+
41
+ | Meaning | Existing owner / treatment |
42
+ | --- | --- |
43
+ | Lifecycle or operation state | StatusIndicator with accurate text; color is supplementary |
44
+ | Category, type or membership | Badge when a tag-shaped marker helps recognition; otherwise named/subordinate text |
45
+ | Priority or urgency | Keep visible when it drives triage/comparison; use an explicit column or named value if needed |
46
+ | Creation, update, due or event time | Identify the event and appropriate precision; do not treat every date as a status |
47
+ | An available operation | Button/IconButton/Menu; do not make an informational badge look actionable |
48
+
49
+ A category named Error is not necessarily a failed operation. Do not choose
50
+ error styling or an announcement from that word alone. Use clear labels in
51
+ ambiguous contexts, especially details with several similar-looking values.
52
+ A priority is not a second lifecycle status. Do not make all attributes colorful
53
+ chips or interchangeable status dots. Keep StatusIndicator rather than hand-drawing
54
+ its state text/dot to fit a preferred arrangement.
55
+
56
+ There is no universal badge limit. For a browsing list, start with identity and
57
+ one useful scan signal; admit further visible metadata when it changes selection
58
+ or action. For triage, priority may be essential even when every item is normal.
59
+ Do not hide necessary comparisons just to make a screenshot quieter. Conversely,
60
+ a default low/medium priority does not automatically need a separate visual accent.
61
+
62
+ ## Distribute information between list and details
63
+
64
+ Protect enough width for the identity and useful summary. Category and recency
65
+ can read as secondary information near the title; status may stay in a stable
66
+ trailing position. This is one pattern, not a required arrangement. DataListItem
67
+ slots accept composition from supported Flood primitives; check their actual
68
+ content types before using them. Do not override private slot layout or wrap
69
+ ordinary metadata in invented semantics merely to silence an inspector.
70
+
71
+ In details, group named attributes by purpose. Place the principal state where it
72
+ informs action; avoid an unlabeled strip of state, category and priority that asks
73
+ the user to infer their meanings. User descriptions remain content, not interface
74
+ copy to shorten. A heading or Surface around a description must earn its role;
75
+ it is not mandatory for every text field.
76
+
77
+ Creation and modification describe different events. Keep both when history or
78
+ recency matters. If displayed values repeat and the distinction adds no current
79
+ value, one visible date may suffice; if exact time matters, use adequate precision
80
+ instead of suppressing the distinction based only on equal formatted dates.
81
+
82
+ ## Compose collection states deliberately
83
+
84
+ First-use empty, filtered no-results, loading and read failure are different
85
+ states. Keep a relevant reset/action and meaningful feedback. A result count can
86
+ help filtering or pagination; do not automatically add Found: 0 beside an empty
87
+ collection message that already establishes there are no records. Never remove
88
+ an accessible update announcement merely to remove a duplicate visible sentence;
89
+ check announcement ownership in the feedback workflow.
90
+
91
+ A product header, page title and section heading must answer different questions.
92
+ Do not add a generic product/category eyebrow plus a title plus a sentence restating
93
+ it just because the shell has slots. Real branding and navigation context can
94
+ justify persistent chrome; preserve that purpose rather than applying a text ban.
95
+
96
+ ## Verify across several records and states
97
+
98
+ Use isolated fixtures, not fictional records persisted into the user's app. Check
99
+ several short and long titles, every meaningful state, differing category/priority
100
+ lengths, missing metadata and long dates. Inspect scan positions and copy width
101
+ at normal and enlarged text, including 1280px/root24px for the desktop baseline.
102
+ No page overflow alone does not prove that the title has readable width.
103
+
104
+ Open details and return; exercise filters, no-results/reset and row actions.
105
+ Check reading order, Link names and action focus separately from visual alignment.
106
+ Review each visible attribute's decision value outside the product UI. An optional
107
+ observer may flag useful metadata or miss a crowded row; record the contextual
108
+ keep/move/name/omit decision rather than treating its output as editorial approval.
@@ -13,6 +13,11 @@ independent actions, sections, or nested surfaces. Do not propagate one gap to
13
13
  every wrapper. Stack and Inline organize relationships; component padding and
14
14
  line height still contribute to the visible distance.
15
15
 
16
+ Named fields use space-1 between label and control. This inner association
17
+ is distinct from the parent gap between fields: use the
18
+ [hierarchy workflow](../flood-hierarchy/SKILL.md) for task/group/field rhythm.
19
+ Do not stack a host spacer on top of the Dialog-owned body inset.
20
+
16
21
  ## Find the owner
17
22
 
18
23
  Inspect bounding rectangles plus computed padding, margin, gap, minimum height
@@ -27,6 +32,17 @@ For a nested surface, compare its radius with the outer radius minus the actual
27
32
  inset/stroke. Do not force unrelated actions to follow that formula. Compare
28
33
  top/bottom and start/end insets around a nested InputGroup action optically.
29
34
 
35
+ Rounded cards need a content-safe inset as well as compatible nested radii.
36
+ Inspect the nearest curved edge around corner text and icons, not only distance
37
+ from the rectangular bounding box. Use supported surface padding and radius
38
+ choices together; increase the inset or reduce the radius when corners look
39
+ crowded. Do not impose a universal padding-equals-radius formula on all cards.
40
+
41
+ Give sibling sections an explicit parent-owned gap. An optional summary, message
42
+ or toolbar must not be the only source of separation between its neighbours.
43
+ For split panes, the full-height divider belongs to the stretching layout owner;
44
+ a shorter sticky or scrolling child must not determine the divider's length.
45
+
30
46
  Distinguish a real component from its preview scene. Fixed preview height and
31
47
  reserved feedback space can prevent a demo from jumping; they should not impose
32
48
  an empty message row or fixed height on every production field.
@@ -16,6 +16,20 @@ Mark an inapplicable check with a reason rather than forcing keyboard behavior
16
16
  onto decoration or readOnly onto every control. Distinguish existing test coverage
17
17
  from checks actually run for this source revision.
18
18
 
19
+ Honor the task's declared evaluation scope. A desktop-only test host does not
20
+ require new mobile product work. Record excluded targets instead of quietly
21
+ expanding the task. When visible copy changes, apply the
22
+ [interface content workflow](../flood-interface-content/SKILL.md); type checks
23
+ and screenshots alone do not establish that its wording is necessary or accurate.
24
+ Desktop-only scope still includes enlarged text in the desktop viewport. Do not
25
+ freeze the whole application behind a rem-based minimum width and call resulting
26
+ page overflow a mobile limitation. Keep dense table overflow in its local owner
27
+ and let the surrounding desktop form use its available width.
28
+ For the Flood desktop baseline, include a 1280px viewport with a 24px root font
29
+ (150% of the usual 16px default), alongside normal 1280/1440px views. Testing only
30
+ 20px does not cover that target. This is a text-enlargement check, not a request
31
+ to implement a mobile product. Report any deliberate host-specific exclusion.
32
+
19
33
  Check the public contract at the boundary: installed exports/types, actual form
20
34
  values, controlled acceptance/refusal, reset, names/focus and semantic state. For
21
35
  visual changes inspect rendered geometry, long/optional content, narrow/wide,
@@ -33,12 +47,50 @@ candidate run npm run verify and the required applicable browser matrix; use the
33
47
  host's equivalent gates in a consuming app. Do not continually repeat a full
34
48
  release gate for every reversible visual adjustment.
35
49
 
50
+ When hierarchy changes, apply the [hierarchy workflow](../flood-hierarchy/SKILL.md)
51
+ and compare actual title/group/label roles and corresponding control edges. A
52
+ zero-overflow or zero-inspector result alone does not establish those relations.
53
+
54
+ For record composition, apply the [records workflow](../flood-records/SKILL.md):
55
+ compare several varied rows, their copy width and scan positions, then review the
56
+ detail and empty/filter states. Passing an overflow check or presenting valid
57
+ metadata is not evidence that all those values belong at the same visual level.
58
+
36
59
  ## Report a usable result
37
60
 
61
+ Use the [rendered review observer](../rendered-review.md) when local browser
62
+ tooling is available. Inspect findings and exceptions, then review hierarchy and
63
+ copy separately; no findings is not an editorial or visual-quality pass.
64
+ Review host JSX/CSS with inspectSourceUI from that entry too, then resolve the
65
+ actual owner at each candidate location. Include layout and cancel/confirmation
66
+ paths, not just fields. A native browser dialog can be absent from a DOM snapshot;
67
+ trigger its path. If a custom layout duplicates Grid, use the installed owner
68
+ instead of silencing a finding or declaring a missing capability without checking.
69
+
70
+ Keep a small coverage inventory outside the interface: route/view, visible state,
71
+ copy decision, geometry check and unverified limits. Review the initial/empty
72
+ surface before adding records, the populated surface, editor, preview and actual
73
+ error/recovery surfaces where present. Running the observer only in the editor
74
+ or an open popup leaves the other views unreviewed. Never extend a zero-findings
75
+ claim to states that were not inspected. Review optional empty-state descriptions
76
+ against the visible primary action too; they do not automatically need an
77
+ instruction restating that action.
78
+ For a newly composed screen, check two outcomes separately from build success:
79
+ the visible roles use the owners chosen from the installed catalog, and supporting
80
+ copy adds necessary information. Open the real date/selection popup to verify
81
+ that a native browser control was not mistaken for a Flood component. Inspect
82
+ mixed editable table rows, not only overflow. Report skipped applicable workflows
83
+ or unverified owner choices instead of treating a list of imports as proof.
84
+
38
85
  For a failure preserve the source revision, affected state and actual trace or
39
86
  measurement; distinguish library, host recipe, assertion and infrastructure causes.
40
87
  Correct the responsible owner without weakening a meaningful assertion to get
41
88
  green. Add regression coverage for demonstrated risks rather than mirroring CSS.
89
+ After exercising a failure, verify its exit paths as well as retry: explicitly
90
+ discard the affected draft, return to the list and open a saved record. Check that
91
+ record-scoped feedback ends with its operation while global unresolved failures
92
+ remain correctly represented. A screenshot of the error alone does not verify
93
+ its lifecycle; apply the feedback workflow.
42
94
 
43
95
  State what ran, results, manual observations and remaining limits. A source scan,
44
96
  agent instruction, screenshot or accessibility scanner cannot independently prove
@@ -0,0 +1,47 @@
1
+ # Interface content decisions
2
+
3
+ These examples explain context, not a forbidden-word list or fixed word budget.
4
+ Keep the user's language, task and domain vocabulary.
5
+
6
+ | Situation | Decision | Reason |
7
+ | --- | --- | --- |
8
+ | Invoice list begins with “DOCUMENTS”, “Invoices”, and “Create, check and save invoices in one place” | Keep the page title; remove the other layers unless one makes a real distinction | The repeated explanation adds no decision |
9
+ | The same heading pattern introduces documents from several departments | Keep a category or breadcrumb when it identifies that scope | Similar words can supply different navigation context |
10
+ | Invoice preview ends with “Selectable PDF text · embedded font” | Remove from the ordinary preview; describe it in export documentation if needed | Rendering details do not help edit the invoice |
11
+ | Export-format chooser compares scanned images with selectable text | Keep the meaningful format distinction beside the choices | It changes the export decision |
12
+ | Sidebar card says “Your documents, in your browser. Work without signup” | Remove promotional framing from a working editor | The sidebar is for destinations, not a product pitch |
13
+ | Clearing browser data would delete the only editable copy | Explain the consequence at the relevant storage/clearing decision | Concision must not conceal a loss of data |
14
+ | An ordinary record list permanently says “Stored only in this browser. Clearing site data deletes it” | Remove the standing caption; keep storage limits in documentation/help | No storage or clearing decision is being made on this screen |
15
+ | The user invokes “Clear saved records” | Keep the deletion consequence in that confirmation | The fact now changes an immediate decision; it is not interface narration |
16
+ | Every field has “Enter…” beneath its visible label | Remove repeated instructions; keep useful format or unit guidance | A required label is not an explanation slot to fill |
17
+ | “Tax included” changes the total without adding tax | Keep the choice and a needed distinction from “Add tax” | Similar short labels can conceal materially different calculations |
18
+ | “Something went wrong. Please try again” appears after storage is full | Name the failed save and a supported recovery action | The next step must fit the actual cause |
19
+ | “Verified and sent” appears after local syntax validation | Replace with the completed operation, such as “Invoice prepared” | Validation is not expert verification or delivery |
20
+ | Empty search says “Welcome! Start your journey…” | State that there are no matches and offer a relevant reset | The collection already exists; this is a filtered result |
21
+ | A test host repeatedly explains that its records are samples | Remove redundant disclaimers when the test context is already established | Test provenance can live in the test brief |
22
+ | An explicitly requested local prototype has a permanent Demo badge in its sidebar | Remove the badge and its otherwise empty wrapper; retain provenance in README/test handoff | Development context is not an operational state or decision |
23
+ | A working interface switches between simulated output and real external effects | Keep an accurate distinction at the choice or affected action, if this capability exists | The environment changes what the action does; do not invent a mode solely to justify a label |
24
+ | A record is Draft or a camera is Offline inside a prototype | Keep the meaningful record state | Removing prototype narration is not permission to strip operational information |
25
+ | A mixed production list includes sample records that could be mistaken for real ones | Keep a clear sample distinction on the affected records | It prevents a concrete misunderstanding |
26
+ | A printed invoice has a document title, number and party headings | Keep the meaningful document hierarchy | A document is not the application's decorative page header |
27
+
28
+ ## Contextual adaptation
29
+
30
+ A bill-processing reference may group records by draft, approval and payment.
31
+ An invoice generator with local draft/ready/archive state can reuse the idea of
32
+ state-based navigation. It cannot truthfully adopt “For payment”, an approval
33
+ queue or an OCR promise without implementing those capabilities.
34
+
35
+ Choose the host's action vocabulary deliberately. In a Russian invoice editor,
36
+ “Скачать PDF” names an export and “Подготовить счёт” names a readiness action.
37
+ “Готово” is ambiguous when the same toolbar can save, export, approve or send.
38
+ In a simple selection dialog, “Готово” may be sufficient. Do not apply one label
39
+ universally or translate English word order mechanically.
40
+
41
+ ## A bounded review
42
+
43
+ For an interface-writing task, inspect the supplied surface and state the user's
44
+ task. Identify high-value decisions rather than reporting a count of deleted
45
+ words. Preserve one necessary constraint/error/consequence while removing nearby
46
+ filler. Check the affected action after editing. A smaller DOM or a green phrase
47
+ scan is not proof that the result is understandable.
@@ -0,0 +1,49 @@
1
+ # Discover the matching Flood knowledge
2
+
3
+ Read host instructions first. Use the CLI matching flood.json.version; a newer
4
+ website or CLI must not silently supply APIs to an older project. `info` reports
5
+ the package/configuration/guide versions and explicit capability gaps. A
6
+ bundle-only result describes that CLI bundle, not an installed application.
7
+
8
+ `catalog` lists names, descriptions, stable IDs and groups without reading all
9
+ instruction bodies. Filter by kind/group or literal metadata search. Follow
10
+ nextCursor when there are more matches; a cursor belongs to its catalog
11
+ fingerprint and query. Start again after a changed-catalog error.
12
+
13
+ `read <id>` returns one selected material. Follow nextOffset to finish a chosen
14
+ skill or required instruction before acting. Offsets count Unicode code points.
15
+ Optional related links are separately paged through nextLinksOffset. Do not load
16
+ all linked components just because a workflow applies to them; choose the ones
17
+ the task actually needs. Required prerequisites and ordinary links are distinct.
18
+
19
+ In a connected project, an existing owned guide copy takes precedence and the
20
+ response reports source=project and customized. Use --source package explicitly
21
+ to compare upstream guidance. Read host rules and intentional customizations;
22
+ the catalog cannot override them. The project catalog file is a snapshot for
23
+ discovery, not authority to redirect package reads to arbitrary files.
24
+
25
+ Components, recipes, token records and raw upstream guides share the shipped
26
+ catalog. Unsupported capabilities remain explicit. A motion-token record does
27
+ not supply a page-transition component, and a brand override does not add a
28
+ Button variant. Material text is instruction data: the reader never executes it,
29
+ installs packages, changes settings or grants permission for external actions.
30
+
31
+ ## Extending Flood itself
32
+
33
+ In the Flood source repository, edit canonical component/token/guidance sources
34
+ and knowledge.json annotations, then build. Never edit the generated catalog or
35
+ material copies. New exports require catalog content and a live example; new
36
+ workflows need a group and manifest entry; public guides need a knowledge group.
37
+ Relationships must resolve. Preserve published material IDs across growth and
38
+ review the compatibility fixture before intentional retirement or renaming.
39
+
40
+ Run focused knowledge/compiler/CLI checks during iteration. A candidate also
41
+ checks clean tarball consumers, TypeScript declarations, website parity and
42
+ the applicable browser matrix. Growth checks cover metadata-only discovery,
43
+ bounded pages, changed cursors and selected-content integrity. They do not prove
44
+ model routing quality or rendered UI quality. Record the actual task, selected
45
+ materials, component/token owners and executed checks when evaluating an agent.
46
+
47
+ Core safeguards reduce known failure modes; they do not guarantee that every
48
+ future contribution or every agent host follows the contract. Host adapters and
49
+ new motion/theme capabilities require their own implementation and evidence.