agentrules 3.4.1__tar.gz → 3.4.2__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 (219) hide show
  1. {agentrules-3.4.1/src/agentrules.egg-info → agentrules-3.4.2}/PKG-INFO +23 -9
  2. {agentrules-3.4.1 → agentrules-3.4.2}/README.md +22 -8
  3. {agentrules-3.4.1 → agentrules-3.4.2}/pyproject.toml +1 -1
  4. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/formatters/clean_agentrules.py +65 -8
  5. {agentrules-3.4.1 → agentrules-3.4.2/src/agentrules.egg-info}/PKG-INFO +23 -9
  6. {agentrules-3.4.1 → agentrules-3.4.2}/LICENSE +0 -0
  7. {agentrules-3.4.1 → agentrules-3.4.2}/setup.cfg +0 -0
  8. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/__init__.py +0 -0
  9. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/__main__.py +0 -0
  10. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/__init__.py +0 -0
  11. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/app.py +0 -0
  12. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/bootstrap.py +0 -0
  13. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/__init__.py +0 -0
  14. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/analyze.py +0 -0
  15. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/configure.py +0 -0
  16. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/execplan.py +0 -0
  17. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/execplan_registry.py +0 -0
  18. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/keys.py +0 -0
  19. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/scaffold.py +0 -0
  20. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/snapshot.py +0 -0
  21. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/commands/tree.py +0 -0
  22. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/context.py +0 -0
  23. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/services/__init__.py +0 -0
  24. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/services/codex_runtime.py +0 -0
  25. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/services/configuration.py +0 -0
  26. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/services/output_validation.py +0 -0
  27. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/services/pipeline_runner.py +0 -0
  28. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/services/tree_preview.py +0 -0
  29. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/__init__.py +0 -0
  30. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/analysis_view.py +0 -0
  31. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/event_sink.py +0 -0
  32. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/main_menu.py +0 -0
  33. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/__init__.py +0 -0
  34. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/codex.py +0 -0
  35. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/exclusions/__init__.py +0 -0
  36. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/exclusions/editor.py +0 -0
  37. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/exclusions/preview.py +0 -0
  38. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/exclusions/summary.py +0 -0
  39. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/logging.py +0 -0
  40. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/menu.py +0 -0
  41. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/models/__init__.py +0 -0
  42. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/models/researcher.py +0 -0
  43. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/models/utils.py +0 -0
  44. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/outputs.py +0 -0
  45. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/settings/providers.py +0 -0
  46. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/cli/ui/styles.py +0 -0
  47. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/__init__.py +0 -0
  48. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/agents.py +0 -0
  49. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/exclusions.py +0 -0
  50. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/prompts/__init__.py +0 -0
  51. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/prompts/final_analysis_prompt.py +0 -0
  52. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/prompts/phase_1_prompts.py +0 -0
  53. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/prompts/phase_2_prompts.py +0 -0
  54. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/prompts/phase_3_prompts.py +0 -0
  55. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/prompts/phase_4_prompts.py +0 -0
  56. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/prompts/phase_5_prompts.py +0 -0
  57. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/config/tools.py +0 -0
  58. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/__init__.py +0 -0
  59. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agent_tools/tool_manager.py +0 -0
  60. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agent_tools/web_search/__init__.py +0 -0
  61. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agent_tools/web_search/tavily.py +0 -0
  62. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/__init__.py +0 -0
  63. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/__init__.py +0 -0
  64. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/architect.py +0 -0
  65. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/capabilities.py +0 -0
  66. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/client.py +0 -0
  67. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/prompting.py +0 -0
  68. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/request_builder.py +0 -0
  69. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/response_parser.py +0 -0
  70. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/anthropic/tooling.py +0 -0
  71. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/base.py +0 -0
  72. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/__init__.py +0 -0
  73. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/architect.py +0 -0
  74. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/client.py +0 -0
  75. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/errors.py +0 -0
  76. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/models.py +0 -0
  77. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/process.py +0 -0
  78. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/protocol.py +0 -0
  79. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/request_builder.py +0 -0
  80. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/codex/response_parser.py +0 -0
  81. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/__init__.py +0 -0
  82. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/architect.py +0 -0
  83. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/client.py +0 -0
  84. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/compat.py +0 -0
  85. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/config.py +0 -0
  86. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/prompting.py +0 -0
  87. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/request_builder.py +0 -0
  88. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/response_parser.py +0 -0
  89. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/deepseek/tooling.py +0 -0
  90. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/factory/__init__.py +0 -0
  91. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/factory/factory.py +0 -0
  92. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/__init__.py +0 -0
  93. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/architect.py +0 -0
  94. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/capabilities.py +0 -0
  95. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/client.py +0 -0
  96. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/errors.py +0 -0
  97. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/legacy.py +0 -0
  98. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/prompting.py +0 -0
  99. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/response_parser.py +0 -0
  100. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/gemini/tooling.py +0 -0
  101. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/openai/__init__.py +0 -0
  102. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/openai/architect.py +0 -0
  103. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/openai/client.py +0 -0
  104. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/openai/compat.py +0 -0
  105. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/openai/config.py +0 -0
  106. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/openai/request_builder.py +0 -0
  107. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/openai/response_parser.py +0 -0
  108. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/__init__.py +0 -0
  109. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/architect.py +0 -0
  110. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/client.py +0 -0
  111. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/config.py +0 -0
  112. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/prompting.py +0 -0
  113. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/request_builder.py +0 -0
  114. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/response_parser.py +0 -0
  115. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/agents/xai/tooling.py +0 -0
  116. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/__init__.py +0 -0
  117. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/events.py +0 -0
  118. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/final_analysis.py +0 -0
  119. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/phase_1.py +0 -0
  120. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/phase_2.py +0 -0
  121. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/phase_3.py +0 -0
  122. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/phase_4.py +0 -0
  123. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/analysis/phase_5.py +0 -0
  124. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/__init__.py +0 -0
  125. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/constants.py +0 -0
  126. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/environment.py +0 -0
  127. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/manager.py +0 -0
  128. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/model_presets.py +0 -0
  129. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/models.py +0 -0
  130. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/repository.py +0 -0
  131. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/serde.py +0 -0
  132. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/__init__.py +0 -0
  133. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/codex.py +0 -0
  134. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/exclusions.py +0 -0
  135. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/features.py +0 -0
  136. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/logging.py +0 -0
  137. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/outputs.py +0 -0
  138. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/phase_models.py +0 -0
  139. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/services/providers.py +0 -0
  140. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/configuration/utils.py +0 -0
  141. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/__init__.py +0 -0
  142. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/creator.py +0 -0
  143. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/identity.py +0 -0
  144. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/locks.py +0 -0
  145. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/milestones.py +0 -0
  146. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/paths.py +0 -0
  147. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/registry.py +0 -0
  148. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/templates/EXECPLAN_TEMPLATE.md +0 -0
  149. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/execplan/templates/MILESTONE_FILE_TEMPLATE.md +0 -0
  150. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/logging/__init__.py +0 -0
  151. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/logging/config.py +0 -0
  152. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/pipeline/__init__.py +0 -0
  153. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/pipeline/config.py +0 -0
  154. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/pipeline/factory.py +0 -0
  155. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/pipeline/orchestrator.py +0 -0
  156. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/pipeline/output.py +0 -0
  157. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/pipeline/snapshot.py +0 -0
  158. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/streaming/__init__.py +0 -0
  159. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/streaming/types.py +0 -0
  160. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/types/__init__.py +0 -0
  161. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/types/agent_config.py +0 -0
  162. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/types/models.py +0 -0
  163. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/types/tool_config.py +0 -0
  164. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/async_stream.py +0 -0
  165. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/constants.py +0 -0
  166. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/__init__.py +0 -0
  167. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/constants.py +0 -0
  168. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/discovery.py +0 -0
  169. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/metadata.py +0 -0
  170. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/models.py +0 -0
  171. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/__init__.py +0 -0
  172. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/clojure.py +0 -0
  173. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/dart.py +0 -0
  174. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/dotnet.py +0 -0
  175. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/elixir.py +0 -0
  176. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/generic.py +0 -0
  177. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/go.py +0 -0
  178. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/helpers.py +0 -0
  179. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/java.py +0 -0
  180. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/javascript.py +0 -0
  181. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/php.py +0 -0
  182. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/python.py +0 -0
  183. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/ruby.py +0 -0
  184. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/swift.py +0 -0
  185. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/parsers/toml_based.py +0 -0
  186. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/registry.py +0 -0
  187. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/dependency_scanner/scan.py +0 -0
  188. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/agent_scaffold.py +0 -0
  189. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/atomic_write.py +0 -0
  190. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/cursorignore.py +0 -0
  191. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/phases_output.py +0 -0
  192. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/snapshot_artifact.py +0 -0
  193. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/snapshot_policy.py +0 -0
  194. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/templates/MILESTONE_TEMPLATE.md +0 -0
  195. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_creation/templates/PLANS.md +0 -0
  196. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_system/__init__.py +0 -0
  197. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_system/file_retriever.py +0 -0
  198. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_system/gitignore.py +0 -0
  199. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/file_system/tree_generator.py +0 -0
  200. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/formatters/__init__.py +0 -0
  201. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/model_config_helper.py +0 -0
  202. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/offline.py +0 -0
  203. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/parsers/__init__.py +0 -0
  204. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/parsers/agent_parser.py +0 -0
  205. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/provider_capabilities.py +0 -0
  206. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/release_metadata.py +0 -0
  207. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/structured_outputs.py +0 -0
  208. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/system_prompt.py +0 -0
  209. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/token_estimator.py +0 -0
  210. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules/core/utils/token_packer.py +0 -0
  211. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules.egg-info/SOURCES.txt +0 -0
  212. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules.egg-info/dependency_links.txt +0 -0
  213. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules.egg-info/entry_points.txt +0 -0
  214. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules.egg-info/requires.txt +0 -0
  215. {agentrules-3.4.1 → agentrules-3.4.2}/src/agentrules.egg-info/top_level.txt +0 -0
  216. {agentrules-3.4.1 → agentrules-3.4.2}/tests/test_cli_services.py +0 -0
  217. {agentrules-3.4.1 → agentrules-3.4.2}/tests/test_env.py +0 -0
  218. {agentrules-3.4.1 → agentrules-3.4.2}/tests/test_openai_responses.py +0 -0
  219. {agentrules-3.4.1 → agentrules-3.4.2}/tests/test_smoke_discovery.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentrules
