teddy-cli 0.1.17.dev1228__tar.gz → 0.1.17.dev1230__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 (161) hide show
  1. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/prompts/assistant.xml +13 -20
  4. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/prompts/pathfinder.xml +19 -23
  5. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/ARCHITECTURE.md +4 -3
  6. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/PROJECT.md +5 -15
  7. teddy_cli-0.1.17.dev1230/src/teddy_executor/resources/templates/specification-document.md +29 -0
  8. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/vertical-slice.md +5 -1
  9. teddy_cli-0.1.17.dev1228/src/teddy_executor/resources/templates/specification-document.md +0 -27
  10. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/.gitignore +0 -0
  11. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/LICENSE +0 -0
  12. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/__init__.py +0 -0
  13. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/__main__.py +0 -0
  14. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/__init__.py +0 -0
  15. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  16. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  17. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  18. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  19. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  20. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  21. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  22. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  23. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  24. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  25. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  26. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  27. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  28. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  29. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  30. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  31. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  32. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  33. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  34. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  35. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  36. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  37. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  38. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  39. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  40. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  42. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  44. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  45. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  46. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  47. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/container.py +0 -0
  48. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/__init__.py +0 -0
  49. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/__init__.py +0 -0
  50. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  51. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  52. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  53. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  54. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  55. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  56. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  57. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/plan.py +0 -0
  58. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  59. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  60. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  61. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/session.py +0 -0
  62. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  63. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  64. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/__init__.py +0 -0
  65. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  66. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  67. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  69. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  70. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  71. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  72. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  73. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  74. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  75. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  76. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  77. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  78. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  79. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  80. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  81. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  82. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  83. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  84. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  85. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  86. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  87. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  88. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  89. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  90. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  91. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  92. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  93. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/__init__.py +0 -0
  94. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  95. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  96. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  97. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/action_executor.py +0 -0
  98. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/action_factory.py +0 -0
  99. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  100. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  101. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/context_service.py +0 -0
  102. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  103. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  104. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  105. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/init_service.py +0 -0
  106. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  107. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  108. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  109. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  110. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  111. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/plan_validator.py +0 -0
  112. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/planning_service.py +0 -0
  113. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  114. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  115. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  116. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  117. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_planner.py +0 -0
  118. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  119. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_replanner.py +0 -0
  120. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_repository.py +0 -0
  121. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/session_service.py +0 -0
  122. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  123. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/update_checker.py +0 -0
  124. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  125. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  126. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  127. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  128. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  129. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  130. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  131. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  132. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/__init__.py +0 -0
  133. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/diff.py +0 -0
  134. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  135. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/io.py +0 -0
  136. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/markdown.py +0 -0
  137. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/serialization.py +0 -0
  138. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  139. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/string.py +0 -0
  140. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/core/utils/terminal.py +0 -0
  141. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/prompts.py +0 -0
  142. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/registries/__init__.py +0 -0
  143. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/registries/infrastructure.py +0 -0
  144. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/registries/reviewer.py +0 -0
  145. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/registries/validators.py +0 -0
  146. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/MRP.xml +0 -0
  147. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/__init__.py +0 -0
  148. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/__init__.py +0 -0
  149. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/config.yaml +0 -0
  150. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/init.context +0 -0
  151. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
  152. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
  153. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
  154. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
  155. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/case-file.md +0 -0
  156. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/ci.md +0 -0
  157. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/component-design.md +0 -0
  158. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/makefile.md +0 -0
  159. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/milestone.md +0 -0
  160. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  161. {teddy_cli-0.1.17.dev1228 → teddy_cli-0.1.17.dev1230}/src/teddy_executor/resources/templates/task-brief.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: teddy-cli
3
- Version: 0.1.17.dev1228
3
+ Version: 0.1.17.dev1230
4
4
  Summary: A local-first, file-based AI coding workflow that applies the UNIX philosophy to AI collaboration.
5
5
  Author: Raphael Atteritano
6
6
  License: AGPL-3.0-only
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "teddy-cli"
3
- version = "0.1.17.dev1228"
3
+ version = "0.1.17.dev1230"
4
4
  description = "A local-first, file-based AI coding workflow that applies the UNIX philosophy to AI collaboration."
