atomadic-forge 0.3.2__tar.gz → 0.3.3__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 (269) hide show
  1. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/CHANGELOG.md +68 -0
  2. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/PKG-INFO +37 -6
  3. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/README.md +36 -5
  4. atomadic_forge-0.3.3/docs/MARKET_POSITIONING.md +136 -0
  5. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/README.md +17 -0
  6. atomadic_forge-0.3.3/docs/RELEASE_MESSAGING.md +230 -0
  7. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/pyproject.toml +1 -1
  8. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/__init__.py +1 -1
  9. atomadic_forge-0.3.3/src/atomadic_forge/a0_qk_constants/auth_constants.py +133 -0
  10. atomadic_forge-0.3.3/src/atomadic_forge/a1_at_functions/forge_auth.py +217 -0
  11. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/roi_calculator.py +5 -6
  12. atomadic_forge-0.3.3/src/atomadic_forge/a2_mo_composites/forge_auth_client.py +252 -0
  13. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/mcp_server.py +133 -1
  14. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a4_sy_orchestration/cli.py +7 -0
  15. atomadic_forge-0.3.3/src/atomadic_forge/a4_sy_orchestration/login_cmd.py +164 -0
  16. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/commandsmith.py +1 -0
  17. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge.egg-info/PKG-INFO +37 -6
  18. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge.egg-info/SOURCES.txt +8 -0
  19. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_compliance_checker.py +4 -3
  20. atomadic_forge-0.3.3/tests/test_forge_auth_a1.py +229 -0
  21. atomadic_forge-0.3.3/tests/test_forge_auth_a2.py +377 -0
  22. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_roi_calculator.py +4 -3
  23. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  24. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  25. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  26. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/actions/forge-action/README.md +0 -0
  27. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/actions/forge-action/action.yml +0 -0
  28. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/dependabot.yml +0 -0
  29. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/pull_request_template.md +0 -0
  30. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/workflows/ci.yml +0 -0
  31. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/workflows/forge-self-certify.yml +0 -0
  32. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/workflows/forge-studio-ci.yml +0 -0
  33. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/.github/workflows/release.yml +0 -0
  34. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/ARCHITECTURE.md +0 -0
  35. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/CONTRIBUTING.md +0 -0
  36. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/LICENSE +0 -0
  37. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/MANIFEST.in +0 -0
  38. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/SECURITY.md +0 -0
  39. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/assets/Atomadic-Forge-01.png +0 -0
  40. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/01-getting-started.md +0 -0
  41. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/02-commands.md +0 -0
  42. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/03-tutorial.md +0 -0
  43. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/04-llm-loops.md +0 -0
  44. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/05-faq.md +0 -0
  45. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/AGENTS_GUIDE.md +0 -0
  46. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/AIR_GAPPED.md +0 -0
  47. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/CI_CD.md +0 -0
  48. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/CODEX_WALKTHROUGH.md +0 -0
  49. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/COMMANDS.md +0 -0
  50. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/FIRST_10_MINUTES.md +0 -0
  51. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/FORMALIZATION.md +0 -0
  52. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/LANDSCAPE.md +0 -0
  53. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/MULTI_REPO.md +0 -0
  54. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/RECEIPT.md +0 -0
  55. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/RELEASE_CHECKLIST.md +0 -0
  56. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/ROADMAP.md +0 -0
  57. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/SHOWCASE.md +0 -0
  58. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/SIDECAR.md +0 -0
  59. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/STUDIO.md +0 -0
  60. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/WHY_NOW.md +0 -0
  61. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/INDEX.md +0 -0
  62. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/chat.md +0 -0
  63. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/commandsmith.md +0 -0
  64. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/config.md +0 -0
  65. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/demo.md +0 -0
  66. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/emergent-then-synergy.md +0 -0
  67. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/emergent.md +0 -0
  68. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/evolve-then-iterate.md +0 -0
  69. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/evolve.md +0 -0
  70. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/feature-then-emergent.md +0 -0
  71. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/iterate.md +0 -0
  72. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/synergy-then-emergent.md +0 -0
  73. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/commands/synergy.md +0 -0
  74. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/compliance/CMMC_AI_MAPPING.md +0 -0
  75. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/compliance/CS-1.md +0 -0
  76. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/compliance/EU_AI_ACT_ANNEX_IV.md +0 -0
  77. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/compliance/FDA_PCCP_MAPPING.md +0 -0
  78. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/compliance/SR_11-7_MAPPING.md +0 -0
  79. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/tutorials/01-quickstart.md +0 -0
  80. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/tutorials/02-your-first-package.md +0 -0
  81. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/tutorials/03-the-five-tier-law.md +0 -0
  82. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/tutorials/04-plug-in-llms.md +0 -0
  83. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/tutorials/05-multi-repo-absorb.md +0 -0
  84. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/docs/tutorials/06-javascript-quickstart.md +0 -0
  85. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/setup.cfg +0 -0
  86. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/__main__.py +0 -0
  87. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/__init__.py +0 -0
  88. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/agent_plan_schema.py +0 -0
  89. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/commandsmith_types.py +0 -0
  90. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/config_defaults.py +0 -0
  91. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/emergent_types.py +0 -0
  92. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/error_codes.py +0 -0
  93. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/forge_types.py +0 -0
  94. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/gen_language.py +0 -0
  95. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/lang_extensions.py +0 -0
  96. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/policy_schema.py +0 -0
  97. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/receipt_schema.py +0 -0
  98. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/roi_constants.py +0 -0
  99. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/semantic_types.py +0 -0
  100. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/sidecar_schema.py +0 -0
  101. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/synergy_types.py +0 -0
  102. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a0_qk_constants/tier_names.py +0 -0
  103. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/__init__.py +0 -0
  104. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/agent_context_pack.py +0 -0
  105. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/agent_memory.py +0 -0
  106. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/agent_plan_emitter.py +0 -0
  107. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/agent_summary.py +0 -0
  108. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/body_extractor.py +0 -0
  109. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/card_renderer.py +0 -0
  110. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/certify_checks.py +0 -0
  111. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/chat_context.py +0 -0
  112. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/cherry_pick.py +0 -0
  113. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/classify_tier.py +0 -0
  114. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/commandsmith_discover.py +0 -0
  115. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/commandsmith_render.py +0 -0
  116. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/compiler_feedback.py +0 -0
  117. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/compliance_checker.py +0 -0
  118. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/config_io.py +0 -0
  119. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/cs1_renderer.py +0 -0
  120. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/doc_synthesizer.py +0 -0
  121. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/emergent_compose.py +0 -0
  122. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/emergent_rank.py +0 -0
  123. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/emergent_signature_extract.py +0 -0
  124. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/emergent_synthesize.py +0 -0
  125. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/enforce_planner.py +0 -0
  126. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/error_hints.py +0 -0
  127. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/evolution_log.py +0 -0
  128. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/forge_feedback.py +0 -0
  129. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/generation_quality.py +0 -0
  130. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/import_repair.py +0 -0
  131. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/import_smoke.py +0 -0
  132. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/js_parser.py +0 -0
  133. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/lineage_chain.py +0 -0
  134. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/lineage_reader.py +0 -0
  135. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/llm_client.py +0 -0
  136. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/local_signer.py +0 -0
  137. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/lsp_protocol.py +0 -0
  138. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/manifest_diff.py +0 -0
  139. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/mcp_protocol.py +0 -0
  140. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/patch_scorer.py +0 -0
  141. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/plan_adapter.py +0 -0
  142. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/policy_loader.py +0 -0
  143. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/preflight_change.py +0 -0
  144. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/progress_reporter.py +0 -0
  145. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/provider_detect.py +0 -0
  146. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/provider_resolver.py +0 -0
  147. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/receipt_emitter.py +0 -0
  148. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/recipes.py +0 -0
  149. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/repo_explainer.py +0 -0
  150. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/rollback_planner.py +0 -0
  151. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/sbom_emitter.py +0 -0
  152. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/scaffold_js.py +0 -0
  153. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/scaffold_pyproject.py +0 -0
  154. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/scaffold_starter.py +0 -0
  155. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/scout_walk.py +0 -0
  156. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/sidecar_parser.py +0 -0
  157. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/sidecar_validator.py +0 -0
  158. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/stub_detector.py +0 -0
  159. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/synergy_detect.py +0 -0
  160. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/synergy_render.py +0 -0
  161. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/synergy_surface_extract.py +0 -0
  162. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/test_runner.py +0 -0
  163. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/test_selector.py +0 -0
  164. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/tier_init_rebuild.py +0 -0
  165. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/tool_composer.py +0 -0
  166. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/transcript_log.py +0 -0
  167. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a1_at_functions/wire_check.py +0 -0
  168. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a2_mo_composites/__init__.py +0 -0
  169. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a2_mo_composites/lineage_chain_store.py +0 -0
  170. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a2_mo_composites/manifest_store.py +0 -0
  171. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a2_mo_composites/plan_store.py +0 -0
  172. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a2_mo_composites/receipt_signer.py +0 -0
  173. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/__init__.py +0 -0
  174. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/commandsmith_feature.py +0 -0
  175. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/__init__.py +0 -0
  176. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a0_qk_constants/__init__.py +0 -0
  177. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a1_at_functions/__init__.py +0 -0
  178. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/conftest.py +0 -0
  179. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/test_mixed.py +0 -0
  180. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/demo_runner.py +0 -0
  181. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/emergent_feature.py +0 -0
  182. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/emergent_pipeline_integration.py +0 -0
  183. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/forge_enforce.py +0 -0
  184. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/forge_evolve.py +0 -0
  185. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/forge_loop.py +0 -0
  186. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/forge_pipeline.py +0 -0
  187. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/forge_plan_apply.py +0 -0
  188. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/lsp_server.py +0 -0
  189. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/setup_wizard.py +0 -0
  190. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a3_og_features/synergy_feature.py +0 -0
  191. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/a4_sy_orchestration/__init__.py +0 -0
  192. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/__init__.py +0 -0
  193. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/_registry.py +0 -0
  194. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/audit.py +0 -0
  195. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/chat.py +0 -0
  196. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/config_cmd.py +0 -0
  197. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/demo.py +0 -0
  198. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/emergent.py +0 -0
  199. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/emergent_then_synergy.py +0 -0
  200. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/evolve.py +0 -0
  201. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/evolve_then_iterate.py +0 -0
  202. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/feature_then_emergent.py +0 -0
  203. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/iterate.py +0 -0
  204. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/synergy.py +0 -0
  205. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge/commands/synergy_then_emergent.py +0 -0
  206. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge.egg-info/dependency_links.txt +0 -0
  207. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge.egg-info/entry_points.txt +0 -0
  208. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge.egg-info/requires.txt +0 -0
  209. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/src/atomadic_forge.egg-info/top_level.txt +0 -0
  210. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_aaaa_nexus_client.py +0 -0
  211. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_agent_plan.py +0 -0
  212. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_agent_summary.py +0 -0
  213. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_audit_verb.py +0 -0
  214. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_badge_worker.py +0 -0
  215. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_body_extractor_repairs.py +0 -0
  216. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_card_renderer.py +0 -0
  217. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_certify_operational_axis.py +0 -0
  218. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_chat.py +0 -0
  219. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_classify_tier.py +0 -0
  220. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_cli_smoke.py +0 -0
  221. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_codex_5_complete.py +0 -0
  222. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_codex_6_enforce_polyglot.py +0 -0
  223. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_commandsmith.py +0 -0
  224. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_compiler_feedback.py +0 -0
  225. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_config.py +0 -0
  226. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_copilots_copilot.py +0 -0
  227. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_cs1_renderer.py +0 -0
  228. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_demo.py +0 -0
  229. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_emergent_compose.py +0 -0
  230. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_emergent_signature_extract.py +0 -0
  231. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_error_codes.py +0 -0
  232. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_error_hints.py +0 -0
  233. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_evolve_js.py +0 -0
  234. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_forge_action.py +0 -0
  235. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_forge_enforce.py +0 -0
  236. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_generation_quality.py +0 -0
  237. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_ignore_and_docs.py +0 -0
  238. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_import_smoke.py +0 -0
  239. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_iterate_evolve.py +0 -0
  240. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_js_certify.py +0 -0
  241. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_js_parser.py +0 -0
  242. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_js_recon.py +0 -0
  243. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_js_wire.py +0 -0
  244. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_lineage_chain.py +0 -0
  245. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_local_signer.py +0 -0
  246. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_lsp_protocol.py +0 -0
  247. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_manifest_diff.py +0 -0
  248. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_mcp_protocol.py +0 -0
  249. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_ollama_client.py +0 -0
  250. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_pipeline.py +0 -0
  251. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_plan_apply.py +0 -0
  252. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_pre_audit_smoke.py +0 -0
  253. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_precommit_hooks.py +0 -0
  254. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_progress_reporter.py +0 -0
  255. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_receipt_emitter.py +0 -0
  256. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_receipt_schema.py +0 -0
  257. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_receipt_signer.py +0 -0
  258. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_sbom_emitter.py +0 -0
  259. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_scaffold.py +0 -0
  260. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_sidecar.py +0 -0
  261. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_sidecar_validate.py +0 -0
  262. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_stagnation.py +0 -0
  263. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_stub_detector.py +0 -0
  264. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_synergy.py +0 -0
  265. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_test_runner.py +0 -0
  266. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_tier_init_rebuild.py +0 -0
  267. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_vscode_extension_manifest.py +0 -0
  268. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_wire_certify.py +0 -0
  269. {atomadic_forge-0.3.2 → atomadic_forge-0.3.3}/tests/test_wire_suggest_repairs.py +0 -0