3
- Version: 3.4.1
3
+ Version: 3.4.2
4
4
  Summary: AGENTS.md/CLAUDE.md generator and ExecPlan harness for coding agents
5
5
  Author: trevor-nichols
6
6
  License-Expression: MIT
@@ -41,6 +41,7 @@ Dynamic: license-file
41
41
  <div align="center">
42
42
 
43
43
  [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)
44
+ [![PyPI](https://img.shields.io/pypi/v/agentrules.svg)](https://pypi.org/project/agentrules/)
44
45
  [![OpenAI](https://img.shields.io/badge/OpenAI-supported-blue.svg)](https://openai.com/)
45
46
  [![Codex Runtime](https://img.shields.io/badge/Codex%20app--server-supported-orange.svg)](https://github.com/openai/codex)
46
47
  [![Anthropic](https://img.shields.io/badge/Anthropic-supported-purple.svg)](https://www.anthropic.com/)
@@ -65,7 +66,7 @@ Version 3 rebrands the project from **CursorRules Architect** to **AgentRules Ar
65
66
 
66
67
  ## 🔥 v3 Highlights
67
68
 
68
- - ✨ **Rebrand & packaging** – ships with console-script and `python -m agentrules` entry points when installed from source.
69
+ - ✨ **Rebrand & packaging** – ships on PyPI with console-script and `python -m agentrules` entry points.
69
70
  - 🧭 **Typer CLI overhaul** – `agentrules` launches an interactive main menu with subcommands for `analyze`, `configure`, and `keys`.
70
71
  - 🗂️ **Persistent settings** – API keys, model presets, logging, and output preferences live in `~/.config/agentrules/config.toml` (override with `AGENTRULES_CONFIG_DIR`).
71
72
  - 🧠 **Expanded provider matrix** – the preset catalog spans Anthropic, OpenAI, Google, DeepSeek, xAI, and Codex runtime presets, with phase-by-phase model selection from the CLI or config file.
@@ -116,9 +117,12 @@ The pipeline captures metrics (elapsed time, agent counts) and hands them to the
116
117
  ### Install from PyPI
117
118
 
118
119
  ```bash
119
- pip install agentrules
120
+ pip install -U agentrules
120
121
  ```
121
122
 
123
+ - Package page: <https://pypi.org/project/agentrules/>
124
+ - Test index page: <https://test.pypi.org/project/agentrules/>
125
+
122
126
  ### Install from source
123
127
 
124
128
  ```bash
@@ -154,6 +158,12 @@ Need to install directly from GitHub instead of PyPI?
154
158
  pip install "git+https://github.com/trevor-nichols/agentrules-architect.git#egg=agentrules"
155
159
  ```
156
160
 
161
+ Need to validate against TestPyPI specifically?
162
+
163
+ ```bash
164
+ pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple agentrules==3.4.1
165
+ ```
166
+
157
167
  ## 🔐 Configure API Keys
158
168
 
159
169
  Run the interactive configurator to store credentials securely:
@@ -364,17 +374,21 @@ Toggle outputs with `agentrules configure --outputs` or via the config TOML.
364
374
  - Run targeted tests: `python tests/phase_3_test/run_test.py`
365
375
  - Deterministic smoke runs (CI/local without API calls): `agentrules analyze --offline tests/tests_input`
366
376
  - Full suite: `python -m unittest discover tests -v`
367
- - Releases are tag-driven: bump `[project].version` in `pyproject.toml`, commit, create matching `vX.Y.Z` tag, and push it.
377
+ - Releases are Release Please-driven: merges to `main` update/open a release PR, and merging that PR creates the `vX.Y.Z` tag + GitHub release automatically.
368
378
  - GitHub Actions now publishes package artifacts with Trusted Publishing (OIDC) via `.github/workflows/publish-pypi.yml` (no long-lived PyPI API token).
369
- - Run a safe preflight publish first from Actions with `workflow_dispatch` and `repository = testpypi`; publish to production PyPI on tag push or manual `repository = pypi`.
379
+ - Run a safe preflight publish first from Actions with `workflow_dispatch` and `repository = testpypi`; publish to production PyPI on release-tag push or manual `repository = pypi`.
370
380
  - Keep docs and presets in sync when adding providers (`config/agents.py`, `config/tools.py`, `core/agents/*`).
371
381
 
372
382
  ### Release Process (PyPI)
373
383
 
374
- 1. Update `[project].version` in `pyproject.toml`, then commit and push.
375
- 2. Run `.github/workflows/publish-pypi.yml` manually with `repository = testpypi` to validate package upload first.
376
- 3. Create and push matching tag `vX.Y.Z` to trigger Trusted Publishing to PyPI.
377
- 4. The same tag also triggers `.github/workflows/release.yml` for GitHub Release artifact/notes.
384
+ 1. Merge feature PRs into `main` using Conventional Commit-style titles/messages (for example `feat: ...`, `fix: ...`).
385
+ 2. `.github/workflows/release-please.yml` updates or opens a release PR with the version bump and changelog.
386
+ 3. (Optional, recommended) run `.github/workflows/publish-pypi.yml` manually with `repository = testpypi` from the release PR head commit.
387
+ 4. Merge the release PR. Release Please creates/pushes the matching `vX.Y.Z` tag and publishes a GitHub release.
388
+ 5. The tag push triggers `.github/workflows/publish-pypi.yml` to publish to production PyPI.
389
+ 6. One-time setup for new projects:
390
+ - Configure a repo secret `RELEASE_PLEASE_TOKEN` (PAT or GitHub App token) with permission to create/update PRs, tags, and releases. This ensures tag pushes from Release Please trigger downstream workflows.
391
+ - Configure Trusted Publishers on TestPyPI and PyPI for repository `trevor-nichols/agentrules-architect`, workflow `.github/workflows/publish-pypi.yml`, and environments `testpypi`/`pypi`.
378
392
 
379
393
  ## 🤝 Contributing
380
394
 
@@ -3,6 +3,7 @@
3
3
  <div align="center">
4
4
 
5
5
  [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)
6
+ [![PyPI](https://img.shields.io/pypi/v/agentrules.svg)](https://pypi.org/project/agentrules/)
6
7
  [![OpenAI](https://img.shields.io/badge/OpenAI-supported-blue.svg)](https://openai.com/)
7
8
  [![Codex Runtime](https://img.shields.io/badge/Codex%20app--server-supported-orange.svg)](https://github.com/openai/codex)
8
9
  [![Anthropic](https://img.shields.io/badge/Anthropic-supported-purple.svg)](https://www.anthropic.com/)
@@ -27,7 +28,7 @@ Version 3 rebrands the project from **CursorRules Architect** to **AgentRules Ar
27
28
 
28
29
  ## 🔥 v3 Highlights
29
30
 
30
- - ✨ **Rebrand & packaging** – ships with console-script and `python -m agentrules` entry points when installed from source.
31
+ - ✨ **Rebrand & packaging** – ships on PyPI with console-script and `python -m agentrules` entry points.
31
32
  - 🧭 **Typer CLI overhaul** – `agentrules` launches an interactive main menu with subcommands for `analyze`, `configure`, and `keys`.
32
33
  - 🗂️ **Persistent settings** – API keys, model presets, logging, and output preferences live in `~/.config/agentrules/config.toml` (override with `AGENTRULES_CONFIG_DIR`).
33
34
  - 🧠 **Expanded provider matrix** – the preset catalog spans Anthropic, OpenAI, Google, DeepSeek, xAI, and Codex runtime presets, with phase-by-phase model selection from the CLI or config file.
@@ -78,9 +79,12 @@ The pipeline captures metrics (elapsed time, agent counts) and hands them to the
78
79
  ### Install from PyPI
79
80
 
80
81
  ```bash
81
- pip install agentrules
82
+ pip install -U agentrules
82
83
  ```
83
84
 
85
+ - Package page: <https://pypi.org/project/agentrules/>
86
+ - Test index page: <https://test.pypi.org/project/agentrules/>
87
+
84
88
  ### Install from source
85
89
 
86
90
  ```bash
@@ -116,6 +120,12 @@ Need to install directly from GitHub instead of PyPI?
116
120
  pip install "git+https://github.com/trevor-nichols/agentrules-architect.git#egg=agentrules"
117
121
  ```
118
122
 
123
+ Need to validate against TestPyPI specifically?
124
+
125
+ ```bash
126
+ pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple agentrules==3.4.1
127
+ ```
128
+
119
129
  ## 🔐 Configure API Keys
120
130
 
121
131
  Run the interactive configurator to store credentials securely:
@@ -326,17 +336,21 @@ Toggle outputs with `agentrules configure --outputs` or via the config TOML.
326
336
  - Run targeted tests: `python tests/phase_3_test/run_test.py`
327
337
  - Deterministic smoke runs (CI/local without API calls): `agentrules analyze --offline tests/tests_input`
328
338
  - Full suite: `python -m unittest discover tests -v`
329
- - Releases are tag-driven: bump `[project].version` in `pyproject.toml`, commit, create matching `vX.Y.Z` tag, and push it.
339
+ - Releases are Release Please-driven: merges to `main` update/open a release PR, and merging that PR creates the `vX.Y.Z` tag + GitHub release automatically.
330
340
  - GitHub Actions now publishes package artifacts with Trusted Publishing (OIDC) via `.github/workflows/publish-pypi.yml` (no long-lived PyPI API token).
331
- - Run a safe preflight publish first from Actions with `workflow_dispatch` and `repository = testpypi`; publish to production PyPI on tag push or manual `repository = pypi`.
341
+ - Run a safe preflight publish first from Actions with `workflow_dispatch` and `repository = testpypi`; publish to production PyPI on release-tag push or manual `repository = pypi`.
332
342
  - Keep docs and presets in sync when adding providers (`config/agents.py`, `config/tools.py`, `core/agents/*`).
333
343
 
334
344
  ### Release Process (PyPI)
335
345
 
336
- 1. Update `[project].version` in `pyproject.toml`, then commit and push.
337
- 2. Run `.github/workflows/publish-pypi.yml` manually with `repository = testpypi` to validate package upload first.
338
- 3. Create and push matching tag `vX.Y.Z` to trigger Trusted Publishing to PyPI.
339
- 4. The same tag also triggers `.github/workflows/release.yml` for GitHub Release artifact/notes.
346
+ 1. Merge feature PRs into `main` using Conventional Commit-style titles/messages (for example `feat: ...`, `fix: ...`).
347
+ 2. `.github/workflows/release-please.yml` updates or opens a release PR with the version bump and changelog.
348
+ 3. (Optional, recommended) run `.github/workflows/publish-pypi.yml` manually with `repository = testpypi` from the release PR head commit.
349
+ 4. Merge the release PR. Release Please creates/pushes the matching `vX.Y.Z` tag and publishes a GitHub release.
350
+ 5. The tag push triggers `.github/workflows/publish-pypi.yml` to publish to production PyPI.
351
+ 6. One-time setup for new projects:
352
+ - Configure a repo secret `RELEASE_PLEASE_TOKEN` (PAT or GitHub App token) with permission to create/update PRs, tags, and releases. This ensures tag pushes from Release Please trigger downstream workflows.
353
+ - Configure Trusted Publishers on TestPyPI and PyPI for repository `trevor-nichols/agentrules-architect`, workflow `.github/workflows/publish-pypi.yml`, and environments `testpypi`/`pypi`.
340
354
 
341
355
  ## 🤝 Contributing
342
356
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agentrules"
7
- version = "3.4.1"
7
+ version = "3.4.2"
8
8
  description = "AGENTS.md/CLAUDE.md generator and ExecPlan harness for coding agents"
9
9
  readme = "README.md"
10
10
  authors = [{name = "trevor-nichols"}]
@@ -28,13 +28,46 @@ DEVELOPMENT_PRINCIPLES_HEADING_PATTERN = re.compile(
28
28
  MARKDOWN_HEADING_PATTERN = re.compile(r'^(?P<hashes>#{1,6})\s+\S')
29
29
  EXECPLANS_HEADING = "## ExecPlans"
30
30
  EXECPLANS_GUIDANCE_LINE = (
31
- "When writing complex features or significant refactors, "
32
- "use an ExecPlan (as described in .agent/PLANS.md) from design to implementation."
31
+ "- When writing complex features or refactors, use an ExecPlan "
32
+ "(as described in `.agent/PLANS.md`) from design to implementation."
33
+ )
34
+ EXECPLANS_MILESTONES_HEADING = "### Milestones"
35
+ EXECPLANS_MILESTONES_LINE = (
36
+ "- When the feature or refactor your writing is significantly complex, "
37
+ "disaggregate the ExecPlan into milestones "
38
+ "(as described in `.agent/templates/MILESTONE_TEMPLATE.md`)"
39
+ )
40
+ EXECPLANS_CLI_HEADING = "### Prefer CLI creation over manual file creation:"
41
+ EXECPLANS_CLI_LINES = (
42
+ "* ExecPlan:",
43
+ " * Create: `agentrules execplan new \"<title>\" --slug <short-slug> --ms <N>` "
44
+ "(Use `--ms <N>` for deterministic `MS###` sequence assignment).",
45
+ " * Archive: `agentrules execplan archive EP-YYYYMMDD-NNN`",
46
+ "* Milestones:",
47
+ " * Create: `agentrules execplan milestone new EP-YYYYMMDD-NNN \"<Milestone Title>\"`",
48
+ " * Archive: `agentrules execplan milestone archive EP-YYYYMMDD-NNN --ms <N>`",
49
+ )
50
+ EXECPLANS_GUIDANCE_BLOCK = (
51
+ EXECPLANS_HEADING,
52
+ EXECPLANS_GUIDANCE_LINE,
53
+ "",
54
+ EXECPLANS_MILESTONES_HEADING,
55
+ EXECPLANS_MILESTONES_LINE,
56
+ "",
57
+ EXECPLANS_CLI_HEADING,
58
+ *EXECPLANS_CLI_LINES,
59
+ )
60
+ EXECPLANS_REQUIRED_LINES = (
61
+ EXECPLANS_GUIDANCE_LINE,
62
+ EXECPLANS_MILESTONES_HEADING,
63
+ EXECPLANS_MILESTONES_LINE,
64
+ EXECPLANS_CLI_HEADING,
65
+ *EXECPLANS_CLI_LINES,
33
66
  )
34
67
 
35
68
 
36
69
  def _inject_execplans_guidance(content: str) -> tuple[str, bool, str]:
37
- if EXECPLANS_GUIDANCE_LINE in content:
70
+ if all(line in content for line in EXECPLANS_REQUIRED_LINES):
38
71
  return content, False, "ExecPlans guidance already present."
39
72
 
40
73
  lines = content.splitlines()
@@ -54,8 +87,7 @@ def _inject_execplans_guidance(content: str) -> tuple[str, bool, str]:
54
87
  [
55
88
  "# Development Principles",
56
89
  "",
57
- EXECPLANS_HEADING,
58
- EXECPLANS_GUIDANCE_LINE,
90
+ *EXECPLANS_GUIDANCE_BLOCK,
59
91
  ]
60
92
  )
61
93
  return "\n".join(lines) + "\n", True, "Added missing Development Principles section with ExecPlans guidance."
@@ -71,16 +103,41 @@ def _inject_execplans_guidance(content: str) -> tuple[str, bool, str]:
71
103
  break
72
104
 
73
105
  section_lines = lines[heading_index:section_end]
74
- for line in section_lines:
106
+ execplans_heading_index: int | None = None
107
+ execplans_heading_level = 0
108
+ for index, line in enumerate(section_lines):
75
109
  normalized = line.strip().lower().rstrip(":")
76
110
  if normalized == "## execplans" or normalized == "### execplans":
77
- return content, False, "ExecPlans heading already present under Development Principles."
111
+ execplans_heading_index = heading_index + index
112
+ heading_match = MARKDOWN_HEADING_PATTERN.match(line.strip())
113
+ if heading_match:
114
+ execplans_heading_level = len(heading_match.group("hashes"))
115
+ break
116
+
117
+ if execplans_heading_index is not None:
118
+ execplans_block_end = section_end
119
+ for index in range(execplans_heading_index + 1, section_end):
120
+ line = lines[index]
121
+ heading_match = MARKDOWN_HEADING_PATTERN.match(line.strip())
122
+ if not heading_match:
123
+ continue
124
+ if len(heading_match.group("hashes")) <= execplans_heading_level:
125
+ execplans_block_end = index
126
+ break
127
+
128
+ replacement_lines = list(EXECPLANS_GUIDANCE_BLOCK)
129
+ updated_lines = lines[:execplans_heading_index] + replacement_lines + lines[execplans_block_end:]
130
+ return (
131
+ "\n".join(updated_lines) + "\n",
132
+ True,
133
+ "Updated existing ExecPlans guidance under Development Principles.",
134
+ )
78
135
 
79
136
  insert_at = section_end
80
137
  while insert_at > heading_index and not lines[insert_at - 1].strip():
81
138
  insert_at -= 1
82
139
 
83
- insertion_lines = ["", EXECPLANS_HEADING, EXECPLANS_GUIDANCE_LINE, ""]
140
+ insertion_lines = ["", *EXECPLANS_GUIDANCE_BLOCK, ""]
84
141
  updated_lines = lines[:insert_at] + insertion_lines + lines[section_end:]
85
142
  return "\n".join(updated_lines) + "\n", True, "Added ExecPlans guidance under Development Principles."
86
143
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentrules
3
- Version: 3.4.1
3
+ Version: 3.4.2
4
4
  Summary: AGENTS.md/CLAUDE.md generator and ExecPlan harness for coding agents
5
5
  Author: trevor-nichols
6
6
  License-Expression: MIT
@@ -41,6 +41,7 @@ Dynamic: license-file
41
41
  <div align="center">
42
42
 
43
43
  [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)
44
+ [![PyPI](https://img.shields.io/pypi/v/agentrules.svg)](https://pypi.org/project/agentrules/)
44
45
  [![OpenAI](https://img.shields.io/badge/OpenAI-supported-blue.svg)](https://openai.com/)
45
46
  [![Codex Runtime](https://img.shields.io/badge/Codex%20app--server-supported-orange.svg)](https://github.com/openai/codex)
46
47
  [![Anthropic](https://img.shields.io/badge/Anthropic-supported-purple.svg)](https://www.anthropic.com/)
@@ -65,7 +66,7 @@ Version 3 rebrands the project from **CursorRules Architect** to **AgentRules Ar
65
66
 
66
67
  ## 🔥 v3 Highlights
67
68
 
68
- - ✨ **Rebrand & packaging** – ships with console-script and `python -m agentrules` entry points when installed from source.
69
+ - ✨ **Rebrand & packaging** – ships on PyPI with console-script and `python -m agentrules` entry points.
69
70
  - 🧭 **Typer CLI overhaul** – `agentrules` launches an interactive main menu with subcommands for `analyze`, `configure`, and `keys`.
70
71
  - 🗂️ **Persistent settings** – API keys, model presets, logging, and output preferences live in `~/.config/agentrules/config.toml` (override with `AGENTRULES_CONFIG_DIR`).
71
72
  - 🧠 **Expanded provider matrix** – the preset catalog spans Anthropic, OpenAI, Google, DeepSeek, xAI, and Codex runtime presets, with phase-by-phase model selection from the CLI or config file.
@@ -116,9 +117,12 @@ The pipeline captures metrics (elapsed time, agent counts) and hands them to the
116
117
  ### Install from PyPI
117
118
 
118
119
  ```bash
119
- pip install agentrules
120
+ pip install -U agentrules
120
121
  ```
121
122
 
123
+ - Package page: <https://pypi.org/project/agentrules/>
124
+ - Test index page: <https://test.pypi.org/project/agentrules/>
125
+
122
126
  ### Install from source
123
127
 
124
128
  ```bash
@@ -154,6 +158,12 @@ Need to install directly from GitHub instead of PyPI?
154
158
  pip install "git+https://github.com/trevor-nichols/agentrules-architect.git#egg=agentrules"
155
159
  ```
156
160
 
161
+ Need to validate against TestPyPI specifically?
162
+
163
+ ```bash
164
+ pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple agentrules==3.4.1
165
+ ```
166
+
157
167
  ## 🔐 Configure API Keys
158
168
 
159
169
  Run the interactive configurator to store credentials securely:
@@ -364,17 +374,21 @@ Toggle outputs with `agentrules configure --outputs` or via the config TOML.
364
374
  - Run targeted tests: `python tests/phase_3_test/run_test.py`
365
375
  - Deterministic smoke runs (CI/local without API calls): `agentrules analyze --offline tests/tests_input`
366
376
  - Full suite: `python -m unittest discover tests -v`
367
- - Releases are tag-driven: bump `[project].version` in `pyproject.toml`, commit, create matching `vX.Y.Z` tag, and push it.
377
+ - Releases are Release Please-driven: merges to `main` update/open a release PR, and merging that PR creates the `vX.Y.Z` tag + GitHub release automatically.
368
378
  - GitHub Actions now publishes package artifacts with Trusted Publishing (OIDC) via `.github/workflows/publish-pypi.yml` (no long-lived PyPI API token).
369
- - Run a safe preflight publish first from Actions with `workflow_dispatch` and `repository = testpypi`; publish to production PyPI on tag push or manual `repository = pypi`.
379
+ - Run a safe preflight publish first from Actions with `workflow_dispatch` and `repository = testpypi`; publish to production PyPI on release-tag push or manual `repository = pypi`.
370
380
  - Keep docs and presets in sync when adding providers (`config/agents.py`, `config/tools.py`, `core/agents/*`).
371
381
 
372
382
  ### Release Process (PyPI)
373
383
 
374
- 1. Update `[project].version` in `pyproject.toml`, then commit and push.
375
- 2. Run `.github/workflows/publish-pypi.yml` manually with `repository = testpypi` to validate package upload first.
376
- 3. Create and push matching tag `vX.Y.Z` to trigger Trusted Publishing to PyPI.
377
- 4. The same tag also triggers `.github/workflows/release.yml` for GitHub Release artifact/notes.
384
+ 1. Merge feature PRs into `main` using Conventional Commit-style titles/messages (for example `feat: ...`, `fix: ...`).
385
+ 2. `.github/workflows/release-please.yml` updates or opens a release PR with the version bump and changelog.
386
+ 3. (Optional, recommended) run `.github/workflows/publish-pypi.yml` manually with `repository = testpypi` from the release PR head commit.
387
+ 4. Merge the release PR. Release Please creates/pushes the matching `vX.Y.Z` tag and publishes a GitHub release.
388
+ 5. The tag push triggers `.github/workflows/publish-pypi.yml` to publish to production PyPI.
389
+ 6. One-time setup for new projects:
390
+ - Configure a repo secret `RELEASE_PLEASE_TOKEN` (PAT or GitHub App token) with permission to create/update PRs, tags, and releases. This ensures tag pushes from Release Please trigger downstream workflows.
391
+ - Configure Trusted Publishers on TestPyPI and PyPI for repository `trevor-nichols/agentrules-architect`, workflow `.github/workflows/publish-pypi.yml`, and environments `testpypi`/`pypi`.
378
392
 
379
393
  ## 🤝 Contributing
380
394
 
File without changes
File without changes