@my-life-buddies/cli 0.13.3 → 0.15.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 (193) hide show
  1. package/README.md +74 -22
  2. package/dist/bin/buddy.js +29 -10
  3. package/dist/bin/buddy.js.map +2 -2
  4. package/dist/bin/core.js +1480 -611
  5. package/dist/bin/core.js.map +4 -4
  6. package/dist/bin/preview.js +324 -27
  7. package/dist/bin/preview.js.map +4 -4
  8. package/dist/web/app.css +65 -6
  9. package/dist/web/app.js +103 -39
  10. package/dist/web/diagnostics.js +184 -0
  11. package/dist/web/index.html +34 -34
  12. package/dist/web/widgets.css +59 -28
  13. package/dist/web/widgets.js +230 -76
  14. package/package.json +3 -3
  15. package/resources/README.md +6 -50
  16. package/resources/agent-template/package-lock.json +4 -4
  17. package/resources/agent-template/package.json +2 -2
  18. package/resources/buddy-creator/INSTALL.md +0 -25
  19. package/resources/buddy-creator/PATCHES.md +0 -53
  20. package/resources/buddy-creator/SKILL.md +0 -76
  21. package/resources/buddy-creator/THIRD_PARTY_NOTICES.md +0 -154
  22. package/resources/buddy-creator/agents/openai.yaml +0 -4
  23. package/resources/buddy-creator/assets/licenses/bail.txt +0 -26
  24. package/resources/buddy-creator/assets/licenses/ccount.txt +0 -26
  25. package/resources/buddy-creator/assets/licenses/character-entities-html4.txt +0 -26
  26. package/resources/buddy-creator/assets/licenses/character-entities-legacy.txt +0 -26
  27. package/resources/buddy-creator/assets/licenses/character-entities.txt +0 -26
  28. package/resources/buddy-creator/assets/licenses/character-reference-invalid.txt +0 -26
  29. package/resources/buddy-creator/assets/licenses/comma-separated-tokens.txt +0 -26
  30. package/resources/buddy-creator/assets/licenses/debug.txt +0 -24
  31. package/resources/buddy-creator/assets/licenses/decode-named-character-reference.txt +0 -26
  32. package/resources/buddy-creator/assets/licenses/dequal.txt +0 -25
  33. package/resources/buddy-creator/assets/licenses/devlop.txt +0 -26
  34. package/resources/buddy-creator/assets/licenses/escape-string-regexp.txt +0 -13
  35. package/resources/buddy-creator/assets/licenses/estree-util-is-identifier-name.txt +0 -26
  36. package/resources/buddy-creator/assets/licenses/extend.txt +0 -27
  37. package/resources/buddy-creator/assets/licenses/hast-util-to-jsx-runtime.txt +0 -26
  38. package/resources/buddy-creator/assets/licenses/hast-util-whitespace.txt +0 -26
  39. package/resources/buddy-creator/assets/licenses/html-url-attributes.txt +0 -25
  40. package/resources/buddy-creator/assets/licenses/inline-style-parser.txt +0 -13
  41. package/resources/buddy-creator/assets/licenses/is-alphabetical.txt +0 -26
  42. package/resources/buddy-creator/assets/licenses/is-alphanumerical.txt +0 -26
  43. package/resources/buddy-creator/assets/licenses/is-decimal.txt +0 -26
  44. package/resources/buddy-creator/assets/licenses/is-hexadecimal.txt +0 -26
  45. package/resources/buddy-creator/assets/licenses/is-plain-obj.txt +0 -13
  46. package/resources/buddy-creator/assets/licenses/longest-streak.txt +0 -26
  47. package/resources/buddy-creator/assets/licenses/markdown-table.txt +0 -26
  48. package/resources/buddy-creator/assets/licenses/mdast-util-find-and-replace.txt +0 -26
  49. package/resources/buddy-creator/assets/licenses/mdast-util-from-markdown.txt +0 -26
  50. package/resources/buddy-creator/assets/licenses/mdast-util-gfm-autolink-literal.txt +0 -26
  51. package/resources/buddy-creator/assets/licenses/mdast-util-gfm-footnote.txt +0 -26
  52. package/resources/buddy-creator/assets/licenses/mdast-util-gfm-strikethrough.txt +0 -26
  53. package/resources/buddy-creator/assets/licenses/mdast-util-gfm-table.txt +0 -26
  54. package/resources/buddy-creator/assets/licenses/mdast-util-gfm-task-list-item.txt +0 -26
  55. package/resources/buddy-creator/assets/licenses/mdast-util-gfm.txt +0 -26
  56. package/resources/buddy-creator/assets/licenses/mdast-util-mdx-expression.txt +0 -26
  57. package/resources/buddy-creator/assets/licenses/mdast-util-mdx-jsx.txt +0 -26
  58. package/resources/buddy-creator/assets/licenses/mdast-util-mdxjs-esm.txt +0 -26
  59. package/resources/buddy-creator/assets/licenses/mdast-util-phrasing.txt +0 -27
  60. package/resources/buddy-creator/assets/licenses/mdast-util-to-hast.txt +0 -26
  61. package/resources/buddy-creator/assets/licenses/mdast-util-to-markdown.txt +0 -26
  62. package/resources/buddy-creator/assets/licenses/mdast-util-to-string.txt +0 -26
  63. package/resources/buddy-creator/assets/licenses/micromark-core-commonmark.txt +0 -26
  64. package/resources/buddy-creator/assets/licenses/micromark-extension-gfm-autolink-literal.txt +0 -26
  65. package/resources/buddy-creator/assets/licenses/micromark-extension-gfm-footnote.txt +0 -26
  66. package/resources/buddy-creator/assets/licenses/micromark-extension-gfm-strikethrough.txt +0 -26
  67. package/resources/buddy-creator/assets/licenses/micromark-extension-gfm-table.txt +0 -26
  68. package/resources/buddy-creator/assets/licenses/micromark-extension-gfm-tagfilter.txt +0 -26
  69. package/resources/buddy-creator/assets/licenses/micromark-extension-gfm-task-list-item.txt +0 -26
  70. package/resources/buddy-creator/assets/licenses/micromark-extension-gfm.txt +0 -26
  71. package/resources/buddy-creator/assets/licenses/micromark-factory-destination.txt +0 -26
  72. package/resources/buddy-creator/assets/licenses/micromark-factory-label.txt +0 -26
  73. package/resources/buddy-creator/assets/licenses/micromark-factory-space.txt +0 -26
  74. package/resources/buddy-creator/assets/licenses/micromark-factory-title.txt +0 -26
  75. package/resources/buddy-creator/assets/licenses/micromark-factory-whitespace.txt +0 -26
  76. package/resources/buddy-creator/assets/licenses/micromark-util-character.txt +0 -26
  77. package/resources/buddy-creator/assets/licenses/micromark-util-chunked.txt +0 -26
  78. package/resources/buddy-creator/assets/licenses/micromark-util-classify-character.txt +0 -26
  79. package/resources/buddy-creator/assets/licenses/micromark-util-combine-extensions.txt +0 -26
  80. package/resources/buddy-creator/assets/licenses/micromark-util-decode-numeric-character-reference.txt +0 -26
  81. package/resources/buddy-creator/assets/licenses/micromark-util-decode-string.txt +0 -26
  82. package/resources/buddy-creator/assets/licenses/micromark-util-encode.txt +0 -26
  83. package/resources/buddy-creator/assets/licenses/micromark-util-html-tag-name.txt +0 -26
  84. package/resources/buddy-creator/assets/licenses/micromark-util-normalize-identifier.txt +0 -26
  85. package/resources/buddy-creator/assets/licenses/micromark-util-resolve-all.txt +0 -26
  86. package/resources/buddy-creator/assets/licenses/micromark-util-sanitize-uri.txt +0 -26
  87. package/resources/buddy-creator/assets/licenses/micromark-util-subtokenize.txt +0 -26
  88. package/resources/buddy-creator/assets/licenses/micromark-util-symbol.txt +0 -26
  89. package/resources/buddy-creator/assets/licenses/micromark-util-types.txt +0 -26
  90. package/resources/buddy-creator/assets/licenses/micromark.txt +0 -26
  91. package/resources/buddy-creator/assets/licenses/ms.txt +0 -25
  92. package/resources/buddy-creator/assets/licenses/parse-entities.txt +0 -26
  93. package/resources/buddy-creator/assets/licenses/phosphor-icons--react.txt +0 -25
  94. package/resources/buddy-creator/assets/licenses/property-information.txt +0 -26
  95. package/resources/buddy-creator/assets/licenses/react-dom.txt +0 -25
  96. package/resources/buddy-creator/assets/licenses/react-markdown.txt +0 -25
  97. package/resources/buddy-creator/assets/licenses/react.txt +0 -25
  98. package/resources/buddy-creator/assets/licenses/remark-gfm.txt +0 -26
  99. package/resources/buddy-creator/assets/licenses/remark-parse.txt +0 -25
  100. package/resources/buddy-creator/assets/licenses/remark-rehype.txt +0 -26
  101. package/resources/buddy-creator/assets/licenses/remark-stringify.txt +0 -25
  102. package/resources/buddy-creator/assets/licenses/scheduler.txt +0 -25
  103. package/resources/buddy-creator/assets/licenses/space-separated-tokens.txt +0 -26
  104. package/resources/buddy-creator/assets/licenses/stringify-entities.txt +0 -26
  105. package/resources/buddy-creator/assets/licenses/style-to-js.txt +0 -26
  106. package/resources/buddy-creator/assets/licenses/style-to-object.txt +0 -26
  107. package/resources/buddy-creator/assets/licenses/trim-lines.txt +0 -26
  108. package/resources/buddy-creator/assets/licenses/trough.txt +0 -25
  109. package/resources/buddy-creator/assets/licenses/types--debug.txt +0 -25
  110. package/resources/buddy-creator/assets/licenses/types--estree-jsx.txt +0 -25
  111. package/resources/buddy-creator/assets/licenses/types--estree.txt +0 -25
  112. package/resources/buddy-creator/assets/licenses/types--hast.txt +0 -25
  113. package/resources/buddy-creator/assets/licenses/types--mdast.txt +0 -25
  114. package/resources/buddy-creator/assets/licenses/types--ms.txt +0 -25
  115. package/resources/buddy-creator/assets/licenses/types--unist.txt +0 -25
  116. package/resources/buddy-creator/assets/licenses/ungap--structured-clone.txt +0 -19
  117. package/resources/buddy-creator/assets/licenses/unified.txt +0 -25
  118. package/resources/buddy-creator/assets/licenses/unist-util-is.txt +0 -26
  119. package/resources/buddy-creator/assets/licenses/unist-util-position.txt +0 -26
  120. package/resources/buddy-creator/assets/licenses/unist-util-stringify-position.txt +0 -26
  121. package/resources/buddy-creator/assets/licenses/unist-util-visit-parents.txt +0 -26
  122. package/resources/buddy-creator/assets/licenses/unist-util-visit.txt +0 -26
  123. package/resources/buddy-creator/assets/licenses/vfile-message.txt +0 -26
  124. package/resources/buddy-creator/assets/licenses/vfile.txt +0 -25
  125. package/resources/buddy-creator/assets/licenses/zwitch.txt +0 -26
  126. package/resources/buddy-creator/assets/preview/assets/index-B5VmkoSx.js +0 -39
  127. package/resources/buddy-creator/assets/preview/assets/index-DWKP6b-3.css +0 -4
  128. package/resources/buddy-creator/assets/preview/brand-logo.png +0 -0
  129. package/resources/buddy-creator/assets/preview/brand.css +0 -100
  130. package/resources/buddy-creator/assets/preview/index.html +0 -7
  131. package/resources/buddy-creator/assets/preview/reader.css +0 -165
  132. package/resources/buddy-creator/assets/preview/reader.js +0 -135
  133. package/resources/buddy-creator/assets/preview/widgets.css +0 -1
  134. package/resources/buddy-creator/assets/preview/widgets.js +0 -168
  135. package/resources/buddy-creator/assets/widget-reference/conversation.png +0 -0
  136. package/resources/buddy-creator/assets/widget-reference/expanded.png +0 -0
  137. package/resources/buddy-creator/assets/widget-v2/app.js +0 -62
  138. package/resources/buddy-creator/assets/widget-v2/style.css +0 -1
  139. package/resources/buddy-creator/assets/widget-v3/app.js +0 -65
  140. package/resources/buddy-creator/assets/widget-v3/style.css +0 -103
  141. package/resources/buddy-creator/assets/widget-v4/app.js +0 -66
  142. package/resources/buddy-creator/assets/widget-v4/style.css +0 -187
  143. package/resources/buddy-creator/references/artifact-schema.md +0 -70
  144. package/resources/buddy-creator/references/catalog.json +0 -401
  145. package/resources/buddy-creator/references/definition.md +0 -24
  146. package/resources/buddy-creator/references/dialogue-examples.md +0 -133
  147. package/resources/buddy-creator/references/host-guide.md +0 -219
  148. package/resources/buddy-creator/references/interview.md +0 -235
  149. package/resources/buddy-creator/references/knowledge.md +0 -40
  150. package/resources/buddy-creator/references/methods.md +0 -77
  151. package/resources/buddy-creator/references/opening.md +0 -14
  152. package/resources/buddy-creator/references/preview-panel.md +0 -66
  153. package/resources/buddy-creator/references/recovery.md +0 -46
  154. package/resources/buddy-creator/references/service.md +0 -76
  155. package/resources/buddy-creator/references/widgets-protocol.md +0 -83
  156. package/resources/buddy-creator/references/widgets.md +0 -99
  157. package/resources/buddy-creator/scripts/buddy.py +0 -108
  158. package/resources/buddy-creator/scripts/buddy_client.py +0 -67
  159. package/resources/buddy-creator/scripts/buddy_core.py +0 -865
  160. package/resources/buddy-creator/scripts/completion.py +0 -296
  161. package/resources/buddy-creator/scripts/interview.py +0 -215
  162. package/resources/buddy-creator/scripts/preview.py +0 -617
  163. package/resources/buddy-creator/scripts/preview_panel.py +0 -80
  164. package/resources/buddy-creator/scripts/sources.py +0 -239
  165. package/resources/buddy-creator/scripts/widget_render.py +0 -66
  166. package/resources/buddy-creator/scripts/widget_render_v1.py +0 -176
  167. package/resources/buddy-creator/scripts/widget_render_v2.py +0 -98
  168. package/resources/buddy-creator/scripts/widget_render_v3.py +0 -86
  169. package/resources/buddy-creator/scripts/widget_render_v4.py +0 -121
  170. package/resources/buddy-creator/scripts/widgets.py +0 -227
  171. package/resources/buddy-creator/version.json +0 -8
  172. package/resources/buddy-creator.manifest.json +0 -791
  173. package/resources/dada-object-avatar/SKILL.md +0 -37
  174. package/resources/dada-object-avatar/agents/openai.yaml +0 -4
  175. package/resources/dada-object-avatar/assets/examples/cat.png +0 -0
  176. package/resources/dada-object-avatar/assets/examples/cooking.png +0 -0
  177. package/resources/dada-object-avatar/assets/examples/divination.png +0 -0
  178. package/resources/dada-object-avatar/assets/examples/doctor.png +0 -0
  179. package/resources/dada-object-avatar/assets/examples/relationship.png +0 -0
  180. package/resources/dada-object-avatar/assets/examples/work.png +0 -0
  181. package/resources/dada-object-avatar/assets/preview.png +0 -0
  182. package/resources/dada-object-avatar/references/evaluation-rubric.md +0 -22
  183. package/resources/dada-object-avatar/references/examples.json +0 -8
  184. package/resources/dada-object-avatar/references/prompt-template.md +0 -27
  185. package/resources/dada-object-avatar/references/style-system.md +0 -54
  186. package/resources/dada-object-avatar/references/subject-design.md +0 -23
  187. package/resources/dada-object-avatar/references/training-guide.md +0 -14
  188. package/resources/dada-object-avatar/references/training-log.jsonl +0 -0
  189. package/resources/dada-object-avatar/references/training-record.schema.json +0 -20
  190. package/resources/dada-object-avatar/scripts/choose_gaze.py +0 -36
  191. package/resources/dada-object-avatar/scripts/record_example.py +0 -22
  192. package/resources/dada-object-avatar/scripts/validate_png.py +0 -52
  193. package/resources/dada-object-avatar.manifest.json +0 -85