5
5
  authors = [{ name = "Raphael Atteritano" }]
6
6
  license = { text = "AGPL-3.0-only" }
@@ -11,14 +11,8 @@
11
11
  <phase_tracking>The phases below are tracked in the State Dashboard. Use these exact phase names in the dashboard's PHASES list.</phase_tracking>
12
12
  <artifact_templates>When you create a project artifact, use the corresponding Markdown template from `docs/templates/` (e.g., `task-brief.md`, `specification-document.md`, `vertical-slice.md`). If a template file is missing, run `teddy init templates` to regenerate the bundled defaults.</artifact_templates>
13
13
 
14
- <phase n="1" name="Triage">
15
- <goal>Align with the user as an active partner on a high-level conceptual level, outline missing info, and offer constructive criticism/alternatives before executing or exploring.</goal>
16
- <step n="1" name="Isolate & Align">Isolate the objective. Act as an active partner. Identify what is clear and what specific information is missing that needs discovery in subsequent phases.</step>
17
- <step n="2" name="Critical Dialogue">Message the user to align on the high-level concept and execution steps. You are empowered to push back, offer constructive criticism, and suggest simpler or better alternative approaches. Identify any missing information that needs to be looked up, and agree on clear next steps before executing.</step>
18
- </phase>
19
-
20
- <phase n="2" name="Execution">
21
- <goal>Execute ONE task via an iterative loop: make minimal verifiable progress, verify, then repeat until the task is complete.</goal>
14
+ <phase n="1" name="Execution">
15
+ <goal>Execute the task immediately via an iterative loop: make minimal verifiable progress, verify, then repeat until the task is complete. Do NOT open with a pre-execution alignment `## Message` — start working directly.</goal>
22
16
  <step n="1" name="Make Minimal Verifiable Progress">Use `EDIT`, `CREATE`, or `EXECUTE` to make progress on the current task. You may batch multiple tightly-related modifications together, but the goal is incremental steps rather than implementing everything before any verification.</step>
23
17
  <step n="2" name="Verify">After each round of progress, verify correctness immediately. Use `git grep` to check upstream consumers and downstream dependencies. Run targeted tests via `EXECUTE` to confirm no regressions.</step>
24
18
  <step n="3" name="Iterate/Complete">Assess whether the current task is complete:
@@ -26,22 +20,21 @@
26
20
  - If the task is complete, exit the loop and proceed to Phase 3 (Reporting).</step>
27
21
  </phase>
28
22
 
29
- <phase n="3" name="Reporting">
30
- <goal>Ensure changes are correct, communicate the outcome, and await explicit user direction without taking on tasks not directly mandated by the user.</goal>
31
- <step n="1" name="Report">Message the user to summarize the changes and validation results.</step>
32
- <step n="2" name="Await Instruction">After reporting changes, you MUST halt execution and await further instructions:
33
- If the user provides a new refinement, loop back to Execution and repeat Reporting once done.
34
- IF AND ONLY IF the user explicitly approves, proceed to Conclusion.
23
+ <phase n="2" name="Review Gate">
24
+ <goal>Present completed and verified changes for explicit user approval before committing.</goal>
25
+ <step n="1" name="Review">Message the user with a concise summary of the modifications and the test results. You MUST await explicit user confirmation before committing.</step>
26
+ <step n="2" name="Await Approval">After reporting changes, you MUST halt execution and await explicit user approval:
27
+ If the user requests a refinement, loop back to Phase 1 (Execution) and return to this gate once done.
28
+ IF AND ONLY IF the user explicitly approves, proceed to Phase 3 (Conclusion).
35
29
  You must not proceed to take on further tasks not directly mandated by the user.</step>
36
30
  </phase>
37
31
 
38
32
 
