howone 0.1.51 → 0.1.52
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/howone/03-ai-capabilities/01-ai-capability-architecture.md +16 -2
- package/templates/vite/.howone/skills/howone/03-ai-capabilities/02-workflow-contract-rules.md +107 -0
- package/templates/vite/.howone/skills/howone/03-ai-capabilities/03-service-capability-catalog.md +98 -22
- package/templates/vite/.howone/skills/howone/03-ai-capabilities/04-workflow-operations.md +8 -0
- package/templates/vite/.howone/skills/howone/03-ai-capabilities/05-ai-feature-playbooks.md +66 -1
- package/templates/vite/.howone/skills/web-clone/LICENSE +0 -21
- package/templates/vite/.howone/skills/web-clone/README.md +0 -179
- package/templates/vite/.howone/skills/web-clone/SKILL.md +0 -243
- package/templates/vite/.howone/skills/web-clone/follow-wechat-qrcode.jpg +0 -0
- package/templates/vite/.howone/skills/web-clone/references/assessment.md +0 -77
- package/templates/vite/.howone/skills/web-clone/references/complex-playbooks.md +0 -46
- package/templates/vite/.howone/skills/web-clone/references/deliverables.md +0 -144
- package/templates/vite/.howone/skills/web-clone/references/design-dna.md +0 -125
- package/templates/vite/.howone/skills/web-clone/references/effect-extraction.md +0 -73
- package/templates/vite/.howone/skills/web-clone/references/marbles-case.md +0 -31
- package/templates/vite/.howone/skills/web-clone/references/reverse-engineering.md +0 -34
- package/templates/vite/.howone/skills/web-clone/references/static-mirror.md +0 -72
- package/templates/vite/.howone/skills/web-clone/scripts/asset-harvest.mjs +0 -101
- package/templates/vite/.howone/skills/web-clone/scripts/audit-clone.mjs +0 -151
- package/templates/vite/.howone/skills/web-clone/scripts/compare-recon.mjs +0 -265
- package/templates/vite/.howone/skills/web-clone/scripts/dna-scaffold.mjs +0 -214
- package/templates/vite/.howone/skills/web-clone/scripts/init-clone.mjs +0 -136
- package/templates/vite/.howone/skills/web-clone/scripts/interaction-probe.mjs +0 -314
- package/templates/vite/.howone/skills/web-clone/scripts/lib/playwright-loader.mjs +0 -32
- package/templates/vite/.howone/skills/web-clone/scripts/mirror-site.mjs +0 -121
- package/templates/vite/.howone/skills/web-clone/scripts/network-capture.mjs +0 -127
- package/templates/vite/.howone/skills/web-clone/scripts/recon-site.mjs +0 -235
- package/templates/vite/.howone/skills/web-clone/scripts/route-crawl.mjs +0 -228
- package/templates/vite/.howone/skills/web-clone/scripts/sourcemap-hunt.mjs +0 -112
- package/templates/vite/.howone/skills/web-clone/scripts/visual-diff.mjs +0 -161
package/package.json
CHANGED
package/templates/vite/.howone/skills/howone/03-ai-capabilities/01-ai-capability-architecture.md
CHANGED
|
@@ -10,6 +10,14 @@ belongs?** For schema details read `02-workflow-contract-rules.md`. For workflow
|
|
|
10
10
|
|
|
11
11
|
## Platform Mental Model
|
|
12
12
|
|
|
13
|
+
HowOne workflow-service AI is a bounded catalog, not a general automation runtime. Before designing
|
|
14
|
+
an AI contract, verify the requested behavior matches the supported action families in
|
|
15
|
+
`03-service-capability-catalog.md`.
|
|
16
|
+
|
|
17
|
+
Streaming is not supported for AI workflow capability design. Do not design streaming execution,
|
|
18
|
+
streaming partial results, realtime tokens, or stream-based workflow contracts. Use non-streaming
|
|
19
|
+
status/result UI in app code when progress feedback is needed.
|
|
20
|
+
|
|
13
21
|
HowOne AI has five distinct layers:
|
|
14
22
|
|
|
15
23
|
| Layer | Owns | Does not own |
|
|
@@ -129,15 +137,19 @@ Workflow may do:
|
|
|
129
137
|
|
|
130
138
|
- generate, summarize, translate, classify, extract;
|
|
131
139
|
- search/crawl and synthesize;
|
|
132
|
-
-
|
|
140
|
+
- fetch RSS feeds by RSS URL;
|
|
141
|
+
- generate/edit/analyze images;
|
|
142
|
+
- generate video, concatenate videos, and extract first/last video frames;
|
|
143
|
+
- generate TTS audio, transcribe speech, and concatenate audio files;
|
|
133
144
|
- retrieve financial or academic data;
|
|
134
|
-
-
|
|
145
|
+
- create or modify supported files: text, PDF, DOCX, PPTX, and XLSX.
|
|
135
146
|
|
|
136
147
|
Workflow must not do:
|
|
137
148
|
|
|
138
149
|
- database create/read/update/delete;
|
|
139
150
|
- authentication/session logic;
|
|
140
151
|
- file upload from browser raw bytes;
|
|
152
|
+
- streaming output or realtime event delivery;
|
|
141
153
|
- payment processing;
|
|
142
154
|
- owner assignment or permissions;
|
|
143
155
|
- app navigation, UI state, toast, or modal logic.
|
|
@@ -164,6 +176,7 @@ Do not:
|
|
|
164
176
|
- hide the unsupported part;
|
|
165
177
|
- build a UI that pretends the workflow exists;
|
|
166
178
|
- replace the requested capability with a different one without saying so;
|
|
179
|
+
- imply streaming/realtime AI behavior is available;
|
|
167
180
|
- assume private APIs, external datasets, or providers that are not listed.
|
|
168
181
|
|
|
169
182
|
Correct response:
|
|
@@ -200,6 +213,7 @@ The description can be human readable. The ID must be stable for codegen.
|
|
|
200
213
|
Before editing files:
|
|
201
214
|
|
|
202
215
|
- Feature maps to available workflow capabilities.
|
|
216
|
+
- Streaming/realtime output is not required.
|
|
203
217
|
- One workflow per feature unless RAG.
|
|
204
218
|
- Description says what the user gets, not how tools run.
|
|
205
219
|
- Input schema accepts URLs for files, not raw bytes.
|
package/templates/vite/.howone/skills/howone/03-ai-capabilities/02-workflow-contract-rules.md
CHANGED
|
@@ -41,6 +41,19 @@ service reject the request or produce a workflow the runtime cannot execute reli
|
|
|
41
41
|
}
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
## Supported Capability Boundary
|
|
45
|
+
|
|
46
|
+
Design contracts only for capability families listed in `03-service-capability-catalog.md`.
|
|
47
|
+
Do not invent general workflow powers beyond that catalog. In particular:
|
|
48
|
+
|
|
49
|
+
- streaming execution and realtime partial results are not supported;
|
|
50
|
+
- file work is limited to creating or modifying text, PDF, DOCX, PPTX, and XLSX outputs;
|
|
51
|
+
- video work is limited to generation, concatenation, and first/last-frame extraction;
|
|
52
|
+
- audio work is limited to TTS, speech recognition, and concatenating audio files.
|
|
53
|
+
|
|
54
|
+
If the requested behavior needs anything outside the catalog, stop the AI workflow path and explain
|
|
55
|
+
the missing capability or ask the user to narrow the feature.
|
|
56
|
+
|
|
44
57
|
## Loose JSON Schema
|
|
45
58
|
|
|
46
59
|
The workflow engine is agentic. Overly strict schemas reduce reliability.
|
|
@@ -231,6 +244,21 @@ Instead:
|
|
|
231
244
|
2. app code persists through the entity runtime after SDK handoff;
|
|
232
245
|
3. durable fields map to the entity contract.
|
|
233
246
|
|
|
247
|
+
## No Streaming Contracts
|
|
248
|
+
|
|
249
|
+
HowOne AI workflow capability contracts are non-streaming. Do not add schema fields or descriptions
|
|
250
|
+
that imply:
|
|
251
|
+
|
|
252
|
+
- token streaming;
|
|
253
|
+
- realtime audio/video processing;
|
|
254
|
+
- incremental chunks;
|
|
255
|
+
- event streams;
|
|
256
|
+
- SSE/WebSocket workflow output;
|
|
257
|
+
- live progress messages from the workflow.
|
|
258
|
+
|
|
259
|
+
If the app needs progress UX, keep it app-owned: show pending/running/completed/failed states around
|
|
260
|
+
the non-streaming workflow result.
|
|
261
|
+
|
|
234
262
|
## External Data Assumptions
|
|
235
263
|
|
|
236
264
|
Do not require user-provided datasets unless the user said they have them.
|
|
@@ -414,6 +442,84 @@ Bad:
|
|
|
414
442
|
}
|
|
415
443
|
```
|
|
416
444
|
|
|
445
|
+
### RSS feed extraction
|
|
446
|
+
|
|
447
|
+
```json
|
|
448
|
+
{
|
|
449
|
+
"inputSchema": {
|
|
450
|
+
"type": "object",
|
|
451
|
+
"properties": {
|
|
452
|
+
"rss_url": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"format": "uri",
|
|
455
|
+
"description": "RSS feed URL to fetch and parse."
|
|
456
|
+
},
|
|
457
|
+
"language": {
|
|
458
|
+
"type": "string",
|
|
459
|
+
"description": "Language for any generated summary text."
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"required": ["rss_url"]
|
|
463
|
+
},
|
|
464
|
+
"outputSchema": {
|
|
465
|
+
"type": "object",
|
|
466
|
+
"properties": {
|
|
467
|
+
"items": {
|
|
468
|
+
"type": "array",
|
|
469
|
+
"description": "RSS feed items with title, URL, published date, and summary in the requested language when generated.",
|
|
470
|
+
"items": {
|
|
471
|
+
"type": "object",
|
|
472
|
+
"properties": {
|
|
473
|
+
"title": { "type": "string" },
|
|
474
|
+
"url": { "type": "string", "format": "uri" },
|
|
475
|
+
"published_at": { "type": "string" },
|
|
476
|
+
"summary": { "type": "string" }
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
"required": ["items"]
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### File creation or modification
|
|
487
|
+
|
|
488
|
+
```json
|
|
489
|
+
{
|
|
490
|
+
"inputSchema": {
|
|
491
|
+
"type": "object",
|
|
492
|
+
"properties": {
|
|
493
|
+
"file_type": {
|
|
494
|
+
"type": "string",
|
|
495
|
+
"description": "Target file type: txt, md, pdf, docx, pptx, or xlsx."
|
|
496
|
+
},
|
|
497
|
+
"content_or_instruction": {
|
|
498
|
+
"type": "string",
|
|
499
|
+
"description": "Content to create or instruction for modifying the source file."
|
|
500
|
+
},
|
|
501
|
+
"source_file_url": {
|
|
502
|
+
"type": "string",
|
|
503
|
+
"format": "uri",
|
|
504
|
+
"description": "Optional URL of an existing file to modify."
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
"required": ["file_type", "content_or_instruction"]
|
|
508
|
+
},
|
|
509
|
+
"outputSchema": {
|
|
510
|
+
"type": "object",
|
|
511
|
+
"properties": {
|
|
512
|
+
"file_url": {
|
|
513
|
+
"type": "string",
|
|
514
|
+
"format": "uri",
|
|
515
|
+
"description": "Public URL of the created or modified file."
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
"required": ["file_url"]
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
```
|
|
522
|
+
|
|
417
523
|
## Contract Checklist
|
|
418
524
|
|
|
419
525
|
- Required inputs are essential only.
|
|
@@ -422,6 +528,7 @@ Bad:
|
|
|
422
528
|
- Input/output property names do not overlap.
|
|
423
529
|
- Text output descriptions specify language.
|
|
424
530
|
- Description says what, not how.
|
|
531
|
+
- Contract does not imply streaming, realtime output, or event delivery.
|
|
425
532
|
- No CRUD/auth/upload/payment/app-state requirements.
|
|
426
533
|
- Feature fits an available capability.
|
|
427
534
|
- Schema is raw valid JSON.
|
package/templates/vite/.howone/skills/howone/03-ai-capabilities/03-service-capability-catalog.md
CHANGED
|
@@ -9,22 +9,35 @@ this catalog and must not be rejected as "AI not supported" when the user only n
|
|
|
9
9
|
|
|
10
10
|
Source: `docs/ai-capability.md`.
|
|
11
11
|
|
|
12
|
+
## Global Boundaries
|
|
13
|
+
|
|
14
|
+
Streaming is not supported. Do not design token streams, realtime audio/video processing,
|
|
15
|
+
incremental workflow chunks, SSE/WebSocket workflow output, or live workflow progress events as
|
|
16
|
+
HowOne AI capability. Progress UI is app-owned around a non-streaming workflow result.
|
|
17
|
+
|
|
18
|
+
If the requested behavior is not listed in this catalog, do not simulate it or silently approximate
|
|
19
|
+
it. State the missing capability and offer the closest supported version only when it preserves the
|
|
20
|
+
user's original goal.
|
|
21
|
+
|
|
12
22
|
## Quick Selection Table
|
|
13
23
|
|
|
14
24
|
| User asks for | Use capability family | Typical inputs | Typical outputs |
|
|
15
25
|
|---|---|---|---|
|
|
16
26
|
| Latest info, research, source-backed answer | Web search / crawling | `topic`, `prompt`, `url`, `search_level` | `answer`, `sources`, `page_content` |
|
|
27
|
+
| Parse posts from an RSS feed | Fetch RSS feed from RSS URL | `rss_url`, optional filters | `items`, `source_metadata` |
|
|
28
|
+
| Generate or transform text | Text generation / transformation | `prompt`, `source_text`, `language`, format instructions | `generated_text` or structured JSON |
|
|
17
29
|
| Generate artwork/photo/logo/mockup | Image generation | `image_description`, `style_preference`, optional references | `generated_image_url` |
|
|
18
30
|
| Edit an image | Image editing | `source_image_url`, `edit_instruction` | `edited_image_url` |
|
|
19
31
|
| OCR or visual analysis | Image analysis / OCR | `image_urls`, `analysis_prompt` | `analysis_result` or `extracted_text` |
|
|
20
32
|
| Generate short video | Video generation | `video_prompt`, aspect/duration/frame URLs | `video_url` |
|
|
21
|
-
| Join clips
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
33
|
+
| Join video clips | Concatenate videos | `video_urls` | `merged_video_url` |
|
|
34
|
+
| Extract first/last frame | Extract first and last frame | `source_video_url` | `first_frame_image_url`, `last_frame_image_url` |
|
|
35
|
+
| Text to speech | TTS / text-to-speech | `text_to_generate`, `language`, `voice_hint` | `audio_url` |
|
|
36
|
+
| Speech to text | Speech recognition | `source_audio_url`, `language` | `transcript_text`, optional `utterances` |
|
|
37
|
+
| Merge audio | Concatenate audio files | `audio_urls` | `merged_audio_url` |
|
|
25
38
|
| Stock/index history | Financial data retrieval | `trading_symbol`, `unit`, `start`, `end` | `price_history` |
|
|
26
39
|
| Literature search/citations | Academic research | `query` | `papers`, `bibtex` |
|
|
27
|
-
|
|
|
40
|
+
| Create or modify documents/spreadsheets/slides | File creation / modification | `file_type`, `content_or_instruction`, optional `source_file_url` | `file_url` |
|
|
28
41
|
|
|
29
42
|
If the requested behavior is not in this table or the detailed sections below, do not invent it.
|
|
30
43
|
|
|
@@ -52,6 +65,46 @@ Rules:
|
|
|
52
65
|
- Do not use search as an outbound API caller.
|
|
53
66
|
- Include source links in output when the product promises research.
|
|
54
67
|
|
|
68
|
+
## RSS Feed Fetching
|
|
69
|
+
|
|
70
|
+
Use for fetching and parsing a specific RSS feed URL.
|
|
71
|
+
|
|
72
|
+
Inputs:
|
|
73
|
+
|
|
74
|
+
- `rss_url`: URL of the RSS feed;
|
|
75
|
+
- optional filtering instructions, item limit, language, or summary instruction.
|
|
76
|
+
|
|
77
|
+
Outputs:
|
|
78
|
+
|
|
79
|
+
- feed `items` with title, URL, date, and optional summary;
|
|
80
|
+
- source/feed metadata when useful.
|
|
81
|
+
|
|
82
|
+
Rules:
|
|
83
|
+
|
|
84
|
+
- Use RSS only when the user has or asks for an RSS URL.
|
|
85
|
+
- Use web search/crawling when the user asks for general latest information without a feed URL.
|
|
86
|
+
- Do not treat RSS fetching as arbitrary API integration.
|
|
87
|
+
|
|
88
|
+
## Text Generation And Transformation
|
|
89
|
+
|
|
90
|
+
Use for writing, rewriting, summarizing, translating, classifying, extracting, and structured JSON
|
|
91
|
+
generation when no specialized media/retrieval capability is needed.
|
|
92
|
+
|
|
93
|
+
Inputs:
|
|
94
|
+
|
|
95
|
+
- `prompt` or `source_text`;
|
|
96
|
+
- optional `language`, audience, tone, format, or transformation instruction.
|
|
97
|
+
|
|
98
|
+
Outputs:
|
|
99
|
+
|
|
100
|
+
- generated text or structured JSON fields needed by the product.
|
|
101
|
+
|
|
102
|
+
Rules:
|
|
103
|
+
|
|
104
|
+
- Text outputs must specify language behavior.
|
|
105
|
+
- Keep structured outputs minimal and product-facing.
|
|
106
|
+
- Do not claim streaming tokens or realtime generation.
|
|
107
|
+
|
|
55
108
|
## Image Generation
|
|
56
109
|
|
|
57
110
|
Use for new images from prompts or prompt + reference URLs.
|
|
@@ -136,12 +189,12 @@ Rules:
|
|
|
136
189
|
|
|
137
190
|
- Keep individual clips short, generally 5-10 seconds.
|
|
138
191
|
- For consistency, generate/use a first-frame image.
|
|
139
|
-
- For longer videos, generate clips and concatenate via video
|
|
192
|
+
- For longer videos, generate clips and concatenate via video composition utilities.
|
|
140
193
|
- Audio in video works best with one speaker per clip.
|
|
141
194
|
|
|
142
|
-
## Video
|
|
195
|
+
## Video Composition Utilities
|
|
143
196
|
|
|
144
|
-
Use for concatenating clips or extracting first/last frames.
|
|
197
|
+
Use only for concatenating video clips or extracting first/last frames.
|
|
145
198
|
|
|
146
199
|
Inputs:
|
|
147
200
|
|
|
@@ -150,14 +203,16 @@ Inputs:
|
|
|
150
203
|
|
|
151
204
|
Outputs:
|
|
152
205
|
|
|
153
|
-
- `merged_video_url
|
|
206
|
+
- concatenate: `merged_video_url`;
|
|
207
|
+
- frame extraction: `first_frame_image_url`, `last_frame_image_url`.
|
|
154
208
|
|
|
155
209
|
Rules:
|
|
156
210
|
|
|
157
211
|
- Inputs must be accessible URLs.
|
|
158
212
|
- Best results when clips share resolution/aspect ratio.
|
|
213
|
+
- Do not claim arbitrary video editing beyond concatenation and first/last-frame extraction.
|
|
159
214
|
|
|
160
|
-
##
|
|
215
|
+
## Text To Speech
|
|
161
216
|
|
|
162
217
|
Use for text-to-speech.
|
|
163
218
|
|
|
@@ -176,10 +231,10 @@ Outputs:
|
|
|
176
231
|
Rules:
|
|
177
232
|
|
|
178
233
|
- Single speaker per call.
|
|
179
|
-
- For dialogue, generate each speaker line and
|
|
234
|
+
- For dialogue, generate each speaker line and concatenate audio files.
|
|
180
235
|
- `audio_hint` should describe voice in English.
|
|
181
236
|
|
|
182
|
-
##
|
|
237
|
+
## Speech Recognition
|
|
183
238
|
|
|
184
239
|
Use for speech-to-text.
|
|
185
240
|
|
|
@@ -198,6 +253,24 @@ Rules:
|
|
|
198
253
|
|
|
199
254
|
- Audio must be URL-accessible.
|
|
200
255
|
- Silent or low-quality audio can produce empty/poor transcript.
|
|
256
|
+
- Do not promise realtime transcription or streaming captions.
|
|
257
|
+
|
|
258
|
+
## Audio Concatenation
|
|
259
|
+
|
|
260
|
+
Use for joining multiple audio files in order.
|
|
261
|
+
|
|
262
|
+
Inputs:
|
|
263
|
+
|
|
264
|
+
- `audio_urls`: two or more accessible audio URLs.
|
|
265
|
+
|
|
266
|
+
Outputs:
|
|
267
|
+
|
|
268
|
+
- `merged_audio_url`.
|
|
269
|
+
|
|
270
|
+
Rules:
|
|
271
|
+
|
|
272
|
+
- Use this after separate TTS calls for multi-speaker dialogue.
|
|
273
|
+
- Do not claim arbitrary audio editing beyond concatenation.
|
|
201
274
|
|
|
202
275
|
## Financial Data Retrieval
|
|
203
276
|
|
|
@@ -242,14 +315,15 @@ Rules:
|
|
|
242
315
|
- Availability varies by academic source.
|
|
243
316
|
- PDF assets should be handled as URLs.
|
|
244
317
|
|
|
245
|
-
## File
|
|
318
|
+
## File Creation And Modification
|
|
246
319
|
|
|
247
|
-
Use when workflow needs to
|
|
320
|
+
Use when the workflow needs to create or modify supported files.
|
|
248
321
|
|
|
249
322
|
Inputs:
|
|
250
323
|
|
|
251
|
-
- `file_type`: `
|
|
252
|
-
- `
|
|
324
|
+
- `file_type`: `txt`, `md`, `pdf`, `docx`, `pptx`, or `xlsx`;
|
|
325
|
+
- `content_or_instruction`: content to create or instruction for modification;
|
|
326
|
+
- optional `source_file_url`: URL of an existing file to modify.
|
|
253
327
|
|
|
254
328
|
Outputs:
|
|
255
329
|
|
|
@@ -257,18 +331,20 @@ Outputs:
|
|
|
257
331
|
|
|
258
332
|
Rules:
|
|
259
333
|
|
|
260
|
-
-
|
|
261
|
-
- Do not use file
|
|
262
|
-
- If app needs records/history, persist file
|
|
334
|
+
- Supported file work is create/modify only for text, PDF, DOCX, PPTX, and XLSX.
|
|
335
|
+
- Do not use file output as a database.
|
|
336
|
+
- If app needs records/history, persist file URLs through entities.
|
|
337
|
+
- Do not claim arbitrary binary editing, ZIP manipulation, or filesystem access.
|
|
263
338
|
|
|
264
339
|
## Composition Patterns
|
|
265
340
|
|
|
266
341
|
| Pattern | Workflow design |
|
|
267
342
|
|---|---|
|
|
268
343
|
| Image -> Video | generate first-frame image, pass as `first_frame_url` to video generation |
|
|
269
|
-
| Multi-clip video | generate short clips, concatenate via video
|
|
270
|
-
| Dialogue audio | generate each speaker line,
|
|
271
|
-
|
|
|
344
|
+
| Multi-clip video | generate short clips, concatenate via video composition utilities |
|
|
345
|
+
| Dialogue audio | generate each speaker line, concatenate audio files |
|
|
346
|
+
| RSS -> Digest | fetch RSS feed, synthesize a digest, optionally create a supported file |
|
|
347
|
+
| Search -> Report | web search/crawl, synthesize structured report, optionally create a supported file |
|
|
272
348
|
| Video -> Image edit -> Video | extract frame, edit frame, use as next reference |
|
|
273
349
|
| RAG document chat | indexing workflow + query workflow |
|
|
274
350
|
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
Use this reference when submitting HowOne external AI workflow create/update operations through
|
|
4
4
|
`external-ai-capability`. This is an AI workflow design reference, not an app SDK guide.
|
|
5
5
|
|
|
6
|
+
Workflow create/update/status operations are asynchronous control-plane operations. They are not
|
|
7
|
+
runtime streaming support. Do not use job polling, task IDs, SSE, or background status as evidence
|
|
8
|
+
that a user-facing AI workflow can stream partial results.
|
|
9
|
+
|
|
6
10
|
## Current Tool Contract
|
|
7
11
|
|
|
8
12
|
Do not hand-build raw workflow HTTP requests in generated app work. Use `external-ai-capability`
|
|
@@ -102,6 +106,9 @@ Terminal result meaning:
|
|
|
102
106
|
| `completed` | workflow operation completed |
|
|
103
107
|
| `failed` / `canceled` / `timed_out` | report error and do not pretend workflow is ready |
|
|
104
108
|
|
|
109
|
+
For generated apps, progress UI is app-owned and should model non-streaming states such as
|
|
110
|
+
pending/running/completed/failed around the final workflow result.
|
|
111
|
+
|
|
105
112
|
## Standard Flow
|
|
106
113
|
|
|
107
114
|
New AI feature:
|
|
@@ -139,3 +146,4 @@ SDK/code work happens after these steps and belongs to the SDK track.
|
|
|
139
146
|
- Update has a concrete `updatePrompt`.
|
|
140
147
|
- The manifest is re-read after update.
|
|
141
148
|
- SDK bindings are copied from manifest, not from memory or old status IDs.
|
|
149
|
+
- Status polling is not streaming workflow output.
|
|
@@ -138,6 +138,30 @@ Rules:
|
|
|
138
138
|
- output descriptions must specify language;
|
|
139
139
|
- if user asks for latest/current, this workflow must retrieve data internally.
|
|
140
140
|
|
|
141
|
+
## Playbook: RSS Digest
|
|
142
|
+
|
|
143
|
+
Use when the user provides or asks for a specific RSS feed URL and wants feed items, summaries, or
|
|
144
|
+
a digest.
|
|
145
|
+
|
|
146
|
+
Inputs:
|
|
147
|
+
|
|
148
|
+
- `rss_url`;
|
|
149
|
+
- optional `item_limit`;
|
|
150
|
+
- optional `language`;
|
|
151
|
+
- optional `summary_instruction`.
|
|
152
|
+
|
|
153
|
+
Outputs:
|
|
154
|
+
|
|
155
|
+
- `items` with title, URL, published date, and optional summary;
|
|
156
|
+
- optional `digest` when the product needs a synthesized overview.
|
|
157
|
+
|
|
158
|
+
Rules:
|
|
159
|
+
|
|
160
|
+
- use RSS feed fetching only for explicit RSS URLs;
|
|
161
|
+
- use web search/crawling for general latest news without an RSS URL;
|
|
162
|
+
- do not treat RSS as arbitrary third-party API integration;
|
|
163
|
+
- if users need saved feed history, persist items or digests through entities.
|
|
164
|
+
|
|
141
165
|
## Playbook: Stock Analysis
|
|
142
166
|
|
|
143
167
|
Use for historical price analysis.
|
|
@@ -221,7 +245,7 @@ Output:
|
|
|
221
245
|
Rules:
|
|
222
246
|
|
|
223
247
|
- single speaker per call;
|
|
224
|
-
- dialogue should generate multiple clips and
|
|
248
|
+
- dialogue should generate multiple clips and concatenate audio files;
|
|
225
249
|
- persist audio URL through entity if user needs library/history.
|
|
226
250
|
|
|
227
251
|
## Playbook: Video Generator
|
|
@@ -245,6 +269,46 @@ Rules:
|
|
|
245
269
|
- for longer output, compose multiple clips and concatenate;
|
|
246
270
|
- first-frame image helps consistency.
|
|
247
271
|
|
|
272
|
+
## Playbook: Video Frame Utility
|
|
273
|
+
|
|
274
|
+
Use when the product needs a first frame and last frame from a video URL.
|
|
275
|
+
|
|
276
|
+
Inputs:
|
|
277
|
+
|
|
278
|
+
- `source_video_url`.
|
|
279
|
+
|
|
280
|
+
Outputs:
|
|
281
|
+
|
|
282
|
+
- `first_frame_image_url`;
|
|
283
|
+
- `last_frame_image_url`.
|
|
284
|
+
|
|
285
|
+
Rules:
|
|
286
|
+
|
|
287
|
+
- use this only for first/last-frame extraction;
|
|
288
|
+
- do not promise arbitrary frame-by-frame analysis or video editing;
|
|
289
|
+
- persist extracted image URLs through entities if the app needs history.
|
|
290
|
+
|
|
291
|
+
## Playbook: File Creator / Modifier
|
|
292
|
+
|
|
293
|
+
Use when the product needs to create or modify a supported file: text, PDF, DOCX, PPTX, or XLSX.
|
|
294
|
+
|
|
295
|
+
Inputs:
|
|
296
|
+
|
|
297
|
+
- `file_type`: txt, md, pdf, docx, pptx, or xlsx;
|
|
298
|
+
- `content_or_instruction`;
|
|
299
|
+
- optional `source_file_url` for modification.
|
|
300
|
+
|
|
301
|
+
Output:
|
|
302
|
+
|
|
303
|
+
- `file_url`.
|
|
304
|
+
|
|
305
|
+
Rules:
|
|
306
|
+
|
|
307
|
+
- create/modify supported file types only;
|
|
308
|
+
- app uploads source files first and passes URLs;
|
|
309
|
+
- do not use generated files as a database;
|
|
310
|
+
- persist file URLs through entities if users need history, folders, sharing, or review.
|
|
311
|
+
|
|
248
312
|
## RAG Playbook
|
|
249
313
|
|
|
250
314
|
Use only when app needs question answering over user/project documents.
|
|
@@ -270,6 +334,7 @@ Rules:
|
|
|
270
334
|
- Verify capability exists in `03-service-capability-catalog.md`.
|
|
271
335
|
- Use URL inputs for files/media.
|
|
272
336
|
- Keep outputs minimal and product-facing.
|
|
337
|
+
- Do not design streaming/realtime AI output.
|
|
273
338
|
- Decide persistence separately.
|
|
274
339
|
- Generate SDK bindings only after manifest sync and external workflow submit.
|
|
275
340
|
- Use app-owned UI for progress/errors.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Jane (@xiaoerzhan / 小耳)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|