@ahmed-g-gad/apothem 0.1.1

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 (674) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/LICENSE +21 -0
  3. package/LICENSES/MIT.txt +18 -0
  4. package/LICENSES/PSF-2.0.txt +47 -0
  5. package/README.md +549 -0
  6. package/bin/README.md +37 -0
  7. package/bin/apothem.mjs +78 -0
  8. package/package.json +75 -0
  9. package/pyproject.toml +347 -0
  10. package/src/apothem/README.md +52 -0
  11. package/src/apothem/__init__.py +66 -0
  12. package/src/apothem/__main__.py +28 -0
  13. package/src/apothem/_vendor/.keep +0 -0
  14. package/src/apothem/_vendor/__init__.py +25 -0
  15. package/src/apothem/_vendor/attr/__init__.py +104 -0
  16. package/src/apothem/_vendor/attr/__init__.pyi +389 -0
  17. package/src/apothem/_vendor/attr/_cmp.py +160 -0
  18. package/src/apothem/_vendor/attr/_cmp.pyi +13 -0
  19. package/src/apothem/_vendor/attr/_compat.py +99 -0
  20. package/src/apothem/_vendor/attr/_config.py +31 -0
  21. package/src/apothem/_vendor/attr/_funcs.py +497 -0
  22. package/src/apothem/_vendor/attr/_make.py +3406 -0
  23. package/src/apothem/_vendor/attr/_next_gen.py +674 -0
  24. package/src/apothem/_vendor/attr/_typing_compat.pyi +15 -0
  25. package/src/apothem/_vendor/attr/_version_info.py +89 -0
  26. package/src/apothem/_vendor/attr/_version_info.pyi +9 -0
  27. package/src/apothem/_vendor/attr/converters.py +162 -0
  28. package/src/apothem/_vendor/attr/converters.pyi +19 -0
  29. package/src/apothem/_vendor/attr/exceptions.py +95 -0
  30. package/src/apothem/_vendor/attr/exceptions.pyi +17 -0
  31. package/src/apothem/_vendor/attr/filters.py +72 -0
  32. package/src/apothem/_vendor/attr/filters.pyi +6 -0
  33. package/src/apothem/_vendor/attr/py.typed +0 -0
  34. package/src/apothem/_vendor/attr/setters.py +79 -0
  35. package/src/apothem/_vendor/attr/setters.pyi +20 -0
  36. package/src/apothem/_vendor/attr/validators.py +750 -0
  37. package/src/apothem/_vendor/attr/validators.pyi +140 -0
  38. package/src/apothem/_vendor/attr.LICENSE +21 -0
  39. package/src/apothem/_vendor/attrs/__init__.py +72 -0
  40. package/src/apothem/_vendor/attrs/__init__.pyi +314 -0
  41. package/src/apothem/_vendor/attrs/converters.py +3 -0
  42. package/src/apothem/_vendor/attrs/exceptions.py +3 -0
  43. package/src/apothem/_vendor/attrs/filters.py +3 -0
  44. package/src/apothem/_vendor/attrs/py.typed +0 -0
  45. package/src/apothem/_vendor/attrs/setters.py +3 -0
  46. package/src/apothem/_vendor/attrs/validators.py +3 -0
  47. package/src/apothem/_vendor/attrs.LICENSE +21 -0
  48. package/src/apothem/_vendor/jsonschema/__init__.py +120 -0
  49. package/src/apothem/_vendor/jsonschema/__main__.py +6 -0
  50. package/src/apothem/_vendor/jsonschema/_format.py +546 -0
  51. package/src/apothem/_vendor/jsonschema/_keywords.py +449 -0
  52. package/src/apothem/_vendor/jsonschema/_legacy_keywords.py +449 -0
  53. package/src/apothem/_vendor/jsonschema/_types.py +204 -0
  54. package/src/apothem/_vendor/jsonschema/_typing.py +29 -0
  55. package/src/apothem/_vendor/jsonschema/_utils.py +355 -0
  56. package/src/apothem/_vendor/jsonschema/benchmarks/__init__.py +5 -0
  57. package/src/apothem/_vendor/jsonschema/benchmarks/const_vs_enum.py +30 -0
  58. package/src/apothem/_vendor/jsonschema/benchmarks/contains.py +28 -0
  59. package/src/apothem/_vendor/jsonschema/benchmarks/import_benchmark.py +31 -0
  60. package/src/apothem/_vendor/jsonschema/benchmarks/issue232/issue.json +2653 -0
  61. package/src/apothem/_vendor/jsonschema/benchmarks/issue232.py +25 -0
  62. package/src/apothem/_vendor/jsonschema/benchmarks/json_schema_test_suite.py +12 -0
  63. package/src/apothem/_vendor/jsonschema/benchmarks/nested_schemas.py +56 -0
  64. package/src/apothem/_vendor/jsonschema/benchmarks/subcomponents.py +42 -0
  65. package/src/apothem/_vendor/jsonschema/benchmarks/unused_registry.py +35 -0
  66. package/src/apothem/_vendor/jsonschema/benchmarks/useless_applicator_schemas.py +106 -0
  67. package/src/apothem/_vendor/jsonschema/benchmarks/useless_keywords.py +32 -0
  68. package/src/apothem/_vendor/jsonschema/benchmarks/validator_creation.py +14 -0
  69. package/src/apothem/_vendor/jsonschema/cli.py +292 -0
  70. package/src/apothem/_vendor/jsonschema/exceptions.py +490 -0
  71. package/src/apothem/_vendor/jsonschema/protocols.py +230 -0
  72. package/src/apothem/_vendor/jsonschema/validators.py +1410 -0
  73. package/src/apothem/_vendor/jsonschema.LICENSE +19 -0
  74. package/src/apothem/_vendor/jsonschema_specifications/__init__.py +12 -0
  75. package/src/apothem/_vendor/jsonschema_specifications/_core.py +38 -0
  76. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/metaschema.json +42 -0
  77. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +56 -0
  78. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/content +17 -0
  79. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/core +57 -0
  80. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/format +14 -0
  81. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +37 -0
  82. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/validation +98 -0
  83. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/metaschema.json +58 -0
  84. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +48 -0
  85. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/content +17 -0
  86. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/core +51 -0
  87. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +14 -0
  88. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +14 -0
  89. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +37 -0
  90. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +15 -0
  91. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/validation +98 -0
  92. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft3/metaschema.json +172 -0
  93. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft4/metaschema.json +149 -0
  94. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft6/metaschema.json +153 -0
  95. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft7/metaschema.json +166 -0
  96. package/src/apothem/_vendor/jsonschema_specifications.LICENSE +19 -0
  97. package/src/apothem/_vendor/referencing/__init__.py +7 -0
  98. package/src/apothem/_vendor/referencing/_attrs.py +31 -0
  99. package/src/apothem/_vendor/referencing/_attrs.pyi +21 -0
  100. package/src/apothem/_vendor/referencing/_core.py +739 -0
  101. package/src/apothem/_vendor/referencing/exceptions.py +165 -0
  102. package/src/apothem/_vendor/referencing/jsonschema.py +642 -0
  103. package/src/apothem/_vendor/referencing/py.typed +0 -0
  104. package/src/apothem/_vendor/referencing/retrieval.py +94 -0
  105. package/src/apothem/_vendor/referencing/typing.py +61 -0
  106. package/src/apothem/_vendor/referencing.LICENSE +19 -0
  107. package/src/apothem/_vendor/rpds/__init__.py +251 -0
  108. package/src/apothem/_vendor/typing_extensions.LICENSE +279 -0
  109. package/src/apothem/_vendor/typing_extensions.py +4317 -0
  110. package/src/apothem/_vendor/vendor.txt +22 -0
  111. package/src/apothem/_vendor/yaml/__init__.py +389 -0
  112. package/src/apothem/_vendor/yaml/composer.py +138 -0
  113. package/src/apothem/_vendor/yaml/constructor.py +748 -0
  114. package/src/apothem/_vendor/yaml/cyaml.py +100 -0
  115. package/src/apothem/_vendor/yaml/dumper.py +61 -0
  116. package/src/apothem/_vendor/yaml/emitter.py +1137 -0
  117. package/src/apothem/_vendor/yaml/error.py +74 -0
  118. package/src/apothem/_vendor/yaml/events.py +85 -0
  119. package/src/apothem/_vendor/yaml/loader.py +63 -0
  120. package/src/apothem/_vendor/yaml/nodes.py +48 -0
  121. package/src/apothem/_vendor/yaml/parser.py +588 -0
  122. package/src/apothem/_vendor/yaml/reader.py +185 -0
  123. package/src/apothem/_vendor/yaml/representer.py +388 -0
  124. package/src/apothem/_vendor/yaml/resolver.py +226 -0
  125. package/src/apothem/_vendor/yaml/scanner.py +1435 -0
  126. package/src/apothem/_vendor/yaml/serializer.py +110 -0
  127. package/src/apothem/_vendor/yaml/tokens.py +103 -0
  128. package/src/apothem/_vendor/yaml.LICENSE +20 -0
  129. package/src/apothem/agents/README.md +60 -0
  130. package/src/apothem/agents/codebase-explorer.md +91 -0
  131. package/src/apothem/agents/convention-auditor.md +93 -0
  132. package/src/apothem/agents/dependency-auditor.md +97 -0
  133. package/src/apothem/agents/fact-checker.md +84 -0
  134. package/src/apothem/agents/mcp-builder.md +86 -0
  135. package/src/apothem/agents/memory-auditor.md +93 -0
  136. package/src/apothem/agents/prompt-evaluator.md +87 -0
  137. package/src/apothem/agents/quality-gate.md +103 -0
  138. package/src/apothem/agents/refactor-surgeon.md +74 -0
  139. package/src/apothem/agents/research-scout.md +73 -0
  140. package/src/apothem/agents/security-scanner.md +83 -0
  141. package/src/apothem/agents/test-runner.md +84 -0
  142. package/src/apothem/audit/README.md +73 -0
  143. package/src/apothem/audit/_scan_lib.py +182 -0
  144. package/src/apothem/audit/analyze_graph.py +260 -0
  145. package/src/apothem/audit/build_capability_graph.py +607 -0
  146. package/src/apothem/audit/build_inventory.py +657 -0
  147. package/src/apothem/audit/build_plans_provenance.py +997 -0
  148. package/src/apothem/audit/check_links.py +389 -0
  149. package/src/apothem/audit/classify_artifacts.py +381 -0
  150. package/src/apothem/audit/deprecated-tokens.txt +10 -0
  151. package/src/apothem/audit/execute_plans_migration.py +491 -0
  152. package/src/apothem/audit/known-projects.txt +15 -0
  153. package/src/apothem/audit/render_capability_index.py +467 -0
  154. package/src/apothem/audit/render_inventory.py +405 -0
  155. package/src/apothem/audit/scan_ai_surfaces.py +1125 -0
  156. package/src/apothem/audit/scan_ai_surfaces_coarse.py +261 -0
  157. package/src/apothem/audit/scan_drift_features.py +143 -0
  158. package/src/apothem/audit/scan_frontmatter.py +293 -0
  159. package/src/apothem/audit/scan_header_coverage.py +1134 -0
  160. package/src/apothem/audit/scan_plan_leakage.py +540 -0
  161. package/src/apothem/audit/scan_plans_discipline.py +188 -0
  162. package/src/apothem/audit/scan_secrets_pii.py +245 -0
  163. package/src/apothem/audit/scan_stale_tokens.py +296 -0
  164. package/src/apothem/audit/synthesize_drift.py +205 -0
  165. package/src/apothem/benchmarks/README.md +33 -0
  166. package/src/apothem/benchmarks/__init__.py +3 -0
  167. package/src/apothem/benchmarks/bench_agents.py +63 -0
  168. package/src/apothem/benchmarks/bench_hooks.py +93 -0
  169. package/src/apothem/benchmarks/bench_install.py +58 -0
  170. package/src/apothem/benchmarks/bench_tests.py +93 -0
  171. package/src/apothem/benchmarks/bench_validate_ecosystem.py +84 -0
  172. package/src/apothem/cli/README.md +33 -0
  173. package/src/apothem/cli/__init__.py +229 -0
  174. package/src/apothem/cli/_cmd_completion.py +88 -0
  175. package/src/apothem/cli/_cmd_diff.py +181 -0
  176. package/src/apothem/cli/_cmd_doctor.py +143 -0
  177. package/src/apothem/cli/_cmd_harnesses.py +167 -0
  178. package/src/apothem/cli/_cmd_install.py +327 -0
  179. package/src/apothem/cli/_cmd_migrate_workspace.py +143 -0
  180. package/src/apothem/cli/_cmd_profile.py +341 -0
  181. package/src/apothem/cli/_cmd_status.py +180 -0
  182. package/src/apothem/cli/_cmd_uninstall.py +215 -0
  183. package/src/apothem/cli/_cmd_update.py +397 -0
  184. package/src/apothem/cli/_cmd_verify.py +194 -0
  185. package/src/apothem/cli/_common_flags.py +90 -0
  186. package/src/apothem/cli/_epilogs.py +296 -0
  187. package/src/apothem/cli/_helpers.py +857 -0
  188. package/src/apothem/cli/_json_formatter.py +21 -0
  189. package/src/apothem/cli/_materialize.py +376 -0
  190. package/src/apothem/cli/completions/apothem.bash +30 -0
  191. package/src/apothem/cli/completions/apothem.fish +19 -0
  192. package/src/apothem/cli/completions/apothem.ps1 +27 -0
  193. package/src/apothem/cli/completions/apothem.zsh +42 -0
  194. package/src/apothem/cli/reference_export.py +126 -0
  195. package/src/apothem/commands/README.md +125 -0
  196. package/src/apothem/commands/a11y-audit.md +203 -0
  197. package/src/apothem/commands/architecture-review.md +194 -0
  198. package/src/apothem/commands/audit.md +165 -0
  199. package/src/apothem/commands/code-audit.md +218 -0
  200. package/src/apothem/commands/code-review.md +193 -0
  201. package/src/apothem/commands/dependency-audit.md +209 -0
  202. package/src/apothem/commands/docs-review.md +199 -0
  203. package/src/apothem/commands/elevate.md +285 -0
  204. package/src/apothem/commands/eval.md +149 -0
  205. package/src/apothem/commands/fortress.md +172 -0
  206. package/src/apothem/commands/freshify.md +168 -0
  207. package/src/apothem/commands/github-deploy-fresh.md +178 -0
  208. package/src/apothem/commands/github-deploy-next.md +167 -0
  209. package/src/apothem/commands/perf-audit.md +198 -0
  210. package/src/apothem/commands/plan-amend.md +104 -0
  211. package/src/apothem/commands/plan-audit.md +127 -0
  212. package/src/apothem/commands/plan-design.md +257 -0
  213. package/src/apothem/commands/plan-execute.md +495 -0
  214. package/src/apothem/commands/plan-generate.md +351 -0
  215. package/src/apothem/commands/plan-review.md +555 -0
  216. package/src/apothem/commands/plan-spec.md +359 -0
  217. package/src/apothem/commands/plan-status.md +222 -0
  218. package/src/apothem/commands/plan.md +173 -0
  219. package/src/apothem/commands/projectify.md +142 -0
  220. package/src/apothem/commands/release-readiness.md +142 -0
  221. package/src/apothem/commands/research-analysis.md +241 -0
  222. package/src/apothem/commands/research-design.md +231 -0
  223. package/src/apothem/commands/research-disseminate.md +225 -0
  224. package/src/apothem/commands/research-experiment.md +232 -0
  225. package/src/apothem/commands/research-ideate.md +213 -0
  226. package/src/apothem/commands/research-paper.md +252 -0
  227. package/src/apothem/commands/research-proposal.md +220 -0
  228. package/src/apothem/commands/research-publish.md +255 -0
  229. package/src/apothem/commands/research-review.md +251 -0
  230. package/src/apothem/commands/research-sources.md +266 -0
  231. package/src/apothem/commands/research-spec.md +255 -0
  232. package/src/apothem/commands/research-synthesis.md +233 -0
  233. package/src/apothem/commands/research-theory.md +218 -0
  234. package/src/apothem/commands/research.md +181 -0
  235. package/src/apothem/commands/security-audit.md +196 -0
  236. package/src/apothem/commands/supply-chain-audit.md +192 -0
  237. package/src/apothem/commands/test-suite.md +146 -0
  238. package/src/apothem/commands/threat-model-audit.md +199 -0
  239. package/src/apothem/commands/ux-review.md +202 -0
  240. package/src/apothem/commands/workflow.md +162 -0
  241. package/src/apothem/conformity/README.md +173 -0
  242. package/src/apothem/conformity/__init__.py +1 -0
  243. package/src/apothem/conformity/_grep_base.py +93 -0
  244. package/src/apothem/conformity/agent_capability_grep.py +306 -0
  245. package/src/apothem/conformity/agents_md_coverage_grep.py +382 -0
  246. package/src/apothem/conformity/agnosticism_grep.py +311 -0
  247. package/src/apothem/conformity/always_on_budget_grep.py +318 -0
  248. package/src/apothem/conformity/bare_except_grep.py +115 -0
  249. package/src/apothem/conformity/binding_reciprocity_grep.py +151 -0
  250. package/src/apothem/conformity/brand_mark_grep.py +272 -0
  251. package/src/apothem/conformity/commented_out_code_grep.py +176 -0
  252. package/src/apothem/conformity/completion_claim_grep.py +169 -0
  253. package/src/apothem/conformity/conventional_commit_grep.py +319 -0
  254. package/src/apothem/conformity/copilot_instructions_presence_grep.py +324 -0
  255. package/src/apothem/conformity/cross_platform_matrix_grep.py +297 -0
  256. package/src/apothem/conformity/determinism_grep.py +306 -0
  257. package/src/apothem/conformity/diagram_staleness_grep.py +154 -0
  258. package/src/apothem/conformity/dynamism_grep.py +284 -0
  259. package/src/apothem/conformity/editorconfig_presence_grep.py +281 -0
  260. package/src/apothem/conformity/file_header_grep.py +502 -0
  261. package/src/apothem/conformity/freshness_token_grep.py +233 -0
  262. package/src/apothem/conformity/frontmatter_grep.py +274 -0
  263. package/src/apothem/conformity/frontmatter_value_grep.py +386 -0
  264. package/src/apothem/conformity/gate.py +1386 -0
  265. package/src/apothem/conformity/gitattributes_presence_grep.py +238 -0
  266. package/src/apothem/conformity/harden_runner_grep.py +320 -0
  267. package/src/apothem/conformity/hedging_grep.py +129 -0
  268. package/src/apothem/conformity/license_author_consistency_grep.py +204 -0
  269. package/src/apothem/conformity/link_check.py +327 -0
  270. package/src/apothem/conformity/magic_number_grep.py +182 -0
  271. package/src/apothem/conformity/multi_surface_coherence_grep.py +620 -0
  272. package/src/apothem/conformity/naming_grep.py +224 -0
  273. package/src/apothem/conformity/no_global_plans_grep.py +339 -0
  274. package/src/apothem/conformity/no_toplevel_docs_grep.py +120 -0
  275. package/src/apothem/conformity/oidc_trusted_publishing_grep.py +291 -0
  276. package/src/apothem/conformity/option_annotation_grep.py +352 -0
  277. package/src/apothem/conformity/orphan_output_grep.py +206 -0
  278. package/src/apothem/conformity/permissions_minimum_scope_grep.py +299 -0
  279. package/src/apothem/conformity/plain_language_grep.py +559 -0
  280. package/src/apothem/conformity/plan_next_step_consistency_grep.py +450 -0
  281. package/src/apothem/conformity/plan_suite_structure_grep.py +534 -0
  282. package/src/apothem/conformity/plans_discipline_language_grep.py +245 -0
  283. package/src/apothem/conformity/production_ready_pr_grep.py +200 -0
  284. package/src/apothem/conformity/recommend_next_step_grep.py +250 -0
  285. package/src/apothem/conformity/redundancy_grep.py +401 -0
  286. package/src/apothem/conformity/reference_token_grep.py +230 -0
  287. package/src/apothem/conformity/registry_capability_consistency_grep.py +368 -0
  288. package/src/apothem/conformity/secret_leak_grep.py +193 -0
  289. package/src/apothem/conformity/semver_stability_grep.py +358 -0
  290. package/src/apothem/conformity/smoke_install_grep.py +194 -0
  291. package/src/apothem/conformity/static_version_grep.py +284 -0
  292. package/src/apothem/conformity/token_efficiency_grep.py +185 -0
  293. package/src/apothem/conformity/unpinned_action_grep.py +115 -0
  294. package/src/apothem/conformity/user_confirm_grep.py +74 -0
  295. package/src/apothem/conformity/workflow_concurrency_grep.py +283 -0
  296. package/src/apothem/harnesses/README.md +63 -0
  297. package/src/apothem/harnesses/__init__.py +16 -0
  298. package/src/apothem/harnesses/_shared/README.md +36 -0
  299. package/src/apothem/harnesses/_shared/__init__.py +12 -0
  300. package/src/apothem/harnesses/_shared/install_driver.py +281 -0
  301. package/src/apothem/harnesses/_shared/install_driver_apply.py +612 -0
  302. package/src/apothem/harnesses/_shared/install_driver_backup.py +535 -0
  303. package/src/apothem/harnesses/_shared/install_driver_converters.py +310 -0
  304. package/src/apothem/harnesses/_shared/install_driver_lifecycle.py +495 -0
  305. package/src/apothem/harnesses/_shared/install_driver_materialize.py +675 -0
  306. package/src/apothem/harnesses/_shared/install_driver_merge.py +656 -0
  307. package/src/apothem/harnesses/_shared/install_driver_pathsafety.py +137 -0
  308. package/src/apothem/harnesses/_shared/install_driver_planvalidation.py +240 -0
  309. package/src/apothem/harnesses/_shared/install_driver_removal.py +366 -0
  310. package/src/apothem/harnesses/_shared/install_driver_treeops.py +248 -0
  311. package/src/apothem/harnesses/_shared/install_driver_types.py +330 -0
  312. package/src/apothem/harnesses/_shared/wrapper_factories.py +448 -0
  313. package/src/apothem/harnesses/antigravity/STANDARD-CONVENTION-PIN.md +91 -0
  314. package/src/apothem/harnesses/antigravity/__init__.py +70 -0
  315. package/src/apothem/harnesses/antigravity/capabilities.yml +40 -0
  316. package/src/apothem/harnesses/antigravity/install.py +63 -0
  317. package/src/apothem/harnesses/antigravity/templates/GEMINI.md +40 -0
  318. package/src/apothem/harnesses/antigravity/templates/plugin.json +5 -0
  319. package/src/apothem/harnesses/antigravity/uninstall.py +22 -0
  320. package/src/apothem/harnesses/antigravity/update.py +10 -0
  321. package/src/apothem/harnesses/antigravity/verify.py +11 -0
  322. package/src/apothem/harnesses/claude_code/STANDARD-CONVENTION-PIN.md +65 -0
  323. package/src/apothem/harnesses/claude_code/__init__.py +107 -0
  324. package/src/apothem/harnesses/claude_code/capabilities.yml +42 -0
  325. package/src/apothem/harnesses/claude_code/install.py +147 -0
  326. package/src/apothem/harnesses/claude_code/templates/settings.json +351 -0
  327. package/src/apothem/harnesses/claude_code/uninstall.py +23 -0
  328. package/src/apothem/harnesses/claude_code/update.py +10 -0
  329. package/src/apothem/harnesses/claude_code/verify.py +11 -0
  330. package/src/apothem/harnesses/codebuddy/STANDARD-CONVENTION-PIN.md +74 -0
  331. package/src/apothem/harnesses/codebuddy/__init__.py +49 -0
  332. package/src/apothem/harnesses/codebuddy/capabilities.yml +34 -0
  333. package/src/apothem/harnesses/codebuddy/install.py +40 -0
  334. package/src/apothem/harnesses/codebuddy/templates/apothem-rules.md +37 -0
  335. package/src/apothem/harnesses/codebuddy/uninstall.py +25 -0
  336. package/src/apothem/harnesses/codebuddy/update.py +10 -0
  337. package/src/apothem/harnesses/codebuddy/verify.py +11 -0
  338. package/src/apothem/harnesses/codex/STANDARD-CONVENTION-PIN.md +79 -0
  339. package/src/apothem/harnesses/codex/__init__.py +72 -0
  340. package/src/apothem/harnesses/codex/capabilities.yml +40 -0
  341. package/src/apothem/harnesses/codex/install.py +69 -0
  342. package/src/apothem/harnesses/codex/templates/AGENTS.md +40 -0
  343. package/src/apothem/harnesses/codex/templates/hooks.json +127 -0
  344. package/src/apothem/harnesses/codex/uninstall.py +23 -0
  345. package/src/apothem/harnesses/codex/update.py +10 -0
  346. package/src/apothem/harnesses/codex/verify.py +11 -0
  347. package/src/apothem/harnesses/cursor/STANDARD-CONVENTION-PIN.md +79 -0
  348. package/src/apothem/harnesses/cursor/__init__.py +48 -0
  349. package/src/apothem/harnesses/cursor/capabilities.yml +42 -0
  350. package/src/apothem/harnesses/cursor/install.py +38 -0
  351. package/src/apothem/harnesses/cursor/templates/apothem-rules.mdc +40 -0
  352. package/src/apothem/harnesses/cursor/uninstall.py +25 -0
  353. package/src/apothem/harnesses/cursor/update.py +10 -0
  354. package/src/apothem/harnesses/cursor/verify.py +11 -0
  355. package/src/apothem/harnesses/gemini_cli/STANDARD-CONVENTION-PIN.md +102 -0
  356. package/src/apothem/harnesses/gemini_cli/__init__.py +52 -0
  357. package/src/apothem/harnesses/gemini_cli/capabilities.yml +43 -0
  358. package/src/apothem/harnesses/gemini_cli/install.py +43 -0
  359. package/src/apothem/harnesses/gemini_cli/templates/GEMINI.md +38 -0
  360. package/src/apothem/harnesses/gemini_cli/uninstall.py +25 -0
  361. package/src/apothem/harnesses/gemini_cli/update.py +10 -0
  362. package/src/apothem/harnesses/gemini_cli/verify.py +11 -0
  363. package/src/apothem/harnesses/github_copilot/STANDARD-CONVENTION-PIN.md +84 -0
  364. package/src/apothem/harnesses/github_copilot/__init__.py +47 -0
  365. package/src/apothem/harnesses/github_copilot/capabilities.yml +42 -0
  366. package/src/apothem/harnesses/github_copilot/install.py +40 -0
  367. package/src/apothem/harnesses/github_copilot/templates/copilot-instructions.md +33 -0
  368. package/src/apothem/harnesses/github_copilot/uninstall.py +25 -0
  369. package/src/apothem/harnesses/github_copilot/update.py +10 -0
  370. package/src/apothem/harnesses/github_copilot/verify.py +11 -0
  371. package/src/apothem/harnesses/glm/STANDARD-CONVENTION-PIN.md +77 -0
  372. package/src/apothem/harnesses/glm/__init__.py +56 -0
  373. package/src/apothem/harnesses/glm/capabilities.yml +33 -0
  374. package/src/apothem/harnesses/glm/install.py +45 -0
  375. package/src/apothem/harnesses/glm/templates/glm.toml +58 -0
  376. package/src/apothem/harnesses/glm/uninstall.py +25 -0
  377. package/src/apothem/harnesses/glm/update.py +10 -0
  378. package/src/apothem/harnesses/glm/verify.py +11 -0
  379. package/src/apothem/harnesses/hermes/STANDARD-CONVENTION-PIN.md +57 -0
  380. package/src/apothem/harnesses/hermes/__init__.py +33 -0
  381. package/src/apothem/harnesses/hermes/capabilities.yml +36 -0
  382. package/src/apothem/harnesses/hermes/install.py +17 -0
  383. package/src/apothem/harnesses/hermes/materializer.py +35 -0
  384. package/src/apothem/harnesses/hermes/uninstall.py +33 -0
  385. package/src/apothem/harnesses/hermes/update.py +10 -0
  386. package/src/apothem/harnesses/hermes/verify.py +11 -0
  387. package/src/apothem/harnesses/kimi_code/STANDARD-CONVENTION-PIN.md +128 -0
  388. package/src/apothem/harnesses/kimi_code/__init__.py +59 -0
  389. package/src/apothem/harnesses/kimi_code/capabilities.yml +40 -0
  390. package/src/apothem/harnesses/kimi_code/install.py +42 -0
  391. package/src/apothem/harnesses/kimi_code/templates/AGENTS.md +43 -0
  392. package/src/apothem/harnesses/kimi_code/uninstall.py +27 -0
  393. package/src/apothem/harnesses/kimi_code/update.py +10 -0
  394. package/src/apothem/harnesses/kimi_code/verify.py +11 -0
  395. package/src/apothem/harnesses/kiro/STANDARD-CONVENTION-PIN.md +77 -0
  396. package/src/apothem/harnesses/kiro/__init__.py +49 -0
  397. package/src/apothem/harnesses/kiro/capabilities.yml +36 -0
  398. package/src/apothem/harnesses/kiro/install.py +39 -0
  399. package/src/apothem/harnesses/kiro/templates/apothem-rules.md +36 -0
  400. package/src/apothem/harnesses/kiro/uninstall.py +25 -0
  401. package/src/apothem/harnesses/kiro/update.py +10 -0
  402. package/src/apothem/harnesses/kiro/verify.py +11 -0
  403. package/src/apothem/harnesses/open_claw/STANDARD-CONVENTION-PIN.md +62 -0
  404. package/src/apothem/harnesses/open_claw/__init__.py +35 -0
  405. package/src/apothem/harnesses/open_claw/capabilities.yml +35 -0
  406. package/src/apothem/harnesses/open_claw/install.py +17 -0
  407. package/src/apothem/harnesses/open_claw/materializer.py +36 -0
  408. package/src/apothem/harnesses/open_claw/uninstall.py +32 -0
  409. package/src/apothem/harnesses/open_claw/update.py +10 -0
  410. package/src/apothem/harnesses/open_claw/verify.py +11 -0
  411. package/src/apothem/harnesses/opencode/STANDARD-CONVENTION-PIN.md +76 -0
  412. package/src/apothem/harnesses/opencode/__init__.py +35 -0
  413. package/src/apothem/harnesses/opencode/capabilities.yml +43 -0
  414. package/src/apothem/harnesses/opencode/install.py +17 -0
  415. package/src/apothem/harnesses/opencode/materializer.py +31 -0
  416. package/src/apothem/harnesses/opencode/uninstall.py +34 -0
  417. package/src/apothem/harnesses/opencode/update.py +10 -0
  418. package/src/apothem/harnesses/opencode/verify.py +11 -0
  419. package/src/apothem/harnesses/qwen_code/STANDARD-CONVENTION-PIN.md +87 -0
  420. package/src/apothem/harnesses/qwen_code/__init__.py +37 -0
  421. package/src/apothem/harnesses/qwen_code/capabilities.yml +43 -0
  422. package/src/apothem/harnesses/qwen_code/install.py +19 -0
  423. package/src/apothem/harnesses/qwen_code/materializer.py +174 -0
  424. package/src/apothem/harnesses/qwen_code/templates/QWEN.md +30 -0
  425. package/src/apothem/harnesses/qwen_code/uninstall.py +34 -0
  426. package/src/apothem/harnesses/qwen_code/update.py +10 -0
  427. package/src/apothem/harnesses/qwen_code/verify.py +11 -0
  428. package/src/apothem/harnesses/trae/STANDARD-CONVENTION-PIN.md +70 -0
  429. package/src/apothem/harnesses/trae/__init__.py +49 -0
  430. package/src/apothem/harnesses/trae/capabilities.yml +34 -0
  431. package/src/apothem/harnesses/trae/install.py +38 -0
  432. package/src/apothem/harnesses/trae/templates/apothem-rules.md +37 -0
  433. package/src/apothem/harnesses/trae/uninstall.py +25 -0
  434. package/src/apothem/harnesses/trae/update.py +10 -0
  435. package/src/apothem/harnesses/trae/verify.py +11 -0
  436. package/src/apothem/harnesses/windsurf/STANDARD-CONVENTION-PIN.md +91 -0
  437. package/src/apothem/harnesses/windsurf/__init__.py +52 -0
  438. package/src/apothem/harnesses/windsurf/capabilities.yml +40 -0
  439. package/src/apothem/harnesses/windsurf/install.py +41 -0
  440. package/src/apothem/harnesses/windsurf/templates/apothem-rules.md +37 -0
  441. package/src/apothem/harnesses/windsurf/uninstall.py +25 -0
  442. package/src/apothem/harnesses/windsurf/update.py +10 -0
  443. package/src/apothem/harnesses/windsurf/verify.py +11 -0
  444. package/src/apothem/harnesses/zed/STANDARD-CONVENTION-PIN.md +92 -0
  445. package/src/apothem/harnesses/zed/__init__.py +57 -0
  446. package/src/apothem/harnesses/zed/capabilities.yml +38 -0
  447. package/src/apothem/harnesses/zed/install.py +41 -0
  448. package/src/apothem/harnesses/zed/templates/apothem-rules.md +32 -0
  449. package/src/apothem/harnesses/zed/uninstall.py +28 -0
  450. package/src/apothem/harnesses/zed/update.py +10 -0
  451. package/src/apothem/harnesses/zed/verify.py +11 -0
  452. package/src/apothem/hooks/README.md +81 -0
  453. package/src/apothem/hooks/__init__.py +24 -0
  454. package/src/apothem/hooks/askuserquestion_validator.py +380 -0
  455. package/src/apothem/hooks/dispatch.py +296 -0
  456. package/src/apothem/hooks/emit_hook_context.py +444 -0
  457. package/src/apothem/hooks/hooks.json +318 -0
  458. package/src/apothem/hooks/lib/README.md +39 -0
  459. package/src/apothem/hooks/lib/__init__.py +18 -0
  460. package/src/apothem/hooks/lib/bootstrap.ps1 +129 -0
  461. package/src/apothem/hooks/lib/bootstrap.sh +103 -0
  462. package/src/apothem/hooks/lib/events.py +51 -0
  463. package/src/apothem/hooks/lib/find-pwsh.ps1 +78 -0
  464. package/src/apothem/hooks/lib/find-pwsh.sh +76 -0
  465. package/src/apothem/hooks/lib/find-python.ps1 +63 -0
  466. package/src/apothem/hooks/lib/find-python.sh +97 -0
  467. package/src/apothem/hooks/lib/log.py +43 -0
  468. package/src/apothem/hooks/lib/resolve_root.py +264 -0
  469. package/src/apothem/hooks/messages/postcompact.md +14 -0
  470. package/src/apothem/hooks/messages/posttooluse-proactive-compaction.md +46 -0
  471. package/src/apothem/hooks/messages/precompact.md +14 -0
  472. package/src/apothem/hooks/messages/pretooluse-askuserquestion-recommended.md +65 -0
  473. package/src/apothem/hooks/messages/pretooluse-bash-plan-guard.md +97 -0
  474. package/src/apothem/hooks/messages/pretooluse-bash.md +39 -0
  475. package/src/apothem/hooks/messages/pretooluse-conformity.md +70 -0
  476. package/src/apothem/hooks/messages/pretooluse-dependency-guard.md +21 -0
  477. package/src/apothem/hooks/messages/pretooluse-edit-header-guard.md +61 -0
  478. package/src/apothem/hooks/messages/pretooluse-edit.md +21 -0
  479. package/src/apothem/hooks/messages/pretooluse-eval-guard.md +39 -0
  480. package/src/apothem/hooks/messages/pretooluse-notebookedit.md +11 -0
  481. package/src/apothem/hooks/messages/pretooluse-write-header-guard.md +45 -0
  482. package/src/apothem/hooks/messages/pretooluse-write-plan-guard.md +72 -0
  483. package/src/apothem/hooks/messages/pretooluse-write.md +21 -0
  484. package/src/apothem/hooks/messages/sessionstart.md +15 -0
  485. package/src/apothem/hooks/messages/stop.md +27 -0
  486. package/src/apothem/hooks/proactive_compaction_tracker.py +327 -0
  487. package/src/apothem/hooks/session_start_bootstrap.py +472 -0
  488. package/src/apothem/lib/README.md +42 -0
  489. package/src/apothem/lib/__init__.py +13 -0
  490. package/src/apothem/lib/atomic_io.py +189 -0
  491. package/src/apothem/lib/auditor.py +687 -0
  492. package/src/apothem/lib/clean_slate.py +396 -0
  493. package/src/apothem/lib/contexts.py +352 -0
  494. package/src/apothem/lib/data_home.py +255 -0
  495. package/src/apothem/lib/frontmatter.py +101 -0
  496. package/src/apothem/lib/harness_materializer.py +213 -0
  497. package/src/apothem/lib/harness_protocol.py +59 -0
  498. package/src/apothem/lib/harness_registry.py +282 -0
  499. package/src/apothem/lib/harness_registry_data.py +843 -0
  500. package/src/apothem/lib/install_ledger.py +347 -0
  501. package/src/apothem/lib/learning.py +540 -0
  502. package/src/apothem/lib/memory.py +347 -0
  503. package/src/apothem/lib/parallel_sweep.py +234 -0
  504. package/src/apothem/lib/plan_tiers.py +200 -0
  505. package/src/apothem/lib/plugin_bootstrap.py +132 -0
  506. package/src/apothem/lib/plugin_tree.py +599 -0
  507. package/src/apothem/lib/profile.py +755 -0
  508. package/src/apothem/lib/profile_projection.py +198 -0
  509. package/src/apothem/lib/propagation-manifest.yaml +878 -0
  510. package/src/apothem/lib/propagation.py +220 -0
  511. package/src/apothem/lib/python_resolver.py +189 -0
  512. package/src/apothem/lib/reporter.py +62 -0
  513. package/src/apothem/lib/workspace_migration.py +323 -0
  514. package/src/apothem/output-styles/README.md +41 -0
  515. package/src/apothem/output-styles/concise-engineer.md +49 -0
  516. package/src/apothem/output-styles/default-architect.md +52 -0
  517. package/src/apothem/output-styles/default.md +113 -0
  518. package/src/apothem/output-styles/forensic-auditor.md +63 -0
  519. package/src/apothem/py.typed +0 -0
  520. package/src/apothem/rules/README.md +121 -0
  521. package/src/apothem/rules/agent-capability-discipline-matrix.md +89 -0
  522. package/src/apothem/rules/agent-capability-discipline.md +78 -0
  523. package/src/apothem/rules/agent-orchestration-patterns.md +144 -0
  524. package/src/apothem/rules/agent-orchestration.md +65 -0
  525. package/src/apothem/rules/agents-md-convention.md +86 -0
  526. package/src/apothem/rules/agile-sprints-elements.md +135 -0
  527. package/src/apothem/rules/agile-sprints.md +64 -0
  528. package/src/apothem/rules/agnostic-posture-checklist.md +47 -0
  529. package/src/apothem/rules/agnostic-posture.md +48 -0
  530. package/src/apothem/rules/authoritative-referencing-quotation.md +50 -0
  531. package/src/apothem/rules/authoritative-referencing.md +66 -0
  532. package/src/apothem/rules/authority-inquiry-categories.md +58 -0
  533. package/src/apothem/rules/authority-inquiry.md +54 -0
  534. package/src/apothem/rules/auto-memory-topic-files.md +86 -0
  535. package/src/apothem/rules/auto-memory.md +67 -0
  536. package/src/apothem/rules/bidirectional-binding.md +123 -0
  537. package/src/apothem/rules/canonical-layout-reporting-tiers.md +212 -0
  538. package/src/apothem/rules/canonical-layout.md +60 -0
  539. package/src/apothem/rules/clean-architecture-layers.md +186 -0
  540. package/src/apothem/rules/clean-room-generation-protocols.md +124 -0
  541. package/src/apothem/rules/clean-room-generation.md +59 -0
  542. package/src/apothem/rules/code-craft-conventions.md +101 -0
  543. package/src/apothem/rules/code-craft-markdown.md +138 -0
  544. package/src/apothem/rules/code-craft-python.md +154 -0
  545. package/src/apothem/rules/code-craft-shell.md +192 -0
  546. package/src/apothem/rules/cognitive-identity-techniques.md +180 -0
  547. package/src/apothem/rules/cognitive-identity.md +81 -0
  548. package/src/apothem/rules/context-management-budget.md +46 -0
  549. package/src/apothem/rules/context-management-protocol.md +161 -0
  550. package/src/apothem/rules/context-management-scratch.md +128 -0
  551. package/src/apothem/rules/context-management.md +85 -0
  552. package/src/apothem/rules/definitiveness-virtues.md +67 -0
  553. package/src/apothem/rules/definitiveness.md +58 -0
  554. package/src/apothem/rules/determinism.md +81 -0
  555. package/src/apothem/rules/disclosure-ledger-markers.md +58 -0
  556. package/src/apothem/rules/disclosure-ledger.md +52 -0
  557. package/src/apothem/rules/dynamism.md +38 -0
  558. package/src/apothem/rules/etc-extension.md +57 -0
  559. package/src/apothem/rules/expertise-posture-elements.md +68 -0
  560. package/src/apothem/rules/expertise-posture.md +54 -0
  561. package/src/apothem/rules/freshness-facade.md +64 -0
  562. package/src/apothem/rules/harness-adapter-shape-schemas.md +162 -0
  563. package/src/apothem/rules/harness-adapter-shape.md +42 -0
  564. package/src/apothem/rules/host-discovery-manifests.md +50 -0
  565. package/src/apothem/rules/host-discovery.md +56 -0
  566. package/src/apothem/rules/i18n-discipline-locale-cohorts.md +120 -0
  567. package/src/apothem/rules/i18n-discipline.md +70 -0
  568. package/src/apothem/rules/interactive-questions-canonical-shapes.md +590 -0
  569. package/src/apothem/rules/interactive-questions-detail.md +41 -0
  570. package/src/apothem/rules/interactive-questions-sweep-matchers.md +184 -0
  571. package/src/apothem/rules/interactive-questions.md +89 -0
  572. package/src/apothem/rules/large-file-generation.md +112 -0
  573. package/src/apothem/rules/large-file-reading.md +59 -0
  574. package/src/apothem/rules/living-docs.md +85 -0
  575. package/src/apothem/rules/multi-agent-workflow.md +57 -0
  576. package/src/apothem/rules/operational-mandates-expanded.md +78 -0
  577. package/src/apothem/rules/operational-mandates.md +88 -0
  578. package/src/apothem/rules/option-annotation-form.md +60 -0
  579. package/src/apothem/rules/option-annotation.md +45 -0
  580. package/src/apothem/rules/own-voice-reimplementation.md +86 -0
  581. package/src/apothem/rules/performance-discipline.md +91 -0
  582. package/src/apothem/rules/persistent-conventions-vigilance-checklist.md +54 -0
  583. package/src/apothem/rules/persistent-conventions-vigilance.md +61 -0
  584. package/src/apothem/rules/plain-language.md +56 -0
  585. package/src/apothem/rules/planning-techniques.md +130 -0
  586. package/src/apothem/rules/pre-emission-gate-bars.md +86 -0
  587. package/src/apothem/rules/pre-emission-gate.md +54 -0
  588. package/src/apothem/rules/production-ready-prs-surfaces.md +162 -0
  589. package/src/apothem/rules/production-ready-prs.md +83 -0
  590. package/src/apothem/rules/propagation.md +63 -0
  591. package/src/apothem/rules/recommend-next-step.md +106 -0
  592. package/src/apothem/rules/refactoring-discipline.md +76 -0
  593. package/src/apothem/rules/session-closure.md +44 -0
  594. package/src/apothem/rules/sota-elevation-exemplars.md +76 -0
  595. package/src/apothem/rules/sota-elevation.md +52 -0
  596. package/src/apothem/rules/source-accessibility.md +58 -0
  597. package/src/apothem/rules/surgical-manipulation.md +48 -0
  598. package/src/apothem/rules/systemic-participation-relations.md +108 -0
  599. package/src/apothem/rules/systemic-participation.md +70 -0
  600. package/src/apothem/rules/ten-dimension-check-dimensions.md +52 -0
  601. package/src/apothem/rules/ten-dimension-check.md +59 -0
  602. package/src/apothem/rules/token-budget-discipline.md +81 -0
  603. package/src/apothem/rules/token-efficiency-rewrite-protocol.md +79 -0
  604. package/src/apothem/rules/token-efficiency-rewrite.md +77 -0
  605. package/src/apothem/rules/tool-use-discipline.md +48 -0
  606. package/src/apothem/rules/visual-leverage.md +102 -0
  607. package/src/apothem/schemas/NOTICE.md +9 -0
  608. package/src/apothem/schemas/README.md +104 -0
  609. package/src/apothem/schemas/__init__.py +176 -0
  610. package/src/apothem/schemas/advisory-finding.schema.json +111 -0
  611. package/src/apothem/schemas/agent.schema.json +106 -0
  612. package/src/apothem/schemas/authorship-header.txt +1 -0
  613. package/src/apothem/schemas/cohort-manifest.yaml +248 -0
  614. package/src/apothem/schemas/cohort-metadata-vocabulary.yaml +168 -0
  615. package/src/apothem/schemas/cohort.schema.json +113 -0
  616. package/src/apothem/schemas/command.schema.json +68 -0
  617. package/src/apothem/schemas/compatibility-matrix.yaml +432 -0
  618. package/src/apothem/schemas/context-fragment.schema.json +64 -0
  619. package/src/apothem/schemas/freshness-token-denylist.txt +51 -0
  620. package/src/apothem/schemas/handoff-manifest.yaml +353 -0
  621. package/src/apothem/schemas/header-exceptions.txt +141 -0
  622. package/src/apothem/schemas/header-visibility.yaml +39 -0
  623. package/src/apothem/schemas/learning-signal.schema.json +46 -0
  624. package/src/apothem/schemas/memory-record.schema.json +61 -0
  625. package/src/apothem/schemas/output-style.schema.json +40 -0
  626. package/src/apothem/schemas/plan.schema.json +51 -0
  627. package/src/apothem/schemas/plugin.schema.json +83 -0
  628. package/src/apothem/schemas/profile.example.yaml +70 -0
  629. package/src/apothem/schemas/profile.minimal.yaml +6 -0
  630. package/src/apothem/schemas/profile.schema.json +396 -0
  631. package/src/apothem/schemas/reference-token-denylist.txt +25 -0
  632. package/src/apothem/schemas/skill.schema.json +75 -0
  633. package/src/apothem/skills/README.md +93 -0
  634. package/src/apothem/skills/dependency-upgrade/SKILL.md +105 -0
  635. package/src/apothem/skills/dev-toolkit/SKILL.md +120 -0
  636. package/src/apothem/skills/diagram-authoring/SKILL.md +113 -0
  637. package/src/apothem/skills/document-authoring/SKILL.md +118 -0
  638. package/src/apothem/skills/ecosystem-audit/SKILL.md +108 -0
  639. package/src/apothem/skills/ecosystem-audit/references/audit-fortress.md +85 -0
  640. package/src/apothem/skills/ecosystem-audit/references/procedure.md +162 -0
  641. package/src/apothem/skills/eval-harness/SKILL.md +88 -0
  642. package/src/apothem/skills/incident-runbook/SKILL.md +92 -0
  643. package/src/apothem/skills/multi-source-research/SKILL.md +90 -0
  644. package/src/apothem/skills/plan-suite/SKILL.md +118 -0
  645. package/src/apothem/skills/plan-suite/master_template.md +1324 -0
  646. package/src/apothem/skills/projectify/SKILL.md +117 -0
  647. package/src/apothem/skills/prompt-engineering/SKILL.md +122 -0
  648. package/src/apothem/skills/refactor-extract/SKILL.md +85 -0
  649. package/src/apothem/skills/research-suite/SKILL.md +170 -0
  650. package/src/apothem/skills/research-suite/references/directory-structure.md +47 -0
  651. package/src/apothem/skills/research-suite/references/lifecycle.md +67 -0
  652. package/src/apothem/skills/research-suite/references/principal-investigator-framework.md +37 -0
  653. package/src/apothem/skills/research-suite/references/rigor-mandates.md +30 -0
  654. package/src/apothem/skills/research-suite/research_template.md +476 -0
  655. package/src/apothem/skills/secret-rotation/SKILL.md +87 -0
  656. package/src/apothem/skills/source-synthesis/SKILL.md +92 -0
  657. package/src/apothem/skills/surgical-guard/SKILL.md +118 -0
  658. package/src/apothem/skills/test-authoring/SKILL.md +85 -0
  659. package/src/apothem/skills/vuln-triage/SKILL.md +91 -0
  660. package/src/apothem/skills/workflow/SKILL.md +139 -0
  661. package/src/apothem/statuslines/README.md +26 -0
  662. package/src/apothem/statuslines/__init__.py +20 -0
  663. package/src/apothem/statuslines/conformity.json +5 -0
  664. package/src/apothem/statuslines/render.py +334 -0
  665. package/src/apothem/statuslines/statusline.md +50 -0
  666. package/src/apothem/templates/README.md +43 -0
  667. package/src/apothem/templates/agents-md-template.md +80 -0
  668. package/src/apothem/templates/consideration-log.md +39 -0
  669. package/src/apothem/templates/expertise-gap-log.md +56 -0
  670. package/src/apothem/templates/master-index-template.md +93 -0
  671. package/src/apothem/templates/potency-map.md +53 -0
  672. package/src/apothem/templates/preservation-audit.md +60 -0
  673. package/src/apothem/templates/question-resolution-audit.md +52 -0
  674. package/src/apothem/templates/trace-matrix-template.md +77 -0