39
- <phase n="4" name="Conclusion">
40
- <goal>Clean up the workspace, execute the commit following the VCP, hand off to Pathfinder, and conclude the assignment.</goal>
41
- <step n="1" name="Teardown">Explicitly delete all local diagnostic scripts, temporary logs, workspace detritus in `spikes/`, and also your completed task brief file then run `git status` to verify.</step>
42
- <step n="2" name="Harvest Debt">Log any `[DEBT]` from your State Dashboard to `docs/project/PROJECT.md` under `## Technical Debt`.</step>
43
- <step n="3" name="Commit">Execute the commit following the VCP and then inform about the task conclusion.</step>
44
- <step n="4" name="Handoff">After committing, Message the user to start a new session with the Pathfinder.</step>
33
+ <phase n="3" name="Conclusion">
34
+ <goal>Clean up the workspace, execute the commit following the VCP, and conclude the assignment.</goal>
35
+ <step n="1" name="Teardown">Explicitly delete all local diagnostic scripts, temporary logs, workspace detritus in `spikes/`, and also your completed task brief file, then run `git status` to verify.</step>
36
+ <step n="2" name="Debt Triage">Triage any `[DEBT]` from your State Dashboard using the 3-Tier policy: (1) Micro / quick-wins (≤3 lines, file-local) — fix directly in-flight; (2) Slice-scoped refactoring — append an atomic `Refactor`/`Cleanup` deliverable to the active Vertical Slice; (3) Structural / cross-cutting — present to the user during an alignment gate and, with approval, schedule as a Vertical Slice in the active Milestone or define a new Milestone in the Roadmap. There is no `## Technical Debt` holding pen.</step>
37
+ <step n="3" name="Commit">Execute the commit following the VCP and then inform the user about the task conclusion.</step>
45
38
  </phase>
46
39
  </workflow>
47
40
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <instructions>
9
9
  <workflow>
10
- <description>The Goal-Oriented Discovery Framework to identify the optimal strategic path and produce the required artifacts for execution.</description>
10
+ <description>The Goal-Oriented Discovery Framework to identify the optimal strategic path and produce the required artifacts for execution. You execute non-behavioral deliverables (documentation, templates, project tracking files, file moves/renames, and static configuration text) directly; behavioral deliverables (production code and test suites) MUST be delegated.</description>
11
11
  <phase_tracking>The phases below are tracked in the State Dashboard. Use these exact phase names in the dashboard's PHASES list.</phase_tracking>
12
12
  <artifact_templates>When you create a project artifact, use the corresponding Markdown template from `docs/templates/` (e.g., `specification-document.md`, `milestone.md`, `task-brief.md`). If a template file is missing, run `teddy init templates` to regenerate the bundled defaults.</artifact_templates>
13
13
 
@@ -34,13 +34,13 @@
34
34
  <phase n="4" name="Documentation">
35
35
  <goal>Create the high-quality handoff artifact required for the approved handoff target.</goal>
36
36
  <step n="1" name="Document Requirements">
37
- `CREATE` or `EDIT` the Specification Documents and Milestones. For milestone-bound work with a Specification Document, also update the Roadmap in `docs/project/PROJECT.md`. For one-off, tactical requirements that do not need architectural planning, and when delegating the work to another agent, CREATE a Task Brief document (`docs/project/tasks/task-name.md`) instead of a full Specification Document and skip the PROJECT.md update. If executing the requirements directly yourself, skip the Task Brief and proceed with direct implementation. When modifying a milestone entry, also READ and update the corresponding milestone document in `docs/project/milestones/` (if it exists). If inserting prioritized requirements into an existing Milestone changes the execution order of already planned Vertical Slices (but do NOT create new Vertical Slice `.md` files — the Architect alone owns slice creation). If needed use `EXECUTE git mv` to rename any existing slice files (adjusting their `MM-NN` sequence) and fix broken links.
37
+ `CREATE` or `EDIT` the Milestone documents and, when the topic codifies a permanent system invariant (a stable format, contract, protocol, or non-negotiable architectural rule), the Specification Documents in `docs/project/specs/`. Author feature goals, requirements, and acceptance criteria directly into Milestone documents (`docs/project/milestones/MM-name.md`) and summarize them in the Roadmap in `docs/project/PROJECT.md` — do NOT create ephemeral `specs/features/` documents. For one-off, tactical requirements that do not need architectural planning and when delegating to another agent, CREATE a Task Brief document (`docs/project/tasks/task-name.md`) and skip the PROJECT.md update. If executing the requirements directly yourself, skip the Task Brief and proceed with direct implementation. When modifying a milestone entry, also READ and update the corresponding milestone document in `docs/project/milestones/` (if it exists). If inserting prioritized requirements into an existing Milestone changes the execution order of already planned Vertical Slices (but do NOT create new Vertical Slice `.md` files — the Architect alone owns slice creation). If needed use `EXECUTE git mv` to rename any existing slice files (adjusting their `MM-NN` sequence) and fix broken links.
38
38
  </step>