@@ -1,5 +1,73 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.3 — MCP gate reads credentials.toml + actionable error message
4
+
5
+ Hot-fix release. Closes the gap where `forge login` writes a key to
6
+ `~/.atomadic-forge/credentials.toml` but `forge mcp serve` rejects every
7
+ tool call with `Forge subscription required` because it only checks
8
+ `FORGE_API_KEY` env. After 0.3.3, `forge login` once is enough — every
9
+ MCP host (Claude Code / Cursor / Aider / Devin / VS Code Copilot) picks
10
+ the key up automatically with no shell-scoped env-var ritual.
11
+
12
+ ### Added
13
+
14
+ - **`read_api_key_from_credentials_file(path)`** — pure a1 helper that
15
+ parses `~/.atomadic-forge/credentials.toml` (the file `forge login`
16
+ writes) and returns the `[forge_auth].api_key` value, only when it
17
+ has the `fk_live_` prefix. Six new unit tests cover missing file,
18
+ wrong prefix, missing section, malformed TOML, string-path argument,
19
+ and the canonical login output.
20
+ - **MCP `_auth_check` falls back to credentials.toml** when
21
+ `FORGE_API_KEY` is not in env. Resolution order is documented in the
22
+ docstring: env first (CI / explicit override), then credentials file
23
+ (one-time `forge login`).
24
+ - **Actionable auth-error message** — when neither env nor credentials
25
+ file yields a key, the JSON-RPC error now reads
26
+ `"Forge subscription key not configured. Run forge login once …"`
27
+ (was: `"FORGE_API_KEY not set or wrong prefix"`).
28
+
29
+ ### Tests
30
+
31
+ 896 passing, 2 skipped (was 841/2 at 0.3.2 — +6 new tests for the
32
+ credentials.toml fallback). `forge wire src/atomadic_forge` PASS,
33
+ `forge certify .` holds at **100/100**.
34
+
35
+ ---
36
+
37
+ ## 0.3.2 — Cyberpunk Forge Studio UI + recovery fixes
38
+
39
+ 841 tests passing, 2 skipped. `forge wire src/atomadic_forge` PASS,
40
+ `forge certify .` = **100/100**.
41
+
42
+ ### Added
43
+
44
+ - **Forge Studio cyberpunk UI reskin** — Full visual overhaul from
45
+ slate/blue inline-styles to the Atomadic cyber design system.
46
+ Tailwind v4 (`@tailwindcss/vite`), `motion` (Framer Motion v12),
47
+ `lucide-react`. New primitives: `NeonButton`, `ActionableCard`,
48
+ `ScoreGauge`, `PipelineStepper`. Collapsible sidebar with `layoutId`
49
+ animated active indicator, mobile bottom bar.
50
+ - **ProjectScanDashboard** — animated stat cards, wire verdict banner,
51
+ motion tier bars, F-code violation list with severity colours.
52
+ - **All panels reskinned** — ArchitectureGraph, ComplexityHeatmap,
53
+ DebtCounter, AgentTopologyMap, ErrorBanner all use cyber palette.
54
+ - **`forge status` verb** — shows MCP connection status.
55
+
56
+ ### Fixed
57
+
58
+ - **Wire scan phantom violations** — `.pytest_tmp_run/` test fixtures
59
+ no longer pollute wire results; `path_parts_contain_ignored_dir()`
60
+ now used throughout.
61
+ - **`forge audit list` / `forge audit log`** — default to CWD
62
+ (`Path(".")`) instead of requiring explicit path argument.
63
+ - **DebtCounter** — `fCodeSeverity(v.f_code)` replaces broken
64
+ `SEVERITY_WEIGHTS[v.severity]` (was always returning weight 1).
65
+ - **WireViolation TypeScript interface** — aligned with actual JSON
66
+ schema (`f_code`, `from_tier`, `to_tier`).
67
+ - **ArchitectureGraph** — staircase node layout instead of single column.
68
+ - **`forge doctor`** — optional dep checks (complexipy, bandit, mypy).
69
+ - **`commandsmith smoke`** — `--include-core` flag tests all 23 core verbs.
70
+
3
71
  ## 0.3.1 — Golden Path lanes B/C/D/F/G ship
4
72
 
5
73
  783 tests passing, 2 skipped. `forge wire src/atomadic_forge` PASS,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atomadic-forge
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Atomadic Forge — absorb, enforce, emerge. Polyglot (Python + JavaScript/TypeScript) architecture guardian for AI-generated code.
5
5
  Author: Atomadic
6
6
  License-Expression: BUSL-1.1
@@ -76,6 +76,8 @@ For deeper paths once you have done the 10-minute path:
76
76
  - [docs/CI_CD.md](docs/CI_CD.md) — GitHub Actions, GitLab CI, pre-commit.
77
77
  - [docs/AIR_GAPPED.md](docs/AIR_GAPPED.md) — offline / on-prem install.
78
78
  - [docs/SHOWCASE.md](docs/SHOWCASE.md) — live trajectories of real runs.
79
+ - [docs/MARKET_POSITIONING.md](docs/MARKET_POSITIONING.md) — why Forge matters in the AI coding market.
80
+ - [docs/RELEASE_MESSAGING.md](docs/RELEASE_MESSAGING.md) — launch copy, HN post, outreach, and demo script.
79
81
 
80
82
  ### Polyglot recon (JS/TS in a single pass)
81
83
 
@@ -135,6 +137,11 @@ AI agents produce 30–50% of new code in many teams. The output is **fast and o
135
137
 
