buildbard 1.0.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 (274) hide show
  1. buildbard-1.0.0/.env.example +1 -0
  2. buildbard-1.0.0/.gitattributes +5 -0
  3. buildbard-1.0.0/.githooks/pre-commit +5 -0
  4. buildbard-1.0.0/.githooks/pre-push +5 -0
  5. buildbard-1.0.0/.github/workflows/release.yml +90 -0
  6. buildbard-1.0.0/.gitignore +11 -0
  7. buildbard-1.0.0/AGENTS.md +1 -0
  8. buildbard-1.0.0/CLAUDE.md +34 -0
  9. buildbard-1.0.0/CONTRIBUTING.md +64 -0
  10. buildbard-1.0.0/PKG-INFO +28 -0
  11. buildbard-1.0.0/README.md +19 -0
  12. buildbard-1.0.0/buildbard.af +0 -0
  13. buildbard-1.0.0/buildbard.svg +239 -0
  14. buildbard-1.0.0/docs/00-overview.md +95 -0
  15. buildbard-1.0.0/docs/01-macro-layer.md +106 -0
  16. buildbard-1.0.0/docs/02-meso-layer.md +113 -0
  17. buildbard-1.0.0/docs/03-micro-layer.md +134 -0
  18. buildbard-1.0.0/docs/04-runner-kernel.md +123 -0
  19. buildbard-1.0.0/docs/05-deterministic-operations.md +81 -0
  20. buildbard-1.0.0/docs/06-simplification-notes.md +67 -0
  21. buildbard-1.0.0/docs/07-test-vs-verify.md +71 -0
  22. buildbard-1.0.0/docs/08-phase-flow.md +91 -0
  23. buildbard-1.0.0/docs/09-data-model.md +84 -0
  24. buildbard-1.0.0/docs/10-cli-surface.md +109 -0
  25. buildbard-1.0.0/docs/11-error-taxonomy.md +27 -0
  26. buildbard-1.0.0/docs/12-bootstrap-operations.md +42 -0
  27. buildbard-1.0.0/docs/13-migration-decisions.md +33 -0
  28. buildbard-1.0.0/docs/verification.md +25 -0
  29. buildbard-1.0.0/ledger.jsonl +5 -0
  30. buildbard-1.0.0/mise.toml +123 -0
  31. buildbard-1.0.0/pyproject.toml +33 -0
  32. buildbard-1.0.0/scripts/next_version.py +286 -0
  33. buildbard-1.0.0/scripts/verify/cli +14 -0
  34. buildbard-1.0.0/specs/001-first-epic-scoping/data-model.md +92 -0
  35. buildbard-1.0.0/specs/001-first-epic-scoping/design.md +80 -0
  36. buildbard-1.0.0/specs/001-first-epic-scoping/explore.md +105 -0
  37. buildbard-1.0.0/specs/001-first-epic-scoping/issues/001-001-kernel-fused-boundary.md +71 -0
  38. buildbard-1.0.0/specs/001-first-epic-scoping/issues/001-002-session-explore-core.md +68 -0
  39. buildbard-1.0.0/specs/001-first-epic-scoping/issues/001-003-research-prd-chain.md +68 -0
  40. buildbard-1.0.0/specs/001-first-epic-scoping/issues/001-004-shard-adhoc-cli.md +72 -0
  41. buildbard-1.0.0/specs/001-first-epic-scoping/issues/001-005-explore-determiner-branch.md +78 -0
  42. buildbard-1.0.0/specs/001-first-epic-scoping/prd.md +185 -0
  43. buildbard-1.0.0/specs/002-cli-install-skills/data-model.md +76 -0
  44. buildbard-1.0.0/specs/002-cli-install-skills/design.md +87 -0
  45. buildbard-1.0.0/specs/002-cli-install-skills/explore.md +77 -0
  46. buildbard-1.0.0/specs/002-cli-install-skills/issues/002-001-setup-scaffold.md +64 -0
  47. buildbard-1.0.0/specs/002-cli-install-skills/issues/002-002-governance-safety.md +61 -0
  48. buildbard-1.0.0/specs/002-cli-install-skills/issues/002-003-phase-skills-scaffold.md +71 -0
  49. buildbard-1.0.0/specs/002-cli-install-skills/issues/002-004-git-exclude-scaffold.md +70 -0
  50. buildbard-1.0.0/specs/002-cli-install-skills/issues/002-005-skills-install-path-agents.md +75 -0
  51. buildbard-1.0.0/specs/002-cli-install-skills/issues/002-006-install-full-skill-payloads.md +72 -0
  52. buildbard-1.0.0/specs/002-cli-install-skills/prd.md +106 -0
  53. buildbard-1.0.0/specs/003-meso-specify/data-model.md +63 -0
  54. buildbard-1.0.0/specs/003-meso-specify/design.md +66 -0
  55. buildbard-1.0.0/specs/003-meso-specify/explore.md +79 -0
  56. buildbard-1.0.0/specs/003-meso-specify/issues/003-001-discover-claimable-issue.md +50 -0
  57. buildbard-1.0.0/specs/003-meso-specify/issues/003-002-guarded-worktree-claim.md +51 -0
  58. buildbard-1.0.0/specs/003-meso-specify/issues/003-003-claim-failure-modes.md +47 -0
  59. buildbard-1.0.0/specs/003-meso-specify/issues/003-004-resume-and-post-modes.md +48 -0
  60. buildbard-1.0.0/specs/003-meso-specify/prd.md +57 -0
  61. buildbard-1.0.0/specs/004-tasks-pre-post/data-model.md +46 -0
  62. buildbard-1.0.0/specs/004-tasks-pre-post/design.md +58 -0
  63. buildbard-1.0.0/specs/004-tasks-pre-post/explore.md +79 -0
  64. buildbard-1.0.0/specs/004-tasks-pre-post/issues/004-001-tasks-pre-contract.md +41 -0
  65. buildbard-1.0.0/specs/004-tasks-pre-post/issues/004-002-task-parser.md +36 -0
  66. buildbard-1.0.0/specs/004-tasks-pre-post/issues/004-003-post-validate-seed.md +41 -0
  67. buildbard-1.0.0/specs/004-tasks-pre-post/issues/004-004-post-commit-chain.md +40 -0
  68. buildbard-1.0.0/specs/004-tasks-pre-post/prd.md +49 -0
  69. buildbard-1.0.0/specs/005-converge-merge-meso-gates/data-model.md +43 -0
  70. buildbard-1.0.0/specs/005-converge-merge-meso-gates/design.md +56 -0
  71. buildbard-1.0.0/specs/005-converge-merge-meso-gates/explore.md +82 -0
  72. buildbard-1.0.0/specs/005-converge-merge-meso-gates/issues/005-001-converge-pre-readiness.md +43 -0
  73. buildbard-1.0.0/specs/005-converge-merge-meso-gates/issues/005-002-converge-post-verdict.md +44 -0
  74. buildbard-1.0.0/specs/005-converge-merge-meso-gates/issues/005-003-merge-pre-manifest.md +45 -0
  75. buildbard-1.0.0/specs/005-converge-merge-meso-gates/issues/005-004-merge-post-lifecycle.md +45 -0
  76. buildbard-1.0.0/specs/005-converge-merge-meso-gates/issues/005-005-cli-chain-mounts.md +43 -0
  77. buildbard-1.0.0/specs/005-converge-merge-meso-gates/prd.md +58 -0
  78. buildbard-1.0.0/specs/006-micro-layer-distilled/006-001-dispatcher-ac-injection/plan.md +60 -0
  79. buildbard-1.0.0/specs/006-micro-layer-distilled/006-001-dispatcher-ac-injection/tasks.jsonl +10 -0
  80. buildbard-1.0.0/specs/006-micro-layer-distilled/006-001-dispatcher-ac-injection/tasks.md +59 -0
  81. buildbard-1.0.0/specs/006-micro-layer-distilled/006-002-red-failing-test/plan.md +49 -0
  82. buildbard-1.0.0/specs/006-micro-layer-distilled/006-002-red-failing-test/tasks.jsonl +6 -0
  83. buildbard-1.0.0/specs/006-micro-layer-distilled/006-002-red-failing-test/tasks.md +39 -0
  84. buildbard-1.0.0/specs/006-micro-layer-distilled/006-003-green-guarded-retry/plan.md +48 -0
  85. buildbard-1.0.0/specs/006-micro-layer-distilled/006-004-judge-verdict-routing/plan.md +66 -0
  86. buildbard-1.0.0/specs/006-micro-layer-distilled/006-005-rollback-feedback/plan.md +67 -0
  87. buildbard-1.0.0/specs/006-micro-layer-distilled/006-006-refactor-spy-modes/plan.md +59 -0
  88. buildbard-1.0.0/specs/006-micro-layer-distilled/006-007-run-entry-point/plan.md +39 -0
  89. buildbard-1.0.0/specs/006-micro-layer-distilled/data-model.md +127 -0
  90. buildbard-1.0.0/specs/006-micro-layer-distilled/design.md +80 -0
  91. buildbard-1.0.0/specs/006-micro-layer-distilled/explore.md +91 -0
  92. buildbard-1.0.0/specs/006-micro-layer-distilled/issues/006-001-dispatcher-ac-injection.md +43 -0
  93. buildbard-1.0.0/specs/006-micro-layer-distilled/issues/006-002-red-failing-test.md +41 -0
  94. buildbard-1.0.0/specs/006-micro-layer-distilled/issues/006-003-green-guarded-retry.md +40 -0
  95. buildbard-1.0.0/specs/006-micro-layer-distilled/issues/006-004-judge-verdict-routing.md +42 -0
  96. buildbard-1.0.0/specs/006-micro-layer-distilled/issues/006-005-rollback-feedback.md +43 -0
  97. buildbard-1.0.0/specs/006-micro-layer-distilled/issues/006-006-refactor-spy-modes.md +42 -0
  98. buildbard-1.0.0/specs/006-micro-layer-distilled/issues/006-007-run-entry-point.md +44 -0
  99. buildbard-1.0.0/specs/006-micro-layer-distilled/prd.md +68 -0
  100. buildbard-1.0.0/specs/007-micro-skills-runner/007-001-manual-phase-skills/plan.md +61 -0
  101. buildbard-1.0.0/specs/007-micro-skills-runner/007-002-drain-loop/plan.md +40 -0
  102. buildbard-1.0.0/specs/007-micro-skills-runner/007-003-pi-invocation/plan.md +40 -0
  103. buildbard-1.0.0/specs/007-micro-skills-runner/007-004-shared-core-session/plan.md +49 -0
  104. buildbard-1.0.0/specs/007-micro-skills-runner/007-005-budgets-routing/plan.md +58 -0
  105. buildbard-1.0.0/specs/007-micro-skills-runner/007-006-converge-emission/plan.md +30 -0
  106. buildbard-1.0.0/specs/007-micro-skills-runner/data-model.md +62 -0
  107. buildbard-1.0.0/specs/007-micro-skills-runner/design.md +37 -0
  108. buildbard-1.0.0/specs/007-micro-skills-runner/explore.md +49 -0
  109. buildbard-1.0.0/specs/007-micro-skills-runner/issues/007-001-manual-phase-skills.md +52 -0
  110. buildbard-1.0.0/specs/007-micro-skills-runner/issues/007-002-drain-loop.md +47 -0
  111. buildbard-1.0.0/specs/007-micro-skills-runner/issues/007-003-pi-invocation.md +47 -0
  112. buildbard-1.0.0/specs/007-micro-skills-runner/issues/007-004-shared-core-session.md +48 -0
  113. buildbard-1.0.0/specs/007-micro-skills-runner/issues/007-005-budgets-routing.md +49 -0
  114. buildbard-1.0.0/specs/007-micro-skills-runner/issues/007-006-converge-emission.md +44 -0
  115. buildbard-1.0.0/specs/007-micro-skills-runner/prd.md +67 -0
  116. buildbard-1.0.0/specs/008-bard-run-chain/008-002-prepare-cards/plan.md +51 -0
  117. buildbard-1.0.0/specs/008-bard-run-chain/008-003-drain-tdd/plan.md +57 -0
  118. buildbard-1.0.0/specs/008-bard-run-chain/008-004-converge-bounded/plan.md +48 -0
  119. buildbard-1.0.0/specs/008-bard-run-chain/008-005-halt-malformed/plan.md +52 -0
  120. buildbard-1.0.0/specs/008-bard-run-chain/008-1-resolve-branch/plan.md +50 -0
  121. buildbard-1.0.0/specs/008-bard-run-chain/data-model.md +64 -0
  122. buildbard-1.0.0/specs/008-bard-run-chain/design.md +41 -0
  123. buildbard-1.0.0/specs/008-bard-run-chain/explore.md +50 -0
  124. buildbard-1.0.0/specs/008-bard-run-chain/issues/008-002-prepare-cards.md +36 -0
  125. buildbard-1.0.0/specs/008-bard-run-chain/issues/008-003-drain-tdd.md +38 -0
  126. buildbard-1.0.0/specs/008-bard-run-chain/issues/008-004-converge-bounded.md +37 -0
  127. buildbard-1.0.0/specs/008-bard-run-chain/issues/008-005-halt-malformed/tasks.jsonl +10 -0
  128. buildbard-1.0.0/specs/008-bard-run-chain/issues/008-005-halt-malformed/tasks.md +57 -0
  129. buildbard-1.0.0/specs/008-bard-run-chain/issues/008-005-halt-malformed.md +36 -0
  130. buildbard-1.0.0/specs/008-bard-run-chain/issues/008-1-resolve-branch.md +37 -0
  131. buildbard-1.0.0/specs/008-bard-run-chain/prd.md +56 -0
  132. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/data-model.md +54 -0
  133. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/design.md +41 -0
  134. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/explore.md +52 -0
  135. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/issues/009-001-judge-directives/tasks.jsonl +4 -0
  136. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/issues/009-001-judge-directives/tasks.md +54 -0
  137. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/issues/009-001-judge-directives.md +50 -0
  138. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/issues/009-002-terminal-drain-stop/tasks.jsonl +4 -0
  139. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/issues/009-002-terminal-drain-stop/tasks.md +34 -0
  140. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/issues/009-002-terminal-drain-stop.md +46 -0
  141. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/issues/009-003-chain-wiring.md +49 -0
  142. buildbard-1.0.0/specs/009-deviate-auto-runner-parity/prd.md +46 -0
  143. buildbard-1.0.0/specs/010-judge-bounded-remedy/data-model.md +60 -0
  144. buildbard-1.0.0/specs/010-judge-bounded-remedy/design.md +36 -0
  145. buildbard-1.0.0/specs/010-judge-bounded-remedy/explore.md +48 -0
  146. buildbard-1.0.0/specs/010-judge-bounded-remedy/issues/010-001-judge-rewrites-cards/tasks.jsonl +23 -0
  147. buildbard-1.0.0/specs/010-judge-bounded-remedy/issues/010-001-judge-rewrites-cards/tasks.md +105 -0
  148. buildbard-1.0.0/specs/010-judge-bounded-remedy/issues/010-001-judge-rewrites-cards.md +37 -0
  149. buildbard-1.0.0/specs/010-judge-bounded-remedy/prd.md +41 -0
  150. buildbard-1.0.0/specs/adhoc/ISS-003-converge-merge-skills/plan.md +41 -0
  151. buildbard-1.0.0/specs/adhoc/ISS-003-converge-merge-skills/tasks.jsonl +9 -0
  152. buildbard-1.0.0/specs/adhoc/ISS-003-converge-merge-skills/tasks.md +65 -0
  153. buildbard-1.0.0/specs/adhoc/issues/ISS-001-cli-help-clarity.md +34 -0
  154. buildbard-1.0.0/specs/adhoc/issues/ISS-002-shard-blocked-by-validation.md +29 -0
  155. buildbard-1.0.0/specs/adhoc/issues/ISS-003-converge-merge-skills.md +34 -0
  156. buildbard-1.0.0/specs/adhoc/prd.md +8 -0
  157. buildbard-1.0.0/specs/constitution.md +70 -0
  158. buildbard-1.0.0/specs/explore/cli-help-clarity.md +80 -0
  159. buildbard-1.0.0/specs/explore/constitution-injection.md +78 -0
  160. buildbard-1.0.0/specs/explore/converge-merge-skills.md +79 -0
  161. buildbard-1.0.0/specs/explore/issue-to-tasks-no-worktree-fast-path.md +85 -0
  162. buildbard-1.0.0/specs/issues.jsonl +170 -0
  163. buildbard-1.0.0/src/buildbard/__init__.py +1 -0
  164. buildbard-1.0.0/src/buildbard/cli.py +913 -0
  165. buildbard-1.0.0/src/buildbard/contracts.py +59 -0
  166. buildbard-1.0.0/src/buildbard/data/skills/buildbard-adhoc-SKILL.md +117 -0
  167. buildbard-1.0.0/src/buildbard/data/skills/buildbard-amend-SKILL.md +63 -0
  168. buildbard-1.0.0/src/buildbard/data/skills/buildbard-converge-SKILL.md +21 -0
  169. buildbard-1.0.0/src/buildbard/data/skills/buildbard-explore-SKILL.md +126 -0
  170. buildbard-1.0.0/src/buildbard/data/skills/buildbard-green-SKILL.md +25 -0
  171. buildbard-1.0.0/src/buildbard/data/skills/buildbard-judge-SKILL.md +27 -0
  172. buildbard-1.0.0/src/buildbard/data/skills/buildbard-merge-SKILL.md +19 -0
  173. buildbard-1.0.0/src/buildbard/data/skills/buildbard-prd-SKILL.md +111 -0
  174. buildbard-1.0.0/src/buildbard/data/skills/buildbard-red-SKILL.md +25 -0
  175. buildbard-1.0.0/src/buildbard/data/skills/buildbard-refactor-SKILL.md +24 -0
  176. buildbard-1.0.0/src/buildbard/data/skills/buildbard-research-SKILL.md +104 -0
  177. buildbard-1.0.0/src/buildbard/data/skills/buildbard-shard-SKILL.md +108 -0
  178. buildbard-1.0.0/src/buildbard/data/skills/buildbard-tasks-SKILL.md +129 -0
  179. buildbard-1.0.0/src/buildbard/git.py +226 -0
  180. buildbard-1.0.0/src/buildbard/invoke.py +25 -0
  181. buildbard-1.0.0/src/buildbard/ledgers.py +35 -0
  182. buildbard-1.0.0/src/buildbard/main.py +13 -0
  183. buildbard-1.0.0/src/buildbard/phases/__init__.py +1 -0
  184. buildbard-1.0.0/src/buildbard/phases/adhoc.py +210 -0
  185. buildbard-1.0.0/src/buildbard/phases/converge.py +223 -0
  186. buildbard-1.0.0/src/buildbard/phases/explore.py +114 -0
  187. buildbard-1.0.0/src/buildbard/phases/merge.py +270 -0
  188. buildbard-1.0.0/src/buildbard/phases/micro.py +681 -0
  189. buildbard-1.0.0/src/buildbard/phases/prd.py +156 -0
  190. buildbard-1.0.0/src/buildbard/phases/research.py +209 -0
  191. buildbard-1.0.0/src/buildbard/phases/run.py +127 -0
  192. buildbard-1.0.0/src/buildbard/phases/shard.py +209 -0
  193. buildbard-1.0.0/src/buildbard/phases/specify.py +362 -0
  194. buildbard-1.0.0/src/buildbard/phases/task_parser.py +100 -0
  195. buildbard-1.0.0/src/buildbard/phases/tasks.py +278 -0
  196. buildbard-1.0.0/src/buildbard/session.py +81 -0
  197. buildbard-1.0.0/src/buildbard/validation.py +60 -0
  198. buildbard-1.0.0/tests/integration/.gitkeep +0 -0
  199. buildbard-1.0.0/tests/integration/test_judge_remedy_apply.py +89 -0
  200. buildbard-1.0.0/tests/integration/test_judge_rewrite_cards.py +72 -0
  201. buildbard-1.0.0/tests/unit/.gitkeep +0 -0
  202. buildbard-1.0.0/tests/unit/conftest.py +19 -0
  203. buildbard-1.0.0/tests/unit/test_adhoc_pre.py +180 -0
  204. buildbard-1.0.0/tests/unit/test_cli.py +45 -0
  205. buildbard-1.0.0/tests/unit/test_cli_research_prd.py +95 -0
  206. buildbard-1.0.0/tests/unit/test_cli_run_converge.py +134 -0
  207. buildbard-1.0.0/tests/unit/test_cli_run_halt.py +64 -0
  208. buildbard-1.0.0/tests/unit/test_converge_merge_cli.py +65 -0
  209. buildbard-1.0.0/tests/unit/test_converge_pre.py +73 -0
  210. buildbard-1.0.0/tests/unit/test_explore_determiner.py +158 -0
  211. buildbard-1.0.0/tests/unit/test_explore_pre.py +98 -0
  212. buildbard-1.0.0/tests/unit/test_green_missing_boundary.py +79 -0
  213. buildbard-1.0.0/tests/unit/test_invoke.py +86 -0
  214. buildbard-1.0.0/tests/unit/test_invoke_timeout.py +74 -0
  215. buildbard-1.0.0/tests/unit/test_judge_drain_rewrite.py +65 -0
  216. buildbard-1.0.0/tests/unit/test_kernel_ledger.py +52 -0
  217. buildbard-1.0.0/tests/unit/test_manual_cli.py +135 -0
  218. buildbard-1.0.0/tests/unit/test_manual_skills_judge_refactor.py +43 -0
  219. buildbard-1.0.0/tests/unit/test_manual_skills_red_green.py +35 -0
  220. buildbard-1.0.0/tests/unit/test_merge_post.py +336 -0
  221. buildbard-1.0.0/tests/unit/test_merge_pre.py +104 -0
  222. buildbard-1.0.0/tests/unit/test_micro_bounded_rewrite.py +71 -0
  223. buildbard-1.0.0/tests/unit/test_micro_budget_escalation.py +56 -0
  224. buildbard-1.0.0/tests/unit/test_micro_cli.py +73 -0
  225. buildbard-1.0.0/tests/unit/test_micro_contradiction.py +72 -0
  226. buildbard-1.0.0/tests/unit/test_micro_converge_emission.py +68 -0
  227. buildbard-1.0.0/tests/unit/test_micro_converge_evidence.py +62 -0
  228. buildbard-1.0.0/tests/unit/test_micro_drain.py +164 -0
  229. buildbard-1.0.0/tests/unit/test_micro_drain_cli.py +78 -0
  230. buildbard-1.0.0/tests/unit/test_micro_drain_guard.py +67 -0
  231. buildbard-1.0.0/tests/unit/test_micro_drain_halt.py +60 -0
  232. buildbard-1.0.0/tests/unit/test_micro_drain_retry.py +94 -0
  233. buildbard-1.0.0/tests/unit/test_micro_drain_terminal.py +51 -0
  234. buildbard-1.0.0/tests/unit/test_micro_green.py +113 -0
  235. buildbard-1.0.0/tests/unit/test_micro_judge.py +142 -0
  236. buildbard-1.0.0/tests/unit/test_micro_judge_directives.py +49 -0
  237. buildbard-1.0.0/tests/unit/test_micro_judge_rewrite.py +52 -0
  238. buildbard-1.0.0/tests/unit/test_micro_pre.py +111 -0
  239. buildbard-1.0.0/tests/unit/test_micro_red.py +98 -0
  240. buildbard-1.0.0/tests/unit/test_micro_refactor.py +131 -0
  241. buildbard-1.0.0/tests/unit/test_micro_revert_green_ref.py +48 -0
  242. buildbard-1.0.0/tests/unit/test_micro_rollback.py +222 -0
  243. buildbard-1.0.0/tests/unit/test_micro_shared_entry.py +24 -0
  244. buildbard-1.0.0/tests/unit/test_micro_test_defect.py +65 -0
  245. buildbard-1.0.0/tests/unit/test_next_version.py +58 -0
  246. buildbard-1.0.0/tests/unit/test_prd_pre.py +98 -0
  247. buildbard-1.0.0/tests/unit/test_research_prd.py +200 -0
  248. buildbard-1.0.0/tests/unit/test_research_pre.py +177 -0
  249. buildbard-1.0.0/tests/unit/test_run_converge_loop.py +146 -0
  250. buildbard-1.0.0/tests/unit/test_run_drain_real_cards.py +61 -0
  251. buildbard-1.0.0/tests/unit/test_run_entry.py +37 -0
  252. buildbard-1.0.0/tests/unit/test_run_prepare.py +88 -0
  253. buildbard-1.0.0/tests/unit/test_run_prepare_malformed.py +59 -0
  254. buildbard-1.0.0/tests/unit/test_session_explore.py +225 -0
  255. buildbard-1.0.0/tests/unit/test_session_red_sha.py +59 -0
  256. buildbard-1.0.0/tests/unit/test_setup_amend_skill.py +20 -0
  257. buildbard-1.0.0/tests/unit/test_setup_guards.py +104 -0
  258. buildbard-1.0.0/tests/unit/test_setup_idempotent_exclude.py +65 -0
  259. buildbard-1.0.0/tests/unit/test_setup_payloads.py +110 -0
  260. buildbard-1.0.0/tests/unit/test_setup_safety.py +182 -0
  261. buildbard-1.0.0/tests/unit/test_setup_scaffold.py +374 -0
  262. buildbard-1.0.0/tests/unit/test_shard_adhoc_cli.py +752 -0
  263. buildbard-1.0.0/tests/unit/test_shard_pre.py +175 -0
  264. buildbard-1.0.0/tests/unit/test_spec_v2.py +202 -0
  265. buildbard-1.0.0/tests/unit/test_specify_cli_output.py +72 -0
  266. buildbard-1.0.0/tests/unit/test_specify_resume_post.py +237 -0
  267. buildbard-1.0.0/tests/unit/test_task_parser.py +93 -0
  268. buildbard-1.0.0/tests/unit/test_tasks_active_reuse.py +155 -0
  269. buildbard-1.0.0/tests/unit/test_tasks_cli_post.py +116 -0
  270. buildbard-1.0.0/tests/unit/test_tasks_issue_ledger.py +82 -0
  271. buildbard-1.0.0/tests/unit/test_tasks_post_contract_shape.py +69 -0
  272. buildbard-1.0.0/tests/unit/test_tasks_post_seed.py +180 -0
  273. buildbard-1.0.0/tests/unit/test_tasks_pre.py +158 -0
  274. buildbard-1.0.0/uv.lock +183 -0