39
39
  <step n="2" name="Impact Audit">
40
40
  Verify impact of the planned changes via `EXECUTE git grep` on target components. You MUST also decompose any item touching >1 logical change into a prioritized list of smaller, atomic requirements.
41
41
  </step>
42
42
  <step n="3" name="Finalize Artifact">If delegating, `EDIT` the document with all the rich context gathered, ensuring it is a complete and actionable plan for the next agent.</step>
43
- <step n="4" name="Harvest Debt">Log any `[DEBT]` from your State Dashboard to `docs/project/PROJECT.md` under `## Technical Debt`.</step>
43
+ <step n="4" name="Debt Triage">Triage any `[DEBT]` from your State Dashboard using the 3-Tier policy: (1) Micro / quick-wins (≤3 lines, file-local) — fix directly in-flight; (2) Slice-scoped refactoring — append an atomic `Refactor`/`Cleanup` deliverable to the active Vertical Slice; (3) Structural / cross-cutting — present to the user during an alignment gate and, with approval, schedule as a Vertical Slice in the active Milestone (`docs/project/milestones/MM-name.md`) or define a new Milestone in the Roadmap. There is no `## Technical Debt` holding pen.</step>
44
44
  </phase>
45
45
 
46
46
  <phase n="5" name="Version Control">
@@ -51,28 +51,24 @@
51
51
  </phase>
52
52
 
53
53
  <phase n="6" name="Conclusion">
54
- <goal>Complete the workflow — either delegate execution or finalize direct changes.</goal>
55
- <step n="1" name="Handoff">Message the user to start a new session with the most appropriate handoff target for the next step of the roadmap.</step>
54
+ <goal>Complete the workflow — either finalize the direct (non-behavioral) changes or delegate the behavioral work to the appropriate agent.</goal>
55
+ <step n="1" name="Finalize or Handoff">If you executed non-behavioral deliverables directly (documentation, templates, project tracking files, file moves/renames, or static configuration text), emit a terminal summary of the completed work to the user — do NOT delegate these to another agent. Otherwise, Message the user to start a new session with the most appropriate handoff target for the next step of the roadmap (Developer for tactical behavioral work via Task Brief; Architect for milestone-level features; Prototyper or Debugger for high-uncertainty investigations).</step>
56
56
  </phase>
57
- </workflow>
58
57
 
59
- <handoff_targets>
60
- <handoff target="architect">
61
- <description>Plans milestones and system architecture. Creates technical specifications. Best when a new feature or capability needs structural planning.</description>
62
- </handoff>
63
- <handoff target="developer">
64
- <description>Implements features using test-driven development. Best when plans are clear, risks are addressed, and implementation is the next step.</description>
65
- </handoff>
66
- <handoff target="prototyper">
67
- <description>De-risks feature slices by building standalone scenario runners before implementation. Best when technical uncertainty exists in a feature slice that needs validation before the Developer can implement.</description>
68
- </handoff>
69
- <handoff target="debugger">
70
- <description>Investigates and fixes bugs. Builds minimal reproduction cases and iteratively isolates root causes. Best when unexpected behavior or regression is reported.</description>
71
- </handoff>
72
- <handoff target="assistant">
73
- <description>Executes tactical chores, one-off scripts, document updates, and simple file manipulations. Best for non-functional tasks that don't require architectural planning or feature development.</description>
74
- </handoff>
75
- </handoff_targets>
58
+ <handoff_targets>
59
+ <handoff target="architect">
60
+ <description>Plans milestones and system architecture. Creates technical specifications. Best when a new feature or capability needs structural planning.</description>
61
+ </handoff>
62
+ <handoff target="developer">
63
+ <description>Implements features using test-driven development. Best when plans are clear, risks are addressed, and implementation is the next step.</description>
64
+ </handoff>
65
+ <handoff target="prototyper">
66
+ <description>De-risks feature slices by building standalone scenario runners before implementation. Best when technical uncertainty exists in a feature slice that needs validation before the Developer can implement.</description>
67
+ </handoff>
68
+ <handoff target="debugger">
69
+ <description>Investigates and fixes bugs. Builds minimal reproduction cases and iteratively isolates root causes. Best when unexpected behavior or regression is reported.</description>
70
+ </handoff>
71
+ </handoff_targets>
76
72
  </workflow>
