decantr 0.9.0

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 (382) hide show
  1. package/AGENTS.md +868 -0
  2. package/CHANGELOG.md +255 -0
  3. package/CLAUDE.md +178 -0
  4. package/LICENSE +21 -0
  5. package/README.md +229 -0
  6. package/cli/art.js +127 -0
  7. package/cli/commands/a11y.js +61 -0
  8. package/cli/commands/audit.js +225 -0
  9. package/cli/commands/build.js +38 -0
  10. package/cli/commands/dev.js +18 -0
  11. package/cli/commands/doctor.js +197 -0
  12. package/cli/commands/figma-sync.js +48 -0
  13. package/cli/commands/figma-tokens.js +55 -0
  14. package/cli/commands/generate.js +26 -0
  15. package/cli/commands/init.js +116 -0
  16. package/cli/commands/lint.js +209 -0
  17. package/cli/commands/mcp.js +530 -0
  18. package/cli/commands/migrate.js +175 -0
  19. package/cli/commands/test.js +38 -0
  20. package/cli/commands/validate.js +354 -0
  21. package/cli/index.js +113 -0
  22. package/package.json +95 -0
  23. package/reference/atoms.md +517 -0
  24. package/reference/behaviors.md +384 -0
  25. package/reference/build-tooling.md +275 -0
  26. package/reference/color-guidelines.md +965 -0
  27. package/reference/component-lifecycle.md +137 -0
  28. package/reference/compound-spacing.md +95 -0
  29. package/reference/decantation-process.md +499 -0
  30. package/reference/dev-server-routes.md +93 -0
  31. package/reference/form-system.md +253 -0
  32. package/reference/i18n.md +336 -0
  33. package/reference/icons.md +576 -0
  34. package/reference/llm-primer.md +953 -0
  35. package/reference/plugins.md +252 -0
  36. package/reference/registry-consumption.md +76 -0
  37. package/reference/router.md +217 -0
  38. package/reference/shells.md +116 -0
  39. package/reference/spatial-guidelines.md +541 -0
  40. package/reference/ssr.md +234 -0
  41. package/reference/state-data.md +215 -0
  42. package/reference/state-patterns.md +166 -0
  43. package/reference/state.md +194 -0
  44. package/reference/style-system.md +110 -0
  45. package/reference/tokens.md +460 -0
  46. package/src/app.js +19 -0
  47. package/src/chart/_animate.js +266 -0
  48. package/src/chart/_base.js +109 -0
  49. package/src/chart/_data.js +209 -0
  50. package/src/chart/_format.js +106 -0
  51. package/src/chart/_interact.js +364 -0
  52. package/src/chart/_palette.js +105 -0
  53. package/src/chart/_renderer.js +52 -0
  54. package/src/chart/_scene.js +262 -0
  55. package/src/chart/_shared.js +371 -0
  56. package/src/chart/index.js +637 -0
  57. package/src/chart/layouts/_layout-base.js +328 -0
  58. package/src/chart/layouts/cartesian.js +148 -0
  59. package/src/chart/layouts/hierarchy.js +562 -0
  60. package/src/chart/layouts/polar.js +101 -0
  61. package/src/chart/renderers/canvas.js +179 -0
  62. package/src/chart/renderers/svg.js +256 -0
  63. package/src/chart/renderers/webgpu.js +715 -0
  64. package/src/chart/types/_type-base.js +26 -0
  65. package/src/chart/types/area.js +134 -0
  66. package/src/chart/types/bar.js +173 -0
  67. package/src/chart/types/box-plot.js +125 -0
  68. package/src/chart/types/bubble.js +63 -0
  69. package/src/chart/types/candlestick.js +115 -0
  70. package/src/chart/types/chord.js +85 -0
  71. package/src/chart/types/combination.js +108 -0
  72. package/src/chart/types/funnel.js +68 -0
  73. package/src/chart/types/gauge.js +163 -0
  74. package/src/chart/types/heatmap.js +98 -0
  75. package/src/chart/types/histogram.js +71 -0
  76. package/src/chart/types/line.js +111 -0
  77. package/src/chart/types/org-chart.js +93 -0
  78. package/src/chart/types/pie.js +81 -0
  79. package/src/chart/types/radar.js +96 -0
  80. package/src/chart/types/radial.js +68 -0
  81. package/src/chart/types/range-area.js +55 -0
  82. package/src/chart/types/range-bar.js +61 -0
  83. package/src/chart/types/sankey.js +73 -0
  84. package/src/chart/types/scatter.js +66 -0
  85. package/src/chart/types/sparkline.js +81 -0
  86. package/src/chart/types/sunburst.js +69 -0
  87. package/src/chart/types/swimlane.js +88 -0
  88. package/src/chart/types/treemap.js +62 -0
  89. package/src/chart/types/waterfall.js +100 -0
  90. package/src/components/_base.js +1658 -0
  91. package/src/components/_behaviors.js +1140 -0
  92. package/src/components/_primitives.js +534 -0
  93. package/src/components/_qr-encoder.js +539 -0
  94. package/src/components/accordion.js +207 -0
  95. package/src/components/affix.js +62 -0
  96. package/src/components/alert-dialog.js +75 -0
  97. package/src/components/alert.js +47 -0
  98. package/src/components/aspect-ratio.js +24 -0
  99. package/src/components/avatar-group.js +55 -0
  100. package/src/components/avatar.js +38 -0
  101. package/src/components/back-top.js +75 -0
  102. package/src/components/badge.js +74 -0
  103. package/src/components/banner.js +68 -0
  104. package/src/components/breadcrumb.js +162 -0
  105. package/src/components/button.js +115 -0
  106. package/src/components/calendar.js +131 -0
  107. package/src/components/card.js +192 -0
  108. package/src/components/carousel.js +98 -0
  109. package/src/components/cascader.js +261 -0
  110. package/src/components/checkbox.js +80 -0
  111. package/src/components/chip.js +81 -0
  112. package/src/components/code-block.js +82 -0
  113. package/src/components/collapsible.js +50 -0
  114. package/src/components/color-palette.js +438 -0
  115. package/src/components/color-picker.js +314 -0
  116. package/src/components/combobox.js +181 -0
  117. package/src/components/command.js +174 -0
  118. package/src/components/comment.js +206 -0
  119. package/src/components/context-menu.js +76 -0
  120. package/src/components/data-table.js +724 -0
  121. package/src/components/date-picker.js +217 -0
  122. package/src/components/date-range-picker.js +244 -0
  123. package/src/components/datetime-picker.js +271 -0
  124. package/src/components/descriptions.js +68 -0
  125. package/src/components/drawer.js +179 -0
  126. package/src/components/dropdown.js +88 -0
  127. package/src/components/empty.js +41 -0
  128. package/src/components/float-button.js +90 -0
  129. package/src/components/form.js +106 -0
  130. package/src/components/hover-card.js +49 -0
  131. package/src/components/icon.js +87 -0
  132. package/src/components/image.js +97 -0
  133. package/src/components/index.js +117 -0
  134. package/src/components/input-group.js +75 -0
  135. package/src/components/input-number.js +155 -0
  136. package/src/components/input-otp.js +178 -0
  137. package/src/components/input.js +91 -0
  138. package/src/components/kbd.js +36 -0
  139. package/src/components/label.js +25 -0
  140. package/src/components/list.js +118 -0
  141. package/src/components/masked-input.js +236 -0
  142. package/src/components/mentions.js +165 -0
  143. package/src/components/menu.js +259 -0
  144. package/src/components/message.js +80 -0
  145. package/src/components/modal.js +147 -0
  146. package/src/components/navigation-menu.js +166 -0
  147. package/src/components/notification.js +84 -0
  148. package/src/components/pagination.js +104 -0
  149. package/src/components/placeholder.js +132 -0
  150. package/src/components/popconfirm.js +70 -0
  151. package/src/components/popover.js +58 -0
  152. package/src/components/progress.js +61 -0
  153. package/src/components/qrcode.js +251 -0
  154. package/src/components/radiogroup.js +120 -0
  155. package/src/components/range-slider.js +176 -0
  156. package/src/components/rate.js +186 -0
  157. package/src/components/resizable.js +83 -0
  158. package/src/components/result.js +57 -0
  159. package/src/components/scroll-area.js +43 -0
  160. package/src/components/segmented.js +97 -0
  161. package/src/components/select.js +165 -0
  162. package/src/components/separator.js +31 -0
  163. package/src/components/shell.js +407 -0
  164. package/src/components/skeleton.js +39 -0
  165. package/src/components/slider.js +141 -0
  166. package/src/components/sortable-list.js +176 -0
  167. package/src/components/space.js +42 -0
  168. package/src/components/spinner.js +112 -0
  169. package/src/components/splitter.js +147 -0
  170. package/src/components/statistic.js +136 -0
  171. package/src/components/steps.js +99 -0
  172. package/src/components/switch.js +95 -0
  173. package/src/components/table.js +44 -0
  174. package/src/components/tabs.js +216 -0
  175. package/src/components/tag.js +115 -0
  176. package/src/components/textarea.js +82 -0
  177. package/src/components/time-picker.js +153 -0
  178. package/src/components/time-range-picker.js +170 -0
  179. package/src/components/timeline.js +226 -0
  180. package/src/components/toast.js +71 -0
  181. package/src/components/toggle.js +213 -0
  182. package/src/components/tooltip.js +57 -0
  183. package/src/components/tour.js +159 -0
  184. package/src/components/transfer.js +163 -0
  185. package/src/components/tree-select.js +274 -0
  186. package/src/components/tree.js +141 -0
  187. package/src/components/typography.js +136 -0
  188. package/src/components/upload.js +118 -0
  189. package/src/components/visually-hidden.js +20 -0
  190. package/src/components/watermark.js +124 -0
  191. package/src/core/index.js +539 -0
  192. package/src/core/lifecycle.js +69 -0
  193. package/src/css/atoms.js +651 -0
  194. package/src/css/components.js +940 -0
  195. package/src/css/derive.js +1296 -0
  196. package/src/css/index.js +265 -0
  197. package/src/css/runtime.js +268 -0
  198. package/src/css/styles/addons/bioluminescent.js +93 -0
  199. package/src/css/styles/addons/clay.js +70 -0
  200. package/src/css/styles/addons/clean.js +57 -0
  201. package/src/css/styles/addons/command-center.js +143 -0
  202. package/src/css/styles/addons/dopamine.js +83 -0
  203. package/src/css/styles/addons/editorial.js +80 -0
  204. package/src/css/styles/addons/glassmorphism.js +99 -0
  205. package/src/css/styles/addons/liquid-glass.js +105 -0
  206. package/src/css/styles/addons/prismatic.js +100 -0
  207. package/src/css/styles/addons/retro.js +63 -0
  208. package/src/css/styles/auradecantism.js +96 -0
  209. package/src/css/theme-registry.js +444 -0
  210. package/src/data/entity.js +281 -0
  211. package/src/data/index.js +13 -0
  212. package/src/data/persist.js +225 -0
  213. package/src/data/query.js +839 -0
  214. package/src/data/realtime.js +299 -0
  215. package/src/data/url.js +177 -0
  216. package/src/data/worker.js +134 -0
  217. package/src/explorer/archetypes.js +243 -0
  218. package/src/explorer/atoms.js +228 -0
  219. package/src/explorer/charts.js +497 -0
  220. package/src/explorer/components.js +129 -0
  221. package/src/explorer/foundations.js +949 -0
  222. package/src/explorer/icons.js +178 -0
  223. package/src/explorer/patterns.js +247 -0
  224. package/src/explorer/recipes.js +194 -0
  225. package/src/explorer/shared/pattern-examples.js +1337 -0
  226. package/src/explorer/shared/showcase-renderer.js +958 -0
  227. package/src/explorer/shared/spec-table.js +41 -0
  228. package/src/explorer/shared/usage-links.js +87 -0
  229. package/src/explorer/shell-config.js +10 -0
  230. package/src/explorer/shells.js +551 -0
  231. package/src/explorer/styles.js +161 -0
  232. package/src/explorer/tokens.js +262 -0
  233. package/src/explorer/tools.js +525 -0
  234. package/src/form/index.js +804 -0
  235. package/src/i18n/index.js +251 -0
  236. package/src/icons/essential.js +479 -0
  237. package/src/icons/index.js +53 -0
  238. package/src/plugins/index.js +282 -0
  239. package/src/registry/archetypes/content-site.json +71 -0
  240. package/src/registry/archetypes/docs-explorer.json +23 -0
  241. package/src/registry/archetypes/ecommerce.json +104 -0
  242. package/src/registry/archetypes/financial-dashboard.json +77 -0
  243. package/src/registry/archetypes/index.json +41 -0
  244. package/src/registry/archetypes/portfolio.json +82 -0
  245. package/src/registry/archetypes/recipe-community.json +159 -0
  246. package/src/registry/archetypes/saas-dashboard.json +86 -0
  247. package/src/registry/architect/cross-cutting.json +45 -0
  248. package/src/registry/architect/domains/ecommerce.json +294 -0
  249. package/src/registry/architect/domains/financial-services.json +302 -0
  250. package/src/registry/architect/index.json +26 -0
  251. package/src/registry/architect/traits.json +379 -0
  252. package/src/registry/atoms.json +16 -0
  253. package/src/registry/chart-showcase.json +160 -0
  254. package/src/registry/chart.json +136 -0
  255. package/src/registry/components.json +8616 -0
  256. package/src/registry/core.json +216 -0
  257. package/src/registry/css.json +319 -0
  258. package/src/registry/data.json +135 -0
  259. package/src/registry/foundations.json +11 -0
  260. package/src/registry/icons.json +463 -0
  261. package/src/registry/index.json +101 -0
  262. package/src/registry/patterns/activity-feed.json +37 -0
  263. package/src/registry/patterns/article-content.json +27 -0
  264. package/src/registry/patterns/auth-form.json +37 -0
  265. package/src/registry/patterns/author-card.json +20 -0
  266. package/src/registry/patterns/card-grid.json +127 -0
  267. package/src/registry/patterns/category-nav.json +26 -0
  268. package/src/registry/patterns/chart-grid.json +36 -0
  269. package/src/registry/patterns/chat-interface.json +37 -0
  270. package/src/registry/patterns/checklist-card.json +55 -0
  271. package/src/registry/patterns/comparison-panel.json +27 -0
  272. package/src/registry/patterns/component-showcase.json +24 -0
  273. package/src/registry/patterns/contact-form.json +31 -0
  274. package/src/registry/patterns/cta-section.json +20 -0
  275. package/src/registry/patterns/data-table.json +37 -0
  276. package/src/registry/patterns/detail-header.json +83 -0
  277. package/src/registry/patterns/detail-panel.json +27 -0
  278. package/src/registry/patterns/explorer-shell.json +22 -0
  279. package/src/registry/patterns/filter-bar.json +33 -0
  280. package/src/registry/patterns/filter-sidebar.json +27 -0
  281. package/src/registry/patterns/form-sections.json +110 -0
  282. package/src/registry/patterns/goal-tracker.json +27 -0
  283. package/src/registry/patterns/hero.json +107 -0
  284. package/src/registry/patterns/index.json +47 -0
  285. package/src/registry/patterns/kpi-grid.json +36 -0
  286. package/src/registry/patterns/media-gallery.json +20 -0
  287. package/src/registry/patterns/order-history.json +20 -0
  288. package/src/registry/patterns/pagination.json +19 -0
  289. package/src/registry/patterns/photo-to-recipe.json +36 -0
  290. package/src/registry/patterns/pipeline-tracker.json +28 -0
  291. package/src/registry/patterns/post-list.json +27 -0
  292. package/src/registry/patterns/pricing-table.json +32 -0
  293. package/src/registry/patterns/scorecard.json +28 -0
  294. package/src/registry/patterns/search-bar.json +20 -0
  295. package/src/registry/patterns/specimen-grid.json +19 -0
  296. package/src/registry/patterns/stat-card.json +55 -0
  297. package/src/registry/patterns/stats-bar.json +55 -0
  298. package/src/registry/patterns/steps-card.json +55 -0
  299. package/src/registry/patterns/table-of-contents.json +19 -0
  300. package/src/registry/patterns/testimonials.json +21 -0
  301. package/src/registry/patterns/timeline.json +27 -0
  302. package/src/registry/patterns/token-inspector.json +21 -0
  303. package/src/registry/patterns/wizard.json +27 -0
  304. package/src/registry/recipe-auradecantism.json +69 -0
  305. package/src/registry/recipe-clean.json +65 -0
  306. package/src/registry/recipe-command-center.json +78 -0
  307. package/src/registry/router.json +73 -0
  308. package/src/registry/schema/README.md +197 -0
  309. package/src/registry/skeletons.json +259 -0
  310. package/src/registry/state.json +137 -0
  311. package/src/registry/tokens.json +40 -0
  312. package/src/router/hash.js +17 -0
  313. package/src/router/history.js +18 -0
  314. package/src/router/index.js +598 -0
  315. package/src/ssr/index.js +922 -0
  316. package/src/state/arrays.js +181 -0
  317. package/src/state/devtools.js +647 -0
  318. package/src/state/index.js +498 -0
  319. package/src/state/middleware.js +288 -0
  320. package/src/state/scheduler.js +206 -0
  321. package/src/state/store.js +300 -0
  322. package/src/tags/index.js +19 -0
  323. package/src/tannins/auth.js +396 -0
  324. package/src/test/dom.js +352 -0
  325. package/src/test/index.js +62 -0
  326. package/src/test/state.js +306 -0
  327. package/tools/a11y-audit.js +487 -0
  328. package/tools/analyzer.js +315 -0
  329. package/tools/audit.js +706 -0
  330. package/tools/builder.js +1422 -0
  331. package/tools/css-extract.js +188 -0
  332. package/tools/dev-server.js +316 -0
  333. package/tools/dts-gen.js +1260 -0
  334. package/tools/figma-components.js +329 -0
  335. package/tools/figma-patterns.js +516 -0
  336. package/tools/figma-plugin/code.js +453 -0
  337. package/tools/figma-plugin/manifest.json +14 -0
  338. package/tools/figma-plugin/ui.html +268 -0
  339. package/tools/figma-render.js +293 -0
  340. package/tools/figma-tokens.js +712 -0
  341. package/tools/figma-upload.js +318 -0
  342. package/tools/generate.js +738 -0
  343. package/tools/icons.js +133 -0
  344. package/tools/init-templates.js +265 -0
  345. package/tools/install-hooks.sh +5 -0
  346. package/tools/migrations/0.5.0.js +53 -0
  347. package/tools/migrations/0.6.0.js +95 -0
  348. package/tools/minify.js +170 -0
  349. package/tools/pre-commit +4 -0
  350. package/tools/registry.js +662 -0
  351. package/tools/reset-playground.js +61 -0
  352. package/tools/starter-templates/content-site/app.js +49 -0
  353. package/tools/starter-templates/content-site/essence.js +19 -0
  354. package/tools/starter-templates/content-site/pages.js +31 -0
  355. package/tools/starter-templates/ecommerce/app.js +50 -0
  356. package/tools/starter-templates/ecommerce/essence.js +19 -0
  357. package/tools/starter-templates/ecommerce/pages.js +31 -0
  358. package/tools/starter-templates/landing-page/app.js +38 -0
  359. package/tools/starter-templates/landing-page/essence.js +18 -0
  360. package/tools/starter-templates/landing-page/pages.js +21 -0
  361. package/tools/starter-templates/portfolio/app.js +45 -0
  362. package/tools/starter-templates/portfolio/essence.js +19 -0
  363. package/tools/starter-templates/portfolio/pages.js +33 -0
  364. package/tools/starter-templates/saas-dashboard/app.js +70 -0
  365. package/tools/starter-templates/saas-dashboard/essence.js +19 -0
  366. package/tools/starter-templates/saas-dashboard/pages.js +31 -0
  367. package/tools/verify-pack.js +203 -0
  368. package/types/chart.d.ts +77 -0
  369. package/types/components.d.ts +587 -0
  370. package/types/core.d.ts +89 -0
  371. package/types/css.d.ts +149 -0
  372. package/types/data.d.ts +238 -0
  373. package/types/form.d.ts +164 -0
  374. package/types/i18n.d.ts +51 -0
  375. package/types/icons.d.ts +27 -0
  376. package/types/index.d.ts +13 -0
  377. package/types/router.d.ts +116 -0
  378. package/types/ssr.d.ts +102 -0
  379. package/types/state.d.ts +83 -0
  380. package/types/tags.d.ts +62 -0
  381. package/types/tannins.d.ts +63 -0
  382. package/types/test.d.ts +48 -0