136
138
  Forge is **not a style checker**. It's an **architecture rebuilder**. It absorbs your code (including AI-generated code), re-tiers it, enforces the 5-tier monadic law, and emits a clean, verifiable structure with certification scores.
137
139
 
140
+ Release positioning: **AI coding agents create implementation velocity.
141
+ Forge adds architectural gravity.** See
142
+ [docs/MARKET_POSITIONING.md](docs/MARKET_POSITIONING.md) for the
143
+ market frame and source-backed claims.
144
+
138
145
  ## The 5-tier monadic law
139
146
 
140
147
  Every source file (Python `.py`, JavaScript `.js`/`.mjs`/`.cjs`/`.jsx`, or
@@ -177,7 +184,7 @@ Each tier is a layer of **verified building blocks**. Higher tiers never invent
177
184
 
178
185
  ```bash
179
186
  pip install atomadic-forge
180
- forge --version # atomadic-forge 0.3.1
187
+ forge --version # atomadic-forge 0.3.2
181
188
  forge doctor # environment check
182
189
  ```
183
190
 
@@ -190,7 +197,7 @@ generate).
190
197
  ```bash
191
198
  git clone https://github.com/atomadictech/atomadic-forge && cd atomadic-forge
192
199
  pip install -e ".[dev]"
193
- python -m pytest # 783 passing, 2 skipped
200
+ python -m pytest # 841 passing, 2 skipped
194
201
  ```
195
202
 
196
203
  ## AI Agent integration (MCP)
@@ -216,6 +223,30 @@ Forge ships a **Model Context Protocol server** — add it to Cursor, Claude Cod
216
223
  forge mcp serve --help # full tool + resource listing with examples
217
224
  ```
218
225
 
226
+ ### Subscription required for `forge mcp serve`
227
+
228
+ Every `tools/call` against the MCP server is gated behind a paid Forge
229
+ subscription. Get a key at [https://atomadic.tech/forge](https://atomadic.tech/forge),
230
+ then run:
231
+
232
+ ```bash
233
+ forge login # interactive: paste your fk_live_* key
234
+ export FORGE_API_KEY=fk_live_xxxxx # or set the env var directly
235
+ forge mcp serve --project .
236
+ ```
237
+
238
+ Read-only handshake methods (`initialize`, `ping`, `tools/list`,
239
+ `resources/list`) work without a key so MCP clients can complete the
240
+ connect handshake; `tools/call` and `resources/read` require an active
241
+ subscription. The verify endpoint at
242
+ `https://forge-auth.atomadic.tech/v1/forge/auth/verify` is contacted
243
+ on first call and the result is cached for 5 minutes; offline grace
244
+ keeps you running for 24 hours after the last successful verify.
245
+
246
+ Without a key (or with a revoked one), `tools/call` returns the
247
+ JSON-RPC error code `-32001` with `message="Forge subscription
248
+ required"` and an `upgrade_url` pointing back to the dashboard.
249
+
219
250
  ## Forge Studio — desktop GUI
220
251
 
221
252
  A native Tauri 2 + React desktop app that connects to your project via the MCP server:
@@ -410,7 +441,7 @@ Forge ships with named limits. No overpromise.
410
441
  | Product | What it is | Status |
411
442
  |---------|------------|--------|
