atomadic-forge 0.54.0__tar.gz → 0.56.0__tar.gz

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 (440) hide show
  1. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/metrics-auto-regen.yml +6 -4
  2. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/publish-on-tag.yml +1 -0
  3. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/CHANGELOG.md +178 -0
  4. {atomadic_forge-0.54.0/src/atomadic_forge.egg-info → atomadic_forge-0.56.0}/PKG-INFO +20 -13
  5. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/README.md +19 -12
  6. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/AGENTS_GUIDE.md +15 -3
  7. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/COMMANDS.md +102 -2
  8. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/FORMALIZATION.md +2 -2
  9. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/IDE_INTEGRATION.md +2 -2
  10. atomadic_forge-0.56.0/docs/MCP_TOOLS.md +237 -0
  11. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/RECEIPT.md +2 -2
  12. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/pyproject.toml +1 -1
  13. atomadic_forge-0.56.0/src/atomadic_forge/a1_at_functions/doc_auto_update.py +543 -0
  14. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/forge_metrics.py +16 -1
  15. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/mcp_protocol.py +79 -6
  16. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/wire_stubs_gen.py +191 -12
  17. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_metrics_feature.py +23 -1
  18. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a4_sy_orchestration/cli.py +181 -9
  19. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0/src/atomadic_forge.egg-info}/PKG-INFO +20 -13
  20. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge.egg-info/SOURCES.txt +3 -0
  21. atomadic_forge-0.56.0/tests/test_doc_auto_update.py +183 -0
  22. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/FUNDING.yml +0 -0
  23. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  24. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  25. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  26. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/actions/forge-action/README.md +0 -0
  27. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/actions/forge-action/action.yml +0 -0
  28. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/dependabot.yml +0 -0
  29. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/pull_request_template.md +0 -0
  30. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/ci.yml +0 -0
  31. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/customer-refactor.yml +0 -0
  32. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/forge-self-certify.yml +0 -0
  33. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/mcp-registry-publish.yml +0 -0
  34. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/metrics-drift.yml +0 -0
  35. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/release-readiness.yml +0 -0
  36. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/release.yml +0 -0
  37. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/surface-drift.yml +0 -0
  38. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/.github/workflows/uptime.yml +0 -0
  39. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/ARCHITECTURE.md +0 -0
  40. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/CONTRIBUTING.md +0 -0
  41. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/LICENSE +0 -0
  42. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/MANIFEST.in +0 -0
  43. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/SECURITY.md +0 -0
  44. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/assets/Atomadic-Forge-01.png +0 -0
  45. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/01-getting-started.md +0 -0
  46. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/02-commands.md +0 -0
  47. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/03-tutorial.md +0 -0
  48. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/04-llm-loops.md +0 -0
  49. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/05-faq.md +0 -0
  50. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/AIR_GAPPED.md +0 -0
  51. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/CI_CD.md +0 -0
  52. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/CODEX_WALKTHROUGH.md +0 -0
  53. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/FIRST_10_MINUTES.md +0 -0
  54. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/HIVE_PRIMITIVES.md +0 -0
  55. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/HIVE_STATUS.md +0 -0
  56. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/LANDSCAPE.md +0 -0
  57. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/MARKET_POSITIONING.md +0 -0
  58. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/MIGRATION.md +0 -0
  59. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/MULTI_REPO.md +0 -0
  60. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/PROVIDERS.md +0 -0
  61. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/README.md +0 -0
  62. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/RELAY_PROTOCOL.md +0 -0
  63. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/RELEASE_CHECKLIST.md +0 -0
  64. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/RELEASE_MESSAGING.md +0 -0
  65. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/ROADMAP.md +0 -0
  66. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/SHOWCASE.md +0 -0
  67. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/SIDECAR.md +0 -0
  68. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/STUDIO.md +0 -0
  69. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/TOOL_FACTORY_WALKTHROUGH.md +0 -0
  70. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/V0.46.0_JUSTIFICATION_REPORT.md +0 -0
  71. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/V0.47.0_SELF_TEST_REPORT.md +0 -0
  72. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/WHY_NOW.md +0 -0
  73. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/WORKER_VS_LOCAL_MCP.md +0 -0
  74. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/WORLD_COLLISION.md +0 -0
  75. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/INDEX.md +0 -0
  76. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/absorb.md +0 -0
  77. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/audit.md +0 -0
  78. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/chat.md +0 -0
  79. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/commandsmith.md +0 -0
  80. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/config.md +0 -0
  81. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/create.md +0 -0
  82. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/demo.md +0 -0
  83. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/emergent-swarm.md +0 -0
  84. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/emergent-then-synergy.md +0 -0
  85. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/emergent.md +0 -0
  86. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/enhancement.md +0 -0
  87. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/evolve-then-iterate.md +0 -0
  88. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/evolve.md +0 -0
  89. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/feature-then-emergent.md +0 -0
  90. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/guard-install.md +0 -0
  91. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/handoff.md +0 -0
  92. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/harvest.md +0 -0
  93. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/hive.md +0 -0
  94. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/iterate.md +0 -0
  95. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/materialize.md +0 -0
  96. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/metrics.md +0 -0
  97. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/recon-swarm.md +0 -0
  98. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/relay.md +0 -0
  99. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/surface.md +0 -0
  100. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/synergy-then-emergent.md +0 -0
  101. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/synergy.md +0 -0
  102. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/welcome.md +0 -0
  103. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/commands/wisdom.md +0 -0
  104. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/compliance/CMMC_AI_MAPPING.md +0 -0
  105. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/compliance/CS-1.md +0 -0
  106. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/compliance/EU_AI_ACT_ANNEX_IV.md +0 -0
  107. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/compliance/FDA_PCCP_MAPPING.md +0 -0
  108. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/compliance/SR_11-7_MAPPING.md +0 -0
  109. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/handoffs/WORKER_AUTO_DEPLOY_2026-05-06.md +0 -0
  110. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/tutorials/01-quickstart.md +0 -0
  111. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/tutorials/02-your-first-package.md +0 -0
  112. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/tutorials/03-the-five-tier-law.md +0 -0
  113. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/tutorials/04-plug-in-llms.md +0 -0
  114. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/tutorials/05-multi-repo-absorb.md +0 -0
  115. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/docs/tutorials/06-javascript-quickstart.md +0 -0
  116. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/setup.cfg +0 -0
  117. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/__init__.py +0 -0
  118. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/__main__.py +0 -0
  119. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/__init__.py +0 -0
  120. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/agent_plan_schema.py +0 -0
  121. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/auth_constants.py +0 -0
  122. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/commandsmith_types.py +0 -0
  123. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/config_defaults.py +0 -0
  124. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/emergent_types.py +0 -0
  125. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/enhancement_proposal_constants.py +0 -0
  126. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/error_codes.py +0 -0
  127. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/forge_types.py +0 -0
  128. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/gen_language.py +0 -0
  129. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/handoff_constants.py +0 -0
  130. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/hive_constants.py +0 -0
  131. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/lang_extensions.py +0 -0
  132. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/lifetime_savings_constants.py +0 -0
  133. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/materialize_types.py +0 -0
  134. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/mhed_invariants.py +0 -0
  135. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/nexus_constants.py +0 -0
  136. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/policy_schema.py +0 -0
  137. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/receipt_schema.py +0 -0
  138. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/response_enrichment.py +0 -0
  139. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/roi_constants.py +0 -0
  140. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/schema_version_registry.py +0 -0
  141. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/semantic_types.py +0 -0
  142. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/sidecar_schema.py +0 -0
  143. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/synergy_types.py +0 -0
  144. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/tier_names.py +0 -0
  145. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/welcome_constants.py +0 -0
  146. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a0_qk_constants/wisdom_constants.py +0 -0
  147. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/__init__.py +0 -0
  148. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/agent_context_pack.py +0 -0
  149. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/agent_memory.py +0 -0
  150. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/agent_plan_emitter.py +0 -0
  151. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/agent_summary.py +0 -0
  152. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/body_extractor.py +0 -0
  153. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/call_graph.py +0 -0
  154. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/capability_scout.py +0 -0
  155. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/card_renderer.py +0 -0
  156. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/certify_checks.py +0 -0
  157. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/chat_context.py +0 -0
  158. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/cherry_pick.py +0 -0
  159. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/classify_tier.py +0 -0
  160. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/code_signature.py +0 -0
  161. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/commandsmith_discover.py +0 -0
  162. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/commandsmith_render.py +0 -0
  163. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/compiler_feedback.py +0 -0
  164. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/compliance_checker.py +0 -0
  165. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/config_io.py +0 -0
  166. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/cs1_renderer.py +0 -0
  167. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/custom_provider_client.py +0 -0
  168. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/dead_code_check.py +0 -0
  169. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/doc_synthesizer.py +0 -0
  170. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/emergent_compose.py +0 -0
  171. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/emergent_rank.py +0 -0
  172. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/emergent_signature_extract.py +0 -0
  173. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/emergent_synthesize.py +0 -0
  174. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/enforce_planner.py +0 -0
  175. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/enhancement_proposal_builder.py +0 -0
  176. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/error_hints.py +0 -0
  177. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/evolution_log.py +0 -0
  178. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/exported_api_check.py +0 -0
  179. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/forge_auth.py +0 -0
  180. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/forge_feedback.py +0 -0
  181. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/forge_locate.py +0 -0
  182. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/generation_quality.py +0 -0
  183. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/git_churn.py +0 -0
  184. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/handoff_builder.py +0 -0
  185. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/harvest_absorb.py +0 -0
  186. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/harvest_concept_bridge.py +0 -0
  187. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/hive_consensus_math.py +0 -0
  188. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/hive_io.py +0 -0
  189. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/import_repair.py +0 -0
  190. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/import_smoke.py +0 -0
  191. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/intent_similarity.py +0 -0
  192. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/js_parser.py +0 -0
  193. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/lifetime_savings.py +0 -0
  194. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/lineage_chain.py +0 -0
  195. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/lineage_reader.py +0 -0
  196. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/llm_client.py +0 -0
  197. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/local_signer.py +0 -0
  198. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/lsp_protocol.py +0 -0
  199. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/maintainability_index.py +0 -0
  200. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/manifest_diff.py +0 -0
  201. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/patch_scorer.py +0 -0
  202. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/plan_adapter.py +0 -0
  203. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/policy_loader.py +0 -0
  204. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/polyglot_classify.py +0 -0
  205. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/polyglot_imports.py +0 -0
  206. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/polyglot_surface.py +0 -0
  207. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/preflight_change.py +0 -0
  208. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/progress_reporter.py +0 -0
  209. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/provider_detect.py +0 -0
  210. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/provider_resolver.py +0 -0
  211. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/receipt_emitter.py +0 -0
  212. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/recipes.py +0 -0
  213. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/repo_explainer.py +0 -0
  214. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/research_note_distiller.py +0 -0
  215. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/response_enricher.py +0 -0
  216. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/roi_calculator.py +0 -0
  217. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/rollback_planner.py +0 -0
  218. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/sbom_emitter.py +0 -0
  219. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/scaffold_js.py +0 -0
  220. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/scaffold_polyglot.py +0 -0
  221. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/scaffold_pyproject.py +0 -0
  222. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/scaffold_starter.py +0 -0
  223. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/scout_walk.py +0 -0
  224. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/sidecar_parser.py +0 -0
  225. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/sidecar_validator.py +0 -0
  226. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/smell_scan.py +0 -0
  227. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/stub_detector.py +0 -0
  228. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/surface_gap_check.py +0 -0
  229. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/synergy_detect.py +0 -0
  230. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/synergy_render.py +0 -0
  231. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/synergy_surface_extract.py +0 -0
  232. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/test_runner.py +0 -0
  233. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/test_selector.py +0 -0
  234. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/tier_init_rebuild.py +0 -0
  235. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/tool_composer.py +0 -0
  236. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/transcript_log.py +0 -0
  237. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/trust_gate_response.py +0 -0
  238. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/validation_commands.py +0 -0
  239. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/welcome_narrator.py +0 -0
  240. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/wire_check.py +0 -0
  241. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/wisdom_capture.py +0 -0
  242. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/wisdom_io.py +0 -0
  243. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/wisdom_promote.py +0 -0
  244. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/wisdom_recall.py +0 -0
  245. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a1_at_functions/worktree_status.py +0 -0
  246. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/__init__.py +0 -0
  247. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/cost_circuit_breaker.py +0 -0
  248. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/cross_agent_intent_deduplicator.py +0 -0
  249. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/evolve_session_store.py +0 -0
  250. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/forge_auth_client.py +0 -0
  251. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/hierarchical_memory.py +0 -0
  252. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/iterate_session_store.py +0 -0
  253. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/lineage_chain_store.py +0 -0
  254. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/manifest_store.py +0 -0
  255. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/nexus_client.py +0 -0
  256. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/plan_store.py +0 -0
  257. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a2_mo_composites/receipt_signer.py +0 -0
  258. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/__init__.py +0 -0
  259. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/absorb_feature.py +0 -0
  260. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/agent_hire_protocol.py +0 -0
  261. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/cherry_hunter.py +0 -0
  262. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/cna_check.py +0 -0
  263. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/commandsmith_feature.py +0 -0
  264. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/commit_compose.py +0 -0
  265. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/create_feature.py +0 -0
  266. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/dedup_engine.py +0 -0
  267. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/__init__.py +0 -0
  268. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a0_qk_constants/__init__.py +0 -0
  269. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a1_at_functions/__init__.py +0 -0
  270. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/conftest.py +0 -0
  271. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/test_mixed.py +0 -0
  272. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/demo_runner.py +0 -0
  273. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/emergent_feature.py +0 -0
  274. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/emergent_pipeline_integration.py +0 -0
  275. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/emergent_swarm.py +0 -0
  276. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/enhancement_proposal_feature.py +0 -0
  277. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_enforce.py +0 -0
  278. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_evolve.py +0 -0
  279. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_evolve_session.py +0 -0
  280. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_loop.py +0 -0
  281. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_loop_session.py +0 -0
  282. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_pipeline.py +0 -0
  283. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/forge_plan_apply.py +0 -0
  284. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/guard_install.py +0 -0
  285. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/handoff_feature.py +0 -0
  286. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/hive_sync.py +0 -0
  287. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/lsp_server.py +0 -0
  288. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/materialize_feature.py +0 -0
  289. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/mcp_server.py +0 -0
  290. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/nexus_bridge.py +0 -0
  291. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/relay_daemon.py +0 -0
  292. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/setup_wizard.py +0 -0
  293. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/surface_export.py +0 -0
  294. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/synergy_feature.py +0 -0
  295. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/tool_factory.py +0 -0
  296. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/verify_umbrella.py +0 -0
  297. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/welcome_feature.py +0 -0
  298. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a3_og_features/wisdom_feature.py +0 -0
  299. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a4_sy_orchestration/__init__.py +0 -0
  300. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a4_sy_orchestration/copilots_cmd.py +0 -0
  301. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a4_sy_orchestration/login_cmd.py +0 -0
  302. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/a4_sy_orchestration/whoami_cmd.py +0 -0
  303. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/__init__.py +0 -0
  304. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/_registry.py +0 -0
  305. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/absorb.py +0 -0
  306. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/audit.py +0 -0
  307. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/chat.py +0 -0
  308. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/commandsmith.py +0 -0
  309. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/config_cmd.py +0 -0
  310. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/create.py +0 -0
  311. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/demo.py +0 -0
  312. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/emergent.py +0 -0
  313. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/emergent_swarm.py +0 -0
  314. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/emergent_then_synergy.py +0 -0
  315. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/enhancement.py +0 -0
  316. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/evolve.py +0 -0
  317. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/evolve_then_iterate.py +0 -0
  318. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/feature_then_emergent.py +0 -0
  319. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/guard_install.py +0 -0
  320. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/handoff.py +0 -0
  321. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/harvest.py +0 -0
  322. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/hive.py +0 -0
  323. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/iterate.py +0 -0
  324. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/materialize.py +0 -0
  325. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/metrics.py +0 -0
  326. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/recon_swarm.py +0 -0
  327. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/relay.py +0 -0
  328. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/surface.py +0 -0
  329. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/synergy.py +0 -0
  330. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/synergy_then_emergent.py +0 -0
  331. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/welcome.py +0 -0
  332. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge/commands/wisdom.py +0 -0
  333. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge.egg-info/dependency_links.txt +0 -0
  334. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge.egg-info/entry_points.txt +0 -0
  335. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge.egg-info/requires.txt +0 -0
  336. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/src/atomadic_forge.egg-info/top_level.txt +0 -0
  337. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_aaaa_nexus_client.py +0 -0
  338. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_agent_hire_protocol.py +0 -0
  339. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_agent_plan.py +0 -0
  340. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_agent_plan_pkg_label.py +0 -0
  341. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_agent_summary.py +0 -0
  342. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_audit_verb.py +0 -0
  343. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_body_extractor_repairs.py +0 -0
  344. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_call_graph_summary.py +0 -0
  345. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_capability_scout.py +0 -0
  346. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_card_renderer.py +0 -0
  347. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_certify_operational_axis.py +0 -0
  348. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_chat.py +0 -0
  349. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_classify_tier.py +0 -0
  350. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_classify_tier_ast_signals.py +0 -0
  351. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_cli_smoke.py +0 -0
  352. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_cli_swarm_aliases.py +0 -0
  353. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_codex_5_complete.py +0 -0
  354. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_codex_6_enforce_polyglot.py +0 -0
  355. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_commandsmith.py +0 -0
  356. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_compiler_feedback.py +0 -0
  357. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_compliance_checker.py +0 -0
  358. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_config.py +0 -0
  359. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_copilots_copilot.py +0 -0
  360. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_cost_circuit_breaker.py +0 -0
  361. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_create_feature.py +0 -0
  362. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_cs1_renderer.py +0 -0
  363. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_custom_provider.py +0 -0
  364. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_dead_code_check.py +0 -0
  365. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_dedup_engine.py +0 -0
  366. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_demo.py +0 -0
  367. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_emergent_compose.py +0 -0
  368. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_emergent_signature_extract.py +0 -0
  369. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_emergent_synthesize_imports.py +0 -0
  370. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_enhancement_proposal.py +0 -0
  371. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_error_codes.py +0 -0
  372. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_error_hints.py +0 -0
  373. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_evolve_js.py +0 -0
  374. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_exported_api_check.py +0 -0
  375. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_forge_action.py +0 -0
  376. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_forge_auth_a1.py +0 -0
  377. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_forge_auth_a2.py +0 -0
  378. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_forge_enforce.py +0 -0
  379. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_generation_quality.py +0 -0
  380. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_git_churn.py +0 -0
  381. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_handoff.py +0 -0
  382. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_harvest_concept_bridge.py +0 -0
  383. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_hierarchical_memory.py +0 -0
  384. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_hive_sync.py +0 -0
  385. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_ignore_and_docs.py +0 -0
  386. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_import_smoke.py +0 -0
  387. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_iterate_evolve.py +0 -0
  388. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_js_certify.py +0 -0
  389. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_js_parser.py +0 -0
  390. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_js_recon.py +0 -0
  391. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_js_wire.py +0 -0
  392. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_lineage_chain.py +0 -0
  393. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_ling_provider.py +0 -0
  394. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_local_signer.py +0 -0
  395. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_lsp_protocol.py +0 -0
  396. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_maintainability_index.py +0 -0
  397. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_manifest_diff.py +0 -0
  398. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_materialize_feature.py +0 -0
  399. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_mcp_lazy_bootstrap.py +0 -0
  400. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_mcp_protocol.py +0 -0
  401. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_nexus_bridge.py +0 -0
  402. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_ollama_client.py +0 -0
  403. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_pipeline.py +0 -0
  404. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_plan_apply.py +0 -0
  405. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_polyglot_cli_mcp.py +0 -0
  406. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_polyglot_full_pipeline.py +0 -0
  407. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_polyglot_hardening.py +0 -0
  408. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_polyglot_swift_kotlin_go.py +0 -0
  409. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_polyglot_symbol_parity.py +0 -0
  410. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_pre_audit_smoke.py +0 -0
  411. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_precommit_hooks.py +0 -0
  412. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_progress_reporter.py +0 -0
  413. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_receipt_emitter.py +0 -0
  414. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_receipt_schema.py +0 -0
  415. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_receipt_signer.py +0 -0
  416. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_response_enricher.py +0 -0
  417. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_roi_calculator.py +0 -0
  418. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_sbom_cmd_text_summary.py +0 -0
  419. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_sbom_emitter.py +0 -0
  420. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_scaffold.py +0 -0
  421. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_sidecar.py +0 -0
  422. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_sidecar_validate.py +0 -0
  423. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_smell_score_formula.py +0 -0
  424. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_stagnation.py +0 -0
  425. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_stub_detector.py +0 -0
  426. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_surface_export.py +0 -0
  427. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_surface_gap_check.py +0 -0
  428. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_synergy.py +0 -0
  429. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_test_runner.py +0 -0
  430. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_tier_init_rebuild.py +0 -0
  431. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_trust_gate_response.py +0 -0
  432. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_verify_suggested_recipe.py +0 -0
  433. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_welcome.py +0 -0
  434. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_welcome_enhancements.py +0 -0
  435. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_whoami_cmd.py +0 -0
  436. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_wire_certify.py +0 -0
  437. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_wire_stubs_gen.py +0 -0
  438. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_wire_suggest_repairs.py +0 -0
  439. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_wire_type_checking.py +0 -0
  440. {atomadic_forge-0.54.0 → atomadic_forge-0.56.0}/tests/test_wisdom.py +0 -0
