howone 0.1.29 → 0.1.31
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.
- package/package.json +1 -1
- package/templates/vite/.howone/skills/hallmark/SKILL.md +48 -42
- package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +12 -6
- package/templates/vite/.howone/skills/hallmark/references/assets.md +7 -0
- package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +19 -10
- package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/components/n11-mega-menu.md +40 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n12-banner-retract.md +34 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n13-inline-cmdk-pill.md +39 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n1b-saas-three-section.md +35 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +2 -2
- package/templates/vite/.howone/skills/hallmark/references/copy.md +8 -8
- package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +2 -2
- package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +50 -12
- package/templates/vite/.howone/skills/hallmark/references/export-formats.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +11 -7
- package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +6 -4
- package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +10 -6
- package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +15 -10
- package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +13 -12
- package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +2 -1
- package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +4 -3
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +3 -1
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +1 -1
- package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +1 -3
- package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +12 -12
- package/templates/vite/.howone/skills/hallmark/references/responsive.md +8 -8
- package/templates/vite/.howone/skills/hallmark/references/slop-test.md +72 -85
- package/templates/vite/.howone/skills/hallmark/references/structure.md +9 -13
- package/templates/vite/.howone/skills/hallmark/references/study.md +40 -17
- package/templates/vite/.howone/skills/hallmark/references/themes/carnival.md +301 -0
- package/templates/vite/.howone/skills/hallmark/references/themes/cobalt.md +146 -0
- package/templates/vite/.howone/skills/hallmark/references/themes/hum.md +403 -0
- package/templates/vite/.howone/skills/hallmark/references/themes/lumen.md +478 -0
- package/templates/vite/.howone/skills/hallmark/references/typography.md +3 -3
- package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +1 -1
- package/templates/vite/.howone/skills/howone/01-architect/01-app-generation.md +132 -176
- package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/01-schema-design.md +3 -1
- package/templates/vite/.howone/skills/howone/{04-ai → 03-ai-capabilities}/01-ai-capability-architecture.md +6 -5
- package/templates/vite/.howone/skills/howone/{04-ai/04-service-capability-catalog.md → 03-ai-capabilities/03-service-capability-catalog.md} +15 -11
- package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/01-client-setup.md +6 -4
- package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/07-ai-action-calls.md +3 -3
- package/templates/vite/.howone/skills/howone/{04-ai/03-ai-sdk-handoff.md → 04-app-sdk/08-ai-manifest-handoff.md} +2 -2
- package/templates/vite/.howone/skills/howone/SKILL.md +98 -131
- package/templates/vite/.howone/skills/howone/agents/openai.yaml +3 -3
- package/templates/vite/AGENTS.md +2 -2
- package/templates/vite/.howone/skills/hallmark/LICENSE +0 -21
- package/templates/vite/.howone/skills/hallmark/README.md +0 -147
- package/templates/vite/.howone/skills/hallmark/ROADMAP.md +0 -201
- package/templates/vite/.howone/skills/hallmark/docs/recipes.md +0 -186
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +0 -176
- package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +0 -364
- package/templates/vite/.howone/skills/hallmark/package.json +0 -36
- package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +0 -71
- package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +0 -64
- package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +0 -240
- package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +0 -65
- package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +0 -105
- package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +0 -250
- package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +0 -64
- package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +0 -131
- package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +0 -240
- package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +0 -67
- package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +0 -86
- package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +0 -262
- package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +0 -63
- package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +0 -167
- package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +0 -457
- package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +0 -65
- package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +0 -159
- package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +0 -288
- package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +0 -64
- package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +0 -146
- package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +0 -484
- package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +0 -64
- package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +0 -116
- package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +0 -354
- package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +0 -638
- package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +0 -515
- package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +0 -515
- package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +0 -608
- package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +0 -587
- package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +0 -157
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +0 -77
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +0 -238
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +0 -110
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +0 -326
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +0 -134
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +0 -262
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +0 -30
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +0 -17
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +0 -56
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +0 -160
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +0 -29
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +0 -63
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +0 -72
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +0 -374
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +0 -52
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +0 -29
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +0 -61
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +0 -193
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +0 -66
- package/templates/vite/.howone/skills/hallmark/site/css/base.css +0 -194
- package/templates/vite/.howone/skills/hallmark/site/css/components.css +0 -4886
- package/templates/vite/.howone/skills/hallmark/site/css/sections.css +0 -2072
- package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +0 -1129
- package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +0 -475
- package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +0 -1584
- package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +0 -96
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +0 -344
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +0 -103
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +0 -1103
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +0 -83
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +0 -368
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +0 -133
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +0 -1062
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +0 -97
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +0 -84
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +0 -446
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +0 -1087
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +0 -101
- package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +0 -359
- package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +0 -1168
- package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +0 -81
- package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +0 -5
- package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +0 -5
- package/templates/vite/.howone/skills/hallmark/site/index.html +0 -1043
- package/templates/vite/.howone/skills/hallmark/site/js/main.js +0 -1175
- package/templates/vite/.howone/skills/hallmark/vercel.json +0 -6
- package/templates/vite/.howone/skills/impeccable/SKILL.md +0 -168
- package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +0 -101
- package/templates/vite/.howone/skills/impeccable/reference/adapt.md +0 -190
- package/templates/vite/.howone/skills/impeccable/reference/animate.md +0 -175
- package/templates/vite/.howone/skills/impeccable/reference/audit.md +0 -133
- package/templates/vite/.howone/skills/impeccable/reference/bolder.md +0 -113
- package/templates/vite/.howone/skills/impeccable/reference/brand.md +0 -118
- package/templates/vite/.howone/skills/impeccable/reference/clarify.md +0 -174
- package/templates/vite/.howone/skills/impeccable/reference/codex.md +0 -105
- package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +0 -106
- package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +0 -105
- package/templates/vite/.howone/skills/impeccable/reference/colorize.md +0 -154
- package/templates/vite/.howone/skills/impeccable/reference/craft.md +0 -123
- package/templates/vite/.howone/skills/impeccable/reference/critique.md +0 -273
- package/templates/vite/.howone/skills/impeccable/reference/delight.md +0 -302
- package/templates/vite/.howone/skills/impeccable/reference/distill.md +0 -111
- package/templates/vite/.howone/skills/impeccable/reference/document.md +0 -427
- package/templates/vite/.howone/skills/impeccable/reference/extract.md +0 -69
- package/templates/vite/.howone/skills/impeccable/reference/harden.md +0 -347
- package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +0 -234
- package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +0 -195
- package/templates/vite/.howone/skills/impeccable/reference/layout.md +0 -141
- package/templates/vite/.howone/skills/impeccable/reference/live.md +0 -622
- package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +0 -109
- package/templates/vite/.howone/skills/impeccable/reference/onboard.md +0 -234
- package/templates/vite/.howone/skills/impeccable/reference/optimize.md +0 -258
- package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +0 -130
- package/templates/vite/.howone/skills/impeccable/reference/personas.md +0 -179
- package/templates/vite/.howone/skills/impeccable/reference/polish.md +0 -242
- package/templates/vite/.howone/skills/impeccable/reference/product.md +0 -62
- package/templates/vite/.howone/skills/impeccable/reference/quieter.md +0 -99
- package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +0 -114
- package/templates/vite/.howone/skills/impeccable/reference/shape.md +0 -165
- package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +0 -100
- package/templates/vite/.howone/skills/impeccable/reference/teach.md +0 -156
- package/templates/vite/.howone/skills/impeccable/reference/typeset.md +0 -124
- package/templates/vite/.howone/skills/impeccable/reference/typography.md +0 -159
- package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +0 -107
- package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +0 -284
- package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +0 -94
- package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +0 -242
- package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +0 -820
- package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +0 -198
- package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +0 -21
- package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +0 -110
- package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +0 -69
- package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +0 -595
- package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +0 -123
- package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +0 -4860
- package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +0 -75
- package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +0 -18
- package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +0 -446
- package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +0 -200
- package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +0 -48
- package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +0 -838
- package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +0 -254
- package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +0 -47
- package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +0 -632
- package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +0 -247
- package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +0 -141
- package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +0 -14
- package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +0 -214
- /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/02-schema-operations.md +0 -0
- /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/03-data-access-patterns.md +0 -0
- /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/04-query-dsl-and-responses.md +0 -0
- /package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/05-ai-persistence-patterns.md +0 -0
- /package/templates/vite/.howone/skills/howone/{04-ai → 03-ai-capabilities}/02-workflow-contract-rules.md +0 -0
- /package/templates/vite/.howone/skills/howone/{04-ai/05-workflow-operations.md → 03-ai-capabilities/04-workflow-operations.md} +0 -0
- /package/templates/vite/.howone/skills/howone/{04-ai/06-ai-feature-playbooks.md → 03-ai-capabilities/05-ai-feature-playbooks.md} +0 -0
- /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/02-entity-operations.md +0 -0
- /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/03-auth.md +0 -0
- /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/04-react-integration.md +0 -0
- /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/05-file-upload.md +0 -0
- /package/templates/vite/.howone/skills/howone/{03-sdk → 04-app-sdk}/06-raw-http.md +0 -0
- /package/templates/vite/.howone/skills/howone/{03-sdk/08-extension-boundaries.md → 04-app-sdk/09-extension-boundaries.md} +0 -0
- /package/templates/vite/.howone/skills/howone/{03-sdk/09-workflow-execute-sse.md → 04-app-sdk/10-workflow-execute-sse.md} +0 -0
|
@@ -1,215 +1,171 @@
|
|
|
1
1
|
# App Generation Architect
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Read immediately after `skill(name="howone")` and before platform design tools, SDK contract
|
|
4
|
+
edits, or implementation guesses.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
HowOne is a generated app platform. This file classifies **user scope**, separates **platform
|
|
7
|
+
contracts** from **app-owned integrations**, routes to tracks (see `SKILL.md` index), and sets
|
|
8
|
+
data/auth posture. File-level detail stays in each track—not here.
|
|
8
9
|
|
|
9
|
-
##
|
|
10
|
+
## Scope classification
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
Map the user request to surfaces. Include only what they need.
|
|
12
13
|
|
|
13
|
-
|
|
|
14
|
+
| Need | Tracks | Notes |
|
|
14
15
|
|---|---|---|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
16
|
+
| Unclear or full product scope | `01-architect/` (+ others as discovered) | Finish this file before other tracks |
|
|
17
|
+
| Persisted app data on HowOne | `02-entity-schema/` → sync → `04-app-sdk/` | Skip if no storage |
|
|
18
|
+
| HowOne AI features | `03-ai-capabilities/` → sync → `04-app-sdk/` | Verify catalog before design |
|
|
19
|
+
| SDK wiring, auth, UI calls | `04-app-sdk/` | After manifests exist when contracts apply |
|
|
20
|
+
| UI only, no HowOne data/AI | App code under `{appRoot}` | No schema/AI design tools |
|
|
21
|
+
| External systems the user provides | App code + config | Not platform contracts unless combined with rows above |
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
**Mixed scope:** read at least one file per touched track (`SKILL.md` index) before writing.
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
user request -> architecture decision -> backend/AI contracts -> sync manifests -> sdk binding -> UI
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Do not skip the binding layer. UI code should import `howone` from `src/lib/sdk.ts`, not construct
|
|
27
|
-
raw URLs or guessed entity/action names.
|
|
25
|
+
## HowOne platform boundary
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
Use this decision model for **any** user request. Do not maintain a mental deny-list of technologies
|
|
28
|
+
(K8s, message buses, custom protocols, etc.). Ask whether the ask is a **platform contract surface**
|
|
29
|
+
or **app-owned**.
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
### Platform provides (evidence required)
|
|
32
32
|
|
|
33
|
-
|
|
|
33
|
+
| Surface | Evidence to check | Design track |
|
|
34
34
|
|---|---|---|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
| "upload file/image/audio/pdf" | upload + maybe AI URL input | `03-sdk/05-file-upload.md`, `04-ai/02-workflow-contract-rules.md` |
|
|
40
|
-
| "change schema/add field/new table" | schema operations + manifest codegen | `02-database/02-schema-operations.md`, `01-architect/02-manifest-codegen.md` |
|
|
41
|
-
| "frontend only" | SDK usage + UI | `03-sdk/01-client-setup.md` and relevant SDK docs |
|
|
42
|
-
|
|
43
|
-
If multiple surfaces are touched, read one reference from each surface before editing.
|
|
44
|
-
|
|
45
|
-
## Data Posture Decision
|
|
46
|
-
|
|
47
|
-
Choose data posture before schema and UI.
|
|
48
|
-
|
|
49
|
-
| Product need | Access contract | SDK read |
|
|
50
|
-
|---|---|---|
|
|
51
|
-
| per-user private data | authenticated own, public none | `howone.entities.X.query.mine()` |
|
|
52
|
-
| logged-in shared admin/team data | authenticated all, public none | `howone.entities.X.query()` |
|
|
53
|
-
| anonymous public catalog/feed | authenticated all, public list | `howone.public.entities.X.query()` |
|
|
54
|
-
| one public share/detail page | authenticated own/all, public scoped | `howone.public.entities.X.queryScoped()` |
|
|
55
|
-
| anonymous form submission | authenticated all, public create scoped/any | `howone.public.entities.X.create()` |
|
|
56
|
-
| AI generation history | authenticated own, public none | `runAiActionAndPersist()` + `query.mine()` |
|
|
57
|
-
| AI public share | private history + public scoped share entity | two entities |
|
|
58
|
-
|
|
59
|
-
Defaults:
|
|
60
|
-
|
|
61
|
-
- "my" / "per user" / "private" -> authenticated own.
|
|
62
|
-
- "landing page" / "blog" / "gallery" -> public list only if fields are safe.
|
|
63
|
-
- "share link" / "QR" / "public result" -> public scoped, small `maxLimit`.
|
|
64
|
-
- "AI history" -> private history entity; do not make it public just for sharing.
|
|
65
|
-
|
|
66
|
-
## Auth Decision
|
|
67
|
-
|
|
68
|
-
| Need | SDK config | Provider behavior |
|
|
69
|
-
|---|---|---|
|
|
70
|
-
| default HowOne login | `createClient({ projectId, env })` | hosted login |
|
|
71
|
-
| custom designed login page using HowOne auth APIs | `auth: 'custom'`, `HowOneProvider auth="none"` | app owns login UI |
|
|
72
|
-
| external identity provider/JWT | `auth: { mode: 'headless', adapter }` | adapter owns token/user |
|
|
73
|
-
| public-only app | `auth: 'none'` | no auth guard |
|
|
74
|
-
|
|
75
|
-
Rules:
|
|
76
|
-
|
|
77
|
-
- Keep the bottom-right HowOne `FloatingButton` by default unless explicitly hidden.
|
|
78
|
-
- SDK must not add toast/overlay/login-page UI.
|
|
79
|
-
- Use `client.me()` or `client.requireMe()` for first-load user resolution.
|
|
80
|
-
- Do not use `auth.isAuthenticated()` as the only initial truth when user data must be loaded.
|
|
81
|
-
|
|
82
|
-
## Backend Feature Workflow
|
|
83
|
-
|
|
84
|
-
Use when persistence or schema changes are needed:
|
|
35
|
+
| Persisted structured data on HowOne | Schema tools + `{appRoot}/.howone/database/manifest.json` | `02-entity-schema/` |
|
|
36
|
+
| AI execution on HowOne workflow service | `03-service-capability-catalog.md` + AI manifest + AI tools | `03-ai-capabilities/` |
|
|
37
|
+
| App calls HowOne runtime | Synced manifests + `04-app-sdk/` reference for that behavior | `04-app-sdk/` |
|
|
38
|
+
| Mutating platform contracts | `backend-api-design`, `ai-capability-design`, sync tools, `external-ai-capability` | Per surface |
|
|
85
39
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
4. Design complete entity contract: fields, required, access, indexes, presentation.
|
|
90
|
-
5. Preview one complete schema patch.
|
|
91
|
-
6. Apply the exact previewed patch if risk is acceptable.
|
|
92
|
-
7. Sync schema artifacts from returned version.
|
|
93
|
-
8. Read `.howone/database/manifest.json`.
|
|
94
|
-
9. Update `src/lib/sdk.ts` from manifest using `01-architect/02-manifest-codegen.md`.
|
|
95
|
-
10. Implement UI with `howone.entities.*` or `howone.public.entities.*`.
|
|
96
|
-
11. Validate build/tests.
|
|
40
|
+
If none of these surfaces can express the user's **platform** requirement after checking contracts,
|
|
41
|
+
catalog, and tool schemas, it is a **platform gap**—not an automatic ban on whatever technology the
|
|
42
|
+
user named.
|
|
97
43
|
|
|
98
|
-
|
|
44
|
+
### App-owned (not platform gap)
|
|
99
45
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
- broadening public access;
|
|
103
|
-
- enabling public write;
|
|
104
|
-
- changing owner/public scope semantics.
|
|
46
|
+
Anything the user runs, hosts, or buys **outside** HowOne contracts: orchestration, clusters,
|
|
47
|
+
custom APIs, message systems, identity products, analytics, payment gateways, etc.
|
|
105
48
|
|
|
106
|
-
|
|
49
|
+
- Implement in application code and configuration under `{appRoot}`.
|
|
50
|
+
- **Do not refuse** because HowOne does not provision it.
|
|
51
|
+
- **Do not** call platform design tools to fake it as entities, AI capabilities, or manifest fields.
|
|
52
|
+
- **Do not** tell the user they cannot use their own stack—only clarify it is outside HowOne platform scope.
|
|
107
53
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
1. Read `04-ai/01-ai-capability-architecture.md`.
|
|
111
|
-
2. Read `04-ai/04-service-capability-catalog.md` to verify support.
|
|
112
|
-
3. Pick a playbook from `04-ai/06-ai-feature-playbooks.md` when applicable.
|
|
113
|
-
4. Design schemas with `04-ai/02-workflow-contract-rules.md`.
|
|
114
|
-
5. Preview/apply AI capability patch.
|
|
115
|
-
6. Sync `.howone/ai/manifest.json`.
|
|
116
|
-
7. Submit external workflow create/update using `04-ai/05-workflow-operations.md`.
|
|
117
|
-
8. Preserve returned `request_id`.
|
|
118
|
-
9. Poll status until terminal; preserve `workflowConfigID` on success.
|
|
119
|
-
10. Update `src/lib/sdk.ts` with `04-ai/03-ai-sdk-handoff.md`.
|
|
120
|
-
11. Implement UI through `howone.ai.*`.
|
|
121
|
-
12. If output persists, use `02-database/05-ai-persistence-patterns.md`.
|
|
122
|
-
|
|
123
|
-
Do not build fake AI. If the required capability is unsupported, report the exact gap.
|
|
124
|
-
|
|
125
|
-
## Manifest Codegen Workflow
|
|
126
|
-
|
|
127
|
-
Run after database or AI sync:
|
|
128
|
-
|
|
129
|
-
1. Read current `src/lib/sdk.ts`.
|
|
130
|
-
2. Read synced manifests.
|
|
131
|
-
3. Preserve existing exports and naming style.
|
|
132
|
-
4. Generate/update:
|
|
133
|
-
- entity `Record/Create/Update` types;
|
|
134
|
-
- optional exported `*EntityDefinition` for guards;
|
|
135
|
-
- `client.entity<...>()` bindings;
|
|
136
|
-
- AI Zod schemas and `defineAiAction(...)`;
|
|
137
|
-
- composed `howone` export.
|
|
138
|
-
5. Never write generated source under `.howone/`.
|
|
139
|
-
|
|
140
|
-
## Common User Situations
|
|
141
|
-
|
|
142
|
-
### User asks for "just a frontend"
|
|
143
|
-
|
|
144
|
-
Still check whether UI needs stored data, auth, upload, or AI. If it only renders static/local state,
|
|
145
|
-
do not invent schema or workflow. If it saves anything, use database flow.
|
|
146
|
-
|
|
147
|
-
### User asks for "AI app" but no persistence
|
|
148
|
-
|
|
149
|
-
Design AI capability and SDK binding only. Keep results in app state. Do not create entities unless
|
|
150
|
-
history, refresh resilience, user library, or share page is needed.
|
|
151
|
-
|
|
152
|
-
### User asks for "AI app with history"
|
|
153
|
-
|
|
154
|
-
Design AI first, then database:
|
|
54
|
+
### Boundary decision (always)
|
|
155
55
|
|
|
156
56
|
```text
|
|
157
|
-
|
|
57
|
+
1. What did the user ask for?
|
|
58
|
+
2. Does it require HowOne persisted data? → entity-schema path or skip
|
|
59
|
+
3. Does it require HowOne AI? → catalog + ai-capabilities path or skip
|
|
60
|
+
4. Is it only their external infrastructure? → app-owned; wire in UI/config
|
|
61
|
+
5. Did they ask for a platform feature with no contract evidence? → platform stop (generic)
|
|
62
|
+
6. Mixed? → platform parts via tracks; app-owned parts in app code
|
|
158
63
|
```
|
|
159
64
|
|
|
160
|
-
|
|
65
|
+
### Platform scope rules
|
|
161
66
|
|
|
162
|
-
|
|
67
|
+
- **No invented platform APIs:** Only fields and behaviors present in manifests, catalog, tools, or documented SDK references.
|
|
68
|
+
- **No invalid shortcuts:** Do not handwrite `.howone/` metadata or guess version/workflow identifiers.
|
|
69
|
+
- **Stop wording:** Name the **missing contract surface** (e.g. no catalog family, no manifest binding, no tool operation)—not the user's technology choice.
|
|
163
70
|
|
|
164
|
-
|
|
71
|
+
When stopping a platform path, separate what HowOne can provide from what remains possible via app-owned integration.
|
|
165
72
|
|
|
166
|
-
-
|
|
167
|
-
- public scoped `SharedGeneration` for anonymous viewing.
|
|
73
|
+
Inspect-only platform reads do not replace this file before the first **design write**.
|
|
168
74
|
|
|
169
|
-
|
|
75
|
+
## Platform layers
|
|
170
76
|
|
|
171
|
-
|
|
77
|
+
| Layer | Source of truth | App responsibility |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| Database | `{appRoot}/.howone/database/manifest.json` | Types/bindings via SDK |
|
|
80
|
+
| AI | `{appRoot}/.howone/ai/manifest.json` + workflow status | AI bindings via SDK |
|
|
81
|
+
| SDK | `@howone/sdk` + `{appRoot}/src/lib/sdk.ts` | Single entry for HowOne calls |
|
|
82
|
+
| Frontend | App code | UI, state, feedback |
|
|
172
83
|
|
|
173
|
-
|
|
174
|
-
persistence after output contract.
|
|
84
|
+
Validated/synced manifests drive code—not prompts or memory.
|
|
175
85
|
|
|
176
|
-
|
|
86
|
+
```text
|
|
87
|
+
user request → scope → platform contracts → sync → sdk binding → UI
|
|
88
|
+
```
|
|
177
89
|
|
|
178
|
-
|
|
179
|
-
If input/output changes, update AI capability contract first, sync manifest, then update workflow
|
|
180
|
-
and SDK bindings.
|
|
90
|
+
Import `howone` from `src/lib/sdk.ts`; do not guess entity/action names or platform URLs.
|
|
181
91
|
|
|
182
|
-
|
|
92
|
+
## Minimum track reads (after this file)
|
|
183
93
|
|
|
184
|
-
|
|
94
|
+
Use `SKILL.md` for the full file index. Typical minimums:
|
|
185
95
|
|
|
186
|
-
|
|
96
|
+
| Surface in scope | Read at least |
|
|
97
|
+
|---|---|
|
|
98
|
+
| Entity/schema design | `02-entity-schema/01-schema-design.md`, `02-schema-operations.md` |
|
|
99
|
+
| Queries / public data | add `03-data-access-patterns.md`, `04-query-dsl-and-responses.md` |
|
|
100
|
+
| AI design | `03-ai-capabilities/01-ai-capability-architecture.md`, `03-service-capability-catalog.md`, `02-workflow-contract-rules.md` |
|
|
101
|
+
| AI + saved outputs | add `02-entity-schema/05-ai-persistence-patterns.md` after AI contract is known |
|
|
102
|
+
| Bindings after sync | `02-manifest-codegen.md` + relevant `04-app-sdk/` files |
|
|
187
103
|
|
|
188
|
-
|
|
189
|
-
only.
|
|
104
|
+
## Data posture
|
|
190
105
|
|
|
191
|
-
|
|
106
|
+
Choose before schema and UI.
|
|
192
107
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
108
|
+
| Product need | Access | SDK pattern |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| Per-user private data | authenticated own | `howone.entities.*.query.mine()` |
|
|
111
|
+
| Shared authenticated data | authenticated all | `howone.entities.*.query()` |
|
|
112
|
+
| Public catalog | public list where safe | `howone.public.entities.*.query()` |
|
|
113
|
+
| Public share/detail | public scoped | `howone.public.entities.*.queryScoped()` |
|
|
114
|
+
| Anonymous create | public create scoped/any | `howone.public.entities.*.create()` |
|
|
115
|
+
| AI run history | authenticated own | persist via entity + `query.mine()` |
|
|
116
|
+
| AI public share | private + public scoped entities | two entities |
|
|
202
117
|
|
|
203
|
-
|
|
118
|
+
Defaults: "my/private" → own; public catalog only when fields are safe; share links → scoped + limits.
|
|
204
119
|
|
|
205
|
-
|
|
120
|
+
## Auth posture
|
|
206
121
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
122
|
+
| Need | Client | Provider |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| Hosted HowOne login | default `createClient` | hosted |
|
|
125
|
+
| Custom login UI | `auth: 'custom'`, provider `auth="none"` | app UI |
|
|
126
|
+
| External IdP | headless + adapter | adapter owns token |
|
|
127
|
+
| No auth | `auth: 'none'` | — |
|
|
128
|
+
|
|
129
|
+
Keep default HowOne brand control unless user asks to hide. SDK exposes data/callbacks—not app toasts or overlays. Resolve user with `me()` / `requireMe()` when data depends on identity.
|
|
130
|
+
|
|
131
|
+
## Entity workflow (when `02-entity-schema/` in scope)
|
|
132
|
+
|
|
133
|
+
1. Read schema design + operations references.
|
|
134
|
+
2. Inspect current schema/manifest.
|
|
135
|
+
3. Design full entity contract (fields, access, indexes).
|
|
136
|
+
4. Preview → apply patch → `sync_schema_artifacts`.
|
|
137
|
+
5. Read `{appRoot}/.howone/database/manifest.json`.
|
|
138
|
+
6. Update `src/lib/sdk.ts` per `02-manifest-codegen.md`.
|
|
139
|
+
7. UI via `howone.entities.*` / public namespace; validate.
|
|
140
|
+
|
|
141
|
+
High-risk changes (delete entity/field, broaden public write, required without default) need explicit user alignment.
|
|
142
|
+
|
|
143
|
+
## AI workflow (when `03-ai-capabilities/` in scope)
|
|
144
|
+
|
|
145
|
+
1. Read architecture + **catalog** (feasibility) + contract rules; use playbooks when they match.
|
|
146
|
+
2. Preview → apply capability patch → `sync_ai_artifacts`.
|
|
147
|
+
3. External workflow create/update per workflow-operations reference; keep status IDs from tool results.
|
|
148
|
+
4. Read `{appRoot}/.howone/ai/manifest.json`.
|
|
149
|
+
5. Update `src/lib/sdk.ts` per `08-ai-manifest-handoff.md`; UI via `howone.ai.*`.
|
|
150
|
+
6. If persistence required: entity workflow after output contract is fixed.
|
|
151
|
+
|
|
152
|
+
Do not fake catalog-backed AI. Platform gap → stop AI design path, explain generically.
|
|
153
|
+
|
|
154
|
+
## Scope patterns (not a product catalog)
|
|
155
|
+
|
|
156
|
+
| Pattern | Platform work |
|
|
157
|
+
|---|---|
|
|
158
|
+
| Ephemeral AI result in UI state only | AI + SDK; skip entity-schema unless user adds storage |
|
|
159
|
+
| AI with history/library | AI contract first, then persistence entity |
|
|
160
|
+
| Public view of private AI output | private entity + scoped public entity |
|
|
161
|
+
| Behavior-only AI change | workflow update when schemas unchanged |
|
|
162
|
+
| Schema/UI drift | schema → sync → SDK → then UI |
|
|
163
|
+
|
|
164
|
+
## Checklist before implementation
|
|
165
|
+
|
|
166
|
+
- [ ] Scope explicit: which tracks apply; app-owned vs platform clear
|
|
167
|
+
- [ ] Data and auth posture chosen when data in scope
|
|
168
|
+
- [ ] AI requirements verified against catalog when AI in scope
|
|
169
|
+
- [ ] Manifests synced before SDK codegen
|
|
170
|
+
- [ ] `src/lib/sdk.ts` is the HowOne entrypoint
|
|
171
|
+
- [ ] UI owns visible feedback; no invented platform APIs
|
package/templates/vite/.howone/skills/howone/{02-database → 02-entity-schema}/01-schema-design.md
RENAMED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# Database Schema Design
|
|
2
2
|
|
|
3
|
+
**Track:** `02-entity-schema/` — platform entity contracts only; skip when the user needs no HowOne persisted data.
|
|
4
|
+
|
|
3
5
|
Use this reference when designing or changing HowOne backend entity schemas. It condenses the
|
|
4
6
|
runtime contract from `docs/dynamic-entity-architecture.zh.md` into instructions an AI agent can
|
|
5
7
|
actually apply.
|
|
6
8
|
|
|
7
9
|
This file answers: **what should the schema be?** For how to apply changes, read
|
|
8
10
|
`02-schema-operations.md`. For frontend calls, read `03-data-access-patterns.md` and
|
|
9
|
-
`
|
|
11
|
+
`04-app-sdk/02-entity-operations.md`.
|
|
10
12
|
|
|
11
13
|
## Mental Model
|
|
12
14
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# AI Capability Architecture
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
**Track:** `03-ai-capabilities/` — capability/workflow **design** only; SDK calls live in `04-app-sdk/`.
|
|
4
|
+
|
|
5
|
+
Use this reference when the user needs HowOne platform AI (verify `03-service-capability-catalog.md` first).
|
|
5
6
|
|
|
6
7
|
This file answers: **what AI layer should be designed, in what order, and where each responsibility
|
|
7
8
|
belongs?** For schema details read `02-workflow-contract-rules.md`. For workflow service calls read
|
|
8
|
-
`
|
|
9
|
+
`04-workflow-operations.md`.
|
|
9
10
|
|
|
10
11
|
## Platform Mental Model
|
|
11
12
|
|
|
@@ -46,7 +47,7 @@ Never generate SDK bindings from the user prompt or from an unsynced draft.
|
|
|
46
47
|
|
|
47
48
|
Use this flow for new AI features:
|
|
48
49
|
|
|
49
|
-
1. Classify the feature using `
|
|
50
|
+
1. Classify the feature using `03-ai-capabilities/03-service-capability-catalog.md`.
|
|
50
51
|
2. Decide whether the feature is supported. If not supported, stop and explain the missing capability.
|
|
51
52
|
3. Decide one workflow per user-facing feature. Use two workflows only for RAG.
|
|
52
53
|
4. Design `inputSchema` and `outputSchema` using `02-workflow-contract-rules.md`.
|
|
@@ -56,7 +57,7 @@ Use this flow for new AI features:
|
|
|
56
57
|
8. Store returned `request_id` values for polling.
|
|
57
58
|
9. Poll status until `completed` or `failed`.
|
|
58
59
|
10. On completed + `payload.success === true`, store `payload.workflow_details.new_workflow_config_id`.
|
|
59
|
-
11. Generate/update `src/lib/sdk.ts` using `
|
|
60
|
+
11. Generate/update `src/lib/sdk.ts` using `04-app-sdk/08-ai-manifest-handoff.md` and `01-architect/02-manifest-codegen.md`.
|
|
60
61
|
12. Implement UI calls through `howone.ai.<action>.run()`, `.stream()`, or `.events()`.
|
|
61
62
|
13. If output must persist, design entity schema and use `runAiActionAndPersist()` when appropriate.
|
|
62
63
|
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# Service Capability Catalog
|
|
2
2
|
|
|
3
|
-
Use this reference
|
|
4
|
-
service
|
|
3
|
+
Use this reference **only** for HowOne **workflow-service AI** feasibility. It lists what the current
|
|
4
|
+
workflow service supports—not everything a full product may use.
|
|
5
|
+
|
|
6
|
+
Infrastructure or products the user operates themselves (clusters, custom servers, third-party
|
|
7
|
+
APIs, etc.) are **app-owned** per `01-architect/01-app-generation.md`. They are out of scope for
|
|
8
|
+
this catalog and must not be rejected as "AI not supported" when the user only needs to connect to them in app code.
|
|
5
9
|
|
|
6
10
|
Source: `docs/ai-capability.md`.
|
|
7
11
|
|
|
@@ -268,14 +272,14 @@ Rules:
|
|
|
268
272
|
| Video -> Image edit -> Video | extract frame, edit frame, use as next reference |
|
|
269
273
|
| RAG document chat | indexing workflow + query workflow |
|
|
270
274
|
|
|
271
|
-
##
|
|
275
|
+
## Platform AI stop (catalog boundary)
|
|
276
|
+
|
|
277
|
+
Stop **platform AI design** (do not invent capabilities) when the requirement:
|
|
272
278
|
|
|
273
|
-
|
|
279
|
+
- has no matching capability family in this catalog or detailed sections below;
|
|
280
|
+
- needs behavior the workflow service cannot perform per contract rules in `02-workflow-contract-rules.md`;
|
|
281
|
+
- violates workflow input/output constraints (e.g. persistence or app CRUD inside the workflow contract);
|
|
282
|
+
- exceeds documented service limits after you read the relevant section.
|
|
274
283
|
|
|
275
|
-
|
|
276
|
-
-
|
|
277
|
-
- raw file bytes/base64 in workflow;
|
|
278
|
-
- database CRUD inside workflow;
|
|
279
|
-
- unsupported provider-specific model guarantees;
|
|
280
|
-
- content disallowed by moderation;
|
|
281
|
-
- long video generation in one call beyond service limits.
|
|
284
|
+
Explain the gap by **missing catalog/contract support**, not by naming the user's stack. Offer the
|
|
285
|
+
closest listed capability or ask to narrow the product ask. App-owned integrations remain allowed in parallel.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Client Setup
|
|
2
2
|
|
|
3
|
+
**Track:** `04-app-sdk/` — implement HowOne in the app from synced manifests; not schema/AI design.
|
|
4
|
+
|
|
3
5
|
## createClient
|
|
4
6
|
|
|
5
7
|
`createClient(opts: CreateClientOptions)` is the single factory for everything in the HowOne SDK. Call it once at module level and export the result (or the composed `howone` client).
|
|
@@ -85,7 +87,7 @@ client.schema.restore(versionId, reason?)
|
|
|
85
87
|
// AI action runner (low-level)
|
|
86
88
|
client.ai: AiClient
|
|
87
89
|
|
|
88
|
-
// HTTP utilities (low-level — see
|
|
90
|
+
// HTTP utilities (low-level — see 04-app-sdk/06-raw-http.md)
|
|
89
91
|
client.raw: RawHttpClient
|
|
90
92
|
|
|
91
93
|
// File upload
|
|
@@ -139,7 +141,7 @@ const client = createClient({
|
|
|
139
141
|
})
|
|
140
142
|
|
|
141
143
|
// ── 2. Define entity types & bind ────────────────────────────
|
|
142
|
-
// (see
|
|
144
|
+
// (see 04-app-sdk/02-entity-operations.md for full details)
|
|
143
145
|
export type NoteRecord = EntityRecord & { title: string; body: string }
|
|
144
146
|
export type NoteCreate = { title: string; body: string }
|
|
145
147
|
export type NoteUpdate = Partial<NoteCreate>
|
|
@@ -149,7 +151,7 @@ export const entities = defineEntities({
|
|
|
149
151
|
})
|
|
150
152
|
|
|
151
153
|
// ── 3. Define AI actions ─────────────────────────────────────
|
|
152
|
-
// (see
|
|
154
|
+
// (see 04-app-sdk/07-ai-action-calls.md for full details)
|
|
153
155
|
export const summarizeInputSchema = z.object({ noteId: z.string() })
|
|
154
156
|
export type SummarizeInput = z.infer<typeof summarizeInputSchema>
|
|
155
157
|
|
|
@@ -202,7 +204,7 @@ Rules:
|
|
|
202
204
|
|
|
203
205
|
## Auth Modes
|
|
204
206
|
|
|
205
|
-
See `
|
|
207
|
+
See `04-app-sdk/03-auth.md` for the full custom-login playbook.
|
|
206
208
|
|
|
207
209
|
```ts
|
|
208
210
|
// Default — HowOne hosted login (howone.dev / howone.ai)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**`src/lib/sdk.ts` must be generated from `.howone/ai/manifest.json`. Do not write it from memory or from generic examples.**
|
|
6
6
|
|
|
7
|
-
For AI capability and workflow design, read `
|
|
7
|
+
For AI capability and workflow design, read `03-ai-capabilities/` first. This file is only for app-side SDK
|
|
8
8
|
bindings and runtime calls after the manifest exists.
|
|
9
9
|
|
|
10
10
|
For every capability in `manifest.json`:
|
|
@@ -98,7 +98,7 @@ type AiEvent = {
|
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
Stream terminates after exactly one of: `run_complete`, `credit_insufficient`, or `run_error`.
|
|
101
|
-
For the full wire protocol, read `
|
|
101
|
+
For the full wire protocol, read `04-app-sdk/10-workflow-execute-sse.md`.
|
|
102
102
|
|
|
103
103
|
---
|
|
104
104
|
|
|
@@ -419,7 +419,7 @@ try {
|
|
|
419
419
|
## AI Result Persistence
|
|
420
420
|
|
|
421
421
|
When AI-generated content should be saved to an entity, prefer the SDK persistence helper for
|
|
422
|
-
history-style products. It standardizes the pending-first pattern from `02-
|
|
422
|
+
history-style products. It standardizes the pending-first pattern from `02-entity-schema/05-ai-persistence-patterns.md`
|
|
423
423
|
without adding UI behavior.
|
|
424
424
|
|
|
425
425
|
```ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# AI
|
|
1
|
+
# AI Manifest Handoff (App SDK)
|
|
2
2
|
|
|
3
3
|
Use this reference after AI capability artifacts have been synced and app code must call the
|
|
4
4
|
workflow through `@howone/sdk`.
|
|
@@ -6,7 +6,7 @@ workflow through `@howone/sdk`.
|
|
|
6
6
|
This file answers: **how does `.howone/ai/manifest.json` become `src/lib/sdk.ts`, and how should UI
|
|
7
7
|
call it?**
|
|
8
8
|
|
|
9
|
-
For live stream wire details, read `
|
|
9
|
+
For live stream wire details, read `04-app-sdk/10-workflow-execute-sse.md`. The current endpoint emits
|
|
10
10
|
only `run_start`, `progress`, `run_complete`, `run_error`, and `credit_insufficient`.
|
|
11
11
|
|
|
12
12
|
## Binding Source
|