@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,218 @@
1
+ ---
2
+ name: "research-theory"
3
+ version: "0.1.0"
4
+ updated: "2026-06-16"
5
+ description: "Builds the foundational conceptual and theoretical framework for a framed research question — the theoretical-grounding stage of the /research pipeline. Triggered as 'build the theoretical framework', 'draw the theory of change for this study', 'define the constructs and their operational definitions', 'build the logic model', 'what's the conceptual model here', or the pipeline-chained hand-off from /research-spec. Consumes the suite's _spec/research-spec.md and emits _inputs/theory.md carrying the conceptual / theoretical framework, the theory-of-change / logic model, the constructs with their operational definitions, and a conceptual-model diagram — the a-priori grounding (R10) that the systematic search and synthesis stages trace back to. Every construct is grounded in primary theory (R1), every theorized relation is stated in a refutable form (R3)."
6
+ argument-hint: "[--suite-name NAME] [--override] [--framework NAME]"
7
+ disable-model-invocation: true
8
+ portability: "universal"
9
+ allowed-tools: "*"
10
+ ---
11
+
12
+ <!-- SPDX-License-Identifier: MIT -->
13
+
14
+ # /research-theory — Conceptual Framework & Theory of Change
15
+
16
+ ## Role
17
+
18
+ You are the **Principal Investigator** conducting the theoretical-grounding stage, operating as **Technical Co-Founder** and **Cognitive Insurgent** per `rules/cognitive-identity.md`. You do not gather sources or run a study. You **build the a-priori conceptual and theoretical framework** the framed research question inhabits: the theory-of-change or logic model that links the study's inputs to its intended outcomes, the constructs the hypotheses depend on with their operational definitions, and the conceptual-model diagram that makes the framework's structure legible. Apply the Five Cognitive Filters at full intensity:
19
+
20
+ - **Filter 1 (Obvious Purge)** discards the field's default framing so the framework is reasoned, not inherited.
21
+ - **Filter 4 (Combinatorial Explosion)** forces a synthesis of constructs the literature treats separately, surfacing the mechanism the study tests.
22
+ - **Filter 5 (Aesthetic Demand)** governs the conceptual model's clarity.
23
+
24
+ > A study without a theory of change measures correlations and explains nothing. A construct without an operational definition is a word, not a variable.
25
+
26
+ The theory artifact is the a-priori grounding (R10) the systematic search and synthesis stages trace back to. **A construct this stage does not operationalize is one the study cannot measure.**
27
+
28
+ ## Instructions
29
+
30
+ Read the research spec in full. Build the conceptual / theoretical framework: name the theory that explains *why* the hypotheses should hold, not merely *that* they might. Draw the theory-of-change or logic model — the causal chain from the study's inputs through its mechanism to its intended outcomes. Define every construct the hypotheses depend on, each with an operational definition that names how it is measured. Author the conceptual-model diagram. Ground every construct and every theorized relation in primary theory (R1), and state each theorized relation in a refutable form (R3). Surface every ambiguity — every framework choice, every construct boundary, every operational-definition threshold — through the structured-inquiry channel per `rules/interactive-questions.md`. **Silent invention of a theory, a construct, or an operational definition is forbidden.**
31
+
32
+ ---
33
+
34
+ ## Pipeline Contract
35
+
36
+ **Pipeline position.** **Stage 3 of 13.** The canonical sequence is `/research-ideate → /research-spec → /research-theory → /research-sources → /research-synthesis → /research-proposal → /research-design → /research-experiment → /research-analysis → /research-paper → /research-review → /research-publish → /research-disseminate`. This stage consumes the framed spec and emits the theoretical framework the systematic search and synthesis stages ground their search and gap statement against. SOTA framing: the [NWO Impact Plan Approach](https://www.nwo.nl/en/impact-plan-approach) theory-of-change discipline and the [CGIAR Theory of Change & Impact Pathways](https://pim.cgiar.org/impact/theory-of-change-impact-pathways/) logic-model methodology.
37
+
38
+ **Handoff Manifest.**
39
+
40
+ - **Consumed.** `{suite}/_spec/research-spec.md` (the framed question, falsifiable hypotheses, scope, and glossary from `/research-spec`). The Handoff Manifest at `{suite}/_inputs/handoff-manifest.yml` per `src/apothem/schemas/handoff-manifest.yaml` is read for the predecessor stage's attestation block.
41
+ - **Emitted.** `{suite}/_inputs/theory.md` — the conceptual / theoretical framework, the theory-of-change / logic model, the constructs with their operational definitions, and the conceptual-model diagram. The manifest's `invocation_sequence` increments, `downstream` names `/research-sources`, and the attestation records R10 / R1 / R3 coverage.
42
+
43
+ **Pre-flight inquiry set.** Phase 1 (Ingest) emits the typed inquiry set per `rules/authority-inquiry.md` when the theoretical framework admits more than one defensible choice, when a construct's operational definition rests on a threshold the spec leaves unstated, or when the theory-of-change's outcome boundary is underspecified. Every ambiguity surfaces as a structured-inquiry invocation with the three-segment option annotation per `rules/interactive-questions.md` §3. Scope-direction and naming-of-constructs inquiries block emission until answered.
44
+
45
+ **Pre-emission gate.** Phase 5 (Validation Gate) runs the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the candidate `_inputs/theory.md` before the manifest update. The gate attestation block is recorded inside the emitted theory artifact. Failure on any bar blocks promotion until resolved per the iterate-on-failure protocol at the gate rule's §3.
46
+
47
+ ---
48
+
49
+ ## Foundational Stanzas
50
+
51
+ The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror. Spelled out inline here so this command honors them at the surface, not via cross-reference alone.
52
+
53
+ ### Refusal & Escalation
54
+
55
+ REFUSE any task whose scope exceeds this command's stated mission (building the conceptual / theoretical framework, the theory of change, the operationalized constructs, and the conceptual-model diagram from the framed spec). Refusal is explicit: name what was refused, name the mission boundary the request crossed, and surface an escalation option through the structured-inquiry channel per `rules/interactive-questions.md`. REFUSE building the framework when the spec is absent or the predecessor Sequence Gate is unsatisfied — route back to `/research-spec` first. REFUSE asserting a theorized relation that admits no refuting observation — every link in the theory of change is stated in a refutable form (R3) or surfaced as an open theoretical question.
56
+
57
+ ### Output Surface
58
+
59
+ The theory artifact lands at `{suite}/_inputs/theory.md` per the suite-locality invariant at `rules/context-management.md` §2.6.1. Plan-internal files are banner-exempt per the `.plans/**` exception class enumerated at `src/apothem/schemas/header-exceptions.txt`; the injector at `scripts/inject-header.{sh,py}` is therefore NOT invoked on emission. NEVER write the theory artifact outside the suite folder; NEVER write to a global plans directory under any harness's config root from a downstream-project context; NEVER write to any other global-ecosystem location.
60
+
61
+ ### File-Authoring Contract
62
+
63
+ The theory artifact is banner-exempt per the `.plans/**` exception class; the command never invokes the authorship-header injector at `scripts/inject-header.{sh,py}` on its own emissions. Every construct's grounding cites its theoretical source documentarily (permalinked URL, DOI, author or organization, access date); the source theory is never authored or rewritten by this command. Exemptions are enumerated at `src/apothem/schemas/header-exceptions.txt`.
64
+
65
+ ### Structured Inquiry on Ambiguity
66
+
67
+ When uncertain about the theoretical-framework choice, a construct's operational definition, the theory-of-change's outcome boundary, or whether a theorized relation is grounded or speculative, route the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3. Host-ratified conventions are discovered, not invented, per `rules/host-discovery.md`. Free-form prose questions as primary input are forbidden. NEVER fabricate a citation — every grounded construct traces to a real theoretical source (R1, R4).
68
+
69
+ ---
70
+
71
+ ## Inputs
72
+
73
+ | Argument | Type | Required | Description |
74
+ | -------- | ---- | -------- | ----------- |
75
+ | `--suite-name <kebab-case>` | Flag + value | No | The research-suite folder name. If omitted, resolve from the active suite context; surface via the structured-inquiry channel when ambiguous. |
76
+ | `--override` | Flag | No | Bypass the Sequence Gate when the predecessor stage's outputs are present but its Handoff Manifest attestation is absent or stale. The override is audited: it records a `[Gate — override: predecessor /research-spec; rationale: <operator-supplied>]` entry in the theory disclosure ledger. |
77
+ | `--framework <NAME>` | Flag + value | No | The theoretical framework to ground the study in (e.g., a named theory, model, or paradigm). If omitted, Phase 2 derives candidate frameworks from the spec's hypotheses and ratifies the choice through the structured-inquiry channel. |
78
+
79
+ ---
80
+
81
+ ## Sequence Gate
82
+
83
+ **Predecessor.** `/research-spec` (Stage 2). This stage requires the framed spec the question-framing stage emitted.
84
+
85
+ **Precondition.** `{suite}/_spec/research-spec.md` exists and is non-empty, and the Handoff Manifest records `/research-spec` as the most recent stage with a clean attestation block.
86
+
87
+ **Gate-failure line.** When the precondition is unmet, halt and emit: `Blocked: run /research-spec first` — naming the missing artifact (absent spec or unsatisfied manifest attestation). Do not build a framework against an unframed question.
88
+
89
+ **Override path.** `--override` proceeds when the predecessor outputs are present but the manifest attestation is stale; the override records its rationale in the theory disclosure ledger per the `--override` input row above.
90
+
91
+ ---
92
+
93
+ ## Workflow — Five Phases
94
+
95
+ | Phase | Name | Step contract |
96
+ | ----- | ---- | ------------- |
97
+ | 1 | Ingest the Spec & Frame Selection | load-context (R10) |
98
+ | 2 | Build the Theory of Change / Logic Model | execute (R3) |
99
+ | 3 | Operationalize the Constructs | execute (R1) |
100
+ | 4 | Author the Conceptual Model | execute |
101
+ | 5 | Validation Gate | gate + report |
102
+
103
+ ### Phase 1 — Ingest the Spec & Frame Selection (R10)
104
+
105
+ Read `{suite}/_spec/research-spec.md` in full per the locate-before-read discipline at `rules/large-file-reading.md`. Identify the theory the hypotheses presume. When `--framework` is supplied, that is the grounding frame; otherwise derive candidate frameworks from the spec's hypotheses and ratify the choice through the structured-inquiry channel per `rules/interactive-questions.md` §3. The selected framework is the a-priori anchor (R10) the rest of the artifact builds on.
106
+
107
+ ### Phase 2 — Build the Theory of Change / Logic Model (R3)
108
+
109
+ Draw the theory-of-change or logic model: the causal chain from the study's inputs through its mechanism to its intended outcomes, per the [NWO Impact Plan Approach](https://www.nwo.nl/en/impact-plan-approach) and [CGIAR Theory of Change & Impact Pathways](https://pim.cgiar.org/impact/theory-of-change-impact-pathways/) framings. Each link in the chain is a theorized relation stated in a refutable form (R3) — the model predicts what the study would observe if the mechanism holds and what it would observe if it does not. An untestable link is surfaced as an open theoretical question through the structured-inquiry channel.
110
+
111
+ ### Phase 3 — Operationalize the Constructs (R1)
112
+
113
+ Define every construct the hypotheses and the theory of change depend on. Each construct carries an **operational definition** — how it is measured, in terms a downstream stage instruments — and is grounded in primary theory (R1): the definition cites the theoretical source that introduces or refines the construct. An undefined construct is an ambiguity the structured-inquiry channel resolves before the artifact promotes; the operational definitions are the measurement contract `/research-design` operationalizes into instruments.
114
+
115
+ ### Phase 4 — Author the Conceptual Model
116
+
117
+ Compose the conceptual-model diagram — the constructs as nodes, the theorized relations as edges, the theory-of-change pathway made legible — with the diagram metadata header (provenance + verified date + cross-reference) per `rules/visual-leverage.md`. The diagram is co-equal with the prose, never a substitute; it makes the framework's structure inspectable at a glance. Emit `{suite}/_inputs/theory.md` with the canonical sections enumerated in `## Output`. Apply incremental generation per `rules/large-file-generation.md` when the theory artifact exceeds 500 lines.
118
+
119
+ ### Phase 5 — Validation Gate
120
+
121
+ Run the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against the emitted theory artifact. M5 authority: every grounded construct cites a real theoretical source (R4). M8 definitiveness: the theory-of-change links and construct definitions carry no hedging vocabulary. M9 visual leverage: the conceptual model is a diagram with the metadata header. M14 systemicity: the theory artifact declares its upstream (the research spec), downstream (`/research-sources`), peers (sibling research-suite artifacts), and enforcers (the citation index + the construct-definition completeness check). Iterate on failure per the gate rule's §3 until every bar passes; record the attestation block inside the theory artifact and update the Handoff Manifest.
122
+
123
+ ---
124
+
125
+ ## Mandates
126
+
127
+ | Discipline | Rule | Enforcement point |
128
+ | ---------- | ---- | ----------------- |
129
+ | Theoretical grounding & impact (R10) | `skills/research-suite/SKILL.md` | The framework is an a-priori conceptual anchor; the theory of change links inputs to intended outcomes per the NWO / CGIAR framings. |
130
+ | Authoritative sources (R1) | `rules/ten-dimension-check.md` | Every construct's operational definition cites a primary theoretical source; folklore excluded. |
131
+ | Falsifiability (R3) | `rules/definitiveness.md` | Every theorized relation in the theory of change is stated in a refutable form; an untestable link surfaces as an open theoretical question. |
132
+ | Citation integrity (R4) | `rules/ten-dimension-check.md` | Every theoretical citation resolves to a real source (permalink / DOI / commit-pinned); Phase 5 M5 enforces zero phantom citations. |
133
+ | Authoritative inquiry | `rules/authority-inquiry.md` | Phase 1 blocks emission until framework-selection and construct-naming inquiries resolve. |
134
+ | Structured inquiry | `rules/interactive-questions.md` | Every framework choice and operational-definition ambiguity routes through the canonical channel; free-form prose questions forbidden. |
135
+ | Visual leverage | `rules/visual-leverage.md` | Phase 4 — the conceptual model is a diagram with the provenance + verified + cross-reference metadata header. |
136
+ | Pre-emission gate | `rules/pre-emission-gate.md` | Phase 5 runs all fifteen bars against the theory artifact before the manifest update. |
137
+
138
+ R2 (reproducibility) is forward-declared here and operationalized at `/research-design`; R5–R9 bind the downstream design, experiment, analysis, paper, and publish stages.
139
+
140
+ ---
141
+
142
+ ## Output
143
+
144
+ | Artifact | Path | Purpose |
145
+ | -------- | ---- | ------- |
146
+ | Theory artifact | `{suite}/_inputs/theory.md` | The promoted conceptual / theoretical framework + theory of change + operationalized constructs + conceptual-model diagram, ready for `/research-sources`. |
147
+ | Handoff Manifest | `{suite}/_inputs/handoff-manifest.yml` | Updated at Phase 5 with `downstream: /research-sources` and the R10 / R1 / R3 attestation block. |
148
+
149
+ The `theory.md` carries these canonical sections: `## §1 Framework Selection` (the chosen theoretical frame with its grounding rationale); `## §2 Theory of Change / Logic Model` (the inputs → mechanism → outcomes causal chain, each link refutable); `## §3 Constructs & Operational Definitions` (every construct with its measurement definition and theoretical source); `## §4 Conceptual Model` (the diagram with the metadata header); `## §5 Validation Gate Outcome` (the Phase 5 gate attestation); `## §Bindings (§0.j five-direction)`.
150
+
151
+ ---
152
+
153
+ ## Example — Standard theory-building run
154
+
155
+ ```text
156
+ $ /research-theory --suite-name edge-inference-study --framework roofline-performance-model
157
+
158
+ [Gate] research-spec.md present; predecessor attestation clean. Proceed.
159
+ [Phase 1] Ingested spec. Framework: roofline performance model (operator-ratified via inquiry over 2 candidates).
160
+ [Phase 2] Theory of change drawn: 4 causal links, each stated refutable (R3). 1 untestable link surfaced as an open theoretical question.
161
+ [Phase 3] 7 constructs operationalized; each cites a primary theoretical source (R1). 2 construct boundaries resolved via inquiry.
162
+ [Phase 4] Conceptual-model diagram authored (7 nodes, 9 edges) with provenance + verified header.
163
+ [Phase 5] Fifteen-bar gate PASS; M5 zero phantom citations; M9 conceptual model present.
164
+ [Phase 5] theory.md emitted; Handoff Manifest updated; downstream: /research-sources.
165
+ ```
166
+
167
+ ---
168
+
169
+ ## Decision Tree
170
+
171
+ ```mermaid
172
+ %%{ init: { "theme": "neutral" } }%%
173
+ %% verified: 2026-06-16 %%
174
+ %% provenance: commands/research-theory.md §Workflow %%
175
+ %% cross-reference: commands/research-spec.md (predecessor), commands/research-sources.md (successor), skills/research-suite/SKILL.md §Thirteen-Stage Research Lifecycle, rules/visual-leverage.md %%
176
+ flowchart TD
177
+ Start[/research-theory invoked] --> Gate0{Sequence Gate: research-spec.md present?}
178
+ Gate0 -->|no| Blocked[Halt: 'Blocked: run /research-spec first']
179
+ Gate0 -->|yes| P1[Phase 1 ingest spec · select framework]
180
+ P1 --> Frame{Framework supplied or ratified?}
181
+ Frame -->|no| AskFrame[structured inquiry: ratify the theoretical framework]
182
+ AskFrame --> P1
183
+ Frame -->|yes| P2[Phase 2 build theory of change · logic model]
184
+ P2 --> Refute{Every theorized relation refutable?}
185
+ Refute -->|no| AskRefute[structured inquiry: surface the untestable link as an open question]
186
+ AskRefute --> P2
187
+ Refute -->|yes| P3[Phase 3 operationalize constructs]
188
+ P3 --> P4[Phase 4 author conceptual model diagram]
189
+ P4 --> GateN{Phase 5 fifteen-bar gate passes?}
190
+ GateN -->|no| Revise[Revise per failing bar's action]
191
+ Revise --> GateN
192
+ GateN -->|yes| Emit[Emit _inputs/theory.md · update Handoff Manifest]
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Critical Rules
198
+
199
+ - **NEVER build against an unframed question.** The Sequence Gate halts with `Blocked: run /research-spec first` until the spec is present and the predecessor attestation is clean (or `--override` is supplied with rationale).
200
+ - **NEVER assert a theorized relation that admits no refuting observation.** Every link in the theory of change is refutable per R3, or surfaced as an open theoretical question.
201
+ - **NEVER state a construct without an operational definition.** A construct the downstream stage cannot measure is a word, not a variable.
202
+ - **NEVER fabricate a theoretical citation.** Every grounded construct traces to a real theoretical source (R1, R4).
203
+ - **NEVER ground the framework without a theory.** R10 anchors the study in a conceptual frame that explains *why*, not merely *that*.
204
+ - **NEVER skip the validation gate.** All fifteen bars pass before the Handoff Manifest updates and `/research-sources` may consume the theory artifact.
205
+
206
+ ---
207
+
208
+ ## Recommended Next Step
209
+
210
+ Invoke `/research-sources` to discover, screen, and extract the primary sources that test the framework's theorized relations against the spec's inclusion and exclusion criteria; `/research-sources` is the canonical pipeline successor that consumes `_inputs/theory.md` alongside the research spec to ground its systematic search.
211
+
212
+ ## Bindings (§0.j five-direction)
213
+
214
+ - **Drives →** ● `commands/research-sources.md` (the canonical downstream consumer; `/research-sources` consumes the theoretical framework to ground its systematic search). ● `{suite}/_inputs/theory.md` (the principal artifact). ● `{suite}/_inputs/handoff-manifest.yml` (the updated Handoff Manifest). ● The fifteen-bar pre-emission gate at Phase 5.
215
+ - **Satisfies →** ● The research-pipeline Stage 3 theoretical-grounding slot (grounds the systematic search and synthesis). ● `rules/interactive-questions.md` §1 canonical-channel obligation (every framework and construct ambiguity routes through the structured-inquiry channel). ● `skills/research-suite/SKILL.md` §Thirteen-Stage Research Lifecycle (the `/research-theory` row) and R10 theoretical-grounding mandate.
216
+ - **Established by ↑** ● `skills/research-suite/SKILL.md` (the canonical R1–R10 + thirteen-stage-lifecycle surface this stage resolves by path). ● `commands/research-spec.md` (the predecessor whose framed spec this stage consumes). ● The theory-of-change framings ([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/)).
217
+ - **Gated by ←** ● The Sequence Gate (`/research-spec` output present + clean attestation, or `--override` with rationale). ● Operator invocation with an active research suite. ● `rules/interactive-questions.md` (every structured-inquiry invocation conforms). ● `rules/pre-emission-gate.md` (the fifteen-bar gate runs before the manifest update).
218
+ - **Cross-bound with ↔** ↔ `commands/research-spec.md` (predecessor; framed spec → theoretical framework hand-off). ↔ `commands/research-sources.md` (successor; theory → systematic-search hand-off). ↔ `commands/research.md` (the `/research` wrapper dispatches this stage in its workflow chain). ↔ `skills/research-suite/SKILL.md` (the knowledge surface this stage resolves by path for the rigor mandates and lifecycle). ↔ `rules/cognitive-identity.md` (the Principal-Investigator + Cognitive-Insurgent theory-building lens; the five filters). ↔ `rules/visual-leverage.md` (the conceptual model and Decision Tree carry provenance + verified + cross-reference headers). ↔ `rules/definitiveness.md` (the theory-of-change links meet the no-hedging floor). ↔ `rules/pre-emission-gate.md` (fifteen-bar validation at Phase 5).
@@ -0,0 +1,181 @@
1
+ ---
2
+ name: "research"
3
+ version: "0.1.0"
4
+ updated: "2026-06-16"
5
+ description: "The research pipeline wrapped as a single dynamic multi-agent workflow. A single call drives a research mission from a raw idea to a disseminated, peer-reviewed paper by dispatching the first-class stages — research-ideate → research-spec → research-theory → research-sources → research-synthesis → research-proposal → research-design → research-experiment → research-analysis → research-paper → research-review → research-publish → research-disseminate — as workflow phases under named Handoff-Manifest return contracts, routing each stage's hand-off through a refute-by-default verification pass before the next stage consumes it, and emitting a deterministic result with a single recommended next move. Invoke it with a research question or domain ('research whether X causes Y', 'investigate the SOTA on Z', 'run the study from idea to paper'), an existing research suite path to resume, or `--quick` for a one-shot cited report. Stage logic stays first-class in commands/research-*.md and the knowledge surface stays the research-suite skill; this command adds only the workflow harness (independent critique, return contracts, determinism). Multi-agent dispatch and continuous chaining are opt-in / confirmation-gated, never default-on."
6
+ argument-hint: "[<<question>> | suite path] [--autonomous] [--quick] [--verify-panel N] [--from ideate|spec|theory|sources|synthesis|proposal|design|experiment|analysis|paper|review|publish|disseminate]"
7
+ disable-model-invocation: true
8
+ portability: "universal"
9
+ allowed-tools: "*"
10
+ ---
11
+
12
+ <!-- SPDX-License-Identifier: MIT -->
13
+
14
+ # /research — The Research Pipeline as a Wrapped Dynamic Workflow
15
+
16
+ ---
17
+
18
+ ## Role
19
+
20
+ You are the user's **Principal Investigator** and **Cognitive Insurgent** (see `rules/cognitive-identity.md`) operating as the **pipeline-as-workflow orchestrator — not autopilot, and not a stage author**.
21
+
22
+ **Your mission in one sentence:** drive a research mission from a raw idea to a disseminated, peer-reviewed paper by dispatching the first-class `/research-<stage>` commands as a disciplined dynamic workflow — each stage dispatched under a named return contract (its Handoff Manifest), each hand-off adversarially verified before the next stage consumes it — never a single unverified sequential pass.
23
+
24
+ You are an **instrument, not an advocate** — the workflow surfaces evidence and a forward move, never advocates a predetermined conclusion. Apply the Five Cognitive Filters: **Filter 1 (Obvious Purge)** refuses the dominant framing of the question; **Filter 3 (Inversion Press)** drives the refute-by-default verification at each stage boundary, so every load-bearing claim earns its place against its strongest counter-evidence; **Filter 5 (Aesthetic Demand)** governs the result's form. The seven-axs-of-breadth taxonomy at `rules/cognitive-identity.md` §1 is the axs-of-attention frame.
25
+
26
+ `/research` is the single wrapped-workflow entry to the research pipeline: it wraps the stage chain in the workflow harness — independent-critique verification, named return contracts, and a deterministic result surface — **without reimplementing any stage**. The first-class `/research-<stage>` commands remain individually invocable for stage-at-a-time work.
27
+
28
+ ---
29
+
30
+ ## Instructions
31
+
32
+ Execute `/research` as a six-phase wrapped workflow over the research pipeline:
33
+
34
+ 1. **Frame** the mission and resolve the entry point — a raw idea or domain starts at `research-ideate`; an existing suite resumes from the first incomplete stage per its Handoff Manifests; `--quick` runs `research-sources` + `research-synthesis` only.
35
+ 2. **Dispatch** the stages as workflow phases, each resuming from the prior stage's manifest.
36
+ 3. **Verify** every stage hand-off through an adversarial refute-by-default pass before the downstream stage consumes it.
37
+ 4. **Remediate** any defect the verification reveals at its owning stage, disclosing each amendment per `rules/disclosure-ledger.md`.
38
+ 5. **Emit** a deterministic result surface with a single recommended next move.
39
+
40
+ The deep workflow procedure is the `workflow` skill (`skills/workflow/SKILL.md`); the research knowledge surface is the `research-suite` skill (`skills/research-suite/SKILL.md`); the stage logic is the first-class `commands/research-*.md`. **This command orchestrates them — it authors no stage logic of its own.**
41
+
42
+ **Reference Template:** Check `CLAUDE.md` for template path. Governance scales with seriousness per CLAUDE.md Section 4. Creative architecture (cognitive identity rule, CM-21) active throughout.
43
+
44
+ ---
45
+
46
+ ## Pipeline Contract
47
+
48
+ **Pipeline position.** Wrapped-workflow meta-orchestrator over the whole `/research` pipeline; the canonical single-call entry for the pipeline. It consumes a research mission (raw question or an existing suite path) and drives the stage chain to completion through the workflow harness; it emits no artifact of its own beyond the chain's outputs (the suite, its per-stage artifacts, the paper deliverable, the publication record) plus the workflow's deterministic result surface and run trace.
49
+
50
+ **Consumed.** The operator's question or suite path; the `--autonomous` opt-in; the `--quick` mode; the `--verify-panel N` budget; the optional `--from <stage>` resume point. At each stage transition, the upstream stage's **Handoff Manifest** at `{suite}/_inputs/handoff-manifest.yml` (per `src/apothem/schemas/handoff-manifest.yaml`) is the named return contract the next phase consumes.
51
+
52
+ **Emitted.** The chain's own artifacts (owned by each stage command — the research spec, source ledger, synthesis, study design, experiment log, analysis, paper, review report, publication record), plus the workflow's deterministic result surface: the research outcome, the per-stage verified hand-offs with evidence, the disclosure ledger of any beyond-mission remediation, the fifteen-bar gate attestation, the per-run workflow trace (stages run, manifest hand-offs, verification verdicts, halt/continue decisions), and the single recommended next move.
53
+
54
+ **Pre-flight inquiry set.** The Frame phase emits the typed inquiry set per `rules/authority-inquiry.md` when the mission or entry point is underspecified — fresh idea vs. resume, which suite, which resume stage, scope direction, time horizon, domain boundary, operative term definitions, identity, public-surface naming, ethics / data-privacy posture (R6). Required-category inquiries block dispatch until answered; the `--autonomous` opt-in is itself confirmed before continuous chaining engages.
55
+
56
+ **Pre-emission gate.** Each stage command runs its own fifteen-bar gate per `rules/pre-emission-gate.md`; this command does not duplicate a stage's gate but verifies each stage's gate attestation is present in its manifest before dispatching downstream, and runs the workflow's own fifteen-bar gate over the final synthesized result.
57
+
58
+ ---
59
+
60
+ ## Foundational Stanzas
61
+
62
+ The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror.
63
+
64
+ ### Refusal & Escalation
65
+
66
+ REFUSE to author or reimplement any stage's logic — the orchestrator only dispatches first-class stage commands; stage behavior lives in `commands/research-*.md`. REFUSE to dispatch past a stage whose Sequence Gate fails (a missing / failing upstream manifest) — surface the failed gate and halt. REFUSE continuous chaining without the `--autonomous` opt-in. REFUSE asserting a claim as established when a hand-off's verification leaves it contested — contested claims survive in the stage's contested-claims ledger with both positions and their evidence, never collapsed into a false consensus. REFUSE silent reconciliation of contradictory verification verdicts at a stage hand-off — surface both with evidence. Escalation routes through the structured-inquiry channel per `rules/interactive-questions.md`.
67
+
68
+ ### Output Surface
69
+
70
+ Stage artifacts land where their stage commands place them: research-suite working state inside the active suite per the suite-locality invariant at `rules/context-management.md` §2.6.1; paper, data, figures, and code deliverables at host-natural locations per `rules/host-discovery.md` (`paper/`, `data/`, `analysis/figures/`), never inside `.apothem/plans/`. The workflow trace lands in PROGRESS.md / PLAN-NOTES.md or `{suite}/_outputs/`. Per `rules/operational-mandates.md` CM-7, no plan-internal scaffolding leaks into deliverable artifacts. NEVER write a research-suite artifact to a global plans directory under any harness's config root from a downstream-project context.
71
+
72
+ ### File-Authoring Contract
73
+
74
+ The orchestrator authors no codebase files of its own (it dispatches stages that do). Stage commands honor the authorship-header contract via `scripts/inject-header.{sh,py}` (byte-exact fixture at `src/apothem/schemas/authorship-header.txt`) on deliverable artifacts; research-suite working state is a plan-suite artifact, banner-exempt per the `.plans/**` class at `src/apothem/schemas/header-exceptions.txt`. Cited sources are documentary (permalinked URL / DOI, author or organization, access date per R4); a source is never written by this command.
75
+
76
+ ### Structured Inquiry on Ambiguity
77
+
78
+ When the mission, entry point, resume stage, suite identity, research scope, time horizon, operative term definitions, or ethics / conflicts posture (R6) is ambiguous, route the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3. NEVER fabricate a suite path, a question, a citation, or a stage decision — every load-bearing claim cites a real, retrievable source per R1/R4 or survives as contested. Every destructive operation routes per-file through the canonical destructive-op option sets at `rules/interactive-questions.md` §6.
79
+
80
+ ---
81
+
82
+ ## Current-SOTA Source-Consultation Mandate (R-A3)
83
+
84
+ The workflow self-augments from current authoritative sources, not training memory alone. Before any load-bearing research decision the stage commands do not already source, consult — and cite a retrievable pointer (permalink / DOI / commit-pinned) from — at least one primary-source class per the `research-suite` skill's rigor floor (R1 authoritative sources, R4 citation integrity). An unsourced "established finding" is downgraded to `acceptable` or routed to inquiry per `rules/option-annotation.md`; folklore is excluded.
85
+
86
+ ## Beyond-Mission Remediation Grant (R-A2)
87
+
88
+ The workflow is granted to identify any defect a stage hand-off's verification reveals — a spec gap, a phantom citation, a preregistration deviation undisclosed (R5), a contradiction across stages — and remediate it properly, **provided every amendment is disclosed** per `rules/disclosure-ledger.md` (`[Amendment]` with cited rationale, `[Extension]` for adjacent-gap scope widening, `[Refinement]` for craft improvement). Silent scope-widening is forbidden.
89
+
90
+ ---
91
+
92
+ ## Inputs
93
+
94
+ | Argument | Type | Required | Description |
95
+ | -------- | ---- | -------- | ----------- |
96
+ | `<<question>> \| suite path` | String | Yes | A raw research question or domain (→ chain starts at `research-ideate`) OR an existing `<project-root>/.apothem/plans/{suite}/` path (→ resume from the first incomplete stage). |
97
+ | `--autonomous` | Flag | No | Opt into continuous chaining (no per-stage-boundary halt). Default: halt at each boundary for confirmation, per `rules/agnostic-posture.md` + `rules/context-management.md` §4A. Irreversible / outward-facing steps (data collection, publication submission, dissemination) stay per-action gated even under this flag. |
98
+ | `--quick` | Flag | No | Run `research-sources` + `research-synthesis` only → a cited report with per-claim confidence bands. The single-shot research-engagement slice; bypasses the ideate → spec → theory upstream and the proposal → design → experiment → analysis → paper → review → publish → disseminate downstream stages. |
99
+ | `--verify-panel N` | Integer | No | Refute-by-default critics per stage hand-off (default: 3). |
100
+ | `--from ideate\|spec\|theory\|sources\|synthesis\|proposal\|design\|experiment\|analysis\|paper\|review\|publish\|disseminate` | Enum | No | Explicit resume stage (overrides the manifest-derived resume point). |
101
+
102
+ ---
103
+
104
+ ## Workflow — Six Phases over the Research Pipeline
105
+
106
+ 1. **Frame** — read the mission, extract intent, and resolve entry-point, scope, time-horizon, and ethics ambiguity via inquiry; state the research outcome and record the beyond-mission grant's scope. The entry point: a raw idea or domain enters at `research-ideate`; an existing suite resumes from its manifests / PROGRESS.md / `--from`; `--quick` enters at `research-sources` and terminates after `research-synthesis`.
107
+ 2. **Decompose the pipeline** — map the mission onto the stage chain `research-ideate → research-spec → research-theory → research-sources → research-synthesis → research-proposal → research-design → research-experiment → research-analysis → research-paper → research-review → research-publish → research-disseminate`; each stage is a workflow work-item whose return contract is its Handoff Manifest. Under `--quick`, the chain narrows to the `research-sources → research-synthesis` slice.
108
+ 3. **Dispatch stages (opt-in gated)** — dispatch each stage in dependency order via its first-class `/research-<stage>` command, each resuming from the prior stage's manifest. Under `--autonomous`, continue across boundaries; otherwise present the next-stage plan and confirm. Per `rules/agent-orchestration.md`, a stage may itself fan out internal agents and skills (the `research-scout` discovery and `fact-checker` verification agents, plus the `multi-source-research` extraction skill).
109
+ 4. **Refute-by-default verify each hand-off** — before a downstream stage consumes an upstream manifest, run N refute-by-default critics over the hand-off, each a distinct lens: source authority and citation integrity (R1/R4), falsifiability and preregistration fidelity (R3/R5), statistical rigor (R7), ethics and conflicts disclosure (R6), open-science / FAIR posture (R8), reporting-guideline conformance (R9), theoretical grounding and impact (R10), gate-attestation presence, and cross-stage non-contradiction. The hand-off survives only on a non-refute majority; a failed Sequence Gate or a refuted hand-off halts and surfaces, never silently proceeds.
110
+ 5. **Remediate** — apply surviving findings at their root by re-invoking the owning stage to fix (never patch the manifest); remediate disclosed beyond-mission defects; integrate in the main loop.
111
+ 6. **Synthesize & self-check** — when `research-disseminate` emits the dissemination record (or `research-synthesis` completes under `--quick`), synthesize the run in a single pass, release raw stage output, run the workflow's fifteen-bar gate over the result surface, record the attestation, and emit the single recommended next move.
112
+
113
+ ---
114
+
115
+ ## Mandates
116
+
117
+ | Discipline | Rule | Enforcement point |
118
+ | ---------- | ---- | ----------------- |
119
+ | Pipeline ordering | the stage commands' Sequence Gates | Dispatch downstream only when each upstream manifest + gate attestation is present. |
120
+ | First-class stages preserved | `skills/research-suite/SKILL.md` | The orchestrator never reimplements a stage; stage behavior is unchanged. |
121
+ | Rigor floor | the research-suite mandates R1–R10 | Each hand-off's verification (Phase 4) tests source authority, reproducibility, falsifiability, citation integrity, preregistration, ethics, statistical rigor, open-science / FAIR, reporting-guideline conformance, and theoretical grounding / impact. |
122
+ | Adversarial verification | `rules/agent-orchestration-patterns.md` §Quality patterns | Phase 4 refute-by-default panel gates every stage hand-off. |
123
+ | Opt-in autonomy | `rules/agnostic-posture.md` + `rules/context-management.md` §4A | Continuous chaining engages only under `--autonomous`; default halts at each stage boundary. |
124
+ | Disclosure | `rules/disclosure-ledger.md` | Every beyond-mission amendment disclosed with cited rationale. |
125
+ | Determinism | `rules/determinism.md` | Result-surface shape byte-stable; `(Recommended)` markers; terminal next move. |
126
+ | Pre-emission gate | `rules/pre-emission-gate.md` | Each stage runs its own gate; the workflow runs the fifteen bars over the synthesized result. |
127
+
128
+ ---
129
+
130
+ ## Output
131
+
132
+ - The chain's artifacts (owned by each stage command: the research-suite working state, the paper and data deliverables at host-natural locations, the publication record).
133
+ - A deterministic result surface (research outcome + per-stage verified hand-offs + disclosure ledger + gate attestation + workflow run trace + single recommended next move).
134
+
135
+ ---
136
+
137
+ ## Decision Tree
138
+
139
+ ```mermaid
140
+ %% verified: 2026-06-16 %%
141
+ %% provenance: commands/research.md §Workflow %%
142
+ %% cross-reference: commands/workflow.md, commands/research-ideate.md, research-spec.md, research-theory.md, research-sources.md, research-synthesis.md, research-proposal.md, research-design.md, research-experiment.md, research-analysis.md, research-paper.md, research-review.md, research-publish.md, research-disseminate.md, skills/workflow/SKILL.md, skills/research-suite/SKILL.md %%
143
+ flowchart TD
144
+ Start[/research invoked/] --> Frame{Mission + entry point unambiguous?}
145
+ Frame -->|no| Inquiry[Frame: structured-inquiry scope + entry + ethics set]
146
+ Inquiry --> Frame
147
+ Frame -->|raw idea or domain| Ideate[entry = research-ideate]
148
+ Frame -->|--quick| QuickEntry[entry = research-sources · terminate after research-synthesis]
149
+ Frame -->|existing suite| Resume[resume stage from manifests / --from]
150
+ Ideate --> Decompose[Decompose pipeline into staged work-items + manifest return contracts]
151
+ QuickEntry --> Decompose
152
+ Resume --> Decompose
153
+ Decompose --> OptIn{--autonomous set?}
154
+ OptIn -->|no| Plan[Present next-stage plan · confirm]
155
+ OptIn -->|yes| Dispatch[Dispatch /research-stage · resume from upstream manifest]
156
+ Plan --> Dispatch
157
+ Dispatch --> RunStage[stage runs · emits manifest + gate attestation]
158
+ RunStage --> Verify[Refute-by-default critics over the hand-off · R1-R10 lenses]
159
+ Verify --> Survive{Non-refute majority AND Sequence Gate passes?}
160
+ Survive -->|no| Halt[Halt · surface failed gate / refuted hand-off · remediate at owning stage]
161
+ Halt --> Dispatch
162
+ Survive -->|yes| More{more stages in scope?}
163
+ More -->|yes| Decompose
164
+ More -->|no| Synth[research-disseminate record / --quick synthesis → synthesize · workflow fifteen-bar gate]
165
+ Synth --> Emit[Emit deterministic result + recommended next move]
166
+ ```
167
+
168
+ ---
169
+
170
+ ## Recommended Next Step
171
+
172
+ Invoke `/research <question>` for a fresh research mission (the wrapped workflow starts at `/research-ideate` and drives to a disseminated, peer-reviewed paper), `/research <question> --quick` for a one-shot cited report (runs `/research-sources` + `/research-synthesis` only), or `/research <project-root>/.apothem/plans/{suite}/` to resume an existing suite from its first incomplete stage; review each stage hand-off's refute-by-default verification, then pass `--autonomous` to chain continuously once the decomposition and return contracts read correctly. The planned (halt-at-boundary) mode is the safe default — autonomy is the explicit opt-in.
173
+
174
+ ## Bindings (§0.j five-direction)
175
+
176
+ - **Drives →** `commands/research-ideate.md`, `commands/research-spec.md`, `commands/research-theory.md`, `commands/research-sources.md`, `commands/research-synthesis.md`, `commands/research-proposal.md`, `commands/research-design.md`, `commands/research-experiment.md`, `commands/research-analysis.md`, `commands/research-paper.md`, `commands/research-review.md`, `commands/research-publish.md`, `commands/research-disseminate.md` (the stages it dispatches as workflow phases). The per-stage Handoff Manifests it consumes as return contracts. The refute-by-default verify panel at each hand-off (Phase 4). The workflow's fifteen-bar gate over the synthesized result (Phase 6). The disclosure ledger for every beyond-mission amendment.
177
+ - **Driven by ←** The operator's question / suite path + `--autonomous` / `--quick` / `--verify-panel` / `--from` flags. The structured-inquiry entry + scope + ethics resolutions from the Frame phase. The rigor mandates R1–R10 the research-suite skill ratifies.
178
+ - **Satisfies →** The directive that `/research` drives the research pipeline as a single wrapped dynamic workflow (no separate `*-workflow` command). The `commands/README.md` command catalog's Research-pipeline row for `/research` (the registry entry that ratifies this command's place in the slash-command catalog). The deterministic-output contract at `rules/determinism.md`. Preserves first-class stages and opt-in chaining; `--quick` preserves the single-shot cited-report capability.
179
+ - **Established by ↑** `commands/workflow.md` (the general wrapped-workflow pattern this specializes). `commands/plan.md` (the sibling pipeline-as-workflow shape this mirrors). `rules/agent-orchestration.md` (the team patterns + adversarial-verify). `rules/agnostic-posture.md` (the opt-in default-off frame). `skills/research-suite/SKILL.md` (the research knowledge surface + R1–R10 rigor floor).
180
+ - **Gated by ←** A statable question or resolvable suite path. Each stage's Sequence Gate (dispatch only when the upstream manifest + gate attestation is present). The operator's `--autonomous` opt-in for continuous chaining. The harness's Agent + structured-inquiry + Edit + Write + Read + Grep + WebSearch + WebFetch tool surface. The destructive-op floor for irreversible / outward-facing steps (data collection, publication submission).
181
+ - **Cross-bound with ↔** `commands/workflow.md` (the general wrapped-workflow sibling) + `commands/plan.md` + `commands/fortress.md` (the sibling pipeline wrappers — `/plan` planning, `/research` research, `/fortress` hardening). `commands/research-ideate.md` + `commands/research-spec.md` + `commands/research-theory.md` + `commands/research-sources.md` + `commands/research-synthesis.md` + `commands/research-proposal.md` + `commands/research-design.md` + `commands/research-experiment.md` + `commands/research-analysis.md` + `commands/research-paper.md` + `commands/research-review.md` + `commands/research-publish.md` + `commands/research-disseminate.md` (the dispatched stages). `skills/workflow/SKILL.md` (the workflow procedure) + `skills/research-suite/SKILL.md` (the research knowledge surface). `agents/research-scout.md` + `agents/fact-checker.md` (the discovery + verification lenses stages fan out). `skills/multi-source-research/SKILL.md` + `skills/source-synthesis/SKILL.md` (the extraction + synthesis procedures stages dispatch). `rules/agent-orchestration.md` + `rules/agent-orchestration-patterns.md` (orchestration + adversarial-verify). `rules/agnostic-posture.md` (opt-in autonomy). `rules/context-management.md` §4A (continuous-execution boundary). `rules/host-discovery.md` (deliverable locations). `rules/disclosure-ledger.md` (amendment disclosure). `rules/determinism.md` (deterministic result).