@@ -89,14 +89,16 @@ jobs:
89
89
  p.write_text(json.dumps(d, indent=2, sort_keys=True) + "\n")
90
90
  PY
91
91
  fi
92
+ - name: Auto-update docs from metrics
93
+ run: forge doc-update || true
92
94
  - name: Commit if drifted
93
95
  run: |
94
96
  git config user.name "atomadic-bot"
95
97
  git config user.email "bot@atomadic.tech"
96
- if git diff --quiet -- forge_metrics.json; then
97
- echo "metrics already current — no commit"
98
+ if git diff --quiet -- forge_metrics.json README.md CHANGELOG.md; then
99
+ echo "metrics and docs already current — no commit"
98
100
  exit 0
99
101
  fi
100
- git add forge_metrics.json
101
- git commit -m "chore(metrics): auto-regenerate forge_metrics.json [skip ci]"
102
+ git add forge_metrics.json README.md CHANGELOG.md
103
+ git commit -m "chore(metrics): auto-regenerate metrics + docs [skip ci]"
102
104
  git push origin main
@@ -63,6 +63,7 @@ jobs:
63
63
  passed=$(echo "${ptout:-}" | grep -oE '[0-9]+ passed' | head -1 | grep -oE '[0-9]+' || echo 0)
64
64
  echo "pytest passed count: ${passed:-0}"
