piensalo 0.1.0a2__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 (600) hide show
  1. piensalo-0.1.0a2/.github/CODEOWNERS +2 -0
  2. piensalo-0.1.0a2/.github/ISSUE_TEMPLATE/bug-report.yml +56 -0
  3. piensalo-0.1.0a2/.github/ISSUE_TEMPLATE/case-study.yml +52 -0
  4. piensalo-0.1.0a2/.github/ISSUE_TEMPLATE/config.yml +5 -0
  5. piensalo-0.1.0a2/.github/ISSUE_TEMPLATE/negative-transfer.yml +66 -0
  6. piensalo-0.1.0a2/.github/ISSUE_TEMPLATE/new-skill.yml +103 -0
  7. piensalo-0.1.0a2/.github/ISSUE_TEMPLATE/security.md +25 -0
  8. piensalo-0.1.0a2/.github/PULL_REQUEST_TEMPLATE.md +41 -0
  9. piensalo-0.1.0a2/.github/workflows/ci.yml +121 -0
  10. piensalo-0.1.0a2/.github/workflows/publish.yml +26 -0
  11. piensalo-0.1.0a2/.gitignore +7 -0
  12. piensalo-0.1.0a2/BENCHMARKS.md +69 -0
  13. piensalo-0.1.0a2/CHANGELOG.md +58 -0
  14. piensalo-0.1.0a2/CITATION.cff +27 -0
  15. piensalo-0.1.0a2/CODE_OF_CONDUCT.md +133 -0
  16. piensalo-0.1.0a2/CONTRIBUTING.md +111 -0
  17. piensalo-0.1.0a2/EVIDENCE.md +174 -0
  18. piensalo-0.1.0a2/LICENSE +21 -0
  19. piensalo-0.1.0a2/MANIFESTO.md +60 -0
  20. piensalo-0.1.0a2/Makefile +35 -0
  21. piensalo-0.1.0a2/NEGATIVE-RESULTS.md +102 -0
  22. piensalo-0.1.0a2/PKG-INFO +210 -0
  23. piensalo-0.1.0a2/README.md +182 -0
  24. piensalo-0.1.0a2/ROADMAP.md +54 -0
  25. piensalo-0.1.0a2/SECURITY.md +62 -0
  26. piensalo-0.1.0a2/assets/README.md +20 -0
  27. piensalo-0.1.0a2/assets/cognitive-loop.svg +72 -0
  28. piensalo-0.1.0a2/assets/evidence-map.svg +69 -0
  29. piensalo-0.1.0a2/assets/hero.svg +35 -0
  30. piensalo-0.1.0a2/assets/terminal-demo.svg +55 -0
  31. piensalo-0.1.0a2/docs/THIRD_PARTY_NOTICES.md +36 -0
  32. piensalo-0.1.0a2/docs/THREAT-MODEL.md +176 -0
  33. piensalo-0.1.0a2/docs/alpha/ALPHA-EXIT-CRITERIA.md +33 -0
  34. piensalo-0.1.0a2/docs/alpha/ALPHA-FEEDBACK-SCHEMA.json +132 -0
  35. piensalo-0.1.0a2/docs/alpha/ALPHA-RESULT-TRACKER.md +31 -0
  36. piensalo-0.1.0a2/docs/alpha/ALPHA-TESTER-INSTRUCTIONS.md +44 -0
  37. piensalo-0.1.0a2/docs/alpha/START-HERE.md +67 -0
  38. piensalo-0.1.0a2/docs/alpha/SUBMIT-RESULTS.md +34 -0
  39. piensalo-0.1.0a2/docs/architecture.md +129 -0
  40. piensalo-0.1.0a2/docs/evidence/CLAIM-LEDGER.md +35 -0
  41. piensalo-0.1.0a2/docs/evidence-levels.md +82 -0
  42. piensalo-0.1.0a2/docs/evidence-report.md +48 -0
  43. piensalo-0.1.0a2/docs/good-first-issues.md +68 -0
  44. piensalo-0.1.0a2/docs/methodology.md +63 -0
  45. piensalo-0.1.0a2/docs/model-provenance.md +67 -0
  46. piensalo-0.1.0a2/docs/operator-boundaries.md +63 -0
  47. piensalo-0.1.0a2/docs/origin-story.md +67 -0
  48. piensalo-0.1.0a2/docs/provenance/EXPORT-MANIFEST.json +828 -0
  49. piensalo-0.1.0a2/docs/provenance/FABLE-REFERENCE-AUDIT.md +42 -0
  50. piensalo-0.1.0a2/docs/provenance/HASHES.sha256 +580 -0
  51. piensalo-0.1.0a2/docs/provenance/PIENSALO-NAME-AUDIT.md +35 -0
  52. piensalo-0.1.0a2/docs/skill-security.md +67 -0
  53. piensalo-0.1.0a2/docs/technical-report.md +85 -0
  54. piensalo-0.1.0a2/evals/Makefile +17 -0
  55. piensalo-0.1.0a2/evals/graders/README.md +76 -0
  56. piensalo-0.1.0a2/evals/graders/layered_common.py +166 -0
  57. piensalo-0.1.0a2/evals/harness/README.md +79 -0
  58. piensalo-0.1.0a2/evals/harness/analyze.py +211 -0
  59. piensalo-0.1.0a2/evals/harness/config.example.json +29 -0
  60. piensalo-0.1.0a2/evals/harness/grader_selftest.py +76 -0
  61. piensalo-0.1.0a2/evals/harness/runner.py +553 -0
  62. piensalo-0.1.0a2/evals/public-tasks/README.md +48 -0
  63. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/contract.json +12 -0
  64. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/hidden-grader/KEY.md +13 -0
  65. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/hidden-grader/grade.py +42 -0
  66. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/hidden-grader/meta.json +8 -0
  67. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/probes/clean-correct.md +6 -0
  68. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/probes/decorated-correct.md +3 -0
  69. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/probes/expected.json +32 -0
  70. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/probes/prose-trap.md +1 -0
  71. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/probes/stall.md +1 -0
  72. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/probes/stub.md +1 -0
  73. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/probes/wrong-value.md +5 -0
  74. piensalo-0.1.0a2/evals/public-tasks/demo-01-discount-stack/task.md +18 -0
  75. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/contract.json +20 -0
  76. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/hidden-grader/KEY.md +17 -0
  77. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/hidden-grader/grade.py +66 -0
  78. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/hidden-grader/meta.json +8 -0
  79. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/probes/clean-correct.md +9 -0
  80. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/probes/decorated-correct.md +6 -0
  81. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/probes/expected.json +32 -0
  82. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/probes/prose-trap.md +1 -0
  83. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/probes/stall.md +1 -0
  84. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/probes/stub.md +1 -0
  85. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/probes/wrong-value.md +7 -0
  86. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/public-context/field-report.md +17 -0
  87. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/public-context/methods-appendix.md +19 -0
  88. piensalo-0.1.0a2/evals/public-tasks/demo-02-pilot-review/task.md +18 -0
  89. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/contract.json +21 -0
  90. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/hidden-grader/KEY.md +15 -0
  91. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/hidden-grader/grade.py +43 -0
  92. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/hidden-grader/meta.json +8 -0
  93. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/probes/clean-correct.md +9 -0
  94. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/probes/decorated-correct.md +7 -0
  95. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/probes/expected.json +32 -0
  96. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/probes/prose-trap.md +1 -0
  97. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/probes/stall.md +1 -0
  98. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/probes/stub.md +1 -0
  99. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/probes/wrong-value.md +7 -0
  100. piensalo-0.1.0a2/evals/public-tasks/demo-03-release-note/task.md +23 -0
  101. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/contract.json +20 -0
  102. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/hidden-grader/KEY.md +16 -0
  103. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/hidden-grader/grade.py +43 -0
  104. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/hidden-grader/meta.json +6 -0
  105. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/probes/clean-correct.md +8 -0
  106. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/probes/decorated-correct.md +5 -0
  107. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/probes/expected.json +32 -0
  108. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/probes/prose-trap.md +1 -0
  109. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/probes/stall.md +1 -0
  110. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/probes/stub.md +1 -0
  111. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/probes/wrong-value.md +8 -0
  112. piensalo-0.1.0a2/evals/public-tasks/dev-01-bill-split/task.md +18 -0
  113. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/contract.json +9 -0
  114. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/hidden-grader/KEY.md +20 -0
  115. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/hidden-grader/grade.py +50 -0
  116. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/hidden-grader/meta.json +6 -0
  117. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/probes/clean-correct.md +4 -0
  118. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/probes/decorated-correct.md +4 -0
  119. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/probes/expected.json +32 -0
  120. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/probes/prose-trap.md +1 -0
  121. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/probes/stall.md +1 -0
  122. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/probes/stub.md +1 -0
  123. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/probes/wrong-value.md +4 -0
  124. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/public-context/events.log +9 -0
  125. piensalo-0.1.0a2/evals/public-tasks/dev-02-log-error-filter/task.md +19 -0
  126. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/contract.json +25 -0
  127. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/hidden-grader/KEY.md +23 -0
  128. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/hidden-grader/grade.py +61 -0
  129. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/hidden-grader/meta.json +6 -0
  130. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/probes/clean-correct.md +5 -0
  131. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/probes/decorated-correct.md +5 -0
  132. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/probes/expected.json +32 -0
  133. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/probes/prose-trap.md +1 -0
  134. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/probes/stall.md +1 -0
  135. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/probes/stub.md +1 -0
  136. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/probes/wrong-value.md +5 -0
  137. piensalo-0.1.0a2/evals/public-tasks/dev-03-anodizing-spec/task.md +25 -0
  138. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/contract.json +12 -0
  139. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/hidden-grader/KEY.md +21 -0
  140. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/hidden-grader/grade.py +39 -0
  141. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/hidden-grader/meta.json +6 -0
  142. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/probes/clean-correct.md +5 -0
  143. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/probes/decorated-correct.md +4 -0
  144. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/probes/expected.json +32 -0
  145. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/probes/prose-trap.md +1 -0
  146. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/probes/stall.md +1 -0
  147. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/probes/stub.md +1 -0
  148. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/probes/wrong-value.md +4 -0
  149. piensalo-0.1.0a2/evals/public-tasks/dev-04-bishop-domination/task.md +19 -0
  150. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/contract.json +20 -0
  151. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/hidden-grader/KEY.md +25 -0
  152. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/hidden-grader/grade.py +51 -0
  153. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/hidden-grader/meta.json +8 -0
  154. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/probes/clean-correct.md +12 -0
  155. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/probes/decorated-correct.md +5 -0
  156. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/probes/expected.json +32 -0
  157. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/probes/prose-trap.md +1 -0
  158. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/probes/stall.md +1 -0
  159. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/probes/stub.md +1 -0
  160. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/probes/wrong-value.md +9 -0
  161. piensalo-0.1.0a2/evals/public-tasks/dev-05-greywater-recovery/task.md +32 -0
  162. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/contract.json +12 -0
  163. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/hidden-grader/KEY.md +20 -0
  164. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/hidden-grader/grade.py +56 -0
  165. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/hidden-grader/meta.json +8 -0
  166. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/probes/clean-correct.md +6 -0
  167. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/probes/decorated-correct.md +4 -0
  168. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/probes/expected.json +32 -0
  169. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/probes/prose-trap.md +1 -0
  170. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/probes/stall.md +1 -0
  171. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/probes/stub.md +1 -0
  172. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/probes/wrong-value.md +4 -0
  173. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/public-context/candidates.md +48 -0
  174. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/public-context/requirements.md +35 -0
  175. piensalo-0.1.0a2/evals/public-tasks/dev-06-field-laptop/task.md +14 -0
  176. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/contract.json +12 -0
  177. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/hidden-grader/KEY.md +22 -0
  178. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/hidden-grader/grade.py +40 -0
  179. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/hidden-grader/meta.json +8 -0
  180. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/probes/clean-correct.md +7 -0
  181. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/probes/decorated-correct.md +4 -0
  182. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/probes/expected.json +32 -0
  183. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/probes/prose-trap.md +1 -0
  184. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/probes/stall.md +1 -0
  185. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/probes/stub.md +1 -0
  186. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/probes/wrong-value.md +5 -0
  187. piensalo-0.1.0a2/evals/public-tasks/dev-07-calibration-windows/task.md +26 -0
  188. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/contract.json +43 -0
  189. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/hidden-grader/KEY.md +28 -0
  190. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/hidden-grader/grade.py +95 -0
  191. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/hidden-grader/meta.json +8 -0
  192. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/probes/clean-correct.md +7 -0
  193. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/probes/decorated-correct.md +9 -0
  194. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/probes/expected.json +32 -0
  195. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/probes/prose-trap.md +1 -0
  196. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/probes/stall.md +1 -0
  197. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/probes/stub.md +1 -0
  198. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/probes/wrong-value.md +7 -0
  199. piensalo-0.1.0a2/evals/public-tasks/dev-08-incident-record/task.md +40 -0
  200. piensalo-0.1.0a2/evals/results/README.md +48 -0
  201. piensalo-0.1.0a2/evals/results/consumption-ledger.json +104 -0
  202. piensalo-0.1.0a2/evals/results/results-schema.json +95 -0
  203. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/ANALYSIS.json +95 -0
  204. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/cells/dev-01-bill-split.bare.t1.md +5 -0
  205. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/cells/dev-01-bill-split.verify-only.t1.md +8 -0
  206. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/cells/dev-08-incident-record.bare.t1.md +9 -0
  207. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/cells/dev-08-incident-record.verify-only.t1.md +7 -0
  208. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/grades/dev-01-bill-split.bare.t1.json +27 -0
  209. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/grades/dev-01-bill-split.verify-only.t1.json +27 -0
  210. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/grades/dev-08-incident-record.bare.t1.json +33 -0
  211. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/grades/dev-08-incident-record.verify-only.t1.json +33 -0
  212. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/manifest.json +22 -0
  213. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/meter.tsv +5 -0
  214. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/smoke-answers/dev-01-bill-split.bare.t1.md +5 -0
  215. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/smoke-answers/dev-01-bill-split.verify-only.t1.md +8 -0
  216. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/smoke-answers/dev-08-incident-record.bare.t1.md +9 -0
  217. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/smoke-answers/dev-08-incident-record.verify-only.t1.md +7 -0
  218. piensalo-0.1.0a2/evals/results/runs/20260712-183305-smoke/statuses.json +6 -0
  219. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/ANALYSIS.json +95 -0
  220. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/cells/dev-01-bill-split.bare.t1.md +5 -0
  221. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/cells/dev-01-bill-split.verify-only.t1.md +8 -0
  222. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/cells/dev-08-incident-record.bare.t1.md +9 -0
  223. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/cells/dev-08-incident-record.verify-only.t1.md +7 -0
  224. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/grades/dev-01-bill-split.bare.t1.json +27 -0
  225. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/grades/dev-01-bill-split.verify-only.t1.json +27 -0
  226. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/grades/dev-08-incident-record.bare.t1.json +33 -0
  227. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/grades/dev-08-incident-record.verify-only.t1.json +33 -0
  228. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/manifest.json +22 -0
  229. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/meter.tsv +5 -0
  230. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/smoke-answers/dev-01-bill-split.bare.t1.md +5 -0
  231. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/smoke-answers/dev-01-bill-split.verify-only.t1.md +8 -0
  232. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/smoke-answers/dev-08-incident-record.bare.t1.md +9 -0
  233. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/smoke-answers/dev-08-incident-record.verify-only.t1.md +7 -0
  234. piensalo-0.1.0a2/evals/results/runs/20260712-183440-smoke/statuses.json +6 -0
  235. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/ANALYSIS.json +95 -0
  236. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/cells/dev-01-bill-split.bare.t1.md +5 -0
  237. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/cells/dev-01-bill-split.verify-only.t1.md +8 -0
  238. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/cells/dev-08-incident-record.bare.t1.md +9 -0
  239. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/cells/dev-08-incident-record.verify-only.t1.md +7 -0
  240. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/grades/dev-01-bill-split.bare.t1.json +27 -0
  241. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/grades/dev-01-bill-split.verify-only.t1.json +27 -0
  242. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/grades/dev-08-incident-record.bare.t1.json +33 -0
  243. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/grades/dev-08-incident-record.verify-only.t1.json +33 -0
  244. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/manifest.json +22 -0
  245. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/meter.tsv +5 -0
  246. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/smoke-answers/dev-01-bill-split.bare.t1.md +5 -0
  247. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/smoke-answers/dev-01-bill-split.verify-only.t1.md +8 -0
  248. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/smoke-answers/dev-08-incident-record.bare.t1.md +9 -0
  249. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/smoke-answers/dev-08-incident-record.verify-only.t1.md +7 -0
  250. piensalo-0.1.0a2/evals/results/runs/20260712-183510-smoke/statuses.json +6 -0
  251. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/ANALYSIS.json +95 -0
  252. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/cells/dev-01-bill-split.bare.t1.md +5 -0
  253. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/cells/dev-01-bill-split.verify-only.t1.md +8 -0
  254. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/cells/dev-08-incident-record.bare.t1.md +9 -0
  255. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/cells/dev-08-incident-record.verify-only.t1.md +7 -0
  256. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/grades/dev-01-bill-split.bare.t1.json +27 -0
  257. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/grades/dev-01-bill-split.verify-only.t1.json +27 -0
  258. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/grades/dev-08-incident-record.bare.t1.json +33 -0
  259. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/grades/dev-08-incident-record.verify-only.t1.json +33 -0
  260. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/manifest.json +22 -0
  261. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/meter.tsv +5 -0
  262. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/smoke-answers/dev-01-bill-split.bare.t1.md +5 -0
  263. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/smoke-answers/dev-01-bill-split.verify-only.t1.md +8 -0
  264. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/smoke-answers/dev-08-incident-record.bare.t1.md +9 -0
  265. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/smoke-answers/dev-08-incident-record.verify-only.t1.md +7 -0
  266. piensalo-0.1.0a2/evals/results/runs/20260712-190846-smoke/statuses.json +6 -0
  267. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/ANALYSIS.json +95 -0
  268. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/cells/dev-01-bill-split.bare.t1.md +5 -0
  269. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/cells/dev-01-bill-split.verify-only.t1.md +8 -0
  270. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/cells/dev-08-incident-record.bare.t1.md +9 -0
  271. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/cells/dev-08-incident-record.verify-only.t1.md +7 -0
  272. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/grades/dev-01-bill-split.bare.t1.json +27 -0
  273. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/grades/dev-01-bill-split.verify-only.t1.json +27 -0
  274. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/grades/dev-08-incident-record.bare.t1.json +33 -0
  275. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/grades/dev-08-incident-record.verify-only.t1.json +33 -0
  276. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/manifest.json +22 -0
  277. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/meter.tsv +5 -0
  278. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/smoke-answers/dev-01-bill-split.bare.t1.md +5 -0
  279. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/smoke-answers/dev-01-bill-split.verify-only.t1.md +8 -0
  280. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/smoke-answers/dev-08-incident-record.bare.t1.md +9 -0
  281. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/smoke-answers/dev-08-incident-record.verify-only.t1.md +7 -0
  282. piensalo-0.1.0a2/evals/results/runs/20260713-012208-smoke/statuses.json +6 -0
  283. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/ANALYSIS.json +95 -0
  284. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/cells/dev-01-bill-split.bare.t1.md +5 -0
  285. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/cells/dev-01-bill-split.verify-only.t1.md +8 -0
  286. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/cells/dev-08-incident-record.bare.t1.md +9 -0
  287. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/cells/dev-08-incident-record.verify-only.t1.md +7 -0
  288. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/grades/dev-01-bill-split.bare.t1.json +27 -0
  289. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/grades/dev-01-bill-split.verify-only.t1.json +27 -0
  290. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/grades/dev-08-incident-record.bare.t1.json +33 -0
  291. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/grades/dev-08-incident-record.verify-only.t1.json +33 -0
  292. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/manifest.json +22 -0
  293. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/meter.tsv +5 -0
  294. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/smoke-answers/dev-01-bill-split.bare.t1.md +5 -0
  295. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/smoke-answers/dev-01-bill-split.verify-only.t1.md +8 -0
  296. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/smoke-answers/dev-08-incident-record.bare.t1.md +9 -0
  297. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/smoke-answers/dev-08-incident-record.verify-only.t1.md +7 -0
  298. piensalo-0.1.0a2/evals/results/runs/20260713-021554-smoke/statuses.json +6 -0
  299. piensalo-0.1.0a2/examples/coding/ANALYSIS.md +30 -0
  300. piensalo-0.1.0a2/examples/coding/bare-output.md +12 -0
  301. piensalo-0.1.0a2/examples/coding/piensalo-output.md +38 -0
  302. piensalo-0.1.0a2/examples/coding/task.md +27 -0
  303. piensalo-0.1.0a2/examples/flagship/README.md +16 -0
  304. piensalo-0.1.0a2/examples/flagship/TRANSCRIPT.md +248 -0
  305. piensalo-0.1.0a2/examples/flagship/contract.json +9 -0
  306. piensalo-0.1.0a2/examples/flagship/demo.sh +31 -0
  307. piensalo-0.1.0a2/examples/flagship/draft-broken.md +7 -0
  308. piensalo-0.1.0a2/examples/flagship/draft-correct.md +8 -0
  309. piensalo-0.1.0a2/examples/flagship/expected-findings.json +13 -0
  310. piensalo-0.1.0a2/examples/flagship/task.md +13 -0
  311. piensalo-0.1.0a2/examples/invention/ANALYSIS.md +28 -0
  312. piensalo-0.1.0a2/examples/invention/bare-output.md +5 -0
  313. piensalo-0.1.0a2/examples/invention/piensalo-output.md +31 -0
  314. piensalo-0.1.0a2/examples/invention/task.md +6 -0
  315. piensalo-0.1.0a2/examples/math/ANALYSIS.md +26 -0
  316. piensalo-0.1.0a2/examples/math/bare-output.md +5 -0
  317. piensalo-0.1.0a2/examples/math/piensalo-output.md +14 -0
  318. piensalo-0.1.0a2/examples/math/task.md +9 -0
  319. piensalo-0.1.0a2/examples/research/ANALYSIS.md +27 -0
  320. piensalo-0.1.0a2/examples/research/bare-output.md +3 -0
  321. piensalo-0.1.0a2/examples/research/piensalo-output.md +21 -0
  322. piensalo-0.1.0a2/examples/research/task.md +14 -0
  323. piensalo-0.1.0a2/examples/strategy/ANALYSIS.md +30 -0
  324. piensalo-0.1.0a2/examples/strategy/bare-output.md +5 -0
  325. piensalo-0.1.0a2/examples/strategy/piensalo-output.md +22 -0
  326. piensalo-0.1.0a2/examples/strategy/task.md +15 -0
  327. piensalo-0.1.0a2/examples/writing/ANALYSIS.md +29 -0
  328. piensalo-0.1.0a2/examples/writing/bare-output.md +21 -0
  329. piensalo-0.1.0a2/examples/writing/piensalo-output.md +23 -0
  330. piensalo-0.1.0a2/examples/writing/task.md +10 -0
  331. piensalo-0.1.0a2/micro-skills/README.md +73 -0
  332. piensalo-0.1.0a2/micro-skills/audience-constraint-check/BENCHMARK.md +15 -0
  333. piensalo-0.1.0a2/micro-skills/audience-constraint-check/SKILL.md +33 -0
  334. piensalo-0.1.0a2/micro-skills/audience-constraint-check/evals/EVAL-PLAN.md +16 -0
  335. piensalo-0.1.0a2/micro-skills/audience-constraint-check/examples/near-miss.md +7 -0
  336. piensalo-0.1.0a2/micro-skills/audience-constraint-check/examples/positive.md +14 -0
  337. piensalo-0.1.0a2/micro-skills/audience-constraint-check/manifest.json +24 -0
  338. piensalo-0.1.0a2/micro-skills/audience-constraint-check/skill-card.md +20 -0
  339. piensalo-0.1.0a2/micro-skills/boundary-case-check/BENCHMARK.md +15 -0
  340. piensalo-0.1.0a2/micro-skills/boundary-case-check/SKILL.md +33 -0
  341. piensalo-0.1.0a2/micro-skills/boundary-case-check/evals/EVAL-PLAN.md +16 -0
  342. piensalo-0.1.0a2/micro-skills/boundary-case-check/examples/near-miss.md +7 -0
  343. piensalo-0.1.0a2/micro-skills/boundary-case-check/examples/positive.md +16 -0
  344. piensalo-0.1.0a2/micro-skills/boundary-case-check/manifest.json +24 -0
  345. piensalo-0.1.0a2/micro-skills/boundary-case-check/skill-card.md +20 -0
  346. piensalo-0.1.0a2/micro-skills/calibrated-uncertainty/BENCHMARK.md +15 -0
  347. piensalo-0.1.0a2/micro-skills/calibrated-uncertainty/SKILL.md +33 -0
  348. piensalo-0.1.0a2/micro-skills/calibrated-uncertainty/evals/EVAL-PLAN.md +16 -0
  349. piensalo-0.1.0a2/micro-skills/calibrated-uncertainty/examples/near-miss.md +7 -0
  350. piensalo-0.1.0a2/micro-skills/calibrated-uncertainty/examples/positive.md +14 -0
  351. piensalo-0.1.0a2/micro-skills/calibrated-uncertainty/manifest.json +24 -0
  352. piensalo-0.1.0a2/micro-skills/calibrated-uncertainty/skill-card.md +19 -0
  353. piensalo-0.1.0a2/micro-skills/causal-model-construction/BENCHMARK.md +15 -0
  354. piensalo-0.1.0a2/micro-skills/causal-model-construction/SKILL.md +33 -0
  355. piensalo-0.1.0a2/micro-skills/causal-model-construction/evals/EVAL-PLAN.md +15 -0
  356. piensalo-0.1.0a2/micro-skills/causal-model-construction/examples/near-miss.md +7 -0
  357. piensalo-0.1.0a2/micro-skills/causal-model-construction/examples/positive.md +14 -0
  358. piensalo-0.1.0a2/micro-skills/causal-model-construction/manifest.json +24 -0
  359. piensalo-0.1.0a2/micro-skills/causal-model-construction/skill-card.md +20 -0
  360. piensalo-0.1.0a2/micro-skills/cheapest-discriminating-test/BENCHMARK.md +15 -0
  361. piensalo-0.1.0a2/micro-skills/cheapest-discriminating-test/SKILL.md +33 -0
  362. piensalo-0.1.0a2/micro-skills/cheapest-discriminating-test/evals/EVAL-PLAN.md +16 -0
  363. piensalo-0.1.0a2/micro-skills/cheapest-discriminating-test/examples/near-miss.md +7 -0
  364. piensalo-0.1.0a2/micro-skills/cheapest-discriminating-test/examples/positive.md +20 -0
  365. piensalo-0.1.0a2/micro-skills/cheapest-discriminating-test/manifest.json +25 -0
  366. piensalo-0.1.0a2/micro-skills/cheapest-discriminating-test/skill-card.md +20 -0
  367. piensalo-0.1.0a2/micro-skills/complete-the-delivery/BENCHMARK.md +15 -0
  368. piensalo-0.1.0a2/micro-skills/complete-the-delivery/SKILL.md +34 -0
  369. piensalo-0.1.0a2/micro-skills/complete-the-delivery/evals/EVAL-PLAN.md +16 -0
  370. piensalo-0.1.0a2/micro-skills/complete-the-delivery/examples/near-miss.md +7 -0
  371. piensalo-0.1.0a2/micro-skills/complete-the-delivery/examples/positive.md +17 -0
  372. piensalo-0.1.0a2/micro-skills/complete-the-delivery/manifest.json +26 -0
  373. piensalo-0.1.0a2/micro-skills/complete-the-delivery/skill-card.md +21 -0
  374. piensalo-0.1.0a2/micro-skills/contradiction-resolution/BENCHMARK.md +15 -0
  375. piensalo-0.1.0a2/micro-skills/contradiction-resolution/SKILL.md +33 -0
  376. piensalo-0.1.0a2/micro-skills/contradiction-resolution/evals/EVAL-PLAN.md +15 -0
  377. piensalo-0.1.0a2/micro-skills/contradiction-resolution/examples/near-miss.md +7 -0
  378. piensalo-0.1.0a2/micro-skills/contradiction-resolution/examples/positive.md +14 -0
  379. piensalo-0.1.0a2/micro-skills/contradiction-resolution/manifest.json +24 -0
  380. piensalo-0.1.0a2/micro-skills/contradiction-resolution/skill-card.md +20 -0
  381. piensalo-0.1.0a2/micro-skills/counterexample-search/BENCHMARK.md +15 -0
  382. piensalo-0.1.0a2/micro-skills/counterexample-search/SKILL.md +34 -0
  383. piensalo-0.1.0a2/micro-skills/counterexample-search/evals/EVAL-PLAN.md +15 -0
  384. piensalo-0.1.0a2/micro-skills/counterexample-search/examples/near-miss.md +10 -0
  385. piensalo-0.1.0a2/micro-skills/counterexample-search/examples/positive.md +20 -0
  386. piensalo-0.1.0a2/micro-skills/counterexample-search/manifest.json +23 -0
  387. piensalo-0.1.0a2/micro-skills/counterexample-search/skill-card.md +19 -0
  388. piensalo-0.1.0a2/micro-skills/disqualifier-scan/BENCHMARK.md +15 -0
  389. piensalo-0.1.0a2/micro-skills/disqualifier-scan/SKILL.md +34 -0
  390. piensalo-0.1.0a2/micro-skills/disqualifier-scan/evals/EVAL-PLAN.md +15 -0
  391. piensalo-0.1.0a2/micro-skills/disqualifier-scan/examples/near-miss.md +7 -0
  392. piensalo-0.1.0a2/micro-skills/disqualifier-scan/examples/positive.md +26 -0
  393. piensalo-0.1.0a2/micro-skills/disqualifier-scan/manifest.json +25 -0
  394. piensalo-0.1.0a2/micro-skills/disqualifier-scan/skill-card.md +21 -0
  395. piensalo-0.1.0a2/micro-skills/distinct-mechanism-generation/BENCHMARK.md +15 -0
  396. piensalo-0.1.0a2/micro-skills/distinct-mechanism-generation/SKILL.md +33 -0
  397. piensalo-0.1.0a2/micro-skills/distinct-mechanism-generation/evals/EVAL-PLAN.md +15 -0
  398. piensalo-0.1.0a2/micro-skills/distinct-mechanism-generation/examples/near-miss.md +7 -0
  399. piensalo-0.1.0a2/micro-skills/distinct-mechanism-generation/examples/positive.md +19 -0
  400. piensalo-0.1.0a2/micro-skills/distinct-mechanism-generation/manifest.json +24 -0
  401. piensalo-0.1.0a2/micro-skills/distinct-mechanism-generation/skill-card.md +19 -0
  402. piensalo-0.1.0a2/micro-skills/feasibility-attack/BENCHMARK.md +15 -0
  403. piensalo-0.1.0a2/micro-skills/feasibility-attack/SKILL.md +34 -0
  404. piensalo-0.1.0a2/micro-skills/feasibility-attack/evals/EVAL-PLAN.md +15 -0
  405. piensalo-0.1.0a2/micro-skills/feasibility-attack/examples/near-miss.md +7 -0
  406. piensalo-0.1.0a2/micro-skills/feasibility-attack/examples/positive.md +25 -0
  407. piensalo-0.1.0a2/micro-skills/feasibility-attack/manifest.json +24 -0
  408. piensalo-0.1.0a2/micro-skills/feasibility-attack/skill-card.md +20 -0
  409. piensalo-0.1.0a2/micro-skills/final-answer-completeness/BENCHMARK.md +15 -0
  410. piensalo-0.1.0a2/micro-skills/final-answer-completeness/SKILL.md +35 -0
  411. piensalo-0.1.0a2/micro-skills/final-answer-completeness/evals/EVAL-PLAN.md +15 -0
  412. piensalo-0.1.0a2/micro-skills/final-answer-completeness/examples/near-miss.md +7 -0
  413. piensalo-0.1.0a2/micro-skills/final-answer-completeness/examples/positive.md +19 -0
  414. piensalo-0.1.0a2/micro-skills/final-answer-completeness/manifest.json +26 -0
  415. piensalo-0.1.0a2/micro-skills/final-answer-completeness/skill-card.md +21 -0
  416. piensalo-0.1.0a2/micro-skills/hidden-constraint-scan/BENCHMARK.md +15 -0
  417. piensalo-0.1.0a2/micro-skills/hidden-constraint-scan/SKILL.md +34 -0
  418. piensalo-0.1.0a2/micro-skills/hidden-constraint-scan/evals/EVAL-PLAN.md +15 -0
  419. piensalo-0.1.0a2/micro-skills/hidden-constraint-scan/examples/near-miss.md +7 -0
  420. piensalo-0.1.0a2/micro-skills/hidden-constraint-scan/examples/positive.md +21 -0
  421. piensalo-0.1.0a2/micro-skills/hidden-constraint-scan/manifest.json +25 -0
  422. piensalo-0.1.0a2/micro-skills/hidden-constraint-scan/skill-card.md +21 -0
  423. piensalo-0.1.0a2/micro-skills/load-bearing-uncertainty/BENCHMARK.md +16 -0
  424. piensalo-0.1.0a2/micro-skills/load-bearing-uncertainty/SKILL.md +34 -0
  425. piensalo-0.1.0a2/micro-skills/load-bearing-uncertainty/evals/EVAL-PLAN.md +15 -0
  426. piensalo-0.1.0a2/micro-skills/load-bearing-uncertainty/examples/near-miss.md +7 -0
  427. piensalo-0.1.0a2/micro-skills/load-bearing-uncertainty/examples/positive.md +18 -0
  428. piensalo-0.1.0a2/micro-skills/load-bearing-uncertainty/manifest.json +24 -0
  429. piensalo-0.1.0a2/micro-skills/load-bearing-uncertainty/skill-card.md +20 -0
  430. piensalo-0.1.0a2/micro-skills/objective-vs-proxy/BENCHMARK.md +16 -0
  431. piensalo-0.1.0a2/micro-skills/objective-vs-proxy/SKILL.md +33 -0
  432. piensalo-0.1.0a2/micro-skills/objective-vs-proxy/evals/EVAL-PLAN.md +15 -0
  433. piensalo-0.1.0a2/micro-skills/objective-vs-proxy/examples/near-miss.md +7 -0
  434. piensalo-0.1.0a2/micro-skills/objective-vs-proxy/examples/positive.md +18 -0
  435. piensalo-0.1.0a2/micro-skills/objective-vs-proxy/manifest.json +25 -0
  436. piensalo-0.1.0a2/micro-skills/objective-vs-proxy/skill-card.md +20 -0
  437. piensalo-0.1.0a2/micro-skills/recover-real-objective/BENCHMARK.md +16 -0
  438. piensalo-0.1.0a2/micro-skills/recover-real-objective/SKILL.md +33 -0
  439. piensalo-0.1.0a2/micro-skills/recover-real-objective/evals/EVAL-PLAN.md +15 -0
  440. piensalo-0.1.0a2/micro-skills/recover-real-objective/examples/near-miss.md +7 -0
  441. piensalo-0.1.0a2/micro-skills/recover-real-objective/examples/positive.md +16 -0
  442. piensalo-0.1.0a2/micro-skills/recover-real-objective/manifest.json +25 -0
  443. piensalo-0.1.0a2/micro-skills/recover-real-objective/skill-card.md +21 -0
  444. piensalo-0.1.0a2/micro-skills/rederive-the-numbers/BENCHMARK.md +16 -0
  445. piensalo-0.1.0a2/micro-skills/rederive-the-numbers/SKILL.md +33 -0
  446. piensalo-0.1.0a2/micro-skills/rederive-the-numbers/evals/EVAL-PLAN.md +15 -0
  447. piensalo-0.1.0a2/micro-skills/rederive-the-numbers/examples/near-miss.md +7 -0
  448. piensalo-0.1.0a2/micro-skills/rederive-the-numbers/examples/positive.md +15 -0
  449. piensalo-0.1.0a2/micro-skills/rederive-the-numbers/manifest.json +25 -0
  450. piensalo-0.1.0a2/micro-skills/rederive-the-numbers/skill-card.md +21 -0
  451. piensalo-0.1.0a2/micro-skills/second-order-effects/BENCHMARK.md +16 -0
  452. piensalo-0.1.0a2/micro-skills/second-order-effects/SKILL.md +33 -0
  453. piensalo-0.1.0a2/micro-skills/second-order-effects/evals/EVAL-PLAN.md +15 -0
  454. piensalo-0.1.0a2/micro-skills/second-order-effects/examples/near-miss.md +7 -0
  455. piensalo-0.1.0a2/micro-skills/second-order-effects/examples/positive.md +18 -0
  456. piensalo-0.1.0a2/micro-skills/second-order-effects/manifest.json +23 -0
  457. piensalo-0.1.0a2/micro-skills/second-order-effects/skill-card.md +19 -0
  458. piensalo-0.1.0a2/micro-skills/source-claim-verification/BENCHMARK.md +16 -0
  459. piensalo-0.1.0a2/micro-skills/source-claim-verification/SKILL.md +34 -0
  460. piensalo-0.1.0a2/micro-skills/source-claim-verification/evals/EVAL-PLAN.md +15 -0
  461. piensalo-0.1.0a2/micro-skills/source-claim-verification/examples/near-miss.md +7 -0
  462. piensalo-0.1.0a2/micro-skills/source-claim-verification/examples/positive.md +15 -0
  463. piensalo-0.1.0a2/micro-skills/source-claim-verification/manifest.json +24 -0
  464. piensalo-0.1.0a2/micro-skills/source-claim-verification/skill-card.md +20 -0
  465. piensalo-0.1.0a2/pyproject.toml +55 -0
  466. piensalo-0.1.0a2/skills/README.md +80 -0
  467. piensalo-0.1.0a2/skills/piensalo/BENCHMARK.md +15 -0
  468. piensalo-0.1.0a2/skills/piensalo/SKILL.md +39 -0
  469. piensalo-0.1.0a2/skills/piensalo/evals/EVAL-PLAN.md +16 -0
  470. piensalo-0.1.0a2/skills/piensalo/examples/near-miss.md +7 -0
  471. piensalo-0.1.0a2/skills/piensalo/examples/positive.md +16 -0
  472. piensalo-0.1.0a2/skills/piensalo/manifest.json +30 -0
  473. piensalo-0.1.0a2/skills/piensalo/references/contracts.md +180 -0
  474. piensalo-0.1.0a2/skills/piensalo/references/failure-checks.md +131 -0
  475. piensalo-0.1.0a2/skills/piensalo/references/verification.md +36 -0
  476. piensalo-0.1.0a2/skills/piensalo/skill-card.md +20 -0
  477. piensalo-0.1.0a2/skills/piensalo-build/BENCHMARK.md +15 -0
  478. piensalo-0.1.0a2/skills/piensalo-build/SKILL.md +37 -0
  479. piensalo-0.1.0a2/skills/piensalo-build/evals/EVAL-PLAN.md +15 -0
  480. piensalo-0.1.0a2/skills/piensalo-build/examples/near-miss.md +7 -0
  481. piensalo-0.1.0a2/skills/piensalo-build/examples/positive.md +13 -0
  482. piensalo-0.1.0a2/skills/piensalo-build/manifest.json +29 -0
  483. piensalo-0.1.0a2/skills/piensalo-build/references/contracts.md +180 -0
  484. piensalo-0.1.0a2/skills/piensalo-build/references/failure-checks.md +131 -0
  485. piensalo-0.1.0a2/skills/piensalo-build/references/verification.md +36 -0
  486. piensalo-0.1.0a2/skills/piensalo-build/skill-card.md +19 -0
  487. piensalo-0.1.0a2/skills/piensalo-invent/BENCHMARK.md +15 -0
  488. piensalo-0.1.0a2/skills/piensalo-invent/SKILL.md +42 -0
  489. piensalo-0.1.0a2/skills/piensalo-invent/evals/EVAL-PLAN.md +17 -0
  490. piensalo-0.1.0a2/skills/piensalo-invent/examples/near-miss.md +7 -0
  491. piensalo-0.1.0a2/skills/piensalo-invent/examples/positive.md +14 -0
  492. piensalo-0.1.0a2/skills/piensalo-invent/manifest.json +29 -0
  493. piensalo-0.1.0a2/skills/piensalo-invent/references/contracts.md +180 -0
  494. piensalo-0.1.0a2/skills/piensalo-invent/references/failure-checks.md +131 -0
  495. piensalo-0.1.0a2/skills/piensalo-invent/references/verification.md +35 -0
  496. piensalo-0.1.0a2/skills/piensalo-invent/skill-card.md +18 -0
  497. piensalo-0.1.0a2/skills/piensalo-math/BENCHMARK.md +15 -0
  498. piensalo-0.1.0a2/skills/piensalo-math/SKILL.md +43 -0
  499. piensalo-0.1.0a2/skills/piensalo-math/evals/EVAL-PLAN.md +15 -0
  500. piensalo-0.1.0a2/skills/piensalo-math/examples/near-miss.md +7 -0
  501. piensalo-0.1.0a2/skills/piensalo-math/examples/positive.md +13 -0
  502. piensalo-0.1.0a2/skills/piensalo-math/manifest.json +30 -0
  503. piensalo-0.1.0a2/skills/piensalo-math/references/contracts.md +180 -0
  504. piensalo-0.1.0a2/skills/piensalo-math/references/failure-checks.md +131 -0
  505. piensalo-0.1.0a2/skills/piensalo-math/references/verification.md +35 -0
  506. piensalo-0.1.0a2/skills/piensalo-math/skill-card.md +20 -0
  507. piensalo-0.1.0a2/skills/piensalo-research/BENCHMARK.md +15 -0
  508. piensalo-0.1.0a2/skills/piensalo-research/SKILL.md +40 -0
  509. piensalo-0.1.0a2/skills/piensalo-research/evals/EVAL-PLAN.md +17 -0
  510. piensalo-0.1.0a2/skills/piensalo-research/examples/near-miss.md +7 -0
  511. piensalo-0.1.0a2/skills/piensalo-research/examples/positive.md +14 -0
  512. piensalo-0.1.0a2/skills/piensalo-research/manifest.json +28 -0
  513. piensalo-0.1.0a2/skills/piensalo-research/references/contracts.md +180 -0
  514. piensalo-0.1.0a2/skills/piensalo-research/references/failure-checks.md +131 -0
  515. piensalo-0.1.0a2/skills/piensalo-research/references/verification.md +34 -0
  516. piensalo-0.1.0a2/skills/piensalo-research/skill-card.md +18 -0
  517. piensalo-0.1.0a2/skills/piensalo-strategy/BENCHMARK.md +15 -0
  518. piensalo-0.1.0a2/skills/piensalo-strategy/SKILL.md +43 -0
  519. piensalo-0.1.0a2/skills/piensalo-strategy/evals/EVAL-PLAN.md +17 -0
  520. piensalo-0.1.0a2/skills/piensalo-strategy/examples/near-miss.md +7 -0
  521. piensalo-0.1.0a2/skills/piensalo-strategy/examples/positive.md +14 -0
  522. piensalo-0.1.0a2/skills/piensalo-strategy/manifest.json +28 -0
  523. piensalo-0.1.0a2/skills/piensalo-strategy/references/contracts.md +180 -0
  524. piensalo-0.1.0a2/skills/piensalo-strategy/references/failure-checks.md +131 -0
  525. piensalo-0.1.0a2/skills/piensalo-strategy/references/verification.md +34 -0
  526. piensalo-0.1.0a2/skills/piensalo-strategy/skill-card.md +18 -0
  527. piensalo-0.1.0a2/skills/piensalo-verify/BENCHMARK.md +15 -0
  528. piensalo-0.1.0a2/skills/piensalo-verify/SKILL.md +30 -0
  529. piensalo-0.1.0a2/skills/piensalo-verify/evals/EVAL-PLAN.md +15 -0
  530. piensalo-0.1.0a2/skills/piensalo-verify/examples/near-miss.md +7 -0
  531. piensalo-0.1.0a2/skills/piensalo-verify/examples/positive.md +11 -0
  532. piensalo-0.1.0a2/skills/piensalo-verify/manifest.json +29 -0
  533. piensalo-0.1.0a2/skills/piensalo-verify/references/contracts.md +180 -0
  534. piensalo-0.1.0a2/skills/piensalo-verify/references/failure-checks.md +131 -0
  535. piensalo-0.1.0a2/skills/piensalo-verify/references/verification.md +229 -0
  536. piensalo-0.1.0a2/skills/piensalo-verify/skill-card.md +20 -0
  537. piensalo-0.1.0a2/skills/piensalo-write/BENCHMARK.md +15 -0
  538. piensalo-0.1.0a2/skills/piensalo-write/SKILL.md +38 -0
  539. piensalo-0.1.0a2/skills/piensalo-write/evals/EVAL-PLAN.md +17 -0
  540. piensalo-0.1.0a2/skills/piensalo-write/examples/near-miss.md +7 -0
  541. piensalo-0.1.0a2/skills/piensalo-write/examples/positive.md +14 -0
  542. piensalo-0.1.0a2/skills/piensalo-write/manifest.json +28 -0
  543. piensalo-0.1.0a2/skills/piensalo-write/references/contracts.md +180 -0
  544. piensalo-0.1.0a2/skills/piensalo-write/references/failure-checks.md +131 -0
  545. piensalo-0.1.0a2/skills/piensalo-write/references/verification.md +37 -0
  546. piensalo-0.1.0a2/skills/piensalo-write/skill-card.md +18 -0
  547. piensalo-0.1.0a2/src/piensalo/__init__.py +13 -0
  548. piensalo-0.1.0a2/src/piensalo/__main__.py +5 -0
  549. piensalo-0.1.0a2/src/piensalo/adapters/__init__.py +32 -0
  550. piensalo-0.1.0a2/src/piensalo/adapters/base.py +67 -0
  551. piensalo-0.1.0a2/src/piensalo/adapters/claude_cli.py +79 -0
  552. piensalo-0.1.0a2/src/piensalo/adapters/manual.py +43 -0
  553. piensalo-0.1.0a2/src/piensalo/adapters/ollama.py +64 -0
  554. piensalo-0.1.0a2/src/piensalo/adapters/openai_compat.py +88 -0
  555. piensalo-0.1.0a2/src/piensalo/cli/__init__.py +8 -0
  556. piensalo-0.1.0a2/src/piensalo/cli/main.py +682 -0
  557. piensalo-0.1.0a2/src/piensalo/compiler/__init__.py +10 -0
  558. piensalo-0.1.0a2/src/piensalo/compiler/program.py +160 -0
  559. piensalo-0.1.0a2/src/piensalo/core/__init__.py +31 -0
  560. piensalo-0.1.0a2/src/piensalo/core/operations.json +207 -0
  561. piensalo-0.1.0a2/src/piensalo/core/operations.md +59 -0
  562. piensalo-0.1.0a2/src/piensalo/evidence/__init__.py +15 -0
  563. piensalo-0.1.0a2/src/piensalo/evidence/records.py +82 -0
  564. piensalo-0.1.0a2/src/piensalo/inspect/__init__.py +9 -0
  565. piensalo-0.1.0a2/src/piensalo/inspect/scanner.py +238 -0
  566. piensalo-0.1.0a2/src/piensalo/loop/__init__.py +14 -0
  567. piensalo-0.1.0a2/src/piensalo/loop/controller.py +597 -0
  568. piensalo-0.1.0a2/src/piensalo/loop/state.py +111 -0
  569. piensalo-0.1.0a2/src/piensalo/repair/__init__.py +28 -0
  570. piensalo-0.1.0a2/src/piensalo/repair/library/boundary-case-check.md +29 -0
  571. piensalo-0.1.0a2/src/piensalo/repair/library/calibrated-uncertainty.md +29 -0
  572. piensalo-0.1.0a2/src/piensalo/repair/library/complete-the-delivery.md +30 -0
  573. piensalo-0.1.0a2/src/piensalo/repair/library/contradiction-resolution.md +29 -0
  574. piensalo-0.1.0a2/src/piensalo/repair/library/disqualifier-scan.md +29 -0
  575. piensalo-0.1.0a2/src/piensalo/repair/library/final-answer-completeness.md +30 -0
  576. piensalo-0.1.0a2/src/piensalo/repair/library/hidden-constraint-scan.md +29 -0
  577. piensalo-0.1.0a2/src/piensalo/repair/library/recover-real-objective.md +29 -0
  578. piensalo-0.1.0a2/src/piensalo/repair/library/rederive-the-numbers.md +29 -0
  579. piensalo-0.1.0a2/src/piensalo/repair/library/source-claim-verification.md +29 -0
  580. piensalo-0.1.0a2/src/piensalo/security/__init__.py +10 -0
  581. piensalo-0.1.0a2/src/piensalo/security/skill_scan.py +118 -0
  582. piensalo-0.1.0a2/src/piensalo/verify/__init__.py +29 -0
  583. piensalo-0.1.0a2/src/piensalo/verify/contract.py +144 -0
  584. piensalo-0.1.0a2/src/piensalo/verify/layered.py +173 -0
  585. piensalo-0.1.0a2/tests/conftest.py +20 -0
  586. piensalo-0.1.0a2/tests/test_cli_smoke.py +124 -0
  587. piensalo-0.1.0a2/tests/test_contract.py +87 -0
  588. piensalo-0.1.0a2/tests/test_evidence_and_compiler.py +88 -0
  589. piensalo-0.1.0a2/tests/test_flagship_transcript.py +88 -0
  590. piensalo-0.1.0a2/tests/test_layered.py +84 -0
  591. piensalo-0.1.0a2/tests/test_loop.py +154 -0
  592. piensalo-0.1.0a2/tests/test_main_module.py +39 -0
  593. piensalo-0.1.0a2/tests/test_readme_demo_parity.py +41 -0
  594. piensalo-0.1.0a2/tests/test_repair_modes.py +137 -0
  595. piensalo-0.1.0a2/tests/test_scanner.py +62 -0
  596. piensalo-0.1.0a2/tests/test_skill_multipath.py +106 -0
  597. piensalo-0.1.0a2/tests/test_skill_scan.py +89 -0
  598. piensalo-0.1.0a2/tests/test_think_input.py +62 -0
  599. piensalo-0.1.0a2/tests/test_verify_truth.py +113 -0
  600. piensalo-0.1.0a2/uv.lock +597 -0
