@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,92 @@
1
+ ---
2
+ name: "incident-runbook"
3
+ version: "0.1.0"
4
+ updated: "2026-06-09"
5
+ description: "Author and execute operational incident runbooks — matched when the operator asks to 'write a runbook', define an 'on-call procedure', author 'incident response steps', document a 'recovery procedure', 'document recovery steps for a failing service', or capture the response sequence for a failing or compromised service. Produces a runbook in the canonical five-stage shape — Trigger → Diagnosis → Action → Verification → Rollback — where every Action step carries an explicit, paired rollback path and every irreversible Action sits behind a no-default confirmation gate. On execution, advances Diagnosis → Action → Verification in order, confirming each live-infrastructure Action through the structured-inquiry channel and STOPping at the first Verification failure to surface its rollback. Serves the developer and security cohorts. NOT for provisioning monitoring/alerting/dashboards, paging on-call rotations or opening incident channels, writing post-mortems or retrospectives, or batch-executing destructive remediation unattended. User-invocable directly."
6
+ archetype: "runbook-template"
7
+ userInvocable: true
8
+ argument-hint: "[--service NAME]"
9
+ disable-model-invocation: true
10
+ allowed-tools: "Read, Write, Edit, Glob, Grep, Bash"
11
+ ---
12
+
13
+ <!-- SPDX-License-Identifier: MIT -->
14
+
15
+ ## Purpose
16
+
17
+ Author and execute operational runbooks for a named service. Every runbook follows the canonical five-stage structure — **Trigger · Diagnosis · Action · Verification · Rollback** — and every Action carries an explicit rollback path the on-call operator can execute under pressure.
18
+
19
+ The product is a document an operator reaches for at 3 a.m. and trusts without hesitation: each step is concrete (names the exact command), ordered (the sequence is the procedure), and reversible (every Action has a tested inverse, or is named irreversible behind a confirmation gate).
20
+
21
+ ## Detection Signal
22
+
23
+ Triggers when the operator asks to "write a runbook", define an "on-call procedure", author "incident response steps", document a "recovery procedure", or capture the response sequence for a failing or compromised service. Any phrasing that asks for the ordered operational steps an on-call engineer follows during an incident matches.
24
+
25
+ ## Non-Goals
26
+
27
+ This skill carries a deliberately narrow surface. It is NOT:
28
+
29
+ - **Not a monitoring or alerting configurator.** The runbook names the trigger the operator observes; it does not provision dashboards, alert rules, or telemetry pipelines.
30
+ - **Not an incident-management platform.** It authors the procedure document; it does not page on-call rotations, open incident channels, or track timelines in a tracker.
31
+ - **Not a post-mortem writer.** The runbook is the forward-acting recovery procedure, not the retrospective. Post-incident analysis lands in a separate document.
32
+ - **Not a remediation auto-runner.** When executing a runbook, the skill performs each Action against live infrastructure only after the operator confirms via the structured-inquiry channel; it never batch-executes destructive steps unattended.
33
+
34
+ ## Workflow — Authoring
35
+
36
+ 1. **Discover the service surface.** Walk the host's ratified source-of-truth files per `rules/host-discovery.md` to identify the named service (from `--service NAME` or inquiry), its deployment topology, health-check endpoints, log locations, and existing runbook conventions. Record each discovery with provenance.
37
+ 2. **Author the Trigger stage.** State the observable condition that opens the incident — the alert name, the error-rate threshold, the failed health check, the security signal. The Trigger is a falsifiable observation, never a feeling.
38
+ 3. **Author the Diagnosis stage.** Enumerate the ordered diagnostic steps that localize the root cause: the log queries to run, the metrics to read, the dependency checks to perform. Each step names the command and the expected signal that confirms or rules out a cause.
39
+ 4. **Author the Action stage.** Enumerate the ordered remediation steps. Each Action step names the exact command or operation, the expected post-condition, and a one-line precondition that must hold before it runs.
40
+ 5. **Author the Rollback stage — paired to every Action.** For each Action step, author the inverse operation that returns the service to its pre-Action state. An Action whose rollback cannot be executed because the operation is irreversible is named explicitly as irreversible, and that Action carries a `no-default: user decision required` confirmation gate per `rules/interactive-questions.md` §6. **Action–Rollback parity is the central invariant: no Action ships without a paired Rollback or an explicit irreversibility declaration.**
41
+ 6. **Author the Verification stage.** State the ordered checks that confirm recovery: the health endpoint returns healthy, the error rate falls below threshold, the security signal clears. Each check names the command and the pass condition.
42
+ 7. **Emit the runbook file.** Write the runbook to its host-natural location, route the new file through `scripts/inject-header.py`, and confirm every Action step has a paired Rollback step (or a declared irreversibility gate) before the file is considered complete.
43
+
44
+ ## Workflow — Execution
45
+
46
+ When the operator asks to run an authored runbook, advance **Diagnosis → Action → Verification** in order:
47
+
48
+ - Run the Diagnosis steps and report which causes are confirmed or ruled out.
49
+ - For each Action step, confirm via the structured-inquiry channel before executing against live infrastructure; never batch live Actions.
50
+ - STOP at the first Verification failure and surface the paired Rollback path for the failed Action — do not advance past a failed verification.
51
+
52
+ ## Return Contract
53
+
54
+ Maximum response: 800 tokens for authoring; unlimited when executing a runbook against live infrastructure. Structure:
55
+
56
+ - **Summary** — one sentence naming the service and the runbook's incident scope.
57
+ - **Stages emitted** — the Trigger / Diagnosis / Action / Verification / Rollback sections with their step counts.
58
+ - **Action–Rollback parity** — confirmation that every Action step carries a paired Rollback step, with any irreversible Actions named.
59
+ - **Surfaced gaps** — discovery gaps, missing endpoints, or unverifiable rollback paths (empty when none).
60
+ - **File path** — the canonical location the runbook was written to.
61
+
62
+ ## Foundational Stanzas
63
+
64
+ The four standing surfaces every operator inherits.
65
+
66
+ ### Refusal & Escalation
67
+
68
+ REFUSE any request that asks the skill to act outside its mission — provisioning monitoring, paging rotations, writing post-mortems, or batch-executing destructive remediation unattended. Refusal is explicit: name what was refused, name the mission boundary crossed, and surface an escalation option through the structured-inquiry channel per `rules/interactive-questions.md` (canonical channel; three-segment option annotation; free-form prose as primary input is forbidden). When an Action step has no executable Rollback and the operator has not confirmed the irreversibility gate, STOP — do not emit a runbook with an unguarded irreversible Action.
69
+
70
+ ### Output Surface
71
+
72
+ The skill emits one runbook document per invocation at the host's ratified runbook location, discovered per `rules/host-discovery.md`. Planning artifacts go to `<project-root>/.apothem/plans/{suite}/`; NEVER write a plan-suite artifact to any global-ecosystem location. Runbook prose carries natural domain language per `rules/operational-mandates.md` CM-7 — zero plan-internal references.
73
+
74
+ ### File-Authoring Contract
75
+
76
+ Every NEW file the skill creates routes through `scripts/inject-header.py` so the canonical `SPDX-License-Identifier: MIT` header is injected in the comment family matching the filetype; the injector is idempotent and detects the variant from the byte-exact fixture at `src/apothem/schemas/authorship-header.txt`. The exempt classes are enumerated at `src/apothem/schemas/header-exceptions.txt`. Edits to existing runbooks preserve any existing header.
77
+
78
+ ### Structured Inquiry on Ambiguity
79
+
80
+ When the skill reaches a decision in any of the seven authoritative-data categories per `rules/host-discovery.md` and the host is silent — the service name, the deployment target, the health endpoint, the log location, the rollback mechanism — it routes the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3 (rationale / recommendation / default-pointer). Free-form prose questions as primary input are forbidden; NEVER fabricate authoritative data. Every Action step that deletes, restarts, scales down, or revokes against live infrastructure routes through the per-file destructive-op floor per `rules/interactive-questions.md` §6 — one invocation per operation, every option's `default-pointer:` carrying the verbatim `no-default: user decision required` marker.
81
+
82
+ ## Recommended Next Step
83
+
84
+ **Invoke the `incident-runbook` skill via the Skill tool** with `--service NAME` to author the runbook for a named service, then execute its Verification stage against a staging deployment to confirm every step is orderable before the runbook reaches on-call.
85
+
86
+ ## Bindings (§0.j five-direction)
87
+
88
+ - **Drives →** ● Every authored runbook's Trigger / Diagnosis / Action / Verification / Rollback structure. ● The Action–Rollback parity invariant at every emitted runbook. ● Every live-infrastructure Action step's destructive-op confirmation gate.
89
+ - **Satisfies →** ● The developer and security cohorts' need for tested, reversible operational procedures. ● `CLAUDE.md` Source Layout row "incident-runbook" (skills/ class).
90
+ - **Established by ↑** ● `CLAUDE.md` Source Layout (skills/ folder-with-`SKILL.md` class). ● `CLAUDE.md` Ambiguity Handling (structured inquiry over fabrication).
91
+ - **Gated by ←** ● The harness's Write / Edit / Bash tool surface. ● The host's discovered runbook conventions per `rules/host-discovery.md`.
92
+ - **Cross-bound with ↔** ↔ `rules/interactive-questions.md` (structured-inquiry channel; per-file destructive-op floor for live Actions). ↔ `rules/host-discovery.md` (service-surface discovery). ↔ `scripts/inject-header.py` (authorship-header injection). ↔ `src/apothem/schemas/header-exceptions.txt` (header-exempt classes). ↔ `skills/plan-suite/SKILL.md` + `skills/ecosystem-audit/SKILL.md` (sibling skills under the same registry section).
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: "multi-source-research"
3
+ version: "0.1.0"
4
+ updated: "2026-06-09"
5
+ description: "Multi-source research harness — matched when the operator asks to 'research X deeply', 'investigate', 'find sources on', 'gather evidence about', 'fact-check', or any phrasing that demands a fanned-out, cross-verified, cited report rather than a single answer recalled from memory. Runs a five-step pipeline: decompose the question into testable sub-questions, fan out parallel source-discovery queries through a Research Team agent dispatch, fetch and extract claims per source, adversarially verify each claim against two or more independent sources, and synthesize a cited report where every claim carries its sources, a HIGH/MEDIUM/LOW confidence level, and an open-questions list. A single-source claim never closes at HIGH; an unverifiable claim is reported at LOW with the gap named, never papered over with an invented citation. User-invocable directly. NOT a single-answer lookup, a code generator, a plan-suite generator, a documentation generator, or a single-source summarizer."
6
+ archetype: "research-template"
7
+ userInvocable: true
8
+ argument-hint: "[research question]"
9
+ disable-model-invocation: true
10
+ allowed-tools: "Read, Write, Edit, Glob, Grep, Bash, WebSearch, WebFetch, Agent"
11
+ ---
12
+
13
+ <!-- SPDX-License-Identifier: MIT -->
14
+
15
+ ## Purpose
16
+
17
+ Answer a research question with a cited, cross-verified report rather than a single recalled answer. The skill decomposes the question into sub-questions, discovers sources in parallel, extracts claims per source, verifies each claim against two or more *independent* sources, and synthesizes the findings into a report where every claim carries its sources and a confidence level.
18
+
19
+ The load-bearing discipline is **adversarial verification**: a claim is not closed until independent evidence confirms it, contradictions are surfaced rather than silently resolved, and the absence of corroboration is reported as low confidence — never hidden behind an invented citation.
20
+
21
+ ## Detection Signal
22
+
23
+ Triggers when the operator asks to "research X deeply", "investigate", "find sources on", "gather evidence about", "fact-check", or any phrasing that demands a fanned-out, cross-verified, cited report — never a single answer recalled from memory. The signal is the demand for *sourced, multi-source evidence* over a single-shot reply.
24
+
25
+ ## Non-Goals
26
+
27
+ This skill carries a deliberately narrow surface. It is NOT:
28
+
29
+ - **Not a single-answer lookup.** A one-shot recalled answer is a different surface; this skill exists when the answer must be sourced and cross-verified.
30
+ - **Not a code generator.** The skill emits a research report, never codebase artifacts. Code emission is the host's `/plan-execute` surface.
31
+ - **Not a plan-suite generator.** Phase decomposition and plan structure belong to the `/plan` pipeline stages; this skill consumes no plan template and writes no plan-suite artifact.
32
+ - **Not a documentation generator.** The report is working research evidence, not user-facing documentation. User-facing docs land at the host's documentation surfaces per `rules/host-discovery.md`.
33
+ - **Not a single-source summarizer.** A claim resting on one source is reported at the lowest confidence with the dependency named; one source never closes a claim.
34
+
35
+ ## Workflow
36
+
37
+ 1. **Decompose the question.** Split the research question into testable sub-questions, each answerable by sourced evidence. Record the sub-question set before any search. When the question is underspecified (scope, region, timeframe, or definition ambiguous), STOP and surface the clarifying choices through the structured-inquiry channel before fanning out — fanning out against an ambiguous question wastes the fan-out budget.
38
+ 2. **Fan out parallel source-discovery queries.** Dispatch one `WebSearch` per sub-question through parallel Agent fan-out per `rules/agent-orchestration.md` — a Research Team, full-parallel, structured-summary return contract. Each agent returns candidate source URLs with relevance notes.
39
+ 3. **Fetch and extract per source.** `WebFetch` each candidate source; extract the specific claims it asserts, each bound to its source URL and the quoted or paraphrased passage that carries it. When a required source is paywalled, login-gated, purchase-only, or otherwise inaccessible after the `WebFetch` attempt, do NOT silently substitute a lower-trust accessible source — STOP and request the full source content from the operator through the structured-inquiry channel per `rules/source-accessibility.md` (trust outranks reachability); a claim left resting on an unreachable trusted source is reported at LOW confidence with the gap named, never papered over. Record the source-trust decision (which source, its trust tier, whether the trusted source was reachable, why a substitute was used) in the disclosure ledger per `rules/disclosure-ledger.md`.
40
+ 4. **Adversarially verify each claim against two or more independent sources.** For every extracted claim, seek at least two independent sources that confirm or contradict it. Sources sharing a single upstream origin do not count as independent. Contradictions are surfaced, never silently resolved in favor of one side.
41
+ 5. **Synthesize a cited report with confidence levels.** Assemble the verified claims into a report. Each claim carries its sources, a confidence level from the closed three-tier scale below, and an open-questions list naming what the evidence did not settle.
42
+
43
+ **Confidence scale (closed, three-tier):**
44
+
45
+ - **HIGH** — confirmed by two or more independent sources.
46
+ - **MEDIUM** — one strong source plus weak corroboration.
47
+ - **LOW** — single source, or contested across sources.
48
+
49
+ ## Return Contract
50
+
51
+ A cited research report with four required elements:
52
+
53
+ - **Claims** — each stated definitively, with the sub-question it answers.
54
+ - **Sources** — per claim, the independent source URLs and the passages that carry the claim.
55
+ - **Confidence** — per claim, HIGH / MEDIUM / LOW per the Step 5 scale, with the reason.
56
+ - **Open questions** — what the evidence did not settle, and which sub-question remains unanswered.
57
+
58
+ A claim without sources, or a single-source claim presented as HIGH confidence, is non-conformant.
59
+
60
+ ## Foundational Stanzas
61
+
62
+ The four standing surfaces every invocation inherits.
63
+
64
+ ### Refusal & Escalation
65
+
66
+ REFUSE any request that asks the skill to act outside its research mission — code generation, plan-suite authoring, documentation production, or asserting an unsourced answer as fact. Refusal is explicit: name what was refused, name the mission boundary crossed, and surface escalation through the structured-inquiry channel per `rules/interactive-questions.md` (canonical channel; three-segment option annotation; free-form prose as primary input is forbidden). When a research question is underspecified, STOP and surface the clarifying choices through the same channel before fanning out.
67
+
68
+ ### Output Surface
69
+
70
+ The skill's primary output is the cited research report (markdown), written to STDOUT for direct invocation. When the operator requests a durable artifact, the report lands at the host's research-evidence location per `rules/host-discovery.md` — never at a global-ecosystem location, never inside a downstream project's `.apothem/plans/` from this skill's context. Intermediate source dumps and extraction scratch are session-local and released after synthesis.
71
+
72
+ ### File-Authoring Contract
73
+
74
+ When the skill emits a NEW file, the file routes through `scripts/inject-header.py` so the canonical `SPDX-License-Identifier` `MIT` header per `src/apothem/schemas/authorship-header.txt` is injected at the head; the injector is idempotent and detects the filetype variant automatically. Exempt classes — LICENSE, JSON configuration files, lockfiles, generated assets, vendored trees, ephemera, `.keep` markers, binary files — are enumerated at `src/apothem/schemas/header-exceptions.txt`.
75
+
76
+ ### Structured Inquiry on Ambiguity
77
+
78
+ When the skill reaches a decision in any of the seven authoritative-data categories per `rules/authority-inquiry.md` — identity, scope direction, preference, security, naming of public surfaces, infrastructure endpoints, version pins — and the host is silent, it routes the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3 (rationale / recommendation / default-pointer). Free-form prose questions as primary input are forbidden. NEVER fabricate authoritative data, and NEVER fabricate a source — an unverifiable claim is reported at LOW confidence with the gap named, never papered over with an invented citation.
79
+
80
+ ## Recommended Next Step
81
+
82
+ **Invoke the skill with the research question as its argument** to decompose, fan out, verify, and synthesize. When the question is underspecified, answer the surfaced clarifying choices first so the fan-out targets a well-scoped question.
83
+
84
+ ## Bindings (§0.j five-direction)
85
+
86
+ - **Drives →** ● Every multi-source research engagement's decompose → fan-out → fetch → verify → synthesize workflow. ● Every cited report's claim / source / confidence / open-question shape. ● Every parallel source-discovery fan-out via the Research Team pattern.
87
+ - **Satisfies →** ● `CLAUDE.md` Source Layout row "multi-source-research" (skills/ class). ● The research cohort mission (fan-out, fetch, adversarially verify, synthesize a cited report).
88
+ - **Established by ↑** ● `CLAUDE.md` Source Layout (skills/ class declaration with the folder-with-`SKILL.md` convention). ● `CLAUDE.md` Ambiguity Handling (structured inquiry over fabrication).
89
+ - **Gated by ←** ● The harness's WebSearch / WebFetch / Agent tool surfaces (the skill fans out and fetches through them). ● The structured-inquiry channel for underspecified questions.
90
+ - **Cross-bound with ↔** ↔ `rules/agent-orchestration.md` (the Research Team fan-out pattern Step 2 dispatches). ↔ `rules/interactive-questions.md` (the structured-inquiry channel for ambiguity). ↔ `skills/ecosystem-audit/SKILL.md` + `skills/plan-suite/SKILL.md` (sibling skills under the same registry section).
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: "plan-suite"
3
+ version: "0.1.0"
4
+ updated: "2026-06-10"
5
+ description: "Master Plan Suite template container — matched when the work is structured plan generation from authored prose, phase-by-phase decomposition of a complex multi-step engagement, plan-suite refinement, forensic plan review, closed-loop plan audit/remediation, architectural design, phase execution against quality gates, read-only progress reporting, or decision-preserving amendment; consumed by the /plan pipeline stages (spec, generate, review, design, audit, execute, status, amend). Houses master_template.md — the canonical specification defining plan-suite structure, the mandate catalog (TM-1–28), the core-principle catalog (CP-1–27), and the Technical Co-Founder Framework. Not directly user-invocable: the /plan stages resolve the template by path, cold-load it on a context-empty invocation, and refuse to regenerate it from memory if it is missing. Not a codegen tool, not a research pipeline, not a documentation generator, not a registry, and not stateful across sessions."
6
+ archetype: "workflow-template"
7
+ userInvocable: false
8
+ disable-model-invocation: true
9
+ allowed-tools: "Read"
10
+ ---
11
+
12
+ <!-- SPDX-License-Identifier: MIT -->
13
+
14
+ ## Purpose
15
+
16
+ > **Structural Note:** This skill is a *template container*, not a procedural skill. It deliberately omits the standard SKILL.md Procedure / Detection-Signal structure because it houses a reference template rather than encoding a reusable technique. The `/plan` pipeline stages invoke it by reading its template file directly — not by following a procedure. The deviation from standard skill structure is intentional.
17
+
18
+ Houses the Master Plan Suite Template — the canonical specification referenced by all `/plan` pipeline commands (`/plan-spec`, `/plan-generate`, `/plan-review`, `/plan-design`, `/plan-audit`, `/plan-execute`, `/plan-status`, `/plan-amend`).
19
+
20
+ ## Contents
21
+
22
+ - `master_template.md` — the full template defining plan-suite structure, the mandate catalog (TM-1–28), the core-principle catalog (CP-1–27), and the Technical Co-Founder Framework.
23
+
24
+ ## Auto-Load Contract
25
+
26
+ When any `/plan-<stage>` command is invoked **cold** — without its predecessor stages' context explicitly loaded into the session — the consuming stage MUST resolve this skill before executing, so the full pipeline context loads uniformly and no stage assumes manually-preloaded state.
27
+
28
+ **Cold-invocation trigger.** A `/plan-<stage>` invocation is cold when the session carries none of: a resolved `_spec/spec.md`, a loaded plan suite (PREAMBLE.md / MASTER-PLAN.md / PROGRESS.md), or a prior `/plan-<stage>` turn in the same session. On a cold invocation the stage reads this skill first; on a warm invocation (predecessor context already loaded) the read is a no-op refresh.
29
+
30
+ **Deterministic full-pipeline load order.** Resolving this skill surfaces the pipeline in one fixed order — the same cold invocation always yields the same load:
31
+
32
+ 1. `/plan-spec` — prose → `_spec/spec.md` (+ Handoff Manifest)
33
+ 2. `/plan-generate` — `_spec/spec.md` → Master Plan Suite
34
+ 3. `/plan-review` — forensic audit + scorecards
35
+ 4. `/plan-design` — architecture artifact (architecture-bearing suites only)
36
+ 5. `/plan-audit` — closed-loop remediation to a zero-finding gate
37
+ 6. `/plan-execute` — phase execution against quality gates
38
+ 7. `/plan-status` — read-only progress report
39
+ 8. `/plan-amend` — amend an existing suite, re-deriving only affected artifacts
40
+
41
+ Each stage's template anchor (its Step-0 consumption point in the Invoking Surfaces table below) resolves against this skill's `master_template.md` by path. A cold stage that cannot resolve this skill STOPs per the Resolution & Recovery clause instead of proceeding on assumed context.
42
+
43
+ ## Non-Goals
44
+
45
+ This skill is a template container with a deliberately narrow surface. It is NOT:
46
+
47
+ - **Not a one-shot codegen tool.** The template defines plan structure; it does not generate code, scaffold projects, or emit codebase artifacts directly. Codebase emission is the consuming `/plan-execute` stage's responsibility, governed by the host's discovered conventions.
48
+ - **Not a research synthesis pipeline.** The template consumes authored prose at `_spec/spec.md`; it does not gather, summarize, or triangulate external sources. Prose elicitation and refinement is the upstream `/plan-spec` stage's responsibility.
49
+ - **Not a documentation generator.** Plan-suite artifacts (PREAMBLE.md, MASTER-PLAN.md, PROGRESS.md, PLAN-NOTES.md, per-phase PHASE.md / REPORT.md) are working documents driving execution; they are not user-facing documentation. User-facing docs land at `site/content/docs/`, `README.md`, and the host's documentation surfaces.
50
+ - **Not a registry.** The template path is declared in the `/plan` pipeline and resolved path-based — no auto-discovery, no fallback registry, no plug-in-style extension.
51
+ - **Not stateful across sessions.** The skill carries no runtime state; each `/plan` stage invocation re-reads the template afresh, and durable plan-suite state lives in the per-suite folder under `<project-root>/.apothem/plans/{suite}/`.
52
+
53
+ ## Invoking Surfaces
54
+
55
+ The eight `/plan` pipeline stages consume this skill's template by direct path resolution:
56
+
57
+ | Command | Consumption point | What the command reads |
58
+ |---------|-------------------|------------------------|
59
+ | `/plan-spec` | Step 0 (template anchor) | TM-1 / TM-7 / TM-10 / TM-11 mandates governing prose elicitation |
60
+ | `/plan-generate` | Step 0 (template anchor) | Full TM-N / CP-N catalog + plan-suite skeleton (PREAMBLE / MASTER-PLAN / PROGRESS / PLAN-NOTES / per-phase PHASE.md) |
61
+ | `/plan-review` | Step 0 (template anchor) | TM-N / CP-N IDs for forensic-audit cross-references; scorecard rubric |
62
+ | `/plan-design` | Step 0 (template anchor) | Architecture-bearing TM-N / CP-N mandates governing the six-phase architectural-design transformation (sits between `/plan-review` and `/plan-execute`) |
63
+ | `/plan-audit` | Step 0 (template anchor) | TM-19 orchestration, zero-finding gate, `_outputs/`, and `*-maintenance` routing |
64
+ | `/plan-execute` | Step 0 (template anchor) | Verification-section + Phase Output Registry + Resumption Contract conventions |
65
+ | `/plan-status` | Step 0 (template anchor) | Phase Tracker + Phase Output Registry shape (read-only) |
66
+ | `/plan-amend` | Step 0 (template anchor) | TM-N / CP-N IDs governing decision-preserving amendment + the plan-suite artifact set it re-derives |
67
+
68
+ No agent invokes the skill directly; the `/plan` pipeline commands are the canonical consumption surface.
69
+
70
+ ## Foundational Stanzas
71
+
72
+ The four standing surfaces per the canonical project voice at `AGENTS.md` plus the active harness mirror, adapted to this skill's passive template-container role so consuming `/plan` pipeline stages inherit a coherent posture on template resolution.
73
+
74
+ ### Refusal & Escalation
75
+
76
+ REFUSE any consumer request that asks the skill to act outside its template-container mission — generation, edits, research, codegen, fixes. Refusal is explicit: name what was refused, name the mission boundary crossed, and route the consumer back to the appropriate `/plan` stage via the structured-inquiry channel per `rules/interactive-questions.md` (canonical channel; three-segment option annotation; free-form prose as primary input is forbidden). When the template file is missing, malformed, or unreachable, the skill STOPs and surfaces the recovery options in the Resolution & Recovery section below — it does NOT regenerate the template from training-time memory or scaffold a partial replacement.
77
+
78
+ ### Output Surface
79
+
80
+ The skill emits **no artifacts of its own**; it is a passive template read by consuming commands. Plan-suite artifacts that the consumers emit while resolving this template land at `<project-root>/.apothem/plans/{suite}/` per the suite-locality invariant at `rules/context-management.md` §2.6.1 — gitignored per the canonical `.gitignore` snippet, lifecycle draft → in-progress → converged → abandoned / superseded. NEVER write a plan-suite artifact outside the suite folder, NEVER write to `<project-root>/.apothem/plans/` from a downstream-project context, and NEVER write to any global-ecosystem location. The downstream-project lightweight plan-write surface is `/plan-spec --quick` per D3 — a single `<YYYY-MM-DD>--<kebab-slug>.md` file at the resolved project's `.apothem/plans/` directory. Codebase artifacts that consuming commands emit during plan execution go to their domain-natural locations under the host project per `rules/host-discovery.md`; per `rules/operational-mandates.md` CM-7, codebase artifacts contain ZERO plan-internal references — natural domain language only.
81
+
82
+ ### File-Authoring Contract
83
+
84
+ The skill is `allowed-tools: "Read"` — it authors no files directly. The contract applies to consuming `/plan` pipeline stages: every NEW codebase file the consumer creates routes through `scripts/inject-header.{sh,py}` so the canonical authorship-header banner is injected at the head; the injector is idempotent and detects the filetype variant automatically from the byte-exact fixture at `src/apothem/schemas/authorship-header.txt`. The exempt classes — LICENSE, JSON configuration files, lockfiles, generated assets, vendored trees, `.audit/` ephemera, `<project-root>/.apothem/plans/` ephemera, `.keep` / `.gitkeep` markers, binary files — are enumerated at `src/apothem/schemas/header-exceptions.txt`. Plan-suite artifacts (PREAMBLE.md, MASTER-PLAN.md, PROGRESS.md, PLAN-NOTES.md, per-phase PHASE.md / REPORT.md) are banner-exempt under the `.apothem/plans/**` exception class. The header-inject-guard hook at `hooks/messages/pretooluse-{write,edit}-header-guard.md` enforces the contract at every Write / Edit invocation made by the consuming command.
85
+
86
+ ### Structured Inquiry on Ambiguity
87
+
88
+ When a consuming `/plan` stage reaches a decision in any of the seven authoritative-data categories per `rules/authority-inquiry.md` — identity (suite owner, contributors), scope direction (which subtree, which target), preference (CI provider, branch strategy, formatter, linter, test framework), security (deny rules, secret rotation, allowed shells, allowed network egress), naming of public surfaces (suite name, phase identifiers), infrastructure endpoints, version pins (template version, downstream-tooling pins) — and the host is silent, the consumer routes the resolution through the structured-inquiry channel with the three-segment option annotation per `rules/interactive-questions.md` §3 (rationale / recommendation / default-pointer). Free-form prose questions as primary input are forbidden. NEVER fabricate authoritative data. Required-category inquiries (identity, scope direction, security posture, naming of public surfaces) block emission until answered; optional inquiries fall back to the recommended option and record the fallback in PLAN-NOTES.md as a finding. **Per-file destructive-op floor.** Every delete / rename / move / overwrite-without-retention / revert-uncommitted operation the consumer performs against an existing plan-suite artifact routes through the structured-inquiry channel on a per-file basis per `rules/interactive-questions.md` §6 — one invocation per file, every time, no `multiSelect` batching across files, every option's `default-pointer:` carrying the verbatim `no-default: user decision required` marker.
89
+
90
+ ## Conformity Posture
91
+
92
+ The three-element conformity discipline applies to **consumers** of this template — every `/plan` stage invocation that resolves the template inherits the obligations below — and is reproduced here so consumers reach the discipline at the same surface they reach the template.
93
+
94
+ **Discover-don't-assume preamble (M1).** Before any `/plan` stage invocation populates a plan-suite artifact from this template, the consuming command walks the host's ratified source-of-truth files for the host's planning conventions per `rules/host-discovery.md` — phase-folder naming, sub-phase-folder naming, report-filename convention, frontmatter requirements on per-phase artifacts, host-discovered TM-N / CP-N analogs. Honor discoveries; never silently install a planning convention where the host has its own.
95
+
96
+ **Authority inquiry surface (M5).** Per the Structured Inquiry on Ambiguity stanza above; this anchor binds the M5 discipline to the seven-category inquiry catalog at `rules/authority-inquiry.md` §10.
97
+
98
+ **Pre-emission self-check (M4).** Every plan-suite artifact emitted from this template — `PREAMBLE.md`, `MASTER-PLAN.md`, `PROGRESS.md`, `PLAN-NOTES.md`, every `phases/NN-topic/PHASE.md`, every `phases/NN-topic/REPORT.md` — passes the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` before the consuming `/plan` stage considers the artifact complete. The gate's attestation lands in the artifact's working trace (specifically, the corresponding REPORT.md's "Pre-Emission Gate Attestation" section per the established reporting convention). Mechanical-fraction bars run via the per-bar matchers at `conformity/*-grep.py`; reasoned bars are evaluated inline by the consuming command.
99
+
100
+ ## Resolution & Recovery
101
+
102
+ Not directly invocable. The `/plan` pipeline stages resolve this template via the path declared in `CLAUDE.md` Source Layout (currently `skills/plan-suite/master_template.md`). Resolution is path-based, not registry-based — there is no fallback registry and no auto-discovery; the path must match exactly.
103
+
104
+ **Fallback handling.** If the template file is missing, malformed (corrupted YAML/markdown that prevents parsing of the TM-N / CP-N sections), or unreachable: STOP and inform the user. Do NOT regenerate the template from training-time memory or scaffold a partial replacement — `/plan` pipeline stages depend on the canonical TM-N / CP-N IDs, and any divergence silently corrupts every cross-reference downstream. Recovery options surfaced via the structured-inquiry channel: (a) re-clone or re-install the apothem ecosystem from version control (Recommended); (b) restore the template file from a backup; (c) point commands at a known-good template via an explicit override path.
105
+
106
+ **Version compatibility.** Commands declare `Requires template v0.1.0+`. Bump the template's version field when changes alter TM-N / CP-N semantics; consumers refuse to operate against an older major version than they expect.
107
+
108
+ ## Recommended Next Step
109
+
110
+ Invoke `/plan-generate` to consume this skill's `master_template.md` and materialize a plan suite from the authored prose at `_spec/spec.md`. `/plan-generate` is the canonical downstream consumer that reads the full TM-N / CP-N catalog and the plan-suite skeleton from this template.
111
+
112
+ ## Bindings (§0.j five-direction)
113
+
114
+ - **Drives →** ● Every `/plan` stage's resolution of the master template at `skills/plan-suite/master_template.md`. ● Every TM-N / CP-N cross-reference resolution across the eight `/plan` pipeline stages. ● Every plan-suite emission's structural conformity (the template is the canonical schema). ◐ The version-compatibility gate (`Requires template v0.1.0+`).
115
+ - **Satisfies →** ● `CLAUDE.md` Source Layout row "plan-suite". ● `CLAUDE.md` Project Purpose (the eight `/plan` pipeline stages consume this skill's template).
116
+ - **Established by ↑** ● `CLAUDE.md` Source Layout. ● `CLAUDE.md` Project Purpose (the path declaration `skills/plan-suite/master_template.md`). ● `CLAUDE.md` Source Layout (skills/ class declaration with the folder-with-`SKILL.md` convention).
117
+ - **Gated by ←** ● The harness's Read tool surface (commands resolve the template by reading the canonical path). ● The presence of the template file at the canonical path (path-based resolution per the Resolution & Recovery clause).
118
+ - **Cross-bound with ↔** ↔ `commands/plan-spec.md` + `commands/plan-generate.md` + `commands/plan-review.md` + `commands/plan-audit.md` + `commands/plan-design.md` + `commands/plan-execute.md` + `commands/plan-status.md` + `commands/plan-amend.md` (the eight consumer commands). ↔ `skills/ecosystem-audit/SKILL.md` (sibling skill under the same registry section).