65
65
  forge metrics --apply --tests-passing "${passed:-0}" || true
66
+ forge doc-update || true
66
67
  v=$(jq -r .package_version forge_metrics.json 2>/dev/null || echo "?")
67
68
  echo "forge_metrics.json regenerated at tag time (version: $v)"
68
69
  exit 0 # always succeed — never block the release
@@ -2,6 +2,184 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## v0.56.0 — 2026-05-08 — Zero-token automation: auto-wire, doc-drift, lean preservation
6
+
7
+ ### Added
8
+
9
+ **`apply_wire_stubs` — direct MCP+CLI injection** (zero copy-paste wiring)
10
+
11
+ `wire_stubs_gen.apply_wire_stubs()` injects a new MCP handler, both explore and
12
+ audit dispatch elifs, updated enum lists, a CLI command, and a test skeleton
13
+ directly into the correct files. No manual copy-paste required.
14
+
15
+ - `forge wire-stubs <module> <function> --apply [--dry-run]`
16
+ - MCP: `audit(action='wire_stubs')` with `apply=true`
17
+
18
+ **`forge auto-wire` — batch auto-wiring of all surface gaps**
19
+
20
+ One command: `surface-gaps` → `apply_wire_stubs` for every unwired a1 entry
21
+ point, with full dry-run support.
22
+
23
+ - `forge auto-wire [--top-n N] [--dry-run] [--tools explore,audit]`
24
+ - MCP: `audit(action='auto_wire')`
25
+
26
+ **`forge doc-update` — zero-LLM-token documentation regeneration**
27
+
28
+ Reads `forge_metrics.json` + live MCP/CLI source, rewrites bounded sections in
29
+ README, CHANGELOG, WHITEPAPER, IDE_INTEGRATION, and AGENTS_GUIDE.
30
+
31
+ - `forge doc-update [--sections readme,changelog,extended_docs] [--dry-run]`
32
+ - MCP: `audit(action='doc_update')`
33
+ - Integrated into `metrics-auto-regen.yml` and `publish-on-tag.yml`
34
+ - Schema: `atomadic-forge.doc_auto_update/v1`
35
+
36
+ **`forge doc-drift` — CI-gateable doc staleness detector**
37
+
38
+ Scans docs for stale MCP tool/action/test counts vs live `forge_metrics.json`.
39
+ Exits 1 when drift is found — suitable as a pre-push or CI gate.
40
+
41
+ - `forge doc-drift [--json]`
42
+ - MCP: `audit(action='doc_drift')`
43
+
44
+ ### Fixed
45
+
46
+ **`forge_metrics.py` — lean_theorems preservation**
47
+
48
+ `forge metrics --apply` no longer zeroes the lean_theorems count when the proof
49
+ corpus is unavailable. Prior count is preserved whenever `found=False` but the
50
+ existing `forge_metrics.json` has `count > 0`. Same preservation for
51
+ `tests_passing` across local runs.
52
+
53
+ **16-item documentation discrepancy audit resolved**
54
+
55
+ - WHITEPAPER: 5× "46 MCP tools" → "10 MCP tools dispatching 79 actions"
56
+ - `docs/IDE_INTEGRATION.md`: "66 tools" → "10 tools dispatching 79 actions"
57
+ - `docs/MCP_TOOLS.md`: created (fixed broken README link)
58
+ - README, AGENTS_GUIDE: pipeline terminology `scout→assimilate` → `recon→cherry→wire`
59
+ - AGENTS.md: removed non-existent `launch/forge/GOLDEN_PATH-20260428.md` path
60
+ - `docs/RECEIPT.md`: `forge_version: "0.2.2"` → `"0.56.0"`
61
+ - `docs/FORMALIZATION.md`: `post-v0.14` → `post-v0.55.0`
62
+ - `tests/README.md`: created with tier map, fixture conventions, run commands
63
+
64
+ ### Metrics
65
+
66
+ | Metric | v0.55.x → v0.56.0 |
67
+ |--------|-------------------|
68
+ | MCP actions | 76 → **79** |
69
+ | CLI verbs | 80 → **83** |
70
+ | Source files | 221 → **222** |
71
+ | Tests | 1,465 → **1,560** |
72
+ | Certify score | 100/100 |
73
+ | Wire violations | 0 |
74
+
75
+ ## v0.55.0 — 2026-05-08 — Auto-wire pipeline, doc-update automation
76
+
77
+ ### Added
78
+
79
+ **`apply_wire_stubs` — direct MCP+CLI injection** (zero copy-paste wiring)
80
+
81
+ `wire_stubs_gen.apply_wire_stubs()` injects a new MCP handler, both explore and
82
+ audit dispatch elifs, updated enum lists, a CLI command, and a test skeleton
83
+ directly into the correct files — no manual copy-paste required.
84
+
85
+ - `forge wire-stubs <module> <function> --apply`
86
+ - `forge wire-stubs <module> <function> --dry-run`
87
+
88
+ **`forge auto-wire` — batch auto-wiring of all surface gaps**
89
+
90
+ New CLI command that runs `surface-gaps` then calls `apply_wire_stubs` for
91
+ every unwired a1 entry point in one shot.
92
+
93
+ - `forge auto-wire [--top-n N] [--dry-run] [--tools explore,audit]`
94
+ - MCP: `audit(action='auto_wire')`
95
+
96
+ **`doc_auto_update` — zero-LLM-token documentation regeneration**
97
+
98
+ New `a1_at_functions/doc_auto_update.py` reads `forge_metrics.json` and live
99
+ MCP/CLI source, then rewrites bounded sections in README.md and CHANGELOG.md
100
+ programmatically — no LLM needed.
101
+
102
+ - `forge doc-update [--sections readme,changelog] [--dry-run]`
103
+ - MCP: `audit(action='doc_update')`
104
+ - Integrated into `metrics-auto-regen.yml` and `publish-on-tag.yml` CI pipelines
105
+ - Schema: `atomadic-forge.doc_auto_update/v1`
106
+
107
+
108
+ ## v0.54.0 — 2026-05-07 — Synthesis pipeline: gap analysis, TAU_TRUST bridge, auto-wiring tools
109
+
110
+ ### Added
111
+
112
+ **`surface_gaps` — a1 MCP/CLI coverage gap finder** (pipeline gap analysis)
113
+
114
+ New `a1_at_functions/surface_gaps.py` with `find_surface_gaps()`. AST-walks the
115
+ a1 tier and compares entry points against registered MCP actions and CLI verbs,
116
+ returning a list of functions with no MCP coverage, no CLI coverage, or both.
117
+
118
+ - `forge surface-gaps`
119
+ - MCP: `explore(action='surface_gaps')`, `audit(action='surface_gaps')`
120
+ - Schema: `atomadic-forge.surface_gaps/v1`
121
+
122
+ **`wire_stubs` — auto-wiring scaffold generator** (pipeline gap analysis)
123
+
124
+ New `a1_at_functions/wire_stubs.py` with `generate_wire_stubs()`. Given a module
125
+ path and function name, emits a ready-to-paste MCP handler block, a CLI stub
126
+ entry, and a test skeleton — removing the manual plumbing step for every new
127
+ a1 function.
128
+
129
+ - `forge wire-stubs <module> <function>`
130
+ - MCP: `audit(action='wire_stubs')`
131
+ - Schema: `atomadic-forge.wire_stubs/v1`
132
+
133
+ **`capability_scout` — GitHub harvest target search** (pipeline gap analysis)
134
+
135
+ New `a1_at_functions/capability_scout.py` with `search_capability_repos()`.
136
+ Accepts one or more freeform query strings and returns ranked GitHub repositories
137
+ suitable as harvest candidates, enriched with star count, last-push date, and
138
+ primary language.
139
+
140
+ - `forge capability-scout --queries "q1,q2"`
141
+ - MCP: `explore(action='capability_scout')`
142
+ - Schema: `atomadic-forge.capability_scout/v1`
143
+
144
+ **`dead_code` — AST-walk dead symbol detector** (vulture synthesis)
145
+
146
+ New `a1_at_functions/dead_code.py` with `detect_dead_symbols()`. Walks the
147
+ package AST using vulture and returns symbols that are defined but never
148
+ referenced, grouped by tier with confidence scores.
149
+
150
+ - `forge dead-code`
151
+ - MCP: `explore(action='dead_code')`, `audit(action='dead_code')`
152
+ - Schema: `atomadic-forge.dead_code/v1`
153
+
154
+ **`maintainability` — Maintainability Index per module** (radon synthesis)
155
+
156
+ New `a1_at_functions/maintainability.py` with `compute_maintainability()`.
157
+ Runs radon MI analysis across every source module and returns per-file grades
158
+ (A/B/C/D) with raw MI score, ranked from least to most maintainable.
159
+
160
+ - `forge maintainability`
161
+ - MCP: `explore(action='maintainability')`, `audit(action='maintainability')`
162
+ - Schema: `atomadic-forge.maintainability/v1`
163
+
164
+ **`concept_bridge` — TAU_TRUST harvest bridge** (TAU_TRUST bridge)
165
+
166
+ New `a1_at_functions/concept_bridge.py` with `bridge_harvest_concepts()`.
167
+ Reads a `harvest.json` produced by `forge harvest`, filters candidates whose
168
+ trust score falls below TAU_TRUST (1820/1823), and converts each into an
169
+ actionable synthesis plan with a recommended absorb sequence and preflight
170
+ checklist.
171
+
172
+ - `forge concept-bridge --harvest-json path/to/harvest.json`
173
+ - MCP: `explore(action='concept_bridge')`, `audit(action='concept_bridge')`
174
+ - Schema: `atomadic-forge.concept_bridge/v1`
175
+
176
+ ### metrics
177
+
178
+ - CLI verbs: 80 (+6)
179
+ - MCP actions: 76 (+10)
180
+ - Tests: 1465 (+42 over v0.53.0)
181
+ - Source files: 221 (+6)
182
+
5
183
  ## v0.53.0 — 2026-05-07 — Harvest synthesis: call-graph-summary, git churn, token budget