77
73
 
78
74
  </instructions>
@@ -7,16 +7,17 @@ This section defines foundational engineering practices. Each entry MUST be a sp
7
7
  **Template format:** `- **Rule Name:** Description and enforcement mechanism.`
8
8
 
9
9
  ### Recommended: customize per project
10
- - **Version Control:** Branch strategy and commit conventions.
10
+ - **Version Control:** Branch strategy and commit conventions. Every commit MUST leave the suite in a **Continuous Green State** — the full test suite passes before and after each change.
11
11
  - **Run Environment:** Designated runner (e.g., `uv run`, `poetry run`).
12
12
  - **Failure Transparency:** Error handling policy — specific exceptions only, no silent suppression.
13
- - **Testing Strategy:** Test types (Unit/Integration/Acceptance), boundaries, test doubles policy, mock poisoning prevention, filesystem hygiene.
13
+ - **Testing Strategy:** Test types (Unit/Integration/Acceptance), boundaries, and filesystem hygiene. Mandate **Test Double Integrity**: ban global patching, use in-memory fakes for state-managing outbound ports, and strictly autospec-bound mocks only for un-fakeable external side-effects.
14
+ - **Runtime Contract Assertions:** Enforce Design-by-Contract with native `assert condition, "message"` for pre/post-conditions and invariants (strippable via `python -O`); never custom exceptions for contract checks.
14
15
  - **Dependency Injection:** Constructor injection mandate; forbid Service Locator and global containers.
15
16
  - **Centralized Configuration:** Config file location, prohibition of magic numbers.
16
17
  - **CI Pipeline:** Two parallel jobs — 1) Blocking OS matrix test suite with strict test coverage targets. 2) Non-blocking (continue-on-error: true) quality checks running fast formatters, linters, security/secret scanners, type checkers, and repository-wide structural checks (excluding sandboxes and third-party dependencies).
17
18
  - **Pre-commit Hooks:** Scope (staged files only), required hooks (formatters, linters, type checkers, security scanners).
18
19
  - **Post-commit Execution:** Full test suite run on commit, automatic revert on failure.
19
- - **Makefile Commands:** The `Makefile` is the canonical entry point for the VCP commit workflow and on-demand test runs. `make test` runs the full suite, `make commit '<msg>'` performs a VCP commit, and `make probe '<reason>'` runs the Remote Probing Protocol. See [docs/templates/makefile.md](docs/templates/makefile.md).
20
+ - **Makefile Commands:** The `Makefile` is the canonical entry point for the VCP commit workflow and on-demand test runs. `make test` runs the full suite, `make commit '<msg>'` performs a VCP commit (it runs the pre-commit hooks once and commits with `--no-verify`, while the post-commit test gate remains unskippable), and `make probe '<reason>'` runs the Remote Probing Protocol. See [docs/templates/makefile.md](docs/templates/makefile.md).
20
21
 
21
22
  ### Pre-commit Quick-Start
22
23
 
@@ -22,11 +22,12 @@ Defines the high-level artifact lifecycle and conventions for project management
22
22
  - **Milestones:** `MM-name.md` (in `docs/project/milestones/`).
23
23
  - **Case Files (Debugger):** `NN-name.md` — numbered sequentially.
24
24
  - **Task Briefs:** `NN-name.md` (in `docs/project/tasks/`) — numbered sequentially.
25
- - **Ad-hoc work (not tied to a milestone):** `00-NN-name.md` — `00` is used as the Milestone prefix. Ad-hoc slices are NOT tracked in Milestone documents or the Roadmap.
25
+ - **Milestone 0 (bootstrapping) & Ad-hoc work (not tied to a milestone):** `00-NN-name.md` — `00` is used as the Milestone prefix for Milestone 0 bootstrapping slices and for ad-hoc slices. Ad-hoc slices are NOT tracked in Milestone documents or the Roadmap.
26
26
  - **Archiving Policy:** When and how completed artifacts are archived or deleted.