@@ -0,0 +1,2 @@
1
+ # PIÉNSALO code ownership — reviews route to the creator/maintainer.
2
+ * @ralfyishere
@@ -0,0 +1,56 @@
1
+ name: Bug report
2
+ description: Something in piensalo behaves incorrectly
3
+ labels: ["bug", "needs-triage"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thanks for the report. Two notes before you start:
9
+ - **Security issues:** do NOT file here — use private reporting (see SECURITY.md).
10
+ - **"It made my results worse":** that's a negative-transfer report — use that template instead; it's a first-class contribution.
11
+ - type: textarea
12
+ id: what-happened
13
+ attributes:
14
+ label: What happened
15
+ description: The observable behavior, not the interpretation.
16
+ placeholder: "`piensalo verify draft` exited 0 but printed no verdict line."
17
+ validations:
18
+ required: true
19
+ - type: textarea
20
+ id: expected
21
+ attributes:
22
+ label: What you expected
23
+ validations:
24
+ required: true
25
+ - type: textarea
26
+ id: repro
27
+ attributes:
28
+ label: Minimal reproduction
29
+ description: Exact commands from a clean state. If you can't reproduce it, say so — flaky reports are still useful when labeled as flaky.
30
+ render: shell
31
+ validations:
32
+ required: true
33
+ - type: textarea
34
+ id: environment
35
+ attributes:
36
+ label: Environment
37
+ description: Paste the output of `piensalo doctor` (it redacts secrets; still skim it before pasting).
38
+ render: text
39
+ validations:
40
+ required: true
41
+ - type: input
42
+ id: model
43
+ attributes:
44
+ label: Model + adapter (as recorded by provenance)
45
+ placeholder: "e.g. ollama/llama3.1:8b via ollama adapter, or 'skills-only, no runtime'"
46
+ validations:
47
+ required: true
48
+ - type: checkboxes
49
+ id: checks
50
+ attributes:
51
+ label: Confirm
52
+ options:
53
+ - label: This is not a security vulnerability (those go through private reporting, per SECURITY.md)
54
+ required: true
55
+ - label: I removed secrets and private paths from everything pasted above
56
+ required: true
@@ -0,0 +1,52 @@
1
+ name: Case study / benchmark reproduction
2
+ description: Share a real usage trace or a reproduction of our published numbers — agreeing or disagreeing.
3
+ labels: ["case-study", "evidence"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Reproductions that DISAGREE with our published numbers are especially welcome —
9
+ they get the same visibility as confirmations (docs/methodology.md).
10
+ - type: dropdown
11
+ id: kind
12
+ attributes:
13
+ label: Kind
14
+ options:
15
+ - Case study (real task, full lifecycle trace)
16
+ - Benchmark reproduction (matches published results)
17
+ - Benchmark reproduction (DISAGREES with published results)
18
+ validations:
19
+ required: true
20
+ - type: textarea
21
+ id: setup
22
+ attributes:
23
+ label: Setup
24
+ description: OS, install method, piensalo version, exact model identifiers as recorded by provenance, hardware if local.
25
+ validations:
26
+ required: true
27
+ - type: textarea
28
+ id: narrative
29
+ attributes:
30
+ label: What happened
31
+ description: The trace or run summary. For case studies include verdicts (REPAIR REQUIRED / NO REPAIR NEEDED / PASS) as they occurred — including wrong ones.
32
+ validations:
33
+ required: true
34
+ - type: textarea
35
+ id: artifacts
36
+ attributes:
37
+ label: Evidence artifacts
38
+ description: Outputs, evidence bundles, result tables. Scrub secrets and private paths before attaching.
39
+ validations:
40
+ required: true
41
+ - type: textarea
42
+ id: divergence
43
+ attributes:
44
+ label: Divergence from published results (if any)
45
+ description: For reproductions — what differed, by how much, and your best hypothesis why.
46
+ - type: checkboxes
47
+ id: consent
48
+ attributes:
49
+ label: Publication
50
+ options:
51
+ - label: I consent to this content being published (anonymized on request) in the project's case studies or evidence reports
52
+ required: true
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Security vulnerability (private)
4
+ url: https://github.com/ralfyishere/piensalo/security/advisories/new
5
+ about: Please report security issues privately via GitHub security advisories — never in a public issue. See SECURITY.md.
@@ -0,0 +1,66 @@
1
+ name: Negative-transfer report
2
+ description: Piénsalo made your results WORSE. This is a first-class contribution — confirmed reports are published with credit.
3
+ labels: ["negative-transfer", "evidence"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thank you — this is the report we most need (Manifesto, principle 6).
9
+ Confirmed reports go into NEGATIVE-RESULTS.md with credit (if you want it).
10
+ - type: textarea
11
+ id: task
12
+ attributes:
13
+ label: The task
14
+ description: What you were doing, in enough detail to reproduce the setup. No secrets or client-identifying details.
15
+ validations:
16
+ required: true
17
+ - type: textarea
18
+ id: comparison
19
+ attributes:
20
+ label: The comparison
21
+ description: What "worse" is measured against — the same task without Piénsalo? A different configuration? Describe both sides.
22
+ validations:
23
+ required: true
24
+ - type: textarea
25
+ id: worse-how
26
+ attributes:
27
+ label: How it was worse
28
+ description: Observable difference — wrong output, damaged correct work, unnecessary repair applied, failure to abstain, time/cost burned.
29
+ validations:
30
+ required: true
31
+ - type: input
32
+ id: model
33
+ attributes:
34
+ label: Model + adapter (as recorded by provenance)
35
+ validations:
36
+ required: true
37
+ - type: input
38
+ id: version
39
+ attributes:
40
+ label: piensalo version / skill versions
41
+ validations:
42
+ required: true
43
+ - type: dropdown
44
+ id: repeatability
45
+ attributes:
46
+ label: Repeatability
47
+ options:
48
+ - Reproduced 2+ times
49
+ - Happened once, could not retry yet
50
+ - Happened once, retry did NOT reproduce it
51
+ validations:
52
+ required: true
53
+ - type: textarea
54
+ id: evidence
55
+ attributes:
56
+ label: Evidence artifacts
57
+ description: Relevant .piensalo/evidence files or transcripts (scrub secrets first).
58
+ - type: dropdown
59
+ id: credit
60
+ attributes:
61
+ label: Credit preference if published
62
+ options:
63
+ - Credit me (GitHub handle)
64
+ - Publish anonymously
65
+ validations:
66
+ required: true
@@ -0,0 +1,103 @@
1
+ name: New skill contribution
2
+ description: Propose a new portable skill. All fields are required — they ARE the skill's spec.
3
+ labels: ["skill-proposal", "needs-review"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Every field below is mandatory — a skill missing any of them will not be merged
9
+ (CONTRIBUTING.md, type 1). New skills honestly start at evidence level `DESIGNED`.
10
+ - type: input
11
+ id: skill-name
12
+ attributes:
13
+ label: Skill name
14
+ placeholder: "kebab-case, e.g. unit-consistency-check"
15
+ validations:
16
+ required: true
17
+ - type: textarea
18
+ id: observable-trigger
19
+ attributes:
20
+ label: Observable trigger
21
+ description: What a session can SEE that activates this skill. "When appropriate" is not observable.
22
+ validations:
23
+ required: true
24
+ - type: textarea
25
+ id: counterindications
26
+ attributes:
27
+ label: Counterindications
28
+ description: Situations where this skill must NOT fire, even though it might seem to apply.
29
+ validations:
30
+ required: true
31
+ - type: textarea
32
+ id: bounded-procedure
33
+ attributes:
34
+ label: Bounded procedure
35
+ description: The steps, with an explicit budget (max iterations / max scope). Unbounded procedures are declined.
36
+ validations:
37
+ required: true
38
+ - type: textarea
39
+ id: expected-output
40
+ attributes:
41
+ label: Expected output
42
+ description: What the skill's result looks like, concretely.
43
+ validations:
44
+ required: true
45
+ - type: textarea
46
+ id: verification
47
+ attributes:
48
+ label: Verification
49
+ description: How a reader checks the skill did its job (not "review carefully" — a checkable step).
50
+ validations:
51
+ required: true
52
+ - type: textarea
53
+ id: stop-condition
54
+ attributes:
55
+ label: Stop condition
56
+ description: When the skill is done, and when it must abort. Include the abstention path if one exists.
57
+ validations:
58
+ required: true
59
+ - type: textarea
60
+ id: positive-example
61
+ attributes:
62
+ label: Positive example
63
+ description: A realistic trace where the skill helps — input, skill behavior, improved outcome.
64
+ validations:
65
+ required: true
66
+ - type: textarea
67
+ id: near-miss
68
+ attributes:
69
+ label: Near miss
70
+ description: A concrete case that LOOKS like the trigger but isn't, and why the skill must not fire on it.
71
+ validations:
72
+ required: true
73
+ - type: textarea
74
+ id: negative-transfer-risk
75
+ attributes:
76
+ label: Negative-transfer risk
77
+ description: Where could this skill make results WORSE? (Strong models, easy tasks, and already-correct work are the usual victims — see NEGATIVE-RESULTS.md NR-1, NR-8.)
78
+ validations:
79
+ required: true
80
+ - type: textarea
81
+ id: evaluation-plan
82
+ attributes:
83
+ label: Evaluation plan
84
+ description: How this skill will be measured — tasks, comparison condition, grader, success criteria (docs/methodology.md).
85
+ validations:
86
+ required: true
87
+ - type: dropdown
88
+ id: evidence-level
89
+ attributes:
90
+ label: Claimed evidence level
91
+ description: Per docs/evidence-levels.md. DESIGNED is the honest default for new skills.
92
+ options:
93
+ - DESIGNED
94
+ - SMOKE_TESTED
95
+ - EXPERIMENTALLY_TESTED
96
+ - REPLICATED
97
+ validations:
98
+ required: true
99
+ - type: textarea
100
+ id: receipts
101
+ attributes:
102
+ label: Receipts for the claimed level
103
+ description: Required for any level above DESIGNED — link the runs/artifacts.
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: Security issue (do not use this template)
3
+ about: Security reports must go through private reporting — this template exists only to redirect you.
4
+ labels: ["invalid"]
5
+ ---
6
+
7
+ <!--
8
+ STOP — please do not file security issues publicly.
9
+
10
+ A public issue gives attackers the details before users have a fix.
11
+ -->
12
+
13
+ ## Please report privately instead
14
+
15
+ 1. Go to the repository's **Security** tab → **Report a vulnerability**
16
+ (https://github.com/ralfyishere/piensalo/security/advisories/new)
17
+ 2. You'll get an acknowledgment within 72 hours (see SECURITY.md for the
18
+ full policy, scope, and disclosure process).
19
+
20
+ If you file vulnerability details here anyway, maintainers will redact the
21
+ issue and ask you to resubmit privately — you'll still get credit for the
22
+ find, but please save us both the step.
23
+
24
+ **In scope:** the CLI/runtime, skill loader and `skill scan`, model adapters,
25
+ release artifacts. **Threat model:** THREAT-MODEL.md.
@@ -0,0 +1,41 @@
1
+ # Pull request
2
+
3
+ ## What this changes
4
+
5
+ <!-- One concern per PR. If you're tempted to write "and", consider two PRs. -->
6
+
7
+ ## Type
8
+
9
+ - [ ] Skill (all 11 required fields present — see the new-skill issue template)
10
+ - [ ] Verifier (adversarial test case included; FP/FN behavior stated)
11
+ - [ ] Model adapter (provenance honored, no silent fallback, no creds in logs)
12
+ - [ ] Task / benchmark reproduction
13
+ - [ ] Bug fix
14
+ - [ ] Docs
15
+ - [ ] Other:
16
+
17
+ ## Verification I actually ran
18
+
19
+ <!-- Paste the commands and their real output. "Should work" is a prediction,
20
+ not a result. For docs PRs: paste the link-check / claim-check you did. -->
21
+
22
+ ```
23
+ ```
24
+
25
+ ## Evidence discipline
26
+
27
+ - [ ] No capability claim in this PR exceeds its evidence level (docs/evidence-levels.md)
28
+ - [ ] I did not upgrade any evidence level via prose (only experiments do that)
29
+ - [ ] N/A — this PR makes no capability claims
30
+
31
+ ## Security invariants (SECURITY.md)
32
+
33
+ - [ ] No telemetry, no network outside explicit adapters, no silent fallback,
34
+ no code execution from skill text, no secrets in code/logs/fixtures
35
+ - [ ] If this PR touches a guard (scanner rule, path check, scrubber): the
36
+ adversarial test that tries to defeat it is included
37
+
38
+ ## Breaking changes
39
+
40
+ - [ ] None
41
+ - [ ] Yes — described above, CHANGELOG.md updated
@@ -0,0 +1,121 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ name: pytest (${{ matrix.os }}, py${{ matrix.python-version }})
14
+ runs-on: ${{ matrix.os }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-latest, macos-latest]
19
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - uses: actions/setup-python@v5
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+ - name: Install
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ pip install -e .
29
+ pip install pytest
30
+ - name: Run tests
31
+ run: pytest -q
32
+
33
+ skill-lint:
34
+ name: Skill lint
35
+ runs-on: ubuntu-latest
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: "3.12"
41
+ - name: Install
42
+ run: |
43
+ python -m pip install --upgrade pip
44
+ pip install -e .
45
+ - name: Lint shipped skills (structure + scan)
46
+ run: |
47
+ python -m piensalo skill scan skills/ micro-skills/
48
+ python -m piensalo skill lint skills/ micro-skills/
49
+
50
+ secret-scan:
51
+ name: Secret scan
52
+ runs-on: ubuntu-latest
53
+ steps:
54
+ - uses: actions/checkout@v4
55
+ - name: Grep for secret patterns
56
+ # A net, not a license — see CONTRIBUTING.md security standards.
57
+ run: |
58
+ set -e
59
+ PATTERNS='(sk-[A-Za-z0-9]{20,}|AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{36}|gho_[A-Za-z0-9]{36}|xox[baprs]-[A-Za-z0-9-]{10,}|-----BEGIN (RSA|EC|OPENSSH|DSA|PGP) PRIVATE KEY-----|AIza[0-9A-Za-z_-]{35})'
60
+ if grep -rInE "$PATTERNS" --exclude-dir=.git --exclude=ci.yml .; then
61
+ echo "::error::Secret-shaped string found. Remove it and rotate the credential."
62
+ exit 1
63
+ fi
64
+ echo "Secret scan clean."
65
+
66
+ link-check:
67
+ name: Relative links + missing files
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+ - name: Check relative links in markdown
72
+ # Verifies every relative markdown link resolves to a real file.
73
+ # External-URL checking is deliberately out of scope (network
74
+ # flakiness is not broken docs); tracked in ROADMAP v0.2.
75
+ run: |
76
+ python3 - <<'EOF'
77
+ import os, re, sys, urllib.parse
78
+ bad = []
79
+ for root, dirs, files in os.walk('.'):
80
+ dirs[:] = [d for d in dirs if d not in ('.git', '.venv', 'node_modules')]
81
+ for f in files:
82
+ if not f.endswith('.md'):
83
+ continue
84
+ p = os.path.join(root, f)
85
+ text = open(p, encoding='utf-8', errors='replace').read()
86
+ for m in re.finditer(r'\]\(([^)#\s]+)(#[^)]*)?\)', text):
87
+ target = urllib.parse.unquote(m.group(1))
88
+ if re.match(r'^[a-z]+:', target): # http(s), mailto, etc. — stub skips
89
+ continue
90
+ resolved = os.path.normpath(os.path.join(os.path.dirname(p), target))
91
+ if not os.path.exists(resolved):
92
+ bad.append(f"{p}: {target}")
93
+ if bad:
94
+ print("Broken relative links:")
95
+ print("\n".join(bad))
96
+ sys.exit(1)
97
+ print("Relative links OK.")
98
+ EOF
99
+
100
+ build:
101
+ name: Package build
102
+ runs-on: ubuntu-latest
103
+ steps:
104
+ - uses: actions/checkout@v4
105
+ - uses: actions/setup-python@v5
106
+ with:
107
+ python-version: "3.12"
108
+ - name: Build sdist + wheel
109
+ run: |
110
+ python -m pip install --upgrade pip build twine
111
+ python -m build
112
+ twine check dist/*
113
+ - name: Wheel install smoke
114
+ run: |
115
+ python -m venv /tmp/smoke && /tmp/smoke/bin/pip -q install dist/*.whl
116
+ /tmp/smoke/bin/piensalo doctor
117
+ /tmp/smoke/bin/piensalo think examples/math/task.md > /dev/null && echo "think OK"
118
+ - uses: actions/upload-artifact@v4
119
+ with:
120
+ name: dist
121
+ path: dist/
@@ -0,0 +1,26 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ publish:
12
+ runs-on: ubuntu-latest
13
+ environment: pypi
14
+ permissions:
15
+ id-token: write # OIDC for PyPI Trusted Publishing — no tokens stored
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.12"
21
+ - name: Build distributions
22
+ run: |
23
+ python -m pip install --upgrade build
24
+ python -m build
25
+ - name: Publish to PyPI (trusted publishing)
26
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,7 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ .venv/
4
+ dist/
5
+ *.egg-info/
6
+ .piensalo/
7
+ uv.lock.tmp
@@ -0,0 +1,69 @@
1
+ # Benchmarks
2
+
3
+ Two pre-registered controlled runs stand behind the current evidence map
4
+ ([EVIDENCE.md](EVIDENCE.md)). Both are internal-lab runs; the public
5
+ reproduction harness lives in [evals/](evals/) and reproducing (or
6
+ refuting) these numbers on your own models is a first-class contribution
7
+ ([evals/results/](evals/results/)).
8
+
9
+ ## Design shared by both runs
10
+
11
+ | Property | Value |
12
+ |---|---|
13
+ | Cells | 8 sealed tasks × 3 reps × 5 conditions = 120 |
14
+ | Execution model | `claude-haiku-4-5` (requested + resolved recorded per cell) |
15
+ | Conditions | bare · monolithic skill · adaptive repair · oracle repair · output-contract guardian |
16
+ | Graders | deterministic, layered (cognition / delivery / rendering / routing / verification), frozen before any cell |
17
+ | Gates | pre-registered, frozen before any cell, never re-scoped |
18
+ | Stub policy | infra failures = NOT RUN, never FAIL |
19
+ | Budget | equal across conditions (bounded turns, bounded prompt prefix) |
20
+
21
+ n = 8 tasks per run. Everything below is directional, not powered. We
22
+ publish it anyway, with the confounds attached.
23
+
24
+ ## Run 1 — weak-baseline task set
25
+
26
+ The bare model failed most procedural tasks (procedural mean 37.5/100).
27
+
28
+ | Finding | Number | Confound |
29
+ |---|---|---|
30
+ | Oracle targeted repair, procedural lift | **+18.8pp** | task-concentrated: +66.7 on the best task, **−20 on the worst** (a repair pass destroyed a delivered answer); one task grader-blind |
31
+ | Output-contract guardian, delivery-failure reduction | **30% relative** (0.417 → 0.292) | part of the apparent cognition movement was measurement visibility (absent output is ungradeable) |
32
+ | Guardian paired cognition harm | **zero** | — |
33
+ | Adaptive router fires | **0 / 24** | two deterministic implementation defects (threshold arithmetic; contract-schema mismatch) — found by forensics, fixed, and re-tested in run 2 |
34
+ | Grader artifacts discovered | 3 classes | fixed in the run-2 grading library; both directions (false credit AND false blame) |
35
+
36
+ ## Run 2 — saturated task set (the harm measurement)
37
+
38
+ The fresh set turned out too easy: bare cognition rate **1.0** (verified
39
+ against answer keys). No lift was measurable — so harm became cleanly
40
+ measurable instead.
41
+
42
+ | Finding | Number | Note |
43
+ |---|---|---|
44
+ | Forced repair on correct drafts (oracle) | **−20pp procedural, 7/24 paired regressions ≥ 40pp** | every regression was DELIVERY damage (prose wrapped around contract-exact output) |
45
+ | Cognition flips from forced repair | **0 / 48 cells** | re-prompting is a delivery risk, not a reasoning risk |
46
+ | Adaptive router (after both fixes) | fires 8/24, precision **0.375** on correct drafts | third defect class: correctness-blind detection; abstention on easy classes was perfect (12/12) |
47
+ | Monolithic skill on knowledge-floor tasks | **60 vs 100**, 2 induced wrong answers | artifact-free graders this time; +1109 median tokens |
48
+ | Guardian on contract-clean drafts | 0 fires, **0 harm** (24/24 correct abstention) | its improvement gate was unexercised — no delivery failures to fix |
49
+ | Abstaining paths, total harm | **zero** | the core product thesis, measured |
50
+
51
+ ## What these runs do NOT show
52
+
53
+ - No cross-model generality: one small-model family executed the cells.
54
+ - No statistical certainty: n = 8 tasks per run.
55
+ - No end-to-end product benchmark yet: these are mechanism isolation runs.
56
+ - Run 2's saturation means the repair-lift hypothesis still rests on run 1
57
+ alone. The next kill test is a difficulty-calibrated fresh set (pilot
58
+ gate: bare procedural cognition ≤ 0.7 before sealing).
59
+
60
+ ## Reproduce
61
+
62
+ ```
63
+ make benchmark # grader self-test battery + 2-task smoke, no API needed
64
+ uv run piensalo-eval # full harness (bring your own adapter/model)
65
+ ```
66
+
67
+ Task sets in `evals/public-tasks/` are labeled `DEMO` or `DEVELOPMENT`.
68
+ Internal unconsumed held-out reserves are never published; consumed sets
69
+ are ported here after their runs close.
@@ -0,0 +1,58 @@
1
+ # Changelog
2
+
3
+ All notable changes to Piénsalo are documented here.
4
+ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
+ Versioning: [SemVer](https://semver.org/) once we reach 0.1.0; until then,
6
+ everything may change.
7
+
8
+ ## [0.1.0-alpha.2] — 2026-07-13
9
+
10
+ Truthfulness and UX correction release.
11
+
12
+ ### Added
13
+ - Real flagship workflow: `examples/flagship/` with a committed transcript of
14
+ actual CLI output; CI parity tests prevent README/demo drift
15
+ - `repair` adapter mode: writes a NEW repaired file + provenance sidecar and
16
+ automatically re-inspects the result; source drafts are never overwritten
17
+ - `think` accepts a task file or inline text (`--file`/`--text` overrides)
18
+ - `python -m piensalo`; `skill lint`/`scan` accept multiple and parent paths
19
+ - PyPI publication via GitHub trusted publishing (release-triggered)
20
+
21
+ ### Changed
22
+ - `repair` default mode clearly labeled as a repair PACKET (nothing applied)
23
+ - `verify` reports in five strict buckets; UNMEASURED never counts as a pass
24
+ - Roadmap reconciled to the truthful maturity hierarchy; stale
25
+ pre-publication language removed; public tree simplified (operator/process
26
+ scaffolding removed, provenance kept under docs/provenance/)
27
+
28
+ ### Fixed
29
+ - Red CI Skill lint job (root cause: missing `__main__.py` + single-path lint)
30
+ - Tests: 49 → 86
31
+
32
+ ## [Unreleased] — 0.1.0-dev
33
+
34
+ ### Changed
35
+ - 0.1.0-dev — public identity migrated to PIÉNSALO (previously internal
36
+ codename Fable Think); no functional changes.
37
+
38
+ ### Added
39
+ - Cognitive core: 11 operations (`recover_objective` → `deliver`) with a
40
+ bounded execute → inspect → repair → verify lifecycle.
41
+ - Six CLI modes: `think`, `inspect`, `repair`, `verify`, `loop`, `skill`.
42
+ - Portable Agent Skills layer (works in any agent that reads skills; no
43
+ runtime required).
44
+ - Optional runtime: persistent state, bounded loops, model provenance
45
+ recording, measurement hooks.
46
+ - Abstention as a first-class result: `NO REPAIR NEEDED`.
47
+ - Model adapters: manual copy/paste, Claude / Claude Code, OpenAI-compatible,
48
+ Ollama/local, generic command adapter.
49
+ - `piensalo skill scan` (third-party skill vetting) and
50
+ `piensalo doctor` (environment + configuration audit).
51
+ - Evidence discipline: per-capability evidence levels with promotion gates
52
+ (docs/evidence-levels.md), public negative results (NEGATIVE-RESULTS.md).
53
+ - Security defaults: zero telemetry, offline core, no silent model fallback,
54
+ no destructive actions without approval (SECURITY.md, THREAT-MODEL.md).
55
+
56
+ ### Notes
57
+ - Pre-release. Evidence base is young; see README "Limitations" and
58
+ EVIDENCE.md before relying on any capability claim.
@@ -0,0 +1,27 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use Piénsalo in your research, please cite it as below."
3
+ title: "PIÉNSALO"
4
+ type: software
5
+ authors:
6
+ - family-names: "Peña"
7
+ given-names: "Rafael"
8
+ alias: "ralfyishere"
9
+ license: MIT
10
+ repository-code: "https://github.com/ralfyishere/piensalo"
11
+ url: "https://github.com/ralfyishere/piensalo"
12
+ version: 0.1.0-dev
13
+ date-released: "2026-07-12"
14
+ keywords:
15
+ - cognitive architecture
16
+ - AI agents
17
+ - verification
18
+ - self-repair
19
+ - agent skills
20
+ - abstention
21
+ abstract: >-
22
+ Piénsalo is an open cognitive operating system for AI models and agents.
23
+ It separates thinking, inspection, repair, verification, evidence, and
24
+ continuation into distinct operations, supports abstention as a first-class
25
+ result, and attaches an explicit evidence level to every capability claim.
26
+ Piénsalo is an independent open-source project. It is not affiliated with
27
+ or endorsed by Anthropic.