6
184
 
7
185
  ### feat(synthesis): three new a1 capabilities absorbed from harvest pipeline
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atomadic-forge
3
- Version: 0.54.0
3
+ Version: 0.56.0
4
4
  Summary: Atomadic Forge — absorb, enforce, emerge. Polyglot (Python · JavaScript/TypeScript · Rust · Go · Swift · Kotlin) architecture guardian for AI-generated code.
5
5
  Author: Atomadic
6
6
  License-Expression: BUSL-1.1
@@ -121,7 +121,7 @@ Forge enforces a **5-tier monadic law** — every source file belongs to exactly
121
121
 
122
122
  | Command | What it does |
123
123
  |---------|-------------|
124
- | `forge auto` | **Flagship.** scout -> cherry -> assimilate -> wire -> certify -> receipt |
124
+ | `forge auto` | **Flagship.** recon cherry wire certify receipt |
125
125
  | `forge recon` | Scan a repo — classify every symbol, show tier distribution |
126
126
  | `forge wire` | Detect upward-import violations |
127
127
  | `forge certify` | Architecture score (0-100): docs, tests, tier layout, imports |
@@ -141,6 +141,12 @@ Forge enforces a **5-tier monadic law** — every source file belongs to exactly
141
141
  | `forge cna-check` | Compose-Not-Add — flag duplicates before writing |
