@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,68 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://apothem.ahmedgad.com/schemas/command.schema.json",
4
+ "title": "Command",
5
+ "description": "Frontmatter schema for slash-command definitions under src/apothem/commands/. Reconciled to the live command corpus: every shipped command carries name, version, updated, description, argument-hint, disable-model-invocation, portability, and allowed-tools.",
6
+ "type": "object",
7
+ "required": [
8
+ "allowed-tools",
9
+ "argument-hint",
10
+ "description",
11
+ "disable-model-invocation",
12
+ "name",
13
+ "portability",
14
+ "updated",
15
+ "version"
16
+ ],
17
+ "additionalProperties": false,
18
+ "properties": {
19
+ "name": {
20
+ "type": "string",
21
+ "description": "Human-readable kebab-case name matching the slash-command surface (the filename without .md), declared without a leading slash.",
22
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
23
+ },
24
+ "description": {
25
+ "type": "string",
26
+ "description": "Capability-led statement of the command's purpose and invocation triggers."
27
+ },
28
+ "version": {
29
+ "type": "string",
30
+ "description": "SemVer version of the command definition.",
31
+ "pattern": "^\\d+\\.\\d+\\.\\d+$"
32
+ },
33
+ "updated": {
34
+ "type": "string",
35
+ "description": "ISO 8601 date of the command's last revision.",
36
+ "format": "date",
37
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
38
+ },
39
+ "argument-hint": {
40
+ "type": "string",
41
+ "description": "Usage hint shown to the operator describing the command's accepted arguments and flags."
42
+ },
43
+ "disable-model-invocation": {
44
+ "type": "boolean",
45
+ "description": "When true, the command is reached only by explicit /<name> invocation, never auto-selected by the model from its description."
46
+ },
47
+ "portability": {
48
+ "type": "string",
49
+ "description": "Portability classification across harness adapters (e.g. universal, claude-code-only)."
50
+ },
51
+ "allowed-tools": {
52
+ "type": "string",
53
+ "description": "Comma-separated list of tools the command may invoke, or \"*\" for the full surface."
54
+ }
55
+ },
56
+ "examples": [
57
+ {
58
+ "name": "eval",
59
+ "description": "Model-agnostic language-model evaluation campaign. Defines a dataset and scorer, runs a candidate model over it, scores every output, and emits a regression-aware report.",
60
+ "version": "0.1.0",
61
+ "updated": "2026-06-16",
62
+ "argument-hint": "[--dataset PATH] [--scorer NAME]",
63
+ "disable-model-invocation": true,
64
+ "portability": "universal",
65
+ "allowed-tools": "*"
66
+ }
67
+ ]
68
+ }
@@ -0,0 +1,432 @@
1
+ # SPDX-License-Identifier: MIT
2
+
3
+ # Cross-harness compatibility matrix
4
+ # Declares per-rule, per-agent, per-hook, per-output-style, per-skill, and
5
+ # per-schema compatibility across the 15 Apothem harness adapters.
6
+ # A reference artifact exposed via schemas.compatibility_matrix_path(); install-
7
+ # time asset resolution itself flows through lib/propagation-manifest.yaml and
8
+ # cohort-manifest.yaml, not this matrix.
9
+ #
10
+ # Schema version: 1.0.0
11
+ # Maintained by: Apothem — update whenever a harness adds/drops a capability.
12
+
13
+ schema_version: "1.0.0"
14
+
15
+ # ---------------------------------------------------------------------------
16
+ # Harness inventory
17
+ # ---------------------------------------------------------------------------
18
+ harnesses:
19
+ - name: claude-code
20
+ display: Claude Code
21
+ config_format: json
22
+ supports_hooks: true
23
+ supports_agents: true
24
+ supports_skills: true
25
+ supports_custom_rules: true
26
+ supports_output_styles: true
27
+ supports_statuslines: true
28
+ platform: [linux, macos, windows]
29
+ notes: "Primary harness; full feature support via ~/.claude/ ecosystem."
30
+
31
+ - name: cursor
32
+ display: Cursor
33
+ config_format: mdc
34
+ supports_hooks: false
35
+ supports_agents: false
36
+ supports_skills: false
37
+ supports_custom_rules: true
38
+ supports_output_styles: false
39
+ supports_statuslines: false
40
+ platform: [linux, macos, windows]
41
+ notes: >-
42
+ Project rules via <project>/.cursor/rules/apothem-rules.mdc. Cursor has
43
+ no documented file-based user-global rules surface; the legacy
44
+ .cursorrules path is intentionally excluded.
45
+
46
+ - name: gemini-cli
47
+ display: Gemini CLI
48
+ config_format: markdown
49
+ supports_hooks: false
50
+ supports_agents: true
51
+ supports_skills: true
52
+ supports_custom_rules: true
53
+ supports_output_styles: false
54
+ supports_statuslines: false
55
+ platform: [linux, macos, windows]
56
+ notes: >-
57
+ Project context via <project>/GEMINI.md plus native
58
+ <project>/.gemini/{commands,skills,agents}/ and Apothem support material
59
+ under <project>/.gemini/apothem/.
60
+
61
+ - name: github-copilot
62
+ display: GitHub Copilot
63
+ config_format: markdown
64
+ supports_hooks: false
65
+ supports_agents: false
66
+ supports_skills: false
67
+ supports_custom_rules: true
68
+ supports_output_styles: false
69
+ supports_statuslines: false
70
+ platform: [linux, macos, windows]
71
+ notes: >-
72
+ Project instructions via <project>/.github/copilot-instructions.md.
73
+ GitHub Copilot user-level settings live in IDE state, not an adapter-owned
74
+ user-global file.
75
+
76
+ - name: codex
77
+ display: Codex
78
+ config_format: markdown
79
+ supports_hooks: true
80
+ supports_agents: true
81
+ supports_skills: true
82
+ supports_custom_rules: true
83
+ supports_output_styles: false
84
+ supports_statuslines: false
85
+ platform: [linux, macos, windows]
86
+ notes: >-
87
+ Native ~/.codex/AGENTS.md, ~/.codex/hooks.json, ~/.codex/hooks/,
88
+ ~/.codex/agents/*.toml, shared ~/.agents/skills/, and Apothem
89
+ support material under ~/.config/apothem/.
90
+
91
+ - name: windsurf
92
+ display: Windsurf
93
+ config_format: markdown
94
+ supports_hooks: false
95
+ supports_agents: false
96
+ supports_skills: false
97
+ supports_custom_rules: true
98
+ supports_output_styles: false
99
+ supports_statuslines: false
100
+ platform: [linux, macos, windows]
101
+ notes: >-
102
+ Project rules via <project>/.devin/rules/apothem-rules.md (the preferred
103
+ surface after the Devin Desktop rebrand; .windsurf/rules/ is the
104
+ backward-compat fallback). Workflows and machine-local memories are
105
+ operator-owned; legacy .windsurfrules is intentionally excluded.
106
+
107
+ - name: opencode
108
+ display: OpenCode
109
+ config_format: json
110
+ supports_hooks: false
111
+ supports_agents: true
112
+ supports_skills: true
113
+ supports_custom_rules: true
114
+ supports_output_styles: false
115
+ supports_statuslines: false
116
+ platform: [linux, macos, windows]
117
+ notes: "Config plus native ~/.config/opencode/{commands,skills,agents}/."
118
+
119
+ - name: antigravity
120
+ display: Antigravity
121
+ config_format: markdown
122
+ supports_hooks: false
123
+ supports_agents: true
124
+ supports_skills: true
125
+ supports_custom_rules: true
126
+ supports_output_styles: false
127
+ supports_statuslines: false
128
+ platform: [linux, macos, windows]
129
+ notes: >-
130
+ User instructions via ~/.gemini/GEMINI.md plus the Apothem Antigravity
131
+ CLI plugin under ~/.gemini/antigravity-cli/plugins/apothem/. The shared
132
+ GEMINI.md anchor with gemini-cli is intentional; prior
133
+ ~/.gemini/antigravity/ and ~/.antigravity/profile.yaml targets are
134
+ retired.
135
+
136
+ - name: open-claw
137
+ display: Open-Claw
138
+ config_format: json
139
+ supports_hooks: false
140
+ supports_agents: true
141
+ supports_skills: true
142
+ supports_custom_rules: true
143
+ supports_output_styles: false
144
+ supports_statuslines: false
145
+ platform: [linux, macos, windows]
146
+ notes: >-
147
+ Native config via ~/.openclaw/openclaw.json. agents.defaults.skills is a
148
+ name allowlist (not a dir loader), so Apothem authors no skills key; support
149
+ skills land under ~/.openclaw/apothem/.
150
+ Prior target ~/.open-claw/config.yaml used the wrong directory name and
151
+ extension.
152
+
153
+ - name: hermes
154
+ display: Hermes
155
+ config_format: yaml
156
+ supports_hooks: false
157
+ supports_agents: true
158
+ supports_skills: true
159
+ supports_custom_rules: true
160
+ supports_output_styles: false
161
+ supports_statuslines: false
162
+ platform: [linux, macos, windows]
163
+ notes: >-
164
+ Native config via ~/.hermes/config.yaml (profile MCP under auxiliary.mcp).
165
+ skills.config is a vendor registry-package list Apothem does not author;
166
+ support skills land under ~/.hermes/apothem/.
167
+ Prior targets ~/.hermes/cli-config.yaml and ~/.hermes/profile.yaml used
168
+ retired filenames.
169
+
170
+ - name: qwen-code
171
+ display: Qwen Code
172
+ config_format: json
173
+ supports_hooks: true
174
+ supports_agents: true
175
+ supports_skills: true
176
+ supports_custom_rules: true
177
+ supports_output_styles: false
178
+ supports_statuslines: false
179
+ platform: [linux, macos, windows]
180
+ notes: >-
181
+ Settings plus QWEN.md, native ~/.qwen/{commands,skills,agents}/, and
182
+ native hook wiring through ~/.qwen/settings.json. Apothem support
183
+ material remains under ~/.qwen/apothem/.
184
+
185
+ - name: kimi-code
186
+ display: Kimi Code
187
+ config_format: markdown
188
+ supports_hooks: false
189
+ supports_agents: true
190
+ supports_skills: true
191
+ supports_custom_rules: true
192
+ supports_output_styles: false
193
+ supports_statuslines: false
194
+ platform: [linux, macos, windows]
195
+ notes: >-
196
+ Project-root AGENTS.md managed block plus an Apothem support tree under
197
+ <project>/.kimi-code/apothem/ carrying rules, commands, skills, agents,
198
+ and templates. The <project>/.kimi-code/mcp.json MCP surface is
199
+ operator-owned.
200
+
201
+ - name: codebuddy
202
+ display: CodeBuddy
203
+ config_format: markdown
204
+ supports_hooks: false
205
+ supports_agents: false
206
+ supports_skills: false
207
+ supports_custom_rules: true
208
+ supports_output_styles: false
209
+ supports_statuslines: false
210
+ platform: [linux, macos, windows]
211
+ notes: >-
212
+ Project rules via <project>/.codebuddy/rules/apothem-rules.md, a
213
+ dedicated apothem file. CodeBuddy's CODEBUDDY.md memory file and
214
+ .codebuddy/settings.json (permissions/MCP) are operator-owned.
215
+
216
+ - name: kiro
217
+ display: Kiro
218
+ config_format: markdown
219
+ supports_hooks: false
220
+ supports_agents: false
221
+ supports_skills: false
222
+ supports_custom_rules: true
223
+ supports_output_styles: false
224
+ supports_statuslines: false
225
+ platform: [linux, macos, windows]
226
+ notes: >-
227
+ Project steering via <project>/.kiro/steering/apothem-rules.md
228
+ (inclusion: always). Kiro foundation files (product.md, tech.md,
229
+ structure.md) and specs are operator-owned.
230
+
231
+ - name: trae
232
+ display: Trae
233
+ config_format: markdown
234
+ supports_hooks: false
235
+ supports_agents: false
236
+ supports_skills: false
237
+ supports_custom_rules: true
238
+ supports_output_styles: false
239
+ supports_statuslines: false
240
+ platform: [linux, macos, windows]
241
+ notes: >-
242
+ Project rules via <project>/.trae/rules/apothem-rules.md, alongside the
243
+ operator-owned project_rules.md and user_rules.md anchors. The
244
+ .trae/mcp.json and .trae/skills/ surfaces are operator-owned.
245
+
246
+ - name: zed
247
+ display: Zed
248
+ config_format: markdown
249
+ supports_hooks: false
250
+ supports_agents: false
251
+ supports_skills: false
252
+ supports_custom_rules: true
253
+ supports_output_styles: false
254
+ supports_statuslines: false
255
+ platform: [linux, macos, windows]
256
+ notes: >-
257
+ Project agent-instructions via the flat <project>/.rules file (no rules
258
+ directory). Global ~/.config/zed/AGENTS.md and .zed/settings.json MCP
259
+ context_servers are operator-owned.
260
+
261
+ - name: glm
262
+ display: GLM (Z.ai)
263
+ config_format: toml
264
+ supports_hooks: false
265
+ supports_agents: false
266
+ supports_skills: false
267
+ supports_custom_rules: false
268
+ supports_output_styles: false
269
+ supports_statuslines: false
270
+ platform: [linux, macos, windows]
271
+ notes: >-
272
+ GLM (Z.ai) is a model backend, not a coding-agent tool. The adapter
273
+ writes a project-scope Apothem-owned provider file at
274
+ <project>/.apothem/providers/glm.toml recording the Anthropic-compatible
275
+ (https://api.z.ai/api/anthropic) and OpenAI-compatible
276
+ (https://api.z.ai/api/coding/paas/v4) backend base URLs, an auth-token
277
+ placeholder, and operator-configurable model-mapping placeholders. A
278
+ model backend exposes no coding-agent cohort, so every capability is
279
+ unsupported.
280
+
281
+ # ---------------------------------------------------------------------------
282
+ # Asset-class compatibility
283
+ # ---------------------------------------------------------------------------
284
+ # For each shared-profile asset class, declares which harnesses can consume it
285
+ # and how it is adapted (materialisation_strategy).
286
+
287
+ asset_classes:
288
+ rules:
289
+ description: "Behavioral rules (.md) from src/apothem/rules/."
290
+ compatible_harnesses:
291
+ - claude-code # full: rules injected into ~/.claude/ tree
292
+ - cursor # partial: distilled into project .cursor/rules/
293
+ - gemini-cli # partial: distilled into ~/.gemini/GEMINI.md
294
+ - github-copilot # partial: distilled into copilot-instructions.md
295
+ - codex # partial: distilled into ~/.codex/AGENTS.md
296
+ - windsurf # partial: distilled into project .devin/rules/ (preferred; .windsurf/rules/ fallback)
297
+ - opencode # partial: support cohort referenced by opencode.json
298
+ - antigravity # partial: distilled into GEMINI.md plus plugin rules
299
+ - open-claw # partial: support cohort referenced by installed skills
300
+ - hermes # partial: support cohort referenced by installed skills
301
+ - qwen-code # partial: support cohort referenced by QWEN.md
302
+ materialisation_strategy:
303
+ claude-code: "copy to ~/.claude/rules/"
304
+ default: "distil or reference from the harness-native instruction anchor"
305
+
306
+ agents:
307
+ description: "Agent definitions (flat *.md) from src/apothem/agents/."
308
+ compatible_harnesses:
309
+ - claude-code
310
+ - antigravity
311
+ - codex
312
+ - gemini-cli
313
+ - hermes
314
+ - open-claw
315
+ - opencode
316
+ - qwen-code
317
+ materialisation_strategy:
318
+ claude-code: "copy to ~/.claude/agents/"
319
+ antigravity: "convert to ~/.gemini/antigravity-cli/plugins/apothem/agents/*.md"
320
+ codex: "convert to ~/.codex/agents/*.toml"
321
+ gemini-cli: "convert to <project>/.gemini/agents/*.md"
322
+ hermes: "support cohort under ~/.hermes/apothem/agents/"
323
+ open-claw: "support cohort under ~/.openclaw/apothem/agents/"
324
+ opencode: "convert to ~/.config/opencode/agents/*.md"
325
+ qwen-code: "convert to ~/.qwen/agents/*.md"
326
+ default: "support cohort under apothem/agents/"
327
+
328
+ hooks:
329
+ description: "Hook scripts from src/apothem/hooks/."
330
+ compatible_harnesses:
331
+ - claude-code
332
+ - codex
333
+ - antigravity
334
+ - gemini-cli
335
+ - hermes
336
+ - open-claw
337
+ - opencode
338
+ - qwen-code
339
+ materialisation_strategy:
340
+ claude-code: "register in settings.json; support material under ~/.claude/apothem/hooks/"
341
+ codex: "copy to ~/.codex/hooks/ + register in ~/.codex/hooks.json"
342
+ antigravity: "support cohort under ~/.gemini/antigravity-cli/plugins/apothem/apothem/hooks/; no active hook wiring until schema adapter exists"
343
+ gemini-cli: "support cohort under <project>/.gemini/apothem/hooks/"
344
+ hermes: "support cohort under ~/.hermes/apothem/hooks/"
345
+ open-claw: "support cohort under ~/.openclaw/apothem/hooks/"
346
+ opencode: "support cohort under ~/.config/opencode/apothem/hooks/"
347
+ qwen-code: "register in settings.json; support material under ~/.qwen/apothem/hooks/"
348
+ default: "support cohort under apothem/hooks/"
349
+
350
+ skills:
351
+ description: "Skill definitions from src/apothem/skills/."
352
+ compatible_harnesses:
353
+ - claude-code
354
+ - antigravity
355
+ - codex
356
+ - gemini-cli
357
+ - hermes
358
+ - open-claw
359
+ - opencode
360
+ - qwen-code
361
+ materialisation_strategy:
362
+ claude-code: "copy to ~/.claude/skills/"
363
+ antigravity: "copy to ~/.gemini/antigravity-cli/plugins/apothem/skills/"
364
+ codex: "copy to ~/.agents/skills/"
365
+ gemini-cli: "copy to <project>/.gemini/skills/"
366
+ hermes: "copy to ~/.hermes/apothem/skills/ (support subtree; skills.config is a vendor registry-package list Apothem does not author)"
367
+ open-claw: "copy to ~/.openclaw/apothem/skills/ (support subtree; agents.defaults.skills is a name allowlist Apothem does not author)"
368
+ opencode: "copy to ~/.config/opencode/skills/"
369
+ qwen-code: "copy to ~/.qwen/skills/"
370
+ default: "support cohort under apothem/skills/"
371
+
372
+ commands:
373
+ description: "Custom slash-commands from src/apothem/commands/."
374
+ compatible_harnesses:
375
+ - claude-code
376
+ - antigravity
377
+ - codex
378
+ - gemini-cli
379
+ - hermes
380
+ - open-claw
381
+ - opencode
382
+ - qwen-code
383
+ materialisation_strategy:
384
+ claude-code: "wrap as ~/.claude/skills/<command>/SKILL.md"
385
+ antigravity: "wrap as ~/.gemini/antigravity-cli/plugins/apothem/skills/<command>/SKILL.md"
386
+ codex: "wrap as ~/.agents/skills/<command>/SKILL.md"
387
+ gemini-cli: "convert to <project>/.gemini/commands/*.toml"
388
+ hermes: "wrap as ~/.hermes/apothem/skills/<command>/SKILL.md"
389
+ open-claw: "wrap as ~/.openclaw/apothem/skills/<command>/SKILL.md"
390
+ opencode: "convert to ~/.config/opencode/commands/*.md"
391
+ qwen-code: "convert to ~/.qwen/commands/*.md"
392
+ default: "wrap as skills under the harness support tree"
393
+
394
+ output_styles:
395
+ description: "Output style definitions from src/apothem/output-styles/."
396
+ compatible_harnesses:
397
+ - claude-code
398
+ materialisation_strategy:
399
+ claude-code: "copy to ~/.claude/output-styles/"
400
+ default: "not supported"
401
+
402
+ statuslines:
403
+ description: "Statusline configs from src/apothem/statuslines/."
404
+ compatible_harnesses:
405
+ - claude-code
406
+ materialisation_strategy:
407
+ claude-code: "copy to ~/.claude/statuslines/"
408
+ default: "not supported"
409
+
410
+ templates:
411
+ description: "Prompt templates from src/apothem/templates/."
412
+ compatible_harnesses:
413
+ - claude-code
414
+ - antigravity
415
+ - codex
416
+ - gemini-cli
417
+ - hermes
418
+ - open-claw
419
+ - opencode
420
+ - qwen-code
421
+ materialisation_strategy:
422
+ claude-code: "support cohort under ~/.claude/apothem/templates/"
423
+ antigravity: "support cohort under ~/.gemini/antigravity-cli/plugins/apothem/apothem/templates/"
424
+ default: "support cohort under apothem/templates/"
425
+
426
+ schemas:
427
+ description: "Schema files from src/apothem/schemas/."
428
+ compatible_harnesses:
429
+ - claude-code
430
+ materialisation_strategy:
431
+ claude-code: "copy to ~/.claude/schemas/"
432
+ default: "not applicable"
@@ -0,0 +1,64 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://apothem.ahmedgad.com/schemas/context-fragment.schema.json",
4
+ "title": "Apothem Context Fragment",
5
+ "description": "One named, injectable prompt or context fragment in the contexts surface. A fragment is dynamic injectable text the operator can enable or disable, with activation metadata describing when it applies. The shape is neutral: it carries no tool-specific or vendor-specific identifier, so the same fragment applies across any installation target.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["id", "name", "body", "enabled"],
9
+ "properties": {
10
+ "id": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "description": "Stable fragment identifier, unique within a contexts store."
14
+ },
15
+ "name": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "description": "Human-readable fragment name."
19
+ },
20
+ "body": {
21
+ "type": "string",
22
+ "description": "The injectable prompt or context text."
23
+ },
24
+ "enabled": {
25
+ "type": "boolean",
26
+ "description": "Enable/disable switch. When false, the fragment is retained but never injected."
27
+ },
28
+ "activation": {
29
+ "type": "object",
30
+ "additionalProperties": false,
31
+ "description": "Metadata describing when the fragment activates.",
32
+ "properties": {
33
+ "scope": {
34
+ "type": "string",
35
+ "enum": ["global", "session", "task"],
36
+ "description": "Activation breadth. global: every interaction. session: the active session. task: a single task scope."
37
+ },
38
+ "triggers": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string",
42
+ "minLength": 1
43
+ },
44
+ "description": "Phrases or signals that activate the fragment.",
45
+ "default": []
46
+ }
47
+ }
48
+ },
49
+ "tags": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string",
53
+ "minLength": 1
54
+ },
55
+ "description": "Discovery tags.",
56
+ "default": []
57
+ },
58
+ "updated": {
59
+ "type": "string",
60
+ "format": "date-time",
61
+ "description": "ISO 8601 timestamp the fragment was last amended."
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,51 @@
1
+ # SPDX-License-Identifier: MIT
2
+ #
3
+ # Freshness-token denylist loaded by freshness_token_grep.
4
+ #
5
+ # The freshness-facade mandate (rules/freshness-facade.md) keeps every
6
+ # shipped public surface a current-version-only facade: no backward / legacy
7
+ # replacement narrative, no placeholder / deferral, no fix-and-refinement
8
+ # story-of-becoming. This file enumerates the high-precision narrative PHRASES
9
+ # that mark those classes — never bare common words.
10
+ #
11
+ # Two boundaries keep this set precise:
12
+ #
13
+ # 1. Bare words such as "legacy", "deprecated", "retired", "placeholder",
14
+ # and "backward" have legitimate uses (a Keep-a-Changelog `Deprecated`
15
+ # heading, a documented deprecation policy, a "placeholder identity"
16
+ # product feature, a "future clarity backward" idiom) and are absent.
17
+ # Present-tense facts that are not story-of-becoming — "backward-compatible
18
+ # with v1", "X is no longer supported" — are also absent: a truthful
19
+ # current-version surface may state them.
20
+ # 2. The AI-disclosure token-class (the bare "AI" token in "AI-generated",
21
+ # "generated by AI") is already forbidden on this exact README + site
22
+ # scope by `plain-language-grep`. To stay strictly non-overlapping, this
23
+ # denylist carries none of it; AI-disclosure enforcement is plain-language's.
24
+ #
25
+ # Only unambiguous story-of-becoming / replacement / deferral phrases remain,
26
+ # so the matcher flags the narrative without flagging the dictionary word or
27
+ # double-flagging what plain-language already owns.
28
+ #
29
+ # The matcher (conformity/freshness_token_grep.py) scans README.md plus the
30
+ # site documentation tree, case-insensitively, outside fenced code blocks. Each
31
+ # non-empty, non-comment line below is one forbidden phrase, matched literally.
32
+ #
33
+ # This file carries its SPDX line as a hash comment (the matcher skips comment
34
+ # lines), mirroring schemas/reference-token-denylist.txt; it is not a header
35
+ # exemption.
36
+
37
+ # Backward / legacy replacement narrative.
38
+ replaces the legacy
39
+ legacy v0
40
+ the old behavior
41
+
42
+ # Placeholder / unfinished deferral.
43
+ to be determined
44
+ coming soon
45
+ work in progress
46
+ under construction
47
+ stay tuned
48
+
49
+ # Deferred-to-the-future narrative.
50
+ in a future release
51
+ in a future version