27
- - **Spec Organization:** Organize specification documents by lifecycle into two subfolders: `docs/project/specs/invariants/` (formats, contracts, and workflows of record — long-lived system invariants) and `docs/project/specs/features/` (to-be-implemented initiatives that feed the Spec → Milestone → Slice lifecycle — deleted per the Archiving Policy once implemented).
27
+ - **Spec Organization:** Specification documents live in a single flat directory `docs/project/specs/` and are reserved strictly for **permanent system invariants** — formats, contracts, protocols (e.g. the MRP), core data models, and non-negotiable architectural rules. Feature goals, requirements, and acceptance criteria belong in Milestone documents (`docs/project/milestones/`), not in specs. There is no ephemeral `specs/features/` lifecycle.
28
28
  - **Run Environment:** Specify the project's designated environment/dependency manager (e.g., `uv`, `poetry`, `pip`) and prefix ALL execution commands with its runner (e.g., `uv run pytest`). The chosen runner MUST be reflected in the `Makefile`.
29
29
  - **Build & Run Commands:** Document the standard commands in the project `Makefile` (see [docs/templates/makefile.md](docs/templates/makefile.md)). At minimum: `make test` (full suite), `make commit '<msg>'` (VCP), and `make probe '<reason>'` (Remote Probing Protocol).
30
+ - **Release Process:** Document how releases are cut. At minimum: (1) **Triage** the scope (patch/minor/major) from conventional commits since the last tag; (2) write **release notes** to `docs/project/releases/v<version>.md`; (3) bump the `version` field in the project manifest; (4) present the notes and version bump at an **approval gate**; (5) **commit** (`chore(release): bump version to <version>`) and **tag** (`git tag -a v<version>`); and (6) **publish** (e.g. create a GitHub Release). Adapt the concrete commands to the project's packaging and distribution channel.
30
31
 
31
32
  ## Templates
32
33
 
@@ -34,7 +35,7 @@ Before creating or modifying any documentation artifact, agents MUST read the co
34
35
 
35
36
  | Template | Purpose |
36
37
  | -------- | ------- |
37
- | `specification-document.md` | Specification documents (features and invariants) |
38
+ | `specification-document.md` | Specification documents (permanent system invariants) |
38
39
  | `milestone.md` | Milestone documents |
39
40
  | `vertical-slice.md` | Vertical slice definitions |
40
41
  | `component-design.md` | Component design documents (ports and contracts) |
@@ -75,15 +76,4 @@ A living list of upcoming Milestones and their high-level features.
75
76
  - **Post-commit Hook:** Implement a hook that runs the full test suite via `make test` and reverts the commit on failure (via `git reset --soft HEAD~1`, keeping changes staged). This is the unskippable safety net — `--no-verify` MUST NOT bypass it.
76
77
  - **Debug Workflow:** Create `.github/workflows/debug.yml` following [docs/templates/ci.md](docs/templates/ci.md) to enable the Remote Probing Protocol.
77
78
  - **Makefile:** Create a `Makefile` following [docs/templates/makefile.md](docs/templates/makefile.md) with `make commit`, `make probe`, and `make test` commands. `make commit` implements the VCP workflow, `make probe` implements the Debugger's Remote Probing Protocol, and `make test` runs the full suite on demand.
