@researai/deepscientist 1.5.14 → 1.5.16

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 (225) hide show
  1. package/README.md +336 -90
  2. package/assets/branding/logo-raster.png +0 -0
  3. package/bin/ds.js +816 -131
  4. package/docs/en/00_QUICK_START.md +36 -15
  5. package/docs/en/01_SETTINGS_REFERENCE.md +53 -4
  6. package/docs/en/02_START_RESEARCH_GUIDE.md +7 -0
  7. package/docs/en/03_QQ_CONNECTOR_GUIDE.md +19 -0
  8. package/docs/en/05_TUI_GUIDE.md +6 -0
  9. package/docs/en/06_RUNTIME_AND_CANVAS.md +4 -3
  10. package/docs/en/09_DOCTOR.md +11 -5
  11. package/docs/en/10_WEIXIN_CONNECTOR_GUIDE.md +20 -0
  12. package/docs/en/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +65 -13
  13. package/docs/en/15_CODEX_PROVIDER_SETUP.md +25 -8
  14. package/docs/en/16_TELEGRAM_CONNECTOR_GUIDE.md +134 -0
  15. package/docs/en/17_WHATSAPP_CONNECTOR_GUIDE.md +126 -0
  16. package/docs/en/18_FEISHU_CONNECTOR_GUIDE.md +136 -0
  17. package/docs/en/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
  18. package/docs/en/19_LOCAL_BROWSER_AUTH.md +70 -0
  19. package/docs/en/20_WORKSPACE_MODES_GUIDE.md +250 -0
  20. package/docs/en/README.md +24 -0
  21. package/docs/zh/00_QUICK_START.md +36 -15
  22. package/docs/zh/01_SETTINGS_REFERENCE.md +53 -4
  23. package/docs/zh/02_START_RESEARCH_GUIDE.md +7 -0
  24. package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +19 -0
  25. package/docs/zh/05_TUI_GUIDE.md +6 -0
  26. package/docs/zh/09_DOCTOR.md +11 -5
  27. package/docs/zh/10_WEIXIN_CONNECTOR_GUIDE.md +20 -0
  28. package/docs/zh/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +65 -13
  29. package/docs/zh/15_CODEX_PROVIDER_SETUP.md +25 -8
  30. package/docs/zh/16_TELEGRAM_CONNECTOR_GUIDE.md +134 -0
  31. package/docs/zh/17_WHATSAPP_CONNECTOR_GUIDE.md +126 -0
  32. package/docs/zh/18_FEISHU_CONNECTOR_GUIDE.md +136 -0
  33. package/docs/zh/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
  34. package/docs/zh/19_LOCAL_BROWSER_AUTH.md +68 -0
  35. package/docs/zh/20_WORKSPACE_MODES_GUIDE.md +251 -0
  36. package/docs/zh/README.md +24 -0
  37. package/install.sh +2 -0
  38. package/package.json +1 -1
  39. package/pyproject.toml +1 -1
  40. package/src/deepscientist/__init__.py +1 -1
  41. package/src/deepscientist/acp/envelope.py +6 -0
  42. package/src/deepscientist/artifact/charts.py +567 -0
  43. package/src/deepscientist/artifact/guidance.py +50 -10
  44. package/src/deepscientist/artifact/metrics.py +228 -5
  45. package/src/deepscientist/artifact/schemas.py +3 -0
  46. package/src/deepscientist/artifact/service.py +4276 -308
  47. package/src/deepscientist/bash_exec/models.py +23 -0
  48. package/src/deepscientist/bash_exec/monitor.py +147 -67
  49. package/src/deepscientist/bash_exec/runtime.py +218 -156
  50. package/src/deepscientist/bash_exec/service.py +309 -69
  51. package/src/deepscientist/bash_exec/shells.py +87 -0
  52. package/src/deepscientist/bridges/connectors.py +51 -2
  53. package/src/deepscientist/cli.py +115 -19
  54. package/src/deepscientist/codex_cli_compat.py +232 -0
  55. package/src/deepscientist/config/models.py +8 -4
  56. package/src/deepscientist/config/service.py +38 -11
  57. package/src/deepscientist/connector/weixin_support.py +122 -1
  58. package/src/deepscientist/daemon/api/handlers.py +199 -9
  59. package/src/deepscientist/daemon/api/router.py +5 -0
  60. package/src/deepscientist/daemon/app.py +1458 -289
  61. package/src/deepscientist/doctor.py +51 -0
  62. package/src/deepscientist/file_lock.py +48 -0
  63. package/src/deepscientist/gitops/__init__.py +10 -1
  64. package/src/deepscientist/gitops/diff.py +296 -1
  65. package/src/deepscientist/gitops/service.py +4 -1
  66. package/src/deepscientist/mcp/server.py +212 -5
  67. package/src/deepscientist/process_control.py +161 -0
  68. package/src/deepscientist/prompts/builder.py +501 -453
  69. package/src/deepscientist/quest/layout.py +15 -2
  70. package/src/deepscientist/quest/service.py +2539 -195
  71. package/src/deepscientist/quest/stage_views.py +177 -1
  72. package/src/deepscientist/runners/base.py +2 -0
  73. package/src/deepscientist/runners/codex.py +169 -31
  74. package/src/deepscientist/runners/runtime_overrides.py +17 -1
  75. package/src/deepscientist/skills/__init__.py +2 -2
  76. package/src/deepscientist/skills/installer.py +196 -5
  77. package/src/deepscientist/skills/registry.py +66 -0
  78. package/src/prompts/connectors/qq.md +18 -8
  79. package/src/prompts/connectors/weixin.md +16 -6
  80. package/src/prompts/contracts/shared_interaction.md +24 -4
  81. package/src/prompts/system.md +921 -72
  82. package/src/prompts/system_copilot.md +43 -0
  83. package/src/skills/analysis-campaign/SKILL.md +32 -2
  84. package/src/skills/analysis-campaign/references/artifact-orchestration.md +1 -1
  85. package/src/skills/analysis-campaign/references/writing-facing-slice-examples.md +65 -0
  86. package/src/skills/baseline/SKILL.md +10 -0
  87. package/src/skills/decision/SKILL.md +27 -2
  88. package/src/skills/experiment/SKILL.md +16 -2
  89. package/src/skills/figure-polish/SKILL.md +1 -0
  90. package/src/skills/finalize/SKILL.md +19 -0
  91. package/src/skills/idea/SKILL.md +79 -0
  92. package/src/skills/idea/references/idea-generation-playbook.md +100 -0
  93. package/src/skills/idea/references/outline-seeding-example.md +60 -0
  94. package/src/skills/intake-audit/SKILL.md +9 -1
  95. package/src/skills/mentor/SKILL.md +217 -0
  96. package/src/skills/mentor/references/correction-rules.md +210 -0
  97. package/src/skills/mentor/references/knowledge-profile.md +91 -0
  98. package/src/skills/mentor/references/persona-profile.md +138 -0
  99. package/src/skills/mentor/references/taste-profile.md +128 -0
  100. package/src/skills/mentor/references/thought-style-profile.md +138 -0
  101. package/src/skills/mentor/references/work-profile.md +289 -0
  102. package/src/skills/mentor/references/workflow-profile.md +240 -0
  103. package/src/skills/optimize/SKILL.md +1645 -0
  104. package/src/skills/rebuttal/SKILL.md +3 -1
  105. package/src/skills/review/SKILL.md +3 -1
  106. package/src/skills/scout/SKILL.md +8 -0
  107. package/src/skills/write/SKILL.md +81 -12
  108. package/src/skills/write/references/outline-evidence-contract-example.md +107 -0
  109. package/src/tui/dist/app/AppContainer.js +22 -11
  110. package/src/tui/dist/index.js +4 -1
  111. package/src/tui/dist/lib/api.js +33 -3
  112. package/src/tui/package.json +1 -1
  113. package/src/ui/dist/assets/AiManusChatView-COFACy7V.js +204 -0
  114. package/src/ui/dist/assets/AnalysisPlugin-DnSm0GZn.js +1 -0
  115. package/src/ui/dist/assets/CliPlugin-CvwCmDQ5.js +109 -0
  116. package/src/ui/dist/assets/CodeEditorPlugin-cOqSa0xq.js +2 -0
  117. package/src/ui/dist/assets/CodeViewerPlugin-itb0tltR.js +270 -0
  118. package/src/ui/dist/assets/DocViewerPlugin-DqKkiCI6.js +7 -0
  119. package/src/ui/dist/assets/GitCommitViewerPlugin-DVgNHBCS.js +1 -0
  120. package/src/ui/dist/assets/GitDiffViewerPlugin-DxL2ezFG.js +6 -0
  121. package/src/ui/dist/assets/GitSnapshotViewer-B_RQm1YZ.js +30 -0
  122. package/src/ui/dist/assets/ImageViewerPlugin-tHqlXY3n.js +26 -0
  123. package/src/ui/dist/assets/LabCopilotPanel-ClMbq5Yu.js +14 -0
  124. package/src/ui/dist/assets/LabPlugin-L_SuE8ow.js +22 -0
  125. package/src/ui/dist/assets/LatexPlugin-B495DTXC.js +25 -0
  126. package/src/ui/dist/assets/MarkdownViewerPlugin-DG28-61B.js +128 -0
  127. package/src/ui/dist/assets/MarketplacePlugin-BiOGT-Kj.js +13 -0
  128. package/src/ui/dist/assets/{NotebookEditor-CccQYZjX.css → NotebookEditor-BHH8rdGj.css} +1 -1
  129. package/src/ui/dist/assets/NotebookEditor-BOr3x3Ej.css +1 -0
  130. package/src/ui/dist/assets/NotebookEditor-C-4Kt1p9.js +81 -0
  131. package/src/ui/dist/assets/NotebookEditor-CVsj8h_T.js +361 -0
  132. package/src/ui/dist/assets/PdfLoader-CASDQmxJ.js +16 -0
  133. package/src/ui/dist/assets/PdfLoader-Cy5jtWrr.css +1 -0
  134. package/src/ui/dist/assets/PdfMarkdownPlugin-BFhwoKsY.js +1 -0
  135. package/src/ui/dist/assets/PdfViewerPlugin-DcOzU9vd.js +17 -0
  136. package/src/ui/dist/assets/PdfViewerPlugin-nwwE-fjJ.css +1 -0
  137. package/src/ui/dist/assets/SearchPlugin-CHj7M58O.js +16 -0
  138. package/src/ui/dist/assets/SearchPlugin-DA4en4hK.css +1 -0
  139. package/src/ui/dist/assets/TextViewerPlugin-CB4DYfWO.js +54 -0
  140. package/src/ui/dist/assets/VNCViewer-CjlbyCB3.js +11 -0
  141. package/src/ui/dist/assets/bot-CFkZY-JP.js +6 -0
  142. package/src/ui/dist/assets/browser-CTB2jwNe.js +8 -0
  143. package/src/ui/dist/assets/chevron-up-Dq5ofbht.js +6 -0
  144. package/src/ui/dist/assets/code-DLC6G24T.js +6 -0
  145. package/src/ui/dist/assets/file-content-Dv4LoZec.js +1 -0
  146. package/src/ui/dist/assets/file-diff-panel-Denq-lC3.js +1 -0
  147. package/src/ui/dist/assets/file-jump-queue-DA-SdG__.js +1 -0
  148. package/src/ui/dist/assets/file-socket-Cu4Qln7Y.js +1 -0
  149. package/src/ui/dist/assets/git-commit-horizontal-BUh6G52n.js +6 -0
  150. package/src/ui/dist/assets/image-B9HUUddG.js +6 -0
  151. package/src/ui/dist/assets/index-B2B1sg-M.js +1 -0
  152. package/src/ui/dist/assets/index-Cgla8biy.css +33 -0
  153. package/src/ui/dist/assets/index-DRyx7vAc.js +1 -0
  154. package/src/ui/dist/assets/index-Gbl53BNp.js +2496 -0
  155. package/src/ui/dist/assets/index-wQ7RIIRd.js +11 -0
  156. package/src/ui/dist/assets/monaco-CiHMMNH_.js +1 -0
  157. package/src/ui/dist/assets/pdf-effect-queue-ZtnHFCAi.js +6 -0
  158. package/src/ui/dist/assets/plugin-monaco-C8UgLomw.js +19 -0
  159. package/src/ui/dist/assets/plugin-notebook-HbW2K-1c.js +169 -0
  160. package/src/ui/dist/assets/plugin-pdf-CR8hgQBV.js +357 -0
  161. package/src/ui/dist/assets/plugin-terminal-MXFIPun8.js +227 -0
  162. package/src/ui/dist/assets/popover-DL6h35vr.js +1 -0
  163. package/src/ui/dist/assets/project-sync-CsX08Qno.js +1 -0
  164. package/src/ui/dist/assets/select-DvmXt1yY.js +11 -0
  165. package/src/ui/dist/assets/sigma-7jpXazui.js +6 -0
  166. package/src/ui/dist/assets/trash-xA7kFt8i.js +11 -0
  167. package/src/ui/dist/assets/useCliAccess-DsMwDjOp.js +1 -0
  168. package/src/ui/dist/assets/useFileDiffOverlay-FuhcnKiw.js +1 -0
  169. package/src/ui/dist/assets/wrap-text-CwMn-iqb.js +11 -0
  170. package/src/ui/dist/assets/zoom-out-R-GWEhzS.js +11 -0
  171. package/src/ui/dist/index.html +5 -2
  172. package/src/ui/dist/assets/AiManusChatView-DaF9Nge_.js +0 -26597
  173. package/src/ui/dist/assets/AnalysisPlugin-BSVx6dXE.js +0 -123
  174. package/src/ui/dist/assets/CliPlugin-C9gzJX41.js +0 -5905
  175. package/src/ui/dist/assets/CodeEditorPlugin-DU9G0Tox.js +0 -427
  176. package/src/ui/dist/assets/CodeViewerPlugin-DoX_fI9l.js +0 -905
  177. package/src/ui/dist/assets/DocViewerPlugin-C4FWIXuU.js +0 -278
  178. package/src/ui/dist/assets/GitDiffViewerPlugin-BgfFMgtf.js +0 -2661
  179. package/src/ui/dist/assets/ImageViewerPlugin-tcPkfY_x.js +0 -500
  180. package/src/ui/dist/assets/LabCopilotPanel-_dKV60Bf.js +0 -4104
  181. package/src/ui/dist/assets/LabPlugin-Bje0ayoC.js +0 -2677
  182. package/src/ui/dist/assets/LatexPlugin-CVsBzAln.js +0 -1792
  183. package/src/ui/dist/assets/MarkdownViewerPlugin-xjmrqv_8.js +0 -308
  184. package/src/ui/dist/assets/MarketplacePlugin-mMM2A8wP.js +0 -413
  185. package/src/ui/dist/assets/NotebookEditor-3kVDSOBo.js +0 -4214
  186. package/src/ui/dist/assets/NotebookEditor-C3VQ7ylN.css +0 -1405
  187. package/src/ui/dist/assets/NotebookEditor-SoJ8X-MO.js +0 -84873
  188. package/src/ui/dist/assets/PdfLoader-C-Y707R3.css +0 -49
  189. package/src/ui/dist/assets/PdfLoader-DElVuHl9.js +0 -25468
  190. package/src/ui/dist/assets/PdfMarkdownPlugin-Bq88XT4G.js +0 -409
  191. package/src/ui/dist/assets/PdfViewerPlugin-CsCXMo9S.js +0 -3095
  192. package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +0 -3627
  193. package/src/ui/dist/assets/SearchPlugin-DDMrGDkh.css +0 -379
  194. package/src/ui/dist/assets/SearchPlugin-oUPvy19k.js +0 -741
  195. package/src/ui/dist/assets/TextViewerPlugin-CRkT9yNy.js +0 -472
  196. package/src/ui/dist/assets/VNCViewer-BgbuvWhR.js +0 -18821
  197. package/src/ui/dist/assets/awareness-C0NPR2Dj.js +0 -292
  198. package/src/ui/dist/assets/bot-v_RASACv.js +0 -21
  199. package/src/ui/dist/assets/browser-BAcuE0Xj.js +0 -2895
  200. package/src/ui/dist/assets/code-5hC9d0VH.js +0 -17
  201. package/src/ui/dist/assets/file-content-D1PxfOrp.js +0 -377
  202. package/src/ui/dist/assets/file-diff-panel-DG1oT_Hj.js +0 -92
  203. package/src/ui/dist/assets/file-jump-queue-r5XKgJEV.js +0 -16
  204. package/src/ui/dist/assets/file-socket-BmdFYQlk.js +0 -58
  205. package/src/ui/dist/assets/function-B5QZkkHC.js +0 -1895
  206. package/src/ui/dist/assets/image-Dqe2X2tW.js +0 -18
  207. package/src/ui/dist/assets/index-BQG-1s2o.css +0 -12553
  208. package/src/ui/dist/assets/index-DVsMKK_y.js +0 -25
  209. package/src/ui/dist/assets/index-Duvz8Ip0.js +0 -159
  210. package/src/ui/dist/assets/index-Nt9hS4ck.js +0 -244829
  211. package/src/ui/dist/assets/index-RDlNXXx1.js +0 -120
  212. package/src/ui/dist/assets/monaco-DIXge1CP.js +0 -623
  213. package/src/ui/dist/assets/pdf-effect-queue-BBTTQaO-.js +0 -47
  214. package/src/ui/dist/assets/pdf_viewer-e0g1is2C.js +0 -8206
  215. package/src/ui/dist/assets/popover-BWlolyxo.js +0 -476
  216. package/src/ui/dist/assets/project-sync-BM5PkFH4.js +0 -297
  217. package/src/ui/dist/assets/select-D4dAtrA8.js +0 -1690
  218. package/src/ui/dist/assets/sigma-CKbE5jJT.js +0 -22
  219. package/src/ui/dist/assets/square-check-big-CZNGMgiB.js +0 -17
  220. package/src/ui/dist/assets/trash-DaB37xAz.js +0 -32
  221. package/src/ui/dist/assets/useCliAccess-C2OmAcWe.js +0 -957
  222. package/src/ui/dist/assets/useFileDiffOverlay-Dowd1Ij4.js +0 -53
  223. package/src/ui/dist/assets/wrap-text-BGjAhAUq.js +0 -35
  224. package/src/ui/dist/assets/yjs-DncrqiZ8.js +0 -11243
  225. package/src/ui/dist/assets/zoom-out-dMZQMXzc.js +0 -34
