@alisio/plugin-thesis 0.1.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 (547) hide show
  1. package/.agents/agents/thesis-architect.md +38 -0
  2. package/.agents/agents/thesis-coordinator.md +39 -0
  3. package/.agents/agents/thesis-editor.md +35 -0
  4. package/.agents/agents/thesis-evidence-auditor.md +37 -0
  5. package/.agents/agents/thesis-librarian.md +38 -0
  6. package/.agents/agents/thesis-methodologist.md +39 -0
  7. package/.agents/agents/thesis-reviewer.md +36 -0
  8. package/.agents/agents/thesis-writer.md +38 -0
  9. package/.agents/skills/thesis-build/SKILL.md +48 -0
  10. package/.agents/skills/thesis-citations/SKILL.md +49 -0
  11. package/.agents/skills/thesis-csl-authoring/SKILL.md +48 -0
  12. package/.agents/skills/thesis-editing/SKILL.md +49 -0
  13. package/.agents/skills/thesis-evidence/SKILL.md +48 -0
  14. package/.agents/skills/thesis-figures/SKILL.md +50 -0
  15. package/.agents/skills/thesis-institution-norms/SKILL.md +50 -0
  16. package/.agents/skills/thesis-intake/SKILL.md +48 -0
  17. package/.agents/skills/thesis-math/SKILL.md +48 -0
  18. package/.agents/skills/thesis-methodology/SKILL.md +49 -0
  19. package/.agents/skills/thesis-outline/SKILL.md +48 -0
  20. package/.agents/skills/thesis-policy/SKILL.md +48 -0
  21. package/.agents/skills/thesis-review/SKILL.md +49 -0
  22. package/.agents/skills/thesis-search/SKILL.md +47 -0
  23. package/.agents/skills/thesis-writing/SKILL.md +52 -0
  24. package/LICENSE +21 -0
  25. package/README.es.md +242 -0
  26. package/README.md +235 -0
  27. package/THIRD_PARTY_NOTICES.md +94 -0
  28. package/assets/architecture.svg +1 -0
  29. package/assets/evidence-pipeline.svg +1 -0
  30. package/assets/lifecycle.svg +1 -0
  31. package/assets/policy-resolution.svg +1 -0
  32. package/cover.webp +0 -0
  33. package/dist/authoring.d.ts +30 -0
  34. package/dist/authoring.d.ts.map +1 -0
  35. package/dist/authoring.js +681 -0
  36. package/dist/authoring.js.map +1 -0
  37. package/dist/brief.d.ts +40 -0
  38. package/dist/brief.d.ts.map +1 -0
  39. package/dist/brief.js +566 -0
  40. package/dist/brief.js.map +1 -0
  41. package/dist/cache.d.ts +8 -0
  42. package/dist/cache.d.ts.map +1 -0
  43. package/dist/cache.js +20 -0
  44. package/dist/cache.js.map +1 -0
  45. package/dist/checks/brief.d.ts +5 -0
  46. package/dist/checks/brief.d.ts.map +1 -0
  47. package/dist/checks/brief.js +38 -0
  48. package/dist/checks/brief.js.map +1 -0
  49. package/dist/checks/citations.d.ts +14 -0
  50. package/dist/checks/citations.d.ts.map +1 -0
  51. package/dist/checks/citations.js +87 -0
  52. package/dist/checks/citations.js.map +1 -0
  53. package/dist/checks/claims.d.ts +16 -0
  54. package/dist/checks/claims.d.ts.map +1 -0
  55. package/dist/checks/claims.js +147 -0
  56. package/dist/checks/claims.js.map +1 -0
  57. package/dist/checks/closing.d.ts +20 -0
  58. package/dist/checks/closing.d.ts.map +1 -0
  59. package/dist/checks/closing.js +168 -0
  60. package/dist/checks/closing.js.map +1 -0
  61. package/dist/checks/design.d.ts +5 -0
  62. package/dist/checks/design.d.ts.map +1 -0
  63. package/dist/checks/design.js +107 -0
  64. package/dist/checks/design.js.map +1 -0
  65. package/dist/checks/document.d.ts +17 -0
  66. package/dist/checks/document.d.ts.map +1 -0
  67. package/dist/checks/document.js +213 -0
  68. package/dist/checks/document.js.map +1 -0
  69. package/dist/checks/evidence.d.ts +7 -0
  70. package/dist/checks/evidence.d.ts.map +1 -0
  71. package/dist/checks/evidence.js +133 -0
  72. package/dist/checks/evidence.js.map +1 -0
  73. package/dist/checks/hygiene.d.ts +5 -0
  74. package/dist/checks/hygiene.d.ts.map +1 -0
  75. package/dist/checks/hygiene.js +37 -0
  76. package/dist/checks/hygiene.js.map +1 -0
  77. package/dist/checks/index.d.ts +21 -0
  78. package/dist/checks/index.d.ts.map +1 -0
  79. package/dist/checks/index.js +98 -0
  80. package/dist/checks/index.js.map +1 -0
  81. package/dist/checks/language.d.ts +14 -0
  82. package/dist/checks/language.d.ts.map +1 -0
  83. package/dist/checks/language.js +73 -0
  84. package/dist/checks/language.js.map +1 -0
  85. package/dist/checks/outline.d.ts +25 -0
  86. package/dist/checks/outline.d.ts.map +1 -0
  87. package/dist/checks/outline.js +214 -0
  88. package/dist/checks/outline.js.map +1 -0
  89. package/dist/checks/policy.d.ts +5 -0
  90. package/dist/checks/policy.d.ts.map +1 -0
  91. package/dist/checks/policy.js +129 -0
  92. package/dist/checks/policy.js.map +1 -0
  93. package/dist/checks/project.d.ts +65 -0
  94. package/dist/checks/project.d.ts.map +1 -0
  95. package/dist/checks/project.js +203 -0
  96. package/dist/checks/project.js.map +1 -0
  97. package/dist/checks/styles.d.ts +12 -0
  98. package/dist/checks/styles.d.ts.map +1 -0
  99. package/dist/checks/styles.js +67 -0
  100. package/dist/checks/styles.js.map +1 -0
  101. package/dist/checks/writing.d.ts +6 -0
  102. package/dist/checks/writing.d.ts.map +1 -0
  103. package/dist/checks/writing.js +115 -0
  104. package/dist/checks/writing.js.map +1 -0
  105. package/dist/chrome/detect.d.ts +19 -0
  106. package/dist/chrome/detect.d.ts.map +1 -0
  107. package/dist/chrome/detect.js +116 -0
  108. package/dist/chrome/detect.js.map +1 -0
  109. package/dist/claims.d.ts +19 -0
  110. package/dist/claims.d.ts.map +1 -0
  111. package/dist/claims.js +99 -0
  112. package/dist/claims.js.map +1 -0
  113. package/dist/cli.d.ts +11 -0
  114. package/dist/cli.d.ts.map +1 -0
  115. package/dist/cli.js +262 -0
  116. package/dist/cli.js.map +1 -0
  117. package/dist/context.d.ts +55 -0
  118. package/dist/context.d.ts.map +1 -0
  119. package/dist/context.js +62 -0
  120. package/dist/context.js.map +1 -0
  121. package/dist/coordinator.d.ts +139 -0
  122. package/dist/coordinator.d.ts.map +1 -0
  123. package/dist/coordinator.js +710 -0
  124. package/dist/coordinator.js.map +1 -0
  125. package/dist/delegate.d.ts +34 -0
  126. package/dist/delegate.d.ts.map +1 -0
  127. package/dist/delegate.js +105 -0
  128. package/dist/delegate.js.map +1 -0
  129. package/dist/diffguard.d.ts +24 -0
  130. package/dist/diffguard.d.ts.map +1 -0
  131. package/dist/diffguard.js +92 -0
  132. package/dist/diffguard.js.map +1 -0
  133. package/dist/doctor.d.ts +34 -0
  134. package/dist/doctor.d.ts.map +1 -0
  135. package/dist/doctor.js +155 -0
  136. package/dist/doctor.js.map +1 -0
  137. package/dist/draft.d.ts +64 -0
  138. package/dist/draft.d.ts.map +1 -0
  139. package/dist/draft.js +801 -0
  140. package/dist/draft.js.map +1 -0
  141. package/dist/figure.d.ts +13 -0
  142. package/dist/figure.d.ts.map +1 -0
  143. package/dist/figure.js +143 -0
  144. package/dist/figure.js.map +1 -0
  145. package/dist/finalize.d.ts +29 -0
  146. package/dist/finalize.d.ts.map +1 -0
  147. package/dist/finalize.js +230 -0
  148. package/dist/finalize.js.map +1 -0
  149. package/dist/index.d.ts +33 -0
  150. package/dist/index.d.ts.map +1 -0
  151. package/dist/index.js +206 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/intake.d.ts +57 -0
  154. package/dist/intake.d.ts.map +1 -0
  155. package/dist/intake.js +772 -0
  156. package/dist/intake.js.map +1 -0
  157. package/dist/labels.d.ts +50 -0
  158. package/dist/labels.d.ts.map +1 -0
  159. package/dist/labels.js +98 -0
  160. package/dist/labels.js.map +1 -0
  161. package/dist/outline.d.ts +45 -0
  162. package/dist/outline.d.ts.map +1 -0
  163. package/dist/outline.js +148 -0
  164. package/dist/outline.js.map +1 -0
  165. package/dist/pack-commands.d.ts +18 -0
  166. package/dist/pack-commands.d.ts.map +1 -0
  167. package/dist/pack-commands.js +397 -0
  168. package/dist/pack-commands.js.map +1 -0
  169. package/dist/package-paths.d.ts +8 -0
  170. package/dist/package-paths.d.ts.map +1 -0
  171. package/dist/package-paths.js +13 -0
  172. package/dist/package-paths.js.map +1 -0
  173. package/dist/policy/context.d.ts +19 -0
  174. package/dist/policy/context.d.ts.map +1 -0
  175. package/dist/policy/context.js +62 -0
  176. package/dist/policy/context.js.map +1 -0
  177. package/dist/policy/ethics.d.ts +59 -0
  178. package/dist/policy/ethics.d.ts.map +1 -0
  179. package/dist/policy/ethics.js +106 -0
  180. package/dist/policy/ethics.js.map +1 -0
  181. package/dist/policy/kinds.d.ts +9 -0
  182. package/dist/policy/kinds.d.ts.map +1 -0
  183. package/dist/policy/kinds.js +68 -0
  184. package/dist/policy/kinds.js.map +1 -0
  185. package/dist/policy/packs.d.ts +53 -0
  186. package/dist/policy/packs.d.ts.map +1 -0
  187. package/dist/policy/packs.js +336 -0
  188. package/dist/policy/packs.js.map +1 -0
  189. package/dist/policy/resolver.d.ts +87 -0
  190. package/dist/policy/resolver.d.ts.map +1 -0
  191. package/dist/policy/resolver.js +337 -0
  192. package/dist/policy/resolver.js.map +1 -0
  193. package/dist/policy/rules.d.ts +65 -0
  194. package/dist/policy/rules.d.ts.map +1 -0
  195. package/dist/policy/rules.js +194 -0
  196. package/dist/policy/rules.js.map +1 -0
  197. package/dist/protocol.d.ts +46 -0
  198. package/dist/protocol.d.ts.map +1 -0
  199. package/dist/protocol.js +86 -0
  200. package/dist/protocol.js.map +1 -0
  201. package/dist/render/adapters/chrome-pdf/cdp.d.ts +36 -0
  202. package/dist/render/adapters/chrome-pdf/cdp.d.ts.map +1 -0
  203. package/dist/render/adapters/chrome-pdf/cdp.js +291 -0
  204. package/dist/render/adapters/chrome-pdf/cdp.js.map +1 -0
  205. package/dist/render/adapters/chrome-pdf/index.d.ts +10 -0
  206. package/dist/render/adapters/chrome-pdf/index.d.ts.map +1 -0
  207. package/dist/render/adapters/chrome-pdf/index.js +139 -0
  208. package/dist/render/adapters/chrome-pdf/index.js.map +1 -0
  209. package/dist/render/adapters/chrome-pdf/network.d.ts +7 -0
  210. package/dist/render/adapters/chrome-pdf/network.d.ts.map +1 -0
  211. package/dist/render/adapters/chrome-pdf/network.js +33 -0
  212. package/dist/render/adapters/chrome-pdf/network.js.map +1 -0
  213. package/dist/render/adapters/html-preview/index.d.ts +8 -0
  214. package/dist/render/adapters/html-preview/index.d.ts.map +1 -0
  215. package/dist/render/adapters/html-preview/index.js +62 -0
  216. package/dist/render/adapters/html-preview/index.js.map +1 -0
  217. package/dist/render/adapters/test-json/index.d.ts +8 -0
  218. package/dist/render/adapters/test-json/index.d.ts.map +1 -0
  219. package/dist/render/adapters/test-json/index.js +62 -0
  220. package/dist/render/adapters/test-json/index.js.map +1 -0
  221. package/dist/render/adapters/typst-pdf/emitter.d.ts +21 -0
  222. package/dist/render/adapters/typst-pdf/emitter.d.ts.map +1 -0
  223. package/dist/render/adapters/typst-pdf/emitter.js +259 -0
  224. package/dist/render/adapters/typst-pdf/emitter.js.map +1 -0
  225. package/dist/render/adapters/typst-pdf/escape.d.ts +14 -0
  226. package/dist/render/adapters/typst-pdf/escape.d.ts.map +1 -0
  227. package/dist/render/adapters/typst-pdf/escape.js +56 -0
  228. package/dist/render/adapters/typst-pdf/escape.js.map +1 -0
  229. package/dist/render/adapters/typst-pdf/index.d.ts +9 -0
  230. package/dist/render/adapters/typst-pdf/index.d.ts.map +1 -0
  231. package/dist/render/adapters/typst-pdf/index.js +154 -0
  232. package/dist/render/adapters/typst-pdf/index.js.map +1 -0
  233. package/dist/render/adapters/typst-pdf/profile.d.ts +3 -0
  234. package/dist/render/adapters/typst-pdf/profile.d.ts.map +1 -0
  235. package/dist/render/adapters/typst-pdf/profile.js +55 -0
  236. package/dist/render/adapters/typst-pdf/profile.js.map +1 -0
  237. package/dist/render/adapters/typst-pdf/runner.d.ts +52 -0
  238. package/dist/render/adapters/typst-pdf/runner.d.ts.map +1 -0
  239. package/dist/render/adapters/typst-pdf/runner.js +209 -0
  240. package/dist/render/adapters/typst-pdf/runner.js.map +1 -0
  241. package/dist/render/adapters/typst-pdf/setup.d.ts +30 -0
  242. package/dist/render/adapters/typst-pdf/setup.d.ts.map +1 -0
  243. package/dist/render/adapters/typst-pdf/setup.js +183 -0
  244. package/dist/render/adapters/typst-pdf/setup.js.map +1 -0
  245. package/dist/render/adapters/typst-pdf/version.d.ts +8 -0
  246. package/dist/render/adapters/typst-pdf/version.d.ts.map +1 -0
  247. package/dist/render/adapters/typst-pdf/version.js +14 -0
  248. package/dist/render/adapters/typst-pdf/version.js.map +1 -0
  249. package/dist/render/assemble.d.ts +28 -0
  250. package/dist/render/assemble.d.ts.map +1 -0
  251. package/dist/render/assemble.js +309 -0
  252. package/dist/render/assemble.js.map +1 -0
  253. package/dist/render/assets.d.ts +27 -0
  254. package/dist/render/assets.d.ts.map +1 -0
  255. package/dist/render/assets.js +232 -0
  256. package/dist/render/assets.js.map +1 -0
  257. package/dist/render/build.d.ts +43 -0
  258. package/dist/render/build.d.ts.map +1 -0
  259. package/dist/render/build.js +187 -0
  260. package/dist/render/build.js.map +1 -0
  261. package/dist/render/charts.d.ts +83 -0
  262. package/dist/render/charts.d.ts.map +1 -0
  263. package/dist/render/charts.js +633 -0
  264. package/dist/render/charts.js.map +1 -0
  265. package/dist/render/default-registry.d.ts +7 -0
  266. package/dist/render/default-registry.d.ts.map +1 -0
  267. package/dist/render/default-registry.js +15 -0
  268. package/dist/render/default-registry.js.map +1 -0
  269. package/dist/render/diagram-theme.d.ts +7 -0
  270. package/dist/render/diagram-theme.d.ts.map +1 -0
  271. package/dist/render/diagram-theme.js +50 -0
  272. package/dist/render/diagram-theme.js.map +1 -0
  273. package/dist/render/dialect.d.ts +23 -0
  274. package/dist/render/dialect.d.ts.map +1 -0
  275. package/dist/render/dialect.js +188 -0
  276. package/dist/render/dialect.js.map +1 -0
  277. package/dist/render/html/citations.d.ts +70 -0
  278. package/dist/render/html/citations.d.ts.map +1 -0
  279. package/dist/render/html/citations.js +371 -0
  280. package/dist/render/html/citations.js.map +1 -0
  281. package/dist/render/html/css.d.ts +14 -0
  282. package/dist/render/html/css.d.ts.map +1 -0
  283. package/dist/render/html/css.js +113 -0
  284. package/dist/render/html/css.js.map +1 -0
  285. package/dist/render/html/emitter.d.ts +20 -0
  286. package/dist/render/html/emitter.d.ts.map +1 -0
  287. package/dist/render/html/emitter.js +652 -0
  288. package/dist/render/html/emitter.js.map +1 -0
  289. package/dist/render/html/escape.d.ts +11 -0
  290. package/dist/render/html/escape.d.ts.map +1 -0
  291. package/dist/render/html/escape.js +32 -0
  292. package/dist/render/html/escape.js.map +1 -0
  293. package/dist/render/html/katex.d.ts +9 -0
  294. package/dist/render/html/katex.d.ts.map +1 -0
  295. package/dist/render/html/katex.js +39 -0
  296. package/dist/render/html/katex.js.map +1 -0
  297. package/dist/render/html/stage.d.ts +12 -0
  298. package/dist/render/html/stage.d.ts.map +1 -0
  299. package/dist/render/html/stage.js +30 -0
  300. package/dist/render/html/stage.js.map +1 -0
  301. package/dist/render/index.d.ts +5 -0
  302. package/dist/render/index.d.ts.map +1 -0
  303. package/dist/render/index.js +5 -0
  304. package/dist/render/index.js.map +1 -0
  305. package/dist/render/math.d.ts +9 -0
  306. package/dist/render/math.d.ts.map +1 -0
  307. package/dist/render/math.js +60 -0
  308. package/dist/render/math.js.map +1 -0
  309. package/dist/render/model.d.ts +233 -0
  310. package/dist/render/model.d.ts.map +1 -0
  311. package/dist/render/model.js +2 -0
  312. package/dist/render/model.js.map +1 -0
  313. package/dist/render/numbering.d.ts +51 -0
  314. package/dist/render/numbering.d.ts.map +1 -0
  315. package/dist/render/numbering.js +155 -0
  316. package/dist/render/numbering.js.map +1 -0
  317. package/dist/render/output-name.d.ts +4 -0
  318. package/dist/render/output-name.d.ts.map +1 -0
  319. package/dist/render/output-name.js +11 -0
  320. package/dist/render/output-name.js.map +1 -0
  321. package/dist/render/palettes.d.ts +22 -0
  322. package/dist/render/palettes.d.ts.map +1 -0
  323. package/dist/render/palettes.js +46 -0
  324. package/dist/render/palettes.js.map +1 -0
  325. package/dist/render/parse.d.ts +15 -0
  326. package/dist/render/parse.d.ts.map +1 -0
  327. package/dist/render/parse.js +637 -0
  328. package/dist/render/parse.js.map +1 -0
  329. package/dist/render/port.d.ts +79 -0
  330. package/dist/render/port.d.ts.map +1 -0
  331. package/dist/render/port.js +2 -0
  332. package/dist/render/port.js.map +1 -0
  333. package/dist/render/registry.d.ts +11 -0
  334. package/dist/render/registry.d.ts.map +1 -0
  335. package/dist/render/registry.js +21 -0
  336. package/dist/render/registry.js.map +1 -0
  337. package/dist/render/text.d.ts +13 -0
  338. package/dist/render/text.d.ts.map +1 -0
  339. package/dist/render/text.js +65 -0
  340. package/dist/render/text.js.map +1 -0
  341. package/dist/render/walk.d.ts +13 -0
  342. package/dist/render/walk.d.ts.map +1 -0
  343. package/dist/render/walk.js +69 -0
  344. package/dist/render/walk.js.map +1 -0
  345. package/dist/research/bibtex.d.ts +12 -0
  346. package/dist/research/bibtex.d.ts.map +1 -0
  347. package/dist/research/bibtex.js +99 -0
  348. package/dist/research/bibtex.js.map +1 -0
  349. package/dist/research/client.d.ts +112 -0
  350. package/dist/research/client.d.ts.map +1 -0
  351. package/dist/research/client.js +661 -0
  352. package/dist/research/client.js.map +1 -0
  353. package/dist/research/dossier.d.ts +31 -0
  354. package/dist/research/dossier.d.ts.map +1 -0
  355. package/dist/research/dossier.js +54 -0
  356. package/dist/research/dossier.js.map +1 -0
  357. package/dist/research/flow.d.ts +31 -0
  358. package/dist/research/flow.d.ts.map +1 -0
  359. package/dist/research/flow.js +635 -0
  360. package/dist/research/flow.js.map +1 -0
  361. package/dist/research/library.d.ts +79 -0
  362. package/dist/research/library.d.ts.map +1 -0
  363. package/dist/research/library.js +319 -0
  364. package/dist/research/library.js.map +1 -0
  365. package/dist/research/verify.d.ts +80 -0
  366. package/dist/research/verify.d.ts.map +1 -0
  367. package/dist/research/verify.js +307 -0
  368. package/dist/research/verify.js.map +1 -0
  369. package/dist/resources.d.ts +15 -0
  370. package/dist/resources.d.ts.map +1 -0
  371. package/dist/resources.js +148 -0
  372. package/dist/resources.js.map +1 -0
  373. package/dist/review.d.ts +22 -0
  374. package/dist/review.d.ts.map +1 -0
  375. package/dist/review.js +355 -0
  376. package/dist/review.js.map +1 -0
  377. package/dist/schemas.d.ts +252 -0
  378. package/dist/schemas.d.ts.map +1 -0
  379. package/dist/schemas.js +1020 -0
  380. package/dist/schemas.js.map +1 -0
  381. package/dist/sections.d.ts +30 -0
  382. package/dist/sections.d.ts.map +1 -0
  383. package/dist/sections.js +62 -0
  384. package/dist/sections.js.map +1 -0
  385. package/dist/storage.d.ts +21 -0
  386. package/dist/storage.d.ts.map +1 -0
  387. package/dist/storage.js +296 -0
  388. package/dist/storage.js.map +1 -0
  389. package/dist/style-commands.d.ts +15 -0
  390. package/dist/style-commands.d.ts.map +1 -0
  391. package/dist/style-commands.js +54 -0
  392. package/dist/style-commands.js.map +1 -0
  393. package/dist/styles/csl.d.ts +58 -0
  394. package/dist/styles/csl.d.ts.map +1 -0
  395. package/dist/styles/csl.js +112 -0
  396. package/dist/styles/csl.js.map +1 -0
  397. package/dist/styles/discovery.d.ts +45 -0
  398. package/dist/styles/discovery.d.ts.map +1 -0
  399. package/dist/styles/discovery.js +99 -0
  400. package/dist/styles/discovery.js.map +1 -0
  401. package/dist/styles/golden.d.ts +52 -0
  402. package/dist/styles/golden.d.ts.map +1 -0
  403. package/dist/styles/golden.js +216 -0
  404. package/dist/styles/golden.js.map +1 -0
  405. package/dist/styles/profile.d.ts +126 -0
  406. package/dist/styles/profile.d.ts.map +1 -0
  407. package/dist/styles/profile.js +582 -0
  408. package/dist/styles/profile.js.map +1 -0
  409. package/dist/styles/xml.d.ts +22 -0
  410. package/dist/styles/xml.d.ts.map +1 -0
  411. package/dist/styles/xml.js +179 -0
  412. package/dist/styles/xml.js.map +1 -0
  413. package/dist/types.d.ts +285 -0
  414. package/dist/types.d.ts.map +1 -0
  415. package/dist/types.js +155 -0
  416. package/dist/types.js.map +1 -0
  417. package/dist/typst-pins.d.ts +16 -0
  418. package/dist/typst-pins.d.ts.map +1 -0
  419. package/dist/typst-pins.js +39 -0
  420. package/dist/typst-pins.js.map +1 -0
  421. package/dist/version.d.ts +2 -0
  422. package/dist/version.d.ts.map +1 -0
  423. package/dist/version.js +3 -0
  424. package/dist/version.js.map +1 -0
  425. package/dist/workflow.d.ts +49 -0
  426. package/dist/workflow.d.ts.map +1 -0
  427. package/dist/workflow.js +722 -0
  428. package/dist/workflow.js.map +1 -0
  429. package/dist/workspace.d.ts +12 -0
  430. package/dist/workspace.d.ts.map +1 -0
  431. package/dist/workspace.js +71 -0
  432. package/dist/workspace.js.map +1 -0
  433. package/package.json +70 -0
  434. package/policy-packs/countries/CO/academic-standards/ntc-1486-2022.yaml +188 -0
  435. package/policy-packs/countries/CO/copyright/decision-andina-351.yaml +61 -0
  436. package/policy-packs/countries/CO/copyright/ley-1915-2018.yaml +25 -0
  437. package/policy-packs/countries/CO/copyright/ley-23-1982.yaml +64 -0
  438. package/policy-packs/countries/CO/domains/health/resolucion-8430-1993.yaml +219 -0
  439. package/policy-packs/countries/CO/higher-education/ley-30-1992.yaml +61 -0
  440. package/policy-packs/countries/CO/manifest.yaml +42 -0
  441. package/policy-packs/countries/CO/official-domains.yaml +90 -0
  442. package/policy-packs/countries/CO/privacy/ley-1581-2012.yaml +197 -0
  443. package/policy-packs/countries/CO/research-integrity/minciencias-res-0314-2018.yaml +64 -0
  444. package/policy-packs/global/academic-integrity.yaml +45 -0
  445. package/policy-packs/global/academic-writing.yaml +70 -0
  446. package/policy-packs/global/evidence-quality.yaml +81 -0
  447. package/policy-packs/global/manifest.yaml +54 -0
  448. package/policy-packs/global/objective-verbs.yaml +245 -0
  449. package/policy-packs/global/reporting-guidelines.yaml +392 -0
  450. package/policy-packs/global/work-types.yaml +195 -0
  451. package/styles/LICENSE-CSL +375 -0
  452. package/styles/apa.csl +2283 -0
  453. package/styles/catalog.json +43 -0
  454. package/styles/fixtures/apa-7.expected.json +25 -0
  455. package/styles/fixtures/icontec-ntc1486-2022.expected.json +25 -0
  456. package/styles/fixtures/ieee.expected.json +25 -0
  457. package/styles/fixtures/references.jsonl +8 -0
  458. package/styles/icontec-ntc1486-2022.csl +388 -0
  459. package/styles/ieee.csl +519 -0
  460. package/templates/html/runtime.js +159 -0
  461. package/templates/html/thesis.css +98 -0
  462. package/templates/html/vendor/katex/LICENSE +21 -0
  463. package/templates/html/vendor/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  464. package/templates/html/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  465. package/templates/html/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  466. package/templates/html/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  467. package/templates/html/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  468. package/templates/html/vendor/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  469. package/templates/html/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  470. package/templates/html/vendor/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  471. package/templates/html/vendor/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  472. package/templates/html/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  473. package/templates/html/vendor/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  474. package/templates/html/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  475. package/templates/html/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  476. package/templates/html/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  477. package/templates/html/vendor/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  478. package/templates/html/vendor/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  479. package/templates/html/vendor/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  480. package/templates/html/vendor/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  481. package/templates/html/vendor/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  482. package/templates/html/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  483. package/templates/html/vendor/katex/katex.min.css +1 -0
  484. package/templates/html/vendor/katex/katex.min.js +1 -0
  485. package/templates/html/vendor/mermaid/LICENSE +21 -0
  486. package/templates/html/vendor/mermaid/mermaid.min.js +3587 -0
  487. package/templates/html/vendor/pagedjs/LICENSE +21 -0
  488. package/templates/html/vendor/pagedjs/paged.polyfill.min.js +4 -0
  489. package/templates/palettes.json +57 -0
  490. package/templates/profiles/apa-7.profile.yaml +15 -0
  491. package/templates/profiles/generic.profile.yaml +20 -0
  492. package/templates/profiles/icontec-ntc1486-2022.profile.yaml +36 -0
  493. package/templates/profiles/ieee.profile.yaml +14 -0
  494. package/templates/typst/i18n/en.yaml +31 -0
  495. package/templates/typst/i18n/es.yaml +31 -0
  496. package/templates/typst/i18n/pt.yaml +31 -0
  497. package/templates/typst/thesis.typ +276 -0
  498. package/typst-packages/preview/merman/0.3.0/LICENSE +231 -0
  499. package/typst-packages/preview/merman/0.3.0/README.md +388 -0
  500. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cose-base-v1/LICENSE +21 -0
  501. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cose-base-v2/LICENSE +21 -0
  502. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cytoscape/LICENSE +19 -0
  503. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cytoscape-cose-bilkent/LICENSE +21 -0
  504. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cytoscape-fcose/LICENSE +19 -0
  505. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/d3-shape/LICENSE +13 -0
  506. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/dagre/LICENSE +19 -0
  507. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/dompurify/LICENSE +202 -0
  508. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/eclipse-elk/LICENSE.md +264 -0
  509. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/elkjs/LICENSE.md +264 -0
  510. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/fmin/LICENSE +27 -0
  511. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/graphlib/LICENSE +19 -0
  512. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/layout-base-v1/LICENSE +21 -0
  513. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/layout-base-v2/LICENSE +21 -0
  514. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/mermaid/LICENSE +21 -0
  515. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/rough-rs/LICENSE +21 -0
  516. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/roughjs/LICENSE +21 -0
  517. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/sanitize-url/LICENSE +21 -0
  518. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/venn-js/LICENSE +22 -0
  519. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/wasm-minimal-protocol/LICENSE +24 -0
  520. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/zenuml-core/LICENSE +21 -0
  521. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_NOTICES.md +265 -0
  522. package/typst-packages/preview/merman/0.3.0/lib.typ +1 -0
  523. package/typst-packages/preview/merman/0.3.0/merman_typst_plugin.wasm +0 -0
  524. package/typst-packages/preview/merman/0.3.0/src/capabilities.typ +5 -0
  525. package/typst-packages/preview/merman/0.3.0/src/context.typ +1 -0
  526. package/typst-packages/preview/merman/0.3.0/src/errors.typ +33 -0
  527. package/typst-packages/preview/merman/0.3.0/src/exports.typ +5 -0
  528. package/typst-packages/preview/merman/0.3.0/src/figure.typ +143 -0
  529. package/typst-packages/preview/merman/0.3.0/src/image.typ +50 -0
  530. package/typst-packages/preview/merman/0.3.0/src/options.typ +566 -0
  531. package/typst-packages/preview/merman/0.3.0/src/plugin.typ +1 -0
  532. package/typst-packages/preview/merman/0.3.0/src/raw.typ +22 -0
  533. package/typst-packages/preview/merman/0.3.0/src/render.typ +137 -0
  534. package/typst-packages/preview/merman/0.3.0/src/source.typ +7 -0
  535. package/typst-packages/preview/merman/0.3.0/src/units.typ +51 -0
  536. package/typst-packages/preview/merman/0.3.0/typst.toml +12 -0
  537. package/typst-packages/preview/mitex/0.2.7/CHANGELOG.md +69 -0
  538. package/typst-packages/preview/mitex/0.2.7/LICENSE +176 -0
  539. package/typst-packages/preview/mitex/0.2.7/README.md +154 -0
  540. package/typst-packages/preview/mitex/0.2.7/lib.typ +1 -0
  541. package/typst-packages/preview/mitex/0.2.7/mitex.typ +45 -0
  542. package/typst-packages/preview/mitex/0.2.7/mitex.wasm +0 -0
  543. package/typst-packages/preview/mitex/0.2.7/specs/README.md +250 -0
  544. package/typst-packages/preview/mitex/0.2.7/specs/latex/standard.typ +1187 -0
  545. package/typst-packages/preview/mitex/0.2.7/specs/mod.typ +12 -0
  546. package/typst-packages/preview/mitex/0.2.7/specs/prelude.typ +230 -0
  547. package/typst-packages/preview/mitex/0.2.7/typst.toml +12 -0
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: thesis-institution-norms
3
+ description: "Trigger: institution norms, university regulation, faculty guide, rubric, writing guide, workspace policy pack, presentation profile, overrides."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when turning an institutional regulation, faculty guide, rubric or house writing guide into policy rules or a presentation profile.
13
+
14
+ ## Hard Rules
15
+
16
+ - Write rules in the pack format: `ruleId`, `level`, `status`, `appliesWhen`, `requirement.kind` and `values`, `source` with a quoted location and `verification` with `lastChecked` and `basis`. Put them in a workspace pack under `thesis/policy-packs/` with a `manifest.yaml` (`packId`, `scope`, `version`, `appliesWhen`, optional `extends`).
17
+ - Scopes: international, country, region, institution, faculty, program and writing. Faculty and program rules live in `faculties/<slug>/` and `programs/<slug>/` inside the institution pack; the loader activates them only for the matching faculty and program.
18
+ - `requirement.kind` comes from the closed vocabulary (paper, page_margins, font, line_spacing, text_alignment, pagination, front_matter_order, required_section, heading_format, caption_position, citation_style, reference_format, length_limit, ethics_trigger, risk_classification, consent_requirement, data_protection, quotation_rule, attribution_rule, integrity_rule, ai_declaration, source_quality, evidence_minimum, reporting_guideline, objective_verbs, official_domain_allowlist). Your own kinds must be named `x-<name>`; no deterministic check consumes them.
19
+ - Classify each requirement by level: LAW, REGULATION, INSTITUTIONAL_RULE, PROGRAM_RULE, TECHNICAL_STANDARD, STYLE_GUIDE, METHODOLOGY_GUIDELINE or RECOMMENDATION. Precedence follows level and pack scope, never load order.
20
+ - To change a shipped rule, reuse its `ruleId` and set `overrides: true`; otherwise `/thesis:pack check` reports PCK-002. Two rules of equal precedence with different values are PCK-003.
21
+ - Quote the source location for every rule. Mark rules inferred from examples or from secondary documents as `basis: secondary_source`; use `official_text` only when you read the official text.
22
+ - When the guide prescribes layout, also produce a declarative presentation profile (paper, margins, fonts, spacing, headings, captions, page numbers, cover, front matter order). Never raw markup; unknown keys fail validation.
23
+ - Never invent a rule. Ambiguities become questions for the user. The user approves the extracted rules before anything is written.
24
+
25
+ ## Decision Gates
26
+
27
+ | Situation | Action |
28
+ | --- | --- |
29
+ | The guide is a scanned PDF | Ask for text or extract carefully; mark uncertain readings as questions |
30
+ | A requirement is a recommendation | Use RECOMMENDATION level so it does not block |
31
+ | The rule overlaps a shipped one | Override with `overrides: true` and quote why |
32
+ | The rule only applies to one faculty or program | Place it under that faculty or program folder |
33
+ | The rule is a house writing convention | Use the writing scope and STYLE_GUIDE level |
34
+
35
+ ## Execution Steps
36
+
37
+ 1. Read the guide and list every requirement with its location and strength (must, should, may).
38
+ 2. Classify level, scope and kind; pick `appliesWhen` from the allowed keys: country, language, workType, approach, studyDesign, domain, presentationStandard, citationStyle, ethicsTrigger, aiUse.
39
+ 3. Draft the rule files and, when needed, the profile; show a summary to the user for approval.
40
+ 4. After approval the coordinator writes them and runs `/thesis:pack check`; fix any PCK finding and re-run.
41
+
42
+ ## Output Contract
43
+
44
+ Return strict JSON for `NormsDraft`: `pack` (`scope` institution, faculty, program, writing or international; `id` for writing and international packs; `description`; `appliesWhen`), `rules` (a flat list of rule mappings in the section 11.2 format, each with `ruleId`, `level`, `appliesWhen`, `requirement` (`kind` from the closed vocabulary or `x-<name>`, `values`), `source` and `verification` with `basis`), optional `profile` (YAML), `questions` and `sourceTrace` (rule, guide quote and location, effect). Field names are English; quoted source text keeps the guide's language. Code validates every rule with the pack loader (PCK-001, PCK-002, unknown kinds and `appliesWhen` keys) and writes only after the user approves.
45
+
46
+ ## References
47
+
48
+ - `../../../README.md`
49
+ - `../thesis-policy/SKILL.md`
50
+ - `../thesis-csl-authoring/SKILL.md`
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: thesis-intake
3
+ description: "Trigger: thesis init, interview, language, work type, country, institution. Run the intake rounds with recommended options."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when the user starts or resumes a thesis workspace, or asks what the interview needs. The interview runs in code; this skill tells you how to guide it.
13
+
14
+ ## Hard Rules
15
+
16
+ - The thesis language is the first question of round 1, always. Never assume it from the topic.
17
+ - Every question offers 2 to 4 options and at most one is recommended. Present the recommended option first and say why it is recommended in one short sentence.
18
+ - Rounds 1 and 2 (language, work type, country, second abstract, institution, citation style, domain, approach) are mandatory before any other phase. Round 3 (title, topic, objective, justification) is mandatory before design completes. Round 4 (paper, palette, typeface, AI declaration) can wait until the first figure or build.
19
+ - Ask at most one open question at a time. Do not ask again what `thesis.yaml` already answers.
20
+ - Never choose the citation style or presentation standard for the user. `Let the policy decide` is a valid answer that leaves the decision to institution rules, with a flagged default when none exists. Colombia never selects ICONTEC automatically.
21
+ - Language values are BCP-47 tags (es-CO, en, pt-BR). Country values are ISO 3166-1 alpha-2 codes. Reject anything else and say what is allowed.
22
+ - Headless sessions answer through `/thesis:answer` with `id=value` pairs or one JSON object. Free text uses `<id>:text=...`. Never invent an answer to unblock the flow.
23
+
24
+ ## Decision Gates
25
+
26
+ | Situation | Action |
27
+ | --- | --- |
28
+ | The user wrote in Spanish and has not chosen a language | Offer the conversation language as the recommended option, still ask |
29
+ | The user is unsure about the citation style | Recommend `Let the policy decide`; explain that the institution's rules win and that defaults are flagged |
30
+ | The user has no institution yet | Choose `Not decided yet`; remind them that institution rules override defaults once known |
31
+ | The user pastes a long description of their topic | Store it as the topic answer; do not rewrite it during intake |
32
+ | Answers are rejected | Show the allowed values from the rejection message and ask again, once |
33
+
34
+ ## Execution Steps
35
+
36
+ 1. Run `/thesis:init` (add `--lang <tag>` when you know the conversation language) and read the first round aloud with its recommended options.
37
+ 2. For headless sessions, relay the pending questions exactly and wait for `/thesis:answer`.
38
+ 3. After each round, state what was recorded and which round is next.
39
+ 4. When rounds 1 to 3 are complete, report the resolved citation style and whether it is a default, then the G0 result, then the next command.
40
+
41
+ ## Output Contract
42
+
43
+ Report the answers recorded, the files written (`thesis.yaml`, `compliance-profile.json`, `research/intake.json`), the G0 result and the single next command. Never summarize policy as legal advice.
44
+
45
+ ## References
46
+
47
+ - `../../../README.md`
48
+ - `../thesis-policy/SKILL.md`
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: thesis-math
3
+ description: "Trigger: equations, LaTeX math, displayed equations, symbols, units, labels {#eq-}, MTH checks."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when a section contains formulas, derivations or symbols.
13
+
14
+ ## Hard Rules
15
+
16
+ - Write math in LaTeX syntax: inline `$...$`, displayed `$$...$$`. Every displayed equation that is referenced gets `{#eq-name}` after the closing delimiter.
17
+ - Only math commands are allowed. `\input`, `\include`, `\write`, `\def` and other non-math commands are rejected (MTH-001). Keep delimiters balanced and avoid backticks inside `\text{}`.
18
+ - Define every symbol at first use, with units where they exist. Keep notation consistent across chapters; use one symbol for one quantity.
19
+ - Do not typeset numbers from tables inside equations unless they are inputs of the derivation; keep significant figures consistent with the data.
20
+ - Refer to equations with `@eq-name` and write the sentence around them; never leave an equation without a verb.
21
+ - Long derivations go in annexes; the body keeps the result and the key steps.
22
+
23
+ ## Decision Gates
24
+
25
+ | Situation | Action |
26
+ | --- | --- |
27
+ | The formula is referenced later | Add a label and refer with `@eq-name` |
28
+ | A symbol is reused | Rename one of them and say so |
29
+ | A formula comes from a source | Cite it with a locator; do not alter it silently |
30
+ | A formula needs unusual notation | Define it in a sentence before use |
31
+ | The command is not math | Rewrite it with plain math or describe it in words |
32
+
33
+ ## Execution Steps
34
+
35
+ 1. List the quantities, symbols and units.
36
+ 2. Write the equation, label it if referenced, and define symbols after it.
37
+ 3. Reference it from the text and explain what it means.
38
+ 4. Check delimiters, labels and units before returning.
39
+
40
+ ## Output Contract
41
+
42
+ Return Markdown with labeled equations and a short list of symbols with units in the draft's `notes`.
43
+
44
+ ## References
45
+
46
+ - `../../../README.md`
47
+ - `../thesis-writing/SKILL.md`
48
+ - `../thesis-figures/SKILL.md`
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: thesis-methodology
3
+ description: "Trigger: research protocol, problem, question, objectives, justification, methodology, reporting guideline, ethics questionnaire."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when designing or revising the research protocol that Human Gates A and B approve.
13
+
14
+ ## Hard Rules
15
+
16
+ - Return a `ProtocolDraft` envelope: problem, research question or questions, general objective, 2 to 6 specific objectives, justification, scope and limitations, hypotheses (quantitative only), methodology, ethics answers.
17
+ - Each specific objective starts with an approved action verb for the thesis language, names an object, and states a verifiable deliverable. Flag verbs that cannot be verified (for example understand, know) and replace them.
18
+ - Justification covers relevance, novelty, feasibility and beneficiaries, each in a sentence or two, without citing anything you have no evidence for.
19
+ - Pick the reporting guideline from the approach and `studyDesign` as the policy routes it (systematic review: PRISMA; observational: STROBE; trial: CONSORT; interviews: COREQ or SRQR). Say when none applies.
20
+ - The ethics questionnaire has eleven yes or no questions: human participants, minors, identifiable personal data, sensitive data, intervention, risk above minimal, biological samples, animals, communities, clinical research, additional institutional rules. Answer from the user's description; ask when unsure.
21
+ - Map every yes to the requirements the resolved policy lists. When the policy lists none, say so and recommend asking the ethics committee. Never say consent, assent or review is unnecessary; only an ethics committee can waive them.
22
+ - The user approves Gate A (topic, problem, question, objectives) and Gate B (methodology, ethics, scope) separately. Never present an approval as given.
23
+
24
+ ## Decision Gates
25
+
26
+ | Situation | Action |
27
+ | --- | --- |
28
+ | The objective is vague | Rewrite it with a measurable verb, object and deliverable; show both versions |
29
+ | The approach is quantitative | Add testable hypotheses and the analysis plan |
30
+ | The topic involves people or their data | Walk the questionnaire explicitly and map the policy requirements |
31
+ | Minors may be involved | Answer yes to minors, list the policy requirements and recommend committee review |
32
+ | The user wants three titles | Offer three, ranked by clarity and scope fit, each under 20 words |
33
+
34
+ ## Execution Steps
35
+
36
+ 1. Read the brief, the compliance profile summary and the round-3 answers.
37
+ 2. Draft the problem and question, then the objectives, then justification, scope, methodology and ethics.
38
+ 3. Check every specific objective against the verb list and the deliverable rule.
39
+ 4. Return the envelope with open questions for the user instead of guessing missing facts.
40
+
41
+ ## Output Contract
42
+
43
+ Return strict JSON for `ProtocolDraft`: text fields in the thesis language, enums in English, all 11 ethics answers as booleans (code maps each yes to the policy requirements), the reporting guideline name or null, and an `openQuestions` list. Do not include ids; code allocates `OBJ-G` and `OBJ-01`.
44
+
45
+ ## References
46
+
47
+ - `../../../README.md`
48
+ - `../thesis-policy/SKILL.md`
49
+ - `../thesis-outline/SKILL.md`
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: thesis-outline
3
+ description: "Trigger: thesis outline, section plan, objectives coverage, dependsOn, required sections, argument map."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when drafting or revising the outline that the OUTLINE human gate approves, or the per-section dossier.
13
+
14
+ ## Hard Rules
15
+
16
+ - Return an `OutlineDraft`: an ordered tree where each section has title, purpose of at most 300 characters, objectives (OBJ ids), 1 to 8 research topics, questions to answer, evidence needs, target words and `dependsOn`.
17
+ - Include every required section from the compliance profile in the order it prescribes: cover, abstract or abstracts, introduction, problem, objectives, justification, theoretical framework or state of the art, methodology, results, discussion, conclusions, references, annexes and the AI declaration when required.
18
+ - Every specific objective is covered by at least one section; every section serves at least one objective or is a required section. Code rejects an outline that leaves an objective uncovered.
19
+ - `dependsOn` must be acyclic. A results section depends on the methodology; conclusions depend on results and discussion.
20
+ - Never allocate section ids. Give each section a short unique kebab-case `key`; `dependsOn` lists keys, and `children` nests sub-sections. Code assigns `SEC-nn` ids from the order. Tag every required section with its `requiredKey`.
21
+ - Evidence needs use the fixed set: empirical, theoretical, normative, statistical, methodological. Pick the ones that really apply.
22
+
23
+ ## Decision Gates
24
+
25
+ | Situation | Action |
26
+ | --- | --- |
27
+ | An objective has no section | Add or expand a section; do not drop the objective |
28
+ | A required section seems irrelevant | Keep it and make it short; the policy requires it |
29
+ | Two sections overlap | Merge them or sharpen each purpose in one sentence |
30
+ | The thesis is very long or very short for its work type | Adjust target words and say why |
31
+ | A section needs the results of another | Add the dependency instead of reordering |
32
+
33
+ ## Execution Steps
34
+
35
+ 1. Read the approved protocol and the required sections from the profile.
36
+ 2. Draft the tree top-down, then assign objectives, topics, evidence needs and dependencies.
37
+ 3. Verify coverage, order and acyclicity yourself before returning.
38
+ 4. Write the claims and gaps for each section when producing a dossier.
39
+
40
+ ## Output Contract
41
+
42
+ Return strict JSON for `OutlineDraft` (or `Dossier` after research: `synthesis` and `gaps` that together cover every research topic copied exactly, and `claims` that cite only EVD ids and `[@keys]` from the packet). Purposes and topics are written in the thesis language.
43
+
44
+ ## References
45
+
46
+ - `../../../README.md`
47
+ - `../thesis-methodology/SKILL.md`
48
+ - `../thesis-evidence/SKILL.md`
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: thesis-policy
3
+ description: "Trigger: policy pack, compliance profile, citation style, presentation standard, ICONTEC, APA, institution rules. Explain resolved rules."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when the user asks which rules apply, why a citation style or layout was chosen, or how to change it. Policy is resolved by code from packs; you explain it.
13
+
14
+ ## Hard Rules
15
+
16
+ - Policy is data. Shipped packs (global, country) and workspace packs under `thesis/policy-packs/` go through the same loader and the same resolver. Never describe law from memory; read the compliance profile and cite `ruleId` and source.
17
+ - Precedence is by rule level and pack scope, never by load order: law, regulation, institution, faculty, program, rubric, institutional template, selected style, global default. Equal precedence with different values is a conflict that must be fixed.
18
+ - `citationStyle: auto` and `presentation.standard: auto` resolve from the highest-precedence rule that sets them, or fall back to `apa-7` and `generic` (or the presentation that matches the citation style) and are marked as defaults. Tell the user to confirm defaults with their program.
19
+ - Colombia never auto-enables ICONTEC. Without an institution rule the user's own answer decides.
20
+ - Rules with `basis: secondary_source` come from university guides rather than the official text. List them so the user can confirm them with the program. An institution rule overrides them.
21
+ - A workspace rule replaces a shipped rule only with `overrides: true`; otherwise `/thesis:pack check` reports PCK-002.
22
+ - You explain policy; you do not give legal advice and you never say that consent or ethics review is unnecessary.
23
+
24
+ ## Decision Gates
25
+
26
+ | Situation | Action |
27
+ | --- | --- |
28
+ | User asks why a style was chosen | Run `/thesis:pack explain citationStyle` and relay the trail, highest precedence first |
29
+ | User's program requires something the packs lack | Point to `thesis-institution-norms` and `/thesis:pack new` |
30
+ | Two rules conflict | Name both sources and ask which has higher authority; fix by level, scope or `supersedes` |
31
+ | A rule looks outdated | Say when it was last verified and ask the user to confirm with their program |
32
+ | User wants to bypass a rule | Explain the consequence and the rule's source; any exception comes from the institution, as a rule file |
33
+
34
+ ## Execution Steps
35
+
36
+ 1. Read `compliance-profile.json` (or run `thesis_check` for G0) and note the resolved citation style, presentation standard, AI declaration requirement and applied rules.
37
+ 2. For any value the user asks about, run `/thesis:pack explain <value>` and quote the trail.
38
+ 3. List defaults and secondary-source rules that still need confirmation.
39
+ 4. When the user decides, record it in `thesis.yaml` (citationStyle, presentation.standard) or as an institution rule; then re-run `/thesis:check`.
40
+
41
+ ## Output Contract
42
+
43
+ Return the resolved value, its source (rule, brief, default, derived), the ruleId trail, which rules need confirmation and the exact next action.
44
+
45
+ ## References
46
+
47
+ - `../../../README.md`
48
+ - `../thesis-institution-norms/SKILL.md`
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: thesis-review
3
+ description: "Trigger: independent examiner review, ReviewReport, findings severity, routeTo, argument, method, limitations, final QA."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when reviewing built artifacts for the review phase or a final judgment pass.
13
+
14
+ ## Hard Rules
15
+
16
+ - You are independent. You read the built Markdown, the outline, the protocol and the check report; you never read the writer's instructions or reasoning.
17
+ - Judge what code cannot: argument coherence, answer to the research question, conclusions against objectives, method fit, honest limitations and claims that exceed their evidence. Do not repeat deterministic findings from `thesis_check`.
18
+ - Every finding has a severity (critical, major, minor), a category, the target section, a quoted passage as evidence and a `routeTo` role. No quote, no finding.
19
+ - Routing: source problems to the evidence auditor, concept and method to the methodologist, statistics to the writer, argument to the architect, wording to the editor, format to the build.
20
+ - Critical means the thesis is wrong or unsafe to submit (fabricated or unsupported core claim, missing ethics treatment, objective not met). Major means a reader would reject the section. Minor is polish.
21
+ - G9 passes only with no open critical or major finding. Do not downgrade a finding to pass the gate.
22
+ - Be specific and proportionate. Do not pad with minor points when a major one is open, and do not rewrite the text yourself.
23
+
24
+ ## Decision Gates
25
+
26
+ | Situation | Action |
27
+ | --- | --- |
28
+ | A claim seems unsupported | Quote it, name the citation it carries and route to the evidence auditor |
29
+ | An objective is not reached | Critical, route to the architect, name the objective |
30
+ | The method does not answer the question | Major, route to the methodologist |
31
+ | A number looks inconsistent | Quote both places and route to the writer |
32
+ | The prose is hard to follow but correct | Minor, route to the editor |
33
+
34
+ ## Execution Steps
35
+
36
+ 1. Run `thesis_check` and read the report so you skip what code already found.
37
+ 2. Read the protocol, then the outline, then each section against its purpose and objectives.
38
+ 3. Record findings as you go with the quote and the role to route to.
39
+ 4. Summarize strengths in one line and order findings by severity.
40
+
41
+ ## Output Contract
42
+
43
+ Return strict JSON for `ReviewReport`: `summary`, and `findings` with severity, category (`source`, `concept`, `method`, `statistics`, `argument`, `wording`, `format`), target section id, evidence (a verbatim quote of at least 8 characters from that section; code rejects a quote it cannot find), a `description` and `routeTo` exactly as the category maps (source: evidence-auditor, concept and method: methodologist, statistics: writer, argument: architect, wording: editor, format: build).
44
+
45
+ ## References
46
+
47
+ - `../../../README.md`
48
+ - `../thesis-citations/SKILL.md`
49
+ - `../thesis-evidence/SKILL.md`
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: thesis-search
3
+ description: "Trigger: scholarly search, OpenAlex, Crossref, arXiv, literature search plan, candidate sources, grey literature, official sources."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when planning or selecting literature for a section's research step.
13
+
14
+ ## Hard Rules
15
+
16
+ - Discovery is not verification. You may select candidates; only code verification (Crossref or OpenAlex match, retraction check, official-domain check) makes a record citable.
17
+ - Source order of preference: primary and official, then peer-reviewed indexed, then authoritative grey literature, then contextual (theses, preprints, conference abstracts), then discovery-only (general web, Google Scholar).
18
+ - Build queries per research topic and per search language of the brief. Use specific terms, synonyms and the field's dominant language for international topics. Record the year range and why.
19
+ - Copy identifiers exactly as tools return them. Never type a DOI, arXiv id or URL from memory and never invent authors, years or titles.
20
+ - Use the host web tools only when they are available to you. Their absence is reported, not an error. Official legal and standards texts come from official domains the policy allowlists.
21
+ - Respect rate limits: one query per intent, no repeated queries from the search log.
22
+
23
+ ## Decision Gates
24
+
25
+ | Situation | Action |
26
+ | --- | --- |
27
+ | A topic returns no results | Broaden terms or years once, then report the gap; do not pad with weak sources |
28
+ | Only preprints exist | Select them as contextual and say so |
29
+ | A result has no DOI | Keep it if it is relevant and from an official domain; otherwise mark it low confidence |
30
+ | Two records look identical | Select one and note the duplicate; code merges them |
31
+ | A source is paywalled | Use the open-access link if given; never describe contents you could not see |
32
+
33
+ ## Execution Steps
34
+
35
+ 1. Read the section plan: purpose, topics, evidence needs and the brief's search languages.
36
+ 2. Write the `SearchPlan` with queries, sources and year range per topic.
37
+ 3. After code runs the queries, select candidates and return the `CandidateSet` with the reason for each.
38
+ 4. List topics with no adequate source as gaps.
39
+
40
+ ## Output Contract
41
+
42
+ Return strict JSON for `SearchPlan` or `CandidateSet`: identifiers exactly as returned by tools, the title, first-author family name and year exactly as returned (code compares them with Crossref or OpenAlex), a one-sentence relevance reason, and the topic each record serves.
43
+
44
+ ## References
45
+
46
+ - `../../../README.md`
47
+ - `../thesis-evidence/SKILL.md`
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: thesis-writing
3
+ description: "Trigger: academic prose, drafting a section, claim anchors, hedging, thesis language, topic sentences, evidence packet."
4
+ license: MIT
5
+ metadata:
6
+ author: alisio-contributors
7
+ version: 1.0
8
+ ---
9
+
10
+ ## Activation Contract
11
+
12
+ Load when drafting or revising a section from an evidence packet.
13
+
14
+ ## Hard Rules
15
+
16
+ - Write in `brief.language`, in the academic register of that language. Keep field names and enums in English.
17
+ - Cite only citation keys that are present in the packet, as `[@key]`. A claim without support is stated as a gap or left out; never cite something you did not receive.
18
+ - One claim per paragraph topic sentence. Put a claim anchor (`<!-- claim:c3 -->`) at the start of every non-trivial claim paragraph and describe the claim in the envelope.
19
+ - Never invent numbers, quotes, names, dates or results. Quote data exactly as the user's files give it, with units. If a number is missing, say what is missing.
20
+ - Hedge in proportion to the evidence status: assertive verbs for verified peer-reviewed or primary sources, hedged verbs for contextual or limited ones. Always report limitations the packet lists.
21
+ - No first-person plural unless the policy or writing guide allows it. Follow person, voice, abbreviation and number rules from writing-guide rules in the profile.
22
+ - Use the Markdown dialect only: labels `{#sec-x}`, figures, tables with `Table:` captions, footnotes `[^1]`, math in `$...$`. Raw HTML, raw Typst and `\newpage` are rejected.
23
+ - Respect the section's purpose, target words and dependencies; do not write other sections' content.
24
+
25
+ ## Decision Gates
26
+
27
+ | Situation | Action |
28
+ | --- | --- |
29
+ | The packet lacks support for an important claim | Write it as an open gap and add it to `gaps`; do not soften it into a fact |
30
+ | Sources disagree | Present both positions and the likely reason |
31
+ | A result needs a figure | Draft it with `thesis-figures`; refer to it with `@fig-id` |
32
+ | The target word count is hard to meet | Cut repetition first; never pad with unsupported claims |
33
+ | The user asks for a stronger tone than the evidence supports | Explain the limit and keep the supported wording |
34
+
35
+ ## Execution Steps
36
+
37
+ 1. Read the section plan, dossier, approved claims and evidence packet.
38
+ 2. Outline the section in topic sentences, one per claim.
39
+ 3. Draft paragraph by paragraph, adding anchors and citations as you go.
40
+ 4. Check every key against the packet and every number against the data before returning.
41
+ 5. Return the `SectionDraft` with claims, figure drafts and gaps.
42
+
43
+ ## Output Contract
44
+
45
+ Return strict JSON for `SectionDraft`: `markdown` (no title heading: code adds it; subsections start one level below it), `keywords` (abstracts only), `claims` (anchor, text of at most 400 characters, kind, evidence ids, and for a conclusion `results`: the anchors of the result claims it rests on, or earlier CLM ids; `objectives`: the OBJ ids a result or conclusion answers), `figures` and `gaps`. Place each declared figure or table with `[[figure fig-id]]` alone on a line and refer to it with `@fig-id`. Code rejects unknown keys, missing or extra anchors, a conclusion that rests on no result, unknown labels and any figure that fails the FIG checks.
46
+
47
+ ## References
48
+
49
+ - `../../../README.md`
50
+ - `../thesis-citations/SKILL.md`
51
+ - `../thesis-figures/SKILL.md`
52
+ - `../thesis-math/SKILL.md`
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Alisio contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.