@@ -1,187 +0,0 @@
1
- * { box-sizing: border-box; }
2
- html, body { margin: 0; width: 100%; height: 100%; background: #fff; }
3
- button { font: inherit; color: inherit; border: 0; cursor: pointer; }
4
- button, summary { -webkit-tap-highlight-color: transparent; }
5
- button:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
6
- [hidden] { display: none !important; }
7
- h1, h2, h3, p { margin: 0; }
8
- h1, h2, h3 { font-size: var(--title-size, 16px); font-weight: 500; }
9
- .screen { font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", sans-serif; color: #202733; position: relative; width: 100%; height: 100%; overflow: hidden; background: #fff; --accent: #326BC4; --muted: #7C8490; --line: #E9EDF2; }
10
- .icon { display: block; flex: none; width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }
11
- .statusbar { height: 40px; padding: 10px 25px 0; display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 500; }
12
- .device { display: flex; gap: 5px; }
13
- .device .icon { width: 16px; height: 16px; }
14
- .chat-header { height: 56px; padding: 0 20px 10px; display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--line); }
15
- .chat-header strong { flex: 1; text-align: center; font-size: 16px; font-weight: 500; }
16
- .back { font-size: 28px; line-height: 1; }
17
- .chat-body { height: calc(100% - 176px); overflow-y: auto; padding: 20px 16px 28px; scrollbar-width: none; }
18
- .chat-date { color: #9299A3; text-align: center; font-size: 11px; margin-bottom: 18px; }
19
- .message { display: flex; gap: 9px; align-items: flex-start; margin: 14px 0; }
20
- .avatar { flex: none; width: 26px; height: 26px; border-radius: 8px; background: #E9F0FB; color: var(--accent); display: grid; place-items: center; font-size: 12px; font-weight: 500; margin-top: 3px; }
21
- .bubble { max-width: calc(100% - 38px); font-size: 16px; line-height: 1.65; padding: 12px 14px; border-radius: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
22
- .user { justify-content: flex-end; }
23
- .user .bubble { background: #EAF1FB; border-top-right-radius: 3px; }
24
- .assistant .bubble { background: #F4F5F7; border-top-left-radius: 3px; }
25
- .chat-card { margin: 16px 0 0 35px; border: 1px solid #DFE5ED; border-radius: 14px; background: #fff; overflow: hidden; }
26
- .card-content { padding: 17px 16px 18px; }
27
- .card-kind { font-size: 12px; color: var(--accent); margin-bottom: 8px; }
28
- .chat-card h1 { font-size: 16px; font-weight: 500; line-height: 1.45; }
29
- .card-summary { font-size: 16px; line-height: 1.65; color: #66707E; margin-top: 9px; white-space: pre-wrap; overflow-wrap: anywhere; }
30
- .open-sheet { width: 100%; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); background: #fff; color: var(--accent); font-size: 14px; font-weight: 500; }
31
- .open-sheet .icon { width: 17px; height: 17px; }
32
- .open-sheet:hover { background: #F6F8FC; }
33
- .composer { position: absolute; bottom: 19px; left: 16px; right: 16px; display: flex; align-items: center; gap: 10px; min-height: 49px; padding: 12px; border: 1px solid #E6E9EF; border-radius: 14px; background: #fff; color: #9299A3; font-size: 12px; }
34
- .composer span { flex: 1; }
35
- .home-indicator { position: absolute; bottom: 7px; left: 36%; right: 36%; height: 4px; border-radius: 8px; background: #252C37; }
36
- .overlay { position: absolute; inset: 0; z-index: 2; background: #17243B45; display: grid; place-items: center; }
37
- .sheet { width: calc(100% - 32px); height: 65%; border-radius: 22px; background: #fff; display: flex; flex-direction: column; overflow: hidden; position: relative; box-shadow: 0 12px 36px #192B4720; outline: none; }
38
- .sheet-header { flex: none; height: 60px; display: flex; align-items: center; padding: 0 16px 0 20px; border-bottom: 1px solid var(--line); }
39
- .sheet-header h2 { flex: 1; font-size: 16px; font-weight: 500; }
40
- .close { width: 32px; height: 32px; background: transparent; color: #8490A0; border-radius: 8px; display: grid; place-items: center; flex: none; }
41
- .close .icon { width: 20px; height: 20px; }
42
- .close:hover { background: #F3F5F8; color: #26344C; }
43
- .sheet-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 20px 20px; scrollbar-width: thin; scrollbar-color: #D5DBE5 transparent; }
44
- .overview { padding: 22px 0 15px; }
45
- .overview h3 { font-size: 20px; line-height: 1.4; font-weight: 500; letter-spacing: -.4px; }
46
- .overview-subtitle { color: var(--muted); font-size: 13px; margin-top: 6px; line-height: 1.6; white-space: pre-wrap; }
47
- .reading-meta { color: #606E81; font-size: 13px; margin-top: 12px; }
48
- .overview-metrics { display: grid; grid-template-columns: repeat(var(--metric-count), 1fr); gap: 16px; margin-top: 22px; }
49
- .metric-label { display: block; font-size: 12px; color: var(--muted); }
50
- .metric-value { display: block; font-size: 20px; font-weight: 500; line-height: 1.4; margin-top: 4px; letter-spacing: -.3px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
51
- .overview-metrics .metric:first-child .metric-value { color: var(--accent); }
52
- .progress-track { height: 3px; overflow: hidden; background: #ECF0F5; margin-top: 16px; }
53
- .progress-track > div { height: 100%; background: var(--accent); }
54
- .progress-caption { font-size: 11px; color: var(--muted); margin-top: 7px; }
55
- .reading-nav { position: sticky; top: 0; z-index: 1; display: flex; gap: 22px; background: #fff; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
56
- .reading-nav button { flex: none; position: relative; padding: 12px 0; font-size: 14px; background: transparent; color: #8A93A1; white-space: nowrap; }
57
- .reading-nav button[aria-pressed=true] { color: var(--accent); font-weight: 500; }
58
- .reading-nav button[aria-pressed=true]:after { position: absolute; content: ""; height: 2px; background: var(--accent); left: 0; right: 0; bottom: 0; }
59
- .reading-nav button:hover { color: var(--accent); }
60
- .section { margin: 20px 0 24px; }
61
- .section-heading { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; color: #8A93A1; font-size: 12px; font-weight: 400; line-height: 1.5; list-style: none; }
62
- .section-heading::-webkit-details-marker { display: none; }
63
- summary.section-heading { cursor: pointer; padding: 4px 0; }
64
- .section-heading .icon { margin-left: auto; width: 13px; height: 13px; }
65
- details[open] > summary .icon { transform: rotate(90deg); }
66
- .row { display: flex; align-items: flex-start; gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--line); }
67
- .row:last-child { border-bottom: none; }
68
- .row-content { flex: 1; min-width: 0; }
69
- .row-label { font-size: 16px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
70
- .row-value { font-size: 16px; font-weight: 400; line-height: 1.6; margin-top: 4px; color: #263243; white-space: pre-wrap; overflow-wrap: anywhere; }
71
- .row-caption { font-size: 13px; color: #87909D; line-height: 1.6; margin-top: 6px; white-space: pre-wrap; overflow-wrap: anywhere; }
72
- .status { display: inline-block; font-size: 12px; line-height: 1.5; color: #8893A2; margin-top: 8px; }
73
- .status.pending { color: #956B40; }
74
- .status.changed { color: var(--accent); }
75
- .detail-open { min-height: 38px; width: 26px; background: transparent; color: #9BA5B3; display: grid; place-items: center; padding: 0; flex: none; border-radius: 5px; }
76
- .detail-open .icon { width: 15px; height: 15px; }
77
- .timeline .row { position: relative; border: 0; gap: 21px; padding: 9px 0 23px; min-height: 82px; }
78
- .timeline .time { flex: none; width: 36px; color: #738196; font-size: 12px; font-variant-numeric: tabular-nums; line-height: 1.6; padding-top: 3px; overflow-wrap: anywhere; }
79
- .timeline .row:before { position: absolute; content: ""; left: 45px; top: 19px; bottom: -11px; width: 1px; background: #E2EAF6; }
80
- .timeline .row:last-child:before { display: none; }
81
- .timeline .row:after { position: absolute; content: ""; left: 43px; top: 17px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
82
- .timeline .row-value { margin-top: 0; }
83
- .cards .row { padding: 16px 0 18px; }
84
- .cards .row-value { color: #68758A; }
85
- .ledger .row-content { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; align-items: baseline; }
86
- .ledger .row-label { font-size: 16px; font-weight: 400; }
87
- .ledger .row-value { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
88
- .ledger .row-caption, .ledger .status { grid-column: 1 / -1; }
89
- .checklist .row-value { color: #718098; }
90
- .note { border-top: 1px solid var(--line); padding-top: 14px; color: #A1A8B2; font-size: 11px; }
91
- .detail-layer { position: absolute; inset: 0; z-index: 3; background: #17243B45; display: grid; place-items: center; }
92
- .detail-box { width: calc(100% - 32px); max-height: 65%; overflow-y: auto; padding: 20px; border-radius: 22px; background: #fff; box-shadow: 0 12px 36px #192B4720; }
93
- .detail-head { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
94
- .detail-head h3 { flex: 1; font-size: 16px; }
95
- .detail-text { font-size: 16px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
96
- .detail-foot { color: var(--muted); font-size: 11px; border-top: 1px solid var(--line); margin-top: 20px; padding-top: 14px; }
97
- @media (prefers-reduced-motion: no-preference) {
98
- button { transition: color .15s, background .15s; }
99
- button:active { opacity: .7; }
100
- .sheet, .detail-box { animation: enter .18s ease-out both; }
101
- @keyframes enter { from { transform: translateY(6px); opacity: .5; } to { transform: none; opacity: 1; } }
102
- }
103
- .svg-export * { animation: none !important; transition: none !important; }
104
-
105
- /* A calendar, travel slips, a receipt, a packing index and a change log. */
106
- .calendar-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(55px, 1fr)); gap: 0; margin: 17px -16px 14px; padding: 12px 16px; background: #F0F5FD; }
107
- .calendar-strip > div { padding: 0 8px; border-left: 1px solid #D6E2F4; min-width: 0; }
108
- .calendar-strip > div:first-child { padding-left: 0; border-left: none; }
109
- .calendar-strip span { display: block; color: var(--accent); font-size: 14px; font-weight: 500; }
110
- .calendar-strip small { display: block; font-size: 11px; line-height: 1.5; margin-top: 5px; color: #8290A4; overflow-wrap: anywhere; }
111
- .timeline .chat-card { border-top: 3px solid var(--accent); }
112
- .timeline .overview { padding-bottom: 20px; }
113
- .timeline .reading-nav { gap: 0; border: 1px solid #E0E9F6; background: #F7FAFE; border-radius: 9px; }
114
- .timeline .reading-nav button { flex: 1; padding: 10px 14px; display: flex; align-items: center; gap: 8px; font-size: 12px; border-right: 1px solid #E0E9F6; }
115
- .timeline .reading-nav button:last-child { border-right: none; }
116
- .timeline .day-number { font-size: 20px; font-weight: 500; line-height: 1.3; font-variant-numeric: tabular-nums; }
117
- .timeline .reading-nav button[aria-pressed=true] { background: #EAF2FE; }
118
- .timeline .reading-nav button[aria-pressed=true]:after { left: 13px; right: 13px; }
119
- .timeline .time { color: var(--accent); }
120
- .timeline .row { min-height: 90px; }
121
-
122
- .cards .chat-card { border-style: solid; border-color: #D6E2F2; border-radius: 5px 17px 17px 5px; }
123
- .cards .card-kind { border-left: 3px solid var(--accent); padding-left: 9px; }
124
- .booking-reference { display: flex; gap: 13px; align-items: center; border-top: 1px dashed #D3DDEC; margin-top: 16px; padding: 13px 0 5px; }
125
- .booking-reference span { color: #8390A5; font-size: 12px; border-right: 1px solid #DFE5EF; padding-right: 12px; }
126
- .booking-reference p { font-size: 16px; }
127
- .cards .open-sheet { border-top-style: dashed; }
128
- .cards .sheet-body { background: #F4F7FC; padding-left: 16px; padding-right: 16px; }
129
- .cards .overview { padding-left: 4px; }
130
- .cards .reading-nav { background: #F4F7FC; }
131
- .cards .section { background: #fff; border: 1px solid #DDE5F0; border-radius: 5px 15px 15px 5px; margin-top: 16px; padding: 0 14px; }
132
- .cards summary.section-heading, .cards h3.section-heading { color: var(--accent); font-size: 14px; font-weight: 500; padding: 12px 0; margin: 0; border-bottom: 1px dashed #D5DEEB; }
133
- .cards details:not([open]) summary { border-bottom: none; }
134
- .cards .row { padding: 13px 0; }
135
- .cards .row-label { font-weight: 500; }
136
- .cards .row-value { color: #6A788C; }
137
- .cards .note { border: 0; }
138
-
139
- .ledger .chat-card { border-radius: 3px; border: 1px solid #DDE4ED; border-top: 3px double var(--accent); }
140
- .receipt-totals { display: grid; grid-template-columns: repeat(var(--metric-count), minmax(0, 1fr)); gap: 12px; margin: 16px 0 13px; border-block: 1px dashed #CCD7E8; padding: 13px 0; }
141
- .receipt-totals .metric-value { font-size: 20px; font-weight: 500; font-variant-numeric: tabular-nums; }
142
- .receipt-totals .metric:first-child .metric-value { color: var(--accent); }
143
- .ledger .open-sheet { border-top: 1px dashed #CCD7E8; }
144
- .ledger .overview { border-bottom: 1px dashed #C4D2E5; padding-bottom: 19px; }
145
- .ledger .overview-metrics { margin-top: 18px; }
146
- .ledger .reading-nav { margin-top: 8px; }
147
- .ledger .section-heading { font-size: 12px; letter-spacing: .5px; color: #7C8EA9; }
148
- .ledger .row { border-bottom: 1px dashed var(--line); }
149
- .ledger .row:last-child { border-bottom: 0; }
150
- .ledger .row-value { color: #234B83; font-variant-numeric: tabular-nums; }
151
- .ledger .note { border-top-style: dashed; }
152
-
153
- .checklist .chat-card { border-radius: 14px; background: #F8FAFE; }
154
- .packing-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 16px 0 13px; border-top: 1px solid #DBE4F2; border-left: 1px solid #DBE4F2; }
155
- .packing-index > div { border-right: 1px solid #DBE4F2; border-bottom: 1px solid #DBE4F2; padding: 10px; }
156
- .packing-index small { display: block; color: var(--accent); font-size: 11px; }
157
- .packing-index p { font-size: 16px; line-height: 1.5; margin-top: 5px; overflow-wrap: anywhere; }
158
- .checklist .overview { position: relative; padding-left: 15px; border-left: 3px solid var(--accent); margin: 22px 0 15px; padding-top: 0; padding-bottom: 0; }
159
- .checklist .progress-track { height: 3px; }
160
- .checklist .section { position: relative; min-height: 65px; padding-left: 76px; margin: 24px 0; border-bottom: 1px solid #E3EAF3; padding-bottom: 20px; }
161
- .checklist .section-heading { position: absolute; left: 0; top: 5px; width: 59px; flex-wrap: wrap; align-content: flex-start; color: var(--accent); font-size: 12px; line-height: 1.7; padding: 0; margin: 0; overflow-wrap: anywhere; }
162
- .checklist .section-heading .icon { margin: 5px 0 0; width: 12px; height: 12px; }
163
- .checklist .row { padding-top: 0; }
164
- .checklist .row-label { font-weight: 500; }
165
- .checklist .row:last-child { padding-bottom: 0; }
166
- .checklist .note { border: 0; padding-top: 0; }
167
-
168
- .changes .chat-card { border-radius: 13px; border-left: 3px solid var(--accent); }
169
- .change-preview { margin-top: 16px; }
170
- .change-preview-label { font-size: 12px; color: #7D8CA2; margin-bottom: 9px; }
171
- .change-pair { display: grid; grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr); align-items: stretch; gap: 8px; margin-top: 12px; }
172
- .change-pair .before, .change-pair .after { padding: 10px; min-width: 0; }
173
- .change-pair .before { background: #F4F5F7; color: #929AA7; }
174
- .change-pair .after { background: #EDF3FC; color: #315D9B; border-left: 2px solid #7EAAE5; }
175
- .change-pair small { font-size: 11px; display: block; margin-bottom: 4px; color: #8896AA; }
176
- .change-pair p { font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
177
- .change-arrow { font-size: 13px; color: #A1AEC0; align-self: center; }
178
- .changes .card-summary { font-size: 16px; margin-top: 14px; }
179
- .changes .overview { padding-bottom: 17px; border-bottom: 1px solid #E5EAF3; }
180
- .changes .section { border-left: 2px solid #DCE6F5; padding-left: 13px; }
181
- .changes .section-heading { color: #7C8FAC; }
182
- .changes .row { position: relative; padding: 13px 0 20px; }
183
- .changes .change-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
184
- .change-time { font-size: 11px; color: #8A98AB; font-variant-numeric: tabular-nums; flex: none; }
185
- .changes .row-caption { color: #8792A3; }
186
- .changes .detail-open { position: absolute; right: -5px; bottom: 9px; min-height: 28px; }
187
- .changes .status { margin-top: 10px; padding-right: 20px; }
@@ -1,70 +0,0 @@
1
- # 产物与服务蓝图字段
2
-
3
- 四册之后新增独立 stage=interaction 的 widget-catalog、widget-prototype、widget-acceptance 三类产物。它们不是章节,不计入固定 27 章;字段和确认顺序见 [小挂件协议](widgets-protocol.md)。
4
-
5
- 此文件只在形成章节、方法候选、案例或服务方案时读取。所有内容由当前项目真实原话和来源生成;这里定义字段,不提供默认作品或默认服务方案。
6
-
7
- ## 公共产物结构
8
-
9
- 每个 artifacts 数组元素严格包含以下必填字段:
10
-
11
- - id、stage、kind、title、markdown:字符串。
12
- - evidence:Ref 数组,记录真实输入或资料依据。
13
- - dependencies:Ref 数组,记录已确认的上游产物。
14
- - unresolved:影响当前版本确认的未决事项字符串数组;非空时禁止正式确认。已经明确排除在本次范围外的后续版本计划写入正文的范围说明,不重复放入此数组。仍影响当前结论的缺口必须保留。
15
- - data:可选对象;没有特殊结构时使用 {}。
16
-
17
- 不要提交 hash 或 revision,工具负责计算。evidence 或 dependencies 至少有一项实际依据。知识、方法、服务产物的 dependencies 应分别引用每个上游阶段实际使用的已确认章节;下游章节还要引用实际使用的方法候选、场景或蓝图。引用对象 hash 必须是当前版本。未决项如允许延后,应在正文准确说明缺口并让创作者校准这个范围;不能为了确认清空仍待解决的具体问题。
18
-
19
- | kind | stage | 固定 id | data |
20
- | --- | --- | --- | --- |
21
- | chapter | definition | definition.1 至 definition.6 | 可留 {},正文对应 catalog 的六章 |
22
- | chapter | knowledge | knowledge.1 至 knowledge.7 | 可留 {},正文对应七章 |
23
- | chapter | methods | methods.1 至 methods.5 | 可留 {},正文对应五章 |
24
- | chapter | service | service.1 至 service.9 | 可留 {},正文对应九章 |
25
- | hypothesis | methods | hypothesis.H1 至 hypothesis.H4 | 可留 {};先形成 3—4 条不同候选 |
26
- | scenario | methods | scenario.M01 至 scenario.M04;scenario.E01 至 scenario.E03 | 具体执行写 markdown |
27
- | blueprint | service | service.blueprint | 使用下节结构 |
28
- | transition | service | transition.acquisition-paid、transition.acquisition-maintenance、transition.paid-paid、transition.paid-maintenance | trigger、rightsChange、dataInheritance、message 均为非空字符串 |
29
-
30
- 四册是固定章节的组合,没有 kind:booklet 产物,也不使用 data.chapters。整册确认通过 delivery.confirmationScope=booklet 和该册全部章节 ID;逐章确认用 scope=object 及对应章节。一次不能跨册。
31
-
32
- 方法候选正式反馈使用 decision:accepted 或 rejected,其他对象使用 confirmed。3—4 条候选均处理且至少一条 accepted 才进入基础场景。基础场景可在创作者回答足够具体时忠实记录,其 data.capture=faithful_user_answer 仅用于刚回答的对应 M01—M04,必须引用本轮精确原话,正文不能新增条件、顺序或推断。新增推导应走正常展示、下一轮确认。E01—E03 必须在四基础有效确认之后生成,并依赖对应基础场景;每次只变一个条件。
33
-
34
- ## service.blueprint 的 data
35
-
36
- 可以先保存带未决项的草案;以下字段与业务判断齐备后才能正式确认。字段是内部记录格式,不把这张表变成一次询问用户的清单。智能规划基于已有信息给完整建议,只有实际缺口才追问。
37
-
38
- | 字段 | 形状与含义 |
39
- | --- | --- |
40
- | platformRules | 原样使用 context.catalog.serviceRules;不能复制旧限制 |
41
- | valueStatement | 非空字符串:持续使用能得到什么 |
42
- | recurrenceDrivers | 非空字符串数组:持续求助的真实原因 |
43
- | renewalEvidence | 非空字符串数组:1—3 项可观察成果、变化或下一周期目标 |
44
- | serviceLoop | 对象,trigger、requiredInput、decision、action、result、feedback、nextCycleUpdate 均为非空字符串 |
45
- | acquisitionContract | 对象,trigger、requiredInput、completionCriteria、conversionBridge 均为非空字符串;includedSteps 非空字符串数组;excludedSteps 字符串数组,可为 [] |
46
- | stages | acquisition、paid、maintenance 三个阶段对象;各用 result/service/limit 描述帮助和范围,付费阶段不能将 limit 写成 AI 对话次数 |
47
- | transitions | 五个键:acquisition-paid、acquisition-maintenance、paid-paid、paid-maintenance、maintenance-paid;每项含 trigger、rightsChange、dataInheritance、message 非空字符串,可另给 title |
48
- | billingCycle | 严格为 {count:正整数,unit:"day"或"week"或"month"或"year"};用户定义,不默认月度 |
49
- | price | 这一整个订阅周期对应的正数价格 |
50
- | cadence | 非空字符串:交付频率,与订阅周期分开 |
51
- | deliveries | 非空字符串:交付内容与明确时间范围;不能限制普通 AI 对话 |
52
- | toolLimit | 非空字符串:工具范围及对应时间,未使用额度限制时如实说明,不变相限制聊天 |
53
- | conversationLimit | 固定为 "unlimited" |
54
- | humanConversationLimit | 真人服务次数、时长和响应安排的具体说明,与 AI 对话分开;没有真人服务如实说明 |
55
- | maintenanceContract | basicConversation:true;allowedQuestions 非空字符串,说明实际可答的基础问题,不能只留历史或付费提示 |
56
- | humanReview | 布尔值,表示是否创作者本人复核 |
57
- | reviewCapacity | 有本人复核时必填非空字符串,基于真实产能与时间范围;没有依据则保留未决,不能编造 |
58
- | multiUser | 固定 false,当前单用户单档订阅设计 |
59
- | experienceMode | "conversation" 或 "custom-component";后者另填 customComponentDescription 具体说明组件 |
60
- | semanticChecks | 下节各项公开业务判断与真实证据 |
61
-
62
- semanticChecks 包含 coherentLoop、paidDeliverable、freeScopeAgreed、maintenanceBoundary、transitionsConfirmed、valueBeforePaywall、executableContract;存在本人复核时还包含 creatorCapacity。每项结构为 `{pass:布尔值,evidence:Ref数组}`。pass=true 必须有非空真实依据,不能靠通过结构校验证明语义正确。未通过写 false 并在产物 unresolved 说明待明确内容。
63
-
64
- guided 模式需四条非默认 transition 产物逐条有效确认,其 data 与 blueprint.data.transitions 中对应对象保持一致。maintenance-paid 为恢复订阅默认路径,保留完整权益与历史继承说明,不新增第五组采访。smart 模式整体展示蓝图、根据反馈修订;正式确认前仍核对五条路径、产能和服务约定,不以模型推测替代创作者意见。
65
-
66
- 为避免重复生成路径正文,提交 blueprint 时,`data.transitions` 中的四条非默认路径可以使用对应已确认产物的 Ref:`{type:"artifact",id:"transition.paid-paid",hash:已保存版本hash}`。例如宿主可将 `client.artifact_ref('transition.paid-paid')` 赋给 `blueprint['data']['transitions']['paid-paid']`。工具验证 ID、hash 和有效确认后,复制该产物的完整 data,并登记版本依赖,再计算蓝图 hash。保存、预览、导出仍使用展开后的原有蓝图结构;引用不改写源路径,也不会代替用户确认。旧版提交完整路径对象的方式继续有效。
67
-
68
- 引用必须对应同名路径;不存在、已失效或尚未确认的版本会被拒绝。maintenance-paid 仍提交完整路径对象。显式提交的完整对象不会被工具悄悄纠正;出现“每周”与“每 7 天”等文字差异时,仍按版本一致性门槛拒绝,并返回具体字段差异。路径确实需要变化时,先修订路径并重新展示确认,再据新版本整理蓝图。
69
-
70
- 服务蓝图正式确认且门槛满足后,才能定稿九章服务手册。订阅时长变化同步核对价格、交付、工具或真人额度和路径文案,不自动等比例涨价或扩大承诺。付费 AI 对话不限次数、维持基础对话与历史、免费范围可持续跟进始终有效。
@@ -1,401 +0,0 @@
1
- {
2
- "stages": [
3
- "definition",
4
- "knowledge",
5
- "methods",
6
- "service"
7
- ],
8
- "chapters": {
9
- "definition": [
10
- "定位",
11
- "目标用户",
12
- "带来的改变",
13
- "独特性",
14
- "角色与关系",
15
- "责任边界"
16
- ],
17
- "knowledge": [
18
- "知识地图",
19
- "概念",
20
- "主张",
21
- "做法",
22
- "案例",
23
- "边界",
24
- "来源"
25
- ],
26
- "methods": [
27
- "方法总览",
28
- "关键判断",
29
- "处理路径",
30
- "场景与调整",
31
- "边界与例外"
32
- ],
33
- "service": [
34
- "服务定位",
35
- "免费体验",
36
- "订阅服务",
37
- "交付节奏",
38
- "价格与额度",
39
- "停付与历史",
40
- "用户路径",
41
- "呈现与复核",
42
- "服务约定"
43
- ]
44
- },
45
- "cards": {
46
- "D01": {
47
- "stage": "definition",
48
- "title": "定位",
49
- "minimum": "搭子类型,以及帮助用户完成的一件核心任务",
50
- "maxAnswers": 3,
51
- "hard": false
52
- },
53
- "D02": {
54
- "stage": "definition",
55
- "title": "目标用户",
56
- "minimum": "具体的人、他当时的情境与困难",
57
- "maxAnswers": 3,
58
- "hard": false
59
- },
60
- "D03": {
61
- "stage": "definition",
62
- "title": "带来的改变",
63
- "minimum": "用户可以观察或感受到的变化",
64
- "maxAnswers": 3,
65
- "hard": false
66
- },
67
- "D04": {
68
- "stage": "definition",
69
- "title": "独特性",
70
- "minimum": "一个有创作者经验依据的差异,无法说清可待补",
71
- "maxAnswers": 3,
72
- "hard": false
73
- },
74
- "D05": {
75
- "stage": "definition",
76
- "title": "角色与关系",
77
- "minimum": "相处关系、态度和决定由谁做",
78
- "maxAnswers": 3,
79
- "hard": false
80
- },
81
- "D06": {
82
- "stage": "definition",
83
- "title": "责任边界",
84
- "minimum": "至少一条明确不替用户承担的责任",
85
- "maxAnswers": 3,
86
- "hard": false
87
- },
88
- "K01": {
89
- "stage": "knowledge",
90
- "title": "知识主题",
91
- "minimum": "支撑核心任务的主题及范围",
92
- "maxAnswers": 2,
93
- "hard": false
94
- },
95
- "K02": {
96
- "stage": "knowledge",
97
- "title": "来源发现",
98
- "minimum": "名称、取得方式;仅用户明确结束或跳过才关闭发现",
99
- "maxAnswers": 9007199254740991,
100
- "hard": false
101
- },
102
- "K03": {
103
- "stage": "knowledge",
104
- "title": "隐性经验",
105
- "minimum": "当前核心任务相关经验的具体含义、适用条件及原话或材料依据;线索本身不算已讲清,具体执行在方法阶段校准",
106
- "maxAnswers": 6,
107
- "hard": false,
108
- "reviewAfter": 4
109
- },
110
- "K04": {
111
- "stage": "knowledge",
112
- "title": "首批导入计划",
113
- "minimum": "用户明确选择来源范围;每类必需来源至少一项真实可用,范围内没有待处理或失败资料",
114
- "maxAnswers": 2,
115
- "hard": false
116
- },
117
- "M01": {
118
- "stage": "methods",
119
- "title": "初次求助",
120
- "minimum": "用户先答:关键判断、下一步、依据",
121
- "maxAnswers": 6,
122
- "hard": true,
123
- "reviewAfter": 4
124
- },
125
- "M02": {
126
- "stage": "methods",
127
- "title": "行动受阻",
128
- "minimum": "用户先答:取舍、调整及依据",
129
- "maxAnswers": 6,
130
- "hard": true,
131
- "reviewAfter": 4
132
- },
133
- "M03": {
134
- "stage": "methods",
135
- "title": "责任边缘",
136
- "minimum": "用户先答:继续范围或停止条件及依据",
137
- "maxAnswers": 6,
138
- "hard": true,
139
- "reviewAfter": 4
140
- },
141
- "M04": {
142
- "stage": "methods",
143
- "title": "明确越界",
144
- "minimum": "用户先答:不承担的要求及既有边界关系",
145
- "maxAnswers": 6,
146
- "hard": true,
147
- "reviewAfter": 4
148
- },
149
- "H01": {
150
- "stage": "methods",
151
- "title": "候选一校准",
152
- "minimum": "辨明当前假设与真实做法的具体差异",
153
- "maxAnswers": 2,
154
- "hard": true
155
- },
156
- "H02": {
157
- "stage": "methods",
158
- "title": "候选二校准",
159
- "minimum": "辨明当前假设与真实做法的具体差异",
160
- "maxAnswers": 2,
161
- "hard": true
162
- },
163
- "H03": {
164
- "stage": "methods",
165
- "title": "候选三校准",
166
- "minimum": "辨明当前假设与真实做法的具体差异",
167
- "maxAnswers": 2,
168
- "hard": true
169
- },
170
- "H04": {
171
- "stage": "methods",
172
- "title": "候选四校准",
173
- "minimum": "辨明当前假设与真实做法的具体差异",
174
- "maxAnswers": 2,
175
- "hard": true
176
- },
177
- "E01": {
178
- "stage": "methods",
179
- "title": "现实约束变化",
180
- "minimum": "四基础场景已确认;只变一个条件;复用已知具体动作,说清执行顺序、受阻时的替代与可观察结果,再校准推导",
181
- "maxAnswers": 6,
182
- "hard": true,
183
- "reviewAfter": 4
184
- },
185
- "E02": {
186
- "stage": "methods",
187
- "title": "原则冲突",
188
- "minimum": "只变一个条件;说明原则取舍后具体怎样行动、怎样表达及何时调整,再由创作者校准",
189
- "maxAnswers": 6,
190
- "hard": true,
191
- "reviewAfter": 4
192
- },
193
- "E03": {
194
- "stage": "methods",
195
- "title": "边界或风险变化",
196
- "minimum": "只变一个条件;把责任边界落实为停止什么、接着怎样回应及允许的下一步,再由创作者校准",
197
- "maxAnswers": 6,
198
- "hard": true,
199
- "reviewAfter": 4
200
- },
201
- "S01": {
202
- "stage": "service",
203
- "title": "免费体验",
204
- "minimum": "情境、输入、步骤、体验时长或结束条件、范围、继续价值;可包含多天跟进、答疑和方案修改,不限一次结果",
205
- "maxAnswers": 3,
206
- "hard": true
207
- },
208
- "S02": {
209
- "stage": "service",
210
- "title": "订阅服务",
211
- "minimum": "输入→判断→行动→结果→反馈→下轮更新及触发条件",
212
- "maxAnswers": 3,
213
- "hard": true
214
- },
215
- "S03": {
216
- "stage": "service",
217
- "title": "服务方式",
218
- "minimum": "持续服务、周期结果或交付工具次数;AI对话不限次数,真人服务可约定次数;单档订阅时长由创作者自定义",
219
- "maxAnswers": 3,
220
- "hard": true
221
- },
222
- "S04": {
223
- "stage": "service",
224
- "title": "节奏交付与价格",
225
- "minimum": "明确订阅时长与对应价格;交付频率、交付与工具额度单列,不能变相限制AI对话;真人次数与时长另行约定",
226
- "maxAnswers": 3,
227
- "hard": true
228
- },
229
- "S05": {
230
- "stage": "service",
231
- "title": "停止付费后",
232
- "minimum": "保证基础对话和历史查看;说明普通答疑内容,不能仅留静态历史或付费提示;不自动包含付费交付与真人服务",
233
- "maxAnswers": 3,
234
- "hard": true
235
- },
236
- "S06": {
237
- "stage": "service",
238
- "title": "续费依据",
239
- "minimum": "1—3个具体变化、成果或下一周期目标",
240
- "maxAnswers": 3,
241
- "hard": true
242
- },
243
- "S07": {
244
- "stage": "service",
245
- "title": "呈现与本人复核",
246
- "minimum": "纯对话或明确组件;本人复核有真实产能",
247
- "maxAnswers": 3,
248
- "hard": true
249
- },
250
- "S08": {
251
- "stage": "service",
252
- "title": "四种用户经历",
253
- "minimum": "四条非默认动线各覆盖时点、权益、表达;明确确认",
254
- "maxAnswers": 3,
255
- "hard": true
256
- },
257
- "S09": {
258
- "stage": "service",
259
- "title": "整体确认",
260
- "minimum": "三阶段五动线与契约一致",
261
- "maxAnswers": 3,
262
- "hard": true
263
- },
264
- "S00": {
265
- "stage": "service",
266
- "title": "服务模式与规划方式",
267
- "minimum": "先解释固定模式,创作者选择智能规划或逐项讨论;答疑不计为服务采访回答",
268
- "maxAnswers": 3,
269
- "hard": true
270
- },
271
- "R00": {
272
- "stage": "service",
273
- "title": "本次优化方向",
274
- "minimum": "四册完成后,了解本次明确希望修改的范围",
275
- "maxAnswers": 3,
276
- "hard": false
277
- },
278
- "T.acquisition-paid.1": {
279
- "stage": "service",
280
- "title": "acquisition-paid:时点",
281
- "minimum": "基于已确认服务,说明本路径何时发生及触发条件;已知则不再问",
282
- "maxAnswers": 3,
283
- "hard": true
284
- },
285
- "T.acquisition-paid.2": {
286
- "stage": "service",
287
- "title": "acquisition-paid:权益",
288
- "minimum": "基于已确认服务,说明本路径发生后继续或停止哪些服务;已知则不再问",
289
- "maxAnswers": 3,
290
- "hard": true
291
- },
292
- "T.acquisition-paid.3": {
293
- "stage": "service",
294
- "title": "acquisition-paid:表达",
295
- "minimum": "基于已确认服务,说明怎样向用户讲清本路径的变化和选择;已知则不再问",
296
- "maxAnswers": 3,
297
- "hard": true
298
- },
299
- "T.acquisition-maintenance.1": {
300
- "stage": "service",
301
- "title": "acquisition-maintenance:时点",
302
- "minimum": "基于已确认服务,说明本路径何时发生及触发条件;已知则不再问",
303
- "maxAnswers": 3,
304
- "hard": true
305
- },
306
- "T.acquisition-maintenance.2": {
307
- "stage": "service",
308
- "title": "acquisition-maintenance:权益",
309
- "minimum": "基于已确认服务,说明本路径发生后继续或停止哪些服务;已知则不再问",
310
- "maxAnswers": 3,
311
- "hard": true
312
- },
313
- "T.acquisition-maintenance.3": {
314
- "stage": "service",
315
- "title": "acquisition-maintenance:表达",
316
- "minimum": "基于已确认服务,说明怎样向用户讲清本路径的变化和选择;已知则不再问",
317
- "maxAnswers": 3,
318
- "hard": true
319
- },
320
- "T.paid-paid.1": {
321
- "stage": "service",
322
- "title": "paid-paid:时点",
323
- "minimum": "基于已确认服务,说明本路径何时发生及触发条件;已知则不再问",
324
- "maxAnswers": 3,
325
- "hard": true
326
- },
327
- "T.paid-paid.2": {
328
- "stage": "service",
329
- "title": "paid-paid:权益",
330
- "minimum": "基于已确认服务,说明本路径发生后继续或停止哪些服务;已知则不再问",
331
- "maxAnswers": 3,
332
- "hard": true
333
- },
334
- "T.paid-paid.3": {
335
- "stage": "service",
336
- "title": "paid-paid:表达",
337
- "minimum": "基于已确认服务,说明怎样向用户讲清本路径的变化和选择;已知则不再问",
338
- "maxAnswers": 3,
339
- "hard": true
340
- },
341
- "T.paid-maintenance.1": {
342
- "stage": "service",
343
- "title": "paid-maintenance:时点",
344
- "minimum": "基于已确认服务,说明本路径何时发生及触发条件;已知则不再问",
345
- "maxAnswers": 3,
346
- "hard": true
347
- },
348
- "T.paid-maintenance.2": {
349
- "stage": "service",
350
- "title": "paid-maintenance:权益",
351
- "minimum": "基于已确认服务,说明本路径发生后继续或停止哪些服务;已知则不再问",
352
- "maxAnswers": 3,
353
- "hard": true
354
- },
355
- "T.paid-maintenance.3": {
356
- "stage": "service",
357
- "title": "paid-maintenance:表达",
358
- "minimum": "基于已确认服务,说明怎样向用户讲清本路径的变化和选择;已知则不再问",
359
- "maxAnswers": 3,
360
- "hard": true
361
- }
362
- },
363
- "serviceRules": {
364
- "billingModel": "subscription",
365
- "billingCycle": "creator_defined",
366
- "tiers": 1,
367
- "multiUser": false,
368
- "humanReviewProvider": "creator",
369
- "free": {
370
- "scope": "creator_defined",
371
- "duration": "creator_defined",
372
- "followUp": "creator_defined",
373
- "valueBeforePaywall": true
374
- },
375
- "paid": {
376
- "aiConversationLimit": "unlimited",
377
- "humanConversationLimit": "creator_defined"
378
- },
379
- "maintenance": {
380
- "history": true,
381
- "basicChat": true,
382
- "newCompleteResults": false,
383
- "proactive": false,
384
- "highCostTools": false,
385
- "humanReview": false,
386
- "honourPaidPeriod": true
387
- },
388
- "resume": {
389
- "restoreFullService": true,
390
- "inheritHistory": true,
391
- "defaultConfirmed": true
392
- }
393
- },
394
- "interviewPolicy": {
395
- "gapMaxAnswers": 3,
396
- "noGainLimit": 2,
397
- "deepReviewAfter": 4,
398
- "deepMaxAnswers": 6,
399
- "sourceDiscovery": "explicit_creator_closure"
400
- }
401
- }