@@ -0,0 +1,100 @@
1
+ # Idea Generation Playbook
2
+
3
+ Use this reference when the `idea` stage needs a concrete creation flow for producing a new idea slate.
4
+
5
+ The goal is not a bag of clever mechanisms.
6
+ The goal is one clear next research object plus a durable record of what was deferred or rejected.
7
+
8
+ ## 1. Start from one limitation card
9
+
10
+ Write one limitation card before generating ideas:
11
+
12
+ - observed symptom
13
+ - condition where it appears
14
+ - why it matters for the target metric or claim
15
+ - strongest evidence that this is a real pattern
16
+
17
+ If the limitation card is weak, do not widen into ideation yet.
18
+
19
+ ## 2. Split the problem into three layers
20
+
21
+ For the active limitation, separate:
22
+
23
+ - symptom
24
+ - mechanism hypothesis
25
+ - consequence
26
+
27
+ Do not skip this split.
28
+ It prevents solution-shopping from becoming the hidden driver.
29
+
30
+ ## 3. Keep competing hypotheses alive
31
+
32
+ Before selecting mechanisms, record:
33
+
34
+ - one main hypothesis
35
+ - `2-3` competing hypotheses
36
+
37
+ If there is only one hypothesis, the idea pass is usually too collapsed.
38
+
39
+ ## 4. Name the lever bucket
40
+
41
+ Choose the primary lever bucket explicitly:
42
+
43
+ - data
44
+ - model
45
+ - objective
46
+ - optimization or training dynamics
47
+ - inference
48
+ - evaluation protocol
49
+ - infrastructure
50
+
51
+ If the lever bucket is unclear, the idea is usually still too fuzzy.
52
+
53
+ ## 5. Generate direction families, not micro-variants
54
+
55
+ Create a bounded slate of direction families.
56
+ Default target:
57
+
58
+ - `6-12` raw ideas in one bounded divergent pass
59
+ - collapse to `2-3` serious candidates and at most `5`
60
+
61
+ Prefer family-level differences over small parameter or implementation variations.
62
+ If several candidates are really the same family with minor tweaks, merge them.
63
+
64
+ For each serious candidate, record:
65
+
66
+ - limitation targeted
67
+ - mechanism family
68
+ - why now
69
+ - strongest prior-work overlap
70
+ - expected evidence burden
71
+ - likely falsification path
72
+
73
+ ## 6. Select one and ledger the rest
74
+
75
+ At the end of the pass, produce three durable buckets:
76
+
77
+ - selected
78
+ - deferred
79
+ - rejected
80
+
81
+ For deferred ideas, write why they remain plausible but are not first.
82
+ For rejected ideas, write one-line rejection reasons such as:
83
+
84
+ - redundant with closer prior work
85
+ - too confounded to test cleanly
86
+ - weak value if positive
87
+ - too broad for current compute or codebase
88
+ - lower priority than the selected route
89
+
90
+ ## 7. Exit criterion
91
+
92
+ The pass is complete only when the output contains:
93
+
94
+ - one selected idea or selected direction family
95
+ - one falsifiable claim
96
+ - one minimal experiment concept
97
+ - one abandonment condition
98
+ - deferred and rejected rationale recorded durably
99
+
100
+ If the result is still a bag of possibilities, stay in `idea`.
@@ -0,0 +1,60 @@
1
+ # Outline Seeding Example
2
+
3
+ Use this reference when the idea stage is strong enough that the next serious step will likely become a paper-facing line.
4
+
5
+ ## Goal
6
+
7
+ Before analysis begins, seed one lightweight but structured outline candidate so later experiments are not free-floating.
8
+
9
+ ## Minimal seed
10
+
11
+ ```json
12
+ {
13
+ "title": "Evidence-First Outline Seed",
14
+ "research_questions": [
15
+ "RQ1: Does the method outperform the accepted baseline?",
16
+ "RQ2: Which component is responsible for the gain?",
17
+ "RQ3: What boundary or failure regime matters most?"
18
+ ],
19
+ "experimental_designs": [
20
+ "Main benchmark comparison",
21
+ "Component ablation",
22
+ "Boundary analysis"
23
+ ],
24
+ "sections": [
25
+ {
26
+ "section_id": "results-main",
27
+ "title": "Main Results",
28
+ "paper_role": "main_text",
29
+ "claims": ["C1"],
30
+ "required_items": ["run-main-001"]
31
+ },
32
+ {
33
+ "section_id": "analysis-mechanism",
34
+ "title": "Mechanism Analysis",
35
+ "paper_role": "main_text",
36
+ "claims": ["C2"],
37
+ "required_items": ["AN-ABL-001"]
38
+ },
39
+ {
40
+ "section_id": "analysis-boundary",
41
+ "title": "Boundary Analysis",
42
+ "paper_role": "appendix",
43
+ "claims": ["C3"],
44
+ "optional_items": ["AN-BND-001"]
45
+ }
46
+ ]
47
+ }
48
+ ```
49
+
50
+ ## When to seed the outline
51
+
52
+ - The idea already survived literature and feasibility checks.
53
+ - The likely paper contribution is clear enough to name `1-3` research questions.
54
+ - You can already anticipate the first main experiment and at least one likely follow-up analysis family.
55
+
56
+ ## When not to seed the outline yet
57
+
58
+ - The task framing is still unstable.
59
+ - The idea frontier is still too wide.
60
+ - You still cannot say what the main claim would be if the route worked.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: intake-audit
3
3
  description: Use when a quest does not start from a blank state and the agent must first audit, trust-rank, and reconcile existing baselines, results, drafts, or review materials before choosing the next anchor.
