pdl-taskmaster 2.5.1__tar.gz → 2.6.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 (1393) hide show
  1. pdl_taskmaster-2.6.0/.gitignore +19 -0
  2. pdl_taskmaster-2.6.0/AGENTS.md +69 -0
  3. pdl_taskmaster-2.6.0/ARCHITECTURE.md +276 -0
  4. pdl_taskmaster-2.6.0/GOAL.md +142 -0
  5. pdl_taskmaster-2.6.0/PKG-INFO +207 -0
  6. pdl_taskmaster-2.6.0/README.md +162 -0
  7. pdl_taskmaster-2.6.0/REVIEWER.md +61 -0
  8. pdl_taskmaster-2.6.0/TARGET_ARCHITECTURE.md +156 -0
  9. pdl_taskmaster-2.6.0/VERSION +1 -0
  10. pdl_taskmaster-2.6.0/catalogue_runs.py +19 -0
  11. pdl_taskmaster-2.6.0/contracts/CONTRACT_MANIFEST.json +239 -0
  12. pdl_taskmaster-2.6.0/contracts/EXECUTION_CONTRACT.json +666 -0
  13. pdl_taskmaster-2.6.0/contracts/VERIFICATION_CONTRACT.json +379 -0
  14. pdl_taskmaster-2.6.0/contracts/standards/EXECUTION_STANDARD.md +16 -0
  15. pdl_taskmaster-2.6.0/contracts/standards/PDL_STANDARD.md +21 -0
  16. pdl_taskmaster-2.6.0/contracts/standards/RESPONSE_PLAN_STANDARD.md +24 -0
  17. pdl_taskmaster-2.6.0/contracts/standards/RESULT_STANDARD.md +34 -0
  18. pdl_taskmaster-2.6.0/contracts/standards/SEMANTIC_INPUT_STANDARD.md +15 -0
  19. pdl_taskmaster-2.6.0/contracts/standards/UNCONFIRMED_STANDARD.md +13 -0
  20. pdl_taskmaster-2.6.0/docs/SANDBOX.md +139 -0
  21. pdl_taskmaster-2.6.0/docs/adr/0001-controller-gated-pseudocode-protocol.md +217 -0
  22. pdl_taskmaster-2.6.0/docs/adr/0002-controller-owned-artifact-controls.md +104 -0
  23. pdl_taskmaster-2.6.0/docs/adr/0003-phase-projected-single-model-contexts.md +95 -0
  24. pdl_taskmaster-2.6.0/docs/adr/0004-confirmed-artifacts-as-execution-boundary.md +100 -0
  25. pdl_taskmaster-2.6.0/docs/adr/0005-optional-result-pseudocode.md +100 -0
  26. pdl_taskmaster-2.6.0/docs/adr/0006-bounded-pre-execution-reasoning.md +113 -0
  27. pdl_taskmaster-2.6.0/docs/adr/0007-operationalize-negative-constraints-by-omission.md +90 -0
  28. pdl_taskmaster-2.6.0/docs/adr/0008-context-and-session-management.md +67 -0
  29. pdl_taskmaster-2.6.0/docs/adr/0009-result-pseudocode-decomposition-standard.md +46 -0
  30. pdl_taskmaster-2.6.0/docs/adr/0010-pydantic-wire-enforcement.md +39 -0
  31. pdl_taskmaster-2.6.0/docs/adr/0011-in-memory-vfs-and-microvm-sandboxing.md +40 -0
  32. pdl_taskmaster-2.6.0/docs/adr/0012-system-1-decision-models-via-rlcd.md +57 -0
  33. pdl_taskmaster-2.6.0/docs/adr/0013-substantive-correctness-verification.md +47 -0
  34. pdl_taskmaster-2.6.0/docs/adr/0014-dual-plane-boundary-and-wire-conformance.md +51 -0
  35. pdl_taskmaster-2.6.0/docs/adr/0015-model-synthesized-verification-and-confinement-boundaries.md +31 -0
  36. pdl_taskmaster-2.6.0/docs/adr/0016-pydantic-ssot-wire-and-deliverable-boundary-enforcement.md +27 -0
  37. pdl_taskmaster-2.6.0/docs/adr/0017-dual-plane-runtime-realignment-and-mrv-solver-governance.md +34 -0
  38. pdl_taskmaster-2.6.0/docs/adr/0018-elimination-of-regex-heuristics-in-verification-and-reconciliation-integrity.md +47 -0
  39. pdl_taskmaster-2.6.0/docs/adr/0019-headless-waiting-input-exit-and-wire-tolerance.md +64 -0
  40. pdl_taskmaster-2.6.0/docs/adr/0020-system-1-environment-conditioned-refusal-routing.md +34 -0
  41. pdl_taskmaster-2.6.0/docs/adr/0021-session-scoped-os-native-confinement.md +34 -0
  42. pdl_taskmaster-2.6.0/docs/adr/0022-default-reasoning-high-pre-execution.md +24 -0
  43. pdl_taskmaster-2.6.0/docs/adr/0023-taskmaster-host-interface-and-event-contract.md +83 -0
  44. pdl_taskmaster-2.6.0/docs/adr/0024-operation-profiles.md +88 -0
  45. pdl_taskmaster-2.6.0/docs/adr/0025-agentic-capability-boundary.md +86 -0
  46. pdl_taskmaster-2.6.0/docs/adr/0026-extension-and-workflow-model.md +85 -0
  47. pdl_taskmaster-2.6.0/docs/adr/0027-typed-task-entity-extraction.md +53 -0
  48. pdl_taskmaster-2.6.0/docs/adr/0028-model-capability-boundary.md +81 -0
  49. pdl_taskmaster-2.6.0/docs/adr/0029-in-call-agent-tools.md +53 -0
  50. pdl_taskmaster-2.6.0/docs/adr/0030-positive-witness-forms.md +41 -0
  51. pdl_taskmaster-2.6.0/docs/adr/README.md +42 -0
  52. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0001-output-contracts-from-pydantic.md +125 -0
  53. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0002-openrouter-capability-adapter.md +85 -0
  54. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0003-model-profiles.md +99 -0
  55. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0004-reasoning-allocation-per-model.md +41 -0
  56. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0005-normative-store-and-workspace-layout.md +40 -0
  57. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0006-result-ir-schema-and-validation.md +43 -0
  58. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0007-wire-payloads-and-drafting-guidance.md +39 -0
  59. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0008-system-1-client-and-gating.md +50 -0
  60. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0009-verification-witnesses-and-checkers.md +55 -0
  61. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0010-sandbox-backends-and-execution-budgets.md +62 -0
  62. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0011-headless-exit-handling.md +30 -0
  63. pdl_taskmaster-2.6.0/docs/adr/impl/IMPL-0012-typed-task-entity-extraction.md +49 -0
  64. pdl_taskmaster-2.6.0/docs/adr/impl/README.md +41 -0
  65. pdl_taskmaster-2.6.0/docs/api.md +112 -0
  66. pdl_taskmaster-2.6.0/docs/architecture.md +64 -0
  67. pdl_taskmaster-2.6.0/docs/audits/NEGATIVE_CLAUSE_AUDIT.md +104 -0
  68. pdl_taskmaster-2.6.0/docs/audits/RELEASE_AUDIT_2.6.0rc1.md +72 -0
  69. pdl_taskmaster-2.6.0/docs/benchmarks.md +280 -0
  70. pdl_taskmaster-2.6.0/docs/evaluation.md +53 -0
  71. pdl_taskmaster-2.6.0/docs/extensions.md +149 -0
  72. pdl_taskmaster-2.6.0/docs/getting-started.md +38 -0
  73. pdl_taskmaster-2.6.0/docs/guardrails/ANTI_OVERFITTING_AND_BENCHMARK_INTEGRITY.md +67 -0
  74. pdl_taskmaster-2.6.0/docs/hosts/linux.md +191 -0
  75. pdl_taskmaster-2.6.0/docs/hosts/macos.md +195 -0
  76. pdl_taskmaster-2.6.0/docs/hosts/windows.md +194 -0
  77. pdl_taskmaster-2.6.0/docs/index.md +67 -0
  78. pdl_taskmaster-2.6.0/docs/mcp/EXTERNAL_TOOLS.md +82 -0
  79. pdl_taskmaster-2.6.0/docs/mcp/INTERNAL_TOOLS.md +36 -0
  80. pdl_taskmaster-2.6.0/docs/plans/0028-model-capability-boundary-plan.md +217 -0
  81. pdl_taskmaster-2.6.0/docs/plans/API_SURFACE_MAP.md +62 -0
  82. pdl_taskmaster-2.6.0/docs/plans/ENTITY_REDESIGN.md +240 -0
  83. pdl_taskmaster-2.6.0/docs/plans/ENTITY_V3_DESIGN.md +241 -0
  84. pdl_taskmaster-2.6.0/docs/plans/ENTITY_VNEXT_PLAN.md +342 -0
  85. pdl_taskmaster-2.6.0/docs/plans/L100_LIVE_REPORT.md +178 -0
  86. pdl_taskmaster-2.6.0/docs/plans/L107_SCRATCHPAD_REVIEW.md +84 -0
  87. pdl_taskmaster-2.6.0/docs/plans/L93-draft-execute-report.md +198 -0
  88. pdl_taskmaster-2.6.0/docs/plans/L96-stage-ablation-plan.md +290 -0
  89. pdl_taskmaster-2.6.0/docs/plans/LEDGER.md +180 -0
  90. pdl_taskmaster-2.6.0/docs/plans/PASS_RATE_TRACKER.md +168 -0
  91. pdl_taskmaster-2.6.0/docs/plans/REQUEST_TESTS_PROPOSAL.md +121 -0
  92. pdl_taskmaster-2.6.0/docs/plans/TOOL_EXTRACTION_PLAN.md +107 -0
  93. pdl_taskmaster-2.6.0/docs/plans/TOOL_LOOP_MCP_EVAL.md +76 -0
  94. pdl_taskmaster-2.6.0/docs/plans/b2-worklist.md +99 -0
  95. pdl_taskmaster-2.6.0/docs/plans/pr2-worklist.md +152 -0
  96. pdl_taskmaster-2.6.0/docs/plans/protocol-fixes-plan.md +251 -0
  97. pdl_taskmaster-2.6.0/docs/plans/protocol-vs-control-experiment-design.md +801 -0
  98. pdl_taskmaster-2.6.0/docs/plans/ultrafast-route-design.md +315 -0
  99. pdl_taskmaster-2.6.0/docs/providers/2026-10-02/harness-probe.json +293 -0
  100. pdl_taskmaster-2.6.0/docs/providers/2026-10-02/live-sessions.json +968 -0
  101. pdl_taskmaster-2.6.0/docs/providers/2026-10-02/routing-verification.json +286 -0
  102. pdl_taskmaster-2.6.0/docs/providers/2026-10-02/stream-benchmark-reasoning-high.json +396 -0
  103. pdl_taskmaster-2.6.0/docs/providers/2026-10-02/stream-benchmark-reasoning-low.json +652 -0
  104. pdl_taskmaster-2.6.0/docs/providers.md +48 -0
  105. pdl_taskmaster-2.6.0/docs/reference.md +49 -0
  106. pdl_taskmaster-2.6.0/docs/releasing.md +61 -0
  107. pdl_taskmaster-2.6.0/docs/repl.md +167 -0
  108. pdl_taskmaster-2.6.0/experiments/ADJUDICATION_55_RESULTS.json +1294 -0
  109. pdl_taskmaster-2.6.0/experiments/PROMPT_SET.lock.json +789 -0
  110. pdl_taskmaster-2.6.0/experiments/README.md +55 -0
  111. pdl_taskmaster-2.6.0/experiments/__init__.py +6 -0
  112. pdl_taskmaster-2.6.0/experiments/adjudicate.py +80 -0
  113. pdl_taskmaster-2.6.0/experiments/adjudicate_55.py +254 -0
  114. pdl_taskmaster-2.6.0/experiments/analysis.py +269 -0
  115. pdl_taskmaster-2.6.0/experiments/baseline/BASELINE.json +5428 -0
  116. pdl_taskmaster-2.6.0/experiments/baseline/BASELINE.md +150 -0
  117. pdl_taskmaster-2.6.0/experiments/baseline.py +96 -0
  118. pdl_taskmaster-2.6.0/experiments/controls.py +253 -0
  119. pdl_taskmaster-2.6.0/experiments/five_arm_report.py +613 -0
  120. pdl_taskmaster-2.6.0/experiments/gate_config.example.json +141 -0
  121. pdl_taskmaster-2.6.0/experiments/gate_config.smoke.json +24 -0
  122. pdl_taskmaster-2.6.0/experiments/gate_report.py +165 -0
  123. pdl_taskmaster-2.6.0/experiments/generate.py +343 -0
  124. pdl_taskmaster-2.6.0/experiments/graders_gen.py +44 -0
  125. pdl_taskmaster-2.6.0/experiments/grading.py +298 -0
  126. pdl_taskmaster-2.6.0/experiments/interaction.py +130 -0
  127. pdl_taskmaster-2.6.0/experiments/judge.py +364 -0
  128. pdl_taskmaster-2.6.0/experiments/l100_vnext/fixed_entity.py +288 -0
  129. pdl_taskmaster-2.6.0/experiments/l100_vnext/frozen_cli.py +84 -0
  130. pdl_taskmaster-2.6.0/experiments/l100_vnext/orig_corpus.py +125 -0
  131. pdl_taskmaster-2.6.0/experiments/l100_vnext/orig_defects.py +74 -0
  132. pdl_taskmaster-2.6.0/experiments/l100_vnext/quotes.py +87 -0
  133. pdl_taskmaster-2.6.0/experiments/l100_vnext/static_checks.py +294 -0
  134. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_report.txt +37 -0
  135. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_results.json +1539 -0
  136. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/000.py +66 -0
  137. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/001.py +112 -0
  138. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/002.py +89 -0
  139. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/003.py +54 -0
  140. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/004.py +151 -0
  141. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/005.py +127 -0
  142. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/006.py +181 -0
  143. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/007.py +27 -0
  144. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/008.py +84 -0
  145. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/009.py +18 -0
  146. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/010.py +117 -0
  147. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/011.py +99 -0
  148. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/012.py +30 -0
  149. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/013.py +225 -0
  150. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/014.py +41 -0
  151. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/015.py +128 -0
  152. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/016.py +29 -0
  153. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/017.py +208 -0
  154. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/018.py +79 -0
  155. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/019.py +154 -0
  156. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/020.py +30 -0
  157. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/021.py +157 -0
  158. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/022.py +118 -0
  159. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/023.py +39 -0
  160. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/024.py +297 -0
  161. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/025.py +17 -0
  162. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/026.py +27 -0
  163. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/027.py +156 -0
  164. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/028.py +23 -0
  165. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/029.py +123 -0
  166. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/030.py +201 -0
  167. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/031.py +207 -0
  168. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/032.py +29 -0
  169. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/033.py +168 -0
  170. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/034.py +29 -0
  171. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/035.py +30 -0
  172. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/036.py +164 -0
  173. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/037.py +2087 -0
  174. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/038.py +35 -0
  175. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/039.py +96 -0
  176. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/040.py +178 -0
  177. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/041.py +199 -0
  178. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/042.py +30 -0
  179. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/043.py +17 -0
  180. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/044.py +23 -0
  181. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/045.py +157 -0
  182. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/046.py +168 -0
  183. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/047.py +381 -0
  184. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/048.py +26 -0
  185. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/049.py +62 -0
  186. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/050.py +11 -0
  187. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/051.py +36 -0
  188. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/052.py +17 -0
  189. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/053.py +33 -0
  190. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/054.py +211 -0
  191. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/055.py +105 -0
  192. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/056.py +144 -0
  193. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/057.py +85 -0
  194. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/058.py +116 -0
  195. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/059.py +33 -0
  196. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/060.py +150 -0
  197. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/061.py +464 -0
  198. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/062.py +29 -0
  199. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/063.py +72 -0
  200. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/064.py +117 -0
  201. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/065.py +77 -0
  202. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/066.py +127 -0
  203. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/067.py +30 -0
  204. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/068.py +23 -0
  205. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/069.py +144 -0
  206. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/070.py +29 -0
  207. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/071.py +189 -0
  208. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests/072.py +150 -0
  209. pdl_taskmaster-2.6.0/experiments/l115-request-tests/bound_tests.py +140 -0
  210. pdl_taskmaster-2.6.0/experiments/l115-request-tests/corpus.py +22 -0
  211. pdl_taskmaster-2.6.0/experiments/l115-request-tests/evaluate.py +41 -0
  212. pdl_taskmaster-2.6.0/experiments/l115-request-tests/report.py +48 -0
  213. pdl_taskmaster-2.6.0/experiments/l115-request-tests/report.txt +36 -0
  214. pdl_taskmaster-2.6.0/experiments/l115-request-tests/report_bound.py +40 -0
  215. pdl_taskmaster-2.6.0/experiments/l115-request-tests/results.json +3160 -0
  216. pdl_taskmaster-2.6.0/experiments/l115-request-tests/runner.py +50 -0
  217. pdl_taskmaster-2.6.0/experiments/l115-request-tests/tests/04-02-s1.py +156 -0
  218. pdl_taskmaster-2.6.0/experiments/l115-request-tests/tests/04-02-s2.py +248 -0
  219. pdl_taskmaster-2.6.0/experiments/l115-request-tests/tests/04-03-s1.py +101 -0
  220. pdl_taskmaster-2.6.0/experiments/l115-request-tests/tests/04-03-s2.py +42 -0
  221. pdl_taskmaster-2.6.0/experiments/l115-request-tests/write_tests.py +38 -0
  222. pdl_taskmaster-2.6.0/experiments/pdl_format/PLAN.md +131 -0
  223. pdl_taskmaster-2.6.0/experiments/pdl_format/analyze_pilot.py +243 -0
  224. pdl_taskmaster-2.6.0/experiments/pdl_format/grade_t1.py +340 -0
  225. pdl_taskmaster-2.6.0/experiments/pdl_format/judge_pilot.py +265 -0
  226. pdl_taskmaster-2.6.0/experiments/pdl_format/kit/EXPERIMENT_PLAN.md +199 -0
  227. pdl_taskmaster-2.6.0/experiments/pdl_format/kit/README.md +22 -0
  228. pdl_taskmaster-2.6.0/experiments/pdl_format/kit/config/arm-instructions.md +31 -0
  229. pdl_taskmaster-2.6.0/experiments/pdl_format/kit/config/preregistration.yaml +90 -0
  230. pdl_taskmaster-2.6.0/experiments/pdl_format/preregistration.yaml +64 -0
  231. pdl_taskmaster-2.6.0/experiments/pdl_format/reference/reconcile.py +80 -0
  232. pdl_taskmaster-2.6.0/experiments/pdl_format/run_pilot.py +190 -0
  233. pdl_taskmaster-2.6.0/experiments/pdl_format/scoring/SCORING_PROTOCOL.md +53 -0
  234. pdl_taskmaster-2.6.0/experiments/pdl_format/scoring/acceptance-criteria.csv +42 -0
  235. pdl_taskmaster-2.6.0/experiments/pdl_format/scoring/golden-expectations.json +109 -0
  236. pdl_taskmaster-2.6.0/experiments/pdl_format/tasks/fixtures/task-01/accounts.csv +5 -0
  237. pdl_taskmaster-2.6.0/experiments/pdl_format/tasks/fixtures/task-01/events.jsonl +11 -0
  238. pdl_taskmaster-2.6.0/experiments/pdl_format/tasks/fixtures/task-01/pricing.json +6 -0
  239. pdl_taskmaster-2.6.0/experiments/pdl_format/tasks/task-01-usage-reconciliation.md +83 -0
  240. pdl_taskmaster-2.6.0/experiments/pdl_format/tasks/task-02-queue-cutover.md +51 -0
  241. pdl_taskmaster-2.6.0/experiments/pdl_format/tasks/task-03-incident-postmortem.md +52 -0
  242. pdl_taskmaster-2.6.0/experiments/prompt_set.py +134 -0
  243. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-01.json +10 -0
  244. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-01.txt +1 -0
  245. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-02.json +10 -0
  246. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-02.txt +1 -0
  247. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-03.json +10 -0
  248. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-03.txt +1 -0
  249. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-04.json +10 -0
  250. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-04.txt +1 -0
  251. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-05.json +11 -0
  252. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-05.txt +1 -0
  253. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-06.json +10 -0
  254. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-06.txt +1 -0
  255. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-07.json +10 -0
  256. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-07.txt +1 -0
  257. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-08.json +10 -0
  258. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-08.txt +1 -0
  259. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-09.json +10 -0
  260. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/A-09.txt +1 -0
  261. pdl_taskmaster-2.6.0/experiments/prompts/ambiguity/MANIFEST.json +93 -0
  262. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-01.solution.json +29 -0
  263. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-01.txt +10 -0
  264. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-02.solution.json +29 -0
  265. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-02.txt +10 -0
  266. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-03.solution.json +29 -0
  267. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-03.txt +10 -0
  268. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-04.solution.json +29 -0
  269. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-04.txt +10 -0
  270. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-05.solution.json +29 -0
  271. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-05.txt +9 -0
  272. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-06.solution.json +29 -0
  273. pdl_taskmaster-2.6.0/experiments/prompts/dev/HG/D-HG-06.txt +9 -0
  274. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-01.solution.json +85 -0
  275. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-01.txt +4 -0
  276. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-02.solution.json +85 -0
  277. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-02.txt +4 -0
  278. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-03.solution.json +85 -0
  279. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-03.txt +4 -0
  280. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-04.solution.json +85 -0
  281. pdl_taskmaster-2.6.0/experiments/prompts/dev/HP/D-HP-04.txt +4 -0
  282. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-01.solution.json +11 -0
  283. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-01.txt +7 -0
  284. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-02.solution.json +11 -0
  285. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-02.txt +7 -0
  286. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-03.solution.json +11 -0
  287. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-03.txt +7 -0
  288. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-04.solution.json +11 -0
  289. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-04.txt +7 -0
  290. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-05.solution.json +12 -0
  291. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-05.txt +8 -0
  292. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-06.solution.json +12 -0
  293. pdl_taskmaster-2.6.0/experiments/prompts/dev/KK/D-KK-06.txt +8 -0
  294. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-01.solution.json +136 -0
  295. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-01.txt +11 -0
  296. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-02.solution.json +136 -0
  297. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-02.txt +11 -0
  298. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-03.solution.json +136 -0
  299. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-03.txt +11 -0
  300. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-04.solution.json +136 -0
  301. pdl_taskmaster-2.6.0/experiments/prompts/dev/LS/D-LS-04.txt +11 -0
  302. pdl_taskmaster-2.6.0/experiments/prompts/dev/MANIFEST.jsonl +24 -0
  303. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-01.solution.json +96 -0
  304. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-01.txt +3 -0
  305. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-02.solution.json +74 -0
  306. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-02.txt +3 -0
  307. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-03.solution.json +96 -0
  308. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-03.txt +3 -0
  309. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-04.solution.json +116 -0
  310. pdl_taskmaster-2.6.0/experiments/prompts/dev/SS/D-SS-04.txt +3 -0
  311. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-01.solution.json +29 -0
  312. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-01.txt +10 -0
  313. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-02.solution.json +29 -0
  314. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-02.txt +9 -0
  315. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-03.solution.json +29 -0
  316. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-03.txt +10 -0
  317. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-04.solution.json +29 -0
  318. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-04.txt +9 -0
  319. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-05.solution.json +29 -0
  320. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-05.txt +10 -0
  321. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-06.solution.json +29 -0
  322. pdl_taskmaster-2.6.0/experiments/prompts/gate/HG/G-HG-06.txt +10 -0
  323. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-01.solution.json +85 -0
  324. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-01.txt +4 -0
  325. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-02.solution.json +85 -0
  326. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-02.txt +4 -0
  327. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-03.solution.json +85 -0
  328. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-03.txt +4 -0
  329. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-04.solution.json +85 -0
  330. pdl_taskmaster-2.6.0/experiments/prompts/gate/HP/G-HP-04.txt +4 -0
  331. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-01.solution.json +11 -0
  332. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-01.txt +7 -0
  333. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-02.solution.json +11 -0
  334. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-02.txt +7 -0
  335. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-03.solution.json +11 -0
  336. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-03.txt +7 -0
  337. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-04.solution.json +11 -0
  338. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-04.txt +7 -0
  339. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-05.solution.json +12 -0
  340. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-05.txt +8 -0
  341. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-06.solution.json +12 -0
  342. pdl_taskmaster-2.6.0/experiments/prompts/gate/KK/G-KK-06.txt +8 -0
  343. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-01.solution.json +136 -0
  344. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-01.txt +11 -0
  345. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-02.solution.json +136 -0
  346. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-02.txt +11 -0
  347. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-03.solution.json +136 -0
  348. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-03.txt +11 -0
  349. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-04.solution.json +136 -0
  350. pdl_taskmaster-2.6.0/experiments/prompts/gate/LS/G-LS-04.txt +11 -0
  351. pdl_taskmaster-2.6.0/experiments/prompts/gate/MANIFEST.jsonl +24 -0
  352. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-01.solution.json +114 -0
  353. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-01.txt +3 -0
  354. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-02.solution.json +101 -0
  355. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-02.txt +3 -0
  356. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-03.solution.json +69 -0
  357. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-03.txt +3 -0
  358. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-04.solution.json +141 -0
  359. pdl_taskmaster-2.6.0/experiments/prompts/gate/SS/G-SS-04.txt +3 -0
  360. pdl_taskmaster-2.6.0/experiments/rubrics/03-01.json +33 -0
  361. pdl_taskmaster-2.6.0/experiments/rubrics/03-04.json +33 -0
  362. pdl_taskmaster-2.6.0/experiments/rubrics/03-07.json +33 -0
  363. pdl_taskmaster-2.6.0/experiments/rubrics/04-04.json +33 -0
  364. pdl_taskmaster-2.6.0/experiments/rubrics/06-04.json +33 -0
  365. pdl_taskmaster-2.6.0/experiments/rubrics/06-05.json +33 -0
  366. pdl_taskmaster-2.6.0/experiments/rubrics/07-01.json +38 -0
  367. pdl_taskmaster-2.6.0/experiments/rubrics/07-02.json +33 -0
  368. pdl_taskmaster-2.6.0/experiments/rubrics/07-03.json +33 -0
  369. pdl_taskmaster-2.6.0/experiments/rubrics/07-04.json +33 -0
  370. pdl_taskmaster-2.6.0/experiments/rubrics/07-05.json +28 -0
  371. pdl_taskmaster-2.6.0/experiments/rubrics/07-06.json +33 -0
  372. pdl_taskmaster-2.6.0/experiments/rubrics/07-07.json +33 -0
  373. pdl_taskmaster-2.6.0/experiments/rubrics/08-01.json +33 -0
  374. pdl_taskmaster-2.6.0/experiments/rubrics/08-02.json +33 -0
  375. pdl_taskmaster-2.6.0/experiments/rubrics/08-03.json +38 -0
  376. pdl_taskmaster-2.6.0/experiments/rubrics/08-04.json +33 -0
  377. pdl_taskmaster-2.6.0/experiments/rubrics/08-05.json +33 -0
  378. pdl_taskmaster-2.6.0/experiments/rubrics/08-06.json +38 -0
  379. pdl_taskmaster-2.6.0/experiments/rubrics/08-07.json +38 -0
  380. pdl_taskmaster-2.6.0/experiments/rubrics/10-01.json +23 -0
  381. pdl_taskmaster-2.6.0/experiments/rubrics/10-02.json +23 -0
  382. pdl_taskmaster-2.6.0/experiments/rubrics/10-03.json +28 -0
  383. pdl_taskmaster-2.6.0/experiments/rubrics/10-04.json +33 -0
  384. pdl_taskmaster-2.6.0/experiments/rubrics/10-05.json +18 -0
  385. pdl_taskmaster-2.6.0/experiments/rubrics/10-07.json +23 -0
  386. pdl_taskmaster-2.6.0/experiments/rubrics/14-02.json +33 -0
  387. pdl_taskmaster-2.6.0/experiments/rubrics/14-04.json +33 -0
  388. pdl_taskmaster-2.6.0/experiments/rubrics/14-06.json +33 -0
  389. pdl_taskmaster-2.6.0/experiments/rubrics/15-01.json +33 -0
  390. pdl_taskmaster-2.6.0/experiments/rubrics/15-02.json +38 -0
  391. pdl_taskmaster-2.6.0/experiments/rubrics/15-03.json +33 -0
  392. pdl_taskmaster-2.6.0/experiments/rubrics/15-04.json +33 -0
  393. pdl_taskmaster-2.6.0/experiments/rubrics/15-05.json +33 -0
  394. pdl_taskmaster-2.6.0/experiments/rubrics/15-06.json +38 -0
  395. pdl_taskmaster-2.6.0/experiments/rubrics/15-07.json +33 -0
  396. pdl_taskmaster-2.6.0/experiments/rubrics/16-01.json +28 -0
  397. pdl_taskmaster-2.6.0/experiments/rubrics/16-02.json +23 -0
  398. pdl_taskmaster-2.6.0/experiments/rubrics/16-04.json +23 -0
  399. pdl_taskmaster-2.6.0/experiments/rubrics/A-01-answer.json +18 -0
  400. pdl_taskmaster-2.6.0/experiments/rubrics/A-01-review.json +13 -0
  401. pdl_taskmaster-2.6.0/experiments/rubrics/A-02-answer.json +18 -0
  402. pdl_taskmaster-2.6.0/experiments/rubrics/A-02-review.json +13 -0
  403. pdl_taskmaster-2.6.0/experiments/rubrics/A-03-answer.json +18 -0
  404. pdl_taskmaster-2.6.0/experiments/rubrics/A-03-review.json +13 -0
  405. pdl_taskmaster-2.6.0/experiments/rubrics/A-04-answer.json +18 -0
  406. pdl_taskmaster-2.6.0/experiments/rubrics/A-04-review.json +13 -0
  407. pdl_taskmaster-2.6.0/experiments/rubrics/A-05-answer.json +18 -0
  408. pdl_taskmaster-2.6.0/experiments/rubrics/A-05-review.json +13 -0
  409. pdl_taskmaster-2.6.0/experiments/rubrics/A-06-answer.json +18 -0
  410. pdl_taskmaster-2.6.0/experiments/rubrics/A-06-review.json +13 -0
  411. pdl_taskmaster-2.6.0/experiments/rubrics/A-07-answer.json +18 -0
  412. pdl_taskmaster-2.6.0/experiments/rubrics/A-07-review.json +13 -0
  413. pdl_taskmaster-2.6.0/experiments/rubrics/A-08-answer.json +18 -0
  414. pdl_taskmaster-2.6.0/experiments/rubrics/A-08-review.json +13 -0
  415. pdl_taskmaster-2.6.0/experiments/rubrics/A-09-answer.json +18 -0
  416. pdl_taskmaster-2.6.0/experiments/rubrics/A-09-review.json +13 -0
  417. pdl_taskmaster-2.6.0/experiments/rubrics/CALIBRATION.json +908 -0
  418. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-01/fail_polling.md +26 -0
  419. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-01/fail_test_wrong_timing.md +31 -0
  420. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-01/pass_full.md +49 -0
  421. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-04/fail_no_line_buffering.md +19 -0
  422. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-04/fail_threads.md +16 -0
  423. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-04/pass_full.md +55 -0
  424. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-07/fail_no_backoff_no_window.md +19 -0
  425. pdl_taskmaster-2.6.0/experiments/rubrics/answers/03-07/pass_full.md +56 -0
  426. pdl_taskmaster-2.6.0/experiments/rubrics/answers/04-04/fail_follow_wrong.md +6 -0
  427. pdl_taskmaster-2.6.0/experiments/rubrics/answers/04-04/fail_no_trace.md +3 -0
  428. pdl_taskmaster-2.6.0/experiments/rubrics/answers/04-04/pass_full.md +29 -0
  429. pdl_taskmaster-2.6.0/experiments/rubrics/answers/06-04/fail_gil_is_enough.md +11 -0
  430. pdl_taskmaster-2.6.0/experiments/rubrics/answers/06-04/fail_sleep_fix.md +14 -0
  431. pdl_taskmaster-2.6.0/experiments/rubrics/answers/06-04/pass_full.md +51 -0
  432. pdl_taskmaster-2.6.0/experiments/rubrics/answers/06-05/fail_blames_float.md +8 -0
  433. pdl_taskmaster-2.6.0/experiments/rubrics/answers/06-05/fail_no_explicit_fix.md +7 -0
  434. pdl_taskmaster-2.6.0/experiments/rubrics/answers/06-05/pass_full.md +21 -0
  435. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-01/fail_drops_validation.md +26 -0
  436. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-01/fail_two_classes.md +10 -0
  437. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-01/pass_full.md +100 -0
  438. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-02/fail_swallows_errors.md +19 -0
  439. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-02/pass_full.md +45 -0
  440. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-03/fail_still_multiple_inheritance.md +19 -0
  441. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-03/pass_full.md +58 -0
  442. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-04/fail_still_global.md +19 -0
  443. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-04/pass_full.md +48 -0
  444. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-05/fail_silent_default.md +19 -0
  445. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-05/pass_full.md +45 -0
  446. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-06/fail_wrong_layout.md +10 -0
  447. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-06/pass_full.md +69 -0
  448. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-07/fail_rounding_changed.md +13 -0
  449. pdl_taskmaster-2.6.0/experiments/rubrics/answers/07-07/pass_full.md +25 -0
  450. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-01/fail_generic.md +1 -0
  451. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-01/pass_full.md +32 -0
  452. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-02/fail_misses_two.md +1 -0
  453. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-02/pass_full.md +4 -0
  454. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-03/fail_linear.md +1 -0
  455. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-03/pass_full.md +17 -0
  456. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-04/fail_restates.md +7 -0
  457. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-04/pass_full.md +10 -0
  458. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-05/fail_one_story.md +1 -0
  459. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-05/pass_full.md +7 -0
  460. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-06/fail_wrong_articles.md +6 -0
  461. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-06/pass_full.md +9 -0
  462. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-07/fail_no_rules.md +1 -0
  463. pdl_taskmaster-2.6.0/experiments/rubrics/answers/08-07/pass_full.md +25 -0
  464. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-01/fail_no_twins.md +9 -0
  465. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-01/pass_full.md +16 -0
  466. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-02/fail_still_bs4.md +9 -0
  467. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-02/pass_full.md +23 -0
  468. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-03/fail_library.md +10 -0
  469. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-03/pass_full.md +36 -0
  470. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-04/fail_lost_dot_rule.md +10 -0
  471. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-04/pass_full.md +16 -0
  472. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-05/fail_caesar_bleed.md +18 -0
  473. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-05/pass_full.md +13 -0
  474. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-07/fail_wrong_complexity.md +1 -0
  475. pdl_taskmaster-2.6.0/experiments/rubrics/answers/10-07/pass_full.md +3 -0
  476. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-02/fail_no_canonical_forms.md +3 -0
  477. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-02/fail_wrong_theorem.md +5 -0
  478. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-02/pass_full.md +19 -0
  479. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-04/fail_missing_termination.md +5 -0
  480. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-04/fail_sets_not_multisets.md +5 -0
  481. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-04/pass_full.md +8 -0
  482. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-06/fail_misses_a_guard.md +3 -0
  483. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-06/pass_guard.md +11 -0
  484. pdl_taskmaster-2.6.0/experiments/rubrics/answers/14-06/pass_timing.md +7 -0
  485. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-01/fail_wrong_counts.md +1 -0
  486. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-01/pass_summary.md +114 -0
  487. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-02/fail_single_key.md +1 -0
  488. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-02/pass_full.md +14 -0
  489. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-03/fail_always_stream.md +1 -0
  490. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-03/pass_full.md +7 -0
  491. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-04/fail_threads_equal_pool.md +1 -0
  492. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-04/pass_full.md +9 -0
  493. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-05/fail_jvm_answer.md +1 -0
  494. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-05/pass_full.md +4 -0
  495. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-06/fail_single_column_everything.md +8 -0
  496. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-06/pass_full.md +12 -0
  497. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-07/fail_memory_bottleneck.md +1 -0
  498. pdl_taskmaster-2.6.0/experiments/rubrics/answers/15-07/pass_full.md +5 -0
  499. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-01/fail_language_dependent.md +4 -0
  500. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-01/fail_unsolvable.md +1 -0
  501. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-01/pass_boolos.md +12 -0
  502. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-02/fail_lost_dollar.md +1 -0
  503. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-02/fail_no_accounting.md +1 -0
  504. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-02/pass_explanation.md +1 -0
  505. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-04/fail_exercise.md +1 -0
  506. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-04/fail_short_only.md +1 -0
  507. pdl_taskmaster-2.6.0/experiments/rubrics/answers/16-04/pass_canonical.md +1 -0
  508. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-01-answer/fail_other_reading.md +3 -0
  509. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-01-answer/pass_answer.md +1 -0
  510. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-01-review/fail_artifact.md +3 -0
  511. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-01-review/pass_artifact.md +3 -0
  512. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-02-answer/fail_other_reading.md +3 -0
  513. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-02-answer/pass_answer.md +1 -0
  514. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-02-review/fail_artifact.md +2 -0
  515. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-02-review/pass_artifact.md +2 -0
  516. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-03-answer/fail_other_reading.md +3 -0
  517. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-03-answer/pass_answer.md +1 -0
  518. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-03-review/fail_artifact.md +3 -0
  519. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-03-review/pass_artifact.md +3 -0
  520. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-04-answer/fail_other_reading.md +3 -0
  521. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-04-answer/pass_answer.md +1 -0
  522. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-04-review/fail_artifact.md +2 -0
  523. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-04-review/pass_artifact.md +2 -0
  524. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-05-answer/fail_other_reading.md +3 -0
  525. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-05-answer/pass_answer.md +1 -0
  526. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-05-review/fail_artifact.md +3 -0
  527. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-05-review/pass_artifact.md +3 -0
  528. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-06-answer/fail_other_reading.md +3 -0
  529. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-06-answer/pass_answer.md +1 -0
  530. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-06-review/fail_artifact.md +3 -0
  531. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-06-review/pass_artifact.md +3 -0
  532. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-07-answer/fail_other_reading.md +3 -0
  533. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-07-answer/pass_answer.md +1 -0
  534. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-07-review/fail_artifact.md +2 -0
  535. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-07-review/pass_artifact.md +2 -0
  536. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-08-answer/fail_other_reading.md +3 -0
  537. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-08-answer/pass_answer.md +1 -0
  538. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-08-review/fail_artifact.md +2 -0
  539. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-08-review/pass_artifact.md +3 -0
  540. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-09-answer/fail_other_reading.md +3 -0
  541. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-09-answer/pass_answer.md +1 -0
  542. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-09-review/fail_artifact.md +3 -0
  543. pdl_taskmaster-2.6.0/experiments/rubrics/answers/A-09-review/pass_artifact.md +3 -0
  544. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/KEY.json +392 -0
  545. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal001.reply.txt +1 -0
  546. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal002.reply.txt +1 -0
  547. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal003.reply.txt +1 -0
  548. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal004.reply.txt +1 -0
  549. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal005.reply.txt +1 -0
  550. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal006.reply.txt +1 -0
  551. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal007.reply.txt +1 -0
  552. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal008.reply.txt +1 -0
  553. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal009.reply.txt +1 -0
  554. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal010.reply.txt +1 -0
  555. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal011.reply.txt +1 -0
  556. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal012.reply.txt +1 -0
  557. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal013.reply.txt +1 -0
  558. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal014.reply.txt +1 -0
  559. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal015.reply.txt +1 -0
  560. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal016.reply.txt +1 -0
  561. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal017.reply.txt +1 -0
  562. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal018.reply.txt +1 -0
  563. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal019.reply.txt +1 -0
  564. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal020.reply.txt +1 -0
  565. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal021.reply.txt +1 -0
  566. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal022.reply.txt +1 -0
  567. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal023.reply.txt +1 -0
  568. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal024.reply.txt +1 -0
  569. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal025.reply.txt +1 -0
  570. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal026.reply.txt +1 -0
  571. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal027.reply.txt +1 -0
  572. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal028.reply.txt +1 -0
  573. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal029.reply.txt +1 -0
  574. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal030.reply.txt +1 -0
  575. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal031.reply.txt +1 -0
  576. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal032.reply.txt +1 -0
  577. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal033.reply.txt +1 -0
  578. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal034.reply.txt +1 -0
  579. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal035.reply.txt +1 -0
  580. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal036.reply.txt +1 -0
  581. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal037.reply.txt +1 -0
  582. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal038.reply.txt +1 -0
  583. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal039.reply.txt +1 -0
  584. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal040.reply.txt +1 -0
  585. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal041.reply.txt +1 -0
  586. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal042.reply.txt +1 -0
  587. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal043.reply.txt +1 -0
  588. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal044.reply.txt +1 -0
  589. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal045.reply.txt +1 -0
  590. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal046.reply.txt +1 -0
  591. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal047.reply.txt +1 -0
  592. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal048.reply.txt +1 -0
  593. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal049.reply.txt +1 -0
  594. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal050.reply.txt +1 -0
  595. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal051.reply.txt +1 -0
  596. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal052.reply.txt +1 -0
  597. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal053.reply.txt +1 -0
  598. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal054.reply.txt +1 -0
  599. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal055.reply.txt +1 -0
  600. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal056.reply.txt +1 -0
  601. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal057.reply.txt +1 -0
  602. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal058.reply.txt +1 -0
  603. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal059.reply.txt +1 -0
  604. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal060.reply.txt +1 -0
  605. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal061.reply.txt +1 -0
  606. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal062.reply.txt +1 -0
  607. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal063.reply.txt +1 -0
  608. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal064.reply.txt +1 -0
  609. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal065.reply.txt +1 -0
  610. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal066.reply.txt +1 -0
  611. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal067.reply.txt +1 -0
  612. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal068.reply.txt +1 -0
  613. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal069.reply.txt +1 -0
  614. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal070.reply.txt +1 -0
  615. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal071.reply.txt +1 -0
  616. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal072.reply.txt +1 -0
  617. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal073.reply.txt +1 -0
  618. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal074.reply.txt +1 -0
  619. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal075.reply.txt +1 -0
  620. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal076.reply.txt +1 -0
  621. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal077.reply.txt +1 -0
  622. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/claude/cal078.reply.txt +1 -0
  623. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal001.reply.txt +3 -0
  624. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal002.reply.txt +12 -0
  625. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal003.reply.txt +13 -0
  626. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal004.reply.txt +12 -0
  627. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal005.reply.txt +12 -0
  628. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal006.reply.txt +3 -0
  629. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal007.reply.txt +12 -0
  630. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal008.reply.txt +3 -0
  631. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal009.reply.txt +3 -0
  632. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal010.reply.txt +12 -0
  633. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal011.reply.txt +13 -0
  634. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal012.reply.txt +12 -0
  635. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal013.reply.txt +12 -0
  636. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal014.reply.txt +3 -0
  637. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal015.reply.txt +3 -0
  638. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal016.reply.txt +13 -0
  639. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal017.reply.txt +3 -0
  640. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal018.reply.txt +12 -0
  641. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal019.reply.txt +3 -0
  642. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal020.reply.txt +12 -0
  643. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal021.reply.txt +12 -0
  644. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal022.reply.txt +3 -0
  645. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal023.reply.txt +12 -0
  646. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal024.reply.txt +3 -0
  647. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal025.reply.txt +13 -0
  648. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal026.reply.txt +12 -0
  649. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal027.reply.txt +3 -0
  650. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal028.reply.txt +12 -0
  651. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal029.reply.txt +3 -0
  652. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal030.reply.txt +10 -0
  653. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal031.reply.txt +3 -0
  654. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal032.reply.txt +12 -0
  655. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal033.reply.txt +12 -0
  656. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal034.reply.txt +12 -0
  657. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal035.reply.txt +3 -0
  658. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal036.reply.txt +12 -0
  659. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal037.reply.txt +13 -0
  660. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal038.reply.txt +12 -0
  661. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal039.reply.txt +12 -0
  662. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal040.reply.txt +10 -0
  663. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal041.reply.txt +3 -0
  664. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal042.reply.txt +13 -0
  665. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal043.reply.txt +3 -0
  666. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal044.reply.txt +3 -0
  667. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal045.reply.txt +3 -0
  668. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal046.reply.txt +3 -0
  669. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal047.reply.txt +12 -0
  670. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal048.reply.txt +3 -0
  671. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal049.reply.txt +3 -0
  672. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal050.reply.txt +12 -0
  673. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal051.reply.txt +3 -0
  674. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal052.reply.txt +12 -0
  675. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal053.reply.txt +3 -0
  676. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal054.reply.txt +3 -0
  677. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal055.reply.txt +12 -0
  678. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal056.reply.txt +12 -0
  679. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal057.reply.txt +3 -0
  680. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal058.reply.txt +11 -0
  681. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal059.reply.txt +3 -0
  682. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal060.reply.txt +3 -0
  683. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal061.reply.txt +12 -0
  684. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal062.reply.txt +12 -0
  685. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal063.reply.txt +12 -0
  686. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal064.reply.txt +12 -0
  687. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal065.reply.txt +3 -0
  688. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal066.reply.txt +12 -0
  689. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal067.reply.txt +12 -0
  690. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal068.reply.txt +3 -0
  691. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal069.reply.txt +3 -0
  692. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal070.reply.txt +12 -0
  693. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal071.reply.txt +12 -0
  694. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal072.reply.txt +3 -0
  695. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal073.reply.txt +13 -0
  696. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal074.reply.txt +3 -0
  697. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal075.reply.txt +12 -0
  698. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal076.reply.txt +12 -0
  699. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal077.reply.txt +12 -0
  700. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/gemini/cal078.reply.txt +12 -0
  701. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/superseded/claude/cal007.reply.txt +1 -0
  702. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/superseded/claude/cal011.reply.txt +1 -0
  703. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/superseded/claude/cal020.reply.txt +1 -0
  704. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/superseded/gemini/cal007.reply.txt +12 -0
  705. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/superseded/gemini/cal011.reply.txt +13 -0
  706. pdl_taskmaster-2.6.0/experiments/rubrics/calibration/superseded/gemini/cal020.reply.txt +12 -0
  707. pdl_taskmaster-2.6.0/experiments/rubrics.md +46 -0
  708. pdl_taskmaster-2.6.0/experiments/run_three_arms.py +131 -0
  709. pdl_taskmaster-2.6.0/experiments/runner.py +560 -0
  710. pdl_taskmaster-2.6.0/experiments/schedule.py +121 -0
  711. pdl_taskmaster-2.6.0/experiments/sweep_arm.py +97 -0
  712. pdl_taskmaster-2.6.0/experiments/three_gods_answers.json +6 -0
  713. pdl_taskmaster-2.6.0/graders.py +748 -0
  714. pdl_taskmaster-2.6.0/hidden_tests.py +369 -0
  715. pdl_taskmaster-2.6.0/prompts/01_combinatorial_search/bin_packing_first_fit.txt +8 -0
  716. pdl_taskmaster-2.6.0/prompts/01_combinatorial_search/exact_cover_dlx.txt +6 -0
  717. pdl_taskmaster-2.6.0/prompts/01_combinatorial_search/graph_coloring_k4.txt +5 -0
  718. pdl_taskmaster-2.6.0/prompts/01_combinatorial_search/hamiltonian_path_sparse.txt +4 -0
  719. pdl_taskmaster-2.6.0/prompts/01_combinatorial_search/latin_square_completion.txt +11 -0
  720. pdl_taskmaster-2.6.0/prompts/01_combinatorial_search/schur_triples_n15.txt +4 -0
  721. pdl_taskmaster-2.6.0/prompts/01_combinatorial_search/subset_sum_target.txt +3 -0
  722. pdl_taskmaster-2.6.0/prompts/02_data_structures/b_plus_tree_disk.txt +7 -0
  723. pdl_taskmaster-2.6.0/prompts/02_data_structures/bloom_filter_counting.txt +5 -0
  724. pdl_taskmaster-2.6.0/prompts/02_data_structures/concurrent_lru_sharded.txt +6 -0
  725. pdl_taskmaster-2.6.0/prompts/02_data_structures/disjoint_set_rollback.txt +5 -0
  726. pdl_taskmaster-2.6.0/prompts/02_data_structures/lfu_cache_o1.txt +5 -0
  727. pdl_taskmaster-2.6.0/prompts/02_data_structures/persistent_rb_tree.txt +6 -0
  728. pdl_taskmaster-2.6.0/prompts/02_data_structures/skip_list_ordered_map.txt +7 -0
  729. pdl_taskmaster-2.6.0/prompts/03_systems_programming/async_rate_limiter.txt +5 -0
  730. pdl_taskmaster-2.6.0/prompts/03_systems_programming/file_watcher_polling.txt +6 -0
  731. pdl_taskmaster-2.6.0/prompts/03_systems_programming/lock_free_spsc_queue.txt +5 -0
  732. pdl_taskmaster-2.6.0/prompts/03_systems_programming/memory_pool_allocator.txt +6 -0
  733. pdl_taskmaster-2.6.0/prompts/03_systems_programming/process_supervisor.txt +7 -0
  734. pdl_taskmaster-2.6.0/prompts/03_systems_programming/tcp_echo_select.txt +6 -0
  735. pdl_taskmaster-2.6.0/prompts/03_systems_programming/wal_append_only_log.txt +5 -0
  736. pdl_taskmaster-2.6.0/prompts/04_parsers_and_compilers/bytecode_stack_vm.txt +6 -0
  737. pdl_taskmaster-2.6.0/prompts/04_parsers_and_compilers/cfg_ll1_table.txt +9 -0
  738. pdl_taskmaster-2.6.0/prompts/04_parsers_and_compilers/cron_expression_parser.txt +6 -0
  739. pdl_taskmaster-2.6.0/prompts/04_parsers_and_compilers/json_streaming_parser.txt +6 -0
  740. pdl_taskmaster-2.6.0/prompts/04_parsers_and_compilers/markdown_subset_html.txt +11 -0
  741. pdl_taskmaster-2.6.0/prompts/04_parsers_and_compilers/recursive_descent_calc.txt +7 -0
  742. pdl_taskmaster-2.6.0/prompts/04_parsers_and_compilers/regex_to_nfa_thompson.txt +5 -0
  743. pdl_taskmaster-2.6.0/prompts/05_algorithm_design/a_star_grid_obstacles.txt +6 -0
  744. pdl_taskmaster-2.6.0/prompts/05_algorithm_design/convex_hull_gift_wrap.txt +5 -0
  745. pdl_taskmaster-2.6.0/prompts/05_algorithm_design/interval_merge_insert.txt +6 -0
  746. pdl_taskmaster-2.6.0/prompts/05_algorithm_design/lcs_with_reconstruction.txt +6 -0
  747. pdl_taskmaster-2.6.0/prompts/05_algorithm_design/median_two_sorted.txt +9 -0
  748. pdl_taskmaster-2.6.0/prompts/05_algorithm_design/string_matching_kmp.txt +6 -0
  749. pdl_taskmaster-2.6.0/prompts/05_algorithm_design/topological_kahn_cycle.txt +5 -0
  750. pdl_taskmaster-2.6.0/prompts/06_debugging_and_repair/deadlock_two_locks.txt +31 -0
  751. pdl_taskmaster-2.6.0/prompts/06_debugging_and_repair/encoding_mojibake.txt +21 -0
  752. pdl_taskmaster-2.6.0/prompts/06_debugging_and_repair/infinite_recursion_tree.txt +26 -0
  753. pdl_taskmaster-2.6.0/prompts/06_debugging_and_repair/memory_leak_observer.txt +31 -0
  754. pdl_taskmaster-2.6.0/prompts/06_debugging_and_repair/off_by_one_binary_search.txt +17 -0
  755. pdl_taskmaster-2.6.0/prompts/06_debugging_and_repair/race_condition_counter.txt +22 -0
  756. pdl_taskmaster-2.6.0/prompts/06_debugging_and_repair/silent_data_corruption.txt +24 -0
  757. pdl_taskmaster-2.6.0/prompts/07_refactoring_and_design/callback_to_async.txt +31 -0
  758. pdl_taskmaster-2.6.0/prompts/07_refactoring_and_design/global_state_injection.txt +33 -0
  759. pdl_taskmaster-2.6.0/prompts/07_refactoring_and_design/god_class_decompose.txt +80 -0
  760. pdl_taskmaster-2.6.0/prompts/07_refactoring_and_design/imperative_to_functional.txt +38 -0
  761. pdl_taskmaster-2.6.0/prompts/07_refactoring_and_design/inheritance_to_composition.txt +36 -0
  762. pdl_taskmaster-2.6.0/prompts/07_refactoring_and_design/monolith_to_modules.txt +50 -0
  763. pdl_taskmaster-2.6.0/prompts/07_refactoring_and_design/stringly_typed_enums.txt +25 -0
  764. pdl_taskmaster-2.6.0/prompts/08_specification_extraction/contradictory_spec_api.txt +10 -0
  765. pdl_taskmaster-2.6.0/prompts/08_specification_extraction/implicit_constraints_etl.txt +3 -0
  766. pdl_taskmaster-2.6.0/prompts/08_specification_extraction/missing_edge_cases_auth.txt +3 -0
  767. pdl_taskmaster-2.6.0/prompts/08_specification_extraction/regulatory_mapping.txt +3 -0
  768. pdl_taskmaster-2.6.0/prompts/08_specification_extraction/scope_creep_detector.txt +3 -0
  769. pdl_taskmaster-2.6.0/prompts/08_specification_extraction/sla_to_monitoring.txt +5 -0
  770. pdl_taskmaster-2.6.0/prompts/08_specification_extraction/vague_requirements_crm.txt +1 -0
  771. pdl_taskmaster-2.6.0/prompts/09_adversarial_and_injection/fielded_schema_injection.txt +4 -0
  772. pdl_taskmaster-2.6.0/prompts/09_adversarial_and_injection/json_payload_pollution.txt +11 -0
  773. pdl_taskmaster-2.6.0/prompts/09_adversarial_and_injection/nested_code_fence_escape.txt +16 -0
  774. pdl_taskmaster-2.6.0/prompts/09_adversarial_and_injection/recursive_self_reference.txt +3 -0
  775. pdl_taskmaster-2.6.0/prompts/09_adversarial_and_injection/system_prompt_override.txt +3 -0
  776. pdl_taskmaster-2.6.0/prompts/09_adversarial_and_injection/token_exhaustion_bomb.txt +3 -0
  777. pdl_taskmaster-2.6.0/prompts/09_adversarial_and_injection/unicode_homoglyph_ids.txt +7 -0
  778. pdl_taskmaster-2.6.0/prompts/10_multi_turn_and_revision/abandon_and_restart.txt +1 -0
  779. pdl_taskmaster-2.6.0/prompts/10_multi_turn_and_revision/change_request_backtrack.txt +1 -0
  780. pdl_taskmaster-2.6.0/prompts/10_multi_turn_and_revision/cumulative_ledger_carry.txt +1 -0
  781. pdl_taskmaster-2.6.0/prompts/10_multi_turn_and_revision/execution_mode_switch.txt +1 -0
  782. pdl_taskmaster-2.6.0/prompts/10_multi_turn_and_revision/multi_revision_chain.txt +1 -0
  783. pdl_taskmaster-2.6.0/prompts/10_multi_turn_and_revision/revise_plan_approach.txt +1 -0
  784. pdl_taskmaster-2.6.0/prompts/10_multi_turn_and_revision/revise_prompt_scope.txt +1 -0
  785. pdl_taskmaster-2.6.0/prompts/11_cross_domain_composition/api_design_implement_doc.txt +7 -0
  786. pdl_taskmaster-2.6.0/prompts/11_cross_domain_composition/data_clean_analyze_viz.txt +23 -0
  787. pdl_taskmaster-2.6.0/prompts/11_cross_domain_composition/log_parse_diagnose_fix.txt +35 -0
  788. pdl_taskmaster-2.6.0/prompts/11_cross_domain_composition/profile_optimize_bench.txt +19 -0
  789. pdl_taskmaster-2.6.0/prompts/11_cross_domain_composition/review_refactor_document.txt +49 -0
  790. pdl_taskmaster-2.6.0/prompts/11_cross_domain_composition/schema_migrate_backfill.txt +12 -0
  791. pdl_taskmaster-2.6.0/prompts/11_cross_domain_composition/spec_implement_test.txt +3 -0
  792. pdl_taskmaster-2.6.0/prompts/12_domain_knowledge/dns_resolution_trace.txt +1 -0
  793. pdl_taskmaster-2.6.0/prompts/12_domain_knowledge/docker_multi_stage.txt +16 -0
  794. pdl_taskmaster-2.6.0/prompts/12_domain_knowledge/git_rebase_conflict.txt +11 -0
  795. pdl_taskmaster-2.6.0/prompts/12_domain_knowledge/http_caching_headers.txt +8 -0
  796. pdl_taskmaster-2.6.0/prompts/12_domain_knowledge/oauth2_pkce_flow.txt +9 -0
  797. pdl_taskmaster-2.6.0/prompts/12_domain_knowledge/sql_query_optimization.txt +16 -0
  798. pdl_taskmaster-2.6.0/prompts/12_domain_knowledge/tls_certificate_chain.txt +31 -0
  799. pdl_taskmaster-2.6.0/prompts/13_negative_and_impossible/contradictory_requirements.txt +5 -0
  800. pdl_taskmaster-2.6.0/prompts/13_negative_and_impossible/hallucination_trap_api.txt +1 -0
  801. pdl_taskmaster-2.6.0/prompts/13_negative_and_impossible/insufficient_information.txt +3 -0
  802. pdl_taskmaster-2.6.0/prompts/13_negative_and_impossible/np_hard_exact_large.txt +6 -0
  803. pdl_taskmaster-2.6.0/prompts/13_negative_and_impossible/out_of_scope_medical.txt +1 -0
  804. pdl_taskmaster-2.6.0/prompts/13_negative_and_impossible/stale_knowledge_cutoff.txt +1 -0
  805. pdl_taskmaster-2.6.0/prompts/13_negative_and_impossible/unsatisfiable_constraints.txt +12 -0
  806. pdl_taskmaster-2.6.0/prompts/14_formal_verification/amortized_analysis.txt +9 -0
  807. pdl_taskmaster-2.6.0/prompts/14_formal_verification/invariant_preservation.txt +11 -0
  808. pdl_taskmaster-2.6.0/prompts/14_formal_verification/loop_invariant_proof.txt +13 -0
  809. pdl_taskmaster-2.6.0/prompts/14_formal_verification/protocol_deadlock_free.txt +9 -0
  810. pdl_taskmaster-2.6.0/prompts/14_formal_verification/sorting_correctness.txt +7 -0
  811. pdl_taskmaster-2.6.0/prompts/14_formal_verification/termination_argument.txt +11 -0
  812. pdl_taskmaster-2.6.0/prompts/14_formal_verification/type_system_soundness.txt +12 -0
  813. pdl_taskmaster-2.6.0/prompts/15_performance_and_scale/batch_vs_stream_tradeoff.txt +9 -0
  814. pdl_taskmaster-2.6.0/prompts/15_performance_and_scale/cache_eviction_policy.txt +6 -0
  815. pdl_taskmaster-2.6.0/prompts/15_performance_and_scale/connection_pool_sizing.txt +13 -0
  816. pdl_taskmaster-2.6.0/prompts/15_performance_and_scale/database_sharding_key.txt +13 -0
  817. pdl_taskmaster-2.6.0/prompts/15_performance_and_scale/gc_tuning_throughput.txt +16 -0
  818. pdl_taskmaster-2.6.0/prompts/15_performance_and_scale/index_selection_advisor.txt +13 -0
  819. pdl_taskmaster-2.6.0/prompts/15_performance_and_scale/load_test_analysis.txt +13 -0
  820. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/elevator_riddle.txt +1 -0
  821. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/house_grid.txt +9 -0
  822. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/knights_and_knaves.txt +7 -0
  823. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/masked_men.txt +1 -0
  824. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/missing_dollar.txt +1 -0
  825. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/plan_gate_cases.json +105 -0
  826. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/sibling_count.txt +1 -0
  827. pdl_taskmaster-2.6.0/prompts/16_logic_and_reasoning/three_gods.txt +3 -0
  828. pdl_taskmaster-2.6.0/prompts/CATALOGUE_MANIFEST.jsonl +112 -0
  829. pdl_taskmaster-2.6.0/prompts/hidden_tests/02-01.py +98 -0
  830. pdl_taskmaster-2.6.0/prompts/hidden_tests/02-02.py +75 -0
  831. pdl_taskmaster-2.6.0/prompts/hidden_tests/02-03.py +103 -0
  832. pdl_taskmaster-2.6.0/prompts/hidden_tests/02-04.py +99 -0
  833. pdl_taskmaster-2.6.0/prompts/hidden_tests/02-05.py +102 -0
  834. pdl_taskmaster-2.6.0/prompts/hidden_tests/02-06.py +82 -0
  835. pdl_taskmaster-2.6.0/prompts/hidden_tests/02-07.py +77 -0
  836. pdl_taskmaster-2.6.0/prompts/hidden_tests/03-02.py +142 -0
  837. pdl_taskmaster-2.6.0/prompts/hidden_tests/03-03.py +141 -0
  838. pdl_taskmaster-2.6.0/prompts/hidden_tests/03-05.py +116 -0
  839. pdl_taskmaster-2.6.0/prompts/hidden_tests/03-06.py +157 -0
  840. pdl_taskmaster-2.6.0/prompts/hidden_tests/04-01.py +94 -0
  841. pdl_taskmaster-2.6.0/prompts/hidden_tests/04-02.py +257 -0
  842. pdl_taskmaster-2.6.0/prompts/hidden_tests/04-03.py +134 -0
  843. pdl_taskmaster-2.6.0/prompts/hidden_tests/04-05.py +164 -0
  844. pdl_taskmaster-2.6.0/prompts/hidden_tests/04-06.py +177 -0
  845. pdl_taskmaster-2.6.0/prompts/hidden_tests/04-07.py +176 -0
  846. pdl_taskmaster-2.6.0/prompts/hidden_tests/05-01.py +72 -0
  847. pdl_taskmaster-2.6.0/prompts/hidden_tests/05-02.py +155 -0
  848. pdl_taskmaster-2.6.0/prompts/hidden_tests/05-03.py +72 -0
  849. pdl_taskmaster-2.6.0/prompts/hidden_tests/05-04.py +111 -0
  850. pdl_taskmaster-2.6.0/prompts/hidden_tests/05-05.py +90 -0
  851. pdl_taskmaster-2.6.0/prompts/hidden_tests/05-06.py +43 -0
  852. pdl_taskmaster-2.6.0/prompts/hidden_tests/05-07.py +68 -0
  853. pdl_taskmaster-2.6.0/prompts/hidden_tests/06-01.py +64 -0
  854. pdl_taskmaster-2.6.0/prompts/hidden_tests/06-02.py +141 -0
  855. pdl_taskmaster-2.6.0/prompts/hidden_tests/06-03.py +106 -0
  856. pdl_taskmaster-2.6.0/prompts/hidden_tests/06-06.py +87 -0
  857. pdl_taskmaster-2.6.0/prompts/hidden_tests/06-07.py +56 -0
  858. pdl_taskmaster-2.6.0/prompts/hidden_tests/VALIDATION.json +949 -0
  859. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-01/alt_none_and_keyword.py +53 -0
  860. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-01/bug_plain_lru.py +21 -0
  861. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-01/bug_wrong_tiebreak.py +34 -0
  862. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-01/ref.py +49 -0
  863. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-02/alt_dict_range.py +55 -0
  864. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-02/bug_exclusive_hi.py +25 -0
  865. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-02/ref.py +66 -0
  866. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-03/alt_class_api.py +59 -0
  867. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-03/bug_mutates_in_place.py +44 -0
  868. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-03/bug_unbalanced.py +31 -0
  869. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-03/ref.py +57 -0
  870. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-04/alt_total_capacity.py +30 -0
  871. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-04/bug_fifo_eviction.py +22 -0
  872. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-04/bug_unbounded.py +18 -0
  873. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-04/ref.py +33 -0
  874. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-05/alt_values_and_functions.py +93 -0
  875. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-05/bug_lost_split_keys.py +41 -0
  876. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-05/bug_no_serialization.py +22 -0
  877. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-05/ref.py +103 -0
  878. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-06/alt_snapshot_copies.py +31 -0
  879. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-06/bug_restore_shallow.py +23 -0
  880. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-06/bug_single_snapshot.py +29 -0
  881. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-06/ref.py +44 -0
  882. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-07/alt_positional_murmur.py +42 -0
  883. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-07/bug_bits_not_counts.py +26 -0
  884. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-07/bug_too_small.py +24 -0
  885. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/02-07/ref.py +30 -0
  886. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-02/alt_big_endian_kw.py +42 -0
  887. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-02/bug_no_crc_check.py +33 -0
  888. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-02/bug_returns_partial_tail.py +30 -0
  889. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-02/ref.py +46 -0
  890. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-03/alt_index_memoryview.py +36 -0
  891. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-03/bug_no_double_free_check.py +26 -0
  892. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-03/bug_python_list.py +17 -0
  893. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-03/ref.py +44 -0
  894. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-05/alt_one_empty_slot.py +23 -0
  895. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-05/bug_locked_deque.py +21 -0
  896. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-05/bug_overwrites_when_full.py +19 -0
  897. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-05/ref.py +27 -0
  898. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-06/alt_class_enum_relative.py +48 -0
  899. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-06/bug_no_mtime_check.py +18 -0
  900. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-06/bug_top_level_only.py +27 -0
  901. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/03-06/ref.py +37 -0
  902. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-01/alt_calculator_class.py +69 -0
  903. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-01/bug_ignores_trailing.py +46 -0
  904. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-01/bug_right_assoc.py +53 -0
  905. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-01/ref.py +72 -0
  906. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-02/alt_class_value_only.py +102 -0
  907. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-02/bug_raw_unicode_escape.py +167 -0
  908. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-02/bug_reads_everything.py +26 -0
  909. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-02/ref.py +166 -0
  910. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-03/alt_postfix_class.py +119 -0
  911. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-03/bug_backtracking.py +78 -0
  912. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-03/bug_plus_allows_empty.py +125 -0
  913. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-03/ref.py +124 -0
  914. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-05/alt_class_regex.py +68 -0
  915. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-05/bug_italic_first.py +67 -0
  916. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-05/bug_url_emphasis.py +67 -0
  917. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-05/ref.py +105 -0
  918. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-06/alt_enum_functions.py +74 -0
  919. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-06/bug_operand_order.py +106 -0
  920. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-06/bug_prints_name.py +9 -0
  921. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-06/ref.py +105 -0
  922. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-07/alt_class_minute_scan.py +35 -0
  923. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-07/bug_python_weekday.py +53 -0
  924. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-07/bug_step_from_zero.py +53 -0
  925. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/04-07/ref.py +52 -0
  926. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-01/alt_tuples.py +18 -0
  927. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-01/bug_appends_at_end.py +11 -0
  928. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-01/ref.py +12 -0
  929. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-02/alt_returns_tuple.py +45 -0
  930. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-02/bug_reports_all_remaining.py +20 -0
  931. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-02/ref.py +36 -0
  932. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-03/alt_dict.py +11 -0
  933. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-03/bug_substring.py +11 -0
  934. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-03/ref.py +19 -0
  935. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-04/alt_dict_result.py +30 -0
  936. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-04/bug_inadmissible.py +28 -0
  937. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-04/ref.py +31 -0
  938. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-05/alt_monotone_chain.py +25 -0
  939. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-05/bug_clockwise.py +18 -0
  940. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-05/bug_drops_collinear.py +18 -0
  941. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-05/ref.py +43 -0
  942. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-06/alt_named_median.py +19 -0
  943. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-06/bug_even_uses_upper.py +4 -0
  944. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-06/ref.py +20 -0
  945. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-07/alt_pattern_first.py +24 -0
  946. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-07/bug_no_overlaps.py +23 -0
  947. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/05-07/ref.py +24 -0
  948. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-01/alt_kept_original.py +26 -0
  949. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-01/bug_misses_last.py +12 -0
  950. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-01/bug_original.py +12 -0
  951. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-01/ref.py +11 -0
  952. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-02/alt_backoff_and_original.py +41 -0
  953. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-02/alt_single_lock.py +16 -0
  954. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-02/bug_original.py +18 -0
  955. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-02/bug_try_lock_drops.py +25 -0
  956. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-02/ref.py +18 -0
  957. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-03/alt_weak_methods.py +59 -0
  958. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-03/bug_dead_refs_accumulate.py +33 -0
  959. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-03/bug_original.py +28 -0
  960. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-03/ref.py +40 -0
  961. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-06/alt_two_pass_kept_original.py +27 -0
  962. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-06/bug_original.py +12 -0
  963. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-06/bug_reversed_children.py +26 -0
  964. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-06/ref.py +25 -0
  965. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-07/alt_bytes_kept_original.py +20 -0
  966. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-07/bug_original.py +9 -0
  967. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-07/bug_replace_errors.py +9 -0
  968. pdl_taskmaster-2.6.0/prompts/hidden_tests/answers/06-07/ref.py +8 -0
  969. pdl_taskmaster-2.6.0/prompts/solutions/01_combinatorial_search/bin_packing_first_fit.json +26 -0
  970. pdl_taskmaster-2.6.0/prompts/solutions/01_combinatorial_search/exact_cover_dlx.json +12 -0
  971. pdl_taskmaster-2.6.0/prompts/solutions/01_combinatorial_search/graph_coloring_k4.json +12 -0
  972. pdl_taskmaster-2.6.0/prompts/solutions/01_combinatorial_search/hamiltonian_path_sparse.json +8 -0
  973. pdl_taskmaster-2.6.0/prompts/solutions/01_combinatorial_search/latin_square_completion.json +16 -0
  974. pdl_taskmaster-2.6.0/prompts/solutions/01_combinatorial_search/schur_triples_n15.json +13 -0
  975. pdl_taskmaster-2.6.0/prompts/solutions/01_combinatorial_search/subset_sum_target.json +14 -0
  976. pdl_taskmaster-2.6.0/prompts/solutions/13_negative_and_impossible/contradictory_requirements.json +7 -0
  977. pdl_taskmaster-2.6.0/prompts/solutions/13_negative_and_impossible/hallucination_trap_api.json +6 -0
  978. pdl_taskmaster-2.6.0/prompts/solutions/13_negative_and_impossible/insufficient_information.json +6 -0
  979. pdl_taskmaster-2.6.0/prompts/solutions/13_negative_and_impossible/np_hard_exact_large.json +6 -0
  980. pdl_taskmaster-2.6.0/prompts/solutions/13_negative_and_impossible/out_of_scope_medical.json +6 -0
  981. pdl_taskmaster-2.6.0/prompts/solutions/13_negative_and_impossible/stale_knowledge_cutoff.json +6 -0
  982. pdl_taskmaster-2.6.0/prompts/solutions/13_negative_and_impossible/unsatisfiable_constraints.json +9 -0
  983. pdl_taskmaster-2.6.0/prompts/solutions/14_formal_verification/amortized_analysis.json +7 -0
  984. pdl_taskmaster-2.6.0/prompts/solutions/14_formal_verification/invariant_preservation.json +5 -0
  985. pdl_taskmaster-2.6.0/prompts/solutions/14_formal_verification/loop_invariant_proof.json +10 -0
  986. pdl_taskmaster-2.6.0/prompts/solutions/14_formal_verification/protocol_deadlock_free.json +6 -0
  987. pdl_taskmaster-2.6.0/prompts/solutions/14_formal_verification/sorting_correctness.json +9 -0
  988. pdl_taskmaster-2.6.0/prompts/solutions/14_formal_verification/termination_argument.json +6 -0
  989. pdl_taskmaster-2.6.0/prompts/solutions/14_formal_verification/type_system_soundness.json +5 -0
  990. pdl_taskmaster-2.6.0/prompts/solutions/16_logic_and_reasoning/elevator_riddle.json +7 -0
  991. pdl_taskmaster-2.6.0/prompts/solutions/16_logic_and_reasoning/house_grid.json +29 -0
  992. pdl_taskmaster-2.6.0/prompts/solutions/16_logic_and_reasoning/knights_and_knaves.json +11 -0
  993. pdl_taskmaster-2.6.0/prompts/solutions/16_logic_and_reasoning/masked_men.json +7 -0
  994. pdl_taskmaster-2.6.0/prompts/solutions/16_logic_and_reasoning/missing_dollar.json +7 -0
  995. pdl_taskmaster-2.6.0/prompts/solutions/16_logic_and_reasoning/sibling_count.json +7 -0
  996. pdl_taskmaster-2.6.0/prompts/solutions/16_logic_and_reasoning/three_gods.json +7 -0
  997. pdl_taskmaster-2.6.0/pyproject.toml +116 -0
  998. pdl_taskmaster-2.6.0/run_catalogue.py +1236 -0
  999. pdl_taskmaster-2.6.0/scripts/model_compare.py +140 -0
  1000. pdl_taskmaster-2.6.0/scripts/probe_problem_class.py +151 -0
  1001. pdl_taskmaster-2.6.0/scripts/provider_benchmark.py +158 -0
  1002. pdl_taskmaster-2.6.0/scripts/provider_probe.py +158 -0
  1003. pdl_taskmaster-2.6.0/scripts/render_recorded_prompts.py +174 -0
  1004. pdl_taskmaster-2.6.0/src/pdl_taskmaster/__init__.py +6 -0
  1005. pdl_taskmaster-2.6.0/src/pdl_taskmaster/api/__init__.py +31 -0
  1006. pdl_taskmaster-2.6.0/src/pdl_taskmaster/api/closed_sessions.py +73 -0
  1007. pdl_taskmaster-2.6.0/src/pdl_taskmaster/api/outcome.py +41 -0
  1008. pdl_taskmaster-2.6.0/src/pdl_taskmaster/api/providers.py +11 -0
  1009. pdl_taskmaster-2.6.0/src/pdl_taskmaster/api/sandbox.py +19 -0
  1010. pdl_taskmaster-2.6.0/src/pdl_taskmaster/api/session.py +192 -0
  1011. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/CONTRACT_MANIFEST.json +239 -0
  1012. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/EXECUTION_CONTRACT.json +666 -0
  1013. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/VERIFICATION_CONTRACT.json +379 -0
  1014. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/standards/EXECUTION_STANDARD.md +16 -0
  1015. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/standards/PDL_STANDARD.md +21 -0
  1016. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/standards/RESPONSE_PLAN_STANDARD.md +24 -0
  1017. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/standards/RESULT_STANDARD.md +34 -0
  1018. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/standards/SEMANTIC_INPUT_STANDARD.md +15 -0
  1019. pdl_taskmaster-2.6.0/src/pdl_taskmaster/contracts/standards/UNCONFIRMED_STANDARD.md +13 -0
  1020. pdl_taskmaster-2.6.0/src/pdl_taskmaster/controller/mechanical_controller.py +583 -0
  1021. pdl_taskmaster-2.6.0/src/pdl_taskmaster/extensions/__init__.py +3 -0
  1022. pdl_taskmaster-2.6.0/src/pdl_taskmaster/extensions/conformance.py +241 -0
  1023. pdl_taskmaster-2.6.0/src/pdl_taskmaster/extensions/profiles.py +149 -0
  1024. pdl_taskmaster-2.6.0/src/pdl_taskmaster/extensions/providers.py +164 -0
  1025. pdl_taskmaster-2.6.0/src/pdl_taskmaster/extensions/task_types.py +427 -0
  1026. pdl_taskmaster-2.6.0/src/pdl_taskmaster/extensions/verifiers.py +99 -0
  1027. pdl_taskmaster-2.6.0/src/pdl_taskmaster/fileio.py +28 -0
  1028. pdl_taskmaster-2.6.0/src/pdl_taskmaster/host/app.py +251 -0
  1029. pdl_taskmaster-2.6.0/src/pdl_taskmaster/host/cli.py +127 -0
  1030. pdl_taskmaster-2.6.0/src/pdl_taskmaster/host/console.py +217 -0
  1031. pdl_taskmaster-2.6.0/src/pdl_taskmaster/host/control_cli.py +159 -0
  1032. pdl_taskmaster-2.6.0/src/pdl_taskmaster/host/mcp_server.py +297 -0
  1033. pdl_taskmaster-2.6.0/src/pdl_taskmaster/host/repl.py +1847 -0
  1034. pdl_taskmaster-2.6.0/src/pdl_taskmaster/observation/cli.py +47 -0
  1035. pdl_taskmaster-2.6.0/src/pdl_taskmaster/observation/observed_session.py +226 -0
  1036. pdl_taskmaster-2.6.0/src/pdl_taskmaster/observation/records.py +56 -0
  1037. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/README.md +76 -0
  1038. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/api_worker.py +1462 -0
  1039. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/base.py +30 -0
  1040. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/call_trace.py +196 -0
  1041. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/codex_worker.py +348 -0
  1042. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/fixtures.py +179 -0
  1043. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/live_stub.py +70 -0
  1044. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/model_adapters.py +43 -0
  1045. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/model_capabilities.py +64 -0
  1046. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/client.py +133 -0
  1047. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/gating.py +87 -0
  1048. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/__init__.py +26 -0
  1049. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/activation_route.py +135 -0
  1050. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/computation.py +83 -0
  1051. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/execution_profile.py +145 -0
  1052. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/follow_up.py +76 -0
  1053. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/plan_advancement.py +252 -0
  1054. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/problem_class.py +85 -0
  1055. pdl_taskmaster-2.6.0/src/pdl_taskmaster/providers/sys1/recipes/prompt_fidelity.py +184 -0
  1056. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/__init__.py +0 -0
  1057. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/agent_tools.py +463 -0
  1058. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/context_compiler.py +157 -0
  1059. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/model_classification.py +345 -0
  1060. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/operation_bridge.py +439 -0
  1061. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/output_contracts.py +272 -0
  1062. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/presentation.py +160 -0
  1063. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/provenance.py +136 -0
  1064. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/quarantine.py +118 -0
  1065. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/representation.py +93 -0
  1066. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/result_ir.py +400 -0
  1067. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/run_settings.py +64 -0
  1068. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/session_engine.py +3141 -0
  1069. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/text_blocks.py +93 -0
  1070. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/wire_payloads.py +1034 -0
  1071. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/witness_forms.py +46 -0
  1072. pdl_taskmaster-2.6.0/src/pdl_taskmaster/runtime/workspace.py +717 -0
  1073. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/__init__.py +26 -0
  1074. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/checkers/__init__.py +15 -0
  1075. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/checkers/base.py +59 -0
  1076. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/checkers/fallback.py +89 -0
  1077. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/__init__.py +27 -0
  1078. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/appcontainer.py +319 -0
  1079. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/backends.py +228 -0
  1080. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/container.py +224 -0
  1081. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/landlock.py +219 -0
  1082. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/policy.py +169 -0
  1083. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/seatbelt.py +120 -0
  1084. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/confinement/winproc.py +297 -0
  1085. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/error_registry.py +169 -0
  1086. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/literal_witness.py +181 -0
  1087. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/output_verifier.py +94 -0
  1088. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/plan_soundness.py +203 -0
  1089. pdl_taskmaster-2.6.0/src/pdl_taskmaster/verification/sandbox.py +1090 -0
  1090. pdl_taskmaster-2.6.0/tests/conftest.py +26 -0
  1091. pdl_taskmaster-2.6.0/tests/contract_shapes.py +91 -0
  1092. pdl_taskmaster-2.6.0/tests/extension_samples.py +105 -0
  1093. pdl_taskmaster-2.6.0/tests/fixtures/draft_execute/recorded.json +57 -0
  1094. pdl_taskmaster-2.6.0/tests/fixtures/nemotron-execute-whitespace-stall.json +34 -0
  1095. pdl_taskmaster-2.6.0/tests/fixtures/openrouter/endpoints-nvidia--nemotron-3-super-120b-a12b--free.json +69 -0
  1096. pdl_taskmaster-2.6.0/tests/fixtures/openrouter/endpoints-openai--gpt-oss-120b.json +1180 -0
  1097. pdl_taskmaster-2.6.0/tests/fixtures/openrouter/models.json +205 -0
  1098. pdl_taskmaster-2.6.0/tests/fixtures/openrouter_400_strict_schema.json +1 -0
  1099. pdl_taskmaster-2.6.0/tests/fixtures/openrouter_groq_schema_mismatch.json +45 -0
  1100. pdl_taskmaster-2.6.0/tests/fixtures/prompt_schema_descriptions.json +186 -0
  1101. pdl_taskmaster-2.6.0/tests/fixtures/recorded-cases.json +108 -0
  1102. pdl_taskmaster-2.6.0/tests/fixtures/task_type_parity.json +945 -0
  1103. pdl_taskmaster-2.6.0/tests/parity_scenarios.py +152 -0
  1104. pdl_taskmaster-2.6.0/tests/test_agent_tools.py +294 -0
  1105. pdl_taskmaster-2.6.0/tests/test_api.py +241 -0
  1106. pdl_taskmaster-2.6.0/tests/test_catalogue_integrity.py +272 -0
  1107. pdl_taskmaster-2.6.0/tests/test_catalogue_runs_location.py +38 -0
  1108. pdl_taskmaster-2.6.0/tests/test_codex_decoupling.py +179 -0
  1109. pdl_taskmaster-2.6.0/tests/test_computation_recipe.py +193 -0
  1110. pdl_taskmaster-2.6.0/tests/test_confinement.py +1030 -0
  1111. pdl_taskmaster-2.6.0/tests/test_console.py +155 -0
  1112. pdl_taskmaster-2.6.0/tests/test_control_cli.py +62 -0
  1113. pdl_taskmaster-2.6.0/tests/test_dev_mode.py +219 -0
  1114. pdl_taskmaster-2.6.0/tests/test_error_registry.py +50 -0
  1115. pdl_taskmaster-2.6.0/tests/test_execution_brief.py +598 -0
  1116. pdl_taskmaster-2.6.0/tests/test_execution_phase.py +873 -0
  1117. pdl_taskmaster-2.6.0/tests/test_execution_profile.py +434 -0
  1118. pdl_taskmaster-2.6.0/tests/test_experiments.py +553 -0
  1119. pdl_taskmaster-2.6.0/tests/test_extension_invariants.py +190 -0
  1120. pdl_taskmaster-2.6.0/tests/test_five_arm_report.py +228 -0
  1121. pdl_taskmaster-2.6.0/tests/test_gate_report.py +66 -0
  1122. pdl_taskmaster-2.6.0/tests/test_graders.py +450 -0
  1123. pdl_taskmaster-2.6.0/tests/test_harness_anti_overfitting.py +321 -0
  1124. pdl_taskmaster-2.6.0/tests/test_hidden_tests.py +124 -0
  1125. pdl_taskmaster-2.6.0/tests/test_interface_conformance.py +175 -0
  1126. pdl_taskmaster-2.6.0/tests/test_interruptions.py +372 -0
  1127. pdl_taskmaster-2.6.0/tests/test_judge.py +184 -0
  1128. pdl_taskmaster-2.6.0/tests/test_l104_witness_provenance.py +90 -0
  1129. pdl_taskmaster-2.6.0/tests/test_l110_negative_claims.py +29 -0
  1130. pdl_taskmaster-2.6.0/tests/test_l113_literal_witness.py +93 -0
  1131. pdl_taskmaster-2.6.0/tests/test_l116_closure.py +184 -0
  1132. pdl_taskmaster-2.6.0/tests/test_l117_closed_sessions.py +110 -0
  1133. pdl_taskmaster-2.6.0/tests/test_l118_bootstrap_environment.py +27 -0
  1134. pdl_taskmaster-2.6.0/tests/test_l119_witness_forms.py +120 -0
  1135. pdl_taskmaster-2.6.0/tests/test_l121_mcp_flags.py +167 -0
  1136. pdl_taskmaster-2.6.0/tests/test_l122_lfm_schema_adapter.py +150 -0
  1137. pdl_taskmaster-2.6.0/tests/test_l122_provider_compat.py +358 -0
  1138. pdl_taskmaster-2.6.0/tests/test_live_parity.py +371 -0
  1139. pdl_taskmaster-2.6.0/tests/test_mcp_external.py +163 -0
  1140. pdl_taskmaster-2.6.0/tests/test_mcp_server.py +114 -0
  1141. pdl_taskmaster-2.6.0/tests/test_outcome_counting.py +65 -0
  1142. pdl_taskmaster-2.6.0/tests/test_output_contracts.py +269 -0
  1143. pdl_taskmaster-2.6.0/tests/test_output_verifier.py +186 -0
  1144. pdl_taskmaster-2.6.0/tests/test_pdl_format_graders.py +102 -0
  1145. pdl_taskmaster-2.6.0/tests/test_pdl_format_pilot.py +70 -0
  1146. pdl_taskmaster-2.6.0/tests/test_phase0_routing.py +195 -0
  1147. pdl_taskmaster-2.6.0/tests/test_phase9_turns.py +251 -0
  1148. pdl_taskmaster-2.6.0/tests/test_plan_advancement.py +293 -0
  1149. pdl_taskmaster-2.6.0/tests/test_plan_gate_cases.py +44 -0
  1150. pdl_taskmaster-2.6.0/tests/test_plan_soundness.py +133 -0
  1151. pdl_taskmaster-2.6.0/tests/test_probe_problem_class.py +89 -0
  1152. pdl_taskmaster-2.6.0/tests/test_prompt_fidelity.py +302 -0
  1153. pdl_taskmaster-2.6.0/tests/test_provider_profile.py +48 -0
  1154. pdl_taskmaster-2.6.0/tests/test_provider_request_record.py +46 -0
  1155. pdl_taskmaster-2.6.0/tests/test_pydantic_wire.py +282 -0
  1156. pdl_taskmaster-2.6.0/tests/test_quarantine.py +85 -0
  1157. pdl_taskmaster-2.6.0/tests/test_reasoning_wire.py +211 -0
  1158. pdl_taskmaster-2.6.0/tests/test_recorded_replay.py +68 -0
  1159. pdl_taskmaster-2.6.0/tests/test_refusal_closure.py +114 -0
  1160. pdl_taskmaster-2.6.0/tests/test_repl_integration.py +460 -0
  1161. pdl_taskmaster-2.6.0/tests/test_repl_paste.py +205 -0
  1162. pdl_taskmaster-2.6.0/tests/test_representation.py +191 -0
  1163. pdl_taskmaster-2.6.0/tests/test_run_provenance.py +184 -0
  1164. pdl_taskmaster-2.6.0/tests/test_run_settings.py +106 -0
  1165. pdl_taskmaster-2.6.0/tests/test_sandbox.py +225 -0
  1166. pdl_taskmaster-2.6.0/tests/test_sem05_wiring.py +94 -0
  1167. pdl_taskmaster-2.6.0/tests/test_sys1_foundation.py +190 -0
  1168. pdl_taskmaster-2.6.0/tests/test_sys1_recipes.py +250 -0
  1169. pdl_taskmaster-2.6.0/tests/test_sys1_worker_wiring.py +245 -0
  1170. pdl_taskmaster-2.6.0/tests/test_targeted_probe_16_06_09_01.py +204 -0
  1171. pdl_taskmaster-2.6.0/tests/test_task_entities.py +402 -0
  1172. pdl_taskmaster-2.6.0/tests/test_task_type_conformance.py +71 -0
  1173. pdl_taskmaster-2.6.0/tests/test_task_type_parity.py +16 -0
  1174. pdl_taskmaster-2.6.0/tests/test_task_type_profile.py +222 -0
  1175. pdl_taskmaster-2.6.0/tests/test_text_blocks.py +62 -0
  1176. pdl_taskmaster-2.6.0/tests/test_token_usage.py +64 -0
  1177. pdl_taskmaster-2.6.0/tests/test_unconfirmed_route.py +440 -0
  1178. pdl_taskmaster-2.6.0/tests/test_v230_features.py +192 -0
  1179. pdl_taskmaster-2.6.0/tests/test_viewer.py +248 -0
  1180. pdl_taskmaster-2.6.0/tests/test_wire_repairs.py +1151 -0
  1181. pdl_taskmaster-2.6.0/tests/test_witness_projection.py +88 -0
  1182. pdl_taskmaster-2.6.0/viewer/__init__.py +1 -0
  1183. pdl_taskmaster-2.6.0/viewer/__main__.py +3 -0
  1184. pdl_taskmaster-2.6.0/viewer/index.html +299 -0
  1185. pdl_taskmaster-2.6.0/viewer/server.py +448 -0
  1186. pdl_taskmaster-2.5.1/.gitignore +0 -21
  1187. pdl_taskmaster-2.5.1/PKG-INFO +0 -170
  1188. pdl_taskmaster-2.5.1/README.md +0 -143
  1189. pdl_taskmaster-2.5.1/contracts/CONTRACT_MANIFEST.json +0 -231
  1190. pdl_taskmaster-2.5.1/contracts/EXECUTION_CONTRACT.json +0 -615
  1191. pdl_taskmaster-2.5.1/contracts/VERIFICATION_CONTRACT.json +0 -379
  1192. pdl_taskmaster-2.5.1/contracts/standards/EXECUTION_STANDARD.md +0 -14
  1193. pdl_taskmaster-2.5.1/contracts/standards/PDL_STANDARD.md +0 -19
  1194. pdl_taskmaster-2.5.1/contracts/standards/RESPONSE_PLAN_STANDARD.md +0 -24
  1195. pdl_taskmaster-2.5.1/contracts/standards/RESULT_STANDARD.md +0 -35
  1196. pdl_taskmaster-2.5.1/contracts/standards/SEMANTIC_INPUT_STANDARD.md +0 -15
  1197. pdl_taskmaster-2.5.1/docs/adr/README.md +0 -26
  1198. pdl_taskmaster-2.5.1/pyproject.toml +0 -75
  1199. pdl_taskmaster-2.5.1/src/pdl_taskmaster/__init__.py +0 -6
  1200. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/CONTRACT_MANIFEST.json +0 -231
  1201. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/EXECUTION_CONTRACT.json +0 -615
  1202. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/VERIFICATION_CONTRACT.json +0 -379
  1203. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/standards/EXECUTION_STANDARD.md +0 -14
  1204. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/standards/PDL_STANDARD.md +0 -19
  1205. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/standards/RESPONSE_PLAN_STANDARD.md +0 -24
  1206. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/standards/RESULT_STANDARD.md +0 -35
  1207. pdl_taskmaster-2.5.1/src/pdl_taskmaster/contracts/standards/SEMANTIC_INPUT_STANDARD.md +0 -15
  1208. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/mechanical_controller.py +0 -542
  1209. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/activation_decision.schema.json +0 -34
  1210. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/artifact_body.schema.json +0 -14
  1211. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/artifact_review_facts.schema.json +0 -91
  1212. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/bootstrap_analysis.schema.json +0 -60
  1213. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/execution_draft.schema.json +0 -47
  1214. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/execution_input_decision.schema.json +0 -43
  1215. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/execution_outcome.schema.json +0 -201
  1216. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/plan_artifact.schema.json +0 -14
  1217. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/prompt_artifact.schema.json +0 -63
  1218. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/protocol_discussion.schema.json +0 -8
  1219. pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller/schemas/result_ir_repair.schema.json +0 -161
  1220. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/__init__.py +0 -1
  1221. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/build_adversarial_battery.py +0 -351
  1222. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/compare_eval_runs.py +0 -251
  1223. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/control_api_call.py +0 -428
  1224. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/export_rlcd_dataset.py +0 -799
  1225. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/fidelity_scan.py +0 -268
  1226. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/gen_fidelity_battery.py +0 -457
  1227. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/leak_scan.py +0 -260
  1228. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/rerecord_fixtures.py +0 -139
  1229. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/run_canary_shape_probe.py +0 -229
  1230. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/run_dual_gate_probe.py +0 -404
  1231. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/run_qualified_batch.py +0 -841
  1232. pdl_taskmaster-2.5.1/src/pdl_taskmaster/eval/summarize_run.py +0 -194
  1233. pdl_taskmaster-2.5.1/src/pdl_taskmaster/host/app.py +0 -166
  1234. pdl_taskmaster-2.5.1/src/pdl_taskmaster/host/cli.py +0 -116
  1235. pdl_taskmaster-2.5.1/src/pdl_taskmaster/host/repl.py +0 -1349
  1236. pdl_taskmaster-2.5.1/src/pdl_taskmaster/observation/cli.py +0 -47
  1237. pdl_taskmaster-2.5.1/src/pdl_taskmaster/observation/observed_session.py +0 -219
  1238. pdl_taskmaster-2.5.1/src/pdl_taskmaster/observation/records.py +0 -58
  1239. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/README.md +0 -66
  1240. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/api_worker.py +0 -657
  1241. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/base.py +0 -26
  1242. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/codex_worker.py +0 -328
  1243. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/fixtures.py +0 -157
  1244. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/live_stub.py +0 -66
  1245. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/sys1/client.py +0 -102
  1246. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/sys1/gating.py +0 -82
  1247. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/sys1/recipes/__init__.py +0 -16
  1248. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/sys1/recipes/activation_route.py +0 -71
  1249. pdl_taskmaster-2.5.1/src/pdl_taskmaster/providers/sys1/recipes/problem_class.py +0 -95
  1250. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/context_compiler.py +0 -151
  1251. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/model_classification.py +0 -326
  1252. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/operation_bridge.py +0 -458
  1253. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/presentation.py +0 -18
  1254. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/quarantine.py +0 -91
  1255. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/result_ir.py +0 -617
  1256. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/semantic_observer.py +0 -40
  1257. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/session_engine.py +0 -1539
  1258. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/wire_payloads.py +0 -569
  1259. pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime/workspace.py +0 -602
  1260. pdl_taskmaster-2.5.1/src/pdl_taskmaster/tools/repl_viewer.html +0 -276
  1261. pdl_taskmaster-2.5.1/src/pdl_taskmaster/tools/viewer_server.py +0 -272
  1262. pdl_taskmaster-2.5.1/src/pdl_taskmaster/tracking/__init__.py +0 -1
  1263. pdl_taskmaster-2.5.1/src/pdl_taskmaster/tracking/log_live_session.py +0 -111
  1264. pdl_taskmaster-2.5.1/src/pdl_taskmaster/tracking/mlflow_sink.py +0 -58
  1265. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/__init__.py +0 -26
  1266. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/checkers/__init__.py +0 -14
  1267. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/checkers/base.py +0 -37
  1268. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/checkers/fallback.py +0 -77
  1269. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/checkers/partition_sum_triples.py +0 -227
  1270. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/output_verifier.py +0 -73
  1271. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/plan_soundness.py +0 -135
  1272. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verification/sandbox.py +0 -398
  1273. pdl_taskmaster-2.5.1/src/pdl_taskmaster/verify/verify_repl_baseline.py +0 -317
  1274. pdl_taskmaster-2.5.1/tests/fixtures/FIXTURE_MANIFEST.json +0 -91
  1275. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/BND-00/turns.json +0 -6
  1276. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-01/turns.json +0 -8
  1277. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-02/turns.json +0 -8
  1278. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-03/turns.json +0 -9
  1279. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-04/turns.json +0 -9
  1280. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-05/turns.json +0 -10
  1281. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-06/turns.json +0 -10
  1282. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-07/turns.json +0 -10
  1283. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-08/turns.json +0 -11
  1284. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-09/turns.json +0 -13
  1285. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/DRIP-10/turns.json +0 -13
  1286. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-01/turns.json +0 -6
  1287. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-02/turns.json +0 -6
  1288. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-03/turns.json +0 -6
  1289. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-04/turns.json +0 -6
  1290. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-05/turns.json +0 -6
  1291. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-06/turns.json +0 -6
  1292. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-07/turns.json +0 -6
  1293. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-08/turns.json +0 -6
  1294. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-09/turns.json +0 -6
  1295. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/ENC-10/turns.json +0 -6
  1296. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/F4-CONTRADICTION/turns.json +0 -6
  1297. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/MANIFEST.json +0 -782
  1298. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/STACK-01/turns.json +0 -9
  1299. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/STACK-02/turns.json +0 -9
  1300. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/STACK-03/turns.json +0 -10
  1301. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/STACK-04/turns.json +0 -10
  1302. pdl_taskmaster-2.5.1/tests/fixtures/adversarial/STACK-05/turns.json +0 -11
  1303. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/ACTOR-01/turns.json +0 -6
  1304. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/ACTOR-02/turns.json +0 -6
  1305. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/ACTOR-03/turns.json +0 -6
  1306. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/DISAMB-01/turns.json +0 -6
  1307. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/DISAMB-02/turns.json +0 -6
  1308. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/DISAMB-03/turns.json +0 -6
  1309. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/DISAMB-04/turns.json +0 -6
  1310. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/MANIFEST.json +0 -782
  1311. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/MC-01/turns.json +0 -6
  1312. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/MC-02/turns.json +0 -6
  1313. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/MC-03/turns.json +0 -6
  1314. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/MC-04/turns.json +0 -6
  1315. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/MC-05/turns.json +0 -6
  1316. pdl_taskmaster-2.5.1/tests/fixtures/fidelity/MC-06/turns.json +0 -6
  1317. pdl_taskmaster-2.5.1/tests/fixtures/recorded-cases.json +0 -107
  1318. pdl_taskmaster-2.5.1/tests/test_adversarial_battery.py +0 -170
  1319. pdl_taskmaster-2.5.1/tests/test_bump_version.py +0 -45
  1320. pdl_taskmaster-2.5.1/tests/test_codex_decoupling.py +0 -133
  1321. pdl_taskmaster-2.5.1/tests/test_dev_mode.py +0 -205
  1322. pdl_taskmaster-2.5.1/tests/test_evidence_sink.py +0 -53
  1323. pdl_taskmaster-2.5.1/tests/test_fidelity_scan.py +0 -172
  1324. pdl_taskmaster-2.5.1/tests/test_harness_baseline.py +0 -143
  1325. pdl_taskmaster-2.5.1/tests/test_mlflow_logger.py +0 -62
  1326. pdl_taskmaster-2.5.1/tests/test_output_verifier.py +0 -238
  1327. pdl_taskmaster-2.5.1/tests/test_phase9_turns.py +0 -166
  1328. pdl_taskmaster-2.5.1/tests/test_plan_soundness.py +0 -130
  1329. pdl_taskmaster-2.5.1/tests/test_pydantic_wire.py +0 -250
  1330. pdl_taskmaster-2.5.1/tests/test_quarantine.py +0 -60
  1331. pdl_taskmaster-2.5.1/tests/test_repl_integration.py +0 -129
  1332. pdl_taskmaster-2.5.1/tests/test_repl_paste.py +0 -140
  1333. pdl_taskmaster-2.5.1/tests/test_rlcd_dataset.py +0 -136
  1334. pdl_taskmaster-2.5.1/tests/test_sandbox.py +0 -76
  1335. pdl_taskmaster-2.5.1/tests/test_sem05_wiring.py +0 -89
  1336. pdl_taskmaster-2.5.1/tests/test_sys1_foundation.py +0 -170
  1337. pdl_taskmaster-2.5.1/tests/test_sys1_recipes.py +0 -142
  1338. pdl_taskmaster-2.5.1/tests/test_sys1_worker_wiring.py +0 -215
  1339. pdl_taskmaster-2.5.1/tests/test_task_entities.py +0 -164
  1340. pdl_taskmaster-2.5.1/tests/test_v230_features.py +0 -154
  1341. pdl_taskmaster-2.5.1/tests/test_viewer_command.py +0 -51
  1342. pdl_taskmaster-2.5.1/tests/test_wire_repairs.py +0 -264
  1343. pdl_taskmaster-2.5.1/tests/test_witness_projection.py +0 -147
  1344. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/LICENSE +0 -0
  1345. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/NOTICE.md +0 -0
  1346. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/AUTHORITY_MAP.json +0 -0
  1347. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/CALIBRATION.json +0 -0
  1348. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/IMPLEMENTATION_BOUNDARY.json +0 -0
  1349. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/ARTIFACT_STANDARD.md +0 -0
  1350. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/AUTHORITY_STANDARD.md +0 -0
  1351. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/CONFORMANCE_STANDARD.md +0 -0
  1352. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/CONTEXT_STANDARD.md +0 -0
  1353. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/HANDOFF_STANDARD.md +0 -0
  1354. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/INSTALLATION_STANDARD.md +0 -0
  1355. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/PROMPT_STANDARD.md +0 -0
  1356. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/PROTOCOL_STANDARD.md +0 -0
  1357. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/REVIEW_STANDARD.md +0 -0
  1358. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/contracts/standards/TASK_SEMANTICS_STANDARD.md +0 -0
  1359. {pdl_taskmaster-2.5.1/src/pdl_taskmaster/controller → pdl_taskmaster-2.6.0/experiments/pdl_format}/__init__.py +0 -0
  1360. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/AUTHORITY_MAP.json +0 -0
  1361. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/CALIBRATION.json +0 -0
  1362. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/IMPLEMENTATION_BOUNDARY.json +0 -0
  1363. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/ARTIFACT_STANDARD.md +0 -0
  1364. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/AUTHORITY_STANDARD.md +0 -0
  1365. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/CONFORMANCE_STANDARD.md +0 -0
  1366. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/CONTEXT_STANDARD.md +0 -0
  1367. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/HANDOFF_STANDARD.md +0 -0
  1368. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/INSTALLATION_STANDARD.md +0 -0
  1369. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/PROMPT_STANDARD.md +0 -0
  1370. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/PROTOCOL_STANDARD.md +0 -0
  1371. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/REVIEW_STANDARD.md +0 -0
  1372. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/contracts/standards/TASK_SEMANTICS_STANDARD.md +0 -0
  1373. {pdl_taskmaster-2.5.1/src/pdl_taskmaster/runtime → pdl_taskmaster-2.6.0/src/pdl_taskmaster/controller}/__init__.py +0 -0
  1374. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/host/__init__.py +0 -0
  1375. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/observation/__init__.py +0 -0
  1376. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/observation/parsers.py +0 -0
  1377. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/observation/session.py +0 -0
  1378. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/observation/sink.py +0 -0
  1379. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/observation/sinks.py +0 -0
  1380. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/__init__.py +0 -0
  1381. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/recorded.py +0 -0
  1382. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/sys1/__init__.py +0 -0
  1383. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/sys1/recipes/base.py +0 -0
  1384. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/sys1/recipes/confirmation_match.py +0 -0
  1385. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/sys1/recipes/review_facets.py +0 -0
  1386. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/sys1/schema.py +0 -0
  1387. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/sys2/__init__.py +0 -0
  1388. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/providers/sys2/client.py +0 -0
  1389. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/py.typed +0 -0
  1390. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/runtime/normative_store.py +0 -0
  1391. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/runtime/standard_registry.py +0 -0
  1392. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/src/pdl_taskmaster/runtime/worker-bootstrap.txt +0 -0
  1393. {pdl_taskmaster-2.5.1 → pdl_taskmaster-2.6.0}/tests/test_quarantine_generalized.py +0 -0