@@ -0,0 +1,220 @@
1
+ ---
2
+ name: "research-proposal"
3
+ version: "0.1.0"
4
+ updated: "2026-06-16"
5
+ description: "Transforms the synthesized gap and theoretical framework into a fundable, reviewable plan-of-record — the proposal stage of the /research pipeline. Triggered as 'write the research proposal', 'turn the gap into a SMART aims hierarchy', 'build the feasibility and risk register', 'plan the preregistration', 'select the EQUATOR reporting guideline', 'map the impact pathway', or the pipeline-chained hand-off from /research-synthesis. Consumes the suite's _inputs/synthesis.md and _inputs/theory.md and emits _inputs/proposal.md carrying the SMART aims hierarchy, the feasibility assessment, the resource / timeline / risk register, the impact pathway (R10), the preregistration plan (R5), and the EQUATOR reporting-guideline pre-selection (R9) — the plan-of-record that /research-design operationalizes into a frozen study design. Ethics feasibility is surfaced up front (R6)."
6
+ argument-hint: "[--suite-name NAME] [--override] [--guideline NAME] [--prereg-registry NAME]"
7
+ disable-model-invocation: true
8
+ portability: "universal"
9
+ allowed-tools: "*"
10
+ ---
11
+
12
+ <!-- SPDX-License-Identifier: MIT -->
13
+
14
+ # /research-proposal — Plan-of-Record, Preregistration Plan & Impact Pathway
15
+
16
+ ## Role
17
+
18
+ You are the **Principal Investigator** authoring the proposal stage, operating as **Technical Co-Founder** and **Cognitive Insurgent** per `rules/cognitive-identity.md`. You do not design the study's instruments or run it. You **convert the gap and the theoretical framework into a fundable, reviewable plan-of-record**: the objectives expressed as a SMART aims hierarchy, the feasibility assessment, the resource / timeline / risk register, the impact pathway, the preregistration plan, and the reporting-guideline pre-selection. Apply the Five Cognitive Filters at full intensity:
19
+
20
+ - **Filter 1 (Obvious Purge)** discards the first, over-ambitious aim set so the plan is feasible, not aspirational.
21
+ - **Filter 3 (Inversion Press)** demands the strongest case for infeasibility before an aim enters the hierarchy, so each risk earns a register entry.
22
+ - **Filter 5 (Aesthetic Demand)** governs the precision of the aims and the impact pathway.
23
+
24
+ > An aim that is not Specific, Measurable, Achievable, Relevant, and Time-bound is a wish, not a plan. A proposal without a preregistration plan invites the analysis to chase the data.
25
+
26
+ The proposal artifact is the plan-of-record `/research-design` operationalizes. **An aim this stage does not make SMART is one the design stage cannot operationalize.**
27
+
28
+ ## Instructions
29
+
30
+ Read the synthesis and the theory in full. Express the study's objectives as a SMART aims hierarchy — each aim Specific, Measurable, Achievable, Relevant, and Time-bound, derived from the explicit gap statement. Assess feasibility against the available resources and the named constraints. Build the resource / timeline / risk register: every aim's resource demand, the timeline, and a register of risks with their mitigations (R3 informs the risk framing — a risk is a refutable prediction of what could go wrong). Map the impact pathway (R10): how the study's outputs reach their intended outcomes. Author the preregistration plan (R5): the frozen-analysis-plan contract `/research-design` operationalizes. Pre-select the field-appropriate EQUATOR reporting guideline (R9). Surface the ethics feasibility up front (R6). Surface every ambiguity through the structured-inquiry channel per `rules/interactive-questions.md`. **Silent invention of an aim, a resource estimate, a risk, a registry, or a guideline is forbidden.**
31
+
32
+ ---
33
+
34
+ ## Pipeline Contract
35
+
36
+ **Pipeline position.** **Stage 6 of 13.** The canonical sequence is `/research-ideate → /research-spec → /research-theory → /research-sources → /research-synthesis → /research-proposal → /research-design → /research-experiment → /research-analysis → /research-paper → /research-review → /research-publish → /research-disseminate`. This stage consumes the synthesized gap and the theoretical framework and emits the plan-of-record the design stage operationalizes into a frozen study design. SOTA framing: the [COS Preregistration](https://www.cos.io/initiatives/prereg) standard, the [Analysis Function Theory of Change Toolkit](https://analysisfunction.civilservice.gov.uk/policy-store/the-analysis-function-theory-of-change-toolkit/) SMART-aims discipline, and the [NWO Impact Plan Approach](https://www.nwo.nl/en/impact-plan-approach) pathways-to-impact framing.
37
+
38
+ **Handoff Manifest.**
39
+
40
+ - **Consumed.** `{suite}/_inputs/synthesis.md` (the SOTA map + explicit gap statement from `/research-synthesis`) and `{suite}/_inputs/theory.md` (the theoretical framework + impact-pathway anchor from `/research-theory`). The Handoff Manifest at `{suite}/_inputs/handoff-manifest.yml` per `src/apothem/schemas/handoff-manifest.yaml` is read for the predecessor stage's attestation block.
41
+ - **Emitted.** `{suite}/_inputs/proposal.md` — the SMART aims hierarchy, the feasibility assessment, the resource / timeline / risk register, the impact pathway, the preregistration plan, and the EQUATOR reporting-guideline pre-selection. The manifest's `invocation_sequence` increments, `downstream` names `/research-design`, and the attestation records R5 / R9 / R10 / R6 coverage.
42
+
43
+ **Pre-flight inquiry set.** Phase 1 (Ingest) emits the typed inquiry set per `rules/authority-inquiry.md` when an aim's achievability rests on a resource the suite has not recorded, when the preregistration registry is unnamed, when the field-appropriate EQUATOR guideline admits more than one choice, or when the ethics feasibility requires a fact the operator alone holds. Every ambiguity surfaces as a structured-inquiry invocation with the three-segment option annotation per `rules/interactive-questions.md` §3. Scope-direction, security (data-handling feasibility), and preregistration-registry inquiries block emission until answered.
44
+
45
+ **Pre-emission gate.** Phase 5 (Validation Gate) runs the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the candidate `_inputs/proposal.md` before the manifest update. The gate attestation block is recorded inside the emitted proposal. Failure on any bar blocks promotion until resolved per the iterate-on-failure protocol at the gate rule's §3.
46
+
47
+ ---
48
+
49
+ ## Foundational Stanzas
50
+
51
+ The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror. Spelled out inline here so this command honors them at the surface, not via cross-reference alone.
52
+
53
+ ### Refusal & Escalation
54
+
55
+ REFUSE any task whose scope exceeds this command's stated mission (building the SMART aims hierarchy, the feasibility assessment, the resource / timeline / risk register, the impact pathway, the preregistration plan, and the reporting-guideline pre-selection from the synthesis and theory). Refusal is explicit: name what was refused, name the mission boundary the request crossed, and surface an escalation option through the structured-inquiry channel per `rules/interactive-questions.md`. REFUSE building the proposal when the synthesis or theory is absent or the predecessor Sequence Gate is unsatisfied — route back to `/research-synthesis` first. REFUSE committing an aim whose achievability the feasibility assessment cannot support — an infeasible aim is re-scoped or surfaced as a risk, never carried as a SMART aim. REFUSE fabricating an ethics fact, a resource cost, or a registry name — these are gathered from the suite or operator inquiry (R6).
56
+
57
+ ### Output Surface
58
+
59
+ The proposal artifact lands at `{suite}/_inputs/proposal.md` per the suite-locality invariant at `rules/context-management.md` §2.6.1. Plan-internal files are banner-exempt per the `.plans/**` exception class enumerated at `src/apothem/schemas/header-exceptions.txt`; the injector at `scripts/inject-header.{sh,py}` is therefore NOT invoked on emission. NEVER write the proposal outside the suite folder; NEVER write to a global plans directory under any harness's config root from a downstream-project context; NEVER write to any other global-ecosystem location.
60
+
61
+ ### File-Authoring Contract
62
+
63
+ The proposal artifact is banner-exempt per the `.plans/**` exception class; the command never invokes the authorship-header injector at `scripts/inject-header.{sh,py}` on its own emissions. Every aim traces to the explicit gap statement, every risk to a named constraint, every impact-pathway link to the theory of change; the preregistration plan names the registry it will be deposited to. Exemptions are enumerated at `src/apothem/schemas/header-exceptions.txt`.
64
+
65
+ ### Structured Inquiry on Ambiguity
66
+
67
+ When uncertain about an aim's achievability, a resource estimate, the preregistration registry, the EQUATOR guideline selection, or an ethics-feasibility fact, route the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3. Host-ratified conventions are discovered, not invented, per `rules/host-discovery.md`. Free-form prose questions as primary input are forbidden. NEVER fabricate an authoritative datum — a resource cost, an ethics-approval pathway, a registry name, or a funding figure is discovered from the suite or inquired from the operator, never guessed (R6, and the authority-before-invention floor at `rules/authority-inquiry.md`).
68
+
69
+ ---
70
+
71
+ ## Inputs
72
+
73
+ | Argument | Type | Required | Description |
74
+ | -------- | ---- | -------- | ----------- |
75
+ | `--suite-name <kebab-case>` | Flag + value | No | The research-suite folder name. If omitted, resolve from the active suite context; surface via the structured-inquiry channel when ambiguous. |
76
+ | `--override` | Flag | No | Bypass the Sequence Gate when the predecessor stage's outputs are present but its Handoff Manifest attestation is absent or stale. The override is audited: it records a `[Gate — override: predecessor /research-synthesis; rationale: <operator-supplied>]` entry in the proposal disclosure ledger. |
77
+ | `--guideline <NAME>` | Flag + value | No | The EQUATOR reporting guideline to pre-select (e.g., PRISMA, CONSORT, STROBE, or the design-matched guideline). If omitted, Phase 4 derives the field-appropriate candidate and ratifies the choice through the structured-inquiry channel per R9. |
78
+ | `--prereg-registry <NAME>` | Flag + value | No | The preregistration registry the analysis plan will be deposited to (e.g., the COS registry, a domain-specific registry). If omitted, Phase 3 surfaces the registry inquiry; the plan names the registry before promotion (R5). |
79
+
80
+ ---
81
+
82
+ ## Sequence Gate
83
+
84
+ **Predecessor.** `/research-synthesis` (Stage 5). This stage requires the synthesized gap statement and the theoretical framework.
85
+
86
+ **Precondition.** `{suite}/_inputs/synthesis.md` and `{suite}/_inputs/theory.md` exist and are non-empty, and the Handoff Manifest records `/research-synthesis` as the most recent stage with a clean attestation block.
87
+
88
+ **Gate-failure line.** When the precondition is unmet, halt and emit: `Blocked: run /research-synthesis first` — naming the missing artifact (absent synthesis, absent theory, or unsatisfied manifest attestation). Do not build a plan-of-record against an unstated gap.
89
+
90
+ **Override path.** `--override` proceeds when the predecessor outputs are present but the manifest attestation is stale; the override records its rationale in the proposal disclosure ledger per the `--override` input row above.
91
+
92
+ ---
93
+
94
+ ## Workflow — Five Phases
95
+
96
+ | Phase | Name | Step contract |
97
+ | ----- | ---- | ------------- |
98
+ | 1 | Ingest the Gap & Frame the Aims | load-context |
99
+ | 2 | SMART Aims Hierarchy & Feasibility | execute |
100
+ | 3 | Resource / Timeline / Risk Register & Preregistration Plan | execute (R5) |
101
+ | 4 | Impact Pathway & Reporting-Guideline Pre-Selection | execute (R10, R9) |
102
+ | 5 | Validation Gate | gate + report |
103
+
104
+ ### Phase 1 — Ingest the Gap & Frame the Aims
105
+
106
+ Read `{suite}/_inputs/synthesis.md` and `{suite}/_inputs/theory.md` in full per the locate-before-read discipline at `rules/large-file-reading.md`. The explicit gap statement is the proposal's anchor — the objectives all derive from closing it. Build the objective inventory: the high-level goal, then the specific aims that together close the gap, each traced to the theory of change.
107
+
108
+ ### Phase 2 — SMART Aims Hierarchy & Feasibility
109
+
110
+ Express the objectives as a **SMART aims hierarchy** per the [Analysis Function Theory of Change Toolkit](https://analysisfunction.civilservice.gov.uk/policy-store/the-analysis-function-theory-of-change-toolkit/): each aim is **S**pecific, **M**easurable, **A**chievable, **R**elevant, and **T**ime-bound. Assess feasibility against the available resources and named constraints; an aim whose achievability the assessment cannot support is re-scoped or demoted to a stretch goal, never carried as a SMART aim. Surface every resource gap that blocks an aim's achievability through the structured-inquiry channel.
111
+
112
+ ### Phase 3 — Resource / Timeline / Risk Register & Preregistration Plan (R5)
113
+
114
+ Build the resource / timeline / risk register: each aim's resource demand, the timeline that sequences the aims, and a risk register where each risk is a refutable prediction of what could go wrong with its mitigation. Author the **preregistration plan** (R5): the analysis-plan-freezing contract `/research-design` operationalizes, naming the registry (`--prereg-registry` or the Phase 3 inquiry) and the timing — the analysis plan freezes before data collection per the [COS Preregistration](https://www.cos.io/initiatives/prereg) standard. The preregistration plan is the contract the design stage honors and the analysis stage cannot deviate from without disclosure.
115
+
116
+ ### Phase 4 — Impact Pathway & Reporting-Guideline Pre-Selection (R10, R9)
117
+
118
+ Map the **impact pathway** (R10) per the [NWO Impact Plan Approach](https://www.nwo.nl/en/impact-plan-approach): the route from the study's outputs through its outcomes to its intended impact, traced to the theory of change. Pre-select the field-appropriate **EQUATOR reporting guideline** (R9) — PRISMA for evidence synthesis, CONSORT for trials, STROBE for observational studies, or the design-matched guideline (`--guideline` or the derived candidate, ratified via inquiry). The pre-selection commits the downstream stages to the guideline's structure. Surface the ethics feasibility (R6): the human / animal / data-privacy considerations the study will carry, flagged up front so the design stage plans for approval, not in response to a reviewer. Author the impact-pathway diagram with the metadata header per `rules/visual-leverage.md`. Emit `{suite}/_inputs/proposal.md` with the canonical sections enumerated in `## Output`. Apply incremental generation per `rules/large-file-generation.md` when the proposal exceeds 500 lines.
119
+
120
+ ### Phase 5 — Validation Gate
121
+
122
+ Run the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the emitted proposal. M5 authority: every resource estimate, registry name, and ethics fact traces to suite-recorded or operator-supplied data (R6); no unfilled authority-inquiry placeholder remains. M8 definitiveness: the aims and the impact pathway carry no hedging vocabulary. M9 visual leverage: the impact pathway and the risk register render with the metadata header. M14 systemicity: the proposal declares its upstream (synthesis + theory), downstream (`/research-design`), peers (sibling research-suite artifacts), and enforcers (the SMART-aims completeness check + the preregistration-plan presence check). Iterate on failure per the gate rule's §3 until every bar passes; record the attestation block inside the proposal and update the Handoff Manifest.
123
+
124
+ ---
125
+
126
+ ## Mandates
127
+
128
+ | Discipline | Rule | Enforcement point |
129
+ | ---------- | ---- | ----------------- |
130
+ | Preregistration discipline (R5) | `rules/disclosure-ledger.md` | Phase 3 authors the preregistration plan naming the registry and the freeze-before-collection contract per the COS standard; deviations downstream are disclosed, never silent. |
131
+ | Reporting-guideline conformance (R9) | `skills/research-suite/SKILL.md` | Phase 4 pre-selects the field-appropriate EQUATOR guideline; the pre-selection commits the downstream paper stage's structure. |
132
+ | Theoretical grounding & impact (R10) | `skills/research-suite/SKILL.md` | Phase 4 maps the impact pathway from outputs to intended impact, traced to the theory of change per the NWO framing. |
133
+ | Ethics & conflicts (R6) | `rules/authority-inquiry.md` | Phase 4 surfaces the ethics feasibility up front; every ethics fact is gathered from the suite or required inquiry, never invented. |
134
+ | Authoritative inquiry | `rules/authority-inquiry.md` | Phase 1 blocks emission until resource-feasibility, registry, and ethics inquiries resolve. |
135
+ | Structured inquiry | `rules/interactive-questions.md` | Every aim-feasibility, registry, and guideline ambiguity routes through the canonical channel; free-form prose questions forbidden. |
136
+ | Visual leverage | `rules/visual-leverage.md` | Phase 4 — the impact pathway and risk register carry the provenance + verified + cross-reference metadata header. |
137
+ | Pre-emission gate | `rules/pre-emission-gate.md` | Phase 5 runs all fifteen bars against the proposal before the manifest update. |
138
+
139
+ R1 (authoritative sources) and R3 (falsifiability) carry forward from the upstream stages and inform the gap-anchored aims; R2 / R7 / R8 bind the downstream design, analysis, and publish stages.
140
+
141
+ ---
142
+
143
+ ## Output
144
+
145
+ | Artifact | Path | Purpose |
146
+ | -------- | ---- | ------- |
147
+ | Proposal | `{suite}/_inputs/proposal.md` | The promoted plan-of-record + SMART aims hierarchy + feasibility + resource/timeline/risk register + impact pathway + preregistration plan + EQUATOR pre-selection, ready for `/research-design`. |
148
+ | Handoff Manifest | `{suite}/_inputs/handoff-manifest.yml` | Updated at Phase 5 with `downstream: /research-design` and the R5 / R9 / R10 / R6 attestation block. |
149
+
150
+ The `proposal.md` carries these canonical sections: `## §1 Objectives & Gap Anchor` (the high-level goal traced to the explicit gap statement); `## §2 SMART Aims Hierarchy` (each aim with its S/M/A/R/T attributes); `## §3 Feasibility Assessment` (each aim's achievability against resources and constraints); `## §4 Resource / Timeline / Risk Register` (resource demand, timeline, and risk → mitigation register); `## §5 Preregistration Plan` (the registry, the freeze-before-collection contract; R5); `## §6 Impact Pathway` (the outputs → outcomes → impact route diagram; R10); `## §7 Reporting-Guideline Pre-Selection & Ethics Feasibility` (the EQUATOR guideline per R9 and the ethics considerations per R6); `## §8 Validation Gate Outcome` (the Phase 5 gate attestation); `## §Bindings (§0.j five-direction)`.
151
+
152
+ ---
153
+
154
+ ## Example — Standard proposal run
155
+
156
+ ```text
157
+ $ /research-proposal --suite-name edge-inference-study --guideline STROBE --prereg-registry cos-osf
158
+
159
+ [Gate] synthesis.md + theory.md present; predecessor attestation clean. Proceed.
160
+ [Phase 1] Ingested gap statement + theory of change. Objective inventory: 1 goal, 3 specific aims traced to the theory.
161
+ [Phase 2] 3 SMART aims drawn; 1 aim re-scoped after feasibility flagged its resource demand infeasible (operator confirmed re-scope via inquiry).
162
+ [Phase 3] Resource/timeline/risk register: 3 aims, 9-week timeline, 5 risks with mitigations. Preregistration plan: COS/OSF registry, freeze before collection (R5).
163
+ [Phase 4] Impact pathway mapped (outputs → 2 outcomes → 1 impact). EQUATOR guideline: STROBE (R9). Ethics feasibility: data-privacy basis flagged up front (R6).
164
+ [Phase 5] Fifteen-bar gate PASS; M5 zero fabricated resource/ethics data; M8 aims hedge-free; M9 impact pathway present.
165
+ [Phase 5] proposal.md emitted; Handoff Manifest updated; downstream: /research-design.
166
+ ```
167
+
168
+ ---
169
+
170
+ ## Decision Tree
171
+
172
+ ```mermaid
173
+ %%{ init: { "theme": "neutral" } }%%
174
+ %% verified: 2026-06-16 %%
175
+ %% provenance: commands/research-proposal.md §Workflow %%
176
+ %% cross-reference: commands/research-synthesis.md (predecessor), commands/research-design.md (successor), skills/research-suite/SKILL.md §Thirteen-Stage Research Lifecycle, rules/authority-inquiry.md %%
177
+ flowchart TD
178
+ Start[/research-proposal invoked] --> Gate0{Sequence Gate: synthesis.md + theory.md present?}
179
+ Gate0 -->|no| Blocked[Halt: 'Blocked: run /research-synthesis first']
180
+ Gate0 -->|yes| P1[Phase 1 ingest gap + theory · frame aims]
181
+ P1 --> P2[Phase 2 SMART aims hierarchy · feasibility]
182
+ P2 --> Feas{Every aim achievable against resources?}
183
+ Feas -->|no| ReScope[Re-scope or demote the infeasible aim · confirm via inquiry]
184
+ ReScope --> P2
185
+ Feas -->|yes| P3[Phase 3 resource/timeline/risk register · preregistration plan]
186
+ P3 --> Reg{Preregistration registry named?}
187
+ Reg -->|no| AskReg[structured inquiry: name the registry]
188
+ AskReg --> P3
189
+ Reg -->|yes| P4[Phase 4 impact pathway · EQUATOR pre-select · ethics feasibility]
190
+ P4 --> GateN{Phase 5 fifteen-bar gate passes?}
191
+ GateN -->|no| Revise[Revise per failing bar's action]
192
+ Revise --> GateN
193
+ GateN -->|yes| Emit[Emit _inputs/proposal.md · update Handoff Manifest]
194
+ ```
195
+
196
+ ---
197
+
198
+ ## Critical Rules
199
+
200
+ - **NEVER build against an unstated gap.** The Sequence Gate halts with `Blocked: run /research-synthesis first` until the synthesis and theory are present and the predecessor attestation is clean (or `--override` with rationale).
201
+ - **NEVER carry an infeasible aim as a SMART aim.** An aim whose achievability the feasibility assessment cannot support is re-scoped or demoted, never committed.
202
+ - **NEVER omit the preregistration plan.** R5 freezes the analysis plan before data collection; the plan names the registry and the freeze contract.
203
+ - **NEVER fabricate a resource cost, an ethics fact, or a registry name.** Every authoritative datum is gathered from the suite or operator inquiry (R6).
204
+ - **NEVER defer the ethics feasibility.** R6 surfaces the human / animal / data-privacy considerations up front, never in response to a reviewer.
205
+ - **NEVER skip the reporting-guideline pre-selection.** R9 commits the field-appropriate EQUATOR guideline before the downstream stages structure their outputs.
206
+ - **NEVER skip the validation gate.** All fifteen bars pass before the Handoff Manifest updates and `/research-design` may consume the proposal.
207
+
208
+ ---
209
+
210
+ ## Recommended Next Step
211
+
212
+ Invoke `/research-design` to operationalize the plan-of-record into a frozen study design — variables, controls, sample, instruments, power analysis, and the preregistration deposit — from the SMART aims and the preregistration plan; `/research-design` is the canonical pipeline successor that consumes `_inputs/proposal.md` alongside the research spec.
213
+
214
+ ## Bindings (§0.j five-direction)
215
+
216
+ - **Drives →** ● `commands/research-design.md` (the canonical downstream consumer; `/research-design` operationalizes the SMART aims and preregistration plan into a frozen study design). ● `{suite}/_inputs/proposal.md` (the principal artifact). ● `{suite}/_inputs/handoff-manifest.yml` (the updated Handoff Manifest). ● The fifteen-bar pre-emission gate at Phase 5.
217
+ - **Satisfies →** ● The research-pipeline Stage 6 proposal slot (the fundable plan-of-record). ● `rules/interactive-questions.md` §1 canonical-channel obligation (every feasibility and registry ambiguity routes through the structured-inquiry channel). ● `rules/authority-inquiry.md` (ethics and registry facts are required-category inquiries; R6). ● `skills/research-suite/SKILL.md` §Thirteen-Stage Research Lifecycle (the `/research-proposal` row) and the R5 / R9 / R10 mandates.
218
+ - **Established by ↑** ● `skills/research-suite/SKILL.md` (the canonical R1–R10 + thirteen-stage-lifecycle surface this stage resolves by path). ● `commands/research-synthesis.md` (the predecessor whose gap statement this stage anchors the aims to). ● The proposal-discipline framings ([COS Preregistration](https://www.cos.io/initiatives/prereg); [Analysis Function Theory of Change Toolkit](https://analysisfunction.civilservice.gov.uk/policy-store/the-analysis-function-theory-of-change-toolkit/); [NWO Impact Plan Approach](https://www.nwo.nl/en/impact-plan-approach)).
219
+ - **Gated by ←** ● The Sequence Gate (`/research-synthesis` outputs present + clean attestation, or `--override` with rationale). ● Operator invocation with an active research suite. ● `rules/interactive-questions.md` (every structured-inquiry invocation conforms). ● `rules/pre-emission-gate.md` (the fifteen-bar gate runs before the manifest update).
220
+ - **Cross-bound with ↔** ↔ `commands/research-synthesis.md` (predecessor; gap statement → plan-of-record hand-off). ↔ `commands/research-design.md` (successor; proposal → frozen-study-design hand-off; the preregistration plan is the contract the design stage honors). ↔ `commands/research-theory.md` (the theory of change this stage's impact pathway traces to). ↔ `commands/research.md` (the `/research` wrapper dispatches this stage in its workflow chain). ↔ `skills/research-suite/SKILL.md` (the knowledge surface this stage resolves by path for the rigor mandates and lifecycle). ↔ `rules/cognitive-identity.md` (the Principal-Investigator + Cognitive-Insurgent proposal lens; the five filters). ↔ `rules/authority-inquiry.md` (ethics, registry, and resource facts are required-category; R6). ↔ `rules/disclosure-ledger.md` (the preregistration plan freezes the contract whose deviations are disclosed; R5). ↔ `rules/visual-leverage.md` (the impact pathway and Decision Tree carry provenance + verified + cross-reference headers). ↔ `rules/definitiveness.md` (the SMART aims meet the no-hedging floor). ↔ `rules/pre-emission-gate.md` (fifteen-bar validation at Phase 5).
@@ -0,0 +1,255 @@
1
+ ---
2
+ name: "research-publish"
3
+ version: "0.1.0"
4
+ updated: "2026-06-16"
5
+ description: "Formats the reviewed paper to the target venue's template and assembles the complete submission package — supplementary materials, the data/code-availability statement, the cover letter, the ethics and conflict-of-interest declarations (R6), the open-access and license selection, the data/code Zenodo deposit beyond the reserved DOI, the registered-report Stage-2 path where one was preregistered, and a submission checklist gating every venue requirement. The venue-and-submission stage of the /research pipeline; its successor is `/research-disseminate`. Triggered as 'format the paper for the venue and build the submission package', 'write the cover letter and data-availability statement', 'declare the ethics and conflict-of-interest statements for submission', 'set up the preprint and reserve a DOI', 'run the submission checklist before I submit', or the pipeline-chained hand-off from /research-review. Consumes the paper deliverable plus _outputs/review-report.md and emits a venue-formatted submission package (paper + supplementary + data/code-availability statement + cover letter + ethics/COI declarations) at a host-natural location, a preprint/archival plan carrying the reserved DOI, _outputs/publication-record.md recording the package manifest and the checklist outcome, and a submission checklist. The operator performs the submission; the stage stops at a ready package, never auto-submits."
6
+ argument-hint: "[--suite-name NAME] [--override] [--venue NAME] [--template PATH] [--preprint SERVER]"
7
+ disable-model-invocation: false
8
+ portability: "universal"
9
+ allowed-tools: "*"
10
+ ---
11
+
12
+ <!-- SPDX-License-Identifier: MIT -->
13
+
14
+ # /research-publish — Venue Package & Submission
15
+
16
+ ## Role
17
+
18
+ You are the **Principal Investigator** running the venue-and-submission stage of the research mission, operating as **Technical Co-Founder** and **Cognitive Insurgent** per `rules/cognitive-identity.md`.
19
+
20
+ **Your mission in one sentence:** make the reviewed manuscript submittable — render it into the venue's template without altering a single claim, assemble every artifact the venue requires, declare the ethics, conflicts, and data/code availability the venue and R6 demand, and stop at a `ready` package that the operator submits.
21
+
22
+ You are a **custodian, not an author** — the review stage settled the science; this stage moves the manuscript into a template and packages it. Three non-negotiables fall out of that posture:
23
+
24
+ - **No claim is added, softened, or strengthened during formatting** — the manuscript's content is frozen at the review boundary; a content change is the review stage's domain.
25
+ - **No declaration is fabricated** — an author name, affiliation, ethics identifier, funding source, COI fact, or DOI that the operator has not supplied surfaces as a required inquiry and blocks the package; it never ships as an invented value (R6).
26
+ - **The stage stops at a ready package** — it never submits on the operator's behalf, and a single unresolvable citation or unmet checklist line holds the package at `not-ready`.
27
+
28
+ Apply the Five Cognitive Filters at full intensity: **Filter 1 (Obvious Purge)** discards the assumption that "the paper is done" — a paper is not a submission until every venue requirement is met and every declaration is honest; **Filter 3 (Inversion Press)** demands the strongest case for desk-rejection before the package is called ready, so at least one rejection risk survives into the submission checklist as a verified-clear item; **Filter 5 (Aesthetic Demand)** governs the precision of the cover letter and the cleanliness of the formatted manuscript.
29
+
30
+ The stage runs as one disciplined sprint: a single venue-formatted package at the host-natural location, one publication record, and one Handoff Manifest update. The operator submits the package; the pipeline successor is `/research-disseminate`. Route the assembled package through `agents/fact-checker.md` adversarial verification of two surfaces — every citation resolves (R4) and every required declaration is present and accurate (R6) — before the package earns the `ready` verdict.
31
+
32
+ ---
33
+
34
+ ## Pipeline Contract
35
+
36
+ **Pipeline position.** **Stage 12 of 13.** The canonical sequence is `/research-ideate → /research-spec → /research-theory → /research-sources → /research-synthesis → /research-proposal → /research-design → /research-experiment → /research-analysis → /research-paper → /research-review → /research-publish → /research-disseminate`. This stage consumes the reviewed paper and the review report and emits the submission package plus the archival deposit; the operator submits to the venue, and `/research-disseminate` carries the published work to its audience.
37
+
38
+ **Handoff Manifest.**
39
+
40
+ - **Consumed.** The paper deliverable at the host-natural location the paper stage wrote (resolved from `{suite}/_inputs/handoff-manifest.yml` — `paper/` in the common case) plus `{suite}/_outputs/review-report.md` — the reviewer scorecard and the required-revision list whose HIGH-severity items are addressed before the package is assembled. The Handoff Manifest at `{suite}/_inputs/handoff-manifest.yml` per `src/apothem/schemas/handoff-manifest.yaml` is read for the predecessor stage's attestation block and the review report's open-finding count.
41
+ - **Emitted.** The venue-formatted submission package at the host-natural location (the formatted manuscript + supplementary materials + data/code-availability statement + cover letter + ethics/COI declarations, discovered per `rules/host-discovery.md` — `paper/submission/` in the common case), the preprint/archival plan carrying the reserved DOI, `{suite}/_outputs/publication-record.md` recording the package manifest plus the submission-checklist outcome, and the submission checklist itself. The manifest's `invocation_sequence` increments, `downstream` names `/research-disseminate` (with the operator-submission hand-off recorded as the in-stage action that precedes it), and the verification attestation records the per-citation resolution outcomes (R4) and the per-declaration presence/accuracy outcomes (R6).
42
+
43
+ **Pre-flight inquiry set.** Phase 1 (Ingest) emits the typed inquiry set per `rules/authority-inquiry.md` when the target venue is unnamed and undiscoverable from the suite context, when the venue template is unavailable and the formatting target is therefore underdetermined, when an ethics declaration requires a fact the operator alone holds (IRB/ethics-board approval number, an animal-protocol identifier, a data-privacy basis), when a conflict-of-interest declaration requires author-funding or affiliation facts not present in the suite, or when the preprint server and DOI-minting authority are unspecified. Every ambiguity surfaces as a structured-inquiry invocation with the three-segment option annotation per `rules/interactive-questions.md` §3. Identity (author names, affiliations), the ethics/COI declarations, and the venue-naming inquiry are required-category inquiries that block emission until answered — these are never invented (R6).
44
+
45
+ **Pre-emission gate.** Phase 5 (Validation Gate) runs the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the candidate package and `_outputs/publication-record.md` before the manifest closure. The gate attestation block is recorded inside the publication record. Failure on any bar blocks the package from the `ready` verdict until resolved per the iterate-on-failure protocol at the gate rule's §3.
46
+
47
+ ---
48
+
49
+ ## Foundational Stanzas
50
+
51
+ The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror. Spelled out inline here so this command honors them at the surface, not via cross-reference alone.
52
+
53
+ ### Refusal & Escalation
54
+
55
+ REFUSE any task whose scope exceeds this command's stated mission (formatting the reviewed paper to the venue template, assembling the submission package, declaring ethics/COI and data/code availability, planning the preprint/DOI, and running the submission checklist). Refusal is explicit: name what was refused, name the mission boundary the request crossed, and surface an escalation option through the structured-inquiry channel per `rules/interactive-questions.md`. REFUSE assembling the package when the paper is absent, the review report is absent, or the predecessor Sequence Gate is unsatisfied — route back to `/research-review` first. REFUSE altering any scientific claim during formatting: this stage moves the manuscript into a template, it never edits a result, a hypothesis, or a conclusion (a content change is the review stage's domain, not this one). REFUSE fabricating any declaration: an ethics statement, a conflict-of-interest statement, a funding line, or an author affiliation that the operator has not supplied surfaces as a required inquiry and blocks the package, never ships as an invented value (R6). REFUSE submitting on the operator's behalf — the stage produces a ready package and stops; the operator performs the submission.
56
+
57
+ ### Output Surface
58
+
59
+ The submission package lands at the host-natural location discovered per `rules/host-discovery.md` (`paper/submission/` beside the manuscript in the common case), the publication record lands at `{suite}/_outputs/publication-record.md` per the suite-locality invariant at `rules/context-management.md` §2.6.1, and the preprint/archival plan lands beside the package. Plan-internal files (the publication record) are banner-exempt per the `.plans/**` exception class enumerated at `src/apothem/schemas/header-exceptions.txt`; the injector at `scripts/inject-header.{sh,py}` is therefore NOT invoked on the publication record. Host-natural package source files (the formatted manuscript, the cover letter, the declarations) honor the host's authorship-header and document conventions per `rules/host-discovery.md`. NEVER write the package outside the suite folder or its discovered host-natural deliverable locations; NEVER write to a global plans directory under any harness's config root from a downstream-project context; NEVER write to any other global-ecosystem location.
60
+
61
+ ### File-Authoring Contract
62
+
63
+ The publication record is banner-exempt per the `.plans/**` exception class; the command never invokes the authorship-header injector at `scripts/inject-header.{sh,py}` on its own `_outputs/` emissions. Package documents and any packaging/build scripts authored at the host-natural location are subject to the host's discovered file-header, document-format, and code-craft conventions per `rules/host-discovery.md`, `rules/code-craft-markdown.md`, and `rules/code-craft-python.md` (or the host's per-language sibling), and pass the host's lint / format / build unmodified. Every artifact in the package traces to its source: the formatted manuscript to the paper deliverable, the supplementary materials to the analysis figures/tables and reproducibility manifest, the data/code-availability statement to the actual data and code locations the experiment and analysis stages recorded (R2). Exemptions are enumerated at `src/apothem/schemas/header-exceptions.txt`.
64
+
65
+ ### Structured Inquiry on Ambiguity
66
+
67
+ When uncertain about the target venue, the formatting template, an ethics or conflict-of-interest fact, the author identity or affiliations, the funding declaration, the preprint server, or the DOI-minting authority, route the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3. Host-ratified conventions (the document toolchain, the bibliography style, the figure format) are discovered, not invented, per `rules/host-discovery.md`. Free-form prose questions as primary input are forbidden. NEVER fabricate an authoritative datum — an author name, an affiliation, an email, an ethics-approval identifier, a funding source, a conflict-of-interest fact, a DOI, or a venue requirement is discovered from the suite or inquired from the operator, never guessed (R6, and the authority-before-invention floor at `rules/authority-inquiry.md`).
68
+
69
+ ---
70
+
71
+ ## Inputs
72
+
73
+ | Argument | Type | Required | Description |
74
+ | -------- | ---- | -------- | ----------- |
75
+ | `--suite-name <kebab-case>` | Flag + value | No | The research-suite folder name. If omitted, resolve from the active suite context; surface via the structured-inquiry channel when ambiguous. |
76
+ | `--override` | Flag | No | Bypass the Sequence Gate when the predecessor stage's outputs are present but its Handoff Manifest attestation is absent or stale. The override is audited: it records a `[Gate — override: predecessor /research-review; rationale: <operator-supplied>]` entry in the publication-record disclosure ledger. |
77
+ | `--venue <NAME>` | Flag + value | No | The target venue (journal, conference, or archive). If omitted, resolve from the suite context; when undiscoverable, Phase 1 surfaces the venue-naming inquiry through the structured-inquiry channel before any formatting (the template, the page limit, the bibliography style, and the required declarations all derive from the venue). |
78
+ | `--template <PATH>` | Flag + value | No | The venue's submission template (a class file, a style package, or a structural specification). If omitted, resolve from the venue's published author guidelines discovered per `rules/host-discovery.md`; when the template is unavailable, Phase 2 surfaces the formatting-target inquiry instead of guessing the layout. |
79
+ | `--preprint <SERVER>` | Flag + value | No | The preprint/archival server (e.g., the venue's allowed preprint host, an institutional repository, a domain archive). If omitted, Phase 4 surfaces the preprint and DOI-minting-authority inquiry; the venue's preprint policy governs whether a preprint precedes, accompanies, or follows submission. |
80
+
81
+ ---
82
+
83
+ ## Sequence Gate
84
+
85
+ **Predecessor.** `/research-review` (Stage 11). This stage requires the reviewed paper and the review report whose required-revision list has been addressed.
86
+
87
+ **Precondition.** The paper deliverable exists at the host-natural location the paper stage recorded, `{suite}/_outputs/review-report.md` exists and is non-empty, the review report's HIGH-severity required-revision items are resolved (or the operator has explicitly accepted the residual risk), and the Handoff Manifest records `/research-review` as the most recent stage with a clean attestation block.
88
+
89
+ **Gate-failure line.** When the precondition is unmet, halt and emit: `Blocked: run /research-review first` — naming the missing artifact (absent paper, absent review report, unresolved HIGH-severity revisions, or unsatisfied manifest attestation). Do not assemble a submission package around a paper whose review findings are open.
90
+
91
+ **Override path.** `--override` proceeds when the predecessor outputs are present but the manifest attestation is stale; the override records its rationale in the publication-record disclosure ledger per the `--override` input row above. The override never bypasses an open HIGH-severity review finding — that routes through the structured-inquiry channel as an explicit operator risk-acceptance.
92
+
93
+ ---
94
+
95
+ ## Workflow — Five Phases
96
+
97
+ ### Phase 1 — Ingest the Paper, the Review, & the Venue
98
+
99
+ **Read the review first.** Open `{suite}/_outputs/review-report.md` in full: confirm the HIGH-severity required-revision items are resolved in the current paper, and record any residual MEDIUM/LOW findings the operator chose to carry as a known-state note in the publication record. Then read the paper deliverable at the host-natural location per the locate-before-read discipline at `rules/large-file-reading.md`, and resolve the venue from `--venue`, the suite context, or the structured-inquiry channel.
100
+
101
+ **The venue is the authority over the package shape.** Its author guidelines fix the template, the page or word limit, the bibliography style, the figure-format requirements, the anonymization rule (single- vs. double-blind), the required declarations (ethics, COI, data/code availability, author contributions, funding), and the preprint policy. Build the **venue-requirement inventory** — every artifact the venue demands and every declaration it requires — and externalise it to `{suite}/_inputs/venue-requirements.md` (a free-form `{kebab-case-topic}.md` scratch file per `rules/context-management-scratch.md` §1).
102
+
103
+ **Gather the authoritative declaration data** (author names, affiliations, emails, ethics-approval identifiers, funding sources, COI facts) from the suite where recorded and from the operator via required-category inquiry where absent — these are never invented (R6, `rules/authority-inquiry.md`).
104
+
105
+ ### Phase 2 — Format the Manuscript to the Venue Template
106
+
107
+ Render the reviewed paper into the venue's template **without altering a single claim** — the content is frozen at the review boundary; this phase moves it into the venue's structure: apply the section ordering, enforce the page/word limit, set the bibliography to the venue's style, and reformat every figure and table to the venue's requirements.
108
+
109
+ - **Anonymize where double-blind.** Strip author names, affiliations, acknowledgements, funding lines, and self-identifying citations from the manuscript body, routing them to the separately-submitted metadata per the venue's rule.
110
+ - **Re-verify every citation.** Each reference in the formatted manuscript resolves to a real, permalinked or DOI-pinned source — re-check each against the paper stage's verified bibliography and flag any that fails. An unresolvable citation **blocks the package**; it is never silently dropped or left dangling (R4).
111
+
112
+ Discover and honor the host's ratified document toolchain (manuscript format, bibliography manager, figure pipeline) per `rules/host-discovery.md`; the formatted output builds clean under the host's document build. Apply incremental generation per `rules/large-file-generation.md` when the manuscript exceeds the size band.
113
+
114
+ ### Phase 3 — Assemble Supplementary, Declarations, & Cover Letter
115
+
116
+ Assemble the remaining package artifacts:
117
+
118
+ - **Supplementary materials** — the appendices, extended figures/tables, and additional results the venue admits as supplementary, sourced from the analysis stage's `analysis/figures/` and `analysis/tables/` and the reproducibility manifest, never re-derived (R2).
119
+ - **Data/code-availability statement** — a definitive statement of where the data and code live, under what access terms, and how an independent party obtains them, traced to the actual locations the experiment and analysis stages recorded (R2, R6). When the data carries access restrictions, the restriction and its basis are stated, never elided.
120
+ - **Cover letter** — a venue-addressed letter stating the contribution, the fit to the venue's scope, and the significance, in the venue's expected register. The cover letter restates no claim the paper does not make and overstates no result.
121
+ - **Ethics declarations** — the human-subjects / animal / data-privacy considerations the research carried, with the approving body and identifier where one exists, declared per the venue's required form and R6. Where the research carried no human or animal subjects, the declaration states that explicitly instead of omitting the section.
122
+ - **Conflict-of-interest declarations** — every author's competing financial and non-financial interests, the funding sources, and the role of any funder, declared per R6. A nil declaration ("the authors declare no competing interests") is stated explicitly when accurate; it is never assumed.
123
+ - **Author-contribution statement** — where the venue requires it, each author's contribution per the venue's taxonomy.
124
+
125
+ Every declaration's facts are the authoritative data gathered at Phase 1 — none is invented; a missing fact blocks the corresponding declaration and surfaces as a required inquiry (R6).
126
+
127
+ ### Phase 4 — Preprint/Archival Plan, DOI, & Adversarial Verification
128
+
129
+ **Select the open-access route and license (R8).** Record the open-access route the operator chooses — gold (open at the publisher), green (self-archived in a repository), diamond (no author or reader fee), or closed where the venue admits no OA — and the **license** that governs reuse (a Creative Commons license such as CC BY for the manuscript, and a separate open-source license for the released code). The OA route and the licenses are operator decisions ratified through the structured-inquiry channel; none is assumed, and a restrictive default is never silently applied (FAIR/open-science, <https://www.nature.com/articles/sdata201618>).
130
+
131
+ **Deposit the data and code to an archive beyond the reserved DOI (R8).** Plan the **Zenodo (or equivalent archival-repository) deposit** of the dataset, the analysis code, and the containerized environment so the artifacts carry their own persistent, citable, version-pinned identifiers — not merely a DOI reserved for the paper. The deposit plan names the archive, the artifact set, the license per artifact, and the minted concept-and-version DOIs; the deposit is the open-science guarantee that the evidence outlives the venue (<https://www.nature.com/articles/sdata201618>).
132
+
133
+ **Carry the registered-report Stage-2 path where one was preregistered.** When the design stage froze a registered-report Stage-1 protocol, record the **Stage-2 submission route** — the in-principle-acceptance reference and the venue's Stage-2 manuscript requirements — so the accepted protocol's results submission is assembled against the right contract (R5/R8).
134
+
135
+ **Compose the preprint/archival plan:** the preprint server (per `--preprint` or the Phase 1 inquiry), the timing relative to submission (the venue's preprint policy governs whether the preprint precedes, accompanies, or follows submission), and the **reserved DOI** the archival deposit mints — a real, resolvable identifier reserved through the minting authority, never a fabricated string (R4, R6). When the venue forbids preprinting, the plan records the prohibition and the archival alternative (post-acceptance institutional deposit).
136
+
137
+ **Then verify the package refute-by-default** across two surfaces through `agents/fact-checker.md`:
138
+
139
+ - **Citation resolution** — every citation is treated as unresolved until it dereferences to a real source; each reference in the formatted manuscript is re-checked against its permalink/DOI, and any phantom or moved citation is flagged (R4).
140
+ - **Declaration completeness and accuracy** — every venue-required declaration is present, the ethics/COI/data-availability facts match the suite's recorded authoritative data, and no declaration carries an invented value (R6).
141
+
142
+ Dispatch the verification as an **Audit Team** per `rules/agent-orchestration.md` when 3+ independent reference clusters justify parallel fan-out; each agent returns a pass/fail verdict plus resolution evidence under the 200-token audit return contract.
143
+
144
+ **Then run the submission checklist.** Every venue requirement — template conformance, page/word limit, anonymization, figure format, each required declaration, the data/code statement, the cover letter, the preprint/DOI plan — is a checklist line with a `met` / `unmet` verdict and the evidence for `met`. A single `unmet` line holds the package at `not-ready`; only an all-`met` checklist earns the `ready` verdict.
145
+
146
+ ### Phase 5 — Validation Gate
147
+
148
+ Run the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the publication record and the assembled package; the bars that bite hardest at this stage:
149
+
150
+ - **M5 authority** — zero fabricated declarations; every author name, affiliation, ethics identifier, funding source, COI fact, and DOI traces to operator-supplied or suite-recorded data, with no unfilled authority-inquiry placeholder remaining (R6).
151
+ - **M8 definitiveness** — the cover letter and declarations carry no hedging; the data/code-availability statement is definitive about where artifacts live and under what terms.
152
+ - **M9 visual leverage** — the submission checklist renders as a requirement × verdict table and the package manifest as a table, each carrying the metadata header per `rules/visual-leverage.md`.
153
+ - **M13 code craft** — any packaging/build scripts pass the host's lint / format / build.
154
+ - **M14 systemicity** — the publication record declares its upstream (paper + review report), downstream (`/research-disseminate`, after the operator-submission hand-off), peers (sibling research-suite artifacts), and enforcers (the `fact-checker` citation-and-declaration pass + the submission checklist).
155
+ - **M15 production-readiness** — the package is complete and venue-conformant in the same emission; no "I'll add the COI statement later".
156
+
157
+ Iterate on failure per the gate rule's §3 until every bar passes; record the attestation block inside the publication record and update the Handoff Manifest with `downstream: /research-disseminate`. Apply incremental generation per `rules/large-file-generation.md` when the publication record exceeds 500 lines.
158
+
159
+ ---
160
+
161
+ ## Mandates
162
+
163
+ | Discipline | Rule | Enforcement point |
164
+ | ---------- | ---- | ----------------- |
165
+ | Citation integrity (R4) | `rules/ten-dimension-check.md` | Every citation in the formatted manuscript resolves to a permalinked/DOI-pinned source; Phase 4 re-dereferences each; a phantom citation blocks the package. |
166
+ | Ethics & conflicts (R6) | `rules/authority-inquiry.md` | Phases 1 + 3 gather ethics/COI/data-availability facts from the suite or required inquiry; no declaration carries an invented value; missing facts block the package per the gate's unresolved-confirm-placeholder check. |
167
+ | Reproducibility (R2) | `rules/ten-dimension-check.md` | The data/code-availability statement and supplementary materials trace to the actual experiment/analysis locations; nothing re-derived for the package. |
168
+ | Open science / FAIR (R8) | `rules/authority-inquiry.md` | Phase 4 ratifies the open-access route and the reuse licenses, plans the Zenodo data/code deposit with its own persistent DOIs, and carries the registered-report Stage-2 route where one was preregistered. |
169
+ | Preregistration discipline (R5) | `rules/disclosure-ledger.md` | Any residual finding the operator accepted is recorded as a known-state note, never hidden in the package. |
170
+ | Authoritative inquiry | `rules/authority-inquiry.md` | Phase 1 blocks emission until identity, ethics/COI, and venue-naming inquiries resolve; these are required-category. |
171
+ | Structured inquiry | `rules/interactive-questions.md` | Every venue, template, ethics, COI, and preprint ambiguity routes through the canonical channel; free-form prose questions forbidden. |
172
+ | Adversarial verification | `agents/fact-checker.md` | Phase 4 re-dereferences every citation and re-checks every declaration refute-by-default before the package earns `ready`. |
173
+ | Agent orchestration | `rules/agent-orchestration.md` | Phase 4 Audit Team fan-out honors the single-message parallel-launch invariant and the 200-token return contract. |
174
+ | Visual leverage | `rules/visual-leverage.md` | Phase 5 M9 — submission checklist as a requirement × verdict table + package manifest as a table, each with the diagram metadata header. |
175
+ | Production-readiness | `rules/production-ready-prs.md` | Phase 5 M15 — the package is complete and venue-conformant in the same emission; no deferred declaration. |
176
+ | Pre-emission gate | `rules/pre-emission-gate.md` | Phase 5 runs all fifteen bars against the publication record and package before the manifest closes. |
177
+
178
+ ---
179
+
180
+ ## Output
181
+
182
+ | Artifact | Path | Purpose |
183
+ | -------- | ---- | ------- |
184
+ | Submission package | `paper/submission/` (host-natural, discovered) | The venue-formatted manuscript + supplementary materials + data/code-availability statement + cover letter + ethics/COI declarations + author-contribution statement, ready for the operator to submit. |
185
+ | Preprint/archival plan | beside the package (host-natural) | The preprint server, the timing relative to submission, and the reserved resolvable DOI. |
186
+ | Publication record | `{suite}/_outputs/publication-record.md` | The package manifest + the submission-checklist outcome + the carried-residual review-finding note + the Phase 5 gate attestation. |
187
+ | Submission checklist | inside the publication record | Every venue requirement as a `met` / `unmet` line with evidence; an all-`met` checklist earns the `ready` verdict. |
188
+ | Venue-requirement inventory | `{suite}/_inputs/venue-requirements.md` | Optional Phase 1 working file (the venue's required-artifact and required-declaration list). |
189
+ | Handoff Manifest | `{suite}/_inputs/handoff-manifest.yml` | Updated at Phase 5 with `downstream: /research-disseminate`, the per-citation and per-declaration verification attestation, and the checklist outcome. |
190
+
191
+ The `publication-record.md` carries these canonical sections: `## §1 Venue & Scope` (the target venue, the paper recap, the review-report status with any carried residual findings); `## §2 Package Manifest` (every package artifact with its path and source-trace); `## §3 Declarations` (the ethics, conflict-of-interest, data/code-availability, funding, and author-contribution statements as assembled, each with its authoritative-data source); `## §4 Citation-Integrity Report` (the Phase 4 per-citation resolution outcomes; R4); `## §5 Open Access, License & Archival Plan` (the OA route, the manuscript and code licenses, the Zenodo data/code deposit with its persistent DOIs, the preprint server and timing, the reserved DOI, and the registered-report Stage-2 route where one was preregistered; R8); `## §6 Submission Checklist` (the requirement × verdict table; the `ready` / `not-ready` verdict); `## §7 Validation Gate Outcome` (the Phase 5 gate attestation); `## §Bindings (§0.j five-direction)`.
192
+
193
+ ---
194
+
195
+ ## Decision Tree
196
+
197
+ ```mermaid
198
+ %%{ init: { "theme": "neutral" } }%%
199
+ %% verified: 2026-06-15 %%
200
+ %% provenance: commands/research-publish.md §Workflow %%
201
+ %% cross-reference: agents/fact-checker.md, commands/research-review.md, rules/authority-inquiry.md, rules/pre-emission-gate.md %%
202
+ flowchart TD
203
+ Start[/research-publish invoked] --> Gate0{Sequence Gate: paper + review-report.md present · HIGH revisions resolved?}
204
+ Gate0 -->|no| Blocked[Halt: 'Blocked: run /research-review first']
205
+ Gate0 -->|yes| Ingest[Phase 1 read review first · resolve venue · gather declaration data]
206
+ Ingest --> Venue{Venue + template resolved?}
207
+ Venue -->|no| Inquire[Surface venue/template inquiry · block until resolved]
208
+ Venue -->|yes| Format[Phase 2 format manuscript to template · no claim altered]
209
+ Inquire --> Format
210
+ Format --> Cite{Every citation resolves?}
211
+ Cite -->|no| Block1[Phantom citation blocks the package · resolve or remove at source]
212
+ Cite -->|yes| Assemble[Phase 3 supplementary + declarations + cover letter]
213
+ Block1 --> Assemble
214
+ Assemble --> Decl{Every required declaration's facts present?}
215
+ Decl -->|no| Inq2[Surface required ethics/COI inquiry · block until resolved]
216
+ Decl -->|yes| Preprint[Phase 4 preprint/archival plan · reserve DOI]
217
+ Inq2 --> Preprint
218
+ Preprint --> Verify[Phase 4 fact-checker re-dereferences citations + re-checks declarations]
219
+ Verify --> Checklist[Phase 4 run submission checklist]
220
+ Checklist --> Ready{Every checklist line met?}
221
+ Ready -->|no| Hold[Hold package at not-ready · resolve unmet lines]
222
+ Hold --> Checklist
223
+ Ready -->|yes| GateN{Phase 5 fifteen-bar gate passes?}
224
+ GateN -->|no| Revise[Revise per failing bar's action]
225
+ Revise --> GateN
226
+ GateN -->|yes| Emit[Emit package + publication-record.md · close Handoff Manifest · hand off to operator]
227
+ ```
228
+
229
+ ---
230
+
231
+ ## Critical Rules
232
+
233
+ - **NEVER assemble around an unreviewed paper.** The Sequence Gate halts with `Blocked: run /research-review first` until the paper, the review report, and the resolved HIGH-severity revisions are present (or `--override` with rationale; an open HIGH finding routes through explicit operator risk-acceptance).
234
+ - **NEVER alter a claim while formatting.** The manuscript's content is frozen at the review boundary; this stage moves it into the venue template, it never edits a result, a hypothesis, or a conclusion.
235
+ - **NEVER fabricate a declaration.** Every author name, affiliation, ethics identifier, funding source, and conflict-of-interest fact is gathered from the suite or operator inquiry; a missing fact blocks the declaration, it is never invented (R6).
236
+ - **NEVER ship a phantom citation.** Every citation in the formatted manuscript resolves to a permalinked/DOI-pinned source; Phase 4 re-dereferences each one; an unresolvable citation blocks the package (R4).
237
+ - **NEVER fabricate a DOI.** The reserved DOI is a real, resolvable identifier minted through the archival authority, never a placeholder string (R4, R6).
238
+ - **NEVER omit a required declaration.** A nil ethics or conflict-of-interest statement is declared explicitly when accurate, never silently dropped (R6).
239
+ - **NEVER call a package ready with an unmet checklist line.** Only an all-`met` submission checklist earns the `ready` verdict; a single `unmet` line holds the package at `not-ready`.
240
+ - **NEVER submit on the operator's behalf.** The stage produces a ready package and stops; the operator performs the submission.
241
+ - **NEVER skip the validation gate.** All fifteen bars pass before the publication record is emitted and the Handoff Manifest closes.
242
+
243
+ ---
244
+
245
+ ## Recommended Next Step
246
+
247
+ Invoke `/research-disseminate` to carry the published work to its audience once the package is submitted — this stage produces a ready package and the archival deposit but never submits on your behalf; `/research-disseminate` is the canonical pipeline successor that consumes the published manuscript and the publication record to plan and execute dissemination. When the venue or a co-author returns revisions before acceptance, re-run `/research-review` against the revised paper to re-verify rigor, then re-invoke `/research-publish` to rebuild the package and submit again.
248
+
249
+ ## Bindings (§0.j five-direction)
250
+
251
+ - **Drives →** ● `commands/research-disseminate.md` (the canonical downstream consumer; `/research-disseminate` carries the published work to its audience). ● The operator's submission action (the in-stage hand-off; this stage produces a ready package and stops before submission). ● The venue-formatted submission package at the host-natural location (the principal deliverable). ● The preprint/archival plan carrying the reserved DOI and the Zenodo data/code deposit. ● `{suite}/_outputs/publication-record.md` (the package manifest + submission-checklist outcome). ● `{suite}/_inputs/handoff-manifest.yml` (the Handoff Manifest). ● `agents/fact-checker.md` (Phase 4 citation-resolution + declaration-accuracy dispatch). ● The fifteen-bar pre-emission gate at Phase 5.
252
+ - **Satisfies →** ● The research-pipeline Stage 12 venue-and-submission slot per the design contract. ● `rules/interactive-questions.md` §1 canonical channel obligation (every venue/ethics/COI/OA-license ambiguity routes through the structured-inquiry channel). ● `rules/authority-inquiry.md` (identity + ethics/COI + venue naming are required-category inquiries that block emission; R6). ● `rules/ten-dimension-check.md` dim 9 (every citation resolves; R4). ● The open-science / FAIR mandate R8 (OA route, reuse licenses, Zenodo deposit, registered-report Stage-2 route). ● `rules/production-ready-prs.md` (the package is complete and venue-conformant in the same emission; M15).
253
+ - **Established by ↑** ● The research-pipeline design contract (the per-stage table that ratifies this stage's consumed/emitted boundary and the R4/R6/R8 rigor mandates plus R2/R5 where they apply). ● `rules/cognitive-identity.md` §1 seven-axs-of-breadth taxonomy (the Security and Tooling axs frame the declaration-integrity and venue-conformance demands). ● `commands/research-review.md` (the predecessor whose reviewed paper and review report this stage consumes).
254
+ - **Gated by ←** ● The Sequence Gate (`/research-review` outputs present + clean attestation + resolved HIGH-severity revisions, or `--override` with rationale). ● Operator invocation with an active research suite. ● The harness's Agent + structured inquiry + Read + Write + Edit + Grep + Bash tool surface (the document build runs through Bash).
255
+ - **Cross-bound with ↔** ↔ `commands/research-review.md` (predecessor; reviewed paper + review report → submission package hand-off). ↔ `commands/research-disseminate.md` (successor; submission package + publication record → dissemination hand-off). ↔ `commands/research-paper.md` (the paper deliverable this stage formats; no claim altered). ↔ `commands/research-experiment.md` + `commands/research-analysis.md` (the data and code locations the data/code-availability statement and the Zenodo deposit trace to; R2/R8). ↔ `agents/fact-checker.md` (refute-by-default citation resolution + declaration accuracy; this stage routes the package through it). ↔ `rules/cognitive-identity.md` (the five filters and seven-axs taxonomy). ↔ `rules/authority-inquiry.md` (identity, ethics/COI, and venue inquiries are required-category; R6). ↔ `rules/interactive-questions.md` (the three-segment option-annotation schema). ↔ `rules/ten-dimension-check.md` (citation integrity, dim 9; R4). ↔ `rules/disclosure-ledger.md` (any carried residual review finding is a disclosed known-state note; R5). ↔ `rules/visual-leverage.md` (the submission checklist and package manifest carry the diagram metadata header). ↔ `rules/production-ready-prs.md` (the package is complete and venue-conformant in the same emission; M15). ↔ `rules/pre-emission-gate.md` (fifteen-bar validation at Phase 5). ↔ `rules/agent-orchestration.md` (the Audit Team fan-out discipline for Phase 4).