@synap-core/cli 1.8.0 → 1.11.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 (372) hide show
  1. package/dist/commands/agent-chat.d.ts +47 -0
  2. package/dist/commands/agent-chat.js +250 -0
  3. package/dist/commands/agent-chat.js.map +1 -0
  4. package/dist/commands/agent-run.js +3 -4
  5. package/dist/commands/agent-run.js.map +1 -1
  6. package/dist/commands/agents.js +85 -46
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/automation.js +2 -1
  9. package/dist/commands/automation.js.map +1 -1
  10. package/dist/commands/bridge-setup.d.ts +66 -0
  11. package/dist/commands/bridge-setup.js +1112 -0
  12. package/dist/commands/bridge-setup.js.map +1 -0
  13. package/dist/commands/cap-connections.d.ts +28 -0
  14. package/dist/commands/cap-connections.js +224 -0
  15. package/dist/commands/cap-connections.js.map +1 -0
  16. package/dist/commands/capability.d.ts +89 -0
  17. package/dist/commands/capability.js +1594 -0
  18. package/dist/commands/capability.js.map +1 -0
  19. package/dist/commands/centrality.d.ts +20 -0
  20. package/dist/commands/centrality.js +95 -0
  21. package/dist/commands/centrality.js.map +1 -0
  22. package/dist/commands/connect.d.ts +2 -0
  23. package/dist/commands/connect.js +16 -35
  24. package/dist/commands/connect.js.map +1 -1
  25. package/dist/commands/context.js +6 -7
  26. package/dist/commands/context.js.map +1 -1
  27. package/dist/commands/data-extra.d.ts +1 -0
  28. package/dist/commands/data-extra.js +41 -14
  29. package/dist/commands/data-extra.js.map +1 -1
  30. package/dist/commands/data.d.ts +4 -4
  31. package/dist/commands/data.js +254 -187
  32. package/dist/commands/data.js.map +1 -1
  33. package/dist/commands/diagnose.d.ts +20 -0
  34. package/dist/commands/diagnose.js +186 -0
  35. package/dist/commands/diagnose.js.map +1 -0
  36. package/dist/commands/digest.d.ts +17 -0
  37. package/dist/commands/digest.js +122 -0
  38. package/dist/commands/digest.js.map +1 -0
  39. package/dist/commands/discover.d.ts +2 -0
  40. package/dist/commands/discover.js +25 -8
  41. package/dist/commands/discover.js.map +1 -1
  42. package/dist/commands/doc.d.ts +14 -0
  43. package/dist/commands/doc.js +61 -4
  44. package/dist/commands/doc.js.map +1 -1
  45. package/dist/commands/doctor.d.ts +21 -0
  46. package/dist/commands/doctor.js +189 -0
  47. package/dist/commands/doctor.js.map +1 -0
  48. package/dist/commands/events.js +5 -2
  49. package/dist/commands/events.js.map +1 -1
  50. package/dist/commands/explain.d.ts +1 -1
  51. package/dist/commands/explain.js +18 -15
  52. package/dist/commands/explain.js.map +1 -1
  53. package/dist/commands/facet.d.ts +29 -0
  54. package/dist/commands/facet.js +113 -0
  55. package/dist/commands/facet.js.map +1 -0
  56. package/dist/commands/graph.js +7 -4
  57. package/dist/commands/graph.js.map +1 -1
  58. package/dist/commands/import.d.ts +38 -0
  59. package/dist/commands/import.js +471 -0
  60. package/dist/commands/import.js.map +1 -0
  61. package/dist/commands/init.js +35 -16
  62. package/dist/commands/init.js.map +1 -1
  63. package/dist/commands/keys.js +3 -4
  64. package/dist/commands/keys.js.map +1 -1
  65. package/dist/commands/knowledge.d.ts +8 -0
  66. package/dist/commands/knowledge.js +308 -33
  67. package/dist/commands/knowledge.js.map +1 -1
  68. package/dist/commands/launch.d.ts +50 -0
  69. package/dist/commands/launch.js +790 -0
  70. package/dist/commands/launch.js.map +1 -0
  71. package/dist/commands/lens.d.ts +45 -0
  72. package/dist/commands/lens.js +386 -0
  73. package/dist/commands/lens.js.map +1 -0
  74. package/dist/commands/market-authoring.d.ts +45 -0
  75. package/dist/commands/market-authoring.js +225 -0
  76. package/dist/commands/market-authoring.js.map +1 -0
  77. package/dist/commands/market.d.ts +224 -0
  78. package/dist/commands/market.js +1643 -0
  79. package/dist/commands/market.js.map +1 -0
  80. package/dist/commands/mcp.d.ts +64 -0
  81. package/dist/commands/mcp.js +265 -0
  82. package/dist/commands/mcp.js.map +1 -0
  83. package/dist/commands/observe.js +14 -11
  84. package/dist/commands/observe.js.map +1 -1
  85. package/dist/commands/open.d.ts +21 -4
  86. package/dist/commands/open.js +45 -4
  87. package/dist/commands/open.js.map +1 -1
  88. package/dist/commands/pod.d.ts +100 -0
  89. package/dist/commands/pod.js +359 -0
  90. package/dist/commands/pod.js.map +1 -0
  91. package/dist/commands/pods.d.ts +15 -0
  92. package/dist/commands/pods.js +233 -17
  93. package/dist/commands/pods.js.map +1 -1
  94. package/dist/commands/proposals-actions.js +43 -3
  95. package/dist/commands/proposals-actions.js.map +1 -1
  96. package/dist/commands/purge.d.ts +23 -0
  97. package/dist/commands/purge.js +148 -0
  98. package/dist/commands/purge.js.map +1 -0
  99. package/dist/commands/raycast.d.ts +15 -0
  100. package/dist/commands/raycast.js +153 -0
  101. package/dist/commands/raycast.js.map +1 -0
  102. package/dist/commands/sessions.js +47 -22
  103. package/dist/commands/sessions.js.map +1 -1
  104. package/dist/commands/skill-manage.d.ts +21 -0
  105. package/dist/commands/skill-manage.js +195 -0
  106. package/dist/commands/skill-manage.js.map +1 -0
  107. package/dist/commands/skills-commands.js +2 -1
  108. package/dist/commands/skills-commands.js.map +1 -1
  109. package/dist/commands/skills.js +7 -4
  110. package/dist/commands/skills.js.map +1 -1
  111. package/dist/commands/status.d.ts +3 -1
  112. package/dist/commands/status.js +166 -14
  113. package/dist/commands/status.js.map +1 -1
  114. package/dist/commands/statusline.d.ts +24 -0
  115. package/dist/commands/statusline.js +450 -0
  116. package/dist/commands/statusline.js.map +1 -0
  117. package/dist/commands/subscribe.js +2 -2
  118. package/dist/commands/subscribe.js.map +1 -1
  119. package/dist/commands/template.d.ts +42 -0
  120. package/dist/commands/template.js +191 -0
  121. package/dist/commands/template.js.map +1 -0
  122. package/dist/commands/tools.d.ts +30 -0
  123. package/dist/commands/tools.js +315 -0
  124. package/dist/commands/tools.js.map +1 -0
  125. package/dist/commands/upload.d.ts +30 -0
  126. package/dist/commands/upload.js +155 -0
  127. package/dist/commands/upload.js.map +1 -0
  128. package/dist/commands/versions.d.ts +27 -0
  129. package/dist/commands/versions.js +277 -0
  130. package/dist/commands/versions.js.map +1 -0
  131. package/dist/commands/view.js +3 -2
  132. package/dist/commands/view.js.map +1 -1
  133. package/dist/commands/whoami.d.ts +21 -0
  134. package/dist/commands/whoami.js +129 -0
  135. package/dist/commands/whoami.js.map +1 -0
  136. package/dist/index.js +894 -60
  137. package/dist/index.js.map +1 -1
  138. package/dist/lib/approval-poll.d.ts +42 -0
  139. package/dist/lib/approval-poll.js +52 -0
  140. package/dist/lib/approval-poll.js.map +1 -0
  141. package/dist/lib/auth.d.ts +29 -6
  142. package/dist/lib/auth.js +105 -94
  143. package/dist/lib/auth.js.map +1 -1
  144. package/dist/lib/bundle-version.d.ts +11 -0
  145. package/dist/lib/bundle-version.js +33 -0
  146. package/dist/lib/bundle-version.js.map +1 -0
  147. package/dist/lib/capture-lane.d.ts +30 -12
  148. package/dist/lib/capture-lane.js +73 -14
  149. package/dist/lib/capture-lane.js.map +1 -1
  150. package/dist/lib/capture-structure.d.ts +123 -0
  151. package/dist/lib/capture-structure.js +57 -0
  152. package/dist/lib/capture-structure.js.map +1 -0
  153. package/dist/lib/cp-packages.d.ts +177 -0
  154. package/dist/lib/cp-packages.js +389 -0
  155. package/dist/lib/cp-packages.js.map +1 -0
  156. package/dist/lib/describe-lens.d.ts +46 -0
  157. package/dist/lib/describe-lens.js +33 -0
  158. package/dist/lib/describe-lens.js.map +1 -0
  159. package/dist/lib/hub-client.d.ts +91 -1
  160. package/dist/lib/hub-client.js +565 -22
  161. package/dist/lib/hub-client.js.map +1 -1
  162. package/dist/lib/id.d.ts +23 -0
  163. package/dist/lib/id.js +35 -0
  164. package/dist/lib/id.js.map +1 -0
  165. package/dist/lib/installed.d.ts +51 -0
  166. package/dist/lib/installed.js +70 -0
  167. package/dist/lib/installed.js.map +1 -0
  168. package/dist/lib/next-steps.d.ts +61 -0
  169. package/dist/lib/next-steps.js +146 -0
  170. package/dist/lib/next-steps.js.map +1 -0
  171. package/dist/lib/pod.d.ts +144 -22
  172. package/dist/lib/pod.js +302 -64
  173. package/dist/lib/pod.js.map +1 -1
  174. package/dist/lib/project-ref.d.ts +95 -0
  175. package/dist/lib/project-ref.js +144 -0
  176. package/dist/lib/project-ref.js.map +1 -0
  177. package/dist/lib/project.d.ts +35 -0
  178. package/dist/lib/project.js +39 -0
  179. package/dist/lib/project.js.map +1 -0
  180. package/dist/lib/session-lens.d.ts +33 -0
  181. package/dist/lib/session-lens.js +76 -0
  182. package/dist/lib/session-lens.js.map +1 -0
  183. package/dist/lib/skill-import.d.ts +40 -0
  184. package/dist/lib/skill-import.js +203 -0
  185. package/dist/lib/skill-import.js.map +1 -0
  186. package/dist/lib/skills-installer.d.ts +17 -6
  187. package/dist/lib/skills-installer.js +133 -19
  188. package/dist/lib/skills-installer.js.map +1 -1
  189. package/dist/lib/suite.d.ts +28 -0
  190. package/dist/lib/suite.js +29 -0
  191. package/dist/lib/suite.js.map +1 -0
  192. package/dist/lib/superwhisper-import.d.ts +40 -0
  193. package/dist/lib/superwhisper-import.js +389 -0
  194. package/dist/lib/superwhisper-import.js.map +1 -0
  195. package/dist/lib/targets.d.ts +49 -1
  196. package/dist/lib/targets.js +420 -288
  197. package/dist/lib/targets.js.map +1 -1
  198. package/dist/lib/template-file.d.ts +74 -0
  199. package/dist/lib/template-file.js +140 -0
  200. package/dist/lib/template-file.js.map +1 -0
  201. package/dist/lib/unwrapList.d.ts +1 -0
  202. package/dist/lib/unwrapList.js +20 -0
  203. package/dist/lib/unwrapList.js.map +1 -0
  204. package/dist/utils/logger.d.ts +2 -0
  205. package/dist/utils/logger.js +10 -2
  206. package/dist/utils/logger.js.map +1 -1
  207. package/node_modules/@synap/hub-rest-client/dist/index.cjs +414 -34
  208. package/node_modules/@synap/hub-rest-client/dist/index.d.cts +762 -22
  209. package/node_modules/@synap/hub-rest-client/dist/index.d.ts +762 -22
  210. package/node_modules/@synap/hub-rest-client/dist/index.js +414 -34
  211. package/node_modules/@synap/hub-rest-client/package.json +1 -1
  212. package/node_modules/@synap/hub-rest-client/src/client.ts +525 -37
  213. package/node_modules/@synap/hub-rest-client/src/index.ts +42 -0
  214. package/node_modules/@synap/hub-rest-client/src/setup.ts +57 -1
  215. package/node_modules/@synap/hub-rest-client/src/types.ts +697 -37
  216. package/package.json +11 -5
  217. package/skills/agent-os/SKILL.md +218 -0
  218. package/skills/manifest.json +5 -0
  219. package/skills/onboard/SKILL.md +193 -0
  220. package/skills/synap/SKILL.md +1284 -58
  221. package/skills/synap/_order.txt +37 -0
  222. package/skills/synap/_skill.yaml +24 -0
  223. package/skills/synap/authentication.md +10 -0
  224. package/skills/synap/automations.md +264 -0
  225. package/skills/synap/capabilities.md +107 -0
  226. package/skills/synap/capture.md +50 -142
  227. package/skills/synap/cli-operations.md +107 -0
  228. package/skills/synap/common-mistakes.md +13 -0
  229. package/skills/synap/content-os.md +83 -0
  230. package/skills/synap/creative-loop.md +43 -0
  231. package/skills/synap/crm.md +117 -0
  232. package/skills/synap/diagnostics.md +35 -0
  233. package/skills/synap/digesting-a-channel.md +63 -0
  234. package/skills/synap/document-embeds.md +123 -0
  235. package/skills/synap/escalation-ladder.md +71 -0
  236. package/skills/synap/focus-sessions.md +47 -0
  237. package/skills/synap/governance-rules.md +64 -0
  238. package/skills/synap/governance.md +6 -6
  239. package/skills/synap/graph-gardening.md +21 -0
  240. package/skills/synap/inline-patterns.md +38 -0
  241. package/skills/synap/lenses.md +38 -0
  242. package/skills/synap/linking-principle.md +39 -0
  243. package/skills/synap/linking.md +1 -0
  244. package/skills/synap/mental-model.md +45 -0
  245. package/skills/synap/more.md +7 -0
  246. package/skills/synap/multi-entity-capture.md +12 -0
  247. package/skills/synap/next-action.md +37 -0
  248. package/skills/synap/north-star.md +17 -0
  249. package/skills/synap/operating-mode-rules.md +45 -0
  250. package/skills/synap/operating-mode.md +9 -0
  251. package/skills/synap/quick-reference.md +67 -0
  252. package/skills/synap/reading.md +43 -0
  253. package/skills/synap/recap.md +21 -0
  254. package/skills/synap/reflexes.md +46 -0
  255. package/skills/synap/response-style.md +21 -0
  256. package/skills/synap/scope.md +13 -0
  257. package/skills/synap/showing.md +17 -0
  258. package/skills/synap/user-model.md +25 -0
  259. package/skills/synap/viewframe-cells.md +290 -0
  260. package/skills/synap/work-flow.md +113 -0
  261. package/skills/synap/worked-examples.md +74 -0
  262. package/skills/synap/workspace-design.md +45 -0
  263. package/skills/synap/workspace-edges.md +49 -0
  264. package/skills/synap/writes.md +213 -0
  265. package/skills/synap-app/SKILL.md +319 -0
  266. package/skills/synap-app/_order.txt +5 -0
  267. package/skills/synap-app/_skill.yaml +20 -0
  268. package/skills/synap-app/creating-the-base-app.md +64 -0
  269. package/skills/synap-app/governance.md +42 -0
  270. package/skills/synap-app/install-commands.md +55 -0
  271. package/skills/synap-app/overview.md +50 -0
  272. package/skills/synap-app/using-the-sdk.md +73 -0
  273. package/skills/synap-market/SKILL.md +335 -0
  274. package/skills/synap-market/_order.txt +5 -0
  275. package/skills/synap-market/_skill.yaml +24 -0
  276. package/skills/synap-market/author-and-publish.md +75 -0
  277. package/skills/synap-market/discover-and-fetch.md +59 -0
  278. package/skills/synap-market/governance-and-catalog.md +56 -0
  279. package/skills/synap-market/install.md +55 -0
  280. package/skills/synap-market/overview.md +51 -0
  281. package/skills/synap-schema/SKILL.md +97 -6
  282. package/skills/synap-schema/_order.txt +13 -0
  283. package/skills/synap-schema/_skill.yaml +22 -0
  284. package/skills/synap-schema/before-you-touch.md +14 -0
  285. package/skills/synap-schema/common-mistakes.md +9 -0
  286. package/skills/synap-schema/creating-profiles.md +17 -0
  287. package/skills/synap-schema/discover-profiles.md +24 -0
  288. package/skills/synap-schema/entity-scope.md +8 -0
  289. package/skills/synap-schema/extend-vs-create.md +31 -0
  290. package/skills/synap-schema/more.md +6 -0
  291. package/skills/synap-schema/overlay-properties.md +22 -0
  292. package/skills/synap-schema/profiles.md +3 -0
  293. package/skills/synap-schema/property-defs.md +29 -0
  294. package/skills/synap-schema/read-before-write.md +50 -0
  295. package/skills/synap-schema/relations.md +18 -0
  296. package/skills/synap-schema/worked-example.md +30 -0
  297. package/skills/synap-ui/SKILL.md +26 -2
  298. package/skills/synap-ui/_order.txt +13 -0
  299. package/skills/synap-ui/_skill.yaml +23 -0
  300. package/skills/synap-ui/ai-companion.md +27 -0
  301. package/skills/synap-ui/arranging-bento.md +8 -0
  302. package/skills/synap-ui/before-you-build.md +20 -0
  303. package/skills/synap-ui/bento-layouts.md +35 -0
  304. package/skills/synap-ui/common-mistakes.md +10 -0
  305. package/skills/synap-ui/creating-views.md +26 -0
  306. package/skills/synap-ui/four-builds.md +24 -0
  307. package/skills/synap-ui/more.md +7 -0
  308. package/skills/synap-ui/proposing-vs-extending.md +11 -0
  309. package/skills/synap-ui/view-list.md +24 -0
  310. package/skills/synap-ui/views.md +3 -0
  311. package/skills/synap-ui/worked-example.md +18 -0
  312. package/skills/synap-ui/workspaces.md +47 -0
  313. package/templates/automations/bookmark-enrichment.automation.json +44 -0
  314. package/templates/automations/mail-feed.automation.json +86 -0
  315. package/templates/automations/url-bookmark-capture.automation.json +70 -0
  316. package/templates/skills/README.md +21 -0
  317. package/templates/skills/authoring-automations/SKILL.md +95 -0
  318. package/templates/skills/authoring-automations/reference/node-matrix.md +49 -0
  319. package/templates/skills/authoring-capabilities/SKILL.md +93 -0
  320. package/templates/skills/authoring-capabilities/reference/template-anatomy.md +70 -0
  321. package/templates/skills/authoring-playbooks/SKILL.md +102 -0
  322. package/templates/skills/authoring-playbooks/reference/stages-contract.md +35 -0
  323. package/templates/skills/authoring-playbooks/reference/worked-example.md +64 -0
  324. package/templates/skills/bookmark-enrichment/SKILL.md +40 -0
  325. package/templates/skills/coordinating-agents/SKILL.md +32 -0
  326. package/templates/skills/coordinating-branches/SKILL.md +27 -0
  327. package/templates/skills/mapping-the-server/SKILL.md +54 -0
  328. package/templates/skills/reading-client-progress/SKILL.md +65 -0
  329. package/templates/skills/routing-to-channels/SKILL.md +54 -0
  330. package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
  331. package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
  332. package/templates/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
  333. package/templates/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
  334. package/templates/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
  335. package/templates/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
  336. package/templates/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
  337. package/templates/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
  338. package/templates/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
  339. package/templates/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
  340. package/templates/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
  341. package/templates/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
  342. package/templates/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
  343. package/templates/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
  344. package/templates/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
  345. package/templates/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
  346. package/templates/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
  347. package/templates/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
  348. package/templates/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
  349. package/templates/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
  350. package/templates/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
  351. package/templates/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
  352. package/templates/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
  353. package/templates/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
  354. package/templates/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
  355. package/templates/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
  356. package/templates/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
  357. package/templates/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
  358. package/dist/commands/connectors.d.ts +0 -31
  359. package/dist/commands/connectors.js +0 -276
  360. package/dist/commands/connectors.js.map +0 -1
  361. package/dist/commands/finish.d.ts +0 -25
  362. package/dist/commands/finish.js +0 -274
  363. package/dist/commands/finish.js.map +0 -1
  364. package/dist/commands/openclaw.d.ts +0 -40
  365. package/dist/commands/openclaw.js +0 -1148
  366. package/dist/commands/openclaw.js.map +0 -1
  367. package/dist/commands/security-audit.d.ts +0 -12
  368. package/dist/commands/security-audit.js +0 -100
  369. package/dist/commands/security-audit.js.map +0 -1
  370. package/dist/lib/hardening.d.ts +0 -18
  371. package/dist/lib/hardening.js +0 -214
  372. package/dist/lib/hardening.js.map +0 -1