@@ -0,0 +1,19 @@
1
+ .pytest_cache/
2
+ __pycache__/
3
+ *.egg-info/
4
+ catalogue-runs/
5
+ model-compare/
6
+ .venv/
7
+ venv/
8
+ mlruns/
9
+ runs/
10
+ mlflow.db
11
+ *.log
12
+ .env
13
+ dist/
14
+ build/
15
+
16
+ # acceptance-gate runner output (experiments/runner.py)
17
+ gate-runs/
18
+ site/
19
+ experiments/adjudication_cache/
@@ -0,0 +1,69 @@
1
+ # Agent Rules & Guidelines
2
+
3
+ ## Continuity (read first, every session and after every context compaction)
4
+ - **`docs/plans/LEDGER.md` is the canonical record** of cross-cutting decisions and open items: each with its source (main chat, side chat, the user), status and link.
5
+ - **Read it before starting work.** Then read the current PR's work list it points to (for example `docs/plans/pr2-worklist.md`).
6
+ - **Update it in the same change** that settles, changes or completes an item. Mark items `done` as they land, citing the commit.
7
+ - **A side-chat decision is not settled until it has a ledger row.**
8
+ - **When two recorded decisions disagree:**
9
+ - a **minor** conflict: the side chat's decision wins; record it, noting the conflict in the row;
10
+ - a **major** one: mark the row `conflict` and ask the user.
11
+ Never pick silently.
12
+ - **Within one turn, a built-in task list is fine for progress.** The ledger and the work list are what survive compaction. An external tracker may mirror them, never replace them.
13
+
14
+ ## Diagnosis and Verification Rule (CRITICAL / MANDATORY)
15
+ - **Static first.** Diagnose from the code: trace the path and cite `file:line`. Read the artifacts existing runs already recorded (`call-trace.jsonl`, `events.jsonl`, `compiled-projection.json`, `model-response.txt`). If the code determines the answer, do not reproduce it live.
16
+ - **Offline before live.** Verify host logic with the offline suite and recorded replays (`--worker recorded`). Controller transitions, exit codes, routing plumbing, grading, telemetry, docs and refactors need no API call.
17
+ - **Live only when the answer depends on what code cannot determine:**
18
+ - what a model returns for a request, when no recorded output answers it;
19
+ - provider behaviour: schema acceptance, routing, stalls, token reporting, latency;
20
+ - a System 1 decision on an input it has not seen;
21
+ - a change to what the model or provider receives, checked once before merge (trigger below).
22
+ - **The trigger for "receives".** Either of these:
23
+ - a recorded replay misses, because the rendered prompt's hash changed (`RecordedWorker` keys on the operation plus the prompt's SHA-256 and raises `ReplayMissError`);
24
+ - the provider-layer request changed (`providers/api_worker.py`: guidance text, effort, response format, caps, provider pinning).
25
+
26
+ Replay alone does not cover the second: those parts are added after the prompt is hashed.
27
+ - **A static conclusion about runtime behaviour is a hypothesis.** Code can be read confidently and still not be what runs: environment variables, provider defaults, a stale install. A static claim about model or provider behaviour stays a hypothesis until a recorded artifact confirms it. Only when none exists does it justify a live run.
28
+ - **A live run answers a stated question.** Before running, write what you expect and what would falsify it. Use the smallest run that answers it, in dev mode (`--dev`), from the repository root. No generic smoke runs.
29
+ - **Label the evidence.** Every claim says how it was established: static (`file:line`), offline test, recorded artifact, or live run. Never report a static or offline result as "verified live". If a required live check can't run because `OPENROUTER_API_KEY` is unavailable, say so.
30
+
31
+ ## PDL Standard Adherence
32
+ - Prompt Pseudocode MUST strictly conform to `PDL-01` through `PDL-08`.
33
+ - NO invented field schemas (`TASK:`, `OUTPUT:`, `INCLUDE:`).
34
+ - One operation per line (`PDL-02`), capitalized action verbs (`PDL-04`).
35
+ - No drafting meta-rules or deferrals in the prompt or plan bodies (`PROMPT-01`, `PDL-08`).
36
+
37
+ ## Architecture & Verification Governance (ADR-0018, ADR-0019, ADR-0020)
38
+ - **Pydantic SSOT (ADR-0018)**: NEVER use heuristic regex for domain detection, witness extraction, or wire verification. All parsing and validation MUST go through strict, schema-first Pydantic models with alias coercion (`OutputVerifier`, `wire_payloads.WitnessPayload`). No problem-specific checker ships in the harness plane.
39
+ - **Autonomous Host Execution & First-Class Reasoning (GUARD-03)**:
40
+ - When Python code or solver scripts are present, the host sandbox automatically executes them to capture stdout witnesses. NEVER emit `REQUEST_INPUT` asking the user to run code.
41
+ - Analytical derivations, symbolic mathematics, word problems, and logical deductions are first-class deliverables (`GUARD-03`). The harness MUST NOT coerce symbolic or reasoning tasks into executable Python scripts or force models to fabricate concrete values for symbolic variables.
42
+ - **System 1 Boundary Refusal (ADR-0020, GUARD-02)**: Out-of-bounds, network-dependent, or mathematically impossible tasks MUST be intercepted and refused fail-closed by System 1 in <2s conditioned on runtime environment variables (`PDLT_SANDBOX_NETWORK`, `PDLT_POLICY_SCOPE`); the knowledge cutoff (`PDLT_KNOWLEDGE_CUTOFF`) is injected into System 1's state, never matched by a year regex. NEVER hardcode prompt-specific benchmark tokens or entity names into production regex traps.
43
+ - **Headless Automation & Exit Codes (ADR-0019)**:
44
+ - `0`: `CLOSED_SUCCESS` (deliverable verified).
45
+ - `0` also covers a published boundary refusal (`closure=REFUSED`, ADR-0019 amendment).
46
+ - `1`: `CLOSED_CANCELLED` / fail-closed error.
47
+ - `2`: `UNCONFIRMED_GATE` (execution stalled at review gate).
48
+ - `3`: `WAITING_INPUT` (legitimate pause awaiting external input).
49
+ - `4`: harness or provider error (`EXIT_HARNESS_ERROR`); never a protocol result.
50
+ - `5`: `CLOSED_UNVERIFIED`: a published result the host could not establish (a negative claim, a deliverable declaring requirements open, or a positive result established by an argument; ADR-0019 amendment, L116, ADR-0030).
51
+ - `130`: interrupted by the user.
52
+ - **Catalogue Verification**: Before merging a PR that changes behaviour (what the model receives, routing, stage logic, verification or grading), run `python run_catalogue.py --fail-fast` from the repository root to check for regressions across all 16 categories. It is not a per-pass check. Never loosen `is_prompt_pass` or `graders.py` to obtain a green result.
53
+ - **Runs live outside the repository**: catalogue and experiment runs are written to `$PDLT_CATALOGUE_RUNS`, else `PDLt-Catalogue-Archive` beside the checkout (`catalogue_runs.py`). Never commit run output.
54
+
55
+ ## Post-Implementation Anti-Overfitting & Integrity Gate (MANDATORY / SSOT)
56
+ - **The Referee Invariant (GUARD-01, GUARD-04)**: The harness is strictly an objective protocol referee and governor—NEVER an AI task solver. The harness MUST NEVER:
57
+ - Inject prescriptive algorithmic advice, search methods (e.g. MRV, backtracking, DLX), or solution hints into prompts, plans, or `CARRIED_APPROACH_SOURCES`.
58
+ - Mechanically require specific algorithmic keywords in Plan Soundness gates.
59
+ - Scrape deliverable text with regex to synthesize witnesses.
60
+ - **Feedback channel**: retry and lint feedback travels only through operator correction; `CARRIED_APPROACH_SOURCES` stays user-originated.
61
+ - **Mandatory Anti-Overfitting Suite**: After ANY implementation round touching prompts, gates, checkers, or session engine, you MUST execute:
62
+ ```bash
63
+ pytest tests/test_harness_anti_overfitting.py
64
+ ```
65
+ Every test must pass with zero warnings, failures, or skips.
66
+ - **Guardrail Cross-Check**: Any changes MUST strictly conform to `docs/guardrails/ANTI_OVERFITTING_AND_BENCHMARK_INTEGRITY.md` (`GUARD-01` through `GUARD-05`).
67
+ - **Integrity Over Checkmarks**: **A failed benchmark is acceptable and diagnostic of genuine model capability boundaries (e.g. `REG-011`, `REG-012`), but a gamed benchmark is a critical integrity breach.** Never introduce harness crutches to force a green test.
68
+
69
+
@@ -0,0 +1,276 @@
1
+ # PDL Taskmaster: Current Architecture
2
+
3
+ **Describes:** `pdl-taskmaster` 2.6.0, the code in this repository.
4
+ **Scope:** what exists and runs today. Where the project is heading is in [`TARGET_ARCHITECTURE.md`](TARGET_ARCHITECTURE.md); nothing in this document describes planned behaviour.
5
+ **Normative authorities:** ADR-0001 through ADR-0022 ([`docs/adr/`](docs/adr/README.md)) and the guardrails in [`docs/guardrails/ANTI_OVERFITTING_AND_BENCHMARK_INTEGRITY.md`](docs/guardrails/ANTI_OVERFITTING_AND_BENCHMARK_INTEGRITY.md) (`GUARD-01` to `GUARD-05`). Where an ADR and the guardrails disagree, the guardrails win.
6
+
7
+ ---
8
+
9
+ ## 1. What PDL Taskmaster is
10
+
11
+ PDL Taskmaster is a protocol referee and runtime governor for model-driven tasks. It exists because *the component carrying out a task cannot be the only one deciding what the task means*. Before anything runs, the model restates the request as short Prompt Pseudocode and then as a Response Plan; each is shown for review, and execution starts only after both are confirmed.
12
+
13
+ Three rules shape the whole design:
14
+
15
+ 1. **Route the sandbox conditions, not the model.** The harness never grades plan quality or reasoning style, uses no rubric and no model self-grading. System 1 routes physical and operational conditions (environment, budgets, review intent); the review gates align the task with the human.
16
+ 2. **The referee invariant (`GUARD-01`, `GUARD-04`).** The harness is never a solver. It does not inject algorithmic advice, require algorithm keywords at review gates, or fabricate witnesses. A failed task is diagnostic signal; a gamed pass is an integrity breach.
17
+ 3. **Session-scoped execution sandbox.** One `ExecutionSandbox` is built per session and reused for every program run in it.
18
+
19
+ ### 1.1 Two planes
20
+
21
+ | Plane | Location | Knows the benchmark? | Responsibility |
22
+ |---|---|---|---|
23
+ | **Harness** | `src/pdl_taskmaster/` | **Never** | Protocol governance, input containment, sandboxed execution, schema verification |
24
+ | **Evaluation** | `run_catalogue.py`, `graders.py`, `prompts/`, `viewer/` | Yes | Drives headless catalogue runs, maps exit codes to verdicts, grades deliverables against `prompts/solutions/`, browses results |
25
+
26
+ The harness never reads `prompts/` and contains no prompt IDs, fixture names or problem-class vocabulary; `tests/test_harness_anti_overfitting.py` scans for them. Only the harness is shipped in the wheel.
27
+
28
+ ---
29
+
30
+ ## 2. Components
31
+
32
+ ```
33
+ src/pdl_taskmaster/
34
+ ├── api/ the library layer every interface uses: Session, TurnResult, workers,
35
+ │ run settings, closed sessions, sandboxes (docs/api.md)
36
+ ├── extensions/ versioned profiles (task type, verifier, provider), registries,
37
+ │ conformance kit (docs/extensions.md)
38
+ ├── host/ pdlt CLI (cli.py), REPL presentation (repl.py), PDLtHost turn API (app.py),
39
+ │ MCP server (mcp_server.py)
40
+ ├── runtime/ SessionEngine orchestrator, workspace (in-memory VFS), context compiler,
41
+ │ operation bridge (wire parsing), Pydantic wire models, Result IR, quarantine,
42
+ │ normative store (contract resolution)
43
+ ├── controller/ MechanicalController: the deterministic stage machine
44
+ ├── providers/ System 2 workers (api, codex, recorded), System 1 client and recipes
45
+ ├── verification/ output verifier, plan-soundness lint, error registry, ExecutionSandbox,
46
+ │ confinement backends (Landlock, Seatbelt, AppContainer, container)
47
+ ├── observation/ per-turn JSONL observation records
48
+ └── contracts/ bundled normative contracts and standards (hash-pinned)
49
+ ```
50
+
51
+ | Layer | Owns | Does not own |
52
+ |---|---|---|
53
+ | `api/` (`Session`) | The surface the REPL, headless runs and the MCP server share: sessions, review gates, results, exit status | Stage transitions |
54
+ | `host/repl.py` | Terminal I/O, slash commands, paste handling, headless exit codes | Protocol state |
55
+ | `host/app.py` (`PDLtHost`) | Process and session lifetime; one call per user turn (`handle`) | Stage transitions |
56
+ | `runtime/session_engine.py` | Orchestrating operations, verification and sandbox runs | Terminal I/O (it never reads stdin or prints) |
57
+ | `controller/mechanical_controller.py` | Every stage transition | Model calls |
58
+ | `providers/` | One model call per request (`WorkerAdapter.call`) | Wire validity (the operation bridge decides) |
59
+
60
+ ### 2.1 Model tiers
61
+
62
+ - **System 1** (`providers/sys1/`): a fast decision model (default `typesafe/jev-1.13` through OpenRouter's decisions endpoint) that returns calibrated label distributions, never text. Every recipe shares one confidence gate (`gating.py`): confidence $P \ge 0.85$, top-2 margin $\Delta p \ge 0.40$, normalized entropy $H(p) \le 0.35$.
63
+ - **System 2** (`providers/api_worker.py`): a generative model (default `openai/gpt-oss-120b` through OpenRouter) that drafts the Prompt and Plan and executes. With no `--api-providers`, the provider order is Baseten, then Crusoe, with fallbacks allowed (`OPENROUTER_PROVIDER` and `OPENROUTER_PROVIDER_ORDER` override it); measured provider behaviour is in [`PROVIDERS.md`](PROVIDERS.md). Reasoning effort defaults to high before execution and low at `EXECUTE` (ADR-0022). `--api-base-url` points it at another OpenAI-compatible endpoint; provider routing options (`--api-providers`) are OpenRouter's.
64
+ - **Other workers:** `codex` drives the Codex CLI as a System 2 worker; `recorded` replays fixtures for offline tests.
65
+
66
+ ---
67
+
68
+ ## 3. Protocol lifecycle
69
+
70
+ ### 3.1 Stages
71
+
72
+ `MechanicalController` owns these stages; no worker output can move between them on its own.
73
+
74
+ | Stage | Meaning |
75
+ |---|---|
76
+ | `PROMPT_REQUIRED` | A request was accepted; Prompt Pseudocode must be drafted |
77
+ | `PROMPT_REVIEW` | Prompt Pseudocode is waiting for review |
78
+ | `PLAN_REQUIRED` | The prompt is confirmed; a Response Plan must be drafted |
79
+ | `PLAN_REVIEW` | The Response Plan is waiting for review |
80
+ | `EXECUTION_READY` | Both artifacts are confirmed; execution may start |
81
+ | `WAITING_INPUT` | Execution asked for required external input |
82
+ | `OUTCOME_UNCERTAIN` | A session was restored while an execution was in flight; its outcome is unknown |
83
+ | `CLOSED_SUCCESS` | A verified deliverable was published |
84
+ | `CLOSED_CANCELLED` | Cancelled, or verification failed after the repairs allowed |
85
+
86
+ Gates: no plan is drafted without a confirmed prompt, and nothing executes without a confirmed plan bound to that prompt. Empty input at a review gate re-prompts and is never taken as acceptance.
87
+
88
+ ### 3.2 Decision flow
89
+
90
+ ```mermaid
91
+ flowchart TD
92
+ Ingest["User request"] --> S1_Activate{"S1: activation route"}
93
+ S1_Activate -- BLOCKED_BY_HIGHER_PRIORITY --> Refusal["Publish boundary refusal<br/>exit 0 (closure=REFUSED)"]
94
+ S1_Activate -- BYPASS / PROTOCOL_DISCUSSION --> Direct["Direct answer (no protocol instance)"]
95
+ S1_Activate -- "APPLY_PROTOCOL, or no usable S1 decision" --> S1_Class{"S1: problem class<br/>and execution profile"}
96
+ S1_Class --> DraftPrompt["S2: DRAFT_PROMPT"]
97
+ DraftPrompt --> PromptLint{"Grammar lint"}
98
+ PromptLint -- "violation (one redraft)" --> DraftPrompt
99
+ PromptLint -- clean --> PromptGate["PROMPT_REVIEW"]
100
+ PromptGate -- "/confirm or agreed" --> DraftPlan["S2: DRAFT_PLAN"]
101
+ PromptGate -- "/revise" --> DraftPrompt
102
+ PromptGate -- "/stop, /cancel" --> Cancelled["CLOSED_CANCELLED, exit 1"]
103
+ DraftPlan --> PlanLint{"Grammar lint"}
104
+ PlanLint -- "violation (one redraft)" --> DraftPlan
105
+ PlanLint -- clean --> PlanAdvance{"S1: plan advancement<br/>(PLAN-02)"}
106
+ PlanAdvance -- "restates the prompt (one redraft)" --> DraftPlan
107
+ PlanAdvance -- "advances, uncertain, or still restating with a host note" --> PlanGate["PLAN_REVIEW"]
108
+ PlanGate -- "/confirm or agreed" --> Execute["S2: EXECUTE"]
109
+ PlanGate -- "/revise" --> DraftPlan
110
+ PlanGate -- "/stop, /cancel" --> Cancelled
111
+ Execute -- REQUEST_INPUT --> Waiting["WAITING_INPUT, exit 3"]
112
+ Execute --> HasCode{"Executable Python?"}
113
+ HasCode -- yes --> Sandbox["Run in session sandbox,<br/>capture witness"]
114
+ HasCode -- "no (symbolic or analytical)" --> Verify
115
+ Sandbox --> Verify{"Output verifier"}
116
+ Verify -- valid --> Success["CLOSED_SUCCESS, exit 0"]
117
+ Verify -- invalid --> Repair["Bounded repair<br/>(1, or 2 on HEAVY_COMPUTE)"]
118
+ Repair --> Execute
119
+ Repair -- "repairs exhausted" --> Cancelled
120
+ ```
121
+
122
+ Review gates accept the fast-path commands `/confirm`, `/revise <feedback>`, `/stop` and `/cancel` without a model call. In fast mode (`--fast`, `/fast on`) the user confirms in advance: a review whose artifact carries no host finding is accepted without waiting (recorded as `STANDING_CONFIRMATION`); one with a finding stops as usual. Other review text goes to System 1 (`ConfirmationMatch`, then `ReviewFacets`) and, when System 1 is not confident, to System 2 interpretation; the harness never assumes an intent. A review command sent when no review is open gets a notice and is never treated as a new request.
123
+
124
+ ### 3.3 Phases
125
+
126
+ | Phase | Mechanism | Outcomes |
127
+ |---|---|---|
128
+ | **0. Activation** | System 1 `activation_route` over environment **recipe state**: policy scope (`PDLT_POLICY_SCOPE`, default `technical`), network (`PDLT_SANDBOX_NETWORK`, default `false`), knowledge cutoff (`PDLT_KNOWLEDGE_CUTOFF`, default `2024-06`) and the sandbox's execution environment. No keyword, pattern or date matching. These settings never reach System 2. | `APPLY_PROTOCOL` → phase 1; gated `BLOCKED_BY_HIGHER_PRIORITY` → refusal, exit 0; `BYPASS` / `PROTOCOL_DISCUSSION` → direct answer |
129
+ | **1. Prompt review** | Grammar lint, then fast-path commands, then review intent | confirm → phase 2; revise → redraft; cancel → exit 1 |
130
+ | **2. Plan lint** | Deterministic lint (`plan_soundness.py`): PDL-05 no fielded prefixes, PDL-06 no code fences, PDL-08 no deferral or meta markers, PLAN-10 no placeholder steps. One redraft carrying the finding, through operator correction only (never `CARRIED_APPROACH_SOURCES`). No algorithm or execution keywords are required. | clean → plan advancement |
131
+ | **2b. Plan advancement (PLAN-02)** | System 1 `PlanAdvancementRecipe` compares the plan with the confirmed prompt on three task-neutral checks: the plan adds a solution action or deduction with its content, says how it handles the conditions that keep the task from being solved directly, and shows how the result will be obtained. A fourth question asks whether the prompt already states the method (then a plan has nothing to add). One confident failure gets one redraft whose operator correction names only the failed checks, never the decision text or a method; a plan that still fails is published unchanged (AUTH-05) with a `[host] PLAN-02` note, so fast mode never confirms it in advance. Uncertain or unavailable System 1 does not flag the plan. Every decision is a `PLAN_ADVANCEMENT` event. Live accuracy is measured by `run_plan_gate.py`. | advances → plan gate; restates → one redraft, then plan gate with a note |
132
+ | **3. Plan review** | Fast-path commands, then review intent | confirm → phase 4; revise approach → redraft plan; revise task → phase 1; cancel → exit 1 |
133
+ | **4. Execution** | System 2 `EXECUTE` | result → phase 5; `REQUEST_INPUT` → exit 3 |
134
+ | **5. Verification** | Pydantic output verifier with witness authority (§4). Result IR citation bookkeeping is recorded as `RESULT_IR_CITATION_FINDINGS` and never blocks. | pass → exit 0; contract failure → bounded repair → exit 1 |
135
+
136
+ **When System 1 is unavailable.** System 1 absent, unconfigured, failing or below its confidence gate yields no System 1 evidence: no refusal is published, the problem class defaults to `STANDARD_EXECUTION`, and the execution profile defaults to `STANDARD`. Boundary refusal therefore depends on a reachable System 1; the sandbox's own limits (no network, confinement) still apply whatever System 1 decides.
137
+
138
+ ### 3.4 Headless exit codes (ADR-0019, as amended)
139
+
140
+ | Code | Meaning |
141
+ |---|---|
142
+ | `0` | `CLOSED_SUCCESS` (verified deliverable), or a published boundary refusal (`closure=REFUSED`) |
143
+ | `1` | `CLOSED_CANCELLED`: cancellation, verification failure after repair, or a fatal protocol error |
144
+ | `2` | Halted at a non-terminal stage, such as an unconfirmed review gate |
145
+ | `3` | `WAITING_INPUT`: paused for required external input |
146
+ | `4` | Harness or provider failure (`EXIT_HARNESS_ERROR`), for example a missing API key or a provider outage |
147
+ | `130` | Interrupted by the user (Ctrl+C) |
148
+
149
+ A run is headless when stdin is not a terminal or `--non-interactive` is given. `--exit-on-close` ends the process at the first closure; without it, further piped requests start new tasks in the same session.
150
+
151
+ ---
152
+
153
+ ## 4. Verification and witness authority
154
+
155
+ - **The sandbox-reproduced witness is authoritative.** When the deliverable contains executable code, the witness is what the sandbox prints: exactly one `WITNESS: <json>` line, or a whole stdout that parses as JSON. It replaces any model-asserted witness, and `WITNESS_OVERRIDDEN_BY_SANDBOX` is recorded when the two differ.
156
+ - **Model-asserted witnesses are provisional.** A witness no sandbox run reproduced is labelled `provisional` and never presented as verified.
157
+ - **Claims of computation must come from computation.** A negative witness reporting an exhausted search is accepted only when a host-run program printed it. Proof-based negative witnesses (an argument, no search telemetry) are first-class under `GUARD-03`.
158
+ - **An incomplete result must rest on an attempt.** Declaring requirements open without a witness is accepted only when a program actually ran in that attempt.
159
+ - **No scraping.** There is no label-regex scan of stdout or deliverable text.
160
+ - **Typed dispatch, no domain checkers shipped.** Checkers are selected only by a typed `witness.domain` field. This release registers no domain checkers, so every domain goes to `FallbackChecker`, whose verdicts are provisional: correctness rests on sandbox reproduction of the witness, not on a domain verifier.
161
+ - **Repairs carry facts, not hints.** Each repair carries the latest findings from a closed, task-neutral error registry (`verification/error_registry.py`) through operator correction.
162
+
163
+ ---
164
+
165
+ ## 5. Execution sandbox
166
+
167
+ ### 5.1 Lifecycle
168
+
169
+ ```
170
+ SessionEngine.__init__ : construct ExecutionSandbox once (limits, --sandbox mode)
171
+ probe() : is the selected backend available here?
172
+ first run_code : build the session root, owner record and policy; sweep stale roots
173
+ each run : fresh empty work/run-NNNN-* directory, deleted afterwards
174
+ close() : delete the root, release the backend
175
+ ```
176
+
177
+ The session root is `<tempdir>/pdlt-sandboxes/<sid>/`, outside every tree the graders, runner and viewer read. A host killed before `close()` leaves a root whose owner process is dead; the next session's sweep removes it.
178
+
179
+ ### 5.2 Containment
180
+
181
+ | Control | Mechanism |
182
+ |---|---|
183
+ | **Secret isolation** | The child environment is rebuilt from an allowlist (`PATH`, `TEMP`, `TMP`, `TMPDIR`; on Windows also `SYSTEMROOT`, `WINDIR`, `SYSTEMDRIVE`, `COMSPEC`, `PATHEXT`). API keys never reach model-authored code. |
184
+ | **OS-native confinement** (ADR-0021) | Write only the run directory; read it, the base interpreter's install and standard library, and loader files; execute only the base interpreter; no network; no new processes. Linux: Landlock. macOS: `sandbox-exec` with a deny-by-default profile. Windows: a per-session AppContainer inside a Job Object. `--sandbox container`: Docker or Podman, one container per session (no network, read-only root, no capabilities, process cap). |
185
+ | **Fail closed** | When the selected backend cannot apply, nothing runs (`sandbox_unavailable:<reason>`) and the REPL warns. `--sandbox audit-only` (`PDLT_SANDBOX=audit-only`) is the only opt-out and is announced loudly. The default mode is `auto`, which is native confinement; it does not fall back to the container. |
186
+ | **Audit hook** | Defense in depth: blocks native-code loading, file access outside the run directory, network calls, signals and process creation. |
187
+ | **Resource limits** | Windows: Job Object. POSIX: `RLIMIT_AS` and an `RLIMIT_CPU` backstop; macOS does not enforce `RLIMIT_AS`. A deterministic step counter enforces the routed step budget. |
188
+
189
+ This is not a VM boundary: side channels and kernel exploits are out of scope. The container mode is the stronger option. Details and self-checks: [`docs/SANDBOX.md`](docs/SANDBOX.md).
190
+
191
+ ### 5.3 What a program can do
192
+
193
+ A program can compute and print. It cannot reach the network, start processes, or read or write anything outside its own run directory, and everything it writes is deleted when the run ends. The Result IR's `files` list names and grounds the deliverable's files, but **nothing is written into the user's project**: the deliverable is text the user applies.
194
+
195
+ ---
196
+
197
+ ## 6. System 1 recipes
198
+
199
+ All recipes live in `providers/sys1/recipes/`, emit discrete labels only, and contain no pattern matching (`test_routing_recipes_have_no_pattern_matching`).
200
+
201
+ | Recipe | Labels | Use |
202
+ |---|---|---|
203
+ | `ActivationRouteRecipe` | `APPLY_PROTOCOL`, `PROTOCOL_DISCUSSION`, `BYPASS`, `BLOCKED_BY_HIGHER_PRIORITY` | Phase 0 boundary routing over environment state |
204
+ | `ProblemClassRecipe` | `VERIFIED_EXECUTION`, `STANDARD_EXECUTION` | Whether the Result IR must carry a witness |
205
+ | `ConfirmationMatchRecipe`, `ReviewFacetsRecipe` | agrees / rejects / unclear; change dimensions | Review intent for free-text review messages |
206
+ | `ExecutionProfileRecipe` | `WITHIN_100K_STEPS` … `BEYOND_100M_STEPS` | Step-complexity routing to an execution budget |
207
+ | `FollowUpRecipe` | follow-up vs. new task | Routing messages after closure |
208
+
209
+ ### 6.1 Execution budgets
210
+
211
+ | Prediction | Tier | Step budget | Memory | Wall clock | Repairs |
212
+ |---|---|---|---|---|---|
213
+ | `WITHIN_100K_STEPS` | `MINIMAL` | 100,000 | 256 MB | 30 s | 1 |
214
+ | `WITHIN_10M_STEPS` | `STANDARD` | 10,000,000 | 256 MB | 30 s | 1 |
215
+ | `WITHIN_100M_STEPS` | `HEAVY_COMPUTE` | 100,000,000 | 512 MB | 120 s | 2 |
216
+ | `BEYOND_100M_STEPS` | `HEAVY_COMPUTE` | 100,000,000 | 512 MB | 120 s | 2 |
217
+
218
+ The budget is the smallest one System 1 believes suffices with cumulative probability of at least 0.85; a diffuse prediction yields `STANDARD`. The step counter, not the prediction, decides. A `VERIFIED_EXECUTION` task with no registered domain verifier is refused before any System 2 call when System 1 puts more than 0.5 probability on `BEYOND_100M_STEPS` (`BUDGET_REFUSAL`). After plan confirmation the same recipe may raise the tier, never lower it. The budget the sandbox enforces is the one declared to System 2 in `AVAILABLE_EXECUTION_TOOLS`.
219
+
220
+ ### 6.2 Cost controls
221
+
222
+ Every response is capped by `--max-output-tokens` (default 16,384, reasoning included); one model call has a 300 s deadline (`--api-call-deadline`); `--max-repairs N` overrides the tier's repairs. There is no session-level time or token budget. The catalogue runner kills a prompt's process tree at 600 s.
223
+
224
+ ---
225
+
226
+ ## 7. Input containment and context
227
+
228
+ - **Semantic bootstrap containment.** Raw user content is read only by `BOOTSTRAP_ANALYSIS`. Later operations (`DRAFT_PROMPT`, `DRAFT_PLAN`, `EXECUTE`) receive compiled projections, never raw user text. A redaction pass (`runtime/quarantine.py`) replaces canary, tripwire and override-directive tokens with `[REDACTED_IOC]`. Task entities are typed (ADR-0027: surface, kind, and what the request says about it, unknowns included) and are forwarded only when their surface is an exact substring of the sanitized request or summary.
229
+ - **Context compilation.** `context_compiler.py` builds one projection per operation from `EXECUTION_CONTRACT.json`, the applicable standard clauses and the stage inputs, and records SHA-256 digests of each clause and of the projection.
230
+ - **Contract resolution** (`normative_store.py`, ADR-0008), first match wins: `PDLT_STANDARDS_PATH`; `<candidate repo>/contracts/` (the candidate repo defaults to the current directory); `~/.pdlt/versions/<version>/contracts/`; the bundled copy in the package. An override replaces the whole contract set and is checked for structure only.
231
+ - **Workspace.** Sessions use an in-memory workspace (`MemoryWorkspaceRun`) persisted per turn under `turns/turn_NNN/`. The previous closed turn's request and deliverable are carried into the next turn's task inputs, and System 1 (`FollowUpRecipe`) routes whether a new message continues it; rejected drafts are never carried.
232
+
233
+ ---
234
+
235
+ ## 8. Observability
236
+
237
+ - The REPL prints stage and per-call telemetry in dev mode (`--dev`), writes a transcript, and points to a `worker-progress.log` updated during model calls.
238
+ - `--observation-dir` writes one JSONL record per turn: model calls with usage (input, output, reasoning and cached tokens), latency, controller state before and after, and the turn's new workspace events. Records are written when a turn completes; there is no live event stream.
239
+ - **Call lifecycle** (`providers/call_trace.py`). Every model call, System 1 included, records each HTTP attempt's progress: `prepared → connecting → request_sent → acknowledged → response_started → response_complete`, with the HTTP status, response bytes, outcome (completed, interrupted, http_error, transport_error, timeout, unreadable), whether the interruption was local (Ctrl+C) or remote, and whether it was retried. `request_sent` and `connecting` come from Python's own `http.client` audit events, `acknowledged` (the API receipt) from the status line. Each call also records its number among the session's calls of that operation (a repair is `EXECUTE call 2`), its failure category, and what the API reported: the response id (OpenRouter's generation id, which carries TTFT and the serving provider), status, finish reason, output and reasoning tokens, and whether the output schema constrained decoding. Each finished or interrupted call is appended to the session's `call-trace.jsonl`; dev mode prints a line for any call that retried or did not complete.
240
+ - **One output contract per operation** (ADR-0028, IMPL-0001).
241
+ - The schema the model reads (`output_schema` in the projection) and the grammar sent to the provider are both generated from the operation's Pydantic model (`runtime/output_contracts.py`), in the same form for each call. That form is the grammar mode (schema, JSON mode or none) plus strict or default.
242
+ - Descriptions and advisory keywords live in the models (`contract(...)`).
243
+ - Optional fields stay optional, except for providers whose strict mode needs every field required (Groq, Cerebras).
244
+ - `EXECUTE` is sent in JSON mode.
245
+ - **Replies stalled in whitespace.** A reply cut off at the output cap is kept in the invocation's output directory (`model-response.truncated.txt`), for diagnosis only: it is never parsed, published or sent back to the model. When it ends in at least 1,000 whitespace characters under the output schema, decoding stalled in the schema's whitespace rather than the model writing too much (Nemotron 3 Super wrote its whole `EXECUTE` answer, then only whitespace until the cap). The call stays a counted failed attempt; later calls of that operation in the session are sent without the decoding constraint, and the host still validates every reply against the schema.
246
+ - **Interruptions.** On Ctrl+C the REPL reports where the call was (not sent; sent but not acknowledged; acknowledged, no response; response partly received; between calls) and the engine records `TURN_INTERRUPTED` (the in-flight operation, whether its output was recorded, the in-memory and persisted stage). A turn that never bound a protocol instance is marked `INTERRUPTED`, which is not a closed status, so chaining and follow-ups never mistake it for the previous turn; a bound turn keeps its persisted stage and the next input re-drives it. A review artifact committed to the controller but not yet published is republished from the controller state. State files (controller state, workspace files, the session pointer) are written replace-on-write (`fileio.py`), so an interruption never leaves a partial file.
247
+ - The evaluation-plane viewer (`python -m viewer`) is read-only and binds `127.0.0.1` only.
248
+
249
+ ---
250
+
251
+ ## 9. Guardrails
252
+
253
+ | Guardrail | Rule in this codebase |
254
+ |---|---|
255
+ | `GUARD-01` | `CARRIED_APPROACH_SOURCES` comes only from user-originated sources; lint and retry feedback travel only by operator correction. |
256
+ | `GUARD-02` | No harness file targets benchmark tokens, prompt phrases or problem-class vocabulary. |
257
+ | `GUARD-03` | No regex scraping of deliverables; proofs and analytical deductions are first-class deliverables. |
258
+ | `GUARD-04` | Gates never require algorithm or execution keywords, and worker guidance never mandates code. |
259
+ | `GUARD-05` | Contract files match `CONTRACT_MANIFEST.json` hashes, and the harness is scanned against tokens derived from the catalogue manifest (`tests/test_harness_anti_overfitting.py`). |
260
+
261
+ ---
262
+
263
+ ## 10. What this release does not do
264
+
265
+ These are known limits of 2.6.0. Each is captured as future work in [`TARGET_ARCHITECTURE.md`](TARGET_ARCHITECTURE.md) and ADR-0023 to ADR-0026; where part of one has since landed, its entry says what. The release audit of 2.6.0rc1, including smaller follow-ups, is [`docs/audits/RELEASE_AUDIT_2.6.0rc1.md`](docs/audits/RELEASE_AUDIT_2.6.0rc1.md).
266
+
267
+ - **The client interface is v0, with no live events.** `pdl_taskmaster.api` returns structured results (`TurnResult`: stage, exit status, provenance) and drives the review gates (`confirm`, `revise`, `run(..., confirm=True)`), but it is unversioned and has no live event stream (ADR-0023; [`docs/api.md`](docs/api.md)).
268
+ - **One cost setting.** Reasoning depth, output length, verification depth and model choice are set separately by flags but not by a profile, and there is no session-level time or token budget (ADR-0024).
269
+ - **No effects on the user's project.** Programs cannot create or edit project files, and there is no tool broker (ADR-0025).
270
+ - **Extensions are profiles, not packs.** Task types, verifiers and model providers register through versioned profiles and pass a conformance kit ([`docs/extensions.md`](docs/extensions.md), L124). Operation prompts are still part of the code, contract overrides replace the whole set without a compatibility check, and there are no workflow packs (ADR-0026).
271
+ - **System 1 is remote.** The default System 1 is OpenRouter's decisions endpoint; without it, boundary refusal does not run (§3.3).
272
+ - **Groq gets `EXECUTE` and `EMIT_RESULT_IR` in JSON mode.** It rejects their schemas, so it serves them without one, and the host validates the reply (ADR-0028 rule 5); it is no longer routed past ([`PROVIDERS.md`](PROVIDERS.md) §3). This is covered by offline tests only, not yet run live on Groq. The provider tables are fixed in the worker until the per-stage profiles (IMPL-0003).
273
+ - **`PDLT_SANDBOX_NETWORK` is routing state only.** Setting it to `true` changes what System 1 is told; the sandbox never grants network access.
274
+ - **Headless review gates are confirmed by piping `/confirm`.** The catalogue measures autonomous drafting under the lint gates, not human review (`gate_policy` in `RUN_META.json`).
275
+ - **The category 10 multi-turn scripts are not run.** Category 10 prompts run single-turn; their scripts are kept in the manifest's `multi_turn_script` field.
276
+ - **Live runs need credentials.** `OPENROUTER_API_KEY` is required for live sessions and catalogue runs; the offline test suite needs none.
@@ -0,0 +1,142 @@
1
+ # PDLt System 2 Prompt Catalogue — Test Execution Goal
2
+
3
+ ## MISSION
4
+
5
+ Execute the complete 112-prompt PDLt System 2 Prompt Catalogue through the live pdlt REPL
6
+ to produce a definitive scoreboard measuring protocol fidelity on `gpt-oss-120b` at the
7
+ harness's default reasoning (high before execution, low at EXECUTE; ADR-0022). Results are written to `<runs>/<run-timestamp>/`, where `<runs>` is `$PDLT_CATALOGUE_RUNS`, else `PDLt-Catalogue-Archive` beside the checkout (`catalogue_runs.py`).
8
+
9
+ ---
10
+
11
+ ## NON-NEGOTIABLE RULES
12
+
13
+ ### 1. No Retries, No Do-Overs
14
+ Each prompt gets **exactly one execution attempt**. If it fails, log the failure and move on.
15
+ No re-running a prompt "to see if it works this time." No modifying prompts mid-run. The
16
+ manifest is frozen at run start.
17
+
18
+ ### 2. No Cherry-Picking
19
+ All 112 prompts must be executed in manifest order. You may not skip prompts, reorder them
20
+ to run easy ones first, or filter to only run categories you expect to pass.
21
+
22
+ ### 3. No Prompt Modification
23
+ Prompt files are read-only inputs. You may not edit, simplify, clarify, or annotate a prompt
24
+ before feeding it to pdlt. The whole point is testing the model's ability to interpret raw
25
+ user input under protocol governance.
26
+
27
+ ### 4. No Manual Intervention in the Protocol
28
+ The runner uses `--non-interactive` and `--exit-on-close` and confirms every review gate by
29
+ piping `/confirm` (recorded in RUN_META as `gate_policy: evaluator_confirms_via_stdin`). No human
30
+ may confirm, revise, edit, or override any gate. The model must produce Prompt Pseudocode and
31
+ Response Plan Pseudocode autonomously; the harness's grammar lint is the only gate on them.
32
+
33
+ ### 5. Full Transcript Capture
34
+ Every session must produce a transcript file. Sessions without transcripts are invalid.
35
+
36
+ ### 6. Single Model, Single Configuration
37
+ The entire run uses one model (`openai/gpt-oss-120b`) at one reasoning configuration: the
38
+ harness default (high before execution, low at EXECUTE; ADR-0022), which is also what a live
39
+ session runs at. `RUN_META.json` records the effective effort per operation (`reasoning_effective`).
40
+ No switching models mid-run. No escalating reasoning effort for hard prompts.
41
+
42
+ ---
43
+
44
+ ## EXECUTION
45
+
46
+ ### Step 1: Dry Run (Verify Setup)
47
+ ```powershell
48
+ python run_catalogue.py --dry-run
49
+ ```
50
+ Verify: 112 prompts listed, 57 marked VERIFIED (ground truth), manifest parses cleanly.
51
+
52
+ ### Step 2: Single-Prompt Smoke Test
53
+ ```powershell
54
+ python run_catalogue.py --prompt-id 06-04 --timeout 120
55
+ ```
56
+ Run the easiest prompt first (race condition counter, difficulty: easy) to confirm the
57
+ harness pipeline works end-to-end. Check the generated result.json and transcript.
58
+
59
+ ### Step 3: Full Run
60
+ ```powershell
61
+ python run_catalogue.py --model openai/gpt-oss-120b --timeout 180
62
+ ```
63
+ This will take approximately 30-60 minutes depending on API latency.
64
+
65
+ ### Step 4: Review Scoreboard
66
+ Open `<runs>/<run-timestamp>/SCOREBOARD.md` and report:
67
+ 1. Overall pass rate
68
+ 2. Pass rate by category
69
+ 3. Pass rate by difficulty tier
70
+ 4. The result of each regression prompt (the `REG-*` ids in the manifest: REG-001, REG-003, REG-011 to REG-014)
71
+ 5. Which categories had 0% pass rate (ceiling not reached)
72
+ 6. Which categories had 100% pass rate (ceiling not tested)
73
+
74
+ ### Step 5: Spot-Check Verified Prompts
75
+ For every prompt with `ground_truth_status: "verified"` that reported CLOSED_SUCCESS,
76
+ open the transcript and compare the model's output against the solution oracle file in
77
+ `prompts/solutions/`. Flag any case where the verdict is CLOSED_SUCCESS but the answer
78
+ is substantively wrong (false positive).
79
+
80
+ ---
81
+
82
+ ## OUTPUT STRUCTURE
83
+
84
+ ```
85
+ PDLt-Catalogue-Archive/ # or $PDLT_CATALOGUE_RUNS
86
+ run-YYYYMMDD-HHMMSS/
87
+ RUN_META.json # Frozen run configuration
88
+ SCOREBOARD.json # Machine-readable aggregate results
89
+ SCOREBOARD.md # Human-readable scoreboard with tables
90
+ results/
91
+ 01-01_schur_triples_n15/
92
+ result.json # Verdict, exit code, timing, ground truth
93
+ transcript.txt # Full pdlt session transcript
94
+ stdout.txt # Raw stdout from pdlt
95
+ stderr.txt # Raw stderr (errors, warnings)
96
+ session/ # pdlt session workspace directory
97
+ 01-02_exact_cover_dlx/
98
+ ...
99
+ ... # 112 result directories total
100
+ ```
101
+
102
+ ---
103
+
104
+ ## VERDICTS
105
+
106
+ | Verdict | Meaning |
107
+ |---------|---------|
108
+ | `CLOSED_SUCCESS` | Full protocol traversal: PROMPT_REVIEW -> PLAN_REVIEW -> EXECUTION -> closed green |
109
+ | `UNCONFIRMED_GATE` | Session exited while sitting at an unconfirmed review gate (exit code 2) |
110
+ | `TIMEOUT` | Wall-clock timeout exceeded (prompt took too long) |
111
+ | `EXIT_N` | pdlt exited with unexpected exit code N |
112
+
113
+ ---
114
+
115
+ ## WHAT SUCCESS LOOKS LIKE
116
+
117
+ A successful run produces a scoreboard with:
118
+ - **Every prompt attempted** (112 results, 0 skipped)
119
+ - **RUN_META.json confirms**: `retries_allowed: 0, do_overs_allowed: false`
120
+ - **Regression prompts reported by id** (REG-001, REG-003, REG-011 to REG-014): a failure is reported, never tuned away
121
+ - **Verified prompts spot-checked**: CLOSED_SUCCESS verdicts match ground truth
122
+ - **0 false positives** in SCOREBOARD `false_positives` (graded prompts: 01-01..01-07, 13-01; the other 13 verified prompts are MANUAL)
123
+
124
+ The pass rate itself is the empirical measurement. We expect it won't be 100% — the whole
125
+ point is finding where the ceiling is. But every failure must be a real failure, not an
126
+ infrastructure bug or a skipped prompt.
127
+
128
+ ---
129
+
130
+ ## WHAT FAILURE LOOKS LIKE
131
+
132
+ Invalid run conditions (must abort and restart from scratch):
133
+ - Runner crashes before completing all 105 prompts
134
+ - Network/API outage causes mass timeouts (>50% TIMEOUT verdicts)
135
+ - PYTHONPATH misconfigured (pdlt import errors in stderr)
136
+ - Manifest file modified during run
137
+
138
+ These are NOT invalid — they are legitimate test results:
139
+ - Model produces wrong answers (that's what we're measuring)
140
+ - Model fails review gates (protocol enforcement working as designed)
141
+ - Model times out on hard problems (ceiling found)
142
+ - Adversarial prompts cause unexpected behavior (that's why they're in the catalogue)