@@ -0,0 +1 @@
1
+ # no secrets required yet
@@ -0,0 +1,5 @@
1
+ # DeviaTDD append-only JSONL ledgers: union-merge so concurrent
2
+ # appends never conflict at branch-merge time.
3
+ # See specs/constitution.md §1 Append-Only Ledger Protocol.
4
+ specs/issues.jsonl merge=union
5
+ specs/**/tasks.jsonl merge=union
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+ # Checked-in hook; enable with `mise run setup-hooks`.
3
+ # Constitution section 3: pre-commit runs format-check plus lint on staged files.
4
+ set -e
5
+ mise run pre-commit-staged
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+ # Checked-in hook; enable with `mise run setup-hooks`.
3
+ # Constitution section 3: pre-push runs unit only.
4
+ set -e
5
+ mise run pre-push
@@ -0,0 +1,90 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ bump:
7
+ description: SemVer bump (auto from gitmoji conventional commits, or explicit)
8
+ required: false
9
+ default: auto
10
+ type: choice
11
+ options:
12
+ - auto
13
+ - patch
14
+ - minor
15
+ - major
16
+ dry_run:
17
+ description: Print the computed version and skip commit, tag, and release
18
+ required: false
19
+ default: false
20
+ type: boolean
21
+
22
+ permissions:
23
+ contents: write
24
+ id-token: write
25
+
26
+ jobs:
27
+ release:
28
+ name: Cut and release
29
+ runs-on: ubuntu-latest
30
+ steps:
31
+ - name: Refuse non-default branch unless dry_run
32
+ if: ${{ github.ref_name != github.event.repository.default_branch && inputs.dry_run != true }}
33
+ run: |
34
+ echo "Refusing to release from '${GITHUB_REF_NAME}'."
35
+ echo "Default branch is '${{ github.event.repository.default_branch }}'."
36
+ echo "Re-run with dry_run=true to preview, or run from the default branch."
37
+ exit 1
38
+
39
+ - uses: actions/checkout@v4
40
+ with:
41
+ fetch-depth: 0
42
+ ref: ${{ github.ref }}
43
+
44
+ - name: Install uv
45
+ uses: astral-sh/setup-uv@v6
46
+ with:
47
+ python-version: "3.13"
48
+
49
+ - name: Compute next version
50
+ id: version
51
+ run: |
52
+ set -euo pipefail
53
+ VERSION="$(uv run --no-project python scripts/next_version.py --bump "${{ inputs.bump }}")"
54
+ echo "version=${VERSION}" >> "${GITHUB_OUTPUT}"
55
+ echo "Computed next version: ${VERSION}"
56
+
57
+ - name: Dry run complete
58
+ if: ${{ inputs.dry_run == true }}
59
+ run: |
60
+ echo "dry_run=true — skipping commit, tag, and release for ${{ steps.version.outputs.version }}"
61
+
62
+ - name: Apply version bump
63
+ if: ${{ inputs.dry_run != true }}
64
+ run: |
65
+ set -euo pipefail
66
+ uv run --no-project python scripts/next_version.py --bump "${{ inputs.bump }}" --write
67
+
68
+ - name: Commit, tag, and push
69
+ if: ${{ inputs.dry_run != true }}
70
+ run: |
71
+ set -euo pipefail
72
+ VERSION="${{ steps.version.outputs.version }}"
73
+ git config user.name "github-actions[bot]"
74
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
75
+ git add pyproject.toml uv.lock
76
+ git commit -m "🔧 chore(release): version ${VERSION}"
77
+ git tag "v${VERSION}"
78
+ git push origin "HEAD:${GITHUB_REF_NAME}"
79
+ git push origin "v${VERSION}"
80
+
81
+ - name: Create GitHub Release and publish to PyPI
82
+ if: ${{ inputs.dry_run != true }}
83
+ env:
84
+ GH_TOKEN: ${{ github.token }}
85
+ run: |
86
+ set -euo pipefail
87
+ VERSION="${{ steps.version.outputs.version }}"
88
+ gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
89
+ uv build
90
+ uv publish --trusted-publishing always
@@ -0,0 +1,11 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ .venv/
4
+ .ruff_cache/
5
+ .pytest_cache/
6
+ .mypy_cache/
7
+ dist/
8
+ build/
9
+ *.egg-info/
10
+ .env
11
+ .deviate/handovers/
@@ -0,0 +1 @@
1
+ CLAUDE.md
@@ -0,0 +1,34 @@
1
+ # Vision source of truth: `docs/` (start at `docs/00-overview.md`). Consult it when behavior, scope, or design intent is unclear.
2
+ # Bard skills source of truth: `src/buildbard/data/skills/*-SKILL.md`. Never read installed copies in `.agents/skills/` — they are generated output.
3
+
4
+ ## ⚡ DeviaTDD Verification and Mise Tasks
5
+
6
+ Use `mise run <task>`:
7
+
8
+ | Task | Purpose |
9
+ |------|---------|
10
+ | `mise run test` | Unit tests by default |
11
+
12
+ | `mise run test:unit` | Unit tests only |
13
+ | `mise run test:integration` | Unit plus integration tests |
14
+ | `mise run test:e2e` | Unit plus integration plus E2E tests |
15
+ | `mise run doctor` | Readiness |
16
+ | `mise run doctor:unit` | Unit readiness |
17
+ | `mise run doctor:integration` | Unit+integration readiness |
18
+ | `mise run doctor:e2e` | Unit+integration+E2E readiness |
19
+
20
+ Targeted testing: `mise run test:one -- <file> [-k <name>]`. Behavior checks: `mise run verify` (see `docs/verification.md`).
21
+ Before completion, run the matching `test:*` layer task.
22
+
23
+ Unit tests must not require external services.
24
+ Unit tests never invoke the git binary: stub git seams
25
+ (`commit_post`, `_clean_head`, `_commit_drop`, `_issue_files`,
26
+ `_current_branch`) or pre-create `.git` to skip `git init`.
27
+ `tests/unit/conftest.py` fails any test that shells out to git.
28
+ Put service-dependent checks in integration tests.
29
+ Integration tests may use git only inside an isolated sandbox
30
+ (fresh `tmp_path` repo, never the working checkout).
31
+
32
+ ## Commit convention
33
+
34
+ Before any commit, read CONTRIBUTING.md and apply its gitmoji + Conventional Commits rules.
@@ -0,0 +1,64 @@
1
+ # Contributing
2
+
3
+ ## Commit message convention
4
+
5
+ This repo uses [Conventional Commits 1.0](https://www.conventionalcommits.org/)
6
+ with an [emoji prefix](https://gitmoji.dev/) for visual scannability.
7
+
8
+ ### Format
9
+
10
+ ```
11
+ <emoji> <type>[(<scope>)][!]: <subject>
12
+
13
+ <body — explain WHY, wrap at 72 chars/line>
14
+
15
+ <footer — BREAKING CHANGE: …, Refs: #123, etc.>
16
+ ```
17
+
18
+ ### Type → emoji
19
+
20
+ | Type | Emoji | Meaning |
21
+ | ---------- | ----- | ------------------------------------------------ |
22
+ | `feat` | ✨ | New user-visible feature |
23
+ | `fix` | 🐛 | Bug fix |
24
+ | `docs` | 📚 | Documentation only |
25
+ | `style` | 🎨 | Formatting/whitespace (no logic change) |
26
+ | `refactor` | ♻️ | Code change with no behavior change |
27
+ | `perf` | 🚀 | Performance improvement |
28
+ | `test` | ✅ | Tests added or corrected |
29
+ | `build` | 📦 | Build system or dependency change |
30
+ | `ci` | 👷 | CI configuration or scripts |
31
+ | `chore` | 🔧 | Tooling, maintenance, non-source tasks |
32
+ | `revert` | ⏪ | Revert a prior commit |
33
+ | breaking | 💥 | Backward-incompatible (use `type!:` + footer) |
34
+ | security | 🔒 | Security hardening (treat as `fix`) |
35
+
36
+ ### Rules
37
+
38
+ - One logical change per commit. Split unrelated changes.
39
+ - **Subject**: imperative, lowercase after the colon, no trailing period, ≤ 50 chars.
40
+ - **Scope** *(optional)*: short noun — `pi`, `omp`, `chezmoi`, `agents`, `claude`, etc.
41
+ - **Breaking changes**: append `!` after the type/scope **and** add a `BREAKING CHANGE: <explanation>` footer.
42
+ - **Body** *(optional)*: explain *why*, not *what*. Wrap at 72 chars/line.
43
+ - **Footer** *(optional)*: `BREAKING CHANGE: …`, `Refs: #123`, etc.
44
+
45
+ ### Examples
46
+
47
+ ```text
48
+ ✨ feat(pi): add commit-convention lookup in commit skill
49
+ 🐛 fix(omp): handle null theme on first launch
50
+ 📚 docs(agents): document codebase-index toolchain
51
+ ♻️ refactor(opencode): rename footer file for clarity
52
+ 🚀 perf(pi): skip jq on small contracts
53
+ ✅ test(commit): cover conventional+emoji prefix parsing
54
+ 💥 feat(api)!: drop legacy v1 endpoints
55
+ 🔒 fix(pi): mask sensitive paths in error messages
56
+ ```
57
+
58
+ ### Why
59
+
60
+ - **Conventional types** let tooling (release-please, commitlint, semantic-release)
61
+ derive versions and changelogs automatically from the log.
62
+ - **Emoji prefixes** make `git log --oneline` scannable — the type cue lands
63
+ before your eye reaches the prose.
64
+ - **Scope** keeps the diff domain explicit in monorepos like this one.
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.5
2
+ Name: buildbard
3
+ Version: 1.0.0
4
+ Summary: Buildbard CLI — spec-driven TDD orchestrator (deviatdd rewrite)
5
+ Requires-Python: >=3.13
6
+ Requires-Dist: rich>=13.0
7
+ Requires-Dist: typer>=0.12
8
+ Description-Content-Type: text/markdown
9
+
10
+ ![buildbard](buildbard.svg)
11
+
12
+ # buildbard
13
+
14
+ Spec-driven TDD orchestrator. Python CLI (`buildbard` / `bard`).
15
+
16
+ ## Setup
17
+
18
+ ```sh
19
+ mise run setup
20
+ ```
21
+
22
+ ## Use
23
+
24
+ ```sh
25
+ mise run dev # CLI help
26
+ mise run check # lint + format-check
27
+ mise run test # unit tests
28
+ ```
@@ -0,0 +1,19 @@
1
+ ![buildbard](buildbard.svg)
2
+
3
+ # buildbard
4
+
5
+ Spec-driven TDD orchestrator. Python CLI (`buildbard` / `bard`).
6
+
7
+ ## Setup
8
+
9
+ ```sh
10
+ mise run setup
11
+ ```
12
+
13
+ ## Use
14
+
15
+ ```sh
16
+ mise run dev # CLI help
17
+ mise run check # lint + format-check
18
+ mise run test # unit tests
19
+ ```
Binary file