412
443
  | **AAAA-Nexus** | Trust/safety/payments substrate for autonomous agents | Live at [atomadic.tech](https://atomadic.tech) |
413
- | **Atomadic Forge** | Absorb-and-emerge engine for developers (this repo) | **0.3.1** — on PyPI, 783 tests, MCP server, desktop GUI |
444
+ | **Atomadic Forge** | Absorb-and-emerge engine for developers (this repo) | **0.3.2** — on PyPI, 841 tests, 100/100, MCP server, desktop GUI |
414
445
  | **Atomadic Assistant** | Sovereign AI assistant with cognitive loop on Cloudflare | In development |
415
446
 
416
447
  ## License
@@ -438,7 +469,7 @@ Apache 2.0.
438
469
  **Forge itself is monadic.** Every source file belongs to one tier. The repo is a worked example:
439
470
 
440
471
  ```bash
441
- python -m pytest # 783 passing, 2 skipped
472
+ python -m pytest # 841 passing, 2 skipped
442
473
  forge doctor # Environment check
443
474
  forge wire src/atomadic_forge # Scan for violations (PASS)
444
475
  forge certify . --fail-under 100 # Score and gate the repo (100/100)
@@ -456,7 +487,7 @@ forge commandsmith smoke # Smoke-test all 36+ registered verbs
456
487
 
457
488
  **Production-ready for architecture enforcement. Working, honest, self-eating.**
458
489
 
459
- - ✓ **783 tests** passing (2 skipped)
490
+ - ✓ **841 tests** passing, 2 skipped
460
491
  - ✓ **100/100 certify** — forge scores itself on every CI run
461
492
  - ✓ **0 wire violations** — forge passes its own import-law scan
462
493
  - ✓ **On PyPI** — `pip install atomadic-forge`
@@ -44,6 +44,8 @@ For deeper paths once you have done the 10-minute path:
44
44
  - [docs/CI_CD.md](docs/CI_CD.md) — GitHub Actions, GitLab CI, pre-commit.
45
45
  - [docs/AIR_GAPPED.md](docs/AIR_GAPPED.md) — offline / on-prem install.
46
46
  - [docs/SHOWCASE.md](docs/SHOWCASE.md) — live trajectories of real runs.
47
+ - [docs/MARKET_POSITIONING.md](docs/MARKET_POSITIONING.md) — why Forge matters in the AI coding market.
48
+ - [docs/RELEASE_MESSAGING.md](docs/RELEASE_MESSAGING.md) — launch copy, HN post, outreach, and demo script.
47
49
 
48
50
  ### Polyglot recon (JS/TS in a single pass)
49
51
 
@@ -103,6 +105,11 @@ AI agents produce 30–50% of new code in many teams. The output is **fast and o
103
105
 
104
106
  Forge is **not a style checker**. It's an **architecture rebuilder**. It absorbs your code (including AI-generated code), re-tiers it, enforces the 5-tier monadic law, and emits a clean, verifiable structure with certification scores.
105
107
 
108
+ Release positioning: **AI coding agents create implementation velocity.
109
+ Forge adds architectural gravity.** See
110
+ [docs/MARKET_POSITIONING.md](docs/MARKET_POSITIONING.md) for the
111
+ market frame and source-backed claims.
112
+
106
113
  ## The 5-tier monadic law
107
114
 
108
115
  Every source file (Python `.py`, JavaScript `.js`/`.mjs`/`.cjs`/`.jsx`, or
@@ -145,7 +152,7 @@ Each tier is a layer of **verified building blocks**. Higher tiers never invent
145
152
 
146
153
  ```bash
147
154
  pip install atomadic-forge
148
- forge --version # atomadic-forge 0.3.1
155
+ forge --version # atomadic-forge 0.3.2
149
156
  forge doctor # environment check
150
157
  ```
151
158
 
@@ -158,7 +165,7 @@ generate).
158
165
  ```bash
159
166
  git clone https://github.com/atomadictech/atomadic-forge && cd atomadic-forge
160
167
  pip install -e ".[dev]"
161
- python -m pytest # 783 passing, 2 skipped
168
+ python -m pytest # 841 passing, 2 skipped
162
169
  ```
163
170
 
164
171
  ## AI Agent integration (MCP)
@@ -184,6 +191,30 @@ Forge ships a **Model Context Protocol server** — add it to Cursor, Claude Cod
184
191
  forge mcp serve --help # full tool + resource listing with examples
185
192
  ```
186
193
 
194
+ ### Subscription required for `forge mcp serve`
195
+
196
+ Every `tools/call` against the MCP server is gated behind a paid Forge
197
+ subscription. Get a key at [https://atomadic.tech/forge](https://atomadic.tech/forge),
198
+ then run:
199
+
200
+ ```bash
201
+ forge login # interactive: paste your fk_live_* key
202
+ export FORGE_API_KEY=fk_live_xxxxx # or set the env var directly
203
+ forge mcp serve --project .
204
+ ```
205
+
206
+ Read-only handshake methods (`initialize`, `ping`, `tools/list`,
207
+ `resources/list`) work without a key so MCP clients can complete the
208
+ connect handshake; `tools/call` and `resources/read` require an active
209
+ subscription. The verify endpoint at
210
+ `https://forge-auth.atomadic.tech/v1/forge/auth/verify` is contacted
211
+ on first call and the result is cached for 5 minutes; offline grace
212
+ keeps you running for 24 hours after the last successful verify.
213
+
214
+ Without a key (or with a revoked one), `tools/call` returns the
215
+ JSON-RPC error code `-32001` with `message="Forge subscription
216
+ required"` and an `upgrade_url` pointing back to the dashboard.
217
+
187
218
  ## Forge Studio — desktop GUI
188
219
 
189
220
  A native Tauri 2 + React desktop app that connects to your project via the MCP server:
@@ -378,7 +409,7 @@ Forge ships with named limits. No overpromise.
378
409
  | Product | What it is | Status |
379
410
  |---------|------------|--------|
380
411
  | **AAAA-Nexus** | Trust/safety/payments substrate for autonomous agents | Live at [atomadic.tech](https://atomadic.tech) |
381
- | **Atomadic Forge** | Absorb-and-emerge engine for developers (this repo) | **0.3.1** — on PyPI, 783 tests, MCP server, desktop GUI |
412
+ | **Atomadic Forge** | Absorb-and-emerge engine for developers (this repo) | **0.3.2** — on PyPI, 841 tests, 100/100, MCP server, desktop GUI |
382
413
  | **Atomadic Assistant** | Sovereign AI assistant with cognitive loop on Cloudflare | In development |
383
414
 
384
415
  ## License
@@ -406,7 +437,7 @@ Apache 2.0.
406
437
  **Forge itself is monadic.** Every source file belongs to one tier. The repo is a worked example:
407
438
 
408
439
  ```bash
409
- python -m pytest # 783 passing, 2 skipped
440
+ python -m pytest # 841 passing, 2 skipped
410
441
  forge doctor # Environment check
411
442
  forge wire src/atomadic_forge # Scan for violations (PASS)
412
443
  forge certify . --fail-under 100 # Score and gate the repo (100/100)
@@ -424,7 +455,7 @@ forge commandsmith smoke # Smoke-test all 36+ registered verbs
424
455
 
425
456
  **Production-ready for architecture enforcement. Working, honest, self-eating.**
426
457
 
427
- - ✓ **783 tests** passing (2 skipped)
458
+ - ✓ **841 tests** passing, 2 skipped
428
459
  - ✓ **100/100 certify** — forge scores itself on every CI run
429
460
  - ✓ **0 wire violations** — forge passes its own import-law scan
430
461
  - ✓ **On PyPI** — `pip install atomadic-forge`
@@ -0,0 +1,136 @@
1
+ # Atomadic Forge — Market Positioning
2
+
3
+ Forge is the architectural substrate for AI-generated code.
4
+
5
+ The release stance is simple: Forge does not compete with Copilot,
6
+ Cursor, Claude Code, Devin, or Lovable. Those tools make code faster.
7
+ Forge keeps that code from turning into architectural debt.
8
+
9
+ ## The Market Signal
10
+
11
+ AI coding is now large enough that architecture failure is no longer a
12
+ local nuisance. It is becoming a platform risk.
13
+
14
+ - MarketsandMarkets forecasts the AI code assistants market growing
15
+ from USD 8.14B in 2025 to USD 127.05B by 2032.
16
+ - Fortune Business Insights forecasts the AI code tools market reaching
17
+ USD 70.55B by 2034.
18
+ - Grand View Research estimates the AI code assistants market at USD
19
+ 8.5B in 2025, with continued growth through 2033.
20
+ - Recent empirical work on agentic refactoring finds AI refactors skew
21
+ toward local, consistency-oriented edits, while higher-level design
22
+ changes remain harder.
23
+
24
+ Use market-size claims carefully. They are directional proof of demand,
25
+ not the core technical proof. The core proof is that teams can now
26
+ generate code faster than they can review architecture.
27
+
28
+ ## The Gap
29
+
30
+ Current tools cluster into three groups:
31
+
32
+ | Category | What they do well | What they miss |
33
+ |---|---|---|
34
+ | AI coding agents | Generate and modify code quickly | No deterministic architectural law |
35
+ | Linters / analyzers | Detect local quality and style issues | Do not restructure the repo |
36
+ | Refactoring engines | Apply known transformations safely | Reactive; no opinionated target architecture |
37
+
38
+ Forge fills the missing layer: an architecture compiler that can absorb
39
+ messy or AI-generated code, enforce a 5-tier import law, and certify the
40
+ result.
41
+
42
+ ## Competitive Frame
43
+
44
+ Forge should be described as a complement, not an alternative.
45
+
46
+ - **Copilot/Cursor/Claude Code/Devin**: write code.
47
+ - **Semgrep/Ruff/ESLint/ArchUnit**: catch local violations.
48
+ - **OpenRewrite/Moderne**: modernize known patterns.
49
+ - **Forge**: rebuilds and certifies architectural shape.
50
+
51
+ The strongest one-line frame:
52
+
53
+ > AI coding agents create implementation velocity. Forge adds
54
+ > architectural gravity.
55
+
56
+ ## Unique Value Proposition
57
+
58
+ Forge is differentiated by the combination of:
59
+
60
+ - **Absorb** — classify Python, JavaScript, and TypeScript repos into
61
+ a 5-tier monadic layout.
62
+ - **Enforce** — block upward-import violations across languages.
63
+ - **Emerge** — surface composable capabilities and agent action cards.
64
+ - **Certify** — emit an honest 0-100 architecture score with receipts,
65
+ lineage, policy, SBOM, and CI-friendly gates.
66
+ - **Agent-native operation** — CLI, MCP tools, recipes, preflight,
67
+ score-patch, test selection, and context packs.
68
+
69
+ Individually, pieces of this exist elsewhere. The full loop does not.
70
+
71
+ ## Best Audience
72
+
73
+ Initial release should target builders already feeling the pain:
74
+
75
+ - AI-native product teams using Cursor, Claude Code, Codex, Devin, or
76
+ Aider daily.
77
+ - Founders building quickly with AI agents and worried about code rot.
78
+ - Platform / DevEx engineers who need CI gates for AI-heavy repos.
79
+ - Regulated teams that need receipts, lineage, auditability, and
80
+ explainable architecture constraints.
81
+ - Agent developers who need a "copilot's copilot" for repo context,
82
+ preflight, and deployment safety.
83
+
84
+ ## Messaging Pillars
85
+
86
+ 1. **AI made code cheap. Architecture is now the scarce resource.**
87
+ 2. **Forge is not a linter. It is an architecture substrate.**
88
+ 3. **The 5-tier law turns repo shape into something agents can obey.**
89
+ 4. **Receipts make every architectural decision auditable.**
90
+ 5. **MCP makes Forge usable by any capable coding agent.**
91
+
92
+ ## Claims To Make
93
+
94
+ Use these confidently:
95
+
96
+ - "Polyglot architecture guardian for Python, JavaScript, and
97
+ TypeScript."
98
+ - "Enforces upward-only imports across a 5-tier monadic layout."
99
+ - "Complements AI coding agents by governing the code they generate."
100
+ - "Designed for CI, MCP, and agentic development workflows."
101
+ - "Forge itself self-certifies at 100/100."
102
+
103
+ ## Claims To Avoid
104
+
105
+ Avoid these unless backed by a fresh benchmark in the repo:
106
+
107
+ - "Only tool in the world."
108
+ - "Prevents all technical debt."
109
+ - "Guarantees maintainability."
110
+ - "Beats Copilot/Cursor/Devin."
111
+ - "Production-ready for every enterprise codebase."
112
+
113
+ The honest claim is better: Forge makes architectural drift visible,
114
+ repairable, and enforceable at agent speed.
115
+
116
+ ## Release Position
117
+
118
+ Atomadic Forge v0.3.2 should launch as:
119
+
120
+ > The architecture compiler for AI-generated code.
121
+
122
+ Supporting line:
123
+
124
+ > Use any coding agent you want. Run Forge before the codebase forgets
125
+ > its shape.
126
+
127
+ ## Sources
128
+
129
+ - MarketsandMarkets, "AI Code Assistants Market worth $127.05 billion
130
+ by 2032": https://www.marketsandmarkets.com/PressReleases/ai-code-assistants.asp
131
+ - Fortune Business Insights, "AI Code Tools Market Size, Share, Trends,
132
+ 2034": https://www.fortunebusinessinsights.com/ai-code-tools-market-111725
133
+ - Grand View Research, "AI Code Assistants Market Size, Share &
134
+ Trends": https://www.grandviewresearch.com/industry-analysis/ai-code-assistants-market-report
135
+ - Li et al., "Agentic Refactoring: An Empirical Study of AI Coding
136
+ Agents": https://arxiv.org/abs/2511.04824
@@ -52,6 +52,22 @@ Shippability gates for local development, demos, and release candidates:
52
52
  - Local Ollama low-load and idle-machine profiles
53
53
  - Documentation and release-note review points
54
54
 
55
+ ### [Market Positioning](MARKET_POSITIONING.md)
56
+ Release narrative and gap analysis:
57
+ - AI coding market signal
58
+ - Competitive frame
59
+ - Claims to make and claims to avoid
60
+ - Source-backed positioning for launch copy
61
+
62
+ ### [Release Messaging](RELEASE_MESSAGING.md)
63
+ Copy blocks for launch:
64
+ - One-liners and product descriptions
65
+ - HN post draft
66
+ - X thread
67
+ - LinkedIn launch post
68
+ - Developer / journalist outreach templates
69
+ - Demo script
70
+
55
71
  ## ❓ FAQ & Troubleshooting
56
72
 
57
73
  **[FAQ](05-faq.md)** — Common questions:
@@ -85,6 +101,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md) for:
85
101
  - **GitHub:** https://github.com/atomadictech/atomadic-forge
86
102
  - **License:** [BSL-1.1](../LICENSE) (free for non-production, commercial license for production, converts to Apache 2.0 in 2030)
87
103
  - **Status:** Experimental, working, honest (0.2.2)
104
+ - **Launch positioning:** [Market Positioning](MARKET_POSITIONING.md) and [Release Messaging](RELEASE_MESSAGING.md)
88
105
 
89
106
  ## 📊 Versions
90
107
 
@@ -0,0 +1,230 @@
1
+ # Atomadic Forge — Release Messaging Kit
2
+
3
+ Use this file as the launch copy source of truth for v0.3.2.
4
+
5
+ ## One-Liners
6
+
7
+ - The architecture compiler for AI-generated code.
8
+ - Use any coding agent you want. Run Forge before the codebase forgets
9
+ its shape.
10
+ - Copilots write code. Forge keeps the repo architecturally honest.
11
+ - Absorb messy code. Enforce the 5-tier law. Emerge safer capabilities.
12
+ - AI made implementation cheap. Forge protects architecture.
13
+
14
+ ## Short Product Description
15
+
16
+ Atomadic Forge is a polyglot architecture guardian for Python,
17
+ JavaScript, and TypeScript repos. It classifies code into a strict
18
+ 5-tier monadic layout, detects upward-import violations, scores
19
+ architecture health, and gives coding agents MCP-native tools for
20
+ context, preflight, planning, test selection, and certification.
21
+
22
+ ## Longer Description
23
+
24
+ AI coding agents can generate code faster than teams can review its
25
+ architecture. Atomadic Forge is the missing governance layer: it absorbs
26
+ messy or AI-generated repos, enforces a deterministic 5-tier import law,
27
+ and emits receipts that make architectural shape auditable in CI and
28
+ agent workflows.
29
+
30
+ Forge is not a replacement for Cursor, Claude Code, Copilot, Devin, or
31
+ Codex. It is the complement they need: an architectural substrate that
32
+ keeps generated code from turning into unowned, unstructured drift.
33
+
34
+ ## HN Post Draft
35
+
36
+ Title:
37
+
38
+ ```
39
+ Show HN: Forge — an architecture compiler for AI-generated code
40
+ ```
41
+
42
+ Body:
43
+
44
+ ```
45
+ Hi HN,
46
+
47
+ I built Atomadic Forge because AI coding agents made a new problem very
48
+ obvious: we can generate implementation faster than we can preserve
49
+ architecture.
50
+
51
+ Forge is a CLI + MCP server that scans Python, JavaScript, and TypeScript
52
+ repos, classifies files into a 5-tier monadic layout, detects upward
53
+ imports, scores architectural conformance, and gives coding agents tools
54
+ like context packs, preflight checks, score prediction, selected tests,
55
+ and receipts.
56
+
57
+ The core idea is opinionated:
58
+
59
+ a0 constants -> a1 pure functions -> a2 stateful composites ->
60
+ a3 features -> a4 orchestration
61
+
62
+ Higher tiers may import lower tiers. Lower tiers never import upward.
63
+ That single law gives AI agents a shape they can obey and CI can enforce.
64
+
65
+ It is not meant to replace Copilot/Cursor/Claude Code/Devin. Those tools
66
+ write code. Forge is the architectural guardrail for what they write.
67
+
68
+ Quick start:
69
+
70
+ pip install atomadic-forge
71
+ forge recon .
72
+ forge wire src --fail-on-violations
73
+ forge certify . --fail-under 80
74
+ forge mcp serve --project .
75
+
76
+ Would love feedback from people using AI agents heavily: what
77
+ architecture failures are you seeing after the third or fourth generated
78
+ feature?
79
+ ```
80
+
81
+ ## X / Short-Form Thread
82
+
83
+ 1. AI coding agents made code cheap. Architecture became the bottleneck.
84
+
85
+ 2. Atomadic Forge is an architecture compiler for AI-generated code:
86
+ Python, JavaScript, and TypeScript in one 5-tier law.
87
+
88
+ 3. The law is simple:
89
+ `a0 constants -> a1 pure functions -> a2 state -> a3 features -> a4 orchestration`
90
+ Imports go upward only.
91
+
92
+ 4. Copilot/Cursor/Claude Code/Devin write code. Forge keeps the repo
93
+ from forgetting its shape.
94
+
95
+ 5. Run:
96
+ `pip install atomadic-forge`
97
+ `forge recon .`
98
+ `forge wire src --fail-on-violations`
99
+ `forge certify .`
100
+
101
+ 6. It also ships MCP tools for agents: context packs, preflight checks,
102
+ score-patch, selected tests, recipes, repo explanation, and receipts.
103
+
104
+ 7. Use any coding agent you want. Run Forge before generated code turns
105
+ into architectural drift.
106
+
107
+ ## LinkedIn / Launch Post
108
+
109
+ AI coding assistants are moving from novelty to daily infrastructure.
110
+ That changes the bottleneck.
111
+
112
+ The problem is no longer "can we generate code?" The problem is "can the
113
+ codebase keep a coherent architecture while code is generated at agent
114
+ speed?"
115
+
116
+ Atomadic Forge is built for that gap.
117
+
118
+ Forge is a polyglot architecture substrate for Python, JavaScript, and
119
+ TypeScript. It scans repos, classifies code into a 5-tier monadic layout,
120
+ detects upward-import violations, scores conformance, and exposes
121
+ agent-native MCP tools for planning, preflight, test selection, and
122
+ certification.
123
+
124
+ It is not a competitor to Copilot, Cursor, Claude Code, Devin, or Codex.
125
+ It is the layer that makes their output governable.
126
+
127
+ The core thesis:
128
+
129
+ AI made implementation cheap. Architecture is now the scarce resource.
130
+
131
+ Install:
132
+
133
+ ```bash
134
+ pip install atomadic-forge
135
+ forge recon .
136
+ forge wire src --fail-on-violations
137
+ forge certify . --fail-under 80
138
+ ```
139
+
140
+ ## Cold Email: Developer / Founder
141
+
142
+ Subject: Keeping AI-generated code from turning into architecture debt
143
+
144
+ Hi [first name],
145
+
146
+ I saw [specific hook from their work]. I am reaching out because you look
147
+ like exactly the kind of builder who is already using AI coding tools
148
+ hard enough to hit the next bottleneck: architecture drift.
149
+
150
+ Atomadic Forge is a CLI + MCP server that sits beside tools like Cursor,
151
+ Claude Code, Copilot, Devin, and Codex. Those tools generate code. Forge
152
+ scans the repo, enforces a 5-tier import law, scores architectural
153
+ conformance, and gives agents context/preflight/test-selection tools so
154
+ generated changes stay governable.
155
+
156
+ Quick shape:
157
+
158
+ ```bash
159
+ pip install atomadic-forge
160
+ forge recon .
161
+ forge wire src --fail-on-violations
162
+ forge certify . --fail-under 80
163
+ ```
164
+
165
+ The bet is simple: AI made implementation cheap. Architecture is now the
166
+ scarce resource.
167
+
168
+ Would you be open to trying it on one AI-heavy repo and telling me where
169
+ the architecture check feels useful or too opinionated?
170
+
171
+ Thomas
172
+
173
+ ## Cold Email: Journalist / Analyst
174
+
175
+ Subject: AI coding has a missing architecture layer
176
+
177
+ Hi [first name],
178
+
179
+ I read your piece on [specific hook]. One angle I think is under-covered:
180
+ AI coding agents are not just changing who writes code. They are changing
181
+ the rate at which architecture debt can accumulate.
182
+
183
+ Atomadic Forge is my attempt at the missing layer. It is an architecture
184
+ compiler for AI-generated code: a CLI + MCP server that classifies
185
+ Python/JS/TS repos into a strict 5-tier layout, detects upward-import
186
+ violations, scores conformance, and gives coding agents guardrails before
187
+ they modify the repo again.
188
+
189
+ The positioning is intentionally complementary:
190
+
191
+ Copilot/Cursor/Claude Code/Devin write code. Forge keeps the repo
192
+ architecturally honest.
193
+
194
+ If useful, I can send a short demo showing an AI-generated repo being
195
+ recon'd, wired, scored, and turned into an agent-readable action plan.
196
+
197
+ Thomas
198
+
199
+ ## Demo Script
200
+
201
+ 1. Start with the problem:
202
+ "AI agents can now generate code faster than humans can preserve
203
+ architecture."
204
+
205
+ 2. Show a repo:
206
+ `forge recon .`
207
+
208
+ 3. Show architecture law:
209
+ `forge wire src --fail-on-violations --suggest-repairs`
210
+
211
+ 4. Show score:
212
+ `forge certify . --fail-under 80`
213
+
214
+ 5. Show agent-native layer:
215
+ `forge mcp serve --project .`
216
+
217
+ 6. Show why this is different:
218
+ "This is not autocomplete. It is an architecture substrate for
219
+ autocomplete-heavy teams."
220
+
221
+ ## Launch Checklist
222
+
223
+ - PyPI page install works: `pip install atomadic-forge`.
224
+ - README first 10 minutes path works from a clean machine.
225
+ - `forge --help`, `forge doctor`, `forge recon .`, `forge certify .`
226
+ all produce polished output.
227
+ - GitHub release notes link to `docs/MARKET_POSITIONING.md`.
228
+ - HN post avoids inflated claims and asks for specific feedback.
229
+ - Outreach copy frames Forge as a complement, not a Copilot rival.
230
+ - Demo video shows one concrete repo and one clear before/after.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "atomadic-forge"
7
- version = "0.3.2"
7
+ version = "0.3.3"
8
8
  description = "Atomadic Forge — absorb, enforce, emerge. Polyglot (Python + JavaScript/TypeScript) architecture guardian for AI-generated code."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -9,4 +9,4 @@ Public version surface only — every symbol lives in its tier package and
9
9
  is re-exported lazily by the CLI.
10
10
  """
11
11
 
12
- __version__ = "0.3.2"
12
+ __version__ = "0.3.3"