4
+ skill_role: companion
4
5
  ---
5
6
 
6
7
  # Intake Audit
@@ -15,6 +16,13 @@ Use this skill when the quest already has meaningful state and the first job is
15
16
  - If a threaded user reply arrives, interpret it relative to the latest intake-audit progress update before assuming the task changed completely.
16
17
  - When the audit reaches a durable route recommendation, send one richer `artifact.interact(kind='milestone', reply_mode='threaded', ...)` update that says what state is trusted, what still needs work, and which anchor should run next.
17
18
 
19
+ ## Tool discipline
20
+
21
+ - **Do not use native `shell_command` / `command_execution` in this skill.**
22
+ - **Any shell, CLI, Python, bash, node, git, npm, uv, or repo-audit execution must go through `bash_exec(...)`.**
23
+ - **For git inspection or maintenance inside the current quest repository or worktree, prefer `artifact.git(...)` before raw shell git commands.**
24
+ - **Use shell execution only when durable quest files, artifacts, and memory are insufficient; do not bypass durable state just because shell feels faster.**
25
+
18
26
  ## Purpose
19
27
 
20
28
  `intake-audit` is an auxiliary entry skill, not a normal long-running anchor.
@@ -193,7 +201,7 @@ If the evidence is insufficient for a durable backfill, record that insufficienc
193
201
 