142
142
  | `forge trust-gate` | LLM response hallucination detector |
143
143
  | `forge preflight` | Pre-edit guardrail: tier + import + scope check |
144
+ | `forge surface-gaps` | Find a1 entry points missing MCP or CLI coverage |
145
+ | `forge wire-stubs <module> <function>` | Generate MCP handler + CLI stub + test skeleton for any unwired a1 function |
146
+ | `forge capability-scout --queries "q1,q2"` | Search GitHub for harvest target repos |
147
+ | `forge dead-code` | AST-walk dead symbol detector (vulture synthesis) |
148
+ | `forge maintainability` | Maintainability Index per module (radon MI: A/B/C/D ranking) |
149
+ | `forge concept-bridge --harvest-json path/to/harvest.json` | Convert harvest candidates below TAU_TRUST into actionable synthesis plans |
144
150
 
145
151
  ### Composition & Multi-Repo
146
152
 
@@ -160,11 +166,11 @@ Forge enforces a **5-tier monadic law** — every source file belongs to exactly
160
166
  | `forge plan` | Bounded execution plan with risk + rollback |
161
167
  | `forge chat` | Terminal copilot over forge docs |
162
168
 
163
- **74 CLI verbs total.** Full reference: [docs/02-commands.md](docs/02-commands.md)
169
+ **83 CLI verbs total.** Full reference: [docs/02-commands.md](docs/02-commands.md)
164
170
 
165
171
  ---
166
172
 
167
- ## MCP Server — 10 Tools, 65 Actions
173
+ ## MCP Server — 10 Tools, 79 Actions
168
174
 
169
175
  Forge ships a Model Context Protocol server. Add it to Cursor, Claude Code, Aider, Devin, or any MCP-compatible agent:
170
176
 
@@ -179,13 +185,13 @@ Forge ships a Model Context Protocol server. Add it to Cursor, Claude Code, Aide
179
185
  }
180
186
  ```
181
187
 
182
- **10 tools, 66 actions locally.** All legacy tool names redirect automatically — existing callers keep working. Deployed Worker at [forge.atomadic.tech/mcp](https://forge.atomadic.tech/mcp). Listed in the [MCP Official Registry](https://registry.modelcontextprotocol.io/).
188
+ **10 tools, 76 actions locally.** All legacy tool names redirect automatically — existing callers keep working. Deployed Worker at [forge.atomadic.tech/mcp](https://forge.atomadic.tech/mcp). Listed in the [MCP Official Registry](https://registry.modelcontextprotocol.io/).
183
189
 
184
190
  | Tool | Actions | What it does |
185
191
  |------|---------|-------------|
186
192
  | `welcome` | — | RECOMMENDED FIRST CALL: onboarding scan, score, narrative, capability tour |
187
- | `explore` | 11 | Analyze, understand, discover — recon/explain/call_graph/call_graph_summary/smell/lineage/harvest/synergy/scan/swarm/churn |
188
- | `audit` | 14 | Quality gates, change safety, trust |
193
+ | `explore` | 16 | Analyze, understand, discover — recon/explain/call_graph/call_graph_summary/smell/lineage/harvest/synergy/scan/swarm/churn/surface_gaps/capability_scout/dead_code/maintainability/concept_bridge |
194
+ | `audit` | 22 | Quality gates, change safety, trust |
189
195
  | `plan` | 9 | Orient + dev utilities — context/compose/policy/recipes/generate/apply/locate/commit/scaffold |
190
196
  | `transmute` | 3 | **FLAGSHIP** spaghetti→certified pipeline — auto/cherry/finalize |
191
197
  | `loop` | 4 | LLM iteration loops — iterate/resume/evolve/evolve_step |
@@ -206,11 +212,12 @@ Full tool reference: [docs/MCP_TOOLS.md](docs/MCP_TOOLS.md) | First call: `welco
206
212
 
207
213
  | Metric | Value |
208
214
  |--------|-------|
209
- | MCP tools | **10 tools · 66 actions** |
210
- | CLI verbs | **74** |
211
- | Source files | **211** (~40,195 LOC) |
212
- | Tests | **1,423 passing** across **97 test files** |
213
- | Lean4 formal proofs | **872 theorems** across 30 files (mathematically verified core logic — IP-protected formal verification moat) |
215
+
216
+ | MCP tools | **10 tools · 79 actions** |
217
+ | CLI verbs | **83** |
218
+ | Source files | **222** (~43K LOC) |
219
+ | Tests | **1476 passing** across **105 test files** |
220
+ | Lean4 formal proofs | not yet active |
214
221
  | Monadic tiers | **5** (a0 → a4, strict upward-only composition) |
215
222
  | Languages | Python, JS/TS, Swift, Kotlin, Go, Rust |
216
223
  | Infrastructure cost | **$5/mo** |
@@ -227,7 +234,7 @@ Forge eats its own cooking. Every CI run scores itself.
227
234
  |------|-------|-------------|
228
235
  | **Free** | $0 | OSS, 25 calls/day, read-only tools |
229
236
  | **One-Time Refactor** | ~~$149~~ **$99** | We run `auto` on your repo -> PR targeting 100/100. One revision included. |