@@ -0,0 +1,302 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/architect-domain.v1.json",
3
+ "id": "financial-services",
4
+ "name": "Financial Services",
5
+ "triggers": {
6
+ "primary": ["lending", "loan", "credit-union", "mortgage", "banking", "financial-services", "fintech"],
7
+ "secondary": ["portfolio", "underwriting", "collections", "delinquency", "origination", "pipeline", "compliance", "cdfi", "interest-rate", "borrower"],
8
+ "negative": ["crypto-only", "personal-finance-only", "budgeting-app-only"]
9
+ },
10
+ "features": {
11
+ "portfolio-overview": {
12
+ "t": "core",
13
+ "w": 1.0,
14
+ "label": "Portfolio Overview",
15
+ "desc": "Executive dashboard with KPI cards, goal tracking, period comparisons, and trend charts",
16
+ "requires": [],
17
+ "implies": ["search", "navbar", "auth"],
18
+ "ux": ["KPI grid at top", "goal-tracker cards with variance and status", "comparison columns for period-over-period", "multi-chart grid for trends"],
19
+ "decantr": {
20
+ "components": ["Card", "Badge", "Progress", "Statistic", "Sparkline", "Chart", "Select", "Segmented"],
21
+ "atoms": "_flex _flexCol _gap6 _p6",
22
+ "state": ["portfolioMetrics:resource", "selectedPeriod:signal", "goalData:resource"],
23
+ "routes": ["/dashboard"]
24
+ }
25
+ },
26
+ "origination-tracking": {
27
+ "t": "core",
28
+ "w": 0.95,
29
+ "label": "Origination Tracking",
30
+ "desc": "Monitor loan production volume, velocity, and officer performance",
31
+ "requires": [],
32
+ "implies": ["portfolio-overview"],
33
+ "questions": [
34
+ { "id": "origination-group", "q": "Track originations by?", "opts": ["loan-officer", "branch", "product-type", "all"], "default": "all" }
35
+ ],
36
+ "ux": ["filter bar for date range and group-by", "KPI row for volume/count/avg-size", "chart grid for trends", "data table with drill-down"],
37
+ "decantr": {
38
+ "components": ["DataTable", "Chart", "Select", "DateRangePicker", "Badge", "Statistic", "Card"],
39
+ "atoms": "_flex _flexCol _gap4 _p6",
40
+ "state": ["originations:resource", "originationFilters:store"],
41
+ "routes": ["/production"]
42
+ }
43
+ },
44
+ "pipeline-management": {
45
+ "t": "core",
46
+ "w": 0.92,
47
+ "label": "Pipeline Management",
48
+ "desc": "Stage-based loan pipeline with funnel visualization and drill-down",
49
+ "requires": [],
50
+ "implies": ["portfolio-overview"],
51
+ "questions": [
52
+ { "id": "pipeline-stages", "q": "Pipeline stages?", "opts": ["standard-5-stage", "custom"], "default": "standard-5-stage" }
53
+ ],
54
+ "ux": ["stage summary row with counts and values", "funnel or horizontal bar chart", "tabbed data table per stage", "conversion rate annotations between stages"],
55
+ "decantr": {
56
+ "components": ["DataTable", "Chart", "Tabs", "Badge", "Statistic", "Select", "Card"],
57
+ "atoms": "_flex _flexCol _gap4 _p6",
58
+ "state": ["pipelineData:resource", "selectedStage:signal", "pipelineFilters:store"],
59
+ "routes": ["/pipeline"]
60
+ }
61
+ },
62
+ "search": {
63
+ "t": "core",
64
+ "w": 0.88,
65
+ "label": "Global Search",
66
+ "desc": "Search loans, borrowers, and accounts by keyword",
67
+ "requires": [],
68
+ "implies": [],
69
+ "ux": ["Cmd+K modal search", "debounced query", "grouped results by entity type"],
70
+ "decantr": {
71
+ "components": ["Input", "Combobox", "Modal", "Spinner", "Badge"],
72
+ "atoms": "_flex _gap2",
73
+ "state": ["searchQuery:signal", "searchResults:resource"],
74
+ "routes": []
75
+ }
76
+ },
77
+ "auth": {
78
+ "t": "core",
79
+ "w": 0.9,
80
+ "label": "Authentication",
81
+ "desc": "Login, session management, role-based access",
82
+ "requires": [],
83
+ "implies": [],
84
+ "questions": [
85
+ { "id": "auth-provider", "q": "Which auth provider?", "opts": ["supabase", "firebase", "custom-api", "none-yet"], "default": "none-yet" }
86
+ ],
87
+ "ux": ["centered card login form", "toast on auth errors", "redirect after login"],
88
+ "decantr": {
89
+ "components": ["Card", "Input", "Button", "Alert", "Separator"],
90
+ "atoms": "_flex _center _minhscreen",
91
+ "state": ["user:signal", "isAuthenticated:memo", "authLoading:signal"],
92
+ "routes": ["/login"]
93
+ }
94
+ },
95
+ "approval-analysis": {
96
+ "t": "core",
97
+ "w": 0.85,
98
+ "label": "Approval Analysis",
99
+ "desc": "Approval/denial rates, decisioning metrics, comparison to benchmarks",
100
+ "requires": [],
101
+ "implies": ["portfolio-overview"],
102
+ "ux": ["chart grid for approval rate trends", "comparison panel for benchmark vs actual", "data table with denial reasons", "filter bar for product/period"],
103
+ "decantr": {
104
+ "components": ["Chart", "DataTable", "Statistic", "Badge", "Select", "DateRangePicker", "Card"],
105
+ "atoms": "_flex _flexCol _gap4 _p6",
106
+ "state": ["approvalData:resource", "approvalFilters:store"],
107
+ "routes": ["/approvals"]
108
+ }
109
+ },
110
+ "collections-monitoring": {
111
+ "t": "core",
112
+ "w": 0.85,
113
+ "label": "Collections Monitoring",
114
+ "desc": "Delinquency tracking, aging buckets, collection effectiveness",
115
+ "requires": [],
116
+ "implies": ["portfolio-overview"],
117
+ "questions": [
118
+ { "id": "delinquency-buckets", "q": "Delinquency buckets?", "opts": ["30-60-90", "30-60-90-120", "custom"], "default": "30-60-90" }
119
+ ],
120
+ "ux": ["KPI grid for delinquency rates per bucket", "goal tracker for collection targets", "trend charts", "data table with delinquent accounts"],
121
+ "decantr": {
122
+ "components": ["DataTable", "Chart", "Progress", "Badge", "Statistic", "Card", "Sparkline"],
123
+ "atoms": "_flex _flexCol _gap4 _p6",
124
+ "state": ["collectionsData:resource", "agingBuckets:resource", "collectionGoals:resource"],
125
+ "routes": ["/collections"]
126
+ }
127
+ },
128
+ "rate-analysis": {
129
+ "t": "should",
130
+ "w": 0.75,
131
+ "label": "Rate Analysis",
132
+ "desc": "Interest rate trends, margin analysis, rate lock monitoring",
133
+ "requires": [],
134
+ "implies": [],
135
+ "ux": ["chart grid with rate trend lines and reference annotations", "comparison panel for rate vs benchmark"],
136
+ "decantr": {
137
+ "components": ["Chart", "Statistic", "Card", "Badge", "Select"],
138
+ "atoms": "_flex _flexCol _gap4 _p6",
139
+ "state": ["rateData:resource", "rateFilters:store"],
140
+ "routes": ["/rates"]
141
+ }
142
+ },
143
+ "compliance-tracking": {
144
+ "t": "should",
145
+ "w": 0.7,
146
+ "label": "Compliance Tracking",
147
+ "desc": "Regulatory compliance metrics (HMDA, CRA, Fair Lending)",
148
+ "requires": [],
149
+ "implies": [],
150
+ "questions": [
151
+ { "id": "compliance-framework", "q": "Compliance framework?", "opts": ["hmda", "cra", "fair-lending", "custom"], "default": "hmda" }
152
+ ],
153
+ "ux": ["scorecard with compliance metrics grouped by regulation", "data table for audit items", "timeline for compliance events"],
154
+ "decantr": {
155
+ "components": ["DataTable", "Progress", "Badge", "Timeline", "Separator", "Card"],
156
+ "atoms": "_flex _flexCol _gap6 _p6",
157
+ "state": ["complianceData:resource", "complianceFilters:store"],
158
+ "routes": ["/compliance"]
159
+ }
160
+ },
161
+ "outreach-program": {
162
+ "t": "should",
163
+ "w": 0.65,
164
+ "label": "Outreach Program",
165
+ "desc": "Denied applicant outreach, underserved member programs, community engagement",
166
+ "requires": [],
167
+ "implies": [],
168
+ "questions": [
169
+ { "id": "outreach-scope", "q": "Outreach scope?", "opts": ["denied-applicants", "underserved-members", "both"], "default": "both" }
170
+ ],
171
+ "ux": ["scorecard for outreach metrics", "data table with contact lists", "activity feed for outreach log"],
172
+ "decantr": {
173
+ "components": ["DataTable", "Progress", "Badge", "Avatar", "Card", "Separator"],
174
+ "atoms": "_flex _flexCol _gap4 _p6",
175
+ "state": ["outreachData:resource", "outreachFilters:store"],
176
+ "routes": ["/outreach"]
177
+ }
178
+ },
179
+ "vendor-management": {
180
+ "t": "should",
181
+ "w": 0.6,
182
+ "label": "Vendor Management",
183
+ "desc": "Manage third-party vendor relationships and contracts",
184
+ "requires": [],
185
+ "implies": [],
186
+ "ux": ["data table for vendor list", "detail panel for vendor info", "form sections for vendor editing"],
187
+ "decantr": {
188
+ "components": ["DataTable", "Card", "Button", "Input", "Select", "Tabs", "Badge"],
189
+ "atoms": "_flex _flexCol _gap4 _p6",
190
+ "state": ["vendors:resource", "selectedVendor:signal"],
191
+ "routes": ["/vendors"]
192
+ }
193
+ },
194
+ "report-generation": {
195
+ "t": "should",
196
+ "w": 0.6,
197
+ "label": "Report Generation",
198
+ "desc": "Generate and export performance reports",
199
+ "requires": [],
200
+ "implies": [],
201
+ "ux": ["data table with report templates", "chart grid for report preview", "export button for PDF/CSV"],
202
+ "decantr": {
203
+ "components": ["DataTable", "Chart", "Button", "Select", "DateRangePicker", "Card"],
204
+ "atoms": "_flex _flexCol _gap4 _p6",
205
+ "state": ["reportConfig:store", "reportData:resource"],
206
+ "routes": ["/reports"]
207
+ }
208
+ },
209
+ "user-management": {
210
+ "t": "should",
211
+ "w": 0.6,
212
+ "label": "User Management",
213
+ "desc": "Manage user accounts, roles, and permissions",
214
+ "requires": ["auth"],
215
+ "implies": [],
216
+ "ux": ["data table for user list", "form sections for user editing", "role badge indicators"],
217
+ "decantr": {
218
+ "components": ["DataTable", "Card", "Button", "Input", "Select", "Badge", "Avatar"],
219
+ "atoms": "_flex _flexCol _gap4 _p6",
220
+ "state": ["users:resource", "selectedUser:signal"],
221
+ "routes": ["/settings/users"]
222
+ }
223
+ },
224
+ "product-configuration": {
225
+ "t": "should",
226
+ "w": 0.55,
227
+ "label": "Product Configuration",
228
+ "desc": "Configure loan products, rates, terms, and eligibility criteria",
229
+ "requires": [],
230
+ "implies": [],
231
+ "ux": ["data table for product list", "form sections for product editing", "detail panel for product specs"],
232
+ "decantr": {
233
+ "components": ["DataTable", "Card", "Button", "Input", "Select", "Tabs", "InputNumber"],
234
+ "atoms": "_flex _flexCol _gap4 _p6",
235
+ "state": ["loanProducts:resource", "selectedProduct:signal"],
236
+ "routes": ["/products"]
237
+ }
238
+ },
239
+ "scorecard-reviews": {
240
+ "t": "should",
241
+ "w": 0.5,
242
+ "label": "Scorecard Reviews",
243
+ "desc": "Periodic performance scorecards for teams and individuals",
244
+ "requires": [],
245
+ "implies": [],
246
+ "ux": ["scorecard pattern with grouped metrics", "goal tracker for target tracking", "timeline for review history"],
247
+ "decantr": {
248
+ "components": ["DataTable", "Progress", "Badge", "Timeline", "Avatar", "Card", "Separator"],
249
+ "atoms": "_flex _flexCol _gap6 _p6",
250
+ "state": ["scorecardData:resource", "reviewPeriod:signal"],
251
+ "routes": ["/scorecard"]
252
+ }
253
+ },
254
+ "settings": {
255
+ "t": "should",
256
+ "w": 0.5,
257
+ "label": "Settings",
258
+ "desc": "Application preferences, theme, notifications",
259
+ "requires": ["auth"],
260
+ "implies": [],
261
+ "ux": ["form sections for preferences", "Tabs for settings categories"],
262
+ "decantr": {
263
+ "components": ["Card", "Input", "Select", "Switch", "Button", "Tabs", "Separator"],
264
+ "atoms": "_flex _flexCol _gap4 _p6 _ctrsm",
265
+ "state": ["settingsForm:store"],
266
+ "routes": ["/settings"]
267
+ }
268
+ },
269
+ "notifications": {
270
+ "t": "nice",
271
+ "w": 0.4,
272
+ "label": "Notifications",
273
+ "desc": "In-app notification center for alerts and updates",
274
+ "requires": ["auth"],
275
+ "implies": [],
276
+ "ux": ["activity feed for notification list", "Badge count in nav", "mark-as-read action"],
277
+ "decantr": {
278
+ "components": ["Card", "Badge", "Button", "Dropdown", "Separator"],
279
+ "atoms": "_flex _flexCol _gap2",
280
+ "state": ["notifications:resource", "unreadCount:memo"],
281
+ "routes": ["/notifications"]
282
+ }
283
+ },
284
+ "navbar": {
285
+ "t": "core",
286
+ "w": 0.92,
287
+ "label": "Sidebar Navigation",
288
+ "desc": "Collapsible sidebar with section grouping and active indicators",
289
+ "requires": [],
290
+ "implies": [],
291
+ "ux": ["collapsible sidebar with icon + label", "grouped nav sections", "active route highlighting", "user menu at bottom"],
292
+ "decantr": {
293
+ "components": ["Button", "Badge", "Avatar", "Separator", "Tooltip"],
294
+ "atoms": "_flex _flexCol _h100 _bgmuted _p3",
295
+ "state": ["sidebarCollapsed:signal", "activeRoute:memo"],
296
+ "routes": []
297
+ }
298
+ }
299
+ },
300
+ "cross_cutting": ["responsive", "mobile-nav", "loading-states", "error-handling", "empty-states", "a11y", "persistence"],
301
+ "suggested_theme": ["dark", "auto"]
302
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://decantr.ai/schemas/architect.v1.json",
3
+ "version": "0.1.0",
4
+ "description": "Application Architect — domain knowledge graphs for blueprint generation",
5
+ "domains": {
6
+ "ecommerce": {
7
+ "name": "eCommerce",
8
+ "file": "domains/ecommerce.json",
9
+ "features": 18,
10
+ "suggested_theme": ["light", "dark"]
11
+ }
12
+ },
13
+ "cross_cutting": "cross-cutting.json",
14
+ "algorithms": {
15
+ "classification": "Weighted keyword matching — see AGENTS.md § Application Architect",
16
+ "activation": "DAG forward-chaining with 0.85 decay — see AGENTS.md § Application Architect",
17
+ "scoring": "Tier-stratified weighted coverage — see AGENTS.md § Application Architect",
18
+ "questions": "Priority-weighted gap scoring, max 5 per round — see AGENTS.md § Application Architect",
19
+ "blueprint": "Structured JSON spec — see AGENTS.md § Application Architect"
20
+ },
21
+ "tiers": {
22
+ "core": { "range": [0.85, 1.0], "behavior": "Auto-included, never questioned" },
23
+ "should": { "range": [0.5, 0.8], "behavior": "Included by default, can be deferred" },
24
+ "nice": { "range": [0.2, 0.45], "behavior": "Surfaced via questions" }
25
+ }
26
+ }