194
202
  ### 5. Choose the next anchor
195
203
 
196
- After reconciliation, write one durable route decision with `artifact.record(kind='decision', ...)`.
204
+ After reconciliation, write one durable route decision with `artifact.record(payload={'kind': 'decision', ...})`.
197
205
 
198
206
  Typical next anchors:
199
207
 
@@ -0,0 +1,217 @@
1
+ ---
2
+ name: mentor
3
+ description: Use when the work needs founder-level calibration for architecture convergence, verification rigor, product or UI taste, or when the user explicitly asks for mentor-style guidance aligned with the repository owner's standards.
4
+ skill_role: companion
5
+ ---
6
+
7
+ # Mentor
8
+
9
+ Use this as a companion calibration skill, not as a primary stage.
10
+
11
+ This skill distills the user's stable standards from historical Codex sessions using the same high-level method as `colleague-skill`:
12
+
13
+ - `Work`
14
+ - `Persona`
15
+ - `Correction`
16
+
17
+ The goal is not literal impersonation.
18
+ The goal is to preserve the user's durable judgment, technical bar, and product taste so the active stage skill executes in a way that feels aligned rather than generic.
19
+
20
+ Recent quest-dialog evidence matters here, not just generic system design taste.
21
+ When quest conversations reveal that the user repeatedly accepts or rejects a certain behavior pattern, treat that as stronger evidence than stylistic intuition.
22
+
23
+ ## Interaction discipline
24
+
25
+ - Follow the shared interaction contract injected by the system prompt.
26
+ - For ordinary active work, prefer a concise progress update once work has crossed roughly 6 tool calls with a human-meaningful delta, and do not drift beyond roughly 12 tool calls or about 8 minutes without a user-visible update.
27
+ - A mentor pass should tighten route selection and then return to the active primary skill. Do not turn it into endless meta-discussion.
28
+ - If the user explicitly asks to discuss or review the route before edits, stay in proposal mode until approval. Otherwise do not stop at critique; convert critique into a concrete corrective route.
29
+ - When the mentor pass materially changes the route, leave a durable `decision` or `report` artifact and say which primary skill should execute next.
30
+
31
+ ## Purpose
32
+
33
+ Use `mentor` when the work is technically possible but is drifting away from the user's real standards for:
34
+
35
+ - architecture convergence
36
+ - durable truth models
37
+ - prompt / skill / MCP / UI contract alignment
38
+ - verification rigor
39
+ - product and UI taste
40
+ - stepwise collaboration discipline
41
+
42
+ This skill is for situations like:
43
+
44
+ - several implementations are possible, but only one feels owner-aligned
45
+ - the current direction works locally but has become patchy, duplicated, or hard to reason about
46
+ - the UI looks acceptable but does not match the backend truth model
47
+ - the workflow has become verbose, repetitive, or under-verified
48
+ - the user explicitly asks for a mentor-style or founder-style pass
49
+
50
+ ## Use when
51
+
52
+ - the user asks for mentor-style guidance, founder-style calibration, or "how should this really be done?"
53
+ - the work is becoming patchwork instead of convergent
54
+ - the output feels like generic AI product work rather than the user's actual taste
55
+ - a system or workflow question needs a stronger truth-model judgment before implementation
56
+ - prompt, skill, MCP, branch, artifact, or UI contracts are diverging
57
+ - the team keeps fixing symptoms without reaching the real bottleneck
58
+
59
+ ## Do not use when
60
+
61
+ - the route is already clear and the task is straightforward execution
62
+ - the user only wants literal roleplay or flattering imitation
63
+ - the task is ordinary stage work with no calibration ambiguity
64
+ - the user has issued an explicit current-turn instruction that conflicts with the distilled style
65
+ - current user instruction wins
66
+
67
+ ## Non-negotiable rules
68
+
69
+ - Preserve judgment, not catchphrases.
70
+ - Preserve stable standards, not private incident details.
71
+ - Do not imitate verbal quirks, filler, or caricatured tone.
72
+ - User instruction and repository reality override the distilled persona layer.
73
+ - Prefer one convergent system over multiple overlapping special cases.
74
+ - Prefer root-cause fixes over cosmetic or surface-only patches.
75
+ - Prefer real verification over narrative confidence.
76
+ - UI must follow the real backend data and protocol semantics.
77
+ - Do not add a new page, protocol, or tool when a thinner reuse path already exists.
78
+ - Do not let planning replace implementation.
79
+ - When IDs, paths, branches, or artifact references matter, inspect or query them. Do not ask the model to guess.
80
+ - When the current-turn user instruction changes scope or insists on continuation, do not keep defending an old durable route as if it were still the active contract.
81
+ - When the user points to a concrete suspected bug or mismatch, verify that exact suspicion before narrating general system health.
82
+ - Do not bake real secrets, connector identifiers, personal identifiers, or workstation-specific details into the distilled profile.
83
+
84
+ ## Extended profile set
85
+
86
+ ### Part A: Work
87
+
88
+ Read [references/work-profile.md](references/work-profile.md) when the task needs calibration on:
89
+
90
+ - architecture
91
+ - state models
92
+ - prompt / skill / protocol design
93
+ - verification strategy
94
+ - system convergence
95
+ - artifact, branch, worktree, or ID discipline
96
+
97
+ ### Part B: Thought style
98
+
99
+ Read [references/thought-style-profile.md](references/thought-style-profile.md) when the task needs calibration on:
100
+
101
+ - how to reason through a problem
102
+ - how much to trust the current visible state
103
+ - when to pivot from planning to verification
104
+ - how to separate symptom, bottleneck, and contract
105
+
106
+ ### Part C: Knowledge reserve
107
+
108
+ Read [references/knowledge-profile.md](references/knowledge-profile.md) when the task needs calibration on:
109
+
110
+ - which kinds of concepts the user expects the system to already understand
111
+ - what repository-level and research-level background should shape decisions
112
+ - what technical and product knowledge should be treated as first-class
113
+
114
+ ### Part D: Workflow
115
+
116
+ Read [references/workflow-profile.md](references/workflow-profile.md) when the task needs calibration on:
117
+
118
+ - technical working routines
119
+ - research routines
120
+ - UI / frontend implementation routines
121
+ - debug and verification routines
122
+ - how to turn a request into a concrete sequence of steps
123
+
124
+ ### Part E: Persona
125
+
126
+ Read [references/persona-profile.md](references/persona-profile.md) when the task needs calibration on:
127
+
128
+ - communication style
129
+ - decision pressure
130
+ - what level of directness is appropriate
131
+ - how to challenge weak assumptions without drifting into fluff
132
+
133
+ ### Part F: Preference and taste
134
+
135
+ Read [references/taste-profile.md](references/taste-profile.md) when the task needs calibration on:
136
+
137
+ - UI and product taste
138
+ - what counts as clear vs decorative
139
+ - what feels owner-aligned for frontend, workflow, and user-facing artifacts
140
+
141
+ ### Part G: Correction
142
+
143
+ Read [references/correction-rules.md](references/correction-rules.md) when the work is stalling, generic, repetitive, overbuilt, or otherwise drifting into anti-patterns.
144
+
145
+ ## Workflow
146
+
147
+ ### 1. Reconstruct the real contract
148
+
149
+ State clearly:
150
+
151
+ - what the user actually wants
152
+ - what the code and runtime currently do
153
+ - where the mismatch really is
154
+
155
+ Do not begin with taste.
156
+ Begin with truth.
157
+
158
+ ### 2. Identify the calibration gap
159
+
160
+ Classify the real gap:
161
+
162
+ - architecture gap
163
+ - workflow gap
164
+ - protocol gap
165
+ - UI / product taste gap
166
+ - verification gap
167
+ - communication gap
168
+
169
+ Prefer one dominant gap instead of many vague complaints.
170
+
171
+ ### 3. Choose the smallest convergent fix
172
+
173
+ The mentor pass should usually reduce complexity, not add it.
174
+
175
+ Prefer:
176
+
177
+ - reuse over reinvention
178
+ - unification over parallel systems
179
+ - thinner interfaces over broader surfaces
180
+ - one clear viewer or contract over many partial ones
181
+
182
+ ### 4. Make the route explicit
183
+
184
+ Say:
185
+
186
+ - what should be changed
187
+ - what should not be changed
188
+ - which files or contracts are the real leverage points
189
+ - which primary skill should carry the implementation
190
+
191
+ ### 5. Return to execution
192
+
193
+ After calibration, hand back to the correct primary skill and continue the real work.
194
+
195
+ `mentor` is not done when it only criticizes.
196
+ It is done when it leaves a tighter route and the work can proceed cleanly.
197
+
198
+ ## Expected outputs
199
+
200
+ A good mentor pass usually leaves behind:
201
+
202
+ - one crisp route judgment
203
+ - one minimal corrective plan
204
+ - one explicit statement of the real bottleneck
205
+ - one clear handoff back to the primary skill
206
+
207
+ Optional durable outputs when needed:
208
+
209
+ - a `decision` artifact for route change
210
+ - a `report` artifact for system or product audit
211
+ - a compact checklist when the work is large enough to need step control
212
+
213
+ For deeper mentor calibration, also read when relevant:
214
+
215
+ - [references/thought-style-profile.md](references/thought-style-profile.md)
216
+ - [references/knowledge-profile.md](references/knowledge-profile.md)
217
+ - [references/workflow-profile.md](references/workflow-profile.md)
@@ -0,0 +1,210 @@
1
+ # Mentor Correction Rules
2
+
3
+ Use this file when the work is drifting.
4
+
5
+ ## Common failure smells
6
+
7
+ ### 1. Patchwork instead of convergence
8
+
9
+ Smell:
10
+
11
+ - many local fixes
12
+ - several near-duplicate viewers or routes
13
+ - special cases added faster than contracts are cleaned up
14
+
15
+ Correction:
16
+
17
+ - identify the shared object
18
+ - identify the shared contract
19
+ - collapse duplicate routes before adding more polish
20
+
21
+ ### 2. Surface polish over truth
22
+
23
+ Smell:
24
+
25
+ - nice UI but wrong status model
26
+ - clean layout but fake progress
27
+ - good copy but unverifiable behavior
28
+
29
+ Correction:
30
+
31
+ - fix backend truth and event semantics first
32
+ - then re-check the UI
33
+
34
+ ### 3. Long planning without leverage
35
+
36
+ Smell:
37
+
38
+ - many pages of analysis
39
+ - no exact files or contracts
40
+ - no verification route
41
+
42
+ Correction:
43
+
44
+ - reduce to one main bottleneck
45
+ - state exact leverage points
46
+ - attach one concrete verification step
47
+
48
+ ### 4. Generic AI output
49
+
50
+ Smell:
51
+
52
+ - too many equal options
53
+ - bland product direction
54
+ - language that sounds correct but not specific
55
+ - advice that could fit any codebase
56
+
57
+ Correction:
58
+
59
+ - make the answer repository-shaped
60
+ - name the contract, path, model, or route
61
+ - prefer one clear recommendation when the evidence supports it
62
+
63
+ ### 5. Repeated retries on the same failed path
64
+
65
+ Smell:
66
+
67
+ - the system keeps doing the same thing with different wording
68
+ - no new diagnostic information is gathered
69
+
70
+ Correction:
71
+
72
+ - stop the retry loop
73
+ - inspect the real state
74
+ - change the approach, not just the phrasing
75
+
76
+ ### 5A. Monitoring optimism instead of bug verification
77
+
78
+ Smell:
79
+
80
+ - the user points to a concrete mismatch
81
+ - the system answers with "still healthy", "still progressing", or "not stalled"
82
+ - the same reassurance is repeated across multiple turns
83
+
84
+ Correction:
85
+
86
+ - treat the user's suspicion as the active debugging target
87
+ - verify the exact claimed mismatch directly
88
+ - only return to broader health reporting after that specific claim is checked
89
+
90
+ ### 5C. Control-surface progress inflation
91
+
92
+ Smell:
93
+
94
+ - the answer reports many updated files
95
+ - but no new measurement, comparison, or manuscript delta exists
96
+ - the wording still implies major forward progress
97
+
98
+ Correction:
99
+
100
+ - explicitly separate bookkeeping progress from substantive progress
101
+ - say what changed in the control surface
102
+ - say what did not change in the underlying result state
103
+ - state the next real acceptance checkpoint
104
+
105
+ ### 5B. Defending stale closure against a new instruction
106
+
107
+ Smell:
108
+
109
+ - durable state says a line is done
110
+ - the user explicitly asks to continue exploration, add experiments, or rewrite a fuller paper
111
+ - the system keeps arguing from the old closeout state
112
+
113
+ Correction:
114
+
115
+ - note the previous closure state briefly
116
+ - switch the active contract to the new user instruction
117
+ - translate the new request into the smallest honest continuation route
118
+
119
+ ### 6. Prompt / skill / tool disagreement
120
+
121
+ Smell:
122
+
123
+ - prompt says one workflow
124
+ - skill says another
125
+ - tool surface cannot actually support either one
126
+
127
+ Correction:
128
+
129
+ - choose the real protocol
130
+ - rewrite the weaker layers to match it
131
+ - do not document around the mismatch
132
+
133
+ ### 7. IDs, paths, or references left implicit
134
+
135
+ Smell:
136
+
137
+ - "latest"
138
+ - "current item"
139
+ - "that run"
140
+ - "the selected branch"
141
+
142
+ without a reliable query mechanism
143
+
144
+ Correction:
145
+
146
+ - make the reference explicit
147
+ - or add the query surface the agent needs
148
+
149
+ ### 8. Durable references used as a shield
150
+
151
+ Smell:
152
+
153
+ - the answer names many files, reports, and summaries
154
+ - but still does not answer the user's real question
155
+
156
+ Correction:
157
+
158
+ - use durable references as evidence, not as evasion
159
+ - first answer the actual question
160
+ - then cite the files that justify that answer
161
+
162
+ ### 8A. Private details copied into the distilled style
163
+
164
+ Smell:
165
+
166
+ - the profile or reply includes raw connector ids
167
+ - copied user handles or message ids appear where a semantic label would work
168
+ - secrets, tokens, or machine-specific personal paths leak into summaries
169
+
170
+ Correction:
171
+
172
+ - remove the private literal
173
+ - keep only the reusable rule or sanitized evidence
174
+ - use relative paths, stable semantic ids, or generic labels unless the raw value is strictly necessary
175
+
176
+ ### 9. User continuation intent ignored
177
+
178
+ Smell:
179
+
180
+ - the user repeatedly says "继续"
181
+ - the answer keeps re-explaining why the current route is already enough
182
+ - forward motion stalls
183
+
184
+ Correction:
185
+
186
+ - interpret "继续" as permission to push the active route forward
187
+ - if a blocker exists, state the blocker and the smallest next action
188
+ - otherwise stop defending and continue execution
189
+
190
+ ### 10. Acceptance gate left implicit
191
+
192
+ Smell:
193
+
194
+ - the user gave a hard target like batch size, throughput, page count, or experiment count
195
+ - the answer talks generally about progress
196
+ - the target itself is never checked
197
+
198
+ Correction:
199
+
200
+ - promote the user-specified target into an explicit acceptance gate
201
+ - report the current measured value against that gate
202
+ - if it is unknown, say it is unknown and verify it next
203
+
204
+ ## Preferred correction pattern
205
+
206
+ 1. name the real smell
207
+ 2. explain why it matters
208
+ 3. identify the smallest convergent fix
209
+ 4. say what not to change
210
+ 5. hand back to the primary skill