instant-python 0.24.2__tar.gz → 0.26.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. instant_python-0.26.0/.agents/agents/convention_keeper.md +50 -0
  2. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/agents/judge.md +4 -4
  3. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/agents/tdd_craftsman.md +2 -2
  4. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/mutation_testing/SKILL.md +6 -6
  5. instant_python-0.26.0/.github/actions/setup_environment/action.yml +26 -0
  6. {instant_python-0.24.2 → instant_python-0.26.0}/.github/workflows/ci.yml +18 -18
  7. {instant_python-0.24.2 → instant_python-0.26.0}/.github/workflows/pages.yml +4 -4
  8. {instant_python-0.24.2 → instant_python-0.26.0}/.github/workflows/release.yml +59 -4
  9. {instant_python-0.24.2 → instant_python-0.26.0}/.pre-commit-config.yaml +4 -2
  10. {instant_python-0.24.2 → instant_python-0.26.0}/AGENTS.md +11 -11
  11. {instant_python-0.24.2 → instant_python-0.26.0}/CHANGELOG.md +92 -0
  12. {instant_python-0.24.2 → instant_python-0.26.0}/PKG-INFO +16 -2
  13. {instant_python-0.24.2 → instant_python-0.26.0}/README.md +14 -0
  14. instant_python-0.26.0/Taskfile.yml +183 -0
  15. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/development/contributing.md +23 -23
  16. instant_python-0.26.0/docs/documentation/getting_started/installation.md +83 -0
  17. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/home/index.md +14 -0
  18. instant_python-0.26.0/instant_python/__init__.py +1 -0
  19. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/application/config_generator.py +4 -6
  20. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/delivery/cli.py +2 -1
  21. instant_python-0.26.0/instant_python/config/domain/answers_review_formatter.py +7 -0
  22. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/domain/question_wizard.py +3 -1
  23. instant_python-0.26.0/instant_python/config/infra/question_wizard/console_answers_review_formatter.py +34 -0
  24. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +20 -3
  25. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/renderer/jinja_environment.py +2 -0
  26. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/domain/config_schema.py +5 -1
  27. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/domain/general_config.py +3 -5
  28. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/LICENSE +3 -3
  29. instant_python-0.26.0/mise.toml +4 -0
  30. {instant_python-0.24.2 → instant_python-0.26.0}/pyproject.toml +6 -1
  31. {instant_python-0.24.2 → instant_python-0.26.0}/schemas/ipy-schema.json +3 -7
  32. instant_python-0.26.0/scripts/install.ps1 +81 -0
  33. instant_python-0.26.0/scripts/install.sh +87 -0
  34. {instant_python-0.24.2 → instant_python-0.26.0}/test/config/application/test_config_generator.py +14 -1
  35. {instant_python-0.24.2 → instant_python-0.26.0}/test/config/infra/question_wizard/fake_questionary.py +5 -0
  36. instant_python-0.26.0/test/config/infra/question_wizard/step/test_dependencies_step.py +151 -0
  37. instant_python-0.26.0/test/config/infra/question_wizard/step/test_git_step.py +38 -0
  38. instant_python-0.26.0/test/config/infra/question_wizard/step/test_template_step.py +62 -0
  39. instant_python-0.26.0/test/config/infra/question_wizard/test_console_answer_review_formatter.py +182 -0
  40. instant_python-0.26.0/test/config/infra/question_wizard/test_questionary_console_wizard.py +133 -0
  41. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/renderer/test_jinja_environment.py +3 -0
  42. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/test_config_schema.py +22 -0
  43. instant_python-0.26.0/test/shared/persistence/__init__.py +0 -0
  44. instant_python-0.26.0/uv.lock +2936 -0
  45. instant_python-0.24.2/.agents/agents/convention_keeper.md +0 -55
  46. instant_python-0.24.2/.github/actions/python_setup/action.yml +0 -23
  47. instant_python-0.24.2/.python-version +0 -1
  48. instant_python-0.24.2/.tool-versions +0 -1
  49. instant_python-0.24.2/docs/documentation/getting_started/installation.md +0 -40
  50. instant_python-0.24.2/instant_python/__init__.py +0 -1
  51. instant_python-0.24.2/makefile +0 -151
  52. instant_python-0.24.2/test/config/infra/question_wizard/test_questionary_console_wizard.py +0 -80
  53. instant_python-0.24.2/uv.lock +0 -2722
  54. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/agents/leader.md +0 -0
  55. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/agents/spec_partner.md +0 -0
  56. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/commands/commit.md +0 -0
  57. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/commands/technical_debt_review.md +0 -0
  58. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/code_review/SKILL.md +0 -0
  59. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/complexity_review/REFERENCE.md +0 -0
  60. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/complexity_review/SKILL.md +0 -0
  61. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/hamburger_method/REFERENCE.md +0 -0
  62. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/hamburger_method/SKILL.md +0 -0
  63. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/micro_steps_coach/REFERENCE.md +0 -0
  64. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/micro_steps_coach/SKILL.md +0 -0
  65. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/security_review/SKILL.md +0 -0
  66. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/story_splitting/REFERENCE.md +0 -0
  67. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/story_splitting/SKILL.md +0 -0
  68. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/test_desiderata/REFERENCE.md +0 -0
  69. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/test_desiderata/SKILL.md +0 -0
  70. {instant_python-0.24.2 → instant_python-0.26.0}/.agents/skills/xp_refactor/SKILL.md +0 -0
  71. {instant_python-0.24.2 → instant_python-0.26.0}/.github/FUNDING.yml +0 -0
  72. {instant_python-0.24.2 → instant_python-0.26.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  73. {instant_python-0.24.2 → instant_python-0.26.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  74. {instant_python-0.24.2 → instant_python-0.26.0}/.github/dependabot.yml +0 -0
  75. {instant_python-0.24.2 → instant_python-0.26.0}/.github/pull_request_template.md +0 -0
  76. {instant_python-0.24.2 → instant_python-0.26.0}/.gitignore +0 -0
  77. {instant_python-0.24.2 → instant_python-0.26.0}/CITATION.cff +0 -0
  78. {instant_python-0.24.2 → instant_python-0.26.0}/LICENSE +0 -0
  79. {instant_python-0.24.2 → instant_python-0.26.0}/SECURITY.md +0 -0
  80. {instant_python-0.24.2 → instant_python-0.26.0}/codeql-config.yml +0 -0
  81. {instant_python-0.24.2 → instant_python-0.26.0}/docs/agents/convention_guidelines.md +0 -0
  82. {instant_python-0.24.2 → instant_python-0.26.0}/docs/agents/leader_workflow.md +0 -0
  83. {instant_python-0.24.2 → instant_python-0.26.0}/docs/agents/spec_guidelines.md +0 -0
  84. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
  85. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
  86. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
  87. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.components/changes.md.j2 +0 -0
  88. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.components/first_release.md.j2 +0 -0
  89. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.components/macros.md.j2 +0 -0
  90. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
  91. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/.release_notes.md.j2 +0 -0
  92. {instant_python-0.24.2 → instant_python-0.26.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
  93. {instant_python-0.24.2 → instant_python-0.26.0}/docs/conventions/testing/assertion-helper-methods.md +0 -0
  94. {instant_python-0.24.2 → instant_python-0.26.0}/docs/conventions/testing/common-test-variables-in-setup-method.md +0 -0
  95. {instant_python-0.24.2 → instant_python-0.26.0}/docs/conventions/testing/tdd-outside-in.md +0 -0
  96. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/assets/favicon.svg +0 -0
  97. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/assets/logo.svg +0 -0
  98. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/development/releases.md +0 -0
  99. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/development/security.md +0 -0
  100. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/downloads_macro.py +0 -0
  101. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/getting_started/first_steps.md +0 -0
  102. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/getting_started/privacy_and_metrics.md +0 -0
  103. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/guide/command_config.md +0 -0
  104. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/guide/command_init.md +0 -0
  105. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/guide/custom_projects.md +0 -0
  106. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/guide/default_features.md +0 -0
  107. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/guide/index.md +0 -0
  108. {instant_python-0.24.2 → instant_python-0.26.0}/docs/documentation/guide/template_reference.md +0 -0
  109. {instant_python-0.24.2 → instant_python-0.26.0}/docs/specs/0001-metrics-middleware-refactor.md +0 -0
  110. {instant_python-0.24.2 → instant_python-0.26.0}/docs/specs/0002-new-tool-management-system.md +0 -0
  111. {instant_python-0.24.2 → instant_python-0.26.0}/docs/specs/0003-interactive-configuration-wizard-ux.md +0 -0
  112. {instant_python-0.24.2 → instant_python-0.26.0}/docs/specs/technical-debt-review.md +0 -0
  113. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/cli/__init__.py +0 -0
  114. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/cli/cli.py +0 -0
  115. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/cli/instant_python_typer.py +0 -0
  116. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/__init__.py +0 -0
  117. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/application/__init__.py +0 -0
  118. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/delivery/__init__.py +0 -0
  119. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/domain/__init__.py +0 -0
  120. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/__init__.py +0 -0
  121. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/__init__.py +0 -0
  122. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
  123. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
  124. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/general_step.py +0 -0
  125. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
  126. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
  127. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
  128. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
  129. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/__init__.py +0 -0
  130. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/application/__init__.py +0 -0
  131. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/application/project_initializer.py +0 -0
  132. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/delivery/__init__.py +0 -0
  133. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/delivery/cli.py +0 -0
  134. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/__init__.py +0 -0
  135. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/env_manager.py +0 -0
  136. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/node.py +0 -0
  137. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/project_formatter.py +0 -0
  138. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/project_renderer.py +0 -0
  139. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/project_structure.py +0 -0
  140. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/project_writer.py +0 -0
  141. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/domain/version_control_configurer.py +0 -0
  142. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/__init__.py +0 -0
  143. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/__init__.py +0 -0
  144. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/env_manager_factory.py +0 -0
  145. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -0
  146. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/system_console.py +0 -0
  147. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/uv_env_manager.py +0 -0
  148. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/formatter/__init__.py +0 -0
  149. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +0 -0
  150. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/renderer/__init__.py +0 -0
  151. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +0 -0
  152. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/version_control/__init__.py +0 -0
  153. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/version_control/git_configurer.py +0 -0
  154. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/writer/__init__.py +0 -0
  155. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
  156. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/__init__.py +0 -0
  157. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/application/__init__.py +0 -0
  158. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/application/config_snapshot_creator.py +0 -0
  159. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/application/usage_metrics_sender.py +0 -0
  160. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/delivery/__init__.py +0 -0
  161. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/delivery/metrics_middleware.py +0 -0
  162. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/domain/__init__.py +0 -0
  163. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/domain/config_snapshot.py +0 -0
  164. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/domain/error_metrics_event.py +0 -0
  165. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/domain/metrics_reporter.py +0 -0
  166. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/domain/usage_metrics_data.py +0 -0
  167. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/infra/__init__.py +0 -0
  168. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/infra/post_hog_config.py +0 -0
  169. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/infra/post_hog_metrics_reporter.py +0 -0
  170. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/metrics/infra/user_identity_manager.py +0 -0
  171. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/__init__.py +0 -0
  172. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/application_error.py +0 -0
  173. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/domain/__init__.py +0 -0
  174. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/domain/config_repository.py +0 -0
  175. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/domain/dependency_config.py +0 -0
  176. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/domain/git_config.py +0 -0
  177. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/domain/template_config.py +0 -0
  178. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/infra/__init__.py +0 -0
  179. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/infra/persistence/__init__.py +0 -0
  180. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/infra/persistence/yaml_config_repository.py +0 -0
  181. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/supported_built_in_features.py +0 -0
  182. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/supported_licenses.py +0 -0
  183. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/supported_managers.py +0 -0
  184. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/supported_python_versions.py +0 -0
  185. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/shared/supported_templates.py +0 -0
  186. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/.gitignore +0 -0
  187. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/.pre-commit-config.yaml +0 -0
  188. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/.python-version +0 -0
  189. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
  190. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/README.md +0 -0
  191. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
  192. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/AGENTS.md +0 -0
  193. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/convention_keeper.md +0 -0
  194. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/judge.md +0 -0
  195. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/leader.md +0 -0
  196. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/spec_partner.md +0 -0
  197. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/tdd_craftsman.md +0 -0
  198. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/commands/commit.md +0 -0
  199. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/commands/technical_debt_review.md +0 -0
  200. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/convention_guidelines.md +0 -0
  201. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/leader_workflow.md +0 -0
  202. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/code_review/SKILL.md +0 -0
  203. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/complexity_review/REFERENCE.md +0 -0
  204. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/complexity_review/SKILL.md +0 -0
  205. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/hamburger_method/REFERENCE.md +0 -0
  206. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/hamburger_method/SKILL.md +0 -0
  207. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/micro_steps_coach/REFERENCE.md +0 -0
  208. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/micro_steps_coach/SKILL.md +0 -0
  209. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/mutation_testing/SKILL.md +0 -0
  210. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/security_review/SKILL.md +0 -0
  211. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/story_splitting/REFERENCE.md +0 -0
  212. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/story_splitting/SKILL.md +0 -0
  213. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/test_desiderata/REFERENCE.md +0 -0
  214. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/test_desiderata/SKILL.md +0 -0
  215. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/xp_refactor/SKILL.md +0 -0
  216. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/spec_guidelines.md +0 -0
  217. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/tasks.json +0 -0
  218. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/tdd_outside_in.md +0 -0
  219. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
  220. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
  221. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
  222. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
  223. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
  224. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
  225. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
  226. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
  227. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
  228. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
  229. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
  230. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
  231. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
  232. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
  233. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
  234. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
  235. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
  236. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
  237. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
  238. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
  239. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
  240. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
  241. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
  242. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
  243. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
  244. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
  245. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
  246. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
  247. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/action.yml +0 -0
  248. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
  249. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/ci.yml +0 -0
  250. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/dependabot.yml +0 -0
  251. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
  252. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/pages.yml +0 -0
  253. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/release.yml +0 -0
  254. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
  255. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
  256. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
  257. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
  258. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/mkdocs.yml +0 -0
  259. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
  260. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
  261. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
  262. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
  263. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
  264. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
  265. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
  266. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
  267. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
  268. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
  269. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
  270. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
  271. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
  272. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
  273. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
  274. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
  275. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
  276. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/pyproject.toml +0 -0
  277. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
  278. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
  279. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
  280. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
  281. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
  282. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/makefile +0 -0
  283. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
  284. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
  285. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
  286. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
  287. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
  288. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/agents/agents.yml +0 -0
  289. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/application.yml +0 -0
  290. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml +0 -0
  291. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/domain.yml +0 -0
  292. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/infra.yml +0 -0
  293. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml +0 -0
  294. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml +0 -0
  295. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml +0 -0
  296. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml +0 -0
  297. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/main_structure.yml +0 -0
  298. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/source.yml +0 -0
  299. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/test.yml +0 -0
  300. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/gitignore.yml +0 -0
  301. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/mypy.yml +0 -0
  302. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/pyproject.yml +0 -0
  303. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/python_version.yml +0 -0
  304. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/citation.yml +0 -0
  305. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/documentation.yml +0 -0
  306. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/license.yml +0 -0
  307. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/readme.yml +0 -0
  308. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/security.yml +0 -0
  309. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml +0 -0
  310. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml +0 -0
  311. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml +0 -0
  312. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml +0 -0
  313. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml +0 -0
  314. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml +0 -0
  315. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml +0 -0
  316. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml +0 -0
  317. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml +0 -0
  318. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml +0 -0
  319. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/source.yml +0 -0
  320. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/test.yml +0 -0
  321. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/errors.yml +0 -0
  322. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/events/event_bus_domain.yml +0 -0
  323. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/events/event_bus_infra.yml +0 -0
  324. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/events/mock_event_bus.yml +0 -0
  325. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/fastapi/fastapi_app.yml +0 -0
  326. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/fastapi/fastapi_domain.yml +0 -0
  327. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/fastapi/fastapi_infra.yml +0 -0
  328. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/github/github_action.yml +0 -0
  329. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/github/github_issues_template.yml +0 -0
  330. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/github/makefile.yml +0 -0
  331. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/github/precommit_hook.yml +0 -0
  332. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/logger.yml +0 -0
  333. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/macros.j2 +0 -0
  334. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/alembic_migrator.yml +0 -0
  335. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/async_alembic.yml +0 -0
  336. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/async_engine_conftest.yml +0 -0
  337. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml +0 -0
  338. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/persistence.yml +0 -0
  339. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml +0 -0
  340. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/layers/source_features.yml +0 -0
  341. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml +0 -0
  342. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/layers/test_features.yml +0 -0
  343. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/main_structure.yml +0 -0
  344. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/source.yml +0 -0
  345. {instant_python-0.24.2 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/test.yml +0 -0
  346. {instant_python-0.24.2 → instant_python-0.26.0}/mkdocs.yml +0 -0
  347. {instant_python-0.24.2 → instant_python-0.26.0}/mypy.ini +0 -0
  348. {instant_python-0.24.2 → instant_python-0.26.0}/opencode.json +0 -0
  349. {instant_python-0.24.2 → instant_python-0.26.0}/schemas/main-structure-schema.json +0 -0
  350. {instant_python-0.24.2 → instant_python-0.26.0}/test/__init__.py +0 -0
  351. {instant_python-0.24.2 → instant_python-0.26.0}/test/cli/__init__.py +0 -0
  352. {instant_python-0.24.2 → instant_python-0.26.0}/test/cli/test_version_command.py +0 -0
  353. {instant_python-0.24.2 → instant_python-0.26.0}/test/config/__init__.py +0 -0
  354. {instant_python-0.24.2 → instant_python-0.26.0}/test/config/application/__init__.py +0 -0
  355. {instant_python-0.24.2 → instant_python-0.26.0}/test/config/infra/__init__.py +0 -0
  356. {instant_python-0.24.2 → instant_python-0.26.0}/test/config/infra/question_wizard/__init__.py +0 -0
  357. {instant_python-0.24.2/test/initialize → instant_python-0.26.0/test/config/infra/question_wizard/step}/__init__.py +0 -0
  358. {instant_python-0.24.2/test/initialize/application → instant_python-0.26.0/test/initialize}/__init__.py +0 -0
  359. {instant_python-0.24.2/test/initialize/delivery → instant_python-0.26.0/test/initialize/application}/__init__.py +0 -0
  360. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/application/test_project_initializer.py +0 -0
  361. {instant_python-0.24.2/test/initialize/domain → instant_python-0.26.0/test/initialize/delivery}/__init__.py +0 -0
  362. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/delivery/approvaltests_config.json +0 -0
  363. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_custom_project_structure.approved.txt +0 -0
  364. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +0 -0
  365. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_git_section_combinations.approved.txt +0 -0
  366. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +0 -0
  367. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.approved.txt +0 -0
  368. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/delivery/test_init_cli.py +0 -0
  369. {instant_python-0.24.2/test/initialize/domain/mothers → instant_python-0.26.0/test/initialize/domain}/__init__.py +0 -0
  370. {instant_python-0.24.2/test/initialize/infra → instant_python-0.26.0/test/initialize/domain/mothers}/__init__.py +0 -0
  371. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/domain/mothers/node_mother.py +0 -0
  372. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
  373. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/domain/test_node.py +0 -0
  374. {instant_python-0.24.2/test/initialize/infra/env_manager → instant_python-0.26.0/test/initialize/infra}/__init__.py +0 -0
  375. {instant_python-0.24.2/test/initialize/infra/env_manager/mother → instant_python-0.26.0/test/initialize/infra/env_manager}/__init__.py +0 -0
  376. {instant_python-0.24.2/test/initialize/infra/formatter → instant_python-0.26.0/test/initialize/infra/env_manager/mother}/__init__.py +0 -0
  377. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/env_manager/mother/command_execution_result_mother.py +0 -0
  378. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -0
  379. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/env_manager/test_system_console.py +0 -0
  380. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/env_manager/test_uv_env_manager.py +0 -0
  381. {instant_python-0.24.2/test/initialize/infra/renderer → instant_python-0.26.0/test/initialize/infra/formatter}/__init__.py +0 -0
  382. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/formatter/test_ruff_project_formatter.py +0 -0
  383. {instant_python-0.24.2/test/initialize/infra/version_control → instant_python-0.26.0/test/initialize/infra/renderer}/__init__.py +0 -0
  384. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/renderer/test_jinja_project_renderer.py +0 -0
  385. {instant_python-0.24.2/test/initialize/infra/writer → instant_python-0.26.0/test/initialize/infra/version_control}/__init__.py +0 -0
  386. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/version_control/test_git_configurer.py +0 -0
  387. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_file_in_file_system.approved.txt +0 -0
  388. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_python_module_in_file_system.approved.txt +0 -0
  389. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_standard_directory_in_file_system.approved.txt +0 -0
  390. {instant_python-0.24.2/test/metrics → instant_python-0.26.0/test/initialize/infra/writer}/__init__.py +0 -0
  391. {instant_python-0.24.2 → instant_python-0.26.0}/test/initialize/infra/writer/test_file_system_project_writer.py +0 -0
  392. {instant_python-0.24.2/test/metrics/application → instant_python-0.26.0/test/metrics}/__init__.py +0 -0
  393. {instant_python-0.24.2/test/metrics/domain → instant_python-0.26.0/test/metrics/application}/__init__.py +0 -0
  394. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/application/test_config_snapshot_creator.py +0 -0
  395. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/application/test_usage_metrics_sender.py +0 -0
  396. {instant_python-0.24.2/test/metrics/infra → instant_python-0.26.0/test/metrics/domain}/__init__.py +0 -0
  397. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/domain/config_snapshot_mother.py +0 -0
  398. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/domain/error_metrics_event_mother.py +0 -0
  399. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/domain/usage_metrics_event_mother.py +0 -0
  400. {instant_python-0.24.2/test/shared → instant_python-0.26.0/test/metrics/infra}/__init__.py +0 -0
  401. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/infra/cassettes/error_posthog_reporter.yml +0 -0
  402. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/infra/cassettes/success_posthog_reporter.yml +0 -0
  403. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/infra/test_post_hog_config.py +0 -0
  404. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/infra/test_post_hog_metrics_reporter.py +0 -0
  405. {instant_python-0.24.2 → instant_python-0.26.0}/test/metrics/infra/test_user_identity_manager.py +0 -0
  406. {instant_python-0.24.2 → instant_python-0.26.0}/test/random_generator.py +0 -0
  407. {instant_python-0.24.2 → instant_python-0.26.0}/test/resources/base_ipy_config.yml +0 -0
  408. {instant_python-0.24.2 → instant_python-0.26.0}/test/resources/domain_error_template.py +0 -0
  409. {instant_python-0.24.2 → instant_python-0.26.0}/test/resources/hello_world.j2 +0 -0
  410. {instant_python-0.24.2 → instant_python-0.26.0}/test/resources/main_structure.yml +0 -0
  411. {instant_python-0.24.2 → instant_python-0.26.0}/test/resources/standard_project/main_structure.yml +0 -0
  412. {instant_python-0.24.2/test/shared/domain → instant_python-0.26.0/test/shared}/__init__.py +0 -0
  413. {instant_python-0.24.2/test/shared/domain/mothers → instant_python-0.26.0/test/shared/domain}/__init__.py +0 -0
  414. {instant_python-0.24.2/test/shared/persistence → instant_python-0.26.0/test/shared/domain/mothers}/__init__.py +0 -0
  415. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/mothers/config_schema_mother.py +0 -0
  416. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
  417. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/mothers/general_config_mother.py +0 -0
  418. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/mothers/git_config_mother.py +0 -0
  419. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/mothers/template_config_mother.py +0 -0
  420. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/test_dependency_config.py +0 -0
  421. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/test_general_config.py +0 -0
  422. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/test_git_config.py +0 -0
  423. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/domain/test_template_configuration.py +0 -0
  424. {instant_python-0.24.2 → instant_python-0.26.0}/test/shared/persistence/test_yaml_config_repository.py +0 -0
  425. {instant_python-0.24.2 → instant_python-0.26.0}/test/utils.py +0 -0
  426. {instant_python-0.24.2 → instant_python-0.26.0}/tox.ini +0 -0
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: convention_keeper
3
+ description: Captures learnings from completed features and updates or creates convention documentation. Runs after judge approval before release.
4
+ ---
5
+
6
+ # Convention Keeper
7
+
8
+ Your job is to distill learnings from a completed feature into reusable conventions. After the
9
+ `judge` has approved and mutation testing has passed, you review what happened during the
10
+ feature and update `docs/conventions/` with any new patterns, decisions, or practices worth
11
+ documenting.
12
+
13
+ You do not write code, tests, or spec files. You maintain the convention library.
14
+
15
+ ## Protocol
16
+
17
+ 1. Read `AGENTS.md` (Repository knowledge map), `docs/agents/convention_guidelines.md` and the spec file, `docs/progress/tdd_<name>.md`, and `docs/progress/judge_<name>.md` for the completed feature.
18
+ 2. **Search the codebase for recurring, undocumented patterns.** A convention is a general pattern applied across the code, so the current feature is only a hint. Grep the wider codebase (`instant_python/`, `test/`) for the candidate pattern — repeated structures, helpers, naming schemes, arrangements — beyond the feature that surfaced it. Document only patterns that recur in more than one place or clearly generalize beyond the current feature.
19
+ 3. For each candidate, check if a relevant convention doc already exists in `docs/conventions/`.
20
+ 4. If the doc exists, extend or improve it with the new insight.
21
+ 5. If no doc exists, create a new one following the template in `docs/agents/convention_guidelines.md`.
22
+ 6. **Ask the human** to review and approve the new or updated convention files before finalizing.
23
+ 7. **Update the knowledge map**: After the human approves, add the new convention path to the repository knowledge map in `AGENTS.md` (the `docs/conventions/` tree). The knowledge map is the single discovery mechanism: agents read `AGENTS.md` to find conventions. NEVER edit any file under `.agents/agents/` — adding a convention must not change any subagent prompt.
24
+
25
+ ## Hard rules
26
+
27
+ - NEVER edit `instant_python/`, `test/`, `docs/specs/`, or any file under `.agents/agents/`.
28
+ - NEVER change the feature status in Linear.
29
+ - NEVER write code or tests.
30
+ - Each convention goes in its own standalone file, placed in the right area subfolder of `docs/conventions/` per the guideline. No bundling.
31
+ - Conventions record general concepts and decisions about patterns (in tests, code, architecture, workflow) that apply across the code — never concrete cases tied to a specific feature, incident, or implementation detail. No feature names, no "during <issue>" stories, no narration of one particular implementation. Before documenting, verify the pattern recurs or generalizes beyond the feature that surfaced it; a practice applied once is not a convention.
32
+ - Illustrate patterns with generic examples: use neutral, invented names (e.g. `a_name`, `a_value`, `_answers_for_a_scenario()`) — never the identifiers, constants, helper names, or file specifics of the feature being captured. Real files appear only in the "Real world examples" section as pointers.
33
+ - When a convention doc already has a "Real world examples" section with a good set of pointers, do not add more examples unless they are truly helpful (e.g., they illustrate a genuinely new aspect). Avoid padding an already-complete examples section.
34
+ - Always ask the human to approve new convention files.
35
+
36
+ ## Communication
37
+
38
+ Your final output is **a single line**:
39
+
40
+ ```
41
+ conventions updated -> docs/conventions/<area>/<name>.md
42
+ ```
43
+
44
+ or if nothing new was found:
45
+
46
+ ```
47
+ no new conventions
48
+ ```
49
+
50
+ Never return file contents in chat.
@@ -47,13 +47,13 @@ You have two gates: **review** (coverage, TDD discipline, code quality) and **mu
47
47
  - Evaluate code quality, simplicity and maintainability with **code_review** skill, and alignment with
48
48
  `AGENTS.md`'s Core Principles and Code Standards.
49
49
  - Evaluate security concerns using the **security_review** skill
50
- 5. Run `make test`. Must be green.
50
+ 5. Run `task test`. Must be green.
51
51
  6. **If review passes**, run mutation testing:
52
52
  - Use the **mutation_testing** skill and `mutmut` as the mutation tool.
53
- - The threshold is **100% on new/touched lines**. Scope the run to the feature with the dotted module pattern, never a filesystem path: `make mutate MUTATE_PATH="instant_python.<feature>.*"`. In mutmut 3.7 the positional arg filters mutant names, so a directory path like `instant_python/<feature>/` matches nothing and silently mutates the whole project.
53
+ - The threshold is **100% on new/touched lines**. Scope the run to the feature with the dotted module pattern, never a filesystem path: `task mutate MUTATE_PATH="instant_python.<feature>.*"`. In mutmut 3.7 the positional arg filters mutant names, so a directory path like `instant_python/<feature>/` matches nothing and silently mutates the whole project.
54
54
  - When the suite contains a pre-existing red test, mutmut aborts. Keep the run scoped and deterministic.
55
55
  - `len()` calls are never mutated and decorated functions (e.g. `@property`) are skipped; do not demand mutants on those lines — compensate with behavioral tests that exercise the public output.
56
- - Review `make mutate` output and `mutmut show <id>` for surviving mutants.
56
+ - Review `task mutate` output and `mutmut show <id>` for surviving mutants.
57
57
  - For each surviving mutant, document: file, line, mutation applied, and what test is missing to kill it.
58
58
  7. Emit verdict.
59
59
 
@@ -102,7 +102,7 @@ CHANGES_REQUESTED -> docs/progress/judge_<name>.md
102
102
 
103
103
  - NEVER write or edit production code or tests in `instant_python/` or `test/` — you review,
104
104
  you don't implement.
105
- - Never approve with red tests or `make test` failing.
105
+ - Never approve with red tests or `task test` failing.
106
106
  - Never approve if any requirement has no test coverage.
107
107
  - Never approve production code that no test demands.
108
108
  - Never edit the code. You say what fails, you do not fix it.
@@ -49,7 +49,7 @@ REFACTOR → clean up with the bar green: names, duplication, short functions
49
49
  2. Record in `docs/progress/current.md`: `Feature in progress: <name>` and the list of requirements `R1...R<n>` you will cover.
50
50
  3. Before starting the TDD cycle, check if the scenario requires a risky change (DB schema, API contract, service replacement). If so, use the **micro_steps_coach** skill to plan the expand-contract pattern first — then proceed with TDD.
51
51
  4. **For each requirement in order**, execute one or more Red-Green-Refactor cycles using Outside-In TDD:
52
- a. **RED** — write a test in `test/` that encodes the functional requirement and verify it **fails** (`make unit`). Apply the **test_desiderata** skill to ensure the test is isolated, fast, specific, and behavioral. A test that passes on the first try proves nothing — adjust it or be suspicious.
52
+ a. **RED** — write a test in `test/` that encodes the functional requirement and verify it **fails** (`task test`). Apply the **test_desiderata** skill to ensure the test is isolated, fast, specific, and behavioral. A test that passes on the first try proves nothing — adjust it or be suspicious.
53
53
  b. **GREEN** — the minimum implementation in `instant_python/` that makes it pass.
54
54
  c. **REFACTOR** — with the bar green, apply the **xp_refactor** skill to eliminate duplication, improve naming, and simplify. Run tests again after every change.
55
55
  d. Append the cycle to `docs/progress/tdd_<name>.md` (which `R<n>`, which test, what minimum change).
@@ -57,7 +57,7 @@ REFACTOR → clean up with the bar green: names, duplication, short functions
57
57
  - **Happy path and critical error scenarios** → start with a delivery acceptance test (TestClient, full stack). Then drive the application layer, then domain and infra.
58
58
  - **All other scenarios (edge cases, validation errors, etc.)** → write unit tests at the delivery layer (use case mocked) or application layer (ports mocked) as appropriate. Do not write acceptance tests for these.
59
59
  6. **Traceability**: every `R<n>` scenario must be covered by at least one concrete test. Write the `R<n> → test` map in `docs/progress/tdd_<name>.md`.
60
- 7. Run `make test`. Green end to end.
60
+ 7. Run `task test`. Green end to end.
61
61
  8. **Do not mark `done` yourself.** The `judge` must review first.
62
62
  9. If the `leader` reinvokes you after the judge has approved and mutation testing has passed: change the Linear status to `Release` and move the summary to `docs/progress/history.md`.
63
63
 
@@ -46,7 +46,7 @@ TDD Workflow Mutation Testing Validation
46
46
  ## Reviewing a Mutation Results
47
47
 
48
48
  `mutmut` generates and runs the real mutants — there's no need to simulate them by hand. Use
49
- this process to go from a `make mutate` run to a reject/approve decision:
49
+ this process to go from a `task mutate` run to a reject/approve decision:
50
50
 
51
51
  ### Step 1: Scope to What Changed
52
52
 
@@ -60,7 +60,7 @@ changed are relevant to this review.
60
60
 
61
61
  ### Step 2: Run and Read Results
62
62
 
63
- Run `make mutate`, then `uv run mutmut results` for the mutation score and the list of
63
+ Run `task mutate`, then `uv run mutmut results` for the mutation score and the list of
64
64
  survived mutants (see Integration with mutmut below).
65
65
 
66
66
  ### Step 3: Classify Each Relevant Survived Mutant
@@ -171,8 +171,8 @@ if value is None: # Mutating to == None has same effect
171
171
  ### Running mutmut
172
172
 
173
173
  ```bash
174
- # Always through the make target — never call mutmut directly
175
- make mutate
174
+ # Always through the task target — never call mutmut directly
175
+ task mutate
176
176
 
177
177
  # Under the hood, this runs:
178
178
  uv run mutmut run
@@ -185,11 +185,11 @@ on the dotted module path:
185
185
  uv run mutmut run "instant_python.module_name*"
186
186
  ```
187
187
 
188
- `make mutate` exposes this as the `MUTATE_PATH` var, so you don't have to call
188
+ `task mutate` exposes this as the `MUTATE_PATH` var, so you don't have to call
189
189
  mutmut directly to scope a run:
190
190
 
191
191
  ```bash
192
- make mutate MUTATE_PATH="instant_python.module_name*"
192
+ task mutate MUTATE_PATH="instant_python.module_name*"
193
193
  ```
194
194
 
195
195
  To derive the pattern from a changed file, drop the `.py` extension and replace `/` with `.`:
@@ -0,0 +1,26 @@
1
+ name: Setup development environment
2
+
3
+ inputs:
4
+ python-version:
5
+ description: 'Additional Python versions to install for multi-version testing (e.g. the tox matrix). Leave empty to use only the version pinned in mise.toml.'
6
+ required: false
7
+ default: ""
8
+ outputs: {}
9
+ runs:
10
+ using: composite
11
+ steps:
12
+ - name: 🧰 Setup mise
13
+ uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
14
+ with:
15
+ install: true
16
+ cache: true
17
+
18
+ - name: 🐍 Setup additional Python versions
19
+ if: inputs.python-version != ''
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: ${{ inputs.python-version }}
23
+
24
+ - name: 📦 Install dependencies
25
+ run: task install
26
+ shell: bash
@@ -18,7 +18,7 @@ jobs:
18
18
  runs-on: ubuntu-latest
19
19
  steps:
20
20
  - name: 🛡️ Harden runner
21
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
21
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
22
22
  with:
23
23
  egress-policy: audit
24
24
 
@@ -30,18 +30,18 @@ jobs:
30
30
  persist-credentials: false
31
31
 
32
32
  - name: 🛠️ Setup environment
33
- uses: ./.github/actions/python_setup
33
+ uses: ./.github/actions/setup_environment
34
34
 
35
35
  - name: 🧐 Check linting
36
36
  id: check_lint
37
- run: make check-lint
37
+ run: task check-lint
38
38
 
39
39
  format:
40
40
  name: format
41
41
  runs-on: ubuntu-latest
42
42
  steps:
43
43
  - name: 🛡️ Harden runner
44
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
44
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
45
45
  with:
46
46
  egress-policy: audit
47
47
 
@@ -53,11 +53,11 @@ jobs:
53
53
  persist-credentials: false
54
54
 
55
55
  - name: 🛠️ Setup environment
56
- uses: ./.github/actions/python_setup
56
+ uses: ./.github/actions/setup_environment
57
57
 
58
58
  - name: 🧐 Check code format
59
59
  id: check_format
60
- run: make check-format
60
+ run: task check-format
61
61
 
62
62
  analyze-code-quality:
63
63
  name: analyze-code-quality
@@ -68,7 +68,7 @@ jobs:
68
68
 
69
69
  steps:
70
70
  - name: 🛡️ Harden runner
71
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
71
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
72
72
  with:
73
73
  egress-policy: audit
74
74
 
@@ -102,7 +102,7 @@ jobs:
102
102
 
103
103
  steps:
104
104
  - name: 🛡️ Harden runner
105
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
105
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
106
106
  with:
107
107
  egress-policy: audit
108
108
 
@@ -113,10 +113,10 @@ jobs:
113
113
  persist-credentials: false
114
114
 
115
115
  - name: 🛠️ Setup environment
116
- uses: ./.github/actions/python_setup
116
+ uses: ./.github/actions/setup_environment
117
117
 
118
118
  - name: 🏃 Run secrets scanner
119
- run: make secrets
119
+ run: task secrets
120
120
 
121
121
  audit:
122
122
  name: audit-dependencies
@@ -126,7 +126,7 @@ jobs:
126
126
 
127
127
  steps:
128
128
  - name: 🛡️ Harden runner
129
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
129
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
130
130
  with:
131
131
  egress-policy: audit
132
132
 
@@ -137,17 +137,17 @@ jobs:
137
137
  persist-credentials: false
138
138
 
139
139
  - name: 🛠️ Setup environment
140
- uses: ./.github/actions/python_setup
140
+ uses: ./.github/actions/setup_environment
141
141
 
142
142
  - name: 🏃 Run audit
143
- run: make audit
143
+ run: task audit
144
144
 
145
145
  test:
146
146
  name: test
147
147
  runs-on: ubuntu-latest
148
148
  steps:
149
149
  - name: 🛡️ Harden runner
150
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
150
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
151
151
  with:
152
152
  egress-policy: audit
153
153
 
@@ -158,7 +158,7 @@ jobs:
158
158
  persist-credentials: false
159
159
 
160
160
  - name: 🛠️ Setup environment
161
- uses: ./.github/actions/python_setup
161
+ uses: ./.github/actions/setup_environment
162
162
 
163
163
  - name: 📦 Install test dependencies
164
164
  run: uv pip install pytest pytest-cov
@@ -180,7 +180,7 @@ jobs:
180
180
  runs-on: ubuntu-latest
181
181
  steps:
182
182
  - name: 🛡️ Harden runner
183
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
183
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
184
184
  with:
185
185
  egress-policy: audit
186
186
 
@@ -191,7 +191,7 @@ jobs:
191
191
  persist-credentials: false
192
192
 
193
193
  - name: 🛠️ Setup environment
194
- uses: ./.github/actions/python_setup
194
+ uses: ./.github/actions/setup_environment
195
195
  with:
196
196
  python-version: |
197
197
  3.10
@@ -200,4 +200,4 @@ jobs:
200
200
  3.13
201
201
 
202
202
  - name: 🏃 Run tox
203
- run: make tox
203
+ run: task tox
@@ -18,7 +18,7 @@ jobs:
18
18
 
19
19
  steps:
20
20
  - name: 🛡️ Harden runner
21
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
21
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
22
22
  with:
23
23
  egress-policy: audit
24
24
 
@@ -29,7 +29,7 @@ jobs:
29
29
  persist-credentials: false
30
30
 
31
31
  - name: 🛠️ Setup environment
32
- uses: ./.github/actions/python_setup
32
+ uses: ./.github/actions/setup_environment
33
33
 
34
34
  - name: 📖 Build documentation
35
35
  run: uv run mkdocs build
@@ -71,10 +71,10 @@ jobs:
71
71
 
72
72
  steps:
73
73
  - name: 🛡️ Harden runner
74
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
74
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
75
75
  with:
76
76
  egress-policy: audit
77
77
 
78
78
  - name: 🚀 Deploy to GitHub Pages
79
79
  id: deployment
80
- uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
80
+ uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5
@@ -17,7 +17,7 @@ jobs:
17
17
 
18
18
  steps:
19
19
  - name: 🛡️ Harden runner
20
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
20
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
21
21
  with:
22
22
  egress-policy: audit
23
23
 
@@ -56,7 +56,7 @@ jobs:
56
56
 
57
57
  steps:
58
58
  - name: 🛡️ Harden runner
59
- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
59
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
60
60
  with:
61
61
  egress-policy: audit
62
62
 
@@ -68,10 +68,65 @@ jobs:
68
68
  ref: refs/tags/${{ needs.release.outputs.tag }}
69
69
 
70
70
  - name: 🛠️ Setup environment
71
- uses: ./.github/actions/python_setup
71
+ uses: ./.github/actions/setup_environment
72
72
 
73
73
  - name: 🏃 Build package
74
- run: uv build
74
+ run: task build
75
75
 
76
76
  - name: 🚀 Publish
77
77
  uses: pypa/gh-action-pypi-publish@release/v1
78
+
79
+ build-binaries:
80
+ name: Build binary (${{ matrix.target }})
81
+ needs:
82
+ - release
83
+ if: needs.release.outputs.released == 'true' || github.event_name == 'release'
84
+ strategy:
85
+ matrix:
86
+ include:
87
+ - runner: macos-14
88
+ target: aarch64-apple-darwin
89
+ ext: ""
90
+ - runner: ubuntu-latest
91
+ target: x86_64-unknown-linux-gnu
92
+ ext: ""
93
+ - runner: ubuntu-24.04-arm
94
+ target: aarch64-unknown-linux-gnu
95
+ ext: ""
96
+ - runner: windows-latest
97
+ target: x86_64-pc-windows-msvc
98
+ ext: ".exe"
99
+ runs-on: ${{ matrix.runner }}
100
+ permissions:
101
+ contents: write
102
+
103
+ steps:
104
+ - name: 🛡️ Harden runner
105
+ uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
106
+ with:
107
+ egress-policy: audit
108
+
109
+ - name: 📥 Checkout the repository
110
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
111
+ with:
112
+ fetch-depth: 0
113
+ persist-credentials: false
114
+ ref: refs/tags/${{ needs.release.outputs.tag }}
115
+
116
+ - name: 🦀 Setup Rust toolchain
117
+ uses: dtolnay/rust-toolchain@6bed0761d98439e5a578e2877258200ad565ba87 # stable
118
+ with:
119
+ targets: ${{ matrix.target }}
120
+
121
+ - name: 🛠️ Setup environment
122
+ uses: ./.github/actions/setup_environment
123
+
124
+ - name: 🏃 Build binary
125
+ env:
126
+ CARGO_BUILD_TARGET: ${{ matrix.target }}
127
+ run: uvx hatch build -t binary
128
+
129
+ - name: 📤 Upload release asset
130
+ env:
131
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
132
+ run: gh release upload ${{ needs.release.outputs.tag }} dist/app/ipy-${{ matrix.target }}${{ matrix.ext }} --clobber
@@ -60,14 +60,16 @@ repos:
60
60
  hooks:
61
61
  - id: lint
62
62
  name: 🧹 Code Linter
63
- entry: make lint
63
+ entry: task lint
64
64
  language: system
65
+ pass_filenames: false
65
66
  stages:
66
67
  - pre-push
67
68
 
68
69
  - id: format
69
70
  name: 🎨 Code Formatter
70
- entry: make format
71
+ entry: task format
71
72
  language: system
73
+ pass_filenames: false
72
74
  stages:
73
75
  - pre-push
@@ -111,21 +111,21 @@ Task management lives in the Linear project, not in a JSON file: the feature sta
111
111
 
112
112
  ## Tool usage
113
113
 
114
- **NEVER** call tools like `pytest`, `black`, `mypy`, or similar directly. Always use the corresponding `make` or `task` target.
114
+ **NEVER** call tools like `pytest`, `black`, `mypy`, or similar directly. Always use the corresponding `task` target.
115
115
 
116
116
  ### Usage Rules
117
- 1. **Testing**: When running tests, use `make unit`, `make integration`, `make acceptance` or `make test` as appropriate.
118
- 2. **Formatting**: For formatting, use `make format` or `make check-format`.
119
- 3. **Type Checking**: For type checking, use `make check-typing`.
120
- 4. **Lint Checks**: For lint checks, use `make check-lint`.
121
- 5. **Building**: For building or updating the app, use `make build` or `make update`.
122
- 6. **Help**: If you are unsure which target to use, run `make help` to see all available options.
123
- 7. **New Operations**: If a new operation is needed, prefer adding a new Makefile target rather than running a tool directly.
117
+ 1. **Testing**: When running tests, use `task test`.
118
+ 2. **Formatting**: For formatting, use `task format` or `task check-format`.
119
+ 3. **Type Checking**: For type checking, use `task check-typing`.
120
+ 4. **Lint Checks**: For lint checks, use `task check-lint`.
121
+ 5. **Building**: For building or updating the app, use `task build` or `task update`.
122
+ 6. **Help**: If you are unsure which target to use, run `task` (or `task --list-all`) to see all available options.
123
+ 7. **New Operations**: If a new operation is needed, prefer adding a new Taskfile target rather than running a tool directly.
124
124
 
125
125
  ### Good vs Bad Examples
126
126
  ```sh
127
- # Good: Use make target for unit tests
128
- make unit
127
+ # Good: Use task target to run tests
128
+ task test
129
129
 
130
130
  # Bad: Call pytest directly
131
131
  pytest tests
@@ -138,7 +138,7 @@ When working on this project:
138
138
  1. **Start every response with contemplation** 🌲
139
139
  2. **Take baby steps** - one test, one file, one change at a time 👣
140
140
  3. **Always write the failing test first** (TDD) ❌➡️✅
141
- 4. **Use make targets** - never call tools directly 🔧
141
+ 4. **Use task targets** - never call tools directly 🔧
142
142
  5. **Keep code small and typed** - max 20 lines per method 📏
143
143
  6. **Show your thinking process** - be conversational and progressive 💭
144
144
  7. **Question everything** - assumptions, requirements, design choices ❓
@@ -2,6 +2,98 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.26.0 (2026-09-08)
6
+
7
+ ### ✨ Features
8
+
9
+ - **schema**: Remove year field and add missing built in features in ipy schema file
10
+ ([`f365f88`](https://github.com/dimanu-py/instant-python/commit/f365f88294745570c7cc7b5f7af9b2a613dc3d42))
11
+
12
+ ### ⚙️ Build System
13
+
14
+ - Create installation script for Windows
15
+ ([`aee3d6e`](https://github.com/dimanu-py/instant-python/commit/aee3d6eac108569037c24687ef5a1925cc8eb58c))
16
+
17
+ - Create installation script for Apple Silicon and Linux
18
+ ([`f431d2e`](https://github.com/dimanu-py/instant-python/commit/f431d2ec8c767be06dbd57a2c668f72c2678f9c2))
19
+
20
+ - Bump click to fix vulnerability
21
+ ([`1c83b66`](https://github.com/dimanu-py/instant-python/commit/1c83b66ab31665dfe44a59221271767adb188249))
22
+
23
+ - Bump python-semantic-release
24
+ ([`3e3c7b2`](https://github.com/dimanu-py/instant-python/commit/3e3c7b2c1d0c578184f3cb707d86d8d3fd1dc7e8))
25
+
26
+
27
+ ## v0.25.0 (2026-09-06)
28
+
29
+ ### ✨ Features
30
+
31
+ - **config**: Not store configuration file when users decide to discard it
32
+ ([`e0c7998`](https://github.com/dimanu-py/instant-python/commit/e0c7998bfa38870d82e58c3c5b52a3e57fb2af0c))
33
+
34
+ - **config**: Ask the user if they want to save the configuration or not
35
+ ([`89e95f9`](https://github.com/dimanu-py/instant-python/commit/89e95f9ecb2ca9ba548ae9c835bdea2c0b0e09ea))
36
+
37
+ - **config**: Inject answers shummary formatter into real app command
38
+ ([`0556573`](https://github.com/dimanu-py/instant-python/commit/05565730c92ec8ac7b4269f4fc7dd4fb9c3753af))
39
+
40
+ - **config**: Print dependency summary including production and development dependencies when
41
+ specified
42
+ ([`ca6652e`](https://github.com/dimanu-py/instant-python/commit/ca6652e66931ec0dc36859d8d91f7ac8ea65f8dd))
43
+
44
+ - **config**: Print empty summary when no dependencies are selected
45
+ ([`5df6944`](https://github.com/dimanu-py/instant-python/commit/5df69442deb8f53895f53628e357c8ff691269eb))
46
+
47
+ - **config**: Print git summary section
48
+ ([`9e97281`](https://github.com/dimanu-py/instant-python/commit/9e97281096fea1f98b05eef760b8ea9ff41c23d6))
49
+
50
+ - **config**: Show selected built in features in template summary
51
+ ([`28e327c`](https://github.com/dimanu-py/instant-python/commit/28e327ce2d5d7127f8065572f6d195f7b00d905f))
52
+
53
+ - **config**: Show summary for template configuration section supporting previous sections
54
+ ([`f4cc977`](https://github.com/dimanu-py/instant-python/commit/f4cc977fbfa06fbd742469c06e89a64908e6f6d3))
55
+
56
+ - **config**: Show summary for general configuration section
57
+ ([`c2fc86b`](https://github.com/dimanu-py/instant-python/commit/c2fc86bb02d9d79c1b38a408cd4015ffd9a439f0))
58
+
59
+ - **config**: Show review configuration summary title
60
+ ([`bb2d97d`](https://github.com/dimanu-py/instant-python/commit/bb2d97d4351d23423235210917c8c2b4144ae12d))
61
+
62
+ - **config**: Include new answer formatter to print answers summary to the user
63
+ ([`e7dc03d`](https://github.com/dimanu-py/instant-python/commit/e7dc03d14b4e87b5021361858428a5eb396f4710))
64
+
65
+ ### 🪲 Bug Fixes
66
+
67
+ - **config**: Remove override annotation to make library compatible with older python versions
68
+ ([`df71f74`](https://github.com/dimanu-py/instant-python/commit/df71f74155caec074ace285b96cce71ced950b3f))
69
+
70
+ ### ⚙️ Build System
71
+
72
+ - Upgrade gitpython to a version that fixed vulnerabilities
73
+ ([`b224ae1`](https://github.com/dimanu-py/instant-python/commit/b224ae12c4ca49a73de44526366d5829655f6908))
74
+
75
+ ### ♻️ Refactoring
76
+
77
+ - **config**: Remove 'year' field from ConfigSchema and compute it as a global env variable in Jinja
78
+ instead
79
+ ([`c76356b`](https://github.com/dimanu-py/instant-python/commit/c76356b34be61ef57154b505f626bb9cd2452b75))
80
+
81
+ - **config**: Correct typo in internal validation method
82
+ ([`8f8acdc`](https://github.com/dimanu-py/instant-python/commit/8f8acdcc22b4a8fcde2b3759fe25d94b9de85cb9))
83
+
84
+ - **config**: Build config schema before showing summary to avoid printing incorrect values
85
+ ([`8cc1c77`](https://github.com/dimanu-py/instant-python/commit/8cc1c77366acd882c4aa489b8564f9aaf6841823))
86
+
87
+ - **config**: Let console wizard return ConfigSchema instead of primitives
88
+ ([`1e19771`](https://github.com/dimanu-py/instant-python/commit/1e19771ef7b3c2329c19548ba10e911560e1a93f))
89
+
90
+ - **config**: Remove answers existing check since empty dict will be ignored directly
91
+ ([`1799a4d`](https://github.com/dimanu-py/instant-python/commit/1799a4daa9dcc8f784929abc17337ee8b2187c4f))
92
+
93
+ - **config**: Substitue empty value with None only when it is a list
94
+ ([`ada43f5`](https://github.com/dimanu-py/instant-python/commit/ada43f5022c50d013043981129da568c2219b0ba))
95
+
96
+
5
97
  ## v0.24.2 (2026-08-07)
6
98
 
7
99
  ### 🪲 Bug Fixes
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: instant-python
3
- Version: 0.24.2
3
+ Version: 0.26.0
4
4
  Summary: Instant boilerplate generation for Python projects
5
5
  Project-URL: documentation, https://dimanu-py.github.io/instant-python/
6
6
  Project-URL: repository, https://github.com/dimanu-py/instant-python/
@@ -264,6 +264,20 @@ commands like `ng new` or `create-react-app`, but for Python projects.
264
264
 
265
265
  </td></tr></table></div>
266
266
 
267
+ ## 🚀 Quick Start
268
+
269
+ Once [installed](https://dimanu-py.github.io/instant-python/getting_started/installation/), generating a project takes two commands:
270
+
271
+ ```bash
272
+ ipy config # answer a few questions through an interactive wizard to create your ipy.yml configuration file
273
+ ipy init # generate the project from that configuration file
274
+ ```
275
+
276
+ - `ipy config` asks you about your project (name, Python version, project manager, template, dependencies, and more) and writes an `ipy.yml` configuration file in the current directory.
277
+ - `ipy init` reads that `ipy.yml` file and generates your new project.
278
+
279
+ See the [First Steps](https://dimanu-py.github.io/instant-python/getting_started/first_steps/) guide for a full walkthrough.
280
+
267
281
  ## ✨ NEW ✨ Create Fully Customized Projects
268
282
 
269
283
  Take full control of your project generation! With **custom templates**, you can:
@@ -31,6 +31,20 @@ commands like `ng new` or `create-react-app`, but for Python projects.
31
31
 
32
32
  </td></tr></table></div>
33
33
 
34
+ ## 🚀 Quick Start
35
+
36
+ Once [installed](https://dimanu-py.github.io/instant-python/getting_started/installation/), generating a project takes two commands:
37
+
38
+ ```bash
39
+ ipy config # answer a few questions through an interactive wizard to create your ipy.yml configuration file
40
+ ipy init # generate the project from that configuration file
41
+ ```
42
+
43
+ - `ipy config` asks you about your project (name, Python version, project manager, template, dependencies, and more) and writes an `ipy.yml` configuration file in the current directory.
44
+ - `ipy init` reads that `ipy.yml` file and generates your new project.
45
+
46
+ See the [First Steps](https://dimanu-py.github.io/instant-python/getting_started/first_steps/) guide for a full walkthrough.
47
+
34
48
  ## ✨ NEW ✨ Create Fully Customized Projects
35
49
 
36
50
  Take full control of your project generation! With **custom templates**, you can: