buildlog 0.5.0__py3-none-any.whl → 0.6.1__py3-none-any.whl

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 (26) hide show
  1. buildlog/cli.py +391 -3
  2. buildlog/data/__init__.py +0 -0
  3. buildlog/data/seeds/security_karen.yaml +162 -0
  4. buildlog/data/seeds/test_terrorist.yaml +280 -0
  5. buildlog/seed_engine/__init__.py +74 -0
  6. buildlog/seed_engine/categorizers.py +145 -0
  7. buildlog/seed_engine/extractors.py +148 -0
  8. buildlog/seed_engine/generators.py +144 -0
  9. buildlog/seed_engine/models.py +113 -0
  10. buildlog/seed_engine/pipeline.py +202 -0
  11. buildlog/seed_engine/sources.py +362 -0
  12. buildlog/seeds.py +261 -0
  13. buildlog/skills.py +26 -3
  14. {buildlog-0.5.0.dist-info → buildlog-0.6.1.dist-info}/METADATA +82 -11
  15. buildlog-0.6.1.dist-info/RECORD +41 -0
  16. buildlog-0.5.0.dist-info/RECORD +0 -30
  17. {buildlog-0.5.0.data → buildlog-0.6.1.data}/data/share/buildlog/copier.yml +0 -0
  18. {buildlog-0.5.0.data → buildlog-0.6.1.data}/data/share/buildlog/post_gen.py +0 -0
  19. {buildlog-0.5.0.data → buildlog-0.6.1.data}/data/share/buildlog/template/buildlog/.gitkeep +0 -0
  20. {buildlog-0.5.0.data → buildlog-0.6.1.data}/data/share/buildlog/template/buildlog/2026-01-01-example.md +0 -0
  21. {buildlog-0.5.0.data → buildlog-0.6.1.data}/data/share/buildlog/template/buildlog/BUILDLOG_SYSTEM.md +0 -0
  22. {buildlog-0.5.0.data → buildlog-0.6.1.data}/data/share/buildlog/template/buildlog/_TEMPLATE.md +0 -0
  23. {buildlog-0.5.0.data → buildlog-0.6.1.data}/data/share/buildlog/template/buildlog/assets/.gitkeep +0 -0
  24. {buildlog-0.5.0.dist-info → buildlog-0.6.1.dist-info}/WHEEL +0 -0
  25. {buildlog-0.5.0.dist-info → buildlog-0.6.1.dist-info}/entry_points.txt +0 -0
  26. {buildlog-0.5.0.dist-info → buildlog-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: buildlog
3
- Version: 0.5.0
3
+ Version: 0.6.1
4
4
  Summary: Engineering notebook for AI-assisted development
5
5
  Project-URL: Homepage, https://github.com/Peleke/buildlog-template
6
6
  Project-URL: Repository, https://github.com/Peleke/buildlog-template
@@ -48,10 +48,6 @@ Description-Content-Type: text/markdown
48
48
 
49
49
  <div align="center">
50
50
 
51
- > **NOTE:** Forgive the agent dump; edit incoming.
52
- >
53
- > **RE: The art** — Yes, it's AI-generated. Yes, that's hypocritical for a project about rigor over vibes. Now that this is no longer internal, looking for an actual artist to pay for a real logo. If you know someone good, [open an issue](https://github.com/Peleke/buildlog-template/issues) or DM me. Budget exists.
54
-
55
51
  # buildlog
56
52
 
57
53
  ### The Only Agent Learning System You Can Prove Works
@@ -65,7 +61,9 @@ Description-Content-Type: text/markdown
65
61
 
66
62
  <img src="assets/hero-banner-perfectdeliberate.png" alt="buildlog - The Only Agent Learning System You Can Prove Works" width="800"/>
67
63
 
68
- [The Problem](#the-problem) · [The Claim](#the-claim) · [The Mechanism](#the-mechanism) · [Quick Start](#quick-start)
64
+ > **RE: The art** Yes, it's AI-generated. Yes, that's hypocritical for a project about rigor over vibes. Looking for an actual artist to pay for a real logo. If you know someone good, [open an issue](https://github.com/Peleke/buildlog-template/issues) or DM me. Budget exists.
65
+
66
+ [The Problem](#the-problem) · [The Claim](#the-claim) · [The Mechanism](#the-mechanism) · [Quick Start](#quick-start) · [Review Gauntlet](#review-gauntlet)
69
67
 
70
68
  ---
71
69
 
@@ -223,6 +221,58 @@ buildlog_log_reward(
223
221
 
224
222
  ---
225
223
 
224
+ ## Review Gauntlet
225
+
226
+ Run your code through ruthless reviewer personas, each with curated rules from authoritative sources.
227
+
228
+ ```bash
229
+ # See available reviewers
230
+ buildlog gauntlet list
231
+
232
+ # Output:
233
+ # Review Gauntlet Personas
234
+ # ==================================================
235
+ # security_karen
236
+ # OWASP Top 10 security review
237
+ # Rules: 13 (v1)
238
+ #
239
+ # test_terrorist
240
+ # Comprehensive testing coverage audit
241
+ # Rules: 21 (v1)
242
+ #
243
+ # Total: 2 personas, 34 rules
244
+ ```
245
+
246
+ ### Reviewer Personas
247
+
248
+ | Persona | Focus | Rules |
249
+ |---------|-------|-------|
250
+ | **Security Karen** | OWASP Top 10, auth, injection, secrets | 13 |
251
+ | **Test Terrorist** | Coverage, property-based, metamorphic, contracts | 21 |
252
+ | **Ruthless Reviewer** | Code quality, FP principles | Coming soon |
253
+
254
+ Each rule includes:
255
+ - **Context**: When to apply it
256
+ - **Antipattern**: What violation looks like
257
+ - **Rationale**: Why it matters (with citations)
258
+
259
+ ### Usage
260
+
261
+ ```bash
262
+ # Generate a review prompt
263
+ buildlog gauntlet prompt src/api.py
264
+
265
+ # Export rules for manual review
266
+ buildlog gauntlet rules --format markdown -o review_checklist.md
267
+
268
+ # After running a review, persist learnings
269
+ buildlog gauntlet learn review_issues.json --source "PR#42"
270
+ ```
271
+
272
+ The gauntlet integrates with the learning loop—issues found become rules that accumulate confidence.
273
+
274
+ ---
275
+
226
276
  ## Experiment Infrastructure
227
277
 
228
278
  buildlog ships with infrastructure to run actual experiments:
@@ -305,14 +355,35 @@ Available tools:
305
355
  | `buildlog_reject` | Mark false positives |
306
356
  | `buildlog_diff` | Rules pending review |
307
357
  | `buildlog_learn_from_review` | Extract rules from code review |
308
- | `buildlog_log_reward` | Record reward signal for bandit |
309
- | `buildlog_rewards` | View reward history |
310
- | `buildlog_start_session` | Begin tracked experiment session |
311
- | `buildlog_end_session` | End session |
358
+ | `buildlog_log_reward` | Record reward signal |
359
+ | `buildlog_start_session` | Begin tracked experiment |
312
360
  | `buildlog_log_mistake` | Record mistake during session |
313
- | `buildlog_session_metrics` | Get session statistics |
314
361
  | `buildlog_experiment_report` | Full experiment report |
315
362
 
363
+ ### CLI Commands
364
+
365
+ ```bash
366
+ buildlog init # Initialize buildlog
367
+ buildlog new <slug> # Create entry
368
+ buildlog list # List entries
369
+ buildlog distill # Extract patterns
370
+ buildlog skills # Generate rules
371
+ buildlog stats # Usage statistics
372
+ buildlog reward <outcome> # Log reward signal
373
+
374
+ # Experiments
375
+ buildlog experiment start # Begin tracked session
376
+ buildlog experiment log-mistake # Record mistake
377
+ buildlog experiment end # End session
378
+ buildlog experiment report # Full report
379
+
380
+ # Review Gauntlet
381
+ buildlog gauntlet list # Show reviewers
382
+ buildlog gauntlet rules # Export rules
383
+ buildlog gauntlet prompt <path> # Generate review prompt
384
+ buildlog gauntlet learn <file> # Persist learnings
385
+ ```
386
+
316
387
  ---
317
388
 
318
389
  ## What This Is Not
@@ -0,0 +1,41 @@
1
+ buildlog/__init__.py,sha256=FrgjyZhC19YyB40rOXHJWTA4xKWx2Yn2heIhVraaZ7A,90
2
+ buildlog/cli.py,sha256=n6TGdvDgMqI8lLQN2ltoUX08OtimntFU5wwRQlWUaG8,41353
3
+ buildlog/confidence.py,sha256=EOkPxIH1_y7k6B3Hl7Wn0iR2qK_lumvOyyyqUdafXVY,9382
4
+ buildlog/distill.py,sha256=fqXW_YyBFIFhwIWhnR-TQ7U65gypqG-mcAzNBr-qaag,11262
5
+ buildlog/embeddings.py,sha256=vPydWjJVkYp172zFou-lJ737qsu6vRMQAMs143RGIpA,12364
6
+ buildlog/seeds.py,sha256=Q4dxzAlHYRCGy7V2v0NgtqiTGiLQJgv70HEPhFF4Aws,7423
7
+ buildlog/skills.py,sha256=N1LZBCTf3KCjcZGm46r2L_XDlCKj1-vLUn_3YllNH-M,31142
8
+ buildlog/stats.py,sha256=2WdHdmzUNGobtWngmm9nA_UmqM7DQeAnZL8_rLQN8aw,13256
9
+ buildlog/core/__init__.py,sha256=U7FS1CLUfnJ4AHGlgc3-F5KS7bepRMFD7TTvp8vKfQM,1301
10
+ buildlog/core/operations.py,sha256=iXrhBd7cbr9wMgpiIl4Q-7WIQOgQCWBepQibzgoY0Gg,51751
11
+ buildlog/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ buildlog/data/seeds/security_karen.yaml,sha256=Hjwp4j6FB-e0vCXp6AkyhAEkwASR4H1owdhPBID740E,8775
13
+ buildlog/data/seeds/test_terrorist.yaml,sha256=-QY2x6d0LrlM6msMYaYwR43Wny9ZybQmU7pH_E7gSB0,11113
14
+ buildlog/mcp/__init__.py,sha256=jCLNUkYFrDcPd5dY9xbaaVANl-ZzdPim1BykgGY7f7U,334
15
+ buildlog/mcp/server.py,sha256=9AOvweRIQ-BJVbNc7OA6iRQ0lC9OjbUFsCHhU9FvJgk,1064
16
+ buildlog/mcp/tools.py,sha256=Zz_y4IwquSe1jwIb9EFlNO_Xc8GgR8f-OBj-yXdWUKk,12228
17
+ buildlog/render/__init__.py,sha256=VxJWEmcX7pSiC3W-ytsHv9gNVUr4hJrVHBW084kEnAI,1993
18
+ buildlog/render/base.py,sha256=gQfvOsH1zttAo10xtEyNsAbqZ4NRSPiDihO-aiGgTsw,533
19
+ buildlog/render/claude_md.py,sha256=Z_E6MbJyVM_hJSoB4KL2rvbt5UEQHekTpJijj106lsI,2624
20
+ buildlog/render/settings_json.py,sha256=4DS5OWksPrFCa7MIgWIu0t4rxYmItpMdGfTqMX3aMNs,2495
21
+ buildlog/render/skill.py,sha256=_7umIS1Ms1oQ2_PopYueFjX41nMq1p28yJp6DhXFdgU,5981
22
+ buildlog/render/tracking.py,sha256=6O0RIU-1gjVG-_S5dmXLz6RCMsQoHOR2u5___UpqXEo,1294
23
+ buildlog/seed_engine/__init__.py,sha256=f2LYSAs_D1bK4CW_pt54UEmy_SB1u1MOEJlKqM7_R7E,1869
24
+ buildlog/seed_engine/categorizers.py,sha256=uzatJQPG4Vf7z7ZAeyQbL-bVJ8cUKBHG-3U93-BFIRQ,4649
25
+ buildlog/seed_engine/extractors.py,sha256=rkztg62LzFH018ob5Tl1eFp_yfPo8syn3Ib4h6bAyK4,4824
26
+ buildlog/seed_engine/generators.py,sha256=T3N3uHg359xSBypIGmvVWYI0Qh8WLlGIFQWX0_gs0I4,4358
27
+ buildlog/seed_engine/models.py,sha256=qESSuoF3CJy8pp96E3Vmb38V-snzeaW0Xg0RfbH8v1U,3418
28
+ buildlog/seed_engine/pipeline.py,sha256=wLdcjyA_B4wFEb2iKwRCUGkX-oaVu9OXIcmLcEsJN6s,6527
29
+ buildlog/seed_engine/sources.py,sha256=8j9oUFZCSKMr5VpIuAxTPY3wTzfTEmw6M_41_aismiE,11184
30
+ buildlog-0.6.1.data/data/share/buildlog/copier.yml,sha256=A-1JKV59kOe0BQosGUBgRCg7iQozP_qyA3zfoHwpBKY,927
31
+ buildlog-0.6.1.data/data/share/buildlog/post_gen.py,sha256=XFlo40LuPpAsBhIRRRtHqvU3_5POss4L401hp35ijhw,1744
32
+ buildlog-0.6.1.data/data/share/buildlog/template/buildlog/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ buildlog-0.6.1.data/data/share/buildlog/template/buildlog/2026-01-01-example.md,sha256=7x9sKmydfmfKyNz9hV7MtYnQJuBwbxNanbPOcpQDDZQ,7040
34
+ buildlog-0.6.1.data/data/share/buildlog/template/buildlog/BUILDLOG_SYSTEM.md,sha256=osclytWwl5jUiTgSpuT4cT3h3oPvCkZ5GPCnFuJZNcY,3802
35
+ buildlog-0.6.1.data/data/share/buildlog/template/buildlog/_TEMPLATE.md,sha256=CUvxgcx1-9XT_EdQ8e_vnuPq_h-u1uhXJgForJU2Pso,2932
36
+ buildlog-0.6.1.data/data/share/buildlog/template/buildlog/assets/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ buildlog-0.6.1.dist-info/METADATA,sha256=FpP7VH0t9_NY4FlHyg3VtIOcn7a4wNpOr2fGA3HIYQ8,15144
38
+ buildlog-0.6.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
39
+ buildlog-0.6.1.dist-info/entry_points.txt,sha256=BMFclPOomp_sgaa0OqBg6LfqCMlqzjZV88ww5TrPPoo,87
40
+ buildlog-0.6.1.dist-info/licenses/LICENSE,sha256=fAgt-akug9nAwIj6M-SIf8u3ck-T7pJTwfmy9vWYASk,1074
41
+ buildlog-0.6.1.dist-info/RECORD,,
@@ -1,30 +0,0 @@
1
- buildlog/__init__.py,sha256=FrgjyZhC19YyB40rOXHJWTA4xKWx2Yn2heIhVraaZ7A,90
2
- buildlog/cli.py,sha256=UY95mCJNCdN7KRkUJiebSFbVvh0q7hk3eeom0mGhLz0,28433
3
- buildlog/confidence.py,sha256=EOkPxIH1_y7k6B3Hl7Wn0iR2qK_lumvOyyyqUdafXVY,9382
4
- buildlog/distill.py,sha256=fqXW_YyBFIFhwIWhnR-TQ7U65gypqG-mcAzNBr-qaag,11262
5
- buildlog/embeddings.py,sha256=vPydWjJVkYp172zFou-lJ737qsu6vRMQAMs143RGIpA,12364
6
- buildlog/skills.py,sha256=C_tqspj9lVRkjF-g-KpKt8WoQ-Xq0e0l1VtXly_Naks,30055
7
- buildlog/stats.py,sha256=2WdHdmzUNGobtWngmm9nA_UmqM7DQeAnZL8_rLQN8aw,13256
8
- buildlog/core/__init__.py,sha256=U7FS1CLUfnJ4AHGlgc3-F5KS7bepRMFD7TTvp8vKfQM,1301
9
- buildlog/core/operations.py,sha256=iXrhBd7cbr9wMgpiIl4Q-7WIQOgQCWBepQibzgoY0Gg,51751
10
- buildlog/mcp/__init__.py,sha256=jCLNUkYFrDcPd5dY9xbaaVANl-ZzdPim1BykgGY7f7U,334
11
- buildlog/mcp/server.py,sha256=9AOvweRIQ-BJVbNc7OA6iRQ0lC9OjbUFsCHhU9FvJgk,1064
12
- buildlog/mcp/tools.py,sha256=Zz_y4IwquSe1jwIb9EFlNO_Xc8GgR8f-OBj-yXdWUKk,12228
13
- buildlog/render/__init__.py,sha256=VxJWEmcX7pSiC3W-ytsHv9gNVUr4hJrVHBW084kEnAI,1993
14
- buildlog/render/base.py,sha256=gQfvOsH1zttAo10xtEyNsAbqZ4NRSPiDihO-aiGgTsw,533
15
- buildlog/render/claude_md.py,sha256=Z_E6MbJyVM_hJSoB4KL2rvbt5UEQHekTpJijj106lsI,2624
16
- buildlog/render/settings_json.py,sha256=4DS5OWksPrFCa7MIgWIu0t4rxYmItpMdGfTqMX3aMNs,2495
17
- buildlog/render/skill.py,sha256=_7umIS1Ms1oQ2_PopYueFjX41nMq1p28yJp6DhXFdgU,5981
18
- buildlog/render/tracking.py,sha256=6O0RIU-1gjVG-_S5dmXLz6RCMsQoHOR2u5___UpqXEo,1294
19
- buildlog-0.5.0.data/data/share/buildlog/copier.yml,sha256=A-1JKV59kOe0BQosGUBgRCg7iQozP_qyA3zfoHwpBKY,927
20
- buildlog-0.5.0.data/data/share/buildlog/post_gen.py,sha256=XFlo40LuPpAsBhIRRRtHqvU3_5POss4L401hp35ijhw,1744
21
- buildlog-0.5.0.data/data/share/buildlog/template/buildlog/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- buildlog-0.5.0.data/data/share/buildlog/template/buildlog/2026-01-01-example.md,sha256=7x9sKmydfmfKyNz9hV7MtYnQJuBwbxNanbPOcpQDDZQ,7040
23
- buildlog-0.5.0.data/data/share/buildlog/template/buildlog/BUILDLOG_SYSTEM.md,sha256=osclytWwl5jUiTgSpuT4cT3h3oPvCkZ5GPCnFuJZNcY,3802
24
- buildlog-0.5.0.data/data/share/buildlog/template/buildlog/_TEMPLATE.md,sha256=CUvxgcx1-9XT_EdQ8e_vnuPq_h-u1uhXJgForJU2Pso,2932
25
- buildlog-0.5.0.data/data/share/buildlog/template/buildlog/assets/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- buildlog-0.5.0.dist-info/METADATA,sha256=KTL5nTO8ikp5IhtMgCzVO-1KYVXw-iyZ_oo4RVDk2nU,13210
27
- buildlog-0.5.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
28
- buildlog-0.5.0.dist-info/entry_points.txt,sha256=BMFclPOomp_sgaa0OqBg6LfqCMlqzjZV88ww5TrPPoo,87
29
- buildlog-0.5.0.dist-info/licenses/LICENSE,sha256=fAgt-akug9nAwIj6M-SIf8u3ck-T7pJTwfmy9vWYASk,1074
30
- buildlog-0.5.0.dist-info/RECORD,,