230
- | **Starter** | $79/mo | All 10 tools (66 actions), 5k calls/mo, signed receipts, custom recipes |
237
+ | **Starter** | $79/mo | All 10 tools (76 actions), 5k calls/mo, signed receipts, custom recipes |
231
238
  | **Pro** | $249/mo | + notarization, compliance attestations, cross-repo telemetry |
232
239
  | **Founding Member** | $999/yr | Everything. Forever. First 25 only. |
233
240
  | **Enterprise** | Custom | BSL commercial license, SSO, self-host, SLA |
@@ -89,7 +89,7 @@ Forge enforces a **5-tier monadic law** — every source file belongs to exactly
89
89
 
90
90
  | Command | What it does |
91
91
  |---------|-------------|
92
- | `forge auto` | **Flagship.** scout -> cherry -> assimilate -> wire -> certify -> receipt |
92
+ | `forge auto` | **Flagship.** recon cherry wire certify receipt |
93
93
  | `forge recon` | Scan a repo — classify every symbol, show tier distribution |
94
94
  | `forge wire` | Detect upward-import violations |
95
95
  | `forge certify` | Architecture score (0-100): docs, tests, tier layout, imports |
@@ -109,6 +109,12 @@ Forge enforces a **5-tier monadic law** — every source file belongs to exactly
109
109
  | `forge cna-check` | Compose-Not-Add — flag duplicates before writing |
110
110
  | `forge trust-gate` | LLM response hallucination detector |
111
111
  | `forge preflight` | Pre-edit guardrail: tier + import + scope check |
112
+ | `forge surface-gaps` | Find a1 entry points missing MCP or CLI coverage |
113
+ | `forge wire-stubs <module> <function>` | Generate MCP handler + CLI stub + test skeleton for any unwired a1 function |
114
+ | `forge capability-scout --queries "q1,q2"` | Search GitHub for harvest target repos |
115
+ | `forge dead-code` | AST-walk dead symbol detector (vulture synthesis) |
116
+ | `forge maintainability` | Maintainability Index per module (radon MI: A/B/C/D ranking) |
117
+ | `forge concept-bridge --harvest-json path/to/harvest.json` | Convert harvest candidates below TAU_TRUST into actionable synthesis plans |
112
118
 
113
119
  ### Composition & Multi-Repo
114
120
 
@@ -128,11 +134,11 @@ Forge enforces a **5-tier monadic law** — every source file belongs to exactly
128
134
  | `forge plan` | Bounded execution plan with risk + rollback |
129
135
  | `forge chat` | Terminal copilot over forge docs |
130
136
 
131
- **74 CLI verbs total.** Full reference: [docs/02-commands.md](docs/02-commands.md)
137
+ **83 CLI verbs total.** Full reference: [docs/02-commands.md](docs/02-commands.md)
132
138
 
133
139
  ---
134
140
 
135
- ## MCP Server — 10 Tools, 65 Actions
141
+ ## MCP Server — 10 Tools, 79 Actions
136
142
 
137
143
  Forge ships a Model Context Protocol server. Add it to Cursor, Claude Code, Aider, Devin, or any MCP-compatible agent:
138
144
 
@@ -147,13 +153,13 @@ Forge ships a Model Context Protocol server. Add it to Cursor, Claude Code, Aide
147
153
  }
148
154
  ```
149
155
 
150
- **10 tools, 66 actions locally.** All legacy tool names redirect automatically — existing callers keep working. Deployed Worker at [forge.atomadic.tech/mcp](https://forge.atomadic.tech/mcp). Listed in the [MCP Official Registry](https://registry.modelcontextprotocol.io/).
156
+ **10 tools, 76 actions locally.** All legacy tool names redirect automatically — existing callers keep working. Deployed Worker at [forge.atomadic.tech/mcp](https://forge.atomadic.tech/mcp). Listed in the [MCP Official Registry](https://registry.modelcontextprotocol.io/).
151
157
 
152
158
  | Tool | Actions | What it does |
153
159
  |------|---------|-------------|
154
160
  | `welcome` | — | RECOMMENDED FIRST CALL: onboarding scan, score, narrative, capability tour |
155
- | `explore` | 11 | Analyze, understand, discover — recon/explain/call_graph/call_graph_summary/smell/lineage/harvest/synergy/scan/swarm/churn |
156
- | `audit` | 14 | Quality gates, change safety, trust |
161
+ | `explore` | 16 | Analyze, understand, discover — recon/explain/call_graph/call_graph_summary/smell/lineage/harvest/synergy/scan/swarm/churn/surface_gaps/capability_scout/dead_code/maintainability/concept_bridge |
162
+ | `audit` | 22 | Quality gates, change safety, trust |
157
163
  | `plan` | 9 | Orient + dev utilities — context/compose/policy/recipes/generate/apply/locate/commit/scaffold |
158
164
  | `transmute` | 3 | **FLAGSHIP** spaghetti→certified pipeline — auto/cherry/finalize |
159
165
  | `loop` | 4 | LLM iteration loops — iterate/resume/evolve/evolve_step |
@@ -174,11 +180,12 @@ Full tool reference: [docs/MCP_TOOLS.md](docs/MCP_TOOLS.md) | First call: `welco
174
180
 
175
181
  | Metric | Value |
176
182
  |--------|-------|
177
- | MCP tools | **10 tools · 66 actions** |
178
- | CLI verbs | **74** |
179
- | Source files | **211** (~40,195 LOC) |
180
- | Tests | **1,423 passing** across **97 test files** |
181
- | Lean4 formal proofs | **872 theorems** across 30 files (mathematically verified core logic — IP-protected formal verification moat) |
183
+
184
+ | MCP tools | **10 tools · 79 actions** |
185
+ | CLI verbs | **83** |
186
+ | Source files | **222** (~43K LOC) |
187
+ | Tests | **1476 passing** across **105 test files** |
188
+ | Lean4 formal proofs | not yet active |
182
189
  | Monadic tiers | **5** (a0 → a4, strict upward-only composition) |
183
190
  | Languages | Python, JS/TS, Swift, Kotlin, Go, Rust |
184
191
  | Infrastructure cost | **$5/mo** |
@@ -195,7 +202,7 @@ Forge eats its own cooking. Every CI run scores itself.
195
202
  |------|-------|-------------|
196
203
  | **Free** | $0 | OSS, 25 calls/day, read-only tools |
197
204
  | **One-Time Refactor** | ~~$149~~ **$99** | We run `auto` on your repo -> PR targeting 100/100. One revision included. |
198
- | **Starter** | $79/mo | All 10 tools (66 actions), 5k calls/mo, signed receipts, custom recipes |
205
+ | **Starter** | $79/mo | All 10 tools (76 actions), 5k calls/mo, signed receipts, custom recipes |
199
206
  | **Pro** | $249/mo | + notarization, compliance attestations, cross-repo telemetry |
200
207
  | **Founding Member** | $999/yr | Everything. Forever. First 25 only. |
201
208
  | **Enterprise** | Custom | BSL commercial license, SSO, self-host, SLA |
@@ -20,8 +20,8 @@ report on it:**
20
20
 
21
21
  | MCP tool | Use this when |
22
22
  |---|---|
23
- | **`auto`** | Use this when: you want forge to absorb any source repo into a tier-disciplined output package in one call (scout → cherry → assimilate → wire → certify). |
24
- | **`cherry`** | Use this when: you want a cherry-pick manifest of symbols from a scouted repo before assimilating — surgical control over what gets imported. |
23
+ | **`auto`** | Use this when: you want forge to absorb any source repo into a tier-disciplined output package in one call (recon → cherry → wire → certify). |
24
+ | **`cherry`** | Use this when: you want a cherry-pick manifest of symbols from a recon'd repo before applying — surgical control over what gets imported. |
25
25
  | **`finalize`** | Use this when: you have a cherry-pick manifest and want to materialize it into a tier-organized output package, then wire and certify. |
