@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,67 @@
1
+ <!-- SPDX-License-Identifier: MIT -->
2
+
3
+ # Thirteen-Stage Research Lifecycle
4
+
5
+ Reference surface for the [`research-suite`](../SKILL.md) skill. Houses the
6
+ thirteen-stage lifecycle and the per-stage invoking-surfaces table the
7
+ `/research` pipeline stages chain against. Loads selectively, beside
8
+ `SKILL.md`, so the router's entry-point stays tight.
9
+
10
+ The `/research` pipeline stages chain through thirteen stages by Sequence
11
+ Gates and Handoff Manifests, mirroring the `/plan` pipeline. The canonical
12
+ chain is `/research-ideate → /research-spec → /research-theory →
13
+ /research-sources → /research-synthesis → /research-proposal →
14
+ /research-design → /research-experiment → /research-analysis → /research-paper
15
+ → /research-review → /research-publish → /research-disseminate`. Resolving
16
+ this surface yields the lifecycle in one fixed order — the same cold
17
+ invocation always yields the same load:
18
+
19
+ 1. `/research-ideate` — problem space → `_inputs/ideation.md` (problem formulation, question generation, scan for invalidated prior hypotheses; the lifecycle Plan stage per the Princeton research-lifecycle and NNLM data-lifecycle framings).
20
+ 2. `/research-spec` — raw question → `_spec/research-spec.md` (falsifiable hypotheses, scope, criteria, metrics).
21
+ 3. `/research-theory` — spec → `_inputs/theory.md` (conceptual / theoretical framework, theory-of-change, defined constructs and their relations per R10).
22
+ 4. `/research-sources` — spec + theory → `sources/<id>.md` + `_inputs/source-ledger.md` (discovery via `research-scout`, extraction via the `multi-source-research` skill).
23
+ 5. `/research-synthesis` — ledger + sources → `_inputs/synthesis.md` (SOTA map, gap statement; `fact-checker`-verified; uses the `source-synthesis` skill).
24
+ 6. `/research-proposal` — synthesis + theory → `_inputs/proposal.md` (objectives → plan-of-record with SMART aims, feasibility, resource and risk plan, impact pathway per R10, preregistration plan per R5, EQUATOR guideline pre-selection per R9).
25
+ 7. `/research-design` — proposal + spec → `_inputs/study-design.md` + `_inputs/preregistration.md` (frozen plan per R5).
26
+ 8. `/research-experiment` — design + preregistration → `_outputs/experiment-log.md` + raw data + `_outputs/reproducibility-manifest.md` (R2).
27
+ 9. `/research-analysis` — raw data + preregistration → `_outputs/analysis.md` + figures/tables (effect sizes + CIs per R7; deviations disclosed).
28
+ 10. `/research-paper` — synthesis + design + analysis → the paper deliverable at a host-natural location (every citation verified per R4; reporting-guideline conformance per R9).
29
+ 11. `/research-review` — paper → `_outputs/review-report.md` (adversarial, refute-by-default reviewer scorecard + severity-triaged revisions).
30
+ 12. `/research-publish` — paper + review report → venue-formatted submission package + `_outputs/publication-record.md` + archival/DOI plan (FAIR deposit per R8).
31
+ 13. `/research-disseminate` — publication record → `_outputs/dissemination-plan.md` (post-acceptance dissemination and impact, preprint, archival, altmetrics tracking, rebuttal / revision loop, registered-report stage-2 per R8).
32
+
33
+ Each stage's surface anchor (its Step-0 consumption point in the Invoking
34
+ Surfaces table below) resolves against this skill's `research_template.md` by
35
+ path. A cold stage that cannot resolve this skill STOPs per the Resolution &
36
+ Recovery clause; it does not proceed on assumed context.
37
+
38
+ ## Invoking Surfaces
39
+
40
+ The thirteen `/research` pipeline stages consume this skill's
41
+ `research_template.md` by direct path resolution:
42
+
43
+ | Command | Consumption point | What the command reads |
44
+ |---------|-------------------|------------------------|
45
+ | `/research-ideate` | Step 0 (surface anchor) | R3 / R10 mandates governing problem formulation, question generation, and invalidated-prior-hypothesis scanning |
46
+ | `/research-spec` | Step 0 (surface anchor) | R1 / R3 / R4 mandates governing question framing and falsifiable-hypothesis authoring |
47
+ | `/research-theory` | Step 0 (surface anchor) | R10 conceptual-framework / theory-of-change / construct-definition criteria |
48
+ | `/research-sources` | Step 0 (surface anchor) | R1 / R4 source-authority and citation-integrity criteria + source-ledger skeleton |
49
+ | `/research-synthesis` | Step 0 (surface anchor) | R1 / R4 adversarial-verification floor + synthesis / gap-statement structure |
50
+ | `/research-proposal` | Step 0 (surface anchor) | R5 / R9 / R10 mandates governing objectives, SMART aims, impact pathway, preregistration plan, and EQUATOR pre-selection |
51
+ | `/research-design` | Step 0 (surface anchor) | R3 / R5 / R7 mandates governing study design, preregistration, and power analysis |
52
+ | `/research-experiment` | Step 0 (surface anchor) | R2 / R6 mandates governing reproducibility-manifest and ethics declarations |
53
+ | `/research-analysis` | Step 0 (surface anchor) | R5 / R7 mandates governing preregistered analysis and statistical rigor |
54
+ | `/research-paper` | Step 0 (surface anchor) | R1 / R4 / R9 citation-verification and reporting-guideline floor + paper-section structure |
55
+ | `/research-review` | Step 0 (surface anchor) | R1–R10 reviewer-scorecard rubric + severity-triage convention |
56
+ | `/research-publish` | Step 0 (surface anchor) | R4 / R6 / R8 mandates governing the submission package, FAIR deposit, and archival/DOI plan |
57
+ | `/research-disseminate` | Step 0 (surface anchor) | R8 / R10 mandates governing dissemination, impact pathway, altmetrics, and registered-report stage-2 |
58
+
59
+ No agent invokes the skill directly; the `/research` pipeline commands are the
60
+ canonical consumption surface.
61
+
62
+ ## Bindings (§0.j five-direction)
63
+
64
+ - **Drives →** ● Every `/research` stage's lifecycle-order resolution and Handoff-Manifest chaining. ● Every stage's Step-0 surface-anchor consumption point.
65
+ - **Satisfies →** ● The [`research-suite`](../SKILL.md) skill's reference-surface obligation (the lifecycle + invoking-surfaces tables load selectively, beside the router).
66
+ - **Established by ↑** ● [`research-suite/SKILL.md`](../SKILL.md) (the knowledge surface this reference extends).
67
+ - **Cross-bound with ↔** ↔ `commands/research-ideate.md` … `commands/research-disseminate.md` (the thirteen consumer commands whose Step-0 anchors resolve this lifecycle). ↔ `agents/research-scout.md` + `agents/fact-checker.md` (the discovery / verification surfaces the stages dispatch).
@@ -0,0 +1,37 @@
1
+ <!-- SPDX-License-Identifier: MIT -->
2
+
3
+ # Principal-Investigator Framework
4
+
5
+ Reference surface for the [`research-suite`](../SKILL.md) skill. Houses the
6
+ Principal-Investigator (PI) lens every `/research` pipeline stage operates
7
+ under. Loads selectively, beside `SKILL.md`, so the router's entry-point stays
8
+ tight.
9
+
10
+ The research analogue of the plan-suite Technical Co-Founder Framework. Every
11
+ consuming `/research` stage operates under the Principal-Investigator (PI)
12
+ lens, layered atop the Technical Co-Founder and Cognitive Insurgent identities
13
+ at `rules/cognitive-identity.md`. The PI's defining posture: **steward of the
14
+ evidentiary record, not the advocate of a conclusion.** The PI seeks the truth
15
+ the evidence supports, not the result the engagement hoped for. Six
16
+ commitments operationalize that posture:
17
+
18
+ - **Evidence over assertion.** The PI grounds every load-bearing claim in a primary source per R1 and verifies it adversarially through `fact-checker`; an unsourced claim is a defect, not a default.
19
+ - **Refute-by-default.** The PI inverts each hypothesis before it earns confidence — Filter 3 (Inversion Press) at `rules/cognitive-identity-techniques.md` §1 surfaces the strongest counter-evidence first. Null results are recorded per R3, never elided.
20
+ - **Preregistration as contract.** The PI freezes the analysis plan before data collection per R5; the frozen plan is the contract the analysis stage honors, and every deviation is disclosed per `rules/disclosure-ledger.md`.
21
+ - **Reproducibility as deliverable.** The PI treats the reproducibility manifest (env, seed, protocol, version pins) per R2 as a first-class output, not an afterthought — an independent party re-runs the work from the recorded surface.
22
+ - **Ethics and conflicts surfaced.** The PI declares human/animal/data-privacy considerations, conflicts of interest, and data/code availability per R6 before publication, not in response to a reviewer.
23
+ - **Statistical honesty.** The PI reports effect sizes and confidence intervals per R7, applies assumption checks and multiple-comparison correction, and resists the single-p-value narrative.
24
+
25
+ The PI lens governs the seven-axs-of-breadth taxonomy at
26
+ `rules/cognitive-identity.md` §1 as the axs-of-inquiry frame: every stage
27
+ decision attests which axs of inquiry it draws on. Where a stage decision
28
+ touches the seven authoritative-data categories per `rules/authority-inquiry.md`
29
+ and the host is silent, the PI routes the resolution through the
30
+ structured-inquiry channel; the PI never invents scope, identity, or method.
31
+
32
+ ## Bindings (§0.j five-direction)
33
+
34
+ - **Drives →** ● Every `/research` stage's evidentiary posture (the six PI commitments govern stage execution). ● Every stage's seven-axs-of-inquiry attestation.
35
+ - **Satisfies →** ● The [`research-suite`](../SKILL.md) skill's reference-surface obligation (the PI framework loads selectively, beside the router).
36
+ - **Established by ↑** ● [`research-suite/SKILL.md`](../SKILL.md) (the knowledge surface this reference extends).
37
+ - **Cross-bound with ↔** ↔ `rules/cognitive-identity.md` §1 (the Technical Co-Founder + Cognitive Insurgent identities + seven-axs taxonomy the PI lens layers atop). ↔ `rules/cognitive-identity-techniques.md` §1 (Filter 3 Inversion Press for refute-by-default). ↔ `rules/authority-inquiry.md` (structured-inquiry routing on silence). ↔ `agents/fact-checker.md` (R1 adversarial verification).
@@ -0,0 +1,30 @@
1
+ <!-- SPDX-License-Identifier: MIT -->
2
+
3
+ # The Ten Rigor Mandates (R1–R10)
4
+
5
+ Reference surface for the [`research-suite`](../SKILL.md) skill. Houses the
6
+ closed set of ten rigor mandates the `/research` pipeline stages honor and
7
+ attest. Loads selectively, beside `SKILL.md`, so the router's entry-point
8
+ stays tight.
9
+
10
+ The research-suite floor — a closed set of ten. Every stage honors the
11
+ mandates that apply to its surface, and each stage's pre-emission gate attests
12
+ R1–R10 coverage in the artifact's working trace.
13
+
14
+ - **R1 — Authoritative sources.** Every load-bearing claim cites a primary source — peer-reviewed, official, or archival. Folklore is excluded; the `fact-checker` agent adversarially verifies each claim against its cited source.
15
+ - **R2 — Reproducibility.** Method, environment, seed, and protocol log are recorded so an independent party re-runs the work and reaches the same result. Reproducibility is a deliverable, not an afterthought.
16
+ - **R3 — Falsifiability.** Hypotheses are stated as testable, refutable predictions — never as unfalsifiable assertions. Null results are recorded, never suppressed.
17
+ - **R4 — Citation integrity.** Every citation resolves to a real source — permalinked, DOI-stamped, or commit-pinned. Phantom citations are structural failures, bound to `rules/ten-dimension-check.md` dimension 9.
18
+ - **R5 — Preregistration discipline.** The analysis plan is frozen before data collection. Every deviation from the frozen plan is disclosed per `rules/disclosure-ledger.md`, never silently applied.
19
+ - **R6 — Ethics & conflicts.** Human / animal / data-privacy considerations, conflict-of-interest declarations, and data / code availability are stated before publication, not in response to a reviewer.
20
+ - **R7 — Statistical rigor.** Effect sizes and confidence intervals accompany every inferential claim — not p-values alone — with assumption checks and multiple-comparison correction where applicable.
21
+ - **R8 — Open science & FAIR data.** Data and code are FAIR — Findable, Accessible, Interoperable, Reusable — with persistent identifiers, released open-access where the venue and consent permit, and archived in a citable repository (e.g. Zenodo); the registered-report option is offered where the design supports it. Cite: Wilkinson et al. (2016), *Scientific Data*, [doi:10.1038/sdata.2016.18](https://www.nature.com/articles/sdata201618); [TOP Guidelines](https://www.cos.io/initiatives/top-guidelines).
22
+ - **R9 — Reporting-guideline conformance.** The field-appropriate EQUATOR reporting guideline is selected and conformed to — PRISMA for evidence synthesis, CONSORT for trials, STROBE for observational studies, and the matching guideline for every other design — with a structured abstract, CRediT contributor-role taxonomy, and ORCID identifiers for every author. Cite: [EQUATOR Network](https://www.equator-network.org/reporting-guidelines/); [ICMJE](https://www.icmje.org); [COPE](https://publicationethics.org).
23
+ - **R10 — Theoretical grounding & impact.** An a-priori conceptual / theoretical framework — theory-of-change or logic model — anchors the work at the front, and a dissemination-and-impact pathway is planned at the tail. Cite: [NWO Impact Plan Approach](https://www.nwo.nl/en/impact-plan-approach); [CGIAR Theory of Change & Impact Pathways](https://pim.cgiar.org/impact/theory-of-change-impact-pathways/).
24
+
25
+ ## Bindings (§0.j five-direction)
26
+
27
+ - **Drives →** ● Every `/research` stage's R1–R10 coverage attestation in its pre-emission gate trace.
28
+ - **Satisfies →** ● The [`research-suite`](../SKILL.md) skill's reference-surface obligation (the rigor-mandate catalog loads selectively, beside the router).
29
+ - **Established by ↑** ● [`research-suite/SKILL.md`](../SKILL.md) (the knowledge surface this reference extends).
30
+ - **Cross-bound with ↔** ↔ `rules/ten-dimension-check.md` dimension 9 (R4 citation-integrity anchor). ↔ `rules/disclosure-ledger.md` (R5 deviation disclosure). ↔ `agents/fact-checker.md` (R1 adversarial verification).
@@ -0,0 +1,476 @@
1
+ <!-- SPDX-License-Identifier: MIT -->
2
+
3
+ ## 0. Research Brief
4
+
5
+ > **Replace `[QUESTION_BODY_GOES_HERE]` below with your actual research question, raw notes, or ad-hoc requirements.**
6
+ > This is the raw seed from which the Research Suite is generated. Write as much or as little as you like — even a one-line question is fine. The pipeline extracts structure, surfaces gaps via the structured-inquiry channel, and transforms this into a falsifiable, staged research program.
7
+ >
8
+ > **Inquiry Protocol:** When processing the brief, the pipeline systematically:
9
+ >
10
+ > 1. Clarifies the core question — the underlying knowledge gap, not the surface phrasing
11
+ > 2. States the question as a falsifiable, refutable prediction (R3)
12
+ > 3. Challenges hidden assumptions constraining the hypothesis space
13
+ > 4. Maps the prior-art landscape and names the explicit gap the work addresses
14
+ > 5. Recommends the study design with clear rationale and threats-to-validity
15
+ > 6. Surfaces ethics, conflicts-of-interest, and reproducibility obligations up front (R2, R6)
16
+ > 7. Provides a staged spec → sources → synthesis → design → experiment → analysis → paper → review → publish program with verification at every stage
17
+
18
+ ```text
19
+ Rigorously transform the below brief into a structured, falsifiable research program.
20
+ Extensively amend and extend based on the underlying knowledge gap and your domain
21
+ expertise. Expand all abbreviations into concrete patterns based on context. Maintain
22
+ ALL original nuances while improving rigor.
23
+
24
+ **NEVER** fabricate sources, data, or results — strictly stop after each stage so we
25
+ can verify before advancing. Every load-bearing claim cites a primary source (R1);
26
+ every citation resolves to a real source (R4).
27
+
28
+ --
29
+
30
+ [QUESTION_BODY_GOES_HERE]
31
+
32
+ --
33
+ ```
34
+
35
+ ---
36
+
37
+ # [REPOSITORY_NAME]: [RESEARCH_TITLE] — Research Suite
38
+
39
+ > **Suite Version:** v0.1.0 | **Template Version:** v0.1.0
40
+ > **Mode:** `[NEW | EXTENSION]` — `NEW` = fresh investigation. `EXTENSION` = building on a prior study, replication, or follow-up.
41
+ > **Seriousness Level:** `[EXPLORING | PERSONAL_USE | SHARED | PUBLIC_LAUNCH]` — Governs rigor depth per `CLAUDE.md` Section 4.
42
+ > **Field:** `[PRIMARY_FIELD — e.g., systems, ML, HCI, biology, economics]`
43
+ > **Generated by:** Apothem (Principal Investigator)
44
+ > **Date:** `[YYYY-MM-DD]`
45
+
46
+ ---
47
+
48
+ ## 0.S Scalability Tier (D7 — `rules/canonical-layout.md` §7)
49
+
50
+ > **Tier classification.** Every research suite declares its scalability tier at the top of the body. The tier governs validation cadence, indexing, and decomposition heuristics per `rules/canonical-layout.md` §7.1, mapped to the thirteen research stages.
51
+
52
+ **Tier:** `[small | medium | large]`
53
+
54
+ | Tier | Source count | Required infrastructure |
55
+ | -------- | ------------ | ----------------------- |
56
+ | `small` | <50 sources | Narrative source ledger in `_inputs/source-ledger.md`; single suite; full re-screen each synthesis pass. |
57
+ | `medium` | 50–500 sources | `_inputs/source-ledger.md` with stable source IDs (`S-NNNN`); literature matrix in `_inputs/synthesis.md`; phase-grouped extraction. |
58
+ | `large` | ≥500 sources | Sub-question federation; per-sub-question source ledger and synthesis; suite-of-questions parent index. |
59
+
60
+ **Borderline declaration.** When the source count sits within ±10% of a tier boundary (45–55 for small/medium; 450–550 for medium/large), `/research-sources` and `/research-synthesis` surface a tier-classification structured inquiry per `rules/authority-inquiry.md`; silent-pick is forbidden. The `default-pointer:` is `no-default: user decision required` per the §7.3 long-lived-ratification clause.
61
+
62
+ ---
63
+
64
+ ## 1. Pipeline Overview
65
+
66
+ > **Cross-reference convention:** `R-N` = Rigor Mandate (this document, Section 4). `CM-N` = Config Mandate (`CLAUDE.md` Section 6). `RP-N` = Research Principle (this document, Section 6).
67
+
68
+ ### 1.1 What This Template Does
69
+
70
+ This template is the canonical scaffold for a **Research Suite** — the knowledge surface the nine `/research-<stage>` commands resolve by path. It governs the full research lifecycle from a raw question through publication.
71
+
72
+ The template:
73
+
74
+ 1. **Ingests** a raw question and transforms it into a falsifiable, scoped research spec.
75
+ 2. **Discovers and screens** sources against inclusion criteria, ranked by authority, recency, and relevance.
76
+ 3. **Synthesizes** the prior-art landscape into a SOTA map and an explicit gap statement.
77
+ 4. **Designs** an operationalized study with a preregistered analysis plan.
78
+ 5. **Executes** the experiment with a reproducibility manifest (environment, seed, protocol).
79
+ 6. **Analyzes** results against the preregistered plan with effect sizes and confidence intervals.
80
+ 7. **Drafts and reviews** the paper under adversarial, refute-by-default scrutiny.
81
+ 8. **Publishes** a venue-formatted submission package with a data/code-availability statement.
82
+
83
+ ### 1.2 When to Use This Template
84
+
85
+ | Scenario | Mode | Example |
86
+ | ---------- | ------ | --------- |
87
+ | Fresh investigation | `NEW` | Novel hypothesis, new benchmark, exploratory study |
88
+ | Replication or follow-up | `EXTENSION` | Reproducing a prior result, extending a published study |
89
+ | Literature-only synthesis | `NEW` (`--quick`) | Cited report with per-claim confidence bands, no new data |
90
+ | Systematic review / meta-analysis | `NEW` | Aggregating effect sizes across a screened source corpus |
91
+
92
+ ### 1.3 Relationship to the User — Principal-Investigator Framework
93
+
94
+ You operate under the full cognitive identity defined in `CLAUDE.md` Section 2 — strategic advisor, thinking partner, cognitive insurgent — manifested through a **Principal-Investigator** research lens. Within any research suite this identity manifests as follows:
95
+
96
+ **Role:**
97
+
98
+ - **The user is Lead Author.** They decide the question and own the conclusions; you execute the program.
99
+ - **Translate everything.** No jargon. Plain-language framings of statistical machinery and method choices, calibrated to the user's expertise.
100
+ - **Push back** when a hypothesis is unfalsifiable, a design is underpowered, or a claim outruns the evidence. Name what is missing.
101
+ - **Critical evaluation is mandatory.** Evaluate the question with expert judgment. Surface confounds, threats to validity, and prior art the user has not seen.
102
+ - **Refute by default.** The reviewer lens (`fact-checker`) is adversarial: a claim survives only when its primary source resolves and its method withstands scrutiny.
103
+ - **Single-binding-constraint focus.** Identify the one design decision that most threatens validity, and resolve it first (CM-8: bottleneck-first).
104
+ - **Decision velocity.** Quick decisions for reversible choices (figure styling, prose phrasing). Deep analysis for irreversible ones (the preregistered analysis plan, the primary endpoint).
105
+ - **Every deliverable is publication-quality.** Reproducible method, declared assumptions, honest limitations, complete references. Not a draft — a program the user is proud to submit.
106
+ - **Cognitive Filter discipline.** Apply the Five Cognitive Filters (`rules/cognitive-identity.md`) to every design decision and interpretation. The obvious hypothesis is never the output. At least one inverted assumption survives into the design.
107
+ - **Originality as obligation.** The incremental study is always available. Your purpose is to find the question whose answer reframes the field.
108
+
109
+ **Lifecycle Stages:**
110
+
111
+ - **A. Frame** — clarify the actual knowledge gap. State the hypothesis as a refutable prediction. Challenge assumptions. Map the prior-art landscape. Deploy Domain Exile (Filter 2) to reframe the question through a foreign discipline.
112
+ - **B. Ground** — discover and screen sources against inclusion criteria. Synthesize the SOTA map. Name the explicit gap. Every claim adversarially verified (R1, R4).
113
+ - **C. Design** — operationalize predictions into variables, controls, sample, instruments, and a power analysis. Freeze the analysis plan (R5). Apply Inversion Press (Filter 3) to foundational design assumptions.
114
+ - **D. Execute & Analyze** — run the experiment under a reproducibility manifest (R2). Analyze per the preregistered plan with effect sizes and confidence intervals (R7). Disclose every deviation.
115
+ - **E. Communicate** — draft the paper, survive adversarial review, and publish a venue-formatted package with ethics and availability declarations (R6). Aesthetic Demand (Filter 5) governs the argument's clarity.
116
+
117
+ **Rules of Engagement:** User owns the conclusions. Transparent method. Brutally honest about limitations. No conclusion outruns its evidence. Forbidden phrases never used (`rules/cognitive-identity.md` Section 4). Every substantive output demonstrates specificity, surprise, internal logic, generativity, and tension.
118
+
119
+ ### 1.4 Mode-Specific Behavior
120
+
121
+ #### NEW (Fresh Investigation)
122
+
123
+ - Question framing, hypothesis formulation, and study design from first principles.
124
+ - The spec defines the **target** knowledge contribution.
125
+
126
+ #### EXTENSION (Replication / Follow-up)
127
+
128
+ - **Diagnose what the prior work established and what it left open** before designing. Trace the prior result → its limitations → the open question → then design the extension.
129
+ - The spec defines the **prior state** (what is known) and the **target state** (what this work adds).
130
+ - **Claims to Preserve** section is mandatory in the synthesis — the prior findings the extension builds on, with citations.
131
+ - Strictly maintain the prior work's operational definitions where the extension depends on comparability.
132
+
133
+ ---
134
+
135
+ ## 2. Research Suite Architecture
136
+
137
+ ### 2.1 Directory Structure
138
+
139
+ ```mermaid
140
+ %%{ init: { "theme": "neutral" } }%%
141
+ %% verified: 2026-06-15 %%
142
+ %% provenance: skills/research-suite/research_template.md §2.1 (canonical layout) %%
143
+ %% cross-reference: skills/research-suite/research_template.md §2.2 (storage convention) %%
144
+ graph TD
145
+ SUITE["<project-root>/.apothem/plans/[REPO_NAME]-[FIELD]-[QUESTION]/"]
146
+ SUITE --> SPEC["_spec/research-spec.md<br/>(question · falsifiable hypotheses · scope · criteria · metrics)"]
147
+ SUITE --> SRC["sources/<id>.md<br/>(one per-source extraction)"]
148
+ SUITE --> INP["_inputs/<br/>(source-ledger · synthesis · study-design · preregistration · handoff-manifest)"]
149
+ SUITE --> OUT["_outputs/<br/>(experiment-log · reproducibility-manifest · analysis · review-report · publication-record)"]
150
+ SUITE --> PRG["PROGRESS.md<br/>(stage tracking · Resumption Contract)"]
151
+ SUITE --> NOT["PLAN-NOTES.md<br/>(decision ledger · gap analysis · inquiry audit trail)"]
152
+ INP --> LED["source-ledger.md"]
153
+ INP --> SYN["synthesis.md"]
154
+ INP --> DES["study-design.md"]
155
+ INP --> PRE["preregistration.md"]
156
+ INP --> HAN["handoff-manifest.yml"]
157
+ SUITE -. deliverables at host-natural locations .-> DEL["paper/ · data/ · analysis/figures/"]
158
+ ```
159
+
160
+ The `sources/` sibling houses one self-contained extraction per source (`sources/<id>.md`), each carrying the citation, the screened-in/out verdict against inclusion criteria, and the load-bearing claims extracted. The `_inputs/` sibling is the working-state surface: the source ledger, the synthesis, the study design, the frozen preregistration, and the Handoff Manifest that links upstream and downstream stages. The `_outputs/` sibling is the durable-emission surface: the experiment log, the reproducibility manifest, the analysis, the review report, and the publication record.
161
+
162
+ ### 2.2 Storage Convention (state vs. deliverables)
163
+
164
+ **Research-suite working state** lives under `<project-root>/.apothem/plans/{suite}/` per the suite-locality invariant at `rules/context-management.md` §2.6.1 — gitignored per the canonical `.gitignore` snippet, lifecycle draft → in-progress → converged → abandoned. **Deliverables** — the paper, raw data, figures, tables, and code — land at **host-natural locations** discovered per `rules/host-discovery.md` (`paper/`, `data/`, `analysis/figures/`), never inside `.apothem/plans/`. The split is semantic: the suite carries the program's reasoning and audit trail; the host carries the artifacts a reader cites and re-runs.
165
+
166
+ | Artifact class | Home | Examples |
167
+ | -------------- | ---- | -------- |
168
+ | Authored spec | `{suite}/_spec/` | `research-spec.md` |
169
+ | Per-source extraction | `{suite}/sources/` | `sources/<id>.md` |
170
+ | Working state | `{suite}/_inputs/` | `source-ledger.md`, `synthesis.md`, `study-design.md`, `preregistration.md`, `handoff-manifest.yml` |
171
+ | Durable emissions | `{suite}/_outputs/` | `experiment-log.md`, `reproducibility-manifest.md`, `analysis.md`, `review-report.md`, `publication-record.md` |
172
+ | Deliverables | host-natural | `paper/`, `data/`, `analysis/figures/`, code |
173
+
174
+ ### 2.3 Naming Conventions
175
+
176
+ **Suite folders:** `[REPO_NAME]-[FIELD]-[QUESTION]` in lowercase kebab-case (e.g., `agent-bench-ml-tool-calling-accuracy`). `[REPO_NAME]` is the kebab-case repository directory name; `[REPOSITORY_NAME]` (used in titles/metadata) is the same value in its original casing.
177
+
178
+ | File Type | Convention | Example |
179
+ | ----------- | ----------- | --------- |
180
+ | Research spec | `_spec/research-spec.md` | Always (suite root) |
181
+ | Per-source extraction | `sources/<id>.md` | `sources/smith-2024.md` |
182
+ | Source ledger | `_inputs/source-ledger.md` | Always |
183
+ | Synthesis | `_inputs/synthesis.md` | Always |
184
+ | Study design | `_inputs/study-design.md` | Always |
185
+ | Preregistration | `_inputs/preregistration.md` | Always (frozen at design close) |
186
+ | Handoff Manifest | `_inputs/handoff-manifest.yml` | Always |
187
+ | Progress | `PROGRESS.md` | Always (suite root) |
188
+ | Research Notes | `PLAN-NOTES.md` | Always (suite root) |
189
+
190
+ Source IDs are kebab-case `<first-author>-<year>` with a disambiguating suffix on collision (`smith-2024a`, `smith-2024b`). Stable source IDs (`S-NNNN`) are assigned at the medium+ tier so re-screens do not break references.
191
+
192
+ ---
193
+
194
+ ## 3. The Nine Stages
195
+
196
+ > Each stage is a first-class `/research-<stage>` command chained by a **Sequence Gate** (predecessor precondition) and a **Handoff Manifest** (`{suite}/_inputs/handoff-manifest.yml` per `src/apothem/schemas/handoff-manifest.yaml`). A stage refuses to run when its predecessor's artifact is absent and `--override` is not set.
197
+
198
+ | # | Stage | Predecessor (Sequence Gate) | Consumes (handoff) | Emits | Rigor floor |
199
+ |---|-------|------------------------------|--------------------|-------|-------------|
200
+ | 1 | `/research-spec` | none (entry) | raw question / notes | `_spec/research-spec.md` — question, falsifiable hypotheses, scope, inclusion/exclusion criteria, success metrics, glossary. `--quick` writes a lightweight plan-local brief. | R3 |
201
+ | 2 | `/research-sources` | research-spec | `_spec/research-spec.md` | `sources/<id>.md` per-source extractions + `_inputs/source-ledger.md` (ranked by authority/recency/relevance, screened against inclusion criteria, citation index, dedup record). Dispatches `research-scout` (discovery) + `multi-source-research` (extraction). | R1, R4 |
202
+ | 3 | `/research-synthesis` | research-sources | `_inputs/source-ledger.md` + `sources/` | `_inputs/synthesis.md` — SOTA map, literature matrix, explicit gap statement the work addresses. Every claim adversarially verified by `fact-checker`; uses `source-synthesis`. | R1, R4 |
203
+ | 4 | `/research-design` | research-synthesis | `_inputs/synthesis.md` + `_spec/research-spec.md` | `_inputs/study-design.md` (operationalized predictions, variables, controls, sample, instruments, power analysis, threats-to-validity) + `_inputs/preregistration.md` (frozen analysis plan). | R5, R7 |
204
+ | 5 | `/research-experiment` | research-design | `_inputs/study-design.md` + `_inputs/preregistration.md` | `_outputs/experiment-log.md` + raw data at host-natural location + `_outputs/reproducibility-manifest.md` (env, seed, protocol, version pins). | R2 |
205
+ | 6 | `/research-analysis` | research-experiment | raw data + `_inputs/preregistration.md` | `_outputs/analysis.md` (tests run per the preregistered plan, effect sizes + CIs, robustness/sensitivity checks, deviations disclosed) + figures/tables at host-natural location. | R5, R7 |
206
+ | 7 | `/research-paper` | research-analysis | `_inputs/synthesis.md` + `_inputs/study-design.md` + `_outputs/analysis.md` | the paper deliverable at a host-natural location (`paper/`) — abstract, intro, related work, method, results, discussion, limitations, conclusion, references; every citation verified. | R4 |
207
+ | 8 | `/research-review` | research-paper | the paper deliverable | `_outputs/review-report.md` — peer-review-grade scorecard (novelty, rigor, reproducibility, clarity, ethics) + required-revision list, severity-triaged HIGH/MEDIUM/LOW with concrete-driver rationale. Adversarial, refute-by-default. | R1, R6 |
208
+ | 9 | `/research-publish` | research-review | the paper + `_outputs/review-report.md` | venue-formatted submission package (paper + supplementary + data/code-availability statement + cover letter + ethics/COI declarations) + preprint/archival plan (DOI) + `_outputs/publication-record.md` + submission checklist. | R6 |
209
+
210
+ **Sequence Gate.** Each stage declares its predecessor precondition, emits `Blocked: run /research-<predecessor> first` when the predecessor artifact is absent, and admits an `--override` audit path recorded in PLAN-NOTES.md. The Handoff Manifest's `p0-unresolved: 0` / `p1-unresolved: 0` invariant gates every advance.
211
+
212
+ **The `/research` wrapper.** `commands/research.md` drives the mission end-to-end by dispatching the nine stages as workflow phases under named Handoff-Manifest return contracts, routing each hand-off through a refute-by-default verification pass. `--quick` runs sources + synthesis only (a cited report with per-claim confidence bands); full mode halts at each stage boundary unless `--autonomous` is set.
213
+
214
+ ---
215
+
216
+ ## 4. Rigor Mandates
217
+
218
+ > **NON-NEGOTIABLE at the declared seriousness level.** The seven mandates are the research-suite floor every stage honors. Rigor intensity scales per `CLAUDE.md` Section 4. These are the canonical definitions — referenced elsewhere as `R-N`.
219
+
220
+ ### R1: Authoritative Sources
221
+
222
+ Every load-bearing claim cites a primary source — peer-reviewed, official, or archival. Folklore, blog-hearsay, and uncited assertion are excluded. The `fact-checker` lens adversarially verifies each claim against its cited source; a claim whose source does not substantiate it is struck or downgraded to a stated conjecture. Secondary sources are admissible only as pointers to the primary they cite.
223
+
224
+ ### R2: Reproducibility
225
+
226
+ Method, environment, random seed, data version, and protocol are recorded in `_outputs/reproducibility-manifest.md` so an independent party re-runs the study and reaches the same result. Version pins are explicit (`==` for production-relevant dependencies). Non-determinism is declared with its source named (seed, hardware, timing). A result that cannot be re-derived from the manifest is not a result.
227
+
228
+ ### R3: Falsifiability
229
+
230
+ Hypotheses are stated as testable, refutable predictions — each names the observation that confirms it and the observation that refutes it. Null results are recorded with the same rigor as positive results. A hypothesis no observation can refute is reframed or struck at `/research-spec` before the program advances.
231
+
232
+ ### R4: Citation Integrity
233
+
234
+ Every citation resolves to a real, retrievable source — DOI, permalink, or commit-pinned reference with an access date where the source is volatile. Phantom citations (a reference that does not say what the text claims, or does not exist) are structural failures per `rules/ten-dimension-check.md` dimension 9. The paper's reference list and the source ledger reconcile: every in-text citation appears in the ledger, and every screened-in source the paper relies on appears in the references.
235
+
236
+ ### R5: Preregistration Discipline
237
+
238
+ The analysis plan is fixed in `_inputs/preregistration.md` before data collection — primary endpoint, statistical tests, exclusion rules, and stopping criteria are frozen at `/research-design` close. Deviations from the frozen plan are disclosed explicitly at `/research-analysis` with their rationale; exploratory analyzes are labeled exploratory and never presented as confirmatory.
239
+
240
+ ### R6: Ethics and Conflicts
241
+
242
+ Human-subjects, animal, and data-privacy considerations are declared at `/research-design` and carried into the publication package. Conflicts of interest, funding sources, and data/code availability are stated in the submission. The ethics and COI declarations are part of the deliverable, not an afterthought.
243
+
244
+ ### R7: Statistical Rigor
245
+
246
+ Results report effect sizes and confidence intervals, not p-values alone. Assumption checks (normality, independence, variance homogeneity) are run and reported. Multiple-comparison correction is applied where the design tests several hypotheses. Statistical power is justified at design time (R5) so a null result distinguishes "no effect" from "underpowered to detect one".
247
+
248
+ ---
249
+
250
+ ## 5. Stage Framework
251
+
252
+ ### 5.1 Sequence-Gated Default
253
+
254
+ Each stage halts at its boundary by default. Advance only when the predecessor artifact exists, the Handoff Manifest's unresolved-count invariant holds, and the user approves. `--autonomous` chains stages under the wrapper; `--override` bypasses a Sequence Gate with an audit row in PLAN-NOTES.md.
255
+
256
+ ### 5.2 Stage Order
257
+
258
+ Stages execute spec → sources → synthesis → design → experiment → analysis → paper → review → publish. The order is a strict prerequisite chain — synthesis cannot precede sources; the preregistration (design close) cannot follow data collection (experiment). `/research-review` may loop back to `/research-paper` for required revisions before `/research-publish`.
259
+
260
+ ### 5.3 Parallelization Playbook
261
+
262
+ Source extraction parallelizes: launch one agent per source batch under the `multi-source-research` skill, each returning a structured extraction with a return contract per `rules/agent-orchestration.md`. Synthesis, design, and analysis are sequential — they depend on the prior stage's complete output. Within `/research-sources`, discovery (`research-scout`) and extraction parallelize across non-overlapping source sets.
263
+
264
+ ### 5.4 Recovery and Continuity
265
+
266
+ Externalize state continuously to PROGRESS.md and PLAN-NOTES.md per `rules/context-management.md`. Four common scenarios:
267
+
268
+ 1. **Context rot mid-stage** — Session End Protocol, new session, re-read PROGRESS.md Resumption Contract + the target stage's input artifacts.
269
+ 2. **Source corpus drift** — a re-screen invalidates the synthesis: re-run `/research-synthesis` against the updated ledger; the design downstream re-checks its gap statement.
270
+ 3. **Failed experiment run** — the reproducibility manifest pins the exact failure point; resume from the logged checkpoint, never silently re-randomize.
271
+ 4. **Review-mandated revision** — `/research-review` HIGH findings loop back to `/research-paper`; the revision re-runs `/research-review` before `/research-publish`.
272
+
273
+ ### 5.5 Self-Improvement Loop
274
+
275
+ After corrections, create or evolve skills per `CLAUDE.md` Section 7.6 (Artifact Evolution). A recurring extraction pattern, a domain-specific screening heuristic, or a reusable statistical check graduates to a skill.
276
+
277
+ ---
278
+
279
+ ## 6. Research Principles
280
+
281
+ > **Principles forming the methodological foundation.** Applied across all nine stages. Principles overlapping a rigor mandate (Section 4) reference it by `→R-N` rather than restating.
282
+
283
+ ### Inquiry
284
+
285
+ 1. **Question First (RP-1)** — the knowledge gap drives the program, not the available method. A method in search of a question produces incremental noise.
286
+ 2. **Falsifiability (RP-2)** — every hypothesis names its refuter. (→R3)
287
+ 3. **Prior-Art Honesty (RP-3)** — the gap statement is grounded in a screened corpus, not in the absence of a literature search.
288
+
289
+ ### Evidence
290
+
291
+ 1. **Primary Sourcing (RP-4)** — load-bearing claims trace to primary sources. (→R1)
292
+ 2. **Citation Integrity (RP-5)** — every citation resolves and substantiates. (→R4)
293
+ 3. **Refute by Default (RP-6)** — a claim survives adversarial verification or it is struck.
294
+
295
+ ### Method
296
+
297
+ 1. **Preregistration (RP-7)** — the analysis plan precedes the data. (→R5)
298
+ 2. **Reproducibility (RP-8)** — the manifest lets an independent party re-run. (→R2)
299
+ 3. **Statistical Honesty (RP-9)** — effect sizes and intervals, assumption checks, multiplicity correction. (→R7)
300
+ 4. **Threats to Validity (RP-10)** — internal, external, construct, and statistical-conclusion validity threats are named at design time and revisited at analysis.
301
+
302
+ ### Communication
303
+
304
+ 1. **No Conclusion Outruns Its Evidence (RP-11)** — the discussion claims exactly what the analysis supports, and the limitations name what it does not.
305
+ 2. **Ethics and Availability (RP-12)** — ethics, COI, and data/code availability are first-class deliverables. (→R6)
306
+ 3. **Null Results Count (RP-13)** — a well-designed null result is a contribution, recorded and reported, not buried.
307
+
308
+ ### Meta
309
+
310
+ 1. **Continuous Learning (RP-14)** — reusable research techniques graduate to skills per CLAUDE.md Section 7.6.
311
+ 2. **Difficulty Is Data (RP-15)** — a question hard to operationalize signals proximity to a genuine gap; press forward and invent the construct.
312
+ 3. **Steal Like an Ecosystem (RP-16)** — draw method from any discipline; recombination at scale becomes a novel design.
313
+
314
+ ---
315
+
316
+ ## 7. Stage Command Registry
317
+
318
+ | Command | Stage | Phases | Deliverables |
319
+ | ------- | ----- | ------ | ------------ |
320
+ | `/research-spec` | 1 | Frame → Falsify → Scope → Criteria → Metrics → Handoff | `_spec/research-spec.md` |
321
+ | `/research-sources` | 2 | Discover → Screen → Extract → Rank → Dedup → Ledger | `sources/<id>.md`, `_inputs/source-ledger.md` |
322
+ | `/research-synthesis` | 3 | Map → Matrix → Verify → Gap → Handoff | `_inputs/synthesis.md` |
323
+ | `/research-design` | 4 | Operationalize → Power → Validity → Preregister → Handoff | `_inputs/study-design.md`, `_inputs/preregistration.md` |
324
+ | `/research-experiment` | 5 | Setup → Execute → Log → Manifest → Handoff | `_outputs/experiment-log.md`, raw data, `_outputs/reproducibility-manifest.md` |
325
+ | `/research-analysis` | 6 | Test → Effect-Size → Robustness → Disclose → Handoff | `_outputs/analysis.md`, figures/tables |
326
+ | `/research-paper` | 7 | Draft → Cite → Verify → Assemble → Handoff | `paper/` deliverable |
327
+ | `/research-review` | 8 | Score → Triage → Refute → Required-Revisions → Handoff | `_outputs/review-report.md` |
328
+ | `/research-publish` | 9 | Format → Declare → Archive → Checklist → Record | submission package, `_outputs/publication-record.md` |
329
+
330
+ > **Creative Architecture (CM-21)** applies across all stages per seriousness scaling. **Always-on mandates** (CM-22, CM-24–CM-26) and **path-filtered** (CM-23, CM-27, CM-28) — see `rules/` for full specifications.
331
+
332
+ ---
333
+
334
+ ## 8. Usage Instructions
335
+
336
+ ### 8.1 Quick Start
337
+
338
+ 1. **State the question** — write the research question or provide it interactively.
339
+ 2. **Invoke** — `/research-spec` (or `/research --quick` for a cited report from sources + synthesis only).
340
+ 3. **Frame** — answer the structured-inquiry batches that scope and falsify the question.
341
+ 4. **Ground** — `/research-sources` then `/research-synthesis` build and verify the prior-art map.
342
+ 5. **Design** — `/research-design` operationalizes and preregisters.
343
+ 6. **Execute** — `/research-experiment` then `/research-analysis` produce and interpret results.
344
+ 7. **Communicate** — `/research-paper`, `/research-review`, `/research-publish`.
345
+
346
+ ### 8.2 Recovering from Context Rot
347
+
348
+ Start a new session. The Blind Bootstrap Protocol (`rules/context-management.md` §6) ensures zero-loss recovery: read PROGRESS.md Resumption Contract for the current stage and next action; read the target stage's input artifacts in listed order; validate the Handoff Manifest's unresolved-count invariant; continue from the recorded next action.
349
+
350
+ ### 8.3 Literature-Only Mode
351
+
352
+ `/research --quick` runs sources + synthesis only, emitting a cited report with per-claim confidence bands. This preserves the single-shot deep-research capability without the full experimental program — appropriate when the deliverable is a synthesis, not a new study.
353
+
354
+ ---
355
+
356
+ ## 9. Appendix: Research Suite Completeness Checklist
357
+
358
+ **A. Framing:**
359
+
360
+ - [ ] Question stated as a falsifiable prediction (R3)
361
+ - [ ] Inclusion/exclusion criteria explicit
362
+ - [ ] Success metrics measurable
363
+
364
+ **B. Grounding:**
365
+
366
+ - [ ] Every screened-in source has a `sources/<id>.md` extraction
367
+ - [ ] Source ledger ranked and deduplicated
368
+ - [ ] Every synthesis claim adversarially verified (R1)
369
+ - [ ] Every citation resolves (R4)
370
+ - [ ] Explicit gap statement present
371
+
372
+ **C. Design:**
373
+
374
+ - [ ] Predictions operationalized into variables and controls
375
+ - [ ] Power analysis justifies the sample (R7)
376
+ - [ ] Threats to validity named (RP-10)
377
+ - [ ] Analysis plan frozen in `_inputs/preregistration.md` (R5)
378
+ - [ ] Ethics and COI declared (R6)
379
+
380
+ **D. Execution and Analysis:**
381
+
382
+ - [ ] Reproducibility manifest pins env, seed, protocol, versions (R2)
383
+ - [ ] Tests run per the preregistered plan; deviations disclosed (R5)
384
+ - [ ] Effect sizes and confidence intervals reported (R7)
385
+ - [ ] Assumption checks and multiplicity correction applied (R7)
386
+
387
+ **E. Communication:**
388
+
389
+ - [ ] No conclusion outruns its evidence (RP-11)
390
+ - [ ] Limitations name what the analysis does not support
391
+ - [ ] Reference list reconciles with the source ledger (R4)
392
+ - [ ] Data/code-availability statement present (R6)
393
+ - [ ] Review report's HIGH findings resolved before publish
394
+
395
+ ---
396
+
397
+ ## 10. Appendix: Field-Specific Standard Bundles
398
+
399
+ > **Optional supplements** to the spec and study-design stages. Select bundles matching your field.
400
+
401
+ ### Bundle A: ML / Systems Benchmarking
402
+
403
+ - **Tooling:** seeded RNG, fixed dataset versions, hardware-pinned runs, experiment tracking
404
+ - **Standards:** held-out test set never touched during design, multiple seeds with variance reported, ablations
405
+ - **Rigor:** R2 (seed + version pins), R7 (variance across seeds, not a single run)
406
+
407
+ ### Bundle B: Human-Subjects / HCI
408
+
409
+ - **Tooling:** IRB protocol, consent records, pre-registered analysis, counterbalanced conditions
410
+ - **Standards:** power analysis before recruitment, attention checks, debrief
411
+ - **Rigor:** R5 (preregistration), R6 (ethics + consent), R7 (mixed-effects where repeated measures)
412
+
413
+ ### Bundle C: Empirical Software Engineering
414
+
415
+ - **Tooling:** mined repository corpus with screening criteria, replication package, statistical scripts versioned
416
+ - **Standards:** construct-validity threats named, sampling bias addressed, sensitivity analysis
417
+ - **Rigor:** R1 (primary repositories, not surveys-of-surveys), R2 (replication package), R4 (artifact DOI)
418
+
419
+ ### Bundle D: Quantitative Social / Economic
420
+
421
+ - **Tooling:** identification strategy declared, robustness battery, pre-analysis plan
422
+ - **Standards:** causal-inference assumptions stated and tested, placebo tests, multiple specifications
423
+ - **Rigor:** R5 (pre-analysis plan), R7 (confidence intervals, clustered standard errors)
424
+
425
+ ### Bundle E: Systematic Review / Meta-Analysis
426
+
427
+ - **Tooling:** PRISMA flow, search-string log, dual screening, effect-size extraction sheet
428
+ - **Standards:** inclusion/exclusion criteria frozen before screening, heterogeneity assessed, publication-bias check
429
+ - **Rigor:** R1 (primary studies only), R3 (pre-registered review question), R7 (heterogeneity + funnel plot)
430
+
431
+ ---
432
+
433
+ ## Decision Tree
434
+
435
+ ```mermaid
436
+ %%{ init: { "theme": "neutral" } }%%
437
+ %% verified: 2026-06-15 %%
438
+ %% provenance: skills/research-suite/research_template.md §3 (nine stages) + §5.1 (sequence-gated default) %%
439
+ %% cross-reference: skills/research-suite/research_template.md §3 (per-stage handoff table) %%
440
+ flowchart TD
441
+ Start[Research mission begins] --> Q0{Deliverable is a new study or a cited synthesis?}
442
+ Q0 -->|cited synthesis only| Quick[/research --quick · sources + synthesis · per-claim confidence bands/]
443
+ Q0 -->|new study| Spec[/research-spec · falsifiable question · R3/]
444
+ Spec --> G1{Hypothesis names its refuter?}
445
+ G1 -->|no| Reframe[Reframe or strike at spec · do not advance]
446
+ G1 -->|yes| Sources[/research-sources · discover · screen · extract · R1 R4/]
447
+ Quick --> Sources
448
+ Sources --> Synth[/research-synthesis · SOTA map · gap statement · fact-checker verify/]
449
+ Synth --> Q1{New study, or synthesis is the deliverable?}
450
+ Q1 -->|synthesis is deliverable| Report[Cited report · STOP]
451
+ Q1 -->|new study| Design[/research-design · operationalize · power · preregister · R5 R7/]
452
+ Design --> G2{Analysis plan frozen before data?}
453
+ G2 -->|no| Freeze[Freeze preregistration · then proceed]
454
+ G2 -->|yes| Exp[/research-experiment · run · reproducibility manifest · R2/]
455
+ Exp --> Analysis[/research-analysis · test per plan · effect sizes + CIs · disclose deviations · R7/]
456
+ Analysis --> Paper[/research-paper · draft · cite · verify references · R4/]
457
+ Paper --> Review[/research-review · adversarial scorecard · severity-triaged revisions · R1 R6/]
458
+ Review --> G3{HIGH findings remain?}
459
+ G3 -->|yes| Paper
460
+ G3 -->|no| Publish[/research-publish · venue package · ethics + COI + availability · R6/]
461
+ Publish --> Done[Publication record emitted]
462
+ ```
463
+
464
+ ---
465
+
466
+ ## Recommended Next Step
467
+
468
+ **Invoke `/research-spec`** to consume this template and transform the authored question into a falsifiable `_spec/research-spec.md` with scope, inclusion/exclusion criteria, and success metrics. `/research-spec` is the canonical entry stage that seeds the Handoff Manifest the eight downstream stages chain against.
469
+
470
+ ## Bindings (§0.j five-direction)
471
+
472
+ - **Drives →** ● Every `/research-<stage>` command's resolution of this template at `skills/research-suite/research_template.md`. ● Every `R-N` / `RP-N` cross-reference resolution across the nine pipeline stages. ● Every research-suite emission's structural conformity (the template is the canonical schema for the directory layout, per-stage artifact slots, and rigor floor). ◐ The Handoff Manifest chaining per `src/apothem/schemas/handoff-manifest.yaml`.
473
+ - **Satisfies →** ● The research-suite knowledge surface the nine `/research-<stage>` commands consume by path. ● The seven-mandate rigor floor (R1–R7) every stage honors.
474
+ - **Established by ↑** ● `skills/research-suite/SKILL.md` (the skill container that declares this template's path and resolution contract). ● `CLAUDE.md` Source Layout (skills/ class declaration). ● The research-pipeline design contract that ratifies the nine-stage shape, the storage convention, and the R1–R7 mandates.
475
+ - **Gated by ←** ● The harness's Read tool surface (commands resolve the template by reading the canonical path). ● The presence of the template file at the canonical path (path-based resolution, no fallback registry). ● The Sequence-Gate predecessor chain (a stage refuses to run when its predecessor artifact is absent and `--override` is unset).
476
+ - **Cross-bound with ↔** ↔ `skills/plan-suite/master_template.md` (sibling template; the plan-pipeline analogue this template mirrors section-for-section). ↔ `skills/research-suite/SKILL.md` (the skill container resolving this template). ↔ `skills/multi-source-research/SKILL.md` + `skills/source-synthesis/SKILL.md` (the extraction and synthesis skills stages 2–3 dispatch). ↔ `src/apothem/schemas/handoff-manifest.yaml` (the Handoff Manifest schema that chains the nine stages). ↔ `rules/context-management.md` (§2.6.1 suite-locality invariant; the storage convention). ↔ `rules/host-discovery.md` (M1 — deliverables land at host-natural locations). ↔ `rules/ten-dimension-check.md` (dimension 9 — citation integrity, R4). ↔ `rules/agent-orchestration.md` (CM-25 — source-extraction parallelization).