dsh-aris-panel 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 (442) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/README_CN.md +87 -0
  4. package/dsh/checkout.patch.yml +38 -0
  5. package/dsh/client.js +634 -0
  6. package/dsh/cordis.patch.yml +44 -0
  7. package/dsh/index.mjs +76 -0
  8. package/dsh/run-status.mjs +182 -0
  9. package/dsh/scope-limits.mjs +50 -0
  10. package/dsh/workbench.mjs +291 -0
  11. package/mcp-servers/claude-review/README.md +93 -0
  12. package/mcp-servers/claude-review/run_with_claude_aws.sh +49 -0
  13. package/mcp-servers/claude-review/server.py +718 -0
  14. package/mcp-servers/codex-image2/README.md +65 -0
  15. package/mcp-servers/codex-image2/server.py +893 -0
  16. package/mcp-servers/feishu-bridge/requirements.txt +1 -0
  17. package/mcp-servers/feishu-bridge/server.py +240 -0
  18. package/mcp-servers/gemini-review/README.md +171 -0
  19. package/mcp-servers/gemini-review/server.py +1856 -0
  20. package/mcp-servers/llm-chat/requirements.txt +1 -0
  21. package/mcp-servers/llm-chat/server.py +664 -0
  22. package/mcp-servers/manual-review/README.md +133 -0
  23. package/mcp-servers/manual-review/server.py +910 -0
  24. package/mcp-servers/manual-review/ui.html +279 -0
  25. package/mcp-servers/minimax-chat/requirements.txt +1 -0
  26. package/mcp-servers/minimax-chat/server.py +381 -0
  27. package/package.json +51 -0
  28. package/skills/ablation-planner/SKILL.md +123 -0
  29. package/skills/alphaxiv/SKILL.md +196 -0
  30. package/skills/analyze-results/SKILL.md +46 -0
  31. package/skills/arxiv/SKILL.md +248 -0
  32. package/skills/auto-paper-improvement-loop/SKILL.md +651 -0
  33. package/skills/auto-review-loop/SKILL.md +1137 -0
  34. package/skills/auto-review-loop-llm/SKILL.md +259 -0
  35. package/skills/auto-review-loop-minimax/SKILL.md +302 -0
  36. package/skills/citation-audit/SKILL.md +502 -0
  37. package/skills/claims-drafting/SKILL.md +227 -0
  38. package/skills/comm-lit-review/SKILL.md +297 -0
  39. package/skills/deepxiv/SKILL.md +263 -0
  40. package/skills/dse-loop/SKILL.md +296 -0
  41. package/skills/embodiment-description/SKILL.md +129 -0
  42. package/skills/exa-search/SKILL.md +205 -0
  43. package/skills/experiment-audit/SKILL.md +311 -0
  44. package/skills/experiment-bridge/SKILL.md +376 -0
  45. package/skills/experiment-plan/SKILL.md +249 -0
  46. package/skills/experiment-queue/SKILL.md +431 -0
  47. package/skills/experiment-queue/scripts/build_manifest.py +142 -0
  48. package/skills/experiment-queue/scripts/queue_manager.py +433 -0
  49. package/skills/feishu-notify/SKILL.md +156 -0
  50. package/skills/figure-description/SKILL.md +138 -0
  51. package/skills/figure-spec/SKILL.md +262 -0
  52. package/skills/figure-spec/scripts/figure_renderer.py +799 -0
  53. package/skills/formula-derivation/SKILL.md +280 -0
  54. package/skills/gemini-search/SKILL.md +231 -0
  55. package/skills/grant-proposal/SKILL.md +698 -0
  56. package/skills/idea-creator/SKILL.md +542 -0
  57. package/skills/idea-discovery/SKILL.md +521 -0
  58. package/skills/idea-discovery-robot/SKILL.md +363 -0
  59. package/skills/integrity-forensics/SKILL.md +284 -0
  60. package/skills/interview-cheatsheet/SKILL.md +245 -0
  61. package/skills/invention-structuring/SKILL.md +188 -0
  62. package/skills/jurisdiction-format/SKILL.md +192 -0
  63. package/skills/kill-argument/SKILL.md +437 -0
  64. package/skills/mermaid-diagram/SKILL.md +419 -0
  65. package/skills/meta-apply/SKILL.md +141 -0
  66. package/skills/meta-optimize/SKILL.md +437 -0
  67. package/skills/monitor-experiment/SKILL.md +140 -0
  68. package/skills/novelty-check/SKILL.md +101 -0
  69. package/skills/openalex/SKILL.md +237 -0
  70. package/skills/overleaf-sync/SKILL.md +220 -0
  71. package/skills/paper-claim-audit/SKILL.md +348 -0
  72. package/skills/paper-compile/SKILL.md +266 -0
  73. package/skills/paper-figure/SKILL.md +312 -0
  74. package/skills/paper-illustration/SKILL.md +736 -0
  75. package/skills/paper-illustration-image2/SKILL.md +391 -0
  76. package/skills/paper-illustration-image2/scripts/paper_illustration_image2.py +255 -0
  77. package/skills/paper-plan/SKILL.md +386 -0
  78. package/skills/paper-poster/SKILL.md +19 -0
  79. package/skills/paper-poster-html/DESIGN_FINAL.md +176 -0
  80. package/skills/paper-poster-html/IMPLEMENTATION_CONVENTIONS.md +161 -0
  81. package/skills/paper-poster-html/LICENSES/posterly-MIT.txt +21 -0
  82. package/skills/paper-poster-html/NOTICE.md +57 -0
  83. package/skills/paper-poster-html/SKILL.md +323 -0
  84. package/skills/paper-poster-html/scripts/_posterly/__init__.py +0 -0
  85. package/skills/paper-poster-html/scripts/_posterly/canvas.py +200 -0
  86. package/skills/paper-poster-html/scripts/_posterly/measure.py +588 -0
  87. package/skills/paper-poster-html/scripts/_posterly/polish.py +498 -0
  88. package/skills/paper-poster-html/scripts/_posterly/preflight.py +489 -0
  89. package/skills/paper-poster-html/scripts/_posterly/render.py +215 -0
  90. package/skills/paper-poster-html/scripts/_posterly/textutil.py +16 -0
  91. package/skills/paper-poster-html/scripts/_posterly/verify_final.py +171 -0
  92. package/skills/paper-poster-html/scripts/asset_check.py +897 -0
  93. package/skills/paper-poster-html/scripts/extract_pdf_figures.py +666 -0
  94. package/skills/paper-poster-html/scripts/poster_check.py +251 -0
  95. package/skills/paper-poster-html/scripts/preprocess_figures.py +238 -0
  96. package/skills/paper-poster-html/scripts/render_preview.py +217 -0
  97. package/skills/paper-poster-html/scripts/run_gates.py +556 -0
  98. package/skills/paper-poster-html/scripts/style_check.py +1324 -0
  99. package/skills/paper-poster-html/templates/COMPONENTS.md +462 -0
  100. package/skills/paper-poster-html/templates/README.md +170 -0
  101. package/skills/paper-poster-html/templates/landscape_4col.html +1032 -0
  102. package/skills/paper-poster-html/templates/landscape_hero.html +1046 -0
  103. package/skills/paper-poster-html/templates/portrait_2col.html +947 -0
  104. package/skills/paper-poster-html/templates/tokens/acl.json +9 -0
  105. package/skills/paper-poster-html/templates/tokens/cvpr.json +9 -0
  106. package/skills/paper-poster-html/templates/tokens/generic.json +9 -0
  107. package/skills/paper-poster-html/templates/tokens/iclr.json +9 -0
  108. package/skills/paper-poster-html/templates/tokens/icml.json +9 -0
  109. package/skills/paper-poster-html/templates/tokens/neurips.json +9 -0
  110. package/skills/paper-slides/SKILL.md +635 -0
  111. package/skills/paper-talk/SKILL.md +381 -0
  112. package/skills/paper-write/SKILL.md +604 -0
  113. package/skills/paper-write/templates/IEEEtran.bst +2409 -0
  114. package/skills/paper-write/templates/IEEEtran.cls +6347 -0
  115. package/skills/paper-write/templates/iclr2026.tex +84 -0
  116. package/skills/paper-write/templates/icml2025.tex +87 -0
  117. package/skills/paper-write/templates/ieee_conference.tex +89 -0
  118. package/skills/paper-write/templates/ieee_journal.tex +93 -0
  119. package/skills/paper-write/templates/math_commands.tex +48 -0
  120. package/skills/paper-write/templates/neurips2025.tex +80 -0
  121. package/skills/paper-writing/SKILL.md +916 -0
  122. package/skills/patent-novelty-check/SKILL.md +153 -0
  123. package/skills/patent-pipeline/SKILL.md +344 -0
  124. package/skills/patent-review/SKILL.md +203 -0
  125. package/skills/pixel-art/SKILL.md +137 -0
  126. package/skills/prior-art-search/SKILL.md +146 -0
  127. package/skills/proof-checker/SKILL.md +866 -0
  128. package/skills/proof-orchestrator/NOTICE.md +24 -0
  129. package/skills/proof-orchestrator/SKILL.md +254 -0
  130. package/skills/proof-orchestrator/references/audit-output-contract.md +126 -0
  131. package/skills/proof-orchestrator/references/deepseek-routing.md +74 -0
  132. package/skills/proof-orchestrator/references/dispatch-prompts.md +227 -0
  133. package/skills/proof-orchestrator/references/notation-audit.md +135 -0
  134. package/skills/proof-orchestrator/references/proof-audit-rubric.md +70 -0
  135. package/skills/proof-orchestrator/references/stress-tests.md +38 -0
  136. package/skills/proof-writer/SKILL.md +223 -0
  137. package/skills/qzcli/SKILL.md +324 -0
  138. package/skills/rebuttal/SKILL.md +376 -0
  139. package/skills/render-html/SKILL.md +316 -0
  140. package/skills/render-html/scripts/render_html.py +1006 -0
  141. package/skills/render-html/scripts/templates/academic.html +703 -0
  142. package/skills/render-html/scripts/templates/dashboard.html +333 -0
  143. package/skills/research-lit/SKILL.md +756 -0
  144. package/skills/research-pipeline/SKILL.md +384 -0
  145. package/skills/research-refine/SKILL.md +770 -0
  146. package/skills/research-refine-pipeline/SKILL.md +186 -0
  147. package/skills/research-review/SKILL.md +198 -0
  148. package/skills/research-wiki/SKILL.md +461 -0
  149. package/skills/resubmit-pipeline/SKILL.md +447 -0
  150. package/skills/result-to-claim/SKILL.md +311 -0
  151. package/skills/run-experiment/SKILL.md +313 -0
  152. package/skills/semantic-scholar/SKILL.md +236 -0
  153. package/skills/serverless-modal/SKILL.md +335 -0
  154. package/skills/shared-references/acceptance-gate.md +324 -0
  155. package/skills/shared-references/assurance-contract.md +248 -0
  156. package/skills/shared-references/capture-antipatterns.md +78 -0
  157. package/skills/shared-references/citation-discipline.md +583 -0
  158. package/skills/shared-references/compute-env-contract.md +163 -0
  159. package/skills/shared-references/effort-contract.md +183 -0
  160. package/skills/shared-references/evidence-precheck.md +65 -0
  161. package/skills/shared-references/experiment-integrity.md +49 -0
  162. package/skills/shared-references/external-cadence.md +326 -0
  163. package/skills/shared-references/fan-out-pattern.md +366 -0
  164. package/skills/shared-references/injection-hygiene.md +127 -0
  165. package/skills/shared-references/integration-contract.md +461 -0
  166. package/skills/shared-references/output-composition.md +93 -0
  167. package/skills/shared-references/output-language.md +45 -0
  168. package/skills/shared-references/output-manifest.md +49 -0
  169. package/skills/shared-references/output-versioning.md +111 -0
  170. package/skills/shared-references/patent-format-cn.md +199 -0
  171. package/skills/shared-references/patent-format-ep.md +173 -0
  172. package/skills/shared-references/patent-format-us.md +161 -0
  173. package/skills/shared-references/patent-writing-principles.md +197 -0
  174. package/skills/shared-references/prior-art-databases.md +141 -0
  175. package/skills/shared-references/resumable-runs.md +109 -0
  176. package/skills/shared-references/review-scope-limits.md +81 -0
  177. package/skills/shared-references/review-tracing.md +391 -0
  178. package/skills/shared-references/reviewer-independence.md +79 -0
  179. package/skills/shared-references/reviewer-routing.md +852 -0
  180. package/skills/shared-references/skill-governance.md +104 -0
  181. package/skills/shared-references/taste-calibration.md +85 -0
  182. package/skills/shared-references/venue-checklists.md +114 -0
  183. package/skills/shared-references/wiki-helper-resolution.md +134 -0
  184. package/skills/shared-references/writing-principles.md +525 -0
  185. package/skills/skills-codex/README.md +102 -0
  186. package/skills/skills-codex/README_CN.md +100 -0
  187. package/skills/skills-codex/ablation-planner/SKILL.md +126 -0
  188. package/skills/skills-codex/alphaxiv/SKILL.md +186 -0
  189. package/skills/skills-codex/analyze-results/SKILL.md +45 -0
  190. package/skills/skills-codex/arxiv/SKILL.md +210 -0
  191. package/skills/skills-codex/auto-paper-improvement-loop/SKILL.md +574 -0
  192. package/skills/skills-codex/auto-review-loop/SKILL.md +500 -0
  193. package/skills/skills-codex/auto-review-loop-llm/SKILL.md +247 -0
  194. package/skills/skills-codex/auto-review-loop-minimax/SKILL.md +290 -0
  195. package/skills/skills-codex/citation-audit/SKILL.md +504 -0
  196. package/skills/skills-codex/claims-drafting/SKILL.md +239 -0
  197. package/skills/skills-codex/comm-lit-review/SKILL.md +299 -0
  198. package/skills/skills-codex/comm-lit-review/references/domain-taxonomy.md +57 -0
  199. package/skills/skills-codex/comm-lit-review/references/output-template.md +37 -0
  200. package/skills/skills-codex/comm-lit-review/references/source-policy.md +99 -0
  201. package/skills/skills-codex/comm-lit-review/references/venue-tiering.md +112 -0
  202. package/skills/skills-codex/deepxiv/SKILL.md +142 -0
  203. package/skills/skills-codex/dse-loop/SKILL.md +285 -0
  204. package/skills/skills-codex/embodiment-description/SKILL.md +129 -0
  205. package/skills/skills-codex/exa-search/SKILL.md +192 -0
  206. package/skills/skills-codex/experiment-audit/SKILL.md +286 -0
  207. package/skills/skills-codex/experiment-bridge/SKILL.md +356 -0
  208. package/skills/skills-codex/experiment-plan/SKILL.md +249 -0
  209. package/skills/skills-codex/experiment-queue/SKILL.md +401 -0
  210. package/skills/skills-codex/feishu-notify/SKILL.md +155 -0
  211. package/skills/skills-codex/figure-description/SKILL.md +138 -0
  212. package/skills/skills-codex/figure-spec/SKILL.md +252 -0
  213. package/skills/skills-codex/formula-derivation/SKILL.md +280 -0
  214. package/skills/skills-codex/gemini-search/SKILL.md +205 -0
  215. package/skills/skills-codex/grant-proposal/SKILL.md +626 -0
  216. package/skills/skills-codex/idea-creator/SKILL.md +405 -0
  217. package/skills/skills-codex/idea-discovery/SKILL.md +475 -0
  218. package/skills/skills-codex/idea-discovery-robot/SKILL.md +362 -0
  219. package/skills/skills-codex/integrity-forensics/SKILL.md +106 -0
  220. package/skills/skills-codex/interview-cheatsheet/SKILL.md +245 -0
  221. package/skills/skills-codex/invention-structuring/SKILL.md +188 -0
  222. package/skills/skills-codex/jurisdiction-format/SKILL.md +192 -0
  223. package/skills/skills-codex/kill-argument/SKILL.md +403 -0
  224. package/skills/skills-codex/mermaid-diagram/SKILL.md +379 -0
  225. package/skills/skills-codex/meta-apply/SKILL.md +154 -0
  226. package/skills/skills-codex/meta-optimize/SKILL.md +348 -0
  227. package/skills/skills-codex/monitor-experiment/SKILL.md +98 -0
  228. package/skills/skills-codex/novelty-check/SKILL.md +89 -0
  229. package/skills/skills-codex/openalex/SKILL.md +228 -0
  230. package/skills/skills-codex/overleaf-sync/SKILL.md +220 -0
  231. package/skills/skills-codex/paper-claim-audit/SKILL.md +350 -0
  232. package/skills/skills-codex/paper-compile/SKILL.md +253 -0
  233. package/skills/skills-codex/paper-figure/SKILL.md +311 -0
  234. package/skills/skills-codex/paper-illustration/SKILL.md +690 -0
  235. package/skills/skills-codex/paper-illustration-image2/SKILL.md +383 -0
  236. package/skills/skills-codex/paper-illustration-image2/scripts/paper_illustration_image2.py +255 -0
  237. package/skills/skills-codex/paper-plan/SKILL.md +278 -0
  238. package/skills/skills-codex/paper-poster/SKILL.md +19 -0
  239. package/skills/skills-codex/paper-poster-html/SKILL.md +377 -0
  240. package/skills/skills-codex/paper-slides/SKILL.md +571 -0
  241. package/skills/skills-codex/paper-talk/SKILL.md +381 -0
  242. package/skills/skills-codex/paper-write/SKILL.md +411 -0
  243. package/skills/skills-codex/paper-write/templates/IEEEtran.bst +2409 -0
  244. package/skills/skills-codex/paper-write/templates/IEEEtran.cls +6347 -0
  245. package/skills/skills-codex/paper-write/templates/aaai2026.bst +1493 -0
  246. package/skills/skills-codex/paper-write/templates/aaai2026.sty +315 -0
  247. package/skills/skills-codex/paper-write/templates/aaai2026.tex +952 -0
  248. package/skills/skills-codex/paper-write/templates/acl.sty +312 -0
  249. package/skills/skills-codex/paper-write/templates/acl2026.tex +377 -0
  250. package/skills/skills-codex/paper-write/templates/acl_natbib.bst +1940 -0
  251. package/skills/skills-codex/paper-write/templates/acm.bst +3081 -0
  252. package/skills/skills-codex/paper-write/templates/acm_mm2026.tex +204 -0
  253. package/skills/skills-codex/paper-write/templates/acmart.cls +3520 -0
  254. package/skills/skills-codex/paper-write/templates/cvpr.bst +1448 -0
  255. package/skills/skills-codex/paper-write/templates/cvpr.sty +508 -0
  256. package/skills/skills-codex/paper-write/templates/cvpr2026.tex +63 -0
  257. package/skills/skills-codex/paper-write/templates/iclr2026.tex +84 -0
  258. package/skills/skills-codex/paper-write/templates/iclr2026_conference.bst +1440 -0
  259. package/skills/skills-codex/paper-write/templates/iclr2026_conference.sty +246 -0
  260. package/skills/skills-codex/paper-write/templates/icml2026.sty +767 -0
  261. package/skills/skills-codex/paper-write/templates/icml2026.tex +662 -0
  262. package/skills/skills-codex/paper-write/templates/ieee_conference.tex +89 -0
  263. package/skills/skills-codex/paper-write/templates/ieee_journal.tex +93 -0
  264. package/skills/skills-codex/paper-write/templates/math_commands.tex +48 -0
  265. package/skills/skills-codex/paper-write/templates/neurips2026.tex +493 -0
  266. package/skills/skills-codex/paper-write/templates/neurips_2026.sty +437 -0
  267. package/skills/skills-codex/paper-writing/SKILL.md +731 -0
  268. package/skills/skills-codex/patent-novelty-check/SKILL.md +153 -0
  269. package/skills/skills-codex/patent-pipeline/SKILL.md +344 -0
  270. package/skills/skills-codex/patent-review/SKILL.md +202 -0
  271. package/skills/skills-codex/pixel-art/SKILL.md +139 -0
  272. package/skills/skills-codex/prior-art-search/SKILL.md +146 -0
  273. package/skills/skills-codex/proof-checker/SKILL.md +554 -0
  274. package/skills/skills-codex/proof-orchestrator/SKILL.md +260 -0
  275. package/skills/skills-codex/proof-orchestrator/references/audit-output-contract.md +126 -0
  276. package/skills/skills-codex/proof-orchestrator/references/deepseek-routing.md +76 -0
  277. package/skills/skills-codex/proof-orchestrator/references/dispatch-prompts.md +227 -0
  278. package/skills/skills-codex/proof-orchestrator/references/notation-audit.md +135 -0
  279. package/skills/skills-codex/proof-orchestrator/references/proof-audit-rubric.md +70 -0
  280. package/skills/skills-codex/proof-orchestrator/references/stress-tests.md +38 -0
  281. package/skills/skills-codex/proof-writer/SKILL.md +222 -0
  282. package/skills/skills-codex/qzcli/SKILL.md +324 -0
  283. package/skills/skills-codex/rebuttal/SKILL.md +305 -0
  284. package/skills/skills-codex/render-html/SKILL.md +305 -0
  285. package/skills/skills-codex/render-html/scripts/__pycache__/render_html.cpython-314.pyc +0 -0
  286. package/skills/skills-codex/render-html/scripts/render_html.py +909 -0
  287. package/skills/skills-codex/render-html/scripts/templates/academic.html +342 -0
  288. package/skills/skills-codex/render-html/scripts/templates/dashboard.html +333 -0
  289. package/skills/skills-codex/research-lit/SKILL.md +464 -0
  290. package/skills/skills-codex/research-pipeline/SKILL.md +340 -0
  291. package/skills/skills-codex/research-refine/SKILL.md +721 -0
  292. package/skills/skills-codex/research-refine-pipeline/SKILL.md +186 -0
  293. package/skills/skills-codex/research-review/SKILL.md +135 -0
  294. package/skills/skills-codex/research-wiki/SKILL.md +421 -0
  295. package/skills/skills-codex/resubmit-pipeline/SKILL.md +444 -0
  296. package/skills/skills-codex/result-to-claim/SKILL.md +246 -0
  297. package/skills/skills-codex/run-experiment/SKILL.md +236 -0
  298. package/skills/skills-codex/semantic-scholar/SKILL.md +219 -0
  299. package/skills/skills-codex/serverless-modal/SKILL.md +335 -0
  300. package/skills/skills-codex/shared-references/acceptance-gate.md +336 -0
  301. package/skills/skills-codex/shared-references/assurance-contract.md +139 -0
  302. package/skills/skills-codex/shared-references/capture-antipatterns.md +84 -0
  303. package/skills/skills-codex/shared-references/citation-discipline.md +452 -0
  304. package/skills/skills-codex/shared-references/compute-env-contract.md +163 -0
  305. package/skills/skills-codex/shared-references/effort-contract.md +143 -0
  306. package/skills/skills-codex/shared-references/evidence-precheck.md +73 -0
  307. package/skills/skills-codex/shared-references/experiment-integrity.md +49 -0
  308. package/skills/skills-codex/shared-references/external-cadence.md +334 -0
  309. package/skills/skills-codex/shared-references/fan-out-pattern.md +375 -0
  310. package/skills/skills-codex/shared-references/injection-hygiene.md +132 -0
  311. package/skills/skills-codex/shared-references/integration-contract.md +372 -0
  312. package/skills/skills-codex/shared-references/output-composition.md +98 -0
  313. package/skills/skills-codex/shared-references/output-language.md +45 -0
  314. package/skills/skills-codex/shared-references/output-manifest.md +40 -0
  315. package/skills/skills-codex/shared-references/output-versioning.md +111 -0
  316. package/skills/skills-codex/shared-references/patent-format-cn.md +199 -0
  317. package/skills/skills-codex/shared-references/patent-format-ep.md +173 -0
  318. package/skills/skills-codex/shared-references/patent-format-us.md +161 -0
  319. package/skills/skills-codex/shared-references/patent-writing-principles.md +197 -0
  320. package/skills/skills-codex/shared-references/prior-art-databases.md +141 -0
  321. package/skills/skills-codex/shared-references/resumable-runs.md +125 -0
  322. package/skills/skills-codex/shared-references/review-scope-limits.md +81 -0
  323. package/skills/skills-codex/shared-references/review-tracing.md +144 -0
  324. package/skills/skills-codex/shared-references/reviewer-independence.md +66 -0
  325. package/skills/skills-codex/shared-references/reviewer-routing.md +128 -0
  326. package/skills/skills-codex/shared-references/skill-governance.md +119 -0
  327. package/skills/skills-codex/shared-references/taste-calibration.md +90 -0
  328. package/skills/skills-codex/shared-references/venue-checklists.md +73 -0
  329. package/skills/skills-codex/shared-references/wiki-helper-resolution.md +69 -0
  330. package/skills/skills-codex/shared-references/writing-principles.md +525 -0
  331. package/skills/skills-codex/slides-polish/SKILL.md +563 -0
  332. package/skills/skills-codex/specification-writing/SKILL.md +211 -0
  333. package/skills/skills-codex/system-profile/SKILL.md +103 -0
  334. package/skills/skills-codex/training-check/SKILL.md +83 -0
  335. package/skills/skills-codex/vast-gpu/SKILL.md +394 -0
  336. package/skills/skills-codex/web-debug-search/SKILL.md +334 -0
  337. package/skills/skills-codex/wiki-enrich/SKILL.md +255 -0
  338. package/skills/skills-codex/writing-systems-papers/SKILL.md +184 -0
  339. package/skills/skills-codex-claude-review/README.md +79 -0
  340. package/skills/skills-codex-claude-review/README_CN.md +78 -0
  341. package/skills/skills-codex-claude-review/auto-paper-improvement-loop/SKILL.md +581 -0
  342. package/skills/skills-codex-claude-review/auto-review-loop/SKILL.md +510 -0
  343. package/skills/skills-codex-claude-review/novelty-check/SKILL.md +102 -0
  344. package/skills/skills-codex-claude-review/paper-figure/SKILL.md +319 -0
  345. package/skills/skills-codex-claude-review/paper-plan/SKILL.md +287 -0
  346. package/skills/skills-codex-claude-review/paper-write/SKILL.md +420 -0
  347. package/skills/skills-codex-claude-review/research-refine/SKILL.md +732 -0
  348. package/skills/skills-codex-claude-review/research-review/SKILL.md +149 -0
  349. package/skills/skills-codex-gemini-review/README.md +176 -0
  350. package/skills/skills-codex-gemini-review/README_CN.md +175 -0
  351. package/skills/skills-codex-gemini-review/auto-paper-improvement-loop/SKILL.md +331 -0
  352. package/skills/skills-codex-gemini-review/auto-review-loop/SKILL.md +304 -0
  353. package/skills/skills-codex-gemini-review/grant-proposal/SKILL.md +630 -0
  354. package/skills/skills-codex-gemini-review/idea-creator/SKILL.md +263 -0
  355. package/skills/skills-codex-gemini-review/idea-discovery/SKILL.md +275 -0
  356. package/skills/skills-codex-gemini-review/idea-discovery-robot/SKILL.md +365 -0
  357. package/skills/skills-codex-gemini-review/novelty-check/SKILL.md +92 -0
  358. package/skills/skills-codex-gemini-review/paper-figure/SKILL.md +289 -0
  359. package/skills/skills-codex-gemini-review/paper-plan/SKILL.md +265 -0
  360. package/skills/skills-codex-gemini-review/paper-poster-html/SKILL.md +102 -0
  361. package/skills/skills-codex-gemini-review/paper-slides/SKILL.md +582 -0
  362. package/skills/skills-codex-gemini-review/paper-write/SKILL.md +346 -0
  363. package/skills/skills-codex-gemini-review/paper-writing/SKILL.md +312 -0
  364. package/skills/skills-codex-gemini-review/research-refine/SKILL.md +674 -0
  365. package/skills/skills-codex-gemini-review/research-review/SKILL.md +112 -0
  366. package/skills/slides-polish/SKILL.md +565 -0
  367. package/skills/specification-writing/SKILL.md +211 -0
  368. package/skills/system-profile/SKILL.md +103 -0
  369. package/skills/training-check/SKILL.md +132 -0
  370. package/skills/vast-gpu/SKILL.md +394 -0
  371. package/skills/web-debug-search/SKILL.md +334 -0
  372. package/skills/wiki-enrich/SKILL.md +257 -0
  373. package/skills/writing-systems-papers/SKILL.md +184 -0
  374. package/templates/CLAUDE_MD_TEMPLATE.md +29 -0
  375. package/templates/EXPERIMENT_LOG_TEMPLATE.md +47 -0
  376. package/templates/EXPERIMENT_PLAN_TEMPLATE.md +51 -0
  377. package/templates/EXPERIMENT_PLAN_TEMPLATE_CN.md +53 -0
  378. package/templates/FINDINGS_TEMPLATE.md +52 -0
  379. package/templates/IDEA_CANDIDATES_TEMPLATE.md +47 -0
  380. package/templates/IDEA_CANDIDATES_TEMPLATE_CN.md +47 -0
  381. package/templates/INVENTION_BRIEF_TEMPLATE.md +87 -0
  382. package/templates/MANIFEST_TEMPLATE.md +7 -0
  383. package/templates/NARRATIVE_REPORT_TEMPLATE.md +49 -0
  384. package/templates/PAPER_PLAN_TEMPLATE.md +47 -0
  385. package/templates/PATENT_CLAIMS_TEMPLATE.md +78 -0
  386. package/templates/PATENT_SPECIFICATION_TEMPLATE.md +68 -0
  387. package/templates/README.md +57 -0
  388. package/templates/RESEARCH_BRIEF_TEMPLATE.md +35 -0
  389. package/templates/RESEARCH_BRIEF_TEMPLATE_CN.md +41 -0
  390. package/templates/RESEARCH_CONTRACT_TEMPLATE.md +60 -0
  391. package/templates/claude-hooks/corpus_write_guard.json +16 -0
  392. package/templates/claude-hooks/corpus_write_guard.py +85 -0
  393. package/templates/claude-hooks/meta_logging.json +74 -0
  394. package/templates/gitignore-trace.txt +3 -0
  395. package/tools/__pycache__/check_skills_inventory.cpython-314.pyc +0 -0
  396. package/tools/arxiv_fetch.py +311 -0
  397. package/tools/capture_filter.py +126 -0
  398. package/tools/check_skills_inventory.py +273 -0
  399. package/tools/convert_skills_to_llm_chat.py +282 -0
  400. package/tools/copilot_native_evidence.py +818 -0
  401. package/tools/deepxiv_fetch.py +213 -0
  402. package/tools/evidence_check.py +212 -0
  403. package/tools/exa_search.py +425 -0
  404. package/tools/experiment_queue/README.md +118 -0
  405. package/tools/experiment_queue/build_manifest.py +44 -0
  406. package/tools/experiment_queue/queue_manager.py +44 -0
  407. package/tools/extract_paper_style.py +560 -0
  408. package/tools/figure_renderer.py +69 -0
  409. package/tools/forensics_gate.py +669 -0
  410. package/tools/generate_codex_claude_review_overrides.py +299 -0
  411. package/tools/idea_discovery_gate.py +256 -0
  412. package/tools/install_aris.ps1 +1372 -0
  413. package/tools/install_aris.sh +1370 -0
  414. package/tools/install_aris_codex.sh +1023 -0
  415. package/tools/install_aris_copilot.sh +1052 -0
  416. package/tools/iteration_log.py +143 -0
  417. package/tools/lint_skills_helpers.sh +84 -0
  418. package/tools/meta_opt/check_ready.sh +80 -0
  419. package/tools/meta_opt/log_event.sh +91 -0
  420. package/tools/meta_opt/trigger_eval.py +280 -0
  421. package/tools/meta_opt/trigger_evals.sample.json +28 -0
  422. package/tools/openalex_fetch.py +326 -0
  423. package/tools/overleaf_audit.sh +104 -0
  424. package/tools/overleaf_setup.sh +150 -0
  425. package/tools/paper_illustration_image2.py +62 -0
  426. package/tools/provenance.py +294 -0
  427. package/tools/research_wiki.py +1720 -0
  428. package/tools/review_gate.py +502 -0
  429. package/tools/run_state.py +399 -0
  430. package/tools/save_trace.sh +477 -0
  431. package/tools/semantic_scholar_fetch.py +438 -0
  432. package/tools/skill-groups.tsv +116 -0
  433. package/tools/skill_picker.py +238 -0
  434. package/tools/smart_update.ps1 +521 -0
  435. package/tools/smart_update.sh +591 -0
  436. package/tools/smart_update_codex.sh +419 -0
  437. package/tools/smart_update_copilot.sh +605 -0
  438. package/tools/threat_scan.py +222 -0
  439. package/tools/verify_paper_audits.sh +487 -0
  440. package/tools/verify_papers.py +613 -0
  441. package/tools/verify_wiki_coverage.sh +176 -0
  442. package/tools/watchdog.py +485 -0