26
26
  | **`iterate`** *(CLI only today; MCP in Round 3)* | Use this when: you have an intent string and want forge to drive an LLM loop until certify >= target_score. The MCP exposure is being refactored so the **calling agent drives its own LLM** — forge supplies analytical certainty between turns instead of holding an LLM client internally. Use `forge iterate` from the CLI today. |
27
27
  | **`evolve`** *(CLI only today; MCP in Round 3)* | Use this when: you want recursive iterate that treats prior output as seed catalog. Same Round-3 refactor as `iterate`. Use `forge evolve` from the CLI today. |
@@ -35,7 +35,7 @@ report on it:**
35
35
  - `on_conflict` — `rename` (default) | `first` | `last` | `fail`
36
36
 
37
37
  `cherry(target, *, names=None, pick_all=False, only_tier=None)`
38
- - `target` — repo that was previously scouted
38
+ - `target` — repo that was previously recon'd
39
39
  - `names` — explicit list of qualnames to cherry-pick; omit for `pick_all`
40
40
  - `pick_all=True` — cherry-pick every scouted symbol
41
41
  - `only_tier` — restrict to one tier (e.g. `"a1_at_functions"`)
@@ -332,6 +332,12 @@ agent tool-selection can route by trigger phrase. Quick reference:
332
332
  | You want to recall what prior agents learned about this repo | `wisdom recall` (or read `prior_wisdom` from `recon`) |
333
333
  | You want to record a lesson for future agents | `wisdom record` |
334
334
  | You're emitting or verifying the canonical tool/recipe surface | `surface emit` / `surface check` / `surface diff` |
335
+ | You want to find a1 functions not yet wired to MCP or CLI | `surface_gaps` — `explore(action='surface_gaps')` or `audit(action='surface_gaps')` |
336
+ | You want to auto-generate MCP handler + CLI stub + test for an unwired function | `wire_stubs` — `audit(action='wire_stubs')` |
337
+ | You want to find GitHub repos suitable as harvest targets | `capability_scout` — `explore(action='capability_scout')` |
338
+ | You want to identify symbols defined but never referenced | `dead_code` — `explore(action='dead_code')` or `audit(action='dead_code')` |
339
+ | You want Maintainability Index grades per module (A/B/C/D) | `maintainability` — `explore(action='maintainability')` or `audit(action='maintainability')` |
340
+ | You want to convert low-trust harvest candidates into synthesis plans | `concept_bridge` — `explore(action='concept_bridge')` or `audit(action='concept_bridge')` |
335
341
 
336
342
  ---
337
343
 
@@ -385,6 +391,12 @@ in a loop:
385
391
  | **`call_graph`** | callers / callees up to `max_depth` hops (BFS, AST-based) | Before mutating a target symbol; closes Forge's call-graph gap vs Code Pathfinder / Moderne. |
386
392
  | **`call_graph_summary`** (`explore(action='call_graph_summary')`) | whole-package call-graph portfolio: `orphans` (unreachable symbols), `hotspots` ranked by fan-in, `max_depth`; schema `atomadic-forge.call_graph_summary/v1` | When you need a portfolio view of the entire package's call topology — which symbols are islands, which are load-bearing. CLI: `forge call-graph-summary --project <root> [--package NAME] [--top-n N] [--json]`. |
387
393
  | **`churn`** (`explore(action='churn')`) | file-level git commit frequency: `hotspot_files`, `stable_files`, `avg_commits`, `median_commits`, `date_range`; schema `atomadic-forge.git_churn/v1` | When you want to know which files change most often (high review priority) and which are stable (safe to refactor). CLI: `forge churn --project <root> [--since '6 months ago'] [--top-n N] [--all-files] [--json]`. |
394
+ | **`surface_gaps`** (`explore(action='surface_gaps')` or `audit(action='surface_gaps')`) | list of a1 entry points with no MCP coverage, no CLI coverage, or both; schema `atomadic-forge.surface_gaps/v1` | Before a release cycle — find functions that are live but inaccessible through agent or CLI surfaces. Feeds directly into `wire_stubs`. CLI: `forge surface-gaps [--project <root>] [--json]`. |
395
+ | **`wire_stubs`** (`audit(action='wire_stubs')`) | ready-to-paste MCP handler block, CLI stub entry, and pytest skeleton for the named function; schema `atomadic-forge.wire_stubs/v1` | When `surface_gaps` reveals an unwired a1 function and you want the scaffolding generated rather than hand-authored. CLI: `forge wire-stubs <module> <function> [--apply] [--json]`. |
396
+ | **`capability_scout`** (`explore(action='capability_scout')`) | ranked GitHub repositories suitable as `forge harvest` candidates, enriched with star count, last-push date, and primary language; schema `atomadic-forge.capability_scout/v1` | When you need harvest target repos for a capability gap and don't have candidates yet. CLI: `forge capability-scout --queries "q1,q2" [--top-n N] [--json]`. |
397
+ | **`dead_code`** (`explore(action='dead_code')` or `audit(action='dead_code')`) | symbols defined but never referenced, grouped by tier with confidence scores; schema `atomadic-forge.dead_code/v1` | When `certify` is green but you suspect the codebase has accumulated unreachable symbols. CLI: `forge dead-code [--project <root>] [--min-confidence N] [--json]`. |
398
+ | **`maintainability`** (`explore(action='maintainability')` or `audit(action='maintainability')`) | per-module radon MI scores with letter grades (A/B/C/D), ranked lowest to highest; schema `atomadic-forge.maintainability/v1` | When `smell_scan` flags complexity issues and you want a module-level MI ranking to prioritize refactoring. CLI: `forge maintainability [--project <root>] [--min-grade B] [--json]`. |
399
+ | **`concept_bridge`** (`explore(action='concept_bridge')` or `audit(action='concept_bridge')`) | actionable synthesis plans for each harvest candidate below TAU_TRUST (1820/1823), with recommended absorb sequence and preflight checklist; schema `atomadic-forge.concept_bridge/v1` | After `forge harvest` — convert low-trust candidates into ready-to-execute synthesis plans instead of discarding them. CLI: `forge concept-bridge --harvest-json path/to/harvest.json [--json]`. |
388
400
  | **`smell_scan`** | cyclomatic-complexity / long-function / duplicate-body findings + `smell_score` | When `certify` is green but maintainability is still suspect. |
389
401
  | **`wisdom_record` / `wisdom_query` / `wisdom_list` / `wisdom_recall`** (since v0.13.1) | append entry / relevance-rank / full DB read / top-N repo-scoped recall against `.atomadic-forge/wisdom.jsonl` | Agents inherit prior lessons (`wisdom_recall`); record new ones after accepted fixes (`wisdom_record`). The 4-tool MCP surface that lets Cognition wire `WISDOM_RECORD` as a cycle action verb. |
390
402
  | **`surface`** | emit / check / diff the canonical `surface.json` artifact | CI gate (`check`) and consumer bootstrap (`emit`); zero hand-maintained tool maps. |
@@ -1,6 +1,6 @@
1
1
  # Atomadic Forge — Command Reference
2
2
 
3
- All verbs available in the `forge` CLI as of 0.53.0.
3
+ All verbs available in the `forge` CLI as of 0.54.0.
4
4
 
5
5
  > For the structured per-verb reference (with options, examples, and
6
6
  > output samples), see [02-commands.md](02-commands.md). This page is
@@ -494,7 +494,7 @@ Prints the installed Forge version and exits 0. Hardened in v0.3.0
494
494
 
495
495
  ```bash
496
496
  $ forge --version
497
- atomadic-forge 0.53.0
497
+ atomadic-forge 0.54.0
498
498
  ```
499
499
 
500
500
  ### `.forge` sidecars — Lane D W8
@@ -808,6 +808,106 @@ forge churn --project <root> [--since '6 months ago'] [--top-n N] [--all-files]
808
808
 
