prettyplay 0.0.0__tar.gz → 0.0.1__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 (303) hide show
  1. {prettyplay-0.0.0 → prettyplay-0.0.1}/.gitignore +1 -3
  2. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/config.yml +6 -1
  3. prettyplay-0.0.1/.goga/history/2026/add-actions/adr.md +60 -0
  4. prettyplay-0.0.1/.goga/history/2026/add-actions/arch.md +958 -0
  5. prettyplay-0.0.1/.goga/history/2026/add-actions/completed/plan.md +1333 -0
  6. prettyplay-0.0.1/.goga/history/2026/add-actions/design.md +1804 -0
  7. prettyplay-0.0.1/.goga/history/2026/add-actions/task.md +162 -0
  8. prettyplay-0.0.1/.goga/history/2026/add-expect-count/adr.md +85 -0
  9. prettyplay-0.0.1/.goga/history/2026/add-expect-count/arch.md +617 -0
  10. prettyplay-0.0.1/.goga/history/2026/add-expect-count/completed/plan.md +456 -0
  11. prettyplay-0.0.1/.goga/history/2026/add-expect-count/design.md +719 -0
  12. prettyplay-0.0.1/.goga/history/2026/add-expect-count/task.md +114 -0
  13. prettyplay-0.0.1/.goga/history/2026/agent-context-window/adr.md +102 -0
  14. prettyplay-0.0.1/.goga/history/2026/agent-context-window/arch.md +1527 -0
  15. prettyplay-0.0.1/.goga/history/2026/agent-context-window/completed/plan.md +648 -0
  16. prettyplay-0.0.1/.goga/history/2026/agent-context-window/design.md +1125 -0
  17. prettyplay-0.0.1/.goga/history/2026/agent-context-window/task.md +189 -0
  18. prettyplay-0.0.1/.goga/history/2026/better-healt/adr.md +159 -0
  19. prettyplay-0.0.1/.goga/history/2026/better-healt/arch.md +1608 -0
  20. prettyplay-0.0.1/.goga/history/2026/better-healt/completed/plan.md +1367 -0
  21. prettyplay-0.0.1/.goga/history/2026/better-healt/design.md +1810 -0
  22. prettyplay-0.0.1/.goga/history/2026/better-healt/task.md +318 -0
  23. prettyplay-0.0.1/.goga/history/2026/better-healt-2/adr.md +42 -0
  24. prettyplay-0.0.1/.goga/history/2026/better-healt-2/arch.md +228 -0
  25. prettyplay-0.0.1/.goga/history/2026/better-healt-2/completed/plan.md +582 -0
  26. prettyplay-0.0.1/.goga/history/2026/better-healt-2/design.md +706 -0
  27. prettyplay-0.0.1/.goga/history/2026/better-healt-2/task.md +105 -0
  28. prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/adr.md +85 -0
  29. prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/arch.md +682 -0
  30. prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/completed/plan.md +1026 -0
  31. prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/design.md +1217 -0
  32. prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/task.md +244 -0
  33. prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/todo.md +47 -0
  34. prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/adr.md +115 -0
  35. prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/arch.md +912 -0
  36. prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/completed/plan.md +1405 -0
  37. prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/design.md +1341 -0
  38. prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/task.md +204 -0
  39. prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/adr.md +130 -0
  40. prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/arch.md +1207 -0
  41. prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/completed/plan.md +1466 -0
  42. prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/design.md +1487 -0
  43. prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/prd.md +382 -0
  44. prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/task.md +343 -0
  45. prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/adr.md +21 -0
  46. prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/arch.md +1885 -0
  47. prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/completed/plan.md +694 -0
  48. prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/design.md +1081 -0
  49. prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/task.md +145 -0
  50. prettyplay-0.0.1/.goga/memory/architecture.md +61 -0
  51. prettyplay-0.0.1/.goga/memory/code-design.md +57 -0
  52. prettyplay-0.0.1/.goga/tools/mkdocs/traceability.yml +37 -0
  53. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/cooks/anthropic.md +25 -4
  54. prettyplay-0.0.1/.goga/usages/cooks/json_repair.md +68 -0
  55. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/cooks/openai.md +23 -3
  56. prettyplay-0.0.1/.goga/usages/cooks/playwright.md +345 -0
  57. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/cooks/pydantic.md +27 -20
  58. prettyplay-0.0.1/.goga/usages/prompts/group_diagnosis.md +40 -0
  59. prettyplay-0.0.1/.goga/usages/prompts/group_framing.md +25 -0
  60. prettyplay-0.0.1/.goga/usages/prompts/step_cheatsheet.md +87 -0
  61. prettyplay-0.0.1/.goga/usages/prompts/step_generation.md +51 -0
  62. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/bugfix.yml +1 -1
  63. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/development.yml +2 -2
  64. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/epic.yml +1 -1
  65. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/story.yml +1 -1
  66. prettyplay-0.0.1/.goga/workflows/sync.yml +3 -0
  67. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/task.yml +1 -1
  68. prettyplay-0.0.1/MANIFEST.in +1 -0
  69. prettyplay-0.0.1/PKG-INFO +495 -0
  70. prettyplay-0.0.1/README.md +463 -0
  71. prettyplay-0.0.1/docs/configuration.md +391 -0
  72. prettyplay-0.0.1/docs/getting-started.md +220 -0
  73. prettyplay-0.0.1/docs/guides/browser-setup.md +104 -0
  74. prettyplay-0.0.1/docs/guides/writing-steps.md +218 -0
  75. prettyplay-0.0.1/docs/index.md +80 -0
  76. prettyplay-0.0.1/docs/reference/driver-facade.md +211 -0
  77. prettyplay-0.0.1/docs/reference/failure-taxonomy.md +150 -0
  78. prettyplay-0.0.1/docs/reference/groups.md +127 -0
  79. prettyplay-0.0.1/docs/reference/hooks.md +133 -0
  80. prettyplay-0.0.1/docs/reference/interactive-steering.md +123 -0
  81. prettyplay-0.0.1/docs/reference/llm-providers.md +180 -0
  82. prettyplay-0.0.1/docs/reference/self-healing.md +85 -0
  83. prettyplay-0.0.1/docs/reference/settle-polling.md +102 -0
  84. prettyplay-0.0.1/docs/reference/step-cache.md +139 -0
  85. prettyplay-0.0.1/example/conftest.py +127 -0
  86. prettyplay-0.0.1/example/tests/test_duckduckgo.py +8 -0
  87. prettyplay-0.0.1/example/tests/test_yandex.py +8 -0
  88. prettyplay-0.0.1/example/tests/test_youtube.py +14 -0
  89. {prettyplay-0.0.0 → prettyplay-0.0.1}/mkdocs.yml +17 -1
  90. prettyplay-0.0.1/prettyplay/.usages/lifecycle.md +114 -0
  91. prettyplay-0.0.1/prettyplay/.usages/steps.md +120 -0
  92. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/__init__.py +8 -3
  93. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/.usages/addressing.md +1 -1
  94. prettyplay-0.0.1/prettyplay/cache/.usages/budgets.md +51 -0
  95. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/.usages/storage.md +2 -2
  96. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/budgets.py +39 -1
  97. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/models.py +3 -1
  98. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/store.py +33 -14
  99. prettyplay-0.0.1/prettyplay/config/.usages/configuration.md +222 -0
  100. prettyplay-0.0.1/prettyplay/config/__init__.py +6 -0
  101. prettyplay-0.0.1/prettyplay/config/loader.py +381 -0
  102. prettyplay-0.0.1/prettyplay/config/models.py +289 -0
  103. prettyplay-0.0.1/prettyplay/driver/.usages/error_kinds.md +26 -0
  104. prettyplay-0.0.1/prettyplay/driver/.usages/plumbing.md +52 -0
  105. prettyplay-0.0.1/prettyplay/driver/__init__.py +11 -0
  106. prettyplay-0.0.1/prettyplay/driver/errors.py +90 -0
  107. prettyplay-0.0.1/prettyplay/driver/page.py +237 -0
  108. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/driver/session.py +124 -24
  109. prettyplay-0.0.1/prettyplay/engine/.usages/generation.md +134 -0
  110. prettyplay-0.0.1/prettyplay/engine/.usages/healing.md +56 -0
  111. prettyplay-0.0.1/prettyplay/engine/__init__.py +19 -0
  112. prettyplay-0.0.1/prettyplay/engine/attempts.py +95 -0
  113. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/engine/classification.py +13 -6
  114. prettyplay-0.0.1/prettyplay/engine/compliance.py +119 -0
  115. prettyplay-0.0.1/prettyplay/engine/execution.py +30 -0
  116. prettyplay-0.0.1/prettyplay/engine/generator.py +1078 -0
  117. prettyplay-0.0.1/prettyplay/engine/groups/.usages/recovery.md +48 -0
  118. prettyplay-0.0.1/prettyplay/engine/groups/__init__.py +7 -0
  119. prettyplay-0.0.1/prettyplay/engine/groups/diagnosis.py +123 -0
  120. prettyplay-0.0.1/prettyplay/engine/groups/outcome.py +54 -0
  121. prettyplay-0.0.1/prettyplay/engine/groups/recovery.py +413 -0
  122. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/engine/healer.py +46 -20
  123. prettyplay-0.0.1/prettyplay/engine/polling/.usages/settle.md +51 -0
  124. prettyplay-0.0.1/prettyplay/engine/polling/__init__.py +6 -0
  125. prettyplay-0.0.1/prettyplay/engine/polling/settle.py +100 -0
  126. prettyplay-0.0.1/prettyplay/engine/polling/window.py +89 -0
  127. prettyplay-0.0.1/prettyplay/engine/steering/.usages/steering.md +90 -0
  128. prettyplay-0.0.1/prettyplay/engine/steering/__init__.py +5 -0
  129. prettyplay-0.0.1/prettyplay/engine/steering/steering.py +741 -0
  130. prettyplay-0.0.1/prettyplay/engine/text.py +25 -0
  131. prettyplay-0.0.1/prettyplay/executor.py +645 -0
  132. prettyplay-0.0.1/prettyplay/failures/.usages/taxonomy.md +131 -0
  133. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/failures/__init__.py +10 -2
  134. prettyplay-0.0.1/prettyplay/failures/errors.py +422 -0
  135. prettyplay-0.0.1/prettyplay/groups.py +258 -0
  136. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/llm/.usages/classification.md +7 -1
  137. prettyplay-0.0.1/prettyplay/llm/.usages/providers.md +96 -0
  138. prettyplay-0.0.1/prettyplay/llm/__init__.py +26 -0
  139. prettyplay-0.0.1/prettyplay/llm/_request.py +376 -0
  140. prettyplay-0.0.1/prettyplay/llm/anthropic_provider.py +422 -0
  141. prettyplay-0.0.1/prettyplay/llm/models.py +297 -0
  142. prettyplay-0.0.1/prettyplay/llm/openai_provider.py +397 -0
  143. prettyplay-0.0.1/prettyplay/llm/provider.py +259 -0
  144. prettyplay-0.0.1/prettyplay/reporting/.usages/hooks.md +61 -0
  145. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/reporting/hooks.py +28 -3
  146. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/runtime.py +3 -3
  147. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/scenario.py +196 -18
  148. prettyplay-0.0.1/prettyplay.egg-info/PKG-INFO +495 -0
  149. prettyplay-0.0.1/prettyplay.egg-info/SOURCES.txt +240 -0
  150. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay.egg-info/requires.txt +1 -0
  151. {prettyplay-0.0.0 → prettyplay-0.0.1}/pyproject.toml +10 -0
  152. prettyplay-0.0.1/tests/cache/test_budgets.py +184 -0
  153. {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/cache/test_models.py +1 -1
  154. {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/cache/test_store.py +53 -3
  155. prettyplay-0.0.1/tests/config/test_loader.py +832 -0
  156. prettyplay-0.0.1/tests/config/test_models.py +351 -0
  157. prettyplay-0.0.1/tests/conftest.py +100 -0
  158. prettyplay-0.0.1/tests/driver/test_errors.py +59 -0
  159. prettyplay-0.0.1/tests/driver/test_page.py +612 -0
  160. {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/driver/test_session.py +453 -55
  161. prettyplay-0.0.1/tests/engine/groups/test_diagnosis.py +336 -0
  162. prettyplay-0.0.1/tests/engine/groups/test_outcome.py +143 -0
  163. prettyplay-0.0.1/tests/engine/groups/test_recovery.py +812 -0
  164. prettyplay-0.0.1/tests/engine/polling/test_settle.py +321 -0
  165. prettyplay-0.0.1/tests/engine/polling/test_window.py +130 -0
  166. prettyplay-0.0.1/tests/engine/steering/__init__.py +1 -0
  167. prettyplay-0.0.1/tests/engine/steering/test_steering.py +1548 -0
  168. prettyplay-0.0.1/tests/engine/test_attempts.py +144 -0
  169. {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/engine/test_classification.py +78 -11
  170. prettyplay-0.0.1/tests/engine/test_compliance.py +163 -0
  171. prettyplay-0.0.1/tests/engine/test_execution.py +326 -0
  172. prettyplay-0.0.1/tests/engine/test_generator.py +2005 -0
  173. prettyplay-0.0.1/tests/engine/test_healer.py +946 -0
  174. prettyplay-0.0.1/tests/engine/test_text.py +34 -0
  175. prettyplay-0.0.1/tests/failures/__init__.py +0 -0
  176. prettyplay-0.0.1/tests/failures/test_errors.py +628 -0
  177. prettyplay-0.0.1/tests/llm/__init__.py +0 -0
  178. prettyplay-0.0.1/tests/llm/test_anthropic_provider.py +848 -0
  179. prettyplay-0.0.1/tests/llm/test_models.py +538 -0
  180. prettyplay-0.0.1/tests/llm/test_openai_provider.py +851 -0
  181. prettyplay-0.0.1/tests/llm/test_provider.py +591 -0
  182. prettyplay-0.0.1/tests/llm/test_request.py +573 -0
  183. prettyplay-0.0.1/tests/reporting/__init__.py +0 -0
  184. prettyplay-0.0.1/tests/reporting/test_hooks.py +189 -0
  185. prettyplay-0.0.1/tests/test_executor.py +1814 -0
  186. prettyplay-0.0.1/tests/test_groups_integration.py +519 -0
  187. prettyplay-0.0.1/tests/test_integration.py +1497 -0
  188. prettyplay-0.0.1/tests/test_scenario.py +1473 -0
  189. prettyplay-0.0.0/.goga/memory/architecture.md +0 -95
  190. prettyplay-0.0.0/.goga/memory/code-design.md +0 -19
  191. prettyplay-0.0.0/.goga/usages/cooks/playwright.md +0 -115
  192. prettyplay-0.0.0/PKG-INFO +0 -236
  193. prettyplay-0.0.0/README.md +0 -205
  194. prettyplay-0.0.0/docs/defines/master.md +0 -162
  195. prettyplay-0.0.0/prettyplay/.usages/lifecycle.md +0 -50
  196. prettyplay-0.0.0/prettyplay/.usages/steps.md +0 -56
  197. prettyplay-0.0.0/prettyplay/CODEMANIFEST +0 -182
  198. prettyplay-0.0.0/prettyplay/cache/.usages/budgets.md +0 -21
  199. prettyplay-0.0.0/prettyplay/cache/CODEMANIFEST +0 -152
  200. prettyplay-0.0.0/prettyplay/config/.usages/configuration.md +0 -87
  201. prettyplay-0.0.0/prettyplay/config/CODEMANIFEST +0 -132
  202. prettyplay-0.0.0/prettyplay/config/__init__.py +0 -6
  203. prettyplay-0.0.0/prettyplay/config/loader.py +0 -192
  204. prettyplay-0.0.0/prettyplay/config/models.py +0 -92
  205. prettyplay-0.0.0/prettyplay/driver/.usages/facade.md +0 -66
  206. prettyplay-0.0.0/prettyplay/driver/CODEMANIFEST +0 -162
  207. prettyplay-0.0.0/prettyplay/driver/__init__.py +0 -6
  208. prettyplay-0.0.0/prettyplay/driver/page.py +0 -350
  209. prettyplay-0.0.0/prettyplay/engine/.usages/generation.md +0 -45
  210. prettyplay-0.0.0/prettyplay/engine/.usages/healing.md +0 -31
  211. prettyplay-0.0.0/prettyplay/engine/CODEMANIFEST +0 -215
  212. prettyplay-0.0.0/prettyplay/engine/__init__.py +0 -8
  213. prettyplay-0.0.0/prettyplay/engine/execution.py +0 -25
  214. prettyplay-0.0.0/prettyplay/engine/generator.py +0 -318
  215. prettyplay-0.0.0/prettyplay/engine/text.py +0 -19
  216. prettyplay-0.0.0/prettyplay/executor.py +0 -109
  217. prettyplay-0.0.0/prettyplay/failures/.usages/taxonomy.md +0 -40
  218. prettyplay-0.0.0/prettyplay/failures/CODEMANIFEST +0 -117
  219. prettyplay-0.0.0/prettyplay/failures/errors.py +0 -147
  220. prettyplay-0.0.0/prettyplay/llm/.usages/providers.md +0 -33
  221. prettyplay-0.0.0/prettyplay/llm/CODEMANIFEST +0 -125
  222. prettyplay-0.0.0/prettyplay/llm/__init__.py +0 -8
  223. prettyplay-0.0.0/prettyplay/llm/_request.py +0 -216
  224. prettyplay-0.0.0/prettyplay/llm/anthropic_provider.py +0 -213
  225. prettyplay-0.0.0/prettyplay/llm/models.py +0 -22
  226. prettyplay-0.0.0/prettyplay/llm/openai_provider.py +0 -187
  227. prettyplay-0.0.0/prettyplay/llm/provider.py +0 -115
  228. prettyplay-0.0.0/prettyplay/reporting/.usages/hooks.md +0 -41
  229. prettyplay-0.0.0/prettyplay/reporting/CODEMANIFEST +0 -79
  230. prettyplay-0.0.0/prettyplay.egg-info/PKG-INFO +0 -236
  231. prettyplay-0.0.0/prettyplay.egg-info/SOURCES.txt +0 -144
  232. prettyplay-0.0.0/tests/cache/test_budgets.py +0 -94
  233. prettyplay-0.0.0/tests/config/test_loader.py +0 -318
  234. prettyplay-0.0.0/tests/config/test_models.py +0 -166
  235. prettyplay-0.0.0/tests/conftest.py +0 -47
  236. prettyplay-0.0.0/tests/driver/test_page.py +0 -637
  237. prettyplay-0.0.0/tests/engine/test_execution.py +0 -148
  238. prettyplay-0.0.0/tests/engine/test_generator.py +0 -713
  239. prettyplay-0.0.0/tests/engine/test_healer.py +0 -505
  240. prettyplay-0.0.0/tests/failures/test_errors.py +0 -199
  241. prettyplay-0.0.0/tests/llm/test_anthropic_provider.py +0 -472
  242. prettyplay-0.0.0/tests/llm/test_models.py +0 -47
  243. prettyplay-0.0.0/tests/llm/test_openai_provider.py +0 -499
  244. prettyplay-0.0.0/tests/llm/test_provider.py +0 -109
  245. prettyplay-0.0.0/tests/llm/test_request.py +0 -65
  246. prettyplay-0.0.0/tests/reporting/test_hooks.py +0 -81
  247. prettyplay-0.0.0/tests/test_executor.py +0 -421
  248. prettyplay-0.0.0/tests/test_integration.py +0 -555
  249. prettyplay-0.0.0/tests/test_scenario.py +0 -613
  250. {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/docs.yml +0 -0
  251. {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/lint.yml +0 -0
  252. {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/new_version.yml +0 -0
  253. {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/notify.yml +0 -0
  254. {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/publish.yml +0 -0
  255. {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/strictacode.yml +0 -0
  256. {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/tests.yml +0 -0
  257. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/Dockerfile +0 -0
  258. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/adr.md +0 -0
  259. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/arch.md +0 -0
  260. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/completed/plan.md +0 -0
  261. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/design.md +0 -0
  262. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/task.md +0 -0
  263. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/adr.md +0 -0
  264. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/arch.md +0 -0
  265. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/completed/plan.md +0 -0
  266. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/design.md +0 -0
  267. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/task.md +0 -0
  268. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/adr.md +0 -0
  269. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/arch.md +0 -0
  270. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/completed/plan.md +0 -0
  271. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/design.md +0 -0
  272. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/prd.md +0 -0
  273. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/task.md +0 -0
  274. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/scaffold.yml +0 -0
  275. {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/conventions.md +0 -0
  276. {prettyplay-0.0.0 → prettyplay-0.0.1}/.strictacode.yml +0 -0
  277. {prettyplay-0.0.0 → prettyplay-0.0.1}/LICENSE +0 -0
  278. {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/analyst.sh +0 -0
  279. {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/architector.sh +0 -0
  280. {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/developer.sh +0 -0
  281. {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/manager.sh +0 -0
  282. {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/product.sh +0 -0
  283. {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/reviewer.sh +0 -0
  284. {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/tester.sh +0 -0
  285. {prettyplay-0.0.0 → prettyplay-0.0.1}/docs/overrides/main.html +0 -0
  286. {prettyplay-0.0.0 → prettyplay-0.0.1/example}/tests/__init__.py +0 -0
  287. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/__init__.py +0 -0
  288. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/text.py +0 -0
  289. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/reporting/__init__.py +0 -0
  290. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/reporting/reporter.py +0 -0
  291. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay.egg-info/dependency_links.txt +0 -0
  292. {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay.egg-info/top_level.txt +0 -0
  293. {prettyplay-0.0.0 → prettyplay-0.0.1}/setup.cfg +0 -0
  294. {prettyplay-0.0.0/tests/cache → prettyplay-0.0.1/tests}/__init__.py +0 -0
  295. {prettyplay-0.0.0/tests/config → prettyplay-0.0.1/tests/cache}/__init__.py +0 -0
  296. {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/cache/test_text.py +0 -0
  297. {prettyplay-0.0.0/tests/driver → prettyplay-0.0.1/tests/config}/__init__.py +0 -0
  298. {prettyplay-0.0.0/tests/engine → prettyplay-0.0.1/tests/driver}/__init__.py +0 -0
  299. {prettyplay-0.0.0/tests/failures → prettyplay-0.0.1/tests/engine}/__init__.py +0 -0
  300. {prettyplay-0.0.0/tests/llm → prettyplay-0.0.1/tests/engine/groups}/__init__.py +0 -0
  301. {prettyplay-0.0.0/tests/reporting → prettyplay-0.0.1/tests/engine/polling}/__init__.py +0 -0
  302. {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/reporting/test_reporter.py +0 -0
  303. {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/test_runtime.py +0 -0
@@ -221,11 +221,9 @@ docs/tasks/
221
221
  docs/proposals/
222
222
  docs/superpowers/
223
223
 
224
- # Prettyplay step cache
225
- .prettyplay/
226
-
227
224
  # examole
228
225
  example.py
226
+ example/.prettyplay/
229
227
 
230
228
  # Agents
231
229
  .claude/
@@ -3,6 +3,8 @@ language: python
3
3
  image: prettyplay:latest
4
4
  dockerfile: .goga/Dockerfile
5
5
 
6
+ .base-ref: &base-ref 0.0.x
7
+
6
8
  .claude-env: &claude-env
7
9
  ANTHROPIC_MODEL: opus
8
10
  ANTHROPIC_BASE_URL: "https://api.z.ai/api/anthropic"
@@ -12,7 +14,7 @@ build:
12
14
  agent: developer
13
15
  review_executor:
14
16
  agent: reviewer
15
- base_ref: master
17
+ base_ref: *base-ref
16
18
 
17
19
  pipeline:
18
20
  agent: claude
@@ -20,6 +22,9 @@ pipeline:
20
22
  <<: *claude-env
21
23
  ANTHROPIC_DEFAULT_OPUS_MODEL: "glm-5.3[1m]"
22
24
 
25
+ topics:
26
+ base_ref: *base-ref
27
+
23
28
  codemanifest:
24
29
  usages:
25
30
  conventions: .goga/usages/conventions.md
@@ -0,0 +1,60 @@
1
+ ---
2
+ status: accepted
3
+ date: 2026-09-11
4
+ ---
5
+
6
+ # Full Playwright parity for the generation API surface
7
+
8
+ Generated step code works only through the `PageFacade`/`LocatorFacade` surface, and the exact
9
+ listing of that surface is sent to the LLM as PAGE API. Real scenarios kept failing on missing
10
+ actions — the motivating case: generated code called a non-existent `press` on a located element.
11
+ The LLM assumes Playwright's API because that is what it knows, so every divergence between the
12
+ facade and Playwright is a latent failure. We decided to move the facade from a narrow curated
13
+ surface to **full parity with the Playwright sync API at page/locator level**, mirroring Playwright
14
+ names 1:1 across the whole surface — including renaming existing methods (`find_by_role` →
15
+ `get_by_role`, `open` → `goto`) — because name divergence was the exact source of the motivating
16
+ failure. Backward compatibility is dropped entirely: it is not a concern for this break and is not
17
+ adopted as a policy going forward.
18
+
19
+ ## Decision points
20
+
21
+ - **Boundary**: the full user-level contour — all interaction actions (keyboard including `press`,
22
+ hover, checkbox/radio, clear, double/right click, drag&drop, file upload), all navigation
23
+ (`goto`/back/forward/reload), the full expectation and wait set (value, checked, count,
24
+ attribute, hidden, URL, title, wait_for), dialogs, iframes, tabs/popups with switching.
25
+ Deliberately excluded: network interception (route/request), arbitrary JS (`evaluate`), CDP,
26
+ clock, HAR, tracing — the page-state model that failure classification and healing rely on must
27
+ stay honest.
28
+ - **Names**: the whole surface mirrors Playwright names 1:1; existing methods are renamed to their
29
+ mirror counterparts. New Playwright capabilities arriving later are expected to land as mirror
30
+ extensions.
31
+ - **Extras**: the prettyplay-specific scroll family (`scroll_to_element`, `scroll_down`,
32
+ `scroll_to_bottom`, `scroll_into_view`, `scroll_container_*`) stays on top of the mirror under
33
+ its own names — power Playwright does not offer at this level.
34
+ - **Expectation model**: method-style `expect_*` calls on the facade with full coverage; the
35
+ chained `expect(locator).to_be_*()` model of Playwright is not adopted — the fixed step form
36
+ (one page-facade argument, no imports) forbids it.
37
+ - **Multi-page**: popups and new tabs are in scope, with switching to the opened window and back.
38
+ - **Delivery**: one change covering the whole surface at once, no phasing.
39
+ - **Step cache**: explicitly a non-decision — the cache can simply be deleted or healed lazily
40
+ through the existing classify → rot → regenerate loop; no dedicated mechanism is built.
41
+ - **Dialogs**: automatic dialog acceptance (the `page.on("dialog", accept)` equivalent) becomes a
42
+ setting of the browser group of `BrowserConfig`.
43
+
44
+ ## Consequences
45
+
46
+ - The driver's standing constraint "the facade surface is a backward-compatibility contract —
47
+ extend, never rename or remove" is retired; the parity principle replaces it.
48
+ - The `facade` practice, the PAGE API listing that mirrors it exactly, and the generation system
49
+ prompt examples change together in one move.
50
+ - The facade remains a thread-marshaling wrapper over the driver thread: parity means names and
51
+ capabilities, never exposing raw Playwright objects.
52
+ - Renamed methods make cached steps fail; the accepted answer is manual deletion or lazy healing —
53
+ misclassification noise on AttributeError is an accepted cost.
54
+
55
+ ## Unresolved questions (contract phase)
56
+
57
+ - The exact name mapping between the current surface and the Playwright mirror.
58
+ - The dialog expectation construct for scenarios that must verify a dialog, and the behavior when
59
+ the auto-accept setting is off.
60
+ - The mechanism for tab/popup switching and for iframe access.