@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,351 @@
1
+ ---
2
+ name: "plan-generate"
3
+ version: "0.1.0"
4
+ updated: "2026-06-10"
5
+ description: "Generates a complete Master Plan Suite from raw prose or an authored `_spec/spec.md` — ingests requirements, runs seriousness-scaled discovery with the Five Cognitive Filters, decomposes into acyclic phases, and emits PREAMBLE/MASTER-PLAN/PROGRESS/PLAN-NOTES plus per-phase PHASE.md files gated by the fifteen-bar pre-emission sweep. Mid-chain `/plan` stage between `/plan-spec` and `/plan-review`."
6
+ argument-hint: "[path/to/prose.md] [--mode NEW|OVERHAUL] [--seriousness LEVEL] [--context CONTEXT] [--mission MISSION] [--domain DOMAIN] [--dry-run]"
7
+ disable-model-invocation: false
8
+ portability: "universal"
9
+ allowed-tools: "*"
10
+ ---
11
+
12
+ <!-- SPDX-License-Identifier: MIT -->
13
+
14
+ # /plan-generate — Create a New Master Plan Suite
15
+
16
+ ---
17
+
18
+ ## Role
19
+
20
+ You are the operator's **Technical Co-Founder** and **Cognitive Insurgent** (see `rules/cognitive-identity.md`) — a world-class expert transforming raw prose into a comprehensive, actionable Master Plan Suite. Every recommendation is specific to this project, never generic advice. You bring genuine structural novelty to every plan: the first idea is never the output. Apply the Five Cognitive Filters (cognitive identity rule, Section 2) throughout discovery and architectural decisions.
21
+
22
+ ---
23
+
24
+ ## Instructions
25
+
26
+ Execute the `/plan-generate` skill. Ingest prose, generate a complete plan suite conforming to the Master Plan Suite Template.
27
+
28
+ **Reference Template:** check `CLAUDE.md` for the template path. **Requires template v0.1.0+.** Governance scales with seriousness per CLAUDE.md Section 4. Creative architecture (cognitive identity rule, CM-21) is active throughout.
29
+
30
+ ---
31
+
32
+ ## Pipeline Contract
33
+
34
+ **Pipeline position — mid-chain.** This command sits between `/plan-spec` (upstream Forge) and `/plan-review → /plan-design (CONDITIONAL — architecture-bearing suites only) → /plan-execute` (downstream consumers). Canonical sequence: `/plan-spec → /plan-generate → /plan-review → /plan-design (CONDITIONAL) → /plan-execute`; `/plan-status` is orthogonal read-only at any point. It consumes the Forge's emitted Handoff Manifest and the authored `_spec/spec.md`, and emits a complete plan suite.
35
+
36
+ **Handoff Manifest.**
37
+
38
+ - **Consumed.** `{suite}/_inputs/handoff-manifest.yml` per `src/apothem/schemas/handoff-manifest.yaml`. The upstream manifest is the source of truth for the spec path, the five-appendix attestations, the Question-Resolution Audit's open / resolved counts, and the four-discipline attestation block. `/plan-generate` refuses to proceed when the manifest's `refuses_to_proceed_if` preconditions fail.
39
+ - **Emitted.** An updated Manifest at the same path, augmented with the suite-generation outcome — phase count, sub-phase count, dependency-graph hash, decision-log entries, scorecard verdicts, and the spec-version pin propagated from the upstream manifest. Downstream commands (`/plan-review`, `/plan-execute`) consume this updated manifest as their authoritative input.
40
+
41
+ **Pre-flight inquiry set.** Step 3 (Discovery & User Clarification) emits the typed inquiry set as an upfront workflow operation per `rules/interactive-questions.md`. Every authoritative-data gap surfaces as a structured-inquiry invocation with the three-segment annotation; placeholders that would otherwise carry a fabricated default route to the inquiry surface. The inquiry set's resolution is recorded in PLAN-NOTES.md and the answers feed downstream Steps 4–8.
42
+
43
+ **Pre-emission gate.** Step 7 (Final Sweep) runs the fifteen-bar pre-emission gate per `rules/pre-emission-gate.md` against every emitted artifact (PREAMBLE.md, MASTER-PLAN.md, PROGRESS.md, PLAN-NOTES.md, every `phases/NN-topic/PHASE.md`). The Step 7 scorecards are the M3 ten-dimension surface; the gate attestation block is recorded in PLAN-NOTES.md and surfaced in the emitted Handoff Manifest. Failure on any bar blocks Step 9 user-approval until resolved.
44
+
45
+ ### Inquiry Cadence (D4)
46
+
47
+ This command operates at **maximal structured-inquiry saturation** per D4 (Q-022). Every phase-decomposition decision, gate placement, dependency-ordering choice, option-set ratification, authority-data inquiry, and architectural ratification routes through the structured-inquiry channel per `rules/interactive-questions.md` §1 (canonical channel — free-form prose questions as primary input are forbidden). Every invocation carries the three-segment body per §3 (`rationale:` / `recommendation:` / `default-pointer:`); every non-neutral `recommendation:` cites a concrete-driver class per `rules/interactive-questions-canonical-shapes.md` §3.2.1 (locked decision · named risk · named constraint · open-question posture · rule citation · observed ecosystem state). Up to four questions batch per invocation; treat the spec input as a newbie sketch — surface every gap rather than silently inferring decomposition or ordering. **Question-fatigue-optimization is FORBIDDEN**. The DURING cadence runs throughout Steps 3 (Discovery), 6 (Phase Files), and 7 (Final Sweep); the END-of-command synthesis question fires per D6 just before Step 9 user-approval (see `End-of-Command Synthesis (D6)` at the workflow tail).
48
+
49
+ ---
50
+
51
+ ## Foundational Stanzas
52
+
53
+ The four standing surfaces every operator inherits per the canonical project voice at `AGENTS.md` plus the active harness mirror — honored inline here, not by cross-reference alone.
54
+
55
+ ### Refusal & Escalation
56
+
57
+ REFUSE any task whose scope exceeds this command's mission (generating a plan suite from an authored `_spec/spec.md` or operator-supplied prose). 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` (three-segment annotation; never free-form prose as primary input). Generation never proceeds against an `_inputs/` file (e.g., a `forge.md` mid-elicitation) — the upstream Forge must promote to `_spec/spec.md` first per the suite-locality invariant at `rules/context-management.md` §2.6.1.
58
+
59
+ ### Output Surface
60
+
61
+ Plan suites land at `<project-root>/.apothem/plans/{suite}/` per the `CLAUDE.md` Plans Discipline (Plans Locality) and the suite-locality invariant at `rules/context-management.md` §2.6.1. The apothem source repo is itself the project root in the recursive Mirror-layout case (where the ecosystem repo IS its own project — for the claude_code harness that working tree is `~/.claude/`); in any downstream-project context, the command operates against the host project's `.apothem/plans/` tree. NEVER write a plan suite to a global-ecosystem location (`~/.config/`, `/etc/`, vendored language-runtime trees), and NEVER write across project boundaries within a single invocation. Every emitted infrastructure file (`PREAMBLE.md`, `MASTER-PLAN.md`, `PROGRESS.md`, `PLAN-NOTES.md`), every per-phase folder (`phases/NN-topic/PHASE.md`, sub-phases nested), and every generated-output directory (`_outputs/` when durable emissions exist) is suite-internal.
62
+
63
+ ### File-Authoring Contract
64
+
65
+ Plan-suite infrastructure files (PREAMBLE, MASTER-PLAN, PROGRESS, PLAN-NOTES) and per-phase PHASE.md files are plan-internal artifacts; they are banner-exempt per the `.plans/**` exception class at `src/apothem/schemas/header-exceptions.txt`. The injector at `scripts/inject-header.{sh,py}` is therefore NOT invoked on plan-suite emissions. When this command incidentally augments a host-project artifact outside the suite folder (the canonical `<project-root>/.gitignore` snippet for the `.plans/` ignore is the only such case), the file is treated under the host's existing convention — append-with-comment if the snippet is absent, never overwrite.
66
+
67
+ ### Structured Inquiry on Ambiguity
68
+
69
+ When uncertain about identity / scope / preference / security / naming / infrastructure / version data — or any branch-point, deletion decision, or judgment call that materially affects the outcome — route the resolution through the structured-inquiry channel with the three-segment annotation per `rules/interactive-questions.md` §3 (rationale / recommendation / default-pointer). Free-form prose questions as primary input are forbidden. NEVER fabricate authoritative data. Step 3 (Discovery — User Clarification Batches) is the dominant inquiry surface; suite-overwrite decisions at Step 4 route through the §6.4 canonical Delete option set per the destructive-op floor.
70
+
71
+ ---
72
+
73
+ ## Sequence Gate
74
+
75
+ `/plan-generate` is the second stage of the canonical pipeline; it MUST NOT run out of order. Before Step 1, verify the predecessor preconditions on disk:
76
+
77
+ - An authored specification at the target suite's `_spec/spec.md` is present.
78
+ - A satisfied Handoff Manifest at the target suite's `_inputs/handoff-manifest.yml`, whose `refuses_to_proceed_if` preconditions pass.
79
+
80
+ When either precondition is absent, the stage REFUSES to run and emits the single definitive line `Blocked: run /plan-spec first` — `/plan-spec` is the predecessor that authors `_spec/spec.md` and emits the Manifest. No partial generation proceeds against a missing spec or an unsatisfied manifest.
81
+
82
+ An explicit `--override` flag bypasses this gate. When `--override` is used, the bypass MUST be recorded as a finding in the suite's PLAN-NOTES.md (and the suite's findings surface) with the rationale and the missing precondition named, so the out-of-order run is auditable.
83
+
84
+ ---
85
+
86
+ ## Workflow
87
+
88
+ ### Step 1: Dry-Run Check
89
+
90
+ If `--dry-run`: run Step 2 (ingestion / parsing only — no user-clarification batches), output a structure preview (folder path, phase list, dependency graph, key decisions, complexity tier, domain bundles, top 3 risks, single binding constraint per CM-8). **Do NOT write files. STOP.**
91
+
92
+ ### Step 2: Ingest Prose
93
+
94
+ Lean ingestion (CM-12a, CM-24B): extract requirements into a compact numbered list. For normal runs, externalize to PLAN-NOTES.md; for `--dry-run`, keep the extraction in-memory only (no file writes). Deploy a Research Team (CM-25A) for skills scanning and codebase-pattern discovery. Return contract: structured findings, max 500 tokens per agent (CM-25C), required fields (`status`, `findings`, `evidence`, `gaps`), explicit failure behavior (`status=failed` + reason + partial coverage).
95
+
96
+ - If resuming interrupted generation: Session Start Protocol (CM-14) — including rules from `rules/*.md`.
97
+ - Load rules (`rules/*.md`) and relevant skills.
98
+ - Read prose from file. If absent, invoke the structured-inquiry channel to elicit it (delegate to `/plan-spec` §1.3 Guided Elicitation Protocol — one invocation per layer with up to 4 questions each per the tool schema; each option's body carries the three-segment annotation per `rules/interactive-questions.md` §3). Canonical input path: `<project-root>/.apothem/plans/{plan-suite-name}/_spec/spec.md`. Only a suite's own `_spec/spec.md` is authoritative for that suite — an `_inputs/` file (a `forge.md` still in elicitation, or a `review-findings.md` from `/plan-review`) is not a valid input and must be promoted first via `/plan-spec`. The directory boundary is suite-local (every suite has its own `_spec/` and `_inputs/` siblings inside its folder; no root-level `.apothem/plans/_spec/` or `.apothem/plans/_inputs/` exists); purpose vocabularies, promotion lifecycle, pre-suite bootstrap, and invariants are specified in `rules/context-management.md` §2.6.1 "Plan-Workflow Directories". If no prose is supplied or the prose body is empty, STOP and invoke the structured-inquiry channel: question `No prose input was supplied; how should generation proceed?`; header `Prose input`; options:
99
+ - `Run guided elicitation (Recommended)`:
100
+ rationale: Delegates to the `/plan-spec` Guided Elicitation Protocol, which surfaces the seven canonical layers and produces a spec-grade prose at `_spec/spec.md` ready for generation.
101
+ recommendation: recommended — cites class 5 rule citation: `commands/plan-spec.md` §1.3 Guided Elicitation Protocol (the canonical mechanism for transforming raw input into spec-grade prose) and class 6 observed-state: empty prose produces vague plans that fail downstream conformity checks.
102
+ default-pointer: Run guided elicitation — safe because the Forge produces a structurally-decomposed specification that downstream generation consumes without ambiguity.
103
+ - `Type a minimal description now`:
104
+ rationale: User supplies the description via Other-text; generation operates on the operator-provided minimal input directly.
105
+ recommendation: acceptable
106
+ default-pointer: Run guided elicitation — minimal-description input may produce vague phase decomposition; the Forge protocol surfaces the gaps the minimal input leaves implicit.
107
+ - `Abort until prose is supplied`:
108
+ rationale: Halts generation; the next invocation waits for the operator to supply prose at the canonical path.
109
+ recommendation: acceptable
110
+ default-pointer: Run guided elicitation — aborting forces a re-bootstrap; running the elicitation protocol produces the prose in the same session.
111
+ `multiSelect: false`.
112
+ - Identify Mode, Seriousness, Domain from flags / prose / user.
113
+ - [OVERHAUL mode]: verify a target project or corpus exists. If no project context is available, invoke the structured-inquiry channel: question `Which target project / corpus should the overhaul plan operate on?`; header `Target repo`; options:
114
+ - `Current working directory (Recommended)`:
115
+ rationale: Uses the CWD as the target repository root, matching the operator's invocation context.
116
+ recommendation: recommended — cites class 6 observed-state: the operator invoked the command from a specific directory, indicating that directory is the intended target.
117
+ default-pointer: Current working directory — safe because the CWD is the operator's explicit invocation context and reflects their immediate intent.
118
+ - `Path I will specify`:
119
+ rationale: User supplies a repository path via Other-text; generation operates on the operator-named alternative.
120
+ recommendation: acceptable
121
+ default-pointer: Current working directory — out-of-context paths require additional verification; the CWD is the immediately-verified target.
122
+ - `Abort until a repository is set up`:
123
+ rationale: Halts generation; the next invocation waits for the operator to set up a target repository.
124
+ recommendation: acceptable
125
+ default-pointer: Current working directory — aborting forces a re-bootstrap; the CWD path is the immediately-resumable target.
126
+ `multiSelect: false`.
127
+ - Parse thoroughly — expand "e.g.", "etc.", "..." to general patterns.
128
+ - Maintain ALL original nuances.
129
+
130
+ ### Step 3: Discovery — User Clarification Batches
131
+
132
+ Deploy a Research Team (CM-25A) for parallel discovery. Externalize decisions to PLAN-NOTES.md continuously (CM-24B). Apply the cognitive filters and ideation techniques per seriousness scaling (cognitive identity rule, Section 2). Apply Preamble §10.2 Strategic Decision-Making for significant architectural decisions. **Every clarification question routes through the structured-inquiry channel** — group related decisions into thematic batches (up to 4 questions per invocation per the tool schema); the implicit Other option is the free-text escape when the decision space is open-ended (CM-2 + `rules/interactive-questions.md`).
133
+
134
+ **3.1 — Clarify the Core.** Real problem, context, prior attempts, real users, the one thing that makes everything easier, blind spots, constraints, fears, communication style. Deploy the **Obvious Purge** (Filter 1) on the stated problem — what is the obvious framing everyone would adopt? Discard it. Probe for the deeper structure.
135
+
136
+ **3.2 — Root Causes and Risks.** [OVERHAUL] diagnose failures. Reusable patterns. Hidden assumptions. Top 3 failure risks. Constraining beliefs. Deploy the **Living Systems Lens** — if this project were a living organism, what evolutionary pressure created it? What would kill it? Deploy the **Historical Saboteur** — how was the same problem solved in a radically different era? What did they understand that we have forgotten? Retrieve that lost knowledge and re-weaponize it. Deploy the **Villain Frame** — who would HATE this idea and why? Design specifically to amplify that hatred; what does it reveal about this project's structural vulnerabilities?
137
+
138
+ **3.3 — Evaluate Options.** Map all outcomes. Risk-reward lens. The one critical question before committing. Deploy the **Domain Exile** (Filter 2) — reframe the core problem through at least one foreign discipline. Apply the **Constraint Paradox** — what extreme constraint would paradoxically produce a superior solution? Apply the **Combinatorial Explosion** (Filter 4) — force a synthesis between the core problem and a concept from a distant domain; what emergent framing results?
139
+
140
+ **3.4 — Separate Scope.** Must-have vs. add-later (YAGNI). Fastest path to first result. Biggest mistake. What is being overthought. Week-by-week roadmap. Deploy the **Second-Order Narrative** — what will this project change about how people think, feel, relate, or organize beyond its first-order utility? Apply the **Aesthetic Demand** (Filter 5) — does the problem framing itself have conceptual elegance, or is it merely functional? Deploy the **100-Year Zoom** — from a century forward, what would historians say was the obvious scope decision people in this moment were too close to see?
141
+
142
+ **3.5 — Resolve Ambiguities.** Continue until ALL are captured. If the user declines further questions, document AGENT-INFERRED decisions. Apply the **Inversion Press** (Filter 3) to at least three core assumptions — invert each and evaluate whether the inversion reveals a stronger design direction.
143
+
144
+ ### Step 4: Create Plan Folder
145
+
146
+ Confirm discovery is externalized. Create the plan suite folder `<project-root>/.apothem/plans/[REPO_NAME]-[CONTEXT]-[MISSION]/` with a `phases/` subdirectory. If a folder with that name already exists, invoke the structured-inquiry channel: question `A plan suite folder already exists at this path; how should generation proceed?`; header `Suite exists`; options:
147
+ - `Resume`:
148
+ rationale: Detects which infrastructure / phase files exist, skips completed ones, and continues from the first missing artifact.
149
+ recommendation: acceptable
150
+ default-pointer: no-default: user decision required
151
+ - `Append suffix`:
152
+ rationale: Creates a new suite alongside the existing one with `-2` or the next numeric suffix; leaves the existing suite untouched.
153
+ recommendation: acceptable
154
+ default-pointer: no-default: user decision required
155
+ - `Abort`:
156
+ rationale: Halts generation; the existing suite is preserved at its current path.
157
+ recommendation: acceptable
158
+ default-pointer: no-default: user decision required
159
+ - `Overwrite`:
160
+ rationale: Replaces the existing suite content at the path; prior phase files, infrastructure files, and reports are removed.
161
+ recommendation: destructive-no-default — cites class 5 rule citation: `rules/interactive-questions.md` §6 (Per-File Destructive-Op Confirmation — irreversible operations require the no-default floor) and class 6 observed-state: the existing suite contains operator-authored content that overwrite would destroy without recovery.
162
+ default-pointer: no-default: user decision required
163
+ `multiSelect: false` (per §6.8 of the canonical-channel rule — destructive-op invocations forbid `multiSelect: true`).
164
+
165
+ ### Step 5: Generate Infrastructure Files
166
+
167
+ Deploy a parallel Generation Team (CM-25A — one agent per file; return contract: confirmation + path, max 1000 tokens). Assess file size before generation (CM-23A) — if any infrastructure file is expected to exceed 500 lines, use the incremental generation protocol (CM-23B). After generation, summarize-and-release (CM-24B).
168
+
169
+ **Scale-tier classification.** Before laying the infrastructure, classify the suite's scale tier (small / medium / large) with the executable classifier [`src/apothem/lib/plan_tiers.py`](../lib/plan_tiers.py) (`classify_tier(phase_count, spec_count) -> Tier`); the prose framework it mirrors is `rules/canonical-layout-reporting-tiers.md` §7. The governing tier is the higher of the phase-dimension and spec-dimension tiers, and it drives the validation cadence, indexing (`MASTER-INDEX.md` at medium+), and decomposition (phase-grouped at medium, sub-suite federation at large) the infrastructure files below must reflect. When either count sits within ±10% of a boundary, route the classification through the structured-inquiry channel per `rules/authority-inquiry.md` rather than silently picking.
170
+
171
+ - **`PREAMBLE.md`** — context, standards, architecture, naming, workflow mandates (referencing TM-N by number), checklists, session protocols, problem-solving protocol.
172
+ - **`MASTER-PLAN.md`** — title, versioning, decisions, phase index, dependency graph, roadmap, risks, future extensions.
173
+ - **`PROGRESS.md`** — bounded status ledger: status, counts, review summary with scorecard grades (initialized as pending — populated after Step 7), tracker, Phase Output Registry (initialized empty for all phases), Resumption Contract (initialized with project conventions; next action set to "Complete phase file generation — Step 6"), files, decisions, next steps. After Step 6, update the Resumption Contract with the actual Phase 01 path. Do not paste long audit logs here; link to REPORT.md or `_outputs/`.
174
+ - **`PLAN-NOTES.md`** — bounded decision ledger: source prose path, task, decisions (DO NOT RE-ASK), gap analysis, Q&A batches, update tracker, user preferences. Use rolling summaries and backlinks for long evidence or historical detail.
175
+ - **`_outputs/` convention** — reserve as the suite-local durable-output surface for future `/plan-audit`, `/plan-review`, `/plan-execute`, and persisted status artifacts. Empty directories need not be force-tracked unless the host convention uses marker files.
176
+
177
+ ### Step 6: Generate Phase Files
178
+
179
+ Deploy a parallel Generation Team (CM-25A — each agent creates one phase folder (`phases/NN-topic/`) and writes `PHASE.md` inside it; return contract: confirmation only, max 200 tokens). Sub-phases create nested folders inside their parent phase folder. Assess phase file sizes before generation (CM-23A). Apply the **Combinatorial Explosion** (Filter 4) to architectural decisions within phase design — force at least one synthesis between the problem domain and an alien concept. Apply the **Aesthetic Demand** (Filter 5) to the overall plan structure: does this phase architecture have conceptual elegance?
180
+
181
+ - Follow template Section 3.3: Prerequisites; Scope (IN / OUT with "Success looks like"); Tasks (atomic, with acceptance criteria); Inputs; Outputs (complete deliverables with downstream consumers); Verification (baseline + specific); Agent Offloading hints.
182
+ - Hard constraints (TM-13): ≤10 tasks, ≤5 files, ≤2000 tokens, no mixed concerns → split into sub-phases.
183
+ - Final phase = E2E verification producing COMPLETION.md.
184
+ - Any phase that emits long reports, audit evidence, metrics, exports, or report mirrors names the `_outputs/` target and the downstream consumer in its Outputs section.
185
+ - Deferred or out-of-scope follow-up work routes to a sibling `<suite>-maintenance` suite rather than inflating the active suite's PROGRESS.md or PLAN-NOTES.md.
186
+ - Acyclic dependencies. Explicit parallelization. Phase 1 delivers the first tangible result.
187
+ - Verify backward references as each file is written (inputs reference only earlier phases). Forward-reference verification is deferred to Step 7 (CM-15) after all phase files exist.
188
+
189
+ ### Step 7: Final Sweep
190
+
191
+ Deploy an Audit Team (CM-25A) for parallel traceability, naming, dependency, and contract checks. Verify all generated artifacts follow the harness conventions (CM-22, §1). Phase files are located at `phases/**/PHASE.md`.
192
+
193
+ **7A — Prose Fidelity (CM-11A).** Forward + reverse traceability. Scorecard: PASS / CONDITIONAL / FAIL. (At SHARED+. Spot-check at PERSONAL_USE. Skip at EXPLORING.)
194
+
195
+ **7A→7B Bridge.** Prose-fidelity findings feed consistency checks — REINTERPRETED requirements trigger naming verification, split requirements trigger contract checks, WEAK traceability triggers dependency audits.
196
+
197
+ **7B — Internal Consistency (CM-11B).** Decisions, dependencies, naming, interfaces, preamble compliance, index accuracy. Scorecard. (At SHARED+.)
198
+
199
+ **7C — Completeness.** Appendix checklist. Key assertions. Top 3 risks. Highest-impact phase (single binding constraint per CM-8). Confirm PROGRESS.md and PLAN-NOTES.md remain bounded / index-first and that detailed emissions have `_outputs/` or REPORT.md targets.
200
+
201
+ **7D — Creative Quality (CM-21).** Language-standards compliance (no forbidden phrases). Originality threshold (at least one structurally novel element in architectural decisions). Named frameworks present for key concepts. Cognitive-filter seriousness scaling per cognitive identity rule, Section 2.
202
+
203
+ **7E — Plan-Internal Isolation Readiness (CM-7).** Verify that ALL generated phase-file content — task descriptions, acceptance criteria, scope statements, commit guidance, verification assertions — uses natural domain language that will not leak plan-internal terminology into execution artifacts. Specifically: (a) task descriptions describe WHAT to build in domain terms, never referencing plan structure ("implement the D2 decision" → "implement OAuth2 with PKCE"); (b) acceptance criteria are domain-testable, not plan-process-testable ("Phase 03 outputs verified" → "authentication endpoint returns valid JWT"); (c) scope boundaries reference functional areas, not plan-internal identifiers; (d) verification assertions test domain behavior, not plan conformity. Any content that would encourage CM-7 forbidden terms (CLAUDE.md CM-7) to appear in protected artifacts during execution is rewritten in domain language before presenting.
204
+
205
+ **FAIL → revise before presenting (max 2 cycles).** Root-cause fixes only — address structural issues, not surface symptoms. If still failing after 2 revision cycles, escalate to the user with findings (CM-18).
206
+
207
+ **7F — Update PROGRESS.md Scorecards.** Write scorecard grades from executed steps only to the PROGRESS.md Review Summary section (replacing the "pending" placeholders from Step 5). Also write grades to PLAN-NOTES.md `## Generation Scorecards` so plan-execute's Review Gate can find them as a fallback. Leave unexecuted scorecard grades as "N/A — skipped at [LEVEL]" (e.g., Internal Consistency is N/A at PERSONAL_USE since Step 7B runs only at SHARED+).
208
+
209
+ ### Step 8: Create or Evolve Artifacts
210
+
211
+ Per CLAUDE.md Section 7.6 (including CM-22 §4: ecosystem gap detection). SHARED+: mandatory evaluation; create / evolve when the detection trigger is met (CM-22 §2). PERSONAL_USE: on corrections. EXPLORING: optional.
212
+
213
+ ### Step 8.5: End-of-Command Synthesis (D6)
214
+
215
+ Just before Step 9 user-approval per template TM-20, fire ONE structured inquiry per D6 (Q-022) with the spec §7.4 form. The invocation MUST satisfy `rules/interactive-questions.md` §2 (canonical schema) + §3 (three-segment body) + §4.1 (closed recommendation taxonomy) + the H4/H6 invariants from `rules/interactive-questions-sweep-matchers.md` (every option carries all three body segments; the `(Recommended)` label postfix bidirectionally binds the body `recommendation: recommended` value):
216
+
217
+ - `question:` `Plan-suite generation complete. Are there any suggested improvements, ambiguities, contradictions to surface before approval?`
218
+ - `header:` `End synthesis`
219
+ - `multiSelect:` `false`
220
+ - Option `All clear (Recommended)`:
221
+ - `rationale:` No deferred concerns; plan-suite is ready for /plan-review or direct /plan-execute dispatch.
222
+ - `recommendation:` recommended — cites class 6 observed-state: every phase decomposition + dependency edge resolved during the generation cycle without unresolved findings.
223
+ - `default-pointer:` no-default: user decision required (TM-20 manual-approval gate; operator's ratification on plan-suite shape is non-defaultable).
224
+ - Option `Surface findings`:
225
+ - `rationale:` Operator raises concerns before approval; agent captures inline in PLAN-NOTES.md and routes to revision wave or /plan-review.
226
+ - `recommendation:` acceptable
227
+ - `default-pointer:` no-default: user decision required.
228
+ - Option `Defer findings`:
229
+ - `rationale:` Operator notes findings but defers; agent appends `[Deferral — out-of-scope: <description>; tracking: <PLAN-NOTES.md or follow-up issue>]` per `rules/disclosure-ledger.md`.
230
+ - `recommendation:` acceptable
231
+ - `default-pointer:` no-default: user decision required.
232
+
233
+ The selection routes the post-synthesis flow: `All clear` proceeds directly to Step 9 approval; `Surface findings` captures the findings inline in PLAN-NOTES.md and either re-runs Steps 6–7 on affected loci or routes the suite to `/plan-review`; `Defer findings` appends the deferral marker to the disclosure ledger and proceeds to Step 9 with the deferral routed via the augmented Manifest's `deferrals` field per `rules/disclosure-ledger.md`.
234
+
235
+ ### Step 9: Present for Approval
236
+
237
+ Present the plan suite for user approval. **Do NOT proceed to implementation.**
238
+
239
+ Invoke the structured-inquiry channel: question `Is the generated plan suite ready for review and execution, or should it iterate?`; header `Plan output`; options:
240
+ - `Approve (Recommended)`:
241
+ rationale: Proceeds to `/plan-review` or `/plan-execute`; the generated suite is treated as the operator-ratified baseline for downstream commands.
242
+ recommendation: recommended — cites class 5 rule citation: `commands/plan-review.md` Step 1 (Forensic audit consumes the generated suite as authoritative input) and class 6 observed-state: Step 7 Final Sweep returns PASS scorecards on all audited dimensions.
243
+ default-pointer: Approve — safe because the next pipeline step is review, which is non-destructive and produces additional verification evidence.
244
+ - `Revise`:
245
+ rationale: Specifies the phases or sections to rework via Other-text; re-derives affected sections from the updated specification under the clean-room barrier — does not patch existing text — then re-runs the Step 7 sweep on affected files.
246
+ recommendation: acceptable
247
+ default-pointer: Approve — revising is appropriate when the operator has identified specific defects; the Step 7 Final Sweep already verifies the generated suite passes the gate criteria.
248
+ - `Reject`:
249
+ rationale: Starts over with revised prose or aborts; the existing suite is preserved at its current path until the operator explicitly retires it.
250
+ recommendation: discouraged — cites class 5 rule citation: `rules/clean-room-generation.md` §3 (Re-Writing Protocol — restart preserving raw input is appropriate only when the draft is fundamentally unsalvageable) and class 6 observed-state: Step 7 returns PASS scorecards, so the suite meets the gate criteria.
251
+ default-pointer: Approve — rejection is appropriate only when the suite is fundamentally unsalvageable, which the Step 7 Final Sweep PASS does not indicate.
252
+ `multiSelect: false`.
253
+
254
+ **Pipeline Handoff (CM-20):** recommend `/plan-review` next. If the user declines, recommend `/plan-execute`.
255
+
256
+ ---
257
+
258
+ ## Critical Rules
259
+
260
+ - **NEVER proceed to implementation** without user approval (Step 9).
261
+ - **NEVER omit** prose requirements — trace every one to a phase task.
262
+ - **NEVER generate phase files** before completing Discovery (Step 3).
263
+ - **NEVER overwrite** an existing plan suite without confirmation.
264
+ - **NEVER proceed** without template v0.1.0+.
265
+ - **Apply the Cognitive Filters** (cognitive identity rule, Section 2) during discovery (Step 3) and architectural decisions (Step 6) per seriousness scaling.
266
+ - **Base protocol:** Agent Teams (CM-25) with return contracts — deployment scales with seriousness per the agent-orchestration rule (Optional at EXPLORING, Encouraged at PERSONAL_USE, Required at SHARED+). Default token budgets per CM-25C: Research 500, Audit/Quality 200, Generation 1000. Error recovery (CM-18), 3-failure escalation. Session resilience (CM-24/CM-14). Always-on rules (CM-22–28) enforced at all steps.
267
+
268
+ ---
269
+
270
+ ## Mandates
271
+
272
+ All template and config mandates are in effect (CM-13 and CM-16 not applicable — generation produces no codebase commits and does not execute phases). Governance scales with seriousness per CLAUDE.md Section 4.
273
+
274
+ | Mandate | Enforcement Point |
275
+ | ------- | ----------------- |
276
+ | CM-7 | Step 7E: plan-internal isolation readiness |
277
+ | CM-11 | Step 7: Final Sweep scorecards |
278
+ | CM-12 | All steps: lean context management |
279
+ | CM-14 | Session End on pressure; Session Start on resume |
280
+ | CM-15 | Step 6: forward refs; Step 7B: consistency |
281
+ | CM-17 | Steps 2-3, 5-7: Agent Teams |
282
+ | CM-18 | Critical Rules: 3-failure escalation |
283
+ | CM-19 | After Steps 3, 5-6, 7 |
284
+ | CM-20 | Step 9: pipeline handoff |
285
+ | CM-21 | Steps 3, 6, 7D: creative quality |
286
+ | CM-22 | Steps 7, 8: conventions + artifact evolution |
287
+ | CM-23 | Steps 5, 6: file size assessment |
288
+ | CM-24 | Steps 2, 3, 5: context management, externalization |
289
+
290
+ ---
291
+
292
+ ## Output
293
+
294
+ Plan suite in `<project-root>/.apothem/plans/[REPO_NAME]-[CONTEXT]-[MISSION]/`:
295
+
296
+ - `PREAMBLE.md`, `MASTER-PLAN.md`, `PROGRESS.md`, `PLAN-NOTES.md`, the `_outputs/` convention, `phases/`
297
+ - All phase folders with `PHASE.md` files + sub-phase folders
298
+ - Prose Fidelity Scorecard (at PERSONAL_USE+: spot-check at PERSONAL_USE, full at SHARED+) — stored in PLAN-NOTES.md `## Generation Scorecards`
299
+ - Internal Consistency Scorecard (at SHARED+) — stored in PLAN-NOTES.md `## Generation Scorecards`
300
+ - Skills created or evolved (if applicable)
301
+ - If `--dry-run`: structure preview only (no files)
302
+
303
+ ---
304
+
305
+ ## Decision Tree
306
+
307
+ ```mermaid
308
+ %%{ init: { "theme": "neutral" } }%%
309
+ %% verified: 2026-04-27 %%
310
+ %% provenance: commands/plan-generate.md §Workflow %%
311
+ %% cross-reference: src/apothem/commands/ (slash-command cohort) %%
312
+ flowchart TD
313
+ Start[/plan-generate invoked/] --> Spec{Prose spec exists?}
314
+ Spec -->|no| Recommend[STOP — recommend /plan-spec]
315
+ Spec -->|yes| Suite{Suite folder exists?}
316
+ Suite -->|yes| Overwrite[structured inquiry: overwrite · merge · abort]
317
+ Suite -->|no| Discovery[Discovery: requirement extraction]
318
+ Overwrite -->|abort| Halt[STOP]
319
+ Overwrite -->|overwrite| Discovery
320
+ Overwrite -->|merge| MergeMode[Merge into existing suite]
321
+ Discovery --> Generate[Generate phase manifest + per-phase PHASE.md files]
322
+ MergeMode --> Generate
323
+ Generate --> Score{Seriousness >= PERSONAL_USE?}
324
+ Score -->|yes| ProseScore[Run Prose Fidelity Scorecard]
325
+ Score -->|no| Skip1[Skip prose-fidelity check]
326
+ ProseScore --> Score2{Seriousness >= SHARED?}
327
+ Skip1 --> Score2
328
+ Score2 -->|yes| ConsistScore[Run Internal Consistency Scorecard]
329
+ Score2 -->|no| Skip2[Skip internal-consistency check]
330
+ ConsistScore --> Gate{Scorecards PASS?}
331
+ Skip2 --> Emit[Emit suite files]
332
+ Gate -->|fail at SHARED+| AskFail[structured inquiry: revise · override · abort]
333
+ Gate -->|pass| Emit
334
+ Emit --> Done[Hand off to /plan-review or /plan-execute]
335
+ ```
336
+
337
+ The tree distinguishes seriousness-driven branches (scorecards activate at
338
+ PERSONAL_USE+ and SHARED+) from operator-decision branches surfaced through
339
+ structured inquiry (overwrite-vs-merge, scorecard-fail handling).
340
+
341
+ ## Recommended Next Step
342
+
343
+ Invoke `/plan-review` on the generated suite. `/plan-review` runs the forensic audit against the generated suite per the canonical Generate → Review sequence and produces the Review Scorecards that gate downstream execution. An alternate route — invoking `/plan-execute` directly — is acceptable at EXPLORING or personal-use seriousness when the review gate is operator-deferred, but the review pass is the canonical successor.
344
+
345
+ ## Bindings (§0.j five-direction)
346
+
347
+ - **Drives →** ● Every plan-suite emission (PREAMBLE.md + MASTER-PLAN.md + PROGRESS.md + PLAN-NOTES.md + per-phase folders) under `<project-root>/.apothem/plans/{suite}/`. ● Every Generation Scorecard write to PLAN-NOTES.md at PERSONAL_USE+. ● Every dependency-graph emission in MASTER-PLAN.md §3. ◐ The downstream `/plan-execute` consumer (the generated suite is the execution target).
348
+ - **Satisfies →** ● the commands registry row "/plan-generate". ● the `/plan` pipeline (the `/plan` pipeline-stages ratification). ● `skills/plan-suite/master_template.md` (the template this command instantiates).
349
+ - **Established by ↑** ● the `/plan` pipeline. ● the commands registry. ● `skills/plan-suite/master_template.md` template specification.
350
+ - **Gated by ←** ● The presence of `_spec/spec.md` as authoritative input (per `rules/context-management-scratch.md` §2 authoritative-input asymmetry). ● Plan version v0.1.0+ template requirement.
351
+ - **Cross-bound with ↔** ↔ `commands/plan-spec.md` (prose refinement produces the `_spec/spec.md` this command consumes). ↔ `commands/plan-execute.md` (execute consumes the suite this command produces). ↔ `commands/plan-review.md` (review audits the suite this command produces). ↔ `rules/planning-techniques.md` (techniques 1, 2, 4 fire during generation per the rule's seriousness scaling). ↔ `rules/context-management-scratch.md` (the `_inputs/`, `_outputs/`, and `_spec/` directory invariants this command's emission preserves).