809
809
  Schema: `atomadic-forge.git_churn/v1`. MCP: `explore(action='churn')`. a1 source: `a1_at_functions/git_churn.py` → `compute_git_churn()`.
810
810
 
811
+ ### `forge surface-gaps`
812
+
813
+ AST-walks the a1 tier and compares every public entry point against the
814
+ registered MCP action list and CLI verb list. Returns functions that have no
815
+ MCP coverage, no CLI coverage, or both — the precise gap list that feeds
816
+ `forge wire-stubs`.
817
+
818
+ ```bash
819
+ forge surface-gaps
820
+ forge surface-gaps --json
821
+ forge surface-gaps --project src/my_pkg --json | jq '.gaps[] | select(.missing_cli)'
822
+ ```
823
+
824
+ Schema: `atomadic-forge.surface_gaps/v1`. MCP: `explore(action='surface_gaps')`,
825
+ `audit(action='surface_gaps')`. a1 source: `a1_at_functions/surface_gaps.py` →
826
+ `find_surface_gaps()`.
827
+
828
+ ### `forge wire-stubs <module> <function>`
829
+
830
+ Generates the three scaffolding artifacts needed to wire any unwired a1 function
831
+ into the full Forge surface: an MCP handler block, a CLI stub entry, and a
832
+ pytest skeleton. Output is printed to stdout (pipe to `--apply` to insert in
833
+ place).
834
+
835
+ ```bash
836
+ forge wire-stubs a1_at_functions.my_module my_function
837
+ forge wire-stubs a1_at_functions.my_module my_function --apply
838
+ forge wire-stubs a1_at_functions.my_module my_function --json
839
+ ```
840
+
841
+ Schema: `atomadic-forge.wire_stubs/v1`. MCP: `audit(action='wire_stubs')`. a1
842
+ source: `a1_at_functions/wire_stubs.py` → `generate_wire_stubs()`.
843
+
844
+ ### `forge capability-scout --queries "q1,q2"`
845
+
846
+ Searches GitHub for repositories suitable as `forge harvest` candidates. Accepts
847
+ one or more comma-separated freeform query strings and returns a ranked list
848
+ enriched with star count, last-push date, primary language, and a
849
+ harvest-readiness score.
850
+
851
+ ```bash
852
+ forge capability-scout --queries "async task queue python"
853
+ forge capability-scout --queries "markdown parser,rst converter" --top-n 10 --json
854
+ ```
855
+
856
+ Schema: `atomadic-forge.capability_scout/v1`. MCP:
857
+ `explore(action='capability_scout')`. a1 source:
858
+ `a1_at_functions/capability_scout.py` → `search_capability_repos()`.
859
+
860
+ ### `forge dead-code`
861
+
862
+ AST-walks the package using vulture synthesis and returns every symbol that is
863
+ defined but never referenced, grouped by tier with per-symbol confidence scores.
864
+ High-confidence dead symbols are safe to remove; lower confidence items are
865
+ flagged for human review.
866
+
867
+ ```bash
868
+ forge dead-code
869
+ forge dead-code --project src/atomadic_forge --min-confidence 80 --json
870
+ ```
871
+
872
+ Schema: `atomadic-forge.dead_code/v1`. MCP: `explore(action='dead_code')`,
873
+ `audit(action='dead_code')`. a1 source: `a1_at_functions/dead_code.py` →
874
+ `detect_dead_symbols()`.
875
+
876
+ ### `forge maintainability`
877
+
878
+ Runs radon Maintainability Index analysis across every source module and returns
879
+ per-file MI scores with letter grades: A (MI ≥ 20), B (MI ≥ 10), C (MI ≥ 0),
880
+ D (MI < 0). Output is ranked from lowest to highest MI so the worst offenders
881
+ surface first.
882
+
883
+ ```bash
884
+ forge maintainability
885
+ forge maintainability --project src/atomadic_forge --json
886
+ forge maintainability --min-grade B --json | jq '.modules[] | select(.grade == "D")'
887
+ ```
888
+
889
+ Schema: `atomadic-forge.maintainability/v1`. MCP:
890
+ `explore(action='maintainability')`, `audit(action='maintainability')`. a1
891
+ source: `a1_at_functions/maintainability.py` → `compute_maintainability()`.
892
+
893
+ ### `forge concept-bridge --harvest-json path/to/harvest.json`
894
+
895
+ Reads a `harvest.json` produced by `forge harvest`, filters candidates whose
896
+ trust score falls below TAU_TRUST (1820/1823 ≈ 0.9984), and converts each into
897
+ an actionable synthesis plan. Each plan includes a recommended absorb sequence,
898
+ tier placement, and preflight checklist — bridging the gap between a raw harvest
899
+ scan and a ready-to-execute `forge auto` call.
900
+
901
+ ```bash
902
+ forge harvest ./target-repo --json > harvest.json
903
+ forge concept-bridge --harvest-json harvest.json
904
+ forge concept-bridge --harvest-json harvest.json --json > synthesis_plans.json
905
+ ```
906
+
907
+ Schema: `atomadic-forge.concept_bridge/v1`. MCP:
908
+ `explore(action='concept_bridge')`, `audit(action='concept_bridge')`. a1 source:
909
+ `a1_at_functions/concept_bridge.py` → `bridge_harvest_concepts()`.
910
+
811
911
  ## LLM provider matrix
812
912
 
813
913
  | Provider | Cost | Env var | Default model | Notes |
@@ -39,7 +39,7 @@ Forge certify scores out of **100** in two layers:
39
39
  JS / TS packages cap at **60/100** today: they earn the four
40
40
  structural axes, but the +25 runtime-import smoke and +30 behavioural
41
41
  pytest are Python-only. Wiring `npm test` / Vitest into the
42
- behavioural axis is on the post-v0.14 roadmap.
42
+ behavioural axis is on the post-v0.55.0 roadmap.
43
43
 
44
44
  ---
45
45
 
@@ -131,7 +131,7 @@ runtime dependency makes the package unusable.
131
131
 
132
132
  **Why JS/TS does not get this gate yet.** AAM §5.4 (Threats to
133
133
  Validity) explicitly flags polyglot runtime gating as a roadmap
134
- item (post-v0.14): the equivalent for JS would be an `npm test`
134
+ item (post-v0.55.0): the equivalent for JS would be an `npm test`
135
135
  invocation, which requires a Node toolchain we do not yet bundle.
136
136
 
137
137
  **Citation.** AAM §5.1 (Core Pipeline Pseudocode); AAM §5.4 (Threats
@@ -16,7 +16,7 @@ See `vscode-extension/README.md` for settings + usage.
16
16
 
17
17
  ## 2. MCP server (works with any MCP-aware assistant)
18
18
 
19
- Forge ships a fully-typed MCP server with **66 tools** spanning recon, wire, certify, plan, enforce, emergent, synergy, wisdom, lineage, hive coordination, and AAAA-Nexus trust gates. Any of these clients can attach:
19
+ Forge ships a fully-typed MCP server with **10 tools dispatching 79 actions** spanning recon, wire, certify, plan, enforce, emergent, synergy, wisdom, lineage, hive coordination, and AAAA-Nexus trust gates. Any of these clients can attach:
20
20
 
21
21
  - **Claude Code** (Anthropic CLI) — `claude mcp add atomadic-forge -- forge mcp serve --project ${workspaceFolder}`
22
22
  - **Cursor** — Settings → MCP Servers → add the same command above
@@ -80,4 +80,4 @@ All three were updated in v0.18.0 to use the current CLI argument shape (positio
80
80
 
81
81
  ## Agent instructions
82
82
 
83
- The full 66-tool catalog with use-case guidance lives in `skills/FORGE-AGENT-INSTRUCTIONS.md`. Point any AI assistant at it (or include it as a system prompt) for tier-aware behaviour out of the gate.
83
+ The full tool catalog with use-case guidance lives in `skills/FORGE-AGENT-INSTRUCTIONS.md`. Point any AI assistant at it (or include it as a system prompt) for tier-aware behaviour out of the gate.