@@ -0,0 +1,267 @@
1
+ # Corpus rejects: detailed profiles of past SCF rejections
2
+
3
+ The complement of `10-corpus-winners.md`. Use these by name when explaining to a client why a pattern in their dossier worries you.
4
+
5
+ ## SCF #40 rejected dossiers (selected)
6
+
7
+ ### Sorotrack, $150K + $50K + $50K, rejected three times (SCF #40, #41, #42)
8
+
9
+ - **Category:** Stellar tracker.
10
+ - **Profile:** solo dev only known by handle "Gemy" / "geemy8166".
11
+ - **Why rejected:** founders not identifiable for high-ask request (rejection pattern 1), maximum ask without team scope (pattern 2), retried unchanged dossiers.
12
+ - **Use as warning** when a dossier has a solo dev not fully doxxed.
13
+
14
+ ### AION_FI Protocol, $146.5K, Panel Review Failed
15
+
16
+ - **Category:** Credit cards on Stellar.
17
+ - **Profile:** anonymous team, no BIN sponsor named, no regulatory plan.
18
+ - **Why rejected:** maximum ask with no team and no licensing partner.
19
+ - **Use as warning** for regulated payments dossiers without named partners.
20
+
21
+ ### StellarRead, $150K, Panel Review Failed
22
+
23
+ - **Category:** Read-to-earn platform.
24
+ - **Why rejected:** rejection pattern 10 (earn-to-X category) plus pattern 2 (max ask without scope).
25
+ - **Use as warning** when a dossier uses earn-to-X vocabulary.
26
+
27
+ ### Cicero, $150K, Panel Review Failed
28
+
29
+ - **Category:** C++ Soroban project.
30
+ - **Why rejected:** no team disclosed at maximum ask.
31
+
32
+ ### Solar, $60K, Panel Review Failed
33
+
34
+ - **Category:** Africa unbanked banking.
35
+ - **Why rejected:** lost to TheXBank ($89.5K winner same round, pattern 7), plus brand collision with SatoshiPay Solar Wallet (pattern 4).
36
+ - **Use as warning** for Africa-banking dossiers and any project named "Solar".
37
+
38
+ ### MOJA, $110K, Panel Review Failed
39
+
40
+ - **Category:** Group savings for refugees.
41
+ - **Why rejected:** vague TAM (pattern 9).
42
+
43
+ ### Easner, $150K, Panel Review Failed
44
+
45
+ - **Category:** "Stripe for Stablecoins".
46
+ - **Why rejected:** generic positioning (pattern 3) plus no banking partner named (pattern 8) plus max ask (pattern 2).
47
+ - **Use as warning** for "Stripe for X" framing.
48
+
49
+ ### Riwe, $115K (then $96K, both rejected)
50
+
51
+ - **Category:** unspecified DeFi.
52
+ - **Why rejected:** insufficient differentiation, retried with budget reduction but core issues persisted.
53
+
54
+ ### Paenote, $150K, Panel Review Failed
55
+
56
+ - **Category:** Africa B2B payments.
57
+ - **Why rejected:** maximum ask with only $100K processed total volume.
58
+
59
+ ### OverSync, $100K, Panel Review Failed
60
+
61
+ - **Category:** Sync infrastructure.
62
+ - **Why rejected:** unspecified scope issues.
63
+
64
+ ### Stablpay, $129.1K, Panel Review Failed
65
+
66
+ - **Category:** Regulated stablecoin rail for India.
67
+ - **Why rejected:** no FIU details disclosed beyond registration mention (pattern 8).
68
+
69
+ ### Stableyard, $119.5K
70
+
71
+ - **Category:** Asia QR network stablecoin.
72
+ - **Why rejected:** brand collision (pattern 4) plus vague TAM (pattern 9).
73
+
74
+ ### Azawire, $80K
75
+
76
+ - **Category:** Web3 Banking for Africa.
77
+ - **Why rejected:** vague TAM.
78
+
79
+ ### Gameduk, $60K
80
+
81
+ - **Category:** Gamified EdTech.
82
+ - **Why rejected:** rejection pattern 10 (earn-to-X).
83
+
84
+ ### Stellar Nexus Experience, $60K
85
+
86
+ - **Category:** XP / badges learn-to-earn.
87
+ - **Why rejected:** rejection pattern 10.
88
+
89
+ ### EduAfrica Learning App, $89K
90
+
91
+ - **Category:** Learn-to-earn Africa.
92
+ - **Why rejected:** pattern 9 (vague TAM) + pattern 10 (earn).
93
+
94
+ ### PhishGuard, $65K
95
+
96
+ - **Category:** Anti-phishing tool.
97
+ - **Why rejected:** unspecified.
98
+
99
+ ### Offer-Hub, $90K
100
+
101
+ - **Category:** B2B platform.
102
+ - **Why rejected:** unspecified.
103
+
104
+ ### Stellar Playground v2, $90K
105
+
106
+ - **Category:** Soroban dev playground.
107
+ - **Why rejected:** duplication of SDF tooling (pattern 6).
108
+
109
+ ## SCF #41 rejected dossiers (selected)
110
+
111
+ ### Cushion, $118.4K, Information Collection
112
+
113
+ - **Why rejected:** dossier never compiled to panel.
114
+ - **Use as warning** for incomplete submissions.
115
+
116
+ ### Payala to Stellar Integration, $150K, Information Collection
117
+
118
+ - **Why rejected:** dossier incomplete.
119
+
120
+ ### Neon Wallet, $129K, Information Collection
121
+
122
+ - **Why rejected:** dossier incomplete plus brand collision (pattern 4).
123
+
124
+ ### C-Address Toolkit, $120K, rejected
125
+
126
+ - **Why rejected:** lost to Latch + KMP same RFP (pattern 7).
127
+
128
+ ### StellarScope, $90K, rejected
129
+
130
+ - **Why rejected:** lost to Orion + OctoPos same RFP (pattern 7).
131
+
132
+ ### Soroban-first Block Explorer, $75K, rejected
133
+
134
+ - **Why rejected:** lost to Rumble Fish and OBSRVR Prism same RFP (pattern 7), generic naming (pattern 3).
135
+
136
+ ### Reactor Trade, $115K, rejected
137
+
138
+ - **Why rejected:** same co-founder as Helix Labs same-round winner (pattern 7).
139
+
140
+ ### Kyros OS, $135K, rejected
141
+
142
+ - **Category:** Spanish tax compliance.
143
+ - **Why rejected:** no named AEAT/Hacienda partnership shown (pattern 8).
144
+
145
+ ### Goated App, $120K, rejected
146
+
147
+ - **Category:** Predictions/gambling.
148
+ - **Why rejected:** no licensing plan (pattern 8).
149
+
150
+ ### $NRG Token by BLOND:ISH, $150K, rejected
151
+
152
+ - **Category:** Solana fan token porting to Stellar.
153
+ - **Why rejected:** rejection pattern 10 (earn) + pattern 5 (bolt-on) + pattern 2 (max ask).
154
+ - **Use as warning** for fan token launches.
155
+
156
+ ### Astrix, $95K, rejected
157
+
158
+ - **Category:** Algorand fan platform porting.
159
+ - **Why rejected:** bolt-on (pattern 5).
160
+
161
+ ### WOWMAX, $109K, rejected
162
+
163
+ - **Category:** EVM DEX aggregator.
164
+ - **Why rejected:** bolt-on (pattern 5).
165
+
166
+ ### ViFi Labs, $150K, rejected
167
+
168
+ - **Category:** Multi-chain DeFi.
169
+ - **Why rejected:** already-funded multi-chain team at max ask.
170
+
171
+ ### Nebula Wallet, multiple rounds, rejected
172
+
173
+ - **Category:** Post-quantum cryptography wallet.
174
+ - **Why rejected:** duplicates SDF roadmap work (pattern 6).
175
+
176
+ ### Stellar Fintech OS, $140K, rejected
177
+
178
+ - **Category:** generic fintech infrastructure.
179
+ - **Why rejected:** generic naming (pattern 3) + brand collision (pattern 4, Romanian core-banking FintechOS).
180
+
181
+ ## SCF #42 rejected dossiers (selected)
182
+
183
+ ### reb.cash, $150K, rejected
184
+
185
+ - **Why rejected:** anonymous, no website, max ask.
186
+
187
+ ### Lend.xyz, $120K, rejected
188
+
189
+ - **Category:** RWA real estate.
190
+ - **Why rejected:** lost to Bando same round (pattern 7), no specific pilot.
191
+
192
+ ### Tessera Labs, $150K, rejected
193
+
194
+ - **Why rejected:** anonymous team (pattern 1) plus brand collision (pattern 4, a16z's Tessera) plus duplication of Protocol 25 X-Ray (pattern 6).
195
+
196
+ ### Remitance, $150K, rejected
197
+
198
+ - **Why rejected:** vague TAM, max ask.
199
+
200
+ ### StellarCredit, $55K, Panel Review Failed
201
+
202
+ - **Category:** Invoice factoring.
203
+ - **Why rejected:** regulated lending without licensing plan (pattern 8).
204
+
205
+ ### Resolva, $120K, Panel Review Failed
206
+
207
+ - **Category:** Africa crypto-to-fiat.
208
+ - **Why rejected:** no license disclosed (pattern 8) plus pan-Africa TAM (pattern 9).
209
+
210
+ ### Galeon, $88K, Panel Review Failed
211
+
212
+ - **Category:** Privacy/compliance tooling.
213
+ - **Why rejected:** overlaps with Protocol 25 X-Ray (pattern 6).
214
+
215
+ ### REAPP, $115K, rejected
216
+
217
+ - **Category:** x402 implementation.
218
+ - **Why rejected:** anonymous (pattern 1).
219
+
220
+ ### Nuvolari.ai, $84K, rejected
221
+
222
+ - **Category:** Sonic-native AI yield, port to Stellar.
223
+ - **Why rejected:** bolt-on (pattern 5).
224
+
225
+ ### Nomadz, $150K, rejected
226
+
227
+ - **Category:** Solana travel app.
228
+ - **Why rejected:** bolt-on (pattern 5) plus max ask.
229
+
230
+ ### PathPulse AI, $137K (SCF #41) and $128K (SCF #42), both rejected
231
+
232
+ - **Category:** Computer-vision data network.
233
+ - **Why rejected:** bolt-on (pattern 5) on both submissions.
234
+
235
+ ### All Access Fans, $150K, rejected
236
+
237
+ - **Category:** Nigerian Web2 OnlyFans-alt with Stellar bolt-on.
238
+ - **Why rejected:** bolt-on (pattern 5) plus max ask.
239
+
240
+ ### Pollar, $72K, rejected
241
+
242
+ - **Why rejected:** anonymous (pattern 1).
243
+
244
+ ### ASGCard, $120K, rejected
245
+
246
+ - **Category:** Virtual card issuance for AI agents.
247
+ - **Why rejected:** no BIN sponsor named (pattern 8).
248
+
249
+ ### Move-to-Stellar, $115K, rejected
250
+
251
+ - **Category:** Alternate VM runtime.
252
+ - **Why rejected:** contradicts SDF's deliberate Rust+WASM choice (pattern 6).
253
+
254
+ ### The Strategists, $150K, Information Collection
255
+
256
+ - **Why rejected:** dossier never compiled to panel.
257
+
258
+ ### SendbyKatika, $150K (SCF #40)
259
+
260
+ - **Why rejected:** never passed pre-screen completion.
261
+
262
+ ## How to use this catalog
263
+
264
+ When you advise a client, name 2 or 3 past rejects whose pattern matches what worries you in the current dossier. Specific past failures are more persuasive than generic warnings.
265
+
266
+ Example client framing:
267
+ - *"The Q2 description currently uses 'earn rewards by attending events' language. Three past dossiers were rejected for the same framing: StellarRead at $150K, Stellar Nexus Experience at $60K, and EduAfrica Learning at $89K. The fix is to reframe the customer as the protocol (B2B) rather than the user (B2C earning), which the same kind of dossier, The Signal, used to win $121K."*
@@ -0,0 +1,131 @@
1
+ # Client communication rules
2
+
3
+ This document is the most important rule set in the skill. The Arch Consulting's reviews are read by clients who do not work in our methodology. Internal vocabulary creates confusion and breaks trust. Use this document to translate every internal concept into client-friendly language.
4
+
5
+ ## The single most important rule
6
+
7
+ **Never use "kill signature" in any output the client sees.** Internal at The Arch Consulting we call certain rejection-prone patterns "kill signatures" because they reliably correlate with rejection. The client has zero context on this term. To them it sounds aggressive, clinical, and proprietary.
8
+
9
+ In all client-facing outputs (Excel reviews, written summaries, chat responses, emails), replace it with one of:
10
+
11
+ - *"common rejection pattern in past SCF rounds"*
12
+ - *"a recurring rejection factor we have observed in our database of past SCF dossiers"*
13
+ - *"a recurring red flag for SCF reviewers"*
14
+
15
+ Then explain the pattern in plain English and cite specific past dossiers by name.
16
+
17
+ ## Vocabulary translation table
18
+
19
+ This is the canonical list. When you draft any client-facing output, scan for left-column terms and replace them with right-column phrasing.
20
+
21
+ | Internal vocabulary (NEVER use to client) | Client-friendly phrasing |
22
+ |---|---|
23
+ | Kill signature, kill sig | Common rejection pattern, recurring red flag for SCF reviewers |
24
+ | Kill signature #N | Use the descriptive name of the pattern instead (for example: "the anonymous-founder pattern", "the maximum-ask-without-scope pattern", "the bolt-on pattern") |
25
+ | Corpus | Our database of 130+ rejected and 79+ awarded SCF dossiers (first mention); past SCF rounds (subsequent mentions) |
26
+ | Corpus comparable | Past dossier with a similar profile |
27
+ | Doxxing depth | Whether each founder is publicly identifiable |
28
+ | Bolt-on / bolt-on rejection | Submissions that look like a port from another chain without a Stellar-specific reason |
29
+ | Earn-to-X | Earn-via-low-effort-activity (specify the activity: "read-to-earn", "watch-to-earn", "play-to-earn") |
30
+ | TAM-grandiose | Vague total addressable market claims |
31
+ | Brand collision | Project name overlap with a major unrelated company |
32
+ | Sub-max | Below the $150K maximum |
33
+ | Heightened scrutiny | Maximum-budget submissions get extra scrutiny from reviewers |
34
+ | Pre-screen rejection | The SCF team rejects the dossier before panel review because mandatory fields are missing |
35
+ | Panel Review Failed | The SCF panel explicitly rejected the dossier |
36
+ | Information Collection status | The dossier never reached the panel because fields were missing or incomplete |
37
+ | Pattern N / N triggered | Use the descriptive name of the pattern (see "Naming patterns by description" below) |
38
+ | Anti-budget-misuse signal | A phrase that reassures reviewers the grant will not be used for marketing or non-development costs |
39
+ | Atomic Splits | Soroban payout logic for automatically routing transaction value across multiple parties |
40
+ | Q6 Integration Description | Integration Description field (Q6) |
41
+ | Track 14 framework / 14-signal framework | The 14 evaluation criteria we score every dossier against |
42
+ | Catalogued / catalogued | Documented |
43
+ | Anchor on | Calibrate against (a named past winner) |
44
+
45
+ ## Naming patterns by description
46
+
47
+ Instead of "Pattern 1", "Pattern 2", etc., use these descriptive names that any client immediately understands:
48
+
49
+ - Pattern 1 → "the unidentifiable-founder pattern" or "founders the panel cannot verify"
50
+ - Pattern 2 → "the maximum-budget-without-scope pattern"
51
+ - Pattern 3 → "the generic-name pattern"
52
+ - Pattern 4 → "the brand-collision pattern"
53
+ - Pattern 5 → "the multi-chain-bolt-on pattern" or "ports from another chain without a Stellar-specific reason"
54
+ - Pattern 6 → "the SDF-roadmap-overlap pattern" or "work that duplicates what the Stellar Foundation is shipping"
55
+ - Pattern 7 → "the already-funded-competitor pattern"
56
+ - Pattern 8 → "the regulated-product-without-regulatory-plan pattern"
57
+ - Pattern 9 → "the vague-TAM pattern"
58
+ - Pattern 10 → "the earn-via-low-effort-activity pattern" or "the consumer-token-rewards pattern"
59
+ - Pattern 11 → "the incomplete-dossier pattern"
60
+ - Pattern 12 → "the cluster-of-issues rejection"
61
+
62
+ ## The three-part explanation structure
63
+
64
+ Every time you flag a problem to a client, structure your explanation in three parts:
65
+
66
+ 1. **What we see in the dossier.** Specific. Quote the cell or field.
67
+
68
+ 2. **Why this is a recurring rejection factor.** One sentence explaining what SCF reviewers actually care about and why.
69
+
70
+ 3. **Specific past dossiers that were rejected for this exact reason, with budget and round.**
71
+
72
+ Then offer the fix.
73
+
74
+ ### Example
75
+
76
+ Bad framing (internal jargon):
77
+ > *"Q10 triggers kill signature #1. Risk 30 percent."*
78
+
79
+ Good framing (client-friendly):
80
+ > *"Q10 has a recurring rejection factor we have observed in past SCF rounds: only two of your three co-founders have a verifiable LinkedIn URL. SCF panels treat this as an accountability red flag because they need to know who to follow up with if the project goes off the rails. Three past dossiers were rejected for this exact reason: Sorotrack ($150K in SCF #40, solo dev only known by handle "Gemy"), AION_FI Protocol ($146.5K in SCF #40 PRF, no team disclosed for a credit card project), and Tessera Labs ($150K in SCF #42, anonymous team for a regulated category). The fix takes 30 minutes: add a LinkedIn URL for the third co-founder before submission."*
81
+
82
+ The good version takes more words. That is exactly the point. The client needs to understand the diagnosis, the mechanism, the evidence and the fix.
83
+
84
+ ## Tone
85
+
86
+ You write to a peer founder, not to a customer. Your tone is:
87
+
88
+ - **Specific.** "Q4 traction" not "the traction section".
89
+ - **Direct.** "This worries us" not "you may want to consider".
90
+ - **Confident.** When you recommend a $121K budget, you explain why; you do not hedge.
91
+ - **Honest.** When the dossier is weak, you say so; you do not flatter.
92
+ - **Anchored in evidence.** Every claim references a named past dossier or a specific signal.
93
+ - **Respectful of the client's time.** You write tight sentences. No filler.
94
+ - **Warm but not soft.** You believe the client can win this grant; you act like it.
95
+
96
+ Avoid:
97
+
98
+ - Hype words ("game-changing", "revolutionary", "leverage synergies").
99
+ - Filler ("essentially", "basically", "at the end of the day").
100
+ - Empty validation ("great Abstract!", "amazing team!"). Validate with specifics, not adjectives.
101
+ - Vague hedging ("might want to consider", "could be a good idea").
102
+ - Em-dashes anywhere in client-facing outputs. They read as AI-generated.
103
+
104
+ ## French vs English
105
+
106
+ Some clients are French (most of The Arch Consulting's pipeline). Default tone:
107
+
108
+ - **French commentary (analysis sections):** the explanatory "Review" or "Status" columns can be in French if the client is French-speaking.
109
+ - **English rewrites:** the actual rewrite text (the content the client will paste into the SCF form) is always English, regardless of client language. SCF reviewers read English.
110
+
111
+ When in doubt, default to all-English. Confirm with the client at the start of an engagement.
112
+
113
+ ## Cross-checking your output
114
+
115
+ Before delivering any review, scan for these red flags:
116
+
117
+ 1. Does the output contain "kill signature" anywhere? If yes, replace.
118
+ 2. Does the output contain em-dashes? If yes, replace with commas, colons, parentheses, or single hyphens.
119
+ 3. Is every claim anchored on at least one named past dossier? If a claim is generic, add a name.
120
+ 4. Does the budget recommendation cite a named past winner with comparable profile? If not, add one.
121
+ 5. Does each flagged problem come with a paste-ready rewrite? If not, write one.
122
+
123
+ A review that passes all five checks is ready to deliver.
124
+
125
+ ## What to never do
126
+
127
+ - Never tell the client "your dossier will be rejected" or "you will win this grant". You estimate probability; you do not predict outcomes. Be honest about the range.
128
+ - Never claim certainty about SCF reviewer behavior beyond what the corpus supports. If you have not seen a pattern in past rounds, say "we cannot speak to this from our data" instead of inventing.
129
+ - Never use opinion words like "amazing", "terrible", "garbage" about a client's dossier. Use evidence-based assessments.
130
+ - Never volunteer information about the methodology that the client did not ask for. Keep the focus on the review of their dossier.
131
+ - Never reveal another client's identity, budget, or strategy in another client's review. The corpus is anonymized in our communications; only published winners and rejects are named.
@@ -0,0 +1,199 @@
1
+ # Excel deliverable specification
2
+
3
+ Every review produces a single Excel file with four sheets. This document is the canonical spec.
4
+
5
+ ## File naming
6
+
7
+ `{ProjectName}_{Phase}_Review_v{N}.xlsx`
8
+
9
+ Examples:
10
+ - `Antevorta_Abstract_Review_v2.xlsx`
11
+ - `SolarBraves_Build_Review_v1.xlsx`
12
+ - `Tickie_Abstract_Review_v3.xlsx`
13
+
14
+ Always increment the version when you produce a revised review.
15
+
16
+ ## Sheet 1: Field-by-Field Review
17
+
18
+ The main sheet. Where the client sees, for each field of their Abstract or Build, what is good and what needs to change.
19
+
20
+ ### Columns
21
+
22
+ 1. **Field** (column A), the Q-number plus field name. Examples: `Q2 Description`, `Q10 Team`, `Q15 Budget Total`.
23
+
24
+ 2. **Status** (column B), short status code: `STRONG`, `SOLID`, `UNDERSELLING`, `WEAK`, `BLOCKER`.
25
+
26
+ 3. **Review** (column C), French or English commentary explaining what we see and why. Use the three-part structure from `12-client-communication.md`. Reference past dossiers by name. Do NOT use "kill signature".
27
+
28
+ 4. **Rewrite / Action** (column D), paste-ready English text the client can copy directly into the SCF form. For non-rewrite actions (a thumbnail upload, a Discord username fix), describe the action specifically.
29
+
30
+ ### Formatting
31
+
32
+ - Column widths: A=22, B=20, C=70, D=80.
33
+ - Header row: bold, white text on Stellar dark blue (`#0E1116`).
34
+ - Status cells: color-coded background (STRONG=green, SOLID=light green, UNDERSELLING=yellow, WEAK=orange, BLOCKER=red).
35
+ - Text wrap: wrap on columns C and D.
36
+ - Row height: auto-fit (or 60-80 px for long rewrites).
37
+ - Borders: thin gray on all cells.
38
+
39
+ ### Banner row (above the field rows)
40
+
41
+ Row 1 is a banner spanning columns A-D:
42
+ - Project name in big bold.
43
+ - One-line headline verdict, including: estimated probability of acceptance now, estimated probability after fixes, recommended budget anchor.
44
+
45
+ Example banner text:
46
+ > *"Antevorta Gold Abstract Review v2: estimated 35-45 percent probability of acceptance as currently drafted, lifting to 65-75 percent after the seven fixes below. Recommended budget anchor: $100K to $115K Integration Track, between Bando ($75K winner SCF #42) and Rebond (target $132K SCF #44)."*
47
+
48
+ ## Sheet 2: Pre-submission Checklist
49
+
50
+ A prioritized action list. The client uses this as their pre-submit checklist.
51
+
52
+ ### Columns
53
+
54
+ 1. **Priority** (column A), `BLOCKER`, `CRITICAL`, `IMPORTANT`, `STRATEGIC`.
55
+
56
+ 2. **Item** (column B), short action description.
57
+
58
+ 3. **Field** (column C), which SCF field this action targets.
59
+
60
+ 4. **Effort** (column D), `15 min`, `1h`, `1 day`, `3 days`, `1 week`.
61
+
62
+ 5. **Why it matters** (column E), one sentence explaining the impact on acceptance probability.
63
+
64
+ 6. **Status** (column F), empty for the client to tick off (`Done`, `In progress`, `Skipped`).
65
+
66
+ ### Sorting
67
+
68
+ BLOCKER items first, then CRITICAL, then IMPORTANT, then STRATEGIC. Within each tier, the highest-impact-to-effort ratio first.
69
+
70
+ ## Sheet 3: Corpus Comparables
71
+
72
+ Side-by-side comparison of the client's dossier with 10 to 15 past submissions. Helps the client see where they sit.
73
+
74
+ ### Columns
75
+
76
+ 1. **Project** (column A), past submission name.
77
+ 2. **Round** (column B), SCF #40, #41, #42, #44.
78
+ 3. **Budget** (column C), amount requested.
79
+ 4. **Verdict** (column D), `Won`, `Rejected`, `Panel Review Failed`, `Information Collection`.
80
+ 5. **Category** (column E), what category the past submission was in.
81
+ 6. **Profile snapshot** (column F), one sentence on team, scope, traction.
82
+ 7. **Lesson for current dossier** (column G), one sentence on what this past dossier tells us about the current one.
83
+
84
+ ### Selection rule
85
+
86
+ Pick comparables that match the current dossier on at least one of: category, budget range, team size, regulatory profile. Include both winners and rejects so the contrast is informative.
87
+
88
+ The first row should ALWAYS be the current dossier itself (with "TBD" in Verdict column), then comparables sorted with closest comparable first.
89
+
90
+ ## Sheet 4: Integration List Audit
91
+
92
+ Audit of the dossier's usage of the official SCF Integration List.
93
+
94
+ ### Columns
95
+
96
+ 1. **Category** (column A), `On/Off-ramping`, `DeFi`, `Cross-chain`, `Payments`, `Wallets`, `Other`.
97
+
98
+ 2. **Item** (column B), the Integration List item name.
99
+
100
+ 3. **Status in dossier** (column C), `MENTIONED`, `TO ADD`, `OPTIONAL`, `NOT RELEVANT`.
101
+
102
+ 4. **Recommendation** (column D), specific guidance on whether and how to add.
103
+
104
+ 5. **Integration effort** (column E), `< 1 day`, `1-5 days`, `1-2 weeks`, `1+ month`.
105
+
106
+ ### Rule
107
+
108
+ For each item on the Integration List (the table in `07-integration-list.md`), decide its status for the current dossier:
109
+ - `MENTIONED`: the dossier already cites it in Q6 Integration Description.
110
+ - `TO ADD`: the dossier would clearly benefit from adding it. Explain why in Recommendation column.
111
+ - `OPTIONAL`: the dossier could add it for additional credit. Explain when in Recommendation column.
112
+ - `NOT RELEVANT`: the item does not fit the dossier's use case.
113
+
114
+ ## Generation: openpyxl boilerplate
115
+
116
+ The skill's `templates/` folder contains build scripts (`abstract-review-builder.py` and `build-review-builder.py`) that scaffold the four sheets. Use these as the starting point for every review.
117
+
118
+ Key openpyxl patterns:
119
+
120
+ ```python
121
+ from openpyxl import Workbook
122
+ from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
123
+
124
+ wb = Workbook()
125
+ ws1 = wb.active
126
+ ws1.title = "Abstract Review"
127
+
128
+ # Banner row
129
+ ws1.merge_cells('A1:D1')
130
+ ws1['A1'] = banner_text
131
+ ws1['A1'].font = Font(bold=True, color="FFFFFF", size=14)
132
+ ws1['A1'].fill = PatternFill(start_color="0E1116", fill_type="solid")
133
+ ws1.row_dimensions[1].height = 80
134
+
135
+ # Headers
136
+ headers = ["Field", "Status", "Review", "Rewrite / Action"]
137
+ for col, h in enumerate(headers, start=1):
138
+ cell = ws1.cell(row=2, column=col, value=h)
139
+ cell.font = Font(bold=True, color="FFFFFF")
140
+ cell.fill = PatternFill(start_color="0E1116", fill_type="solid")
141
+
142
+ # Column widths
143
+ ws1.column_dimensions['A'].width = 22
144
+ ws1.column_dimensions['B'].width = 20
145
+ ws1.column_dimensions['C'].width = 70
146
+ ws1.column_dimensions['D'].width = 80
147
+
148
+ # Status fills
149
+ STATUS_FILLS = {
150
+ "STRONG": PatternFill(start_color="C6EFCE", fill_type="solid"),
151
+ "SOLID": PatternFill(start_color="E2F0D9", fill_type="solid"),
152
+ "UNDERSELLING": PatternFill(start_color="FFEB9C", fill_type="solid"),
153
+ "WEAK": PatternFill(start_color="FCD5B5", fill_type="solid"),
154
+ "BLOCKER": PatternFill(start_color="FFC7CE", fill_type="solid"),
155
+ }
156
+
157
+ # Data rows: text wrap, top alignment
158
+ for row in range(3, n_rows+3):
159
+ for col in range(1, 5):
160
+ cell = ws1.cell(row=row, column=col)
161
+ cell.alignment = Alignment(wrap_text=True, vertical='top')
162
+ ```
163
+
164
+ ## QA before delivery
165
+
166
+ Before presenting the file, run these checks:
167
+
168
+ 1. **Open the file in openpyxl and scan for em-dashes.** No em-dash should remain in any cell.
169
+
170
+ ```python
171
+ from openpyxl import load_workbook
172
+ wb = load_workbook(path)
173
+ em = 0
174
+ for ws in wb.worksheets:
175
+ for row in ws.iter_rows():
176
+ for cell in row:
177
+ if cell.value and isinstance(cell.value, str) and ", " in cell.value:
178
+ em += 1
179
+ print(f"em-dash cells: {em}")
180
+ ```
181
+
182
+ Expect 0.
183
+
184
+ 2. **Check the banner row contains specific named anchors.** If the banner says "based on past winners", that is too generic. It should say "anchored on The Signal ($121K SCF #42)" or similar.
185
+
186
+ 3. **Check the rewrite cells (column D) are paste-ready English text.** Not in French. Not commentary. Actual text the client copies.
187
+
188
+ 4. **Check the corpus comparables include the current dossier as row 1.** Sometimes the row gets cut. Verify.
189
+
190
+ 5. **Confirm all four sheets exist** with the right titles.
191
+
192
+ ```python
193
+ print(wb.sheetnames)
194
+ # Expect: ['Abstract Review' or 'Build Review', 'Checklist Pre-Submit', 'Comparables Corpus', 'Audit Integration List']
195
+ ```
196
+
197
+ ## Saving and presenting
198
+
199
+ Save to `outputs/`. Use `mcp__cowork__present_files` to surface the file to the user. Follow with a chat summary that includes the probability estimate, the top 3 to 5 fixes, and the `computer://` link to the file.