78
-
79
- ## Technical Debt
80
- Tracks known technical debt for future cleanup.
81
-
82
- **Format:** `- [Description including context and location of the debt item.]`
83
-
84
- **Logging Hygiene (MUST):**
85
- - **Never re-log the same debt.** If a debt item recurs across commits, fold the new occurrence into the existing entry — do NOT append a new bullet.
86
- - **Prefer fixing directly over logging.** Only log debt that genuinely cannot be resolved in the moment. Do not log-then-resolve a defect that could be fixed immediately.
87
- - **Never log resolved items.** Do not add "informational" or "completed" entries.
88
-
89
- **Deletion Policy:** When a technical debt item is addressed (the underlying issue is resolved in a completed milestone/slice), the entry MUST be deleted from this section. Do not mark it as "completed" or "resolved" — remove it entirely. Git history serves as the permanent record.
79
+ - **`.gitignore` Configuration:** Configure a project-tailored `.gitignore` covering language/OS cache files, build artifacts, virtual environments, and the transient `.tmp/` directory. The `spikes/` directory MUST remain tracked so prototypes and probes stay version-controlled.
@@ -0,0 +1,29 @@
1
+ # Spec: {{invariant}}
2
+ - **Status:** Active
3
+
4
+ > **Scope:** This template codifies **permanent system invariants** only — stable formats, contracts, protocols (e.g. the MRP), core data models, and non-negotiable architectural rules of record. It is NOT for feature goals, requirements, or acceptance criteria; those belong in Milestone documents (`docs/project/milestones/`) and Vertical Slices.
5
+
6
+ ## Overview / Problem Statement
7
+
8
+ **Format:** 2-3 paragraphs describing the invariant being codified, why it exists, and what it guarantees.
9
+ Context for the invariant, the contract it establishes, and the risk it mitigates.
10
+
11
+ ## Guiding Principles / Core Logic
12
+
13
+ **Format:** Bulleted list. Each entry: `- **Principle:** Description and how it constrains design decisions.`
14
+ Foundational rules, engineering philosophy, or logical constraints.
15
+
16
+ ## Technical Specification
17
+
18
+ **Format:** Use sub-sections as needed. Include:
19
+ - Data models / contracts (tables or code blocks)
20
+ - File paths and directory structures
21
+ - Workflow diagrams (Mermaid) where applicable
22
+ - Algorithm descriptions
23
+ - Configuration options
24
+ Detailed logic, file formats, directory structures, or workflow diagrams (Mermaid).
25
+
26
+ ## Guidelines
27
+
28
+ **Format:** Bulleted or numbered list of rules for conforming to and evolving this invariant. Each entry should constrain design decisions, not prescribe specific implementation.
29
+ Conformance requirements and the process for amending the invariant.
@@ -29,7 +29,11 @@ Then [expected outcome]
29
29
 
30
30
  ## Key Unknowns
31
31
 
32
- **Format:** Checklist of unresolved risks. Tags: `[Technical]` for code/architecture, `[Functional]` for behavior/UX. Mark as `[x]` when resolved.
32
+ **Format:** Checklist of unresolved risks, each tagged with one of three tiers. Mark as `[x]` when resolved.
33
+ - `[Formal]` — Ambiguities in business rules, policy decisions, domain definitions, or scope boundaries. Resolve by asking the user directly in an alignment turn; speculative coding or prototyping for formal questions is forbidden.
34
+ - `[Technical]` (works-like) — External dependencies, third-party libraries, APIs, runtime performance, concurrency, or data-storage feasibility. Resolve via automated assertion probes and benchmarks.
35
+ - `[Functional]` (looks-like) — User-facing ergonomics, CLI flags, terminal rendering, interactive flows, or layout aesthetic. Resolve via interactive demo runners with configurable knobs.
36
+
33
37
  - [ ] [Tag] Title: Description of the unknown.
34
38
 
35
39
  ## Implementation Plan
@@ -1,27 +0,0 @@
1
- # Spec: {{feature}}
2
- - **Status:** Active
3
-
4
- ## Overview / Problem Statement
5
-
6
- **Format:** 2-3 paragraphs describing the problem being solved, why existing solutions are insufficient, and what makes this approach valuable.
7
- Core problem, context, and value proposition.
8
-
9
- ## Guiding Principles / Core Logic
10
-
11
- **Format:** Bulleted list. Each entry: `- **Principle:** Description and how it constrains design decisions.`
12
- Foundational rules, engineering philosophy, or logical constraints.
13
-
14
- ## Technical Specification
15
-
16
- **Format:** Use sub-sections as needed. Include:
17
- - Data models / contracts (tables or code blocks)
18
- - File paths and directory structures
19
- - Workflow diagrams (Mermaid) where applicable
20
- - Algorithm descriptions
21
- - Configuration options
22
- Detailed logic, file formats, directory structures, or workflow diagrams (Mermaid).
23
-
24
- ## Guidelines
25
-
26
- **Format:** Bulleted or numbered list of actionable guidelines. Each entry should guide decision-making, not prescribe specific implementation.
27
- High-level phasing, sequencing, and technical strategy for the Architect.