@@ -0,0 +1,1448 @@
1
+ %% File: `abbrvnat.bst'
2
+ %% A modification of `abbrv.bst' for use with natbib package
3
+ %%
4
+ %% Copyright 1993-2007 Patrick W Daly
5
+ %% Max-Planck-Institut f\"ur Sonnensystemforschung
6
+ %% Max-Planck-Str. 2
7
+ %% D-37191 Katlenburg-Lindau
8
+ %% Germany
9
+ %% E-mail: daly@mps.mpg.de
10
+ %%
11
+ %% This program can be redistributed and/or modified under the terms
12
+ %% of the LaTeX Project Public License Distributed from CTAN
13
+ %% archives in directory macros/latex/base/lppl.txt; either
14
+ %% version 1 of the License, or any later version.
15
+ %%
16
+ % Version and source file information:
17
+ % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)]
18
+ %
19
+ % BibTeX `plainnat' family
20
+ % version 0.99b for BibTeX versions 0.99a or later,
21
+ % for LaTeX versions 2.09 and 2e.
22
+ %
23
+ % For use with the `natbib.sty' package; emulates the corresponding
24
+ % member of the `plain' family, but with author-year citations.
25
+ %
26
+ % With version 6.0 of `natbib.sty', it may also be used for numerical
27
+ % citations, while retaining the commands \citeauthor, \citefullauthor,
28
+ % and \citeyear to print the corresponding information.
29
+ %
30
+ % For version 7.0 of `natbib.sty', the KEY field replaces missing
31
+ % authors/editors, and the date is left blank in \bibitem.
32
+ %
33
+ % Includes field EID for the sequence/citation number of electronic journals
34
+ % which is used instead of page numbers.
35
+ %
36
+ % Includes fields ISBN and ISSN.
37
+ %
38
+ % Includes field URL for Internet addresses.
39
+ %
40
+ % Includes field DOI for Digital Object Idenfifiers.
41
+ %
42
+ % Works best with the url.sty package of Donald Arseneau.
43
+ %
44
+ % Works with identical authors and year are further sorted by
45
+ % citation key, to preserve any natural sequence.
46
+ %
47
+ ENTRY
48
+ { address
49
+ author
50
+ booktitle
51
+ chapter
52
+ doi
53
+ eid
54
+ edition
55
+ editor
56
+ howpublished
57
+ institution
58
+ isbn
59
+ issn
60
+ journal
61
+ key
62
+ month
63
+ note
64
+ number
65
+ organization
66
+ pages
67
+ publisher
68
+ school
69
+ series
70
+ title
71
+ type
72
+ url
73
+ volume
74
+ year
75
+ }
76
+ {}
77
+ { label extra.label sort.label short.list }
78
+
79
+ INTEGERS { output.state before.all mid.sentence after.sentence after.block }
80
+
81
+ FUNCTION {init.state.consts}
82
+ { #0 'before.all :=
83
+ #1 'mid.sentence :=
84
+ #2 'after.sentence :=
85
+ #3 'after.block :=
86
+ }
87
+
88
+ STRINGS { s t }
89
+
90
+ FUNCTION {output.nonnull}
91
+ { 's :=
92
+ output.state mid.sentence =
93
+ { ", " * write$ }
94
+ { output.state after.block =
95
+ { add.period$ write$
96
+ newline$
97
+ "\newblock " write$
98
+ }
99
+ { output.state before.all =
100
+ 'write$
101
+ { add.period$ " " * write$ }
102
+ if$
103
+ }
104
+ if$
105
+ mid.sentence 'output.state :=
106
+ }
107
+ if$
108
+ s
109
+ }
110
+
111
+ FUNCTION {output}
112
+ { duplicate$ empty$
113
+ 'pop$
114
+ 'output.nonnull
115
+ if$
116
+ }
117
+
118
+ FUNCTION {output.check}
119
+ { 't :=
120
+ duplicate$ empty$
121
+ { pop$ "empty " t * " in " * cite$ * warning$ }
122
+ 'output.nonnull
123
+ if$
124
+ }
125
+
126
+ FUNCTION {fin.entry}
127
+ { add.period$
128
+ write$
129
+ newline$
130
+ }
131
+
132
+ FUNCTION {new.block}
133
+ { output.state before.all =
134
+ 'skip$
135
+ { after.block 'output.state := }
136
+ if$
137
+ }
138
+
139
+ FUNCTION {new.sentence}
140
+ { output.state after.block =
141
+ 'skip$
142
+ { output.state before.all =
143
+ 'skip$
144
+ { after.sentence 'output.state := }
145
+ if$
146
+ }
147
+ if$
148
+ }
149
+
150
+ FUNCTION {not}
151
+ { { #0 }
152
+ { #1 }
153
+ if$
154
+ }
155
+
156
+ FUNCTION {and}
157
+ { 'skip$
158
+ { pop$ #0 }
159
+ if$
160
+ }
161
+
162
+ FUNCTION {or}
163
+ { { pop$ #1 }
164
+ 'skip$
165
+ if$
166
+ }
167
+
168
+ FUNCTION {new.block.checka}
169
+ { empty$
170
+ 'skip$
171
+ 'new.block
172
+ if$
173
+ }
174
+
175
+ FUNCTION {new.block.checkb}
176
+ { empty$
177
+ swap$ empty$
178
+ and
179
+ 'skip$
180
+ 'new.block
181
+ if$
182
+ }
183
+
184
+ FUNCTION {new.sentence.checka}
185
+ { empty$
186
+ 'skip$
187
+ 'new.sentence
188
+ if$
189
+ }
190
+
191
+ FUNCTION {new.sentence.checkb}
192
+ { empty$
193
+ swap$ empty$
194
+ and
195
+ 'skip$
196
+ 'new.sentence
197
+ if$
198
+ }
199
+
200
+ FUNCTION {field.or.null}
201
+ { duplicate$ empty$
202
+ { pop$ "" }
203
+ 'skip$
204
+ if$
205
+ }
206
+
207
+ FUNCTION {emphasize}
208
+ { duplicate$ empty$
209
+ { pop$ "" }
210
+ { "\emph{" swap$ * "}" * }
211
+ if$
212
+ }
213
+
214
+ INTEGERS { nameptr namesleft numnames }
215
+
216
+ FUNCTION {format.names}
217
+ { 's :=
218
+ #1 'nameptr :=
219
+ s num.names$ 'numnames :=
220
+ numnames 'namesleft :=
221
+ { namesleft #0 > }
222
+ % Formerly { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
223
+ { s nameptr "{ff }{vv }{ll}{, jj}" format.name$ 't :=
224
+ nameptr #1 >
225
+ { namesleft #1 >
226
+ { ", " * t * }
227
+ { numnames #2 >
228
+ { "," * }
229
+ 'skip$
230
+ if$
231
+ t "others" =
232
+ { " et~al." * }
233
+ { " and " * t * }
234
+ if$
235
+ }
236
+ if$
237
+ }
238
+ 't
239
+ if$
240
+ nameptr #1 + 'nameptr :=
241
+ namesleft #1 - 'namesleft :=
242
+ }
243
+ while$
244
+ }
245
+
246
+ FUNCTION {format.key}
247
+ { empty$
248
+ { key field.or.null }
249
+ { "" }
250
+ if$
251
+ }
252
+
253
+ FUNCTION {format.authors}
254
+ { author empty$
255
+ { "" }
256
+ { author format.names }
257
+ if$
258
+ }
259
+
260
+ FUNCTION {format.editors}
261
+ { editor empty$
262
+ { "" }
263
+ { editor format.names
264
+ editor num.names$ #1 >
265
+ { ", editors" * }
266
+ { ", editor" * }
267
+ if$
268
+ }
269
+ if$
270
+ }
271
+
272
+ FUNCTION {format.isbn}
273
+ { isbn empty$
274
+ { "" }
275
+ % { new.block "ISBN " isbn * }
276
+ { "" }
277
+ if$
278
+ }
279
+
280
+ FUNCTION {format.issn}
281
+ { issn empty$
282
+ { "" }
283
+ % { new.block "ISSN " issn * }
284
+ { "" }
285
+ if$
286
+ }
287
+
288
+ FUNCTION {format.url}
289
+ { url empty$
290
+ { "" }
291
+ % { new.block "URL \url{" url * "}" * }
292
+ { "" }
293
+ if$
294
+ }
295
+
296
+ FUNCTION {format.doi}
297
+ { doi empty$
298
+ { "" }
299
+ % { new.block "\doi{" doi * "}" * }
300
+ { "" }
301
+ if$
302
+ }
303
+
304
+ FUNCTION {format.title}
305
+ { title empty$
306
+ { "" }
307
+ { title "t" change.case$ }
308
+ if$
309
+ }
310
+
311
+ FUNCTION {format.full.names}
312
+ {'s :=
313
+ #1 'nameptr :=
314
+ s num.names$ 'numnames :=
315
+ numnames 'namesleft :=
316
+ { namesleft #0 > }
317
+ { s nameptr
318
+ "{vv~}{ll}" format.name$ 't :=
319
+ nameptr #1 >
320
+ {
321
+ namesleft #1 >
322
+ { ", " * t * }
323
+ {
324
+ numnames #2 >
325
+ { "," * }
326
+ 'skip$
327
+ if$
328
+ t "others" =
329
+ { " et~al." * }
330
+ { " and " * t * }
331
+ if$
332
+ }
333
+ if$
334
+ }
335
+ 't
336
+ if$
337
+ nameptr #1 + 'nameptr :=
338
+ namesleft #1 - 'namesleft :=
339
+ }
340
+ while$
341
+ }
342
+
343
+ FUNCTION {author.editor.full}
344
+ { author empty$
345
+ { editor empty$
346
+ { "" }
347
+ { editor format.full.names }
348
+ if$
349
+ }
350
+ { author format.full.names }
351
+ if$
352
+ }
353
+
354
+ FUNCTION {author.full}
355
+ { author empty$
356
+ { "" }
357
+ { author format.full.names }
358
+ if$
359
+ }
360
+
361
+ FUNCTION {editor.full}
362
+ { editor empty$
363
+ { "" }
364
+ { editor format.full.names }
365
+ if$
366
+ }
367
+
368
+ FUNCTION {make.full.names}
369
+ { type$ "book" =
370
+ type$ "inbook" =
371
+ or
372
+ 'author.editor.full
373
+ { type$ "proceedings" =
374
+ 'editor.full
375
+ 'author.full
376
+ if$
377
+ }
378
+ if$
379
+ }
380
+
381
+ FUNCTION {output.bibitem}
382
+ { newline$
383
+ "\bibitem[" write$
384
+ label write$
385
+ ")" make.full.names duplicate$ short.list =
386
+ { pop$ }
387
+ { * }
388
+ if$
389
+ "]{" * write$
390
+ cite$ write$
391
+ "}" write$
392
+ newline$
393
+ ""
394
+ before.all 'output.state :=
395
+ }
396
+
397
+ FUNCTION {n.dashify}
398
+ { 't :=
399
+ ""
400
+ { t empty$ not }
401
+ { t #1 #1 substring$ "-" =
402
+ { t #1 #2 substring$ "--" = not
403
+ { "--" *
404
+ t #2 global.max$ substring$ 't :=
405
+ }
406
+ { { t #1 #1 substring$ "-" = }
407
+ { "-" *
408
+ t #2 global.max$ substring$ 't :=
409
+ }
410
+ while$
411
+ }
412
+ if$
413
+ }
414
+ { t #1 #1 substring$ *
415
+ t #2 global.max$ substring$ 't :=
416
+ }
417
+ if$
418
+ }
419
+ while$
420
+ }
421
+
422
+ FUNCTION {format.date}
423
+ { year duplicate$ empty$
424
+ { "empty year in " cite$ * warning$
425
+ pop$ "" }
426
+ 'skip$
427
+ if$
428
+ %% CR: Leave out months.
429
+ % month empty$
430
+ % 'skip$
431
+ % { month
432
+ % " " * swap$ *
433
+ % }
434
+ % if$
435
+ extra.label *
436
+ }
437
+
438
+ FUNCTION {format.btitle}
439
+ { title emphasize
440
+ }
441
+
442
+ FUNCTION {tie.or.space.connect}
443
+ { duplicate$ text.length$ #3 <
444
+ { "~" }
445
+ { " " }
446
+ if$
447
+ swap$ * *
448
+ }
449
+
450
+ FUNCTION {either.or.check}
451
+ { empty$
452
+ 'pop$
453
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
454
+ if$
455
+ }
456
+
457
+ FUNCTION {format.bvolume}
458
+ { volume empty$
459
+ { "" }
460
+ %% CR: Don't show "volume 1234 of LNCS" etc.
461
+ % { "volume" volume tie.or.space.connect
462
+ % series empty$
463
+ % 'skip$
464
+ % { " of " * series emphasize * }
465
+ % if$
466
+ % "volume and number" number either.or.check
467
+ % }
468
+ { "" }
469
+ if$
470
+ }
471
+
472
+ FUNCTION {format.number.series}
473
+ { volume empty$
474
+ { number empty$
475
+ %% CR: Leave out series information.
476
+ % { series field.or.null }
477
+ { "" }
478
+ { output.state mid.sentence =
479
+ { "number" }
480
+ { "Number" }
481
+ if$
482
+ number tie.or.space.connect
483
+ series empty$
484
+ { "there's a number but no series in " cite$ * warning$ }
485
+ { " in " * series * }
486
+ if$
487
+ }
488
+ if$
489
+ }
490
+ { "" }
491
+ if$
492
+ }
493
+
494
+ FUNCTION {format.edition}
495
+ { edition empty$
496
+ { "" }
497
+ { output.state mid.sentence =
498
+ { edition "l" change.case$ " edition" * }
499
+ { edition "t" change.case$ " edition" * }
500
+ if$
501
+ }
502
+ if$
503
+ }
504
+
505
+ INTEGERS { multiresult }
506
+
507
+ FUNCTION {multi.page.check}
508
+ { 't :=
509
+ #0 'multiresult :=
510
+ { multiresult not
511
+ t empty$ not
512
+ and
513
+ }
514
+ { t #1 #1 substring$
515
+ duplicate$ "-" =
516
+ swap$ duplicate$ "," =
517
+ swap$ "+" =
518
+ or or
519
+ { #1 'multiresult := }
520
+ { t #2 global.max$ substring$ 't := }
521
+ if$
522
+ }
523
+ while$
524
+ multiresult
525
+ }
526
+
527
+ FUNCTION {format.pages}
528
+ { pages empty$
529
+ { "" }
530
+ { pages multi.page.check
531
+ { "pages" pages n.dashify tie.or.space.connect }
532
+ { "page" pages tie.or.space.connect }
533
+ if$
534
+ }
535
+ if$
536
+ }
537
+
538
+ FUNCTION {format.eid}
539
+ { eid empty$
540
+ { "" }
541
+ { "art." eid tie.or.space.connect }
542
+ if$
543
+ }
544
+
545
+ FUNCTION {format.vol.num.pages}
546
+ { volume field.or.null
547
+ number empty$
548
+ 'skip$
549
+ { "\penalty0 (" number * ")" * *
550
+ volume empty$
551
+ { "there's a number but no volume in " cite$ * warning$ }
552
+ 'skip$
553
+ if$
554
+ }
555
+ if$
556
+ pages empty$
557
+ 'skip$
558
+ { duplicate$ empty$
559
+ { pop$ format.pages }
560
+ { ":\penalty0 " * pages n.dashify * }
561
+ if$
562
+ }
563
+ if$
564
+ }
565
+
566
+ FUNCTION {format.vol.num.eid}
567
+ { volume field.or.null
568
+ number empty$
569
+ 'skip$
570
+ { "\penalty0 (" number * ")" * *
571
+ volume empty$
572
+ { "there's a number but no volume in " cite$ * warning$ }
573
+ 'skip$
574
+ if$
575
+ }
576
+ if$
577
+ eid empty$
578
+ 'skip$
579
+ { duplicate$ empty$
580
+ { pop$ format.eid }
581
+ { ":\penalty0 " * eid * }
582
+ if$
583
+ }
584
+ if$
585
+ }
586
+
587
+ FUNCTION {format.chapter.pages}
588
+ { chapter empty$
589
+ 'format.pages
590
+ { type empty$
591
+ { "chapter" }
592
+ { type "l" change.case$ }
593
+ if$
594
+ chapter tie.or.space.connect
595
+ pages empty$
596
+ 'skip$
597
+ { ", " * format.pages * }
598
+ if$
599
+ }
600
+ if$
601
+ }
602
+
603
+ FUNCTION {format.in.ed.booktitle}
604
+ { booktitle empty$
605
+ { "" }
606
+ %% CR: Leave out editors even if the information is available.
607
+ % { editor empty$
608
+ % { "In " booktitle emphasize * }
609
+ % { "In " format.editors * ", " * booktitle emphasize * }
610
+ % if$
611
+ % }
612
+ { "In " booktitle emphasize * }
613
+ if$
614
+ }
615
+
616
+ FUNCTION {empty.misc.check}
617
+ { author empty$ title empty$ howpublished empty$
618
+ month empty$ year empty$ note empty$
619
+ and and and and and
620
+ key empty$ not and
621
+ { "all relevant fields are empty in " cite$ * warning$ }
622
+ 'skip$
623
+ if$
624
+ }
625
+
626
+ FUNCTION {format.thesis.type}
627
+ { type empty$
628
+ 'skip$
629
+ { pop$
630
+ type "t" change.case$
631
+ }
632
+ if$
633
+ }
634
+
635
+ FUNCTION {format.tr.number}
636
+ { type empty$
637
+ { "Technical Report" }
638
+ 'type
639
+ if$
640
+ number empty$
641
+ { "t" change.case$ }
642
+ { number tie.or.space.connect }
643
+ if$
644
+ }
645
+
646
+ FUNCTION {format.article.crossref}
647
+ { key empty$
648
+ { journal empty$
649
+ { "need key or journal for " cite$ * " to crossref " * crossref *
650
+ warning$
651
+ ""
652
+ }
653
+ { "In \emph{" journal * "}" * }
654
+ if$
655
+ }
656
+ { "In " }
657
+ if$
658
+ " \citet{" * crossref * "}" *
659
+ }
660
+
661
+ FUNCTION {format.book.crossref}
662
+ { volume empty$
663
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
664
+ "In "
665
+ }
666
+ { "Volume" volume tie.or.space.connect
667
+ " of " *
668
+ }
669
+ if$
670
+ editor empty$
671
+ editor field.or.null author field.or.null =
672
+ or
673
+ { key empty$
674
+ { series empty$
675
+ { "need editor, key, or series for " cite$ * " to crossref " *
676
+ crossref * warning$
677
+ "" *
678
+ }
679
+ { "\emph{" * series * "}" * }
680
+ if$
681
+ }
682
+ 'skip$
683
+ if$
684
+ }
685
+ 'skip$
686
+ if$
687
+ " \citet{" * crossref * "}" *
688
+ }
689
+
690
+ FUNCTION {format.incoll.inproc.crossref}
691
+ { editor empty$
692
+ editor field.or.null author field.or.null =
693
+ or
694
+ { key empty$
695
+ { booktitle empty$
696
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
697
+ crossref * warning$
698
+ ""
699
+ }
700
+ { "In \emph{" booktitle * "}" * }
701
+ if$
702
+ }
703
+ { "In " }
704
+ if$
705
+ }
706
+ { "In " }
707
+ if$
708
+ " \citet{" * crossref * "}" *
709
+ }
710
+
711
+ FUNCTION {article}
712
+ { output.bibitem
713
+ format.authors "author" output.check
714
+ author format.key output
715
+ new.block
716
+ format.title "title" output.check
717
+ new.block
718
+ crossref missing$
719
+ { journal emphasize "journal" output.check
720
+ eid empty$
721
+ { format.vol.num.pages output }
722
+ { format.vol.num.eid output }
723
+ if$
724
+ format.date "year" output.check
725
+ }
726
+ { format.article.crossref output.nonnull
727
+ eid empty$
728
+ { format.pages output }
729
+ { format.eid output }
730
+ if$
731
+ }
732
+ if$
733
+ format.issn output
734
+ format.doi output
735
+ format.url output
736
+ new.block
737
+ note output
738
+ fin.entry
739
+ }
740
+
741
+ FUNCTION {book}
742
+ { output.bibitem
743
+ author empty$
744
+ { format.editors "author and editor" output.check
745
+ editor format.key output
746
+ }
747
+ { format.authors output.nonnull
748
+ crossref missing$
749
+ { "author and editor" editor either.or.check }
750
+ 'skip$
751
+ if$
752
+ }
753
+ if$
754
+ new.block
755
+ format.btitle "title" output.check
756
+ crossref missing$
757
+ { format.bvolume output
758
+ new.block
759
+ format.number.series output
760
+ new.sentence
761
+ publisher "publisher" output.check
762
+ address output
763
+ }
764
+ { new.block
765
+ format.book.crossref output.nonnull
766
+ }
767
+ if$
768
+ format.edition output
769
+ format.date "year" output.check
770
+ format.isbn output
771
+ format.doi output
772
+ format.url output
773
+ new.block
774
+ note output
775
+ fin.entry
776
+ }
777
+
778
+ FUNCTION {booklet}
779
+ { output.bibitem
780
+ format.authors output
781
+ author format.key output
782
+ new.block
783
+ format.title "title" output.check
784
+ howpublished address new.block.checkb
785
+ howpublished output
786
+ address output
787
+ format.date output
788
+ format.isbn output
789
+ format.doi output
790
+ format.url output
791
+ new.block
792
+ note output
793
+ fin.entry
794
+ }
795
+
796
+ FUNCTION {inbook}
797
+ { output.bibitem
798
+ author empty$
799
+ { format.editors "author and editor" output.check
800
+ editor format.key output
801
+ }
802
+ { format.authors output.nonnull
803
+ crossref missing$
804
+ { "author and editor" editor either.or.check }
805
+ 'skip$
806
+ if$
807
+ }
808
+ if$
809
+ new.block
810
+ format.btitle "title" output.check
811
+ crossref missing$
812
+ { format.bvolume output
813
+ format.chapter.pages "chapter and pages" output.check
814
+ new.block
815
+ format.number.series output
816
+ new.sentence
817
+ publisher "publisher" output.check
818
+ address output
819
+ }
820
+ { format.chapter.pages "chapter and pages" output.check
821
+ new.block
822
+ format.book.crossref output.nonnull
823
+ }
824
+ if$
825
+ format.edition output
826
+ format.date "year" output.check
827
+ format.isbn output
828
+ format.doi output
829
+ format.url output
830
+ new.block
831
+ note output
832
+ fin.entry
833
+ }
834
+
835
+ FUNCTION {incollection}
836
+ { output.bibitem
837
+ format.authors "author" output.check
838
+ author format.key output
839
+ new.block
840
+ format.title "title" output.check
841
+ new.block
842
+ crossref missing$
843
+ { format.in.ed.booktitle "booktitle" output.check
844
+ format.bvolume output
845
+ format.number.series output
846
+ format.chapter.pages output
847
+ new.sentence
848
+ publisher "publisher" output.check
849
+ address output
850
+ format.edition output
851
+ format.date "year" output.check
852
+ }
853
+ { format.incoll.inproc.crossref output.nonnull
854
+ format.chapter.pages output
855
+ }
856
+ if$
857
+ format.isbn output
858
+ format.doi output
859
+ format.url output
860
+ new.block
861
+ note output
862
+ fin.entry
863
+ }
864
+
865
+ FUNCTION {inproceedings}
866
+ { output.bibitem
867
+ format.authors "author" output.check
868
+ author format.key output
869
+ new.block
870
+ format.title "title" output.check
871
+ new.block
872
+ crossref missing$
873
+ { format.in.ed.booktitle "booktitle" output.check
874
+ format.bvolume output
875
+ format.number.series output
876
+ format.pages output
877
+ address empty$
878
+ { organization publisher new.sentence.checkb
879
+ organization output
880
+ publisher output
881
+ format.date "year" output.check
882
+ }
883
+ { address output.nonnull
884
+ format.date "year" output.check
885
+ new.sentence
886
+ organization output
887
+ publisher output
888
+ }
889
+ if$
890
+ }
891
+ { format.incoll.inproc.crossref output.nonnull
892
+ format.pages output
893
+ }
894
+ if$
895
+ format.isbn output
896
+ format.doi output
897
+ format.url output
898
+ new.block
899
+ note output
900
+ fin.entry
901
+ }
902
+
903
+ FUNCTION {conference} { inproceedings }
904
+
905
+ FUNCTION {manual}
906
+ { output.bibitem
907
+ format.authors output
908
+ author format.key output
909
+ new.block
910
+ format.btitle "title" output.check
911
+ organization address new.block.checkb
912
+ organization output
913
+ address output
914
+ format.edition output
915
+ format.date output
916
+ format.url output
917
+ new.block
918
+ note output
919
+ fin.entry
920
+ }
921
+
922
+ FUNCTION {mastersthesis}
923
+ { output.bibitem
924
+ format.authors "author" output.check
925
+ author format.key output
926
+ new.block
927
+ format.title "title" output.check
928
+ new.block
929
+ "Master's thesis" format.thesis.type output.nonnull
930
+ school "school" output.check
931
+ address output
932
+ format.date "year" output.check
933
+ format.url output
934
+ new.block
935
+ note output
936
+ fin.entry
937
+ }
938
+
939
+ FUNCTION {misc}
940
+ { output.bibitem
941
+ format.authors output
942
+ author format.key output
943
+ title howpublished new.block.checkb
944
+ format.title output
945
+ howpublished new.block.checka
946
+ howpublished output
947
+ format.date output
948
+ format.issn output
949
+ format.url output
950
+ new.block
951
+ note output
952
+ fin.entry
953
+ empty.misc.check
954
+ }
955
+
956
+ FUNCTION {phdthesis}
957
+ { output.bibitem
958
+ format.authors "author" output.check
959
+ author format.key output
960
+ new.block
961
+ format.btitle "title" output.check
962
+ new.block
963
+ "PhD thesis" format.thesis.type output.nonnull
964
+ school "school" output.check
965
+ address output
966
+ format.date "year" output.check
967
+ format.url output
968
+ new.block
969
+ note output
970
+ fin.entry
971
+ }
972
+
973
+ FUNCTION {proceedings}
974
+ { output.bibitem
975
+ format.editors output
976
+ editor format.key output
977
+ new.block
978
+ format.btitle "title" output.check
979
+ format.bvolume output
980
+ format.number.series output
981
+ address output
982
+ format.date "year" output.check
983
+ new.sentence
984
+ organization output
985
+ publisher output
986
+ format.isbn output
987
+ format.doi output
988
+ format.url output
989
+ new.block
990
+ note output
991
+ fin.entry
992
+ }
993
+
994
+ FUNCTION {techreport}
995
+ { output.bibitem
996
+ format.authors "author" output.check
997
+ author format.key output
998
+ new.block
999
+ format.title "title" output.check
1000
+ new.block
1001
+ format.tr.number output.nonnull
1002
+ institution "institution" output.check
1003
+ address output
1004
+ format.date "year" output.check
1005
+ format.url output
1006
+ new.block
1007
+ note output
1008
+ fin.entry
1009
+ }
1010
+
1011
+ FUNCTION {unpublished}
1012
+ { output.bibitem
1013
+ format.authors "author" output.check
1014
+ author format.key output
1015
+ new.block
1016
+ format.title "title" output.check
1017
+ new.block
1018
+ note "note" output.check
1019
+ format.date output
1020
+ format.url output
1021
+ fin.entry
1022
+ }
1023
+
1024
+ FUNCTION {default.type} { misc }
1025
+
1026
+
1027
+ MACRO {jan} {"Jan."}
1028
+
1029
+ MACRO {feb} {"Feb."}
1030
+
1031
+ MACRO {mar} {"Mar."}
1032
+
1033
+ MACRO {apr} {"Apr."}
1034
+
1035
+ MACRO {may} {"May"}
1036
+
1037
+ MACRO {jun} {"June"}
1038
+
1039
+ MACRO {jul} {"July"}
1040
+
1041
+ MACRO {aug} {"Aug."}
1042
+
1043
+ MACRO {sep} {"Sept."}
1044
+
1045
+ MACRO {oct} {"Oct."}
1046
+
1047
+ MACRO {nov} {"Nov."}
1048
+
1049
+ MACRO {dec} {"Dec."}
1050
+
1051
+
1052
+
1053
+ MACRO {acmcs} {"ACM Comput. Surv."}
1054
+
1055
+ MACRO {acta} {"Acta Inf."}
1056
+
1057
+ MACRO {cacm} {"Commun. ACM"}
1058
+
1059
+ MACRO {ibmjrd} {"IBM J. Res. Dev."}
1060
+
1061
+ MACRO {ibmsj} {"IBM Syst.~J."}
1062
+
1063
+ MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
1064
+
1065
+ MACRO {ieeetc} {"IEEE Trans. Comput."}
1066
+
1067
+ MACRO {ieeetcad}
1068
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
1069
+
1070
+ MACRO {ipl} {"Inf. Process. Lett."}
1071
+
1072
+ MACRO {jacm} {"J.~ACM"}
1073
+
1074
+ MACRO {jcss} {"J.~Comput. Syst. Sci."}
1075
+
1076
+ MACRO {scp} {"Sci. Comput. Programming"}
1077
+
1078
+ MACRO {sicomp} {"SIAM J. Comput."}
1079
+
1080
+ MACRO {tocs} {"ACM Trans. Comput. Syst."}
1081
+
1082
+ MACRO {tods} {"ACM Trans. Database Syst."}
1083
+
1084
+ MACRO {tog} {"ACM Trans. Gr."}
1085
+
1086
+ MACRO {toms} {"ACM Trans. Math. Softw."}
1087
+
1088
+ MACRO {toois} {"ACM Trans. Office Inf. Syst."}
1089
+
1090
+ MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
1091
+
1092
+ MACRO {tcs} {"Theoretical Comput. Sci."}
1093
+
1094
+
1095
+ READ
1096
+
1097
+ FUNCTION {sortify}
1098
+ { purify$
1099
+ "l" change.case$
1100
+ }
1101
+
1102
+ INTEGERS { len }
1103
+
1104
+ FUNCTION {chop.word}
1105
+ { 's :=
1106
+ 'len :=
1107
+ s #1 len substring$ =
1108
+ { s len #1 + global.max$ substring$ }
1109
+ 's
1110
+ if$
1111
+ }
1112
+
1113
+ FUNCTION {format.lab.names}
1114
+ { 's :=
1115
+ s #1 "{vv~}{ll}" format.name$
1116
+ s num.names$ duplicate$
1117
+ #2 >
1118
+ { pop$ " et~al." * }
1119
+ { #2 <
1120
+ 'skip$
1121
+ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1122
+ { " et~al." * }
1123
+ { " and " * s #2 "{vv~}{ll}" format.name$ * }
1124
+ if$
1125
+ }
1126
+ if$
1127
+ }
1128
+ if$
1129
+ }
1130
+
1131
+ FUNCTION {author.key.label}
1132
+ { author empty$
1133
+ { key empty$
1134
+ { cite$ #1 #3 substring$ }
1135
+ 'key
1136
+ if$
1137
+ }
1138
+ { author format.lab.names }
1139
+ if$
1140
+ }
1141
+
1142
+ FUNCTION {author.editor.key.label}
1143
+ { author empty$
1144
+ { editor empty$
1145
+ { key empty$
1146
+ { cite$ #1 #3 substring$ }
1147
+ 'key
1148
+ if$
1149
+ }
1150
+ { editor format.lab.names }
1151
+ if$
1152
+ }
1153
+ { author format.lab.names }
1154
+ if$
1155
+ }
1156
+
1157
+ FUNCTION {author.key.organization.label}
1158
+ { author empty$
1159
+ { key empty$
1160
+ { organization empty$
1161
+ { cite$ #1 #3 substring$ }
1162
+ { "The " #4 organization chop.word #3 text.prefix$ }
1163
+ if$
1164
+ }
1165
+ 'key
1166
+ if$
1167
+ }
1168
+ { author format.lab.names }
1169
+ if$
1170
+ }
1171
+
1172
+ FUNCTION {editor.key.organization.label}
1173
+ { editor empty$
1174
+ { key empty$
1175
+ { organization empty$
1176
+ { cite$ #1 #3 substring$ }
1177
+ { "The " #4 organization chop.word #3 text.prefix$ }
1178
+ if$
1179
+ }
1180
+ 'key
1181
+ if$
1182
+ }
1183
+ { editor format.lab.names }
1184
+ if$
1185
+ }
1186
+
1187
+ FUNCTION {calc.short.authors}
1188
+ { type$ "book" =
1189
+ type$ "inbook" =
1190
+ or
1191
+ 'author.editor.key.label
1192
+ { type$ "proceedings" =
1193
+ 'editor.key.organization.label
1194
+ { type$ "manual" =
1195
+ 'author.key.organization.label
1196
+ 'author.key.label
1197
+ if$
1198
+ }
1199
+ if$
1200
+ }
1201
+ if$
1202
+ 'short.list :=
1203
+ }
1204
+
1205
+ FUNCTION {calc.label}
1206
+ { calc.short.authors
1207
+ short.list
1208
+ "("
1209
+ *
1210
+ year duplicate$ empty$
1211
+ short.list key field.or.null = or
1212
+ { pop$ "" }
1213
+ 'skip$
1214
+ if$
1215
+ *
1216
+ 'label :=
1217
+ }
1218
+
1219
+ FUNCTION {sort.format.names}
1220
+ { 's :=
1221
+ #1 'nameptr :=
1222
+ ""
1223
+ s num.names$ 'numnames :=
1224
+ numnames 'namesleft :=
1225
+ { namesleft #0 > }
1226
+ {
1227
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
1228
+ nameptr #1 >
1229
+ {
1230
+ " " *
1231
+ namesleft #1 = t "others" = and
1232
+ { "zzzzz" * }
1233
+ { numnames #2 > nameptr #2 = and
1234
+ { "zz" * year field.or.null * " " * }
1235
+ 'skip$
1236
+ if$
1237
+ t sortify *
1238
+ }
1239
+ if$
1240
+ }
1241
+ { t sortify * }
1242
+ if$
1243
+ nameptr #1 + 'nameptr :=
1244
+ namesleft #1 - 'namesleft :=
1245
+ }
1246
+ while$
1247
+ }
1248
+
1249
+ FUNCTION {sort.format.title}
1250
+ { 't :=
1251
+ "A " #2
1252
+ "An " #3
1253
+ "The " #4 t chop.word
1254
+ chop.word
1255
+ chop.word
1256
+ sortify
1257
+ #1 global.max$ substring$
1258
+ }
1259
+
1260
+ FUNCTION {author.sort}
1261
+ { author empty$
1262
+ { key empty$
1263
+ { "to sort, need author or key in " cite$ * warning$
1264
+ ""
1265
+ }
1266
+ { key sortify }
1267
+ if$
1268
+ }
1269
+ { author sort.format.names }
1270
+ if$
1271
+ }
1272
+
1273
+ FUNCTION {author.editor.sort}
1274
+ { author empty$
1275
+ { editor empty$
1276
+ { key empty$
1277
+ { "to sort, need author, editor, or key in " cite$ * warning$
1278
+ ""
1279
+ }
1280
+ { key sortify }
1281
+ if$
1282
+ }
1283
+ { editor sort.format.names }
1284
+ if$
1285
+ }
1286
+ { author sort.format.names }
1287
+ if$
1288
+ }
1289
+
1290
+ FUNCTION {author.organization.sort}
1291
+ { author empty$
1292
+ { organization empty$
1293
+ { key empty$
1294
+ { "to sort, need author, organization, or key in " cite$ * warning$
1295
+ ""
1296
+ }
1297
+ { key sortify }
1298
+ if$
1299
+ }
1300
+ { "The " #4 organization chop.word sortify }
1301
+ if$
1302
+ }
1303
+ { author sort.format.names }
1304
+ if$
1305
+ }
1306
+
1307
+ FUNCTION {editor.organization.sort}
1308
+ { editor empty$
1309
+ { organization empty$
1310
+ { key empty$
1311
+ { "to sort, need editor, organization, or key in " cite$ * warning$
1312
+ ""
1313
+ }
1314
+ { key sortify }
1315
+ if$
1316
+ }
1317
+ { "The " #4 organization chop.word sortify }
1318
+ if$
1319
+ }
1320
+ { editor sort.format.names }
1321
+ if$
1322
+ }
1323
+
1324
+
1325
+ FUNCTION {presort}
1326
+ { calc.label
1327
+ label sortify
1328
+ " "
1329
+ *
1330
+ type$ "book" =
1331
+ type$ "inbook" =
1332
+ or
1333
+ 'author.editor.sort
1334
+ { type$ "proceedings" =
1335
+ 'editor.organization.sort
1336
+ { type$ "manual" =
1337
+ 'author.organization.sort
1338
+ 'author.sort
1339
+ if$
1340
+ }
1341
+ if$
1342
+ }
1343
+ if$
1344
+ " "
1345
+ *
1346
+ year field.or.null sortify
1347
+ *
1348
+ " "
1349
+ *
1350
+ cite$
1351
+ *
1352
+ #1 entry.max$ substring$
1353
+ 'sort.label :=
1354
+ sort.label *
1355
+ #1 entry.max$ substring$
1356
+ 'sort.key$ :=
1357
+ }
1358
+
1359
+ ITERATE {presort}
1360
+
1361
+ SORT
1362
+
1363
+ STRINGS { longest.label last.label next.extra }
1364
+
1365
+ INTEGERS { longest.label.width last.extra.num number.label }
1366
+
1367
+ FUNCTION {initialize.longest.label}
1368
+ { "" 'longest.label :=
1369
+ #0 int.to.chr$ 'last.label :=
1370
+ "" 'next.extra :=
1371
+ #0 'longest.label.width :=
1372
+ #0 'last.extra.num :=
1373
+ #0 'number.label :=
1374
+ }
1375
+
1376
+ FUNCTION {forward.pass}
1377
+ { last.label label =
1378
+ { last.extra.num #1 + 'last.extra.num :=
1379
+ last.extra.num int.to.chr$ 'extra.label :=
1380
+ }
1381
+ { "a" chr.to.int$ 'last.extra.num :=
1382
+ "" 'extra.label :=
1383
+ label 'last.label :=
1384
+ }
1385
+ if$
1386
+ number.label #1 + 'number.label :=
1387
+ }
1388
+
1389
+ FUNCTION {reverse.pass}
1390
+ { next.extra "b" =
1391
+ { "a" 'extra.label := }
1392
+ 'skip$
1393
+ if$
1394
+ extra.label 'next.extra :=
1395
+ extra.label
1396
+ duplicate$ empty$
1397
+ 'skip$
1398
+ { "{\natexlab{" swap$ * "}}" * }
1399
+ if$
1400
+ 'extra.label :=
1401
+ label extra.label * 'label :=
1402
+ }
1403
+
1404
+ EXECUTE {initialize.longest.label}
1405
+
1406
+ ITERATE {forward.pass}
1407
+
1408
+ REVERSE {reverse.pass}
1409
+
1410
+ FUNCTION {bib.sort.order}
1411
+ { sort.label 'sort.key$ :=
1412
+ }
1413
+
1414
+ ITERATE {bib.sort.order}
1415
+
1416
+ SORT
1417
+
1418
+ FUNCTION {begin.bib}
1419
+ { preamble$ empty$
1420
+ 'skip$
1421
+ { preamble$ write$ newline$ }
1422
+ if$
1423
+ "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1424
+ write$ newline$
1425
+ "\providecommand{\natexlab}[1]{#1}"
1426
+ write$ newline$
1427
+ "\providecommand{\url}[1]{\texttt{#1}}"
1428
+ write$ newline$
1429
+ "\expandafter\ifx\csname urlstyle\endcsname\relax"
1430
+ write$ newline$
1431
+ " \providecommand{\doi}[1]{doi: #1}\else"
1432
+ write$ newline$
1433
+ " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
1434
+ write$ newline$
1435
+ }
1436
+
1437
+ EXECUTE {begin.bib}
1438
+
1439
+ EXECUTE {init.state.consts}
1440
+
1441
+ ITERATE {call.type$}
1442
+
1443
+ FUNCTION {end.bib}
1444
+ { newline$
1445
+ "\end{thebibliography}" write$ newline$
1446
+ }
1447
+
1448
+ EXECUTE {end.bib}