buildlog 0.7.0__py3-none-any.whl → 0.9.0__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.
- buildlog/__init__.py +1 -1
- buildlog/cli.py +659 -48
- buildlog/confidence.py +27 -0
- buildlog/core/__init__.py +2 -0
- buildlog/core/bandit.py +699 -0
- buildlog/core/operations.py +284 -24
- buildlog/distill.py +80 -1
- buildlog/engine/__init__.py +61 -0
- buildlog/engine/bandit.py +23 -0
- buildlog/engine/confidence.py +28 -0
- buildlog/engine/embeddings.py +28 -0
- buildlog/engine/experiments.py +619 -0
- buildlog/engine/types.py +31 -0
- buildlog/llm.py +508 -0
- buildlog/mcp/server.py +10 -6
- buildlog/mcp/tools.py +61 -13
- buildlog/render/__init__.py +19 -2
- buildlog/render/claude_md.py +67 -32
- buildlog/render/continue_dev.py +102 -0
- buildlog/render/copilot.py +100 -0
- buildlog/render/cursor.py +105 -0
- buildlog/render/windsurf.py +95 -0
- buildlog/seed_engine/__init__.py +2 -0
- buildlog/seed_engine/llm_extractor.py +121 -0
- buildlog/seed_engine/pipeline.py +45 -1
- buildlog/skills.py +69 -6
- {buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/copier.yml +0 -4
- buildlog-0.9.0.data/data/share/buildlog/template/buildlog/_TEMPLATE_QUICK.md +21 -0
- buildlog-0.9.0.dist-info/METADATA +248 -0
- buildlog-0.9.0.dist-info/RECORD +55 -0
- buildlog-0.7.0.dist-info/METADATA +0 -544
- buildlog-0.7.0.dist-info/RECORD +0 -41
- {buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/post_gen.py +0 -0
- {buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/.gitkeep +0 -0
- {buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/2026-01-01-example.md +0 -0
- {buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/BUILDLOG_SYSTEM.md +0 -0
- {buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/_TEMPLATE.md +0 -0
- {buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/assets/.gitkeep +0 -0
- {buildlog-0.7.0.dist-info → buildlog-0.9.0.dist-info}/WHEEL +0 -0
- {buildlog-0.7.0.dist-info → buildlog-0.9.0.dist-info}/entry_points.txt +0 -0
- {buildlog-0.7.0.dist-info → buildlog-0.9.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
buildlog/__init__.py,sha256=wxluyg3fDOiaKUAOJa0cav39hwtNJS5Y_0X20uL_yi4,90
|
|
2
|
+
buildlog/cli.py,sha256=CZUG3xYBfdyP47SDyvIgvjcfYDcHfV6ijGAr0B_7t1Y,66683
|
|
3
|
+
buildlog/confidence.py,sha256=jPvN0_3drGHQG1C7iUxUtYjKC62nNKsHHxu6WXMfJFg,10137
|
|
4
|
+
buildlog/distill.py,sha256=PL7UBToBb27BrCOTWGBTDIXGggtrUumHHBs0_MfG6vY,14166
|
|
5
|
+
buildlog/embeddings.py,sha256=vPydWjJVkYp172zFou-lJ737qsu6vRMQAMs143RGIpA,12364
|
|
6
|
+
buildlog/llm.py,sha256=t_3KnJ_eBmrtHaay4owG3EgGbJrVp_T379P0tTuyJf8,16986
|
|
7
|
+
buildlog/seeds.py,sha256=L-lzO7rrDjMdVHcYKvEBm6scVDfCmFD0koiyafMZDLo,8596
|
|
8
|
+
buildlog/skills.py,sha256=3CihyyAFfJh0w0VNXQauNhGm_RM8m_GIO1iiNLNPmsQ,33789
|
|
9
|
+
buildlog/stats.py,sha256=2WdHdmzUNGobtWngmm9nA_UmqM7DQeAnZL8_rLQN8aw,13256
|
|
10
|
+
buildlog/core/__init__.py,sha256=gPd6ava_sei0sYIS4NdeHgCVwJ2wEjyLt-Rxz_11IWU,1626
|
|
11
|
+
buildlog/core/bandit.py,sha256=0z58s42jpQiBgXdjb465apenWdBVTvoc7bDOcnAcPLo,24565
|
|
12
|
+
buildlog/core/operations.py,sha256=cL2w2Lrk7SBwha1aN9_t9WmQwi0OckCpAaGHCXDQztI,70249
|
|
13
|
+
buildlog/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
buildlog/data/seeds/security_karen.yaml,sha256=Hjwp4j6FB-e0vCXp6AkyhAEkwASR4H1owdhPBID740E,8775
|
|
15
|
+
buildlog/data/seeds/test_terrorist.yaml,sha256=-QY2x6d0LrlM6msMYaYwR43Wny9ZybQmU7pH_E7gSB0,11113
|
|
16
|
+
buildlog/engine/__init__.py,sha256=KNTSUZTUHK6r2abAA-2PIb0wUcRgbE4juvBmoywaXHI,1750
|
|
17
|
+
buildlog/engine/bandit.py,sha256=rfwfQjULakzm-H5bMa5R-iqtI7iibgR4y2JoRhD4zRk,485
|
|
18
|
+
buildlog/engine/confidence.py,sha256=7Zhw8bwT_S-qeVaGXT6dHOyjDTvwyhetLKCWhJH9jMc,656
|
|
19
|
+
buildlog/engine/embeddings.py,sha256=78InITcBbaPZ29tUlb4hJNNVZ1fhxstvVa2fYvOh6QA,597
|
|
20
|
+
buildlog/engine/experiments.py,sha256=38f_UsbY4TP3LTGM9yUsZxoXqxUGOxmLCoYrfZqjVks,20041
|
|
21
|
+
buildlog/engine/types.py,sha256=W7U2B4TE79xACV0cuaidKevmTEskxqXfltH5hjIxV5k,734
|
|
22
|
+
buildlog/mcp/__init__.py,sha256=jCLNUkYFrDcPd5dY9xbaaVANl-ZzdPim1BykgGY7f7U,334
|
|
23
|
+
buildlog/mcp/server.py,sha256=IlE-xkW5gaOs5wkgusncRD9ugV70FRB6TKDanIqPaoc,1328
|
|
24
|
+
buildlog/mcp/tools.py,sha256=k1f6R7Dgcx0VIKzTNezkcRc0UVkWXWkk-uGkRq1sIiw,17578
|
|
25
|
+
buildlog/render/__init__.py,sha256=jj-o-vPdqpivdFKK85xskCOT8Zn_2tb3Q5Jb0gWLjAg,2567
|
|
26
|
+
buildlog/render/base.py,sha256=gQfvOsH1zttAo10xtEyNsAbqZ4NRSPiDihO-aiGgTsw,533
|
|
27
|
+
buildlog/render/claude_md.py,sha256=R5z4dHh-3YwclbW3MAzHxgYQHtd5lXS3McJJ1isLGqE,4901
|
|
28
|
+
buildlog/render/continue_dev.py,sha256=S76pGkHssTOEqisiRjKZTfNBRwgiChYeYBR9RKZSgME,3253
|
|
29
|
+
buildlog/render/copilot.py,sha256=8pvXdBWUYnenYIQ5I6L0ukk2JC-NxmNDZrbWQ0kTaqY,3268
|
|
30
|
+
buildlog/render/cursor.py,sha256=tAc0oWJmSXmYzofEzpe1QnkRM-KITTUzHkdSbZXxv4k,3424
|
|
31
|
+
buildlog/render/settings_json.py,sha256=4DS5OWksPrFCa7MIgWIu0t4rxYmItpMdGfTqMX3aMNs,2495
|
|
32
|
+
buildlog/render/skill.py,sha256=_7umIS1Ms1oQ2_PopYueFjX41nMq1p28yJp6DhXFdgU,5981
|
|
33
|
+
buildlog/render/tracking.py,sha256=1y_Mf1s3KblV8TC0W9x2a_ynSJHLwkVZJcW1gs1a6q4,1786
|
|
34
|
+
buildlog/render/windsurf.py,sha256=jfJLb-luQLjdBM38_KKp0mZ08bUSDTBPxSLOIFWxawQ,3047
|
|
35
|
+
buildlog/seed_engine/__init__.py,sha256=QHo59cq-Ar_M6UthSOu_zpfYR1OF2ePu1qWrbgQqLak,1949
|
|
36
|
+
buildlog/seed_engine/categorizers.py,sha256=uzatJQPG4Vf7z7ZAeyQbL-bVJ8cUKBHG-3U93-BFIRQ,4649
|
|
37
|
+
buildlog/seed_engine/extractors.py,sha256=rkztg62LzFH018ob5Tl1eFp_yfPo8syn3Ib4h6bAyK4,4824
|
|
38
|
+
buildlog/seed_engine/generators.py,sha256=T3N3uHg359xSBypIGmvVWYI0Qh8WLlGIFQWX0_gs0I4,4358
|
|
39
|
+
buildlog/seed_engine/llm_extractor.py,sha256=nfTmN4vuEiPQuhiL_2DX1QZ7TZlDR2vxYy0tVrkf2Vc,4124
|
|
40
|
+
buildlog/seed_engine/models.py,sha256=qESSuoF3CJy8pp96E3Vmb38V-snzeaW0Xg0RfbH8v1U,3418
|
|
41
|
+
buildlog/seed_engine/pipeline.py,sha256=cyR2Vf32Hf0PK5DxnaFcq56ygjJIiJWiIkHY4Uz7AS8,8082
|
|
42
|
+
buildlog/seed_engine/sources.py,sha256=8j9oUFZCSKMr5VpIuAxTPY3wTzfTEmw6M_41_aismiE,11184
|
|
43
|
+
buildlog-0.9.0.data/data/share/buildlog/copier.yml,sha256=hD_UcLGB9eDxTGkWjHAvUoiqQKhLC0w3G-kPKX_p43I,802
|
|
44
|
+
buildlog-0.9.0.data/data/share/buildlog/post_gen.py,sha256=XFlo40LuPpAsBhIRRRtHqvU3_5POss4L401hp35ijhw,1744
|
|
45
|
+
buildlog-0.9.0.data/data/share/buildlog/template/buildlog/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
+
buildlog-0.9.0.data/data/share/buildlog/template/buildlog/2026-01-01-example.md,sha256=7x9sKmydfmfKyNz9hV7MtYnQJuBwbxNanbPOcpQDDZQ,7040
|
|
47
|
+
buildlog-0.9.0.data/data/share/buildlog/template/buildlog/BUILDLOG_SYSTEM.md,sha256=osclytWwl5jUiTgSpuT4cT3h3oPvCkZ5GPCnFuJZNcY,3802
|
|
48
|
+
buildlog-0.9.0.data/data/share/buildlog/template/buildlog/_TEMPLATE.md,sha256=CUvxgcx1-9XT_EdQ8e_vnuPq_h-u1uhXJgForJU2Pso,2932
|
|
49
|
+
buildlog-0.9.0.data/data/share/buildlog/template/buildlog/_TEMPLATE_QUICK.md,sha256=eUr5MiqLsM6drV7rAq53R1SLkK8G7LkMAUjWKXx81IA,409
|
|
50
|
+
buildlog-0.9.0.data/data/share/buildlog/template/buildlog/assets/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
buildlog-0.9.0.dist-info/METADATA,sha256=uFrfGNpWCgBW7CYI3w6aUJDSHucCdVFpEoojWnsImA8,11341
|
|
52
|
+
buildlog-0.9.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
53
|
+
buildlog-0.9.0.dist-info/entry_points.txt,sha256=BMFclPOomp_sgaa0OqBg6LfqCMlqzjZV88ww5TrPPoo,87
|
|
54
|
+
buildlog-0.9.0.dist-info/licenses/LICENSE,sha256=fAgt-akug9nAwIj6M-SIf8u3ck-T7pJTwfmy9vWYASk,1074
|
|
55
|
+
buildlog-0.9.0.dist-info/RECORD,,
|
|
@@ -1,544 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: buildlog
|
|
3
|
-
Version: 0.7.0
|
|
4
|
-
Summary: Engineering notebook for AI-assisted development
|
|
5
|
-
Project-URL: Homepage, https://github.com/Peleke/buildlog-template
|
|
6
|
-
Project-URL: Repository, https://github.com/Peleke/buildlog-template
|
|
7
|
-
Author: Peleke Sengstacke
|
|
8
|
-
License-Expression: MIT
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Keywords: ai,buildlog,development,documentation,journal
|
|
11
|
-
Classifier: Development Status :: 4 - Beta
|
|
12
|
-
Classifier: Environment :: Console
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
-
Classifier: Topic :: Documentation
|
|
21
|
-
Classifier: Topic :: Software Development :: Documentation
|
|
22
|
-
Requires-Python: >=3.10
|
|
23
|
-
Requires-Dist: click>=8.0.0
|
|
24
|
-
Requires-Dist: copier>=9.0.0
|
|
25
|
-
Requires-Dist: numpy>=1.21.0
|
|
26
|
-
Requires-Dist: pyyaml>=6.0.0
|
|
27
|
-
Provides-Extra: all
|
|
28
|
-
Requires-Dist: mcp>=1.0.0; extra == 'all'
|
|
29
|
-
Requires-Dist: openai>=1.0.0; extra == 'all'
|
|
30
|
-
Requires-Dist: sentence-transformers>=2.2.0; extra == 'all'
|
|
31
|
-
Provides-Extra: dev
|
|
32
|
-
Requires-Dist: black>=24.0.0; extra == 'dev'
|
|
33
|
-
Requires-Dist: flake8>=7.0.0; extra == 'dev'
|
|
34
|
-
Requires-Dist: isort>=5.13.0; extra == 'dev'
|
|
35
|
-
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
36
|
-
Requires-Dist: pre-commit>=3.6.0; extra == 'dev'
|
|
37
|
-
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
38
|
-
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
39
|
-
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
40
|
-
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
|
41
|
-
Provides-Extra: embeddings
|
|
42
|
-
Requires-Dist: sentence-transformers>=2.2.0; extra == 'embeddings'
|
|
43
|
-
Provides-Extra: mcp
|
|
44
|
-
Requires-Dist: mcp>=1.0.0; extra == 'mcp'
|
|
45
|
-
Provides-Extra: openai
|
|
46
|
-
Requires-Dist: openai>=1.0.0; extra == 'openai'
|
|
47
|
-
Description-Content-Type: text/markdown
|
|
48
|
-
|
|
49
|
-
<div align="center">
|
|
50
|
-
|
|
51
|
-
# buildlog
|
|
52
|
-
|
|
53
|
-
### The Only Agent Learning System You Can Prove Works
|
|
54
|
-
|
|
55
|
-
[](https://pypi.org/project/buildlog/)
|
|
56
|
-
[](https://python.org/)
|
|
57
|
-
[](https://github.com/Peleke/buildlog-template/actions/workflows/ci.yml)
|
|
58
|
-
[](https://opensource.org/licenses/MIT)
|
|
59
|
-
|
|
60
|
-
**Falsifiable claims. Measurable outcomes. No vibes.**
|
|
61
|
-
|
|
62
|
-
<img src="assets/hero-banner-perfectdeliberate.png" alt="buildlog - The Only Agent Learning System You Can Prove Works" width="800"/>
|
|
63
|
-
|
|
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)
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
</div>
|
|
71
|
-
|
|
72
|
-
## The Problem
|
|
73
|
-
|
|
74
|
-
Everyone's building "agent memory." Blog posts announce breakthroughs. Tweets show impressive demos. Products ship with "learning" in the tagline.
|
|
75
|
-
|
|
76
|
-
Ask them one question: **How do you know it works?**
|
|
77
|
-
|
|
78
|
-
You'll get:
|
|
79
|
-
- "It feels smarter"
|
|
80
|
-
- "Users report better results"
|
|
81
|
-
- "The agent remembers things now"
|
|
82
|
-
|
|
83
|
-
That's not evidence. That's vibes.
|
|
84
|
-
|
|
85
|
-
Here's what a real answer looks like:
|
|
86
|
-
|
|
87
|
-
> "We track Repeated Mistake Rate (RMR) across sessions. Our null hypothesis is that the system makes no difference. After 50 sessions, RMR decreased from 34% to 12% (p < 0.01). The effect size is 0.65. Here's the data."
|
|
88
|
-
|
|
89
|
-
If you can't say something like that, you don't have agent learning. You have a demo.
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## The Claim
|
|
94
|
-
|
|
95
|
-
**buildlog** makes a falsifiable claim:
|
|
96
|
-
|
|
97
|
-
> **H₀ (Null Hypothesis):** buildlog makes no measurable difference to agent behavior.
|
|
98
|
-
>
|
|
99
|
-
> **H₁ (Alternative):** Agents using buildlog-learned rules have lower Repeated Mistake Rate than baseline.
|
|
100
|
-
|
|
101
|
-
We provide the infrastructure to **reject or fail to reject** this hypothesis with your own data.
|
|
102
|
-
|
|
103
|
-
If buildlog doesn't work, the numbers will show it. That's the point.
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## The Metric: Repeated Mistake Rate (RMR)
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
RMR = (Mistakes that match previous mistakes) / (Total mistakes logged)
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
A mistake "matches" if it has the same semantic signature—same error class, similar description, same root cause showing up again.
|
|
114
|
-
|
|
115
|
-
**Why RMR?**
|
|
116
|
-
- **Observable**: You can count it
|
|
117
|
-
- **Attributable**: Lower RMR after rule injection = signal
|
|
118
|
-
- **Meaningful**: Repeating mistakes is the actual pain point
|
|
119
|
-
|
|
120
|
-
RMR is not the only metric that matters. But it's one we can measure, and measurement is where science starts.
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## The Mechanism
|
|
125
|
-
|
|
126
|
-
buildlog is building toward **contextual bandits** for automatic rule selection. Here's where we are:
|
|
127
|
-
|
|
128
|
-
### What Exists Today (v0.7)
|
|
129
|
-
|
|
130
|
-
```
|
|
131
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
132
|
-
│ CURRENT INFRASTRUCTURE │
|
|
133
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
134
|
-
│ │
|
|
135
|
-
│ ✅ Rule extraction From entries, reviews, curated seeds │
|
|
136
|
-
│ ✅ Confidence scoring Frequency + recency based │
|
|
137
|
-
│ ✅ Reward logging Accept/reject/revision signals │
|
|
138
|
-
│ ✅ Experiment tracking Sessions, mistakes, RMR calculation │
|
|
139
|
-
│ ✅ Review gauntlet Curated persona-based code review │
|
|
140
|
-
│ ⏳ Manual promotion Human selects rules to surface │
|
|
141
|
-
│ │
|
|
142
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### What's Coming (v0.8+)
|
|
146
|
-
|
|
147
|
-
```
|
|
148
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
149
|
-
│ CONTEXTUAL BANDIT (PLANNED) │
|
|
150
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
151
|
-
│ │
|
|
152
|
-
│ Context (c): Error class, file type, task category │
|
|
153
|
-
│ Arms (a): Candidate rules to surface │
|
|
154
|
-
│ Reward (r): Human feedback (👍 helpful / 👎 not helpful) │
|
|
155
|
-
│ │
|
|
156
|
-
│ Policy π(c) → a: Thompson Sampling with Beta-Bernoulli │
|
|
157
|
-
│ │
|
|
158
|
-
│ Objective: Minimize regret = Σ(r* - r_chosen) │
|
|
159
|
-
│ │
|
|
160
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**Arms** = learned rules (from buildlog entries, code reviews, explicit teaching)
|
|
164
|
-
|
|
165
|
-
**Context** = what kind of problem you're working on
|
|
166
|
-
|
|
167
|
-
**Reward** = did surfacing this rule actually help?
|
|
168
|
-
|
|
169
|
-
The reward infrastructure exists. The bandit policy is next. Thompson Sampling will provide theoretical guarantees: O(√(KT log K)) regret bounds.
|
|
170
|
-
|
|
171
|
-
We're building in public—the bandit implementation will be developed with full documentation of the process.
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## The Pipeline
|
|
176
|
-
|
|
177
|
-
buildlog captures signal at every stage:
|
|
178
|
-
|
|
179
|
-
```mermaid
|
|
180
|
-
flowchart LR
|
|
181
|
-
A["Work Sessions"] --> B["Structured Entries"]
|
|
182
|
-
B --> C["Extracted Rules"]
|
|
183
|
-
C --> D["Manual Promotion"]
|
|
184
|
-
D --> E["Rule Surfaced"]
|
|
185
|
-
E --> F["Human Feedback"]
|
|
186
|
-
F --> G["Reward Logged"]
|
|
187
|
-
G -.-> H["Bandit Policy"]
|
|
188
|
-
H -.-> D
|
|
189
|
-
|
|
190
|
-
style F fill:#ff6b6b,color:#fff
|
|
191
|
-
style G fill:#4ecdc4,color:#fff
|
|
192
|
-
style H fill:#666,color:#fff,stroke-dasharray: 5 5
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
*Dashed: Coming in v0.8 — automatic rule selection via Thompson Sampling*
|
|
196
|
-
|
|
197
|
-
### Stage 1: Capture
|
|
198
|
-
Document your work. Include the fuckups—they're the most valuable signal.
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
buildlog new auth-api
|
|
202
|
-
# Edit the markdown, document what happened
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
### Stage 2: Extract
|
|
206
|
-
Pull structured rules from your entries.
|
|
207
|
-
|
|
208
|
-
```bash
|
|
209
|
-
buildlog distill # Extract patterns
|
|
210
|
-
buildlog skills # Deduplicate into rules
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### Stage 3: Promote
|
|
214
|
-
Surface rules to your agent via CLAUDE.md, settings.json, or Agent Skills.
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
buildlog promote --target skill
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### Stage 4: Measure
|
|
221
|
-
Track what happens when rules are active.
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
buildlog experiment start --error-class "type-errors"
|
|
225
|
-
# ... work session ...
|
|
226
|
-
buildlog experiment log-mistake --error-class "type-errors" \
|
|
227
|
-
--description "Forgot to handle null case"
|
|
228
|
-
buildlog experiment end
|
|
229
|
-
buildlog experiment report
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### Stage 5: Learn
|
|
233
|
-
Log reward signals when rules help (or don't).
|
|
234
|
-
|
|
235
|
-
```python
|
|
236
|
-
# Via MCP
|
|
237
|
-
buildlog_log_reward(
|
|
238
|
-
skill_id="arch-123",
|
|
239
|
-
reward=1, # 1 = helped, 0 = didn't help
|
|
240
|
-
context="type-errors",
|
|
241
|
-
outcome="Caught the bug before commit"
|
|
242
|
-
)
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
## Review Gauntlet
|
|
248
|
-
|
|
249
|
-
Run your code through ruthless reviewer personas, each with curated rules from authoritative sources.
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
# See available reviewers
|
|
253
|
-
buildlog gauntlet list
|
|
254
|
-
|
|
255
|
-
# Output:
|
|
256
|
-
# Review Gauntlet Personas
|
|
257
|
-
# ==================================================
|
|
258
|
-
# security_karen
|
|
259
|
-
# OWASP Top 10 security review
|
|
260
|
-
# Rules: 13 (v1)
|
|
261
|
-
#
|
|
262
|
-
# test_terrorist
|
|
263
|
-
# Comprehensive testing coverage audit
|
|
264
|
-
# Rules: 21 (v1)
|
|
265
|
-
#
|
|
266
|
-
# Total: 2 personas, 34 rules
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### Reviewer Personas
|
|
270
|
-
|
|
271
|
-
| Persona | Focus | Rules |
|
|
272
|
-
|---------|-------|-------|
|
|
273
|
-
| **Security Karen** | OWASP Top 10, auth, injection, secrets | 13 |
|
|
274
|
-
| **Test Terrorist** | Coverage, property-based, metamorphic, contracts | 21 |
|
|
275
|
-
| **Ruthless Reviewer** | Code quality, FP principles | Coming soon |
|
|
276
|
-
|
|
277
|
-
Each rule includes:
|
|
278
|
-
- **Context**: When to apply it
|
|
279
|
-
- **Antipattern**: What violation looks like
|
|
280
|
-
- **Rationale**: Why it matters (with citations)
|
|
281
|
-
|
|
282
|
-
### Usage
|
|
283
|
-
|
|
284
|
-
```bash
|
|
285
|
-
# Generate a review prompt
|
|
286
|
-
buildlog gauntlet prompt src/api.py
|
|
287
|
-
|
|
288
|
-
# Export rules for manual review
|
|
289
|
-
buildlog gauntlet rules --format markdown -o review_checklist.md
|
|
290
|
-
|
|
291
|
-
# After running a review, persist learnings
|
|
292
|
-
buildlog gauntlet learn review_issues.json --source "PR#42"
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
### Gauntlet Loop (Agent Integration)
|
|
296
|
-
|
|
297
|
-
For AI agents, the gauntlet loop automates the fix-rerun cycle:
|
|
298
|
-
|
|
299
|
-
```bash
|
|
300
|
-
buildlog gauntlet loop src/ --persona security_karen --persona test_terrorist
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
The loop provides structured checkpoints:
|
|
304
|
-
|
|
305
|
-
| Severity | Action | Human Needed? |
|
|
306
|
-
|----------|--------|---------------|
|
|
307
|
-
| **Critical** | Agent fixes, reruns | No |
|
|
308
|
-
| **Major** | Checkpoint: continue? | Yes |
|
|
309
|
-
| **Minor** | Accept risk or fix? | Yes |
|
|
310
|
-
| **Clean** | Done | No |
|
|
311
|
-
|
|
312
|
-
MCP tools for agent integration:
|
|
313
|
-
- `buildlog_gauntlet_issues` — Report findings, get next action
|
|
314
|
-
- `buildlog_gauntlet_accept_risk` — Accept remaining issues (optionally create GitHub issues)
|
|
315
|
-
|
|
316
|
-
The gauntlet integrates with the learning loop—issues found become rules that accumulate confidence.
|
|
317
|
-
|
|
318
|
-
---
|
|
319
|
-
|
|
320
|
-
## Experiment Infrastructure
|
|
321
|
-
|
|
322
|
-
buildlog ships with infrastructure to run actual experiments:
|
|
323
|
-
|
|
324
|
-
```bash
|
|
325
|
-
# Start a tracked session
|
|
326
|
-
buildlog experiment start --error-class "api-design"
|
|
327
|
-
|
|
328
|
-
# Log mistakes as they happen
|
|
329
|
-
buildlog experiment log-mistake \
|
|
330
|
-
--error-class "api-design" \
|
|
331
|
-
--description "Returned 200 for error case"
|
|
332
|
-
|
|
333
|
-
# End session
|
|
334
|
-
buildlog experiment end
|
|
335
|
-
|
|
336
|
-
# Get metrics
|
|
337
|
-
buildlog experiment metrics
|
|
338
|
-
|
|
339
|
-
# Full report across all sessions
|
|
340
|
-
buildlog experiment report
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
The report includes:
|
|
344
|
-
- Total sessions, total mistakes
|
|
345
|
-
- Repeat rate (RMR)
|
|
346
|
-
- Mistakes by error class
|
|
347
|
-
- Rules that correlate with corrections
|
|
348
|
-
|
|
349
|
-
This is the data you need to make claims.
|
|
350
|
-
|
|
351
|
-
---
|
|
352
|
-
|
|
353
|
-
## Quick Start
|
|
354
|
-
|
|
355
|
-
```bash
|
|
356
|
-
# Install
|
|
357
|
-
pip install buildlog
|
|
358
|
-
|
|
359
|
-
# Initialize
|
|
360
|
-
buildlog init
|
|
361
|
-
|
|
362
|
-
# Create your first entry
|
|
363
|
-
buildlog new my-feature
|
|
364
|
-
|
|
365
|
-
# After a few entries, extract rules
|
|
366
|
-
buildlog distill
|
|
367
|
-
buildlog skills
|
|
368
|
-
|
|
369
|
-
# Start measuring
|
|
370
|
-
buildlog experiment start
|
|
371
|
-
# ... work ...
|
|
372
|
-
buildlog experiment end
|
|
373
|
-
buildlog experiment report
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
### MCP Server (Claude Code Integration)
|
|
377
|
-
|
|
378
|
-
```bash
|
|
379
|
-
pip install buildlog[mcp]
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
Add to `~/.claude/settings.json`:
|
|
383
|
-
|
|
384
|
-
```json
|
|
385
|
-
{
|
|
386
|
-
"mcpServers": {
|
|
387
|
-
"buildlog": {
|
|
388
|
-
"command": "buildlog-mcp"
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
Available tools:
|
|
395
|
-
| Tool | Purpose |
|
|
396
|
-
|------|---------|
|
|
397
|
-
| `buildlog_status` | View rules by category and confidence |
|
|
398
|
-
| `buildlog_promote` | Surface rules to agent |
|
|
399
|
-
| `buildlog_reject` | Mark false positives |
|
|
400
|
-
| `buildlog_diff` | Rules pending review |
|
|
401
|
-
| `buildlog_learn_from_review` | Extract rules from code review |
|
|
402
|
-
| `buildlog_log_reward` | Record reward signal |
|
|
403
|
-
| `buildlog_start_session` | Begin tracked experiment |
|
|
404
|
-
| `buildlog_log_mistake` | Record mistake during session |
|
|
405
|
-
| `buildlog_experiment_report` | Full experiment report |
|
|
406
|
-
| `buildlog_gauntlet_issues` | Report gauntlet findings, get next action |
|
|
407
|
-
| `buildlog_gauntlet_accept_risk` | Accept remaining issues, optionally create GH issues |
|
|
408
|
-
|
|
409
|
-
### CLI Commands
|
|
410
|
-
|
|
411
|
-
```bash
|
|
412
|
-
buildlog init # Initialize buildlog
|
|
413
|
-
buildlog new <slug> # Create entry
|
|
414
|
-
buildlog list # List entries
|
|
415
|
-
buildlog distill # Extract patterns
|
|
416
|
-
buildlog skills # Generate rules
|
|
417
|
-
buildlog stats # Usage statistics
|
|
418
|
-
buildlog reward <outcome> # Log reward signal
|
|
419
|
-
|
|
420
|
-
# Experiments
|
|
421
|
-
buildlog experiment start # Begin tracked session
|
|
422
|
-
buildlog experiment log-mistake # Record mistake
|
|
423
|
-
buildlog experiment end # End session
|
|
424
|
-
buildlog experiment report # Full report
|
|
425
|
-
|
|
426
|
-
# Review Gauntlet
|
|
427
|
-
buildlog gauntlet list # Show reviewers
|
|
428
|
-
buildlog gauntlet rules # Export rules
|
|
429
|
-
buildlog gauntlet prompt <path> # Generate review prompt
|
|
430
|
-
buildlog gauntlet learn <file> # Persist learnings
|
|
431
|
-
buildlog gauntlet loop <path> # Auto-fix loop with HITL checkpoints
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
---
|
|
435
|
-
|
|
436
|
-
## What This Is Not
|
|
437
|
-
|
|
438
|
-
**This is not AGI.** This is not "agents that truly learn." This is not a revolution.
|
|
439
|
-
|
|
440
|
-
This is:
|
|
441
|
-
- A structured way to capture engineering knowledge
|
|
442
|
-
- A bandit framework for rule selection
|
|
443
|
-
- Infrastructure to measure whether it works
|
|
444
|
-
|
|
445
|
-
Boring? Maybe. But boring things that work beat exciting things that don't.
|
|
446
|
-
|
|
447
|
-
---
|
|
448
|
-
|
|
449
|
-
## The Falsification Protocol
|
|
450
|
-
|
|
451
|
-
Want to test whether buildlog actually helps? Here's the protocol:
|
|
452
|
-
|
|
453
|
-
1. **Baseline**: Run N sessions without buildlog rules active. Log mistakes.
|
|
454
|
-
2. **Treatment**: Run N sessions with buildlog rules active. Log mistakes.
|
|
455
|
-
3. **Compare**: Calculate RMR for both conditions.
|
|
456
|
-
4. **Statistical test**: Two-proportion z-test or chi-squared.
|
|
457
|
-
5. **Report**: Effect size, confidence interval, p-value.
|
|
458
|
-
|
|
459
|
-
If p > 0.05, we fail to reject the null. buildlog didn't help. That's a valid outcome.
|
|
460
|
-
|
|
461
|
-
If p < 0.05, we have evidence of an effect. How big? Check the effect size.
|
|
462
|
-
|
|
463
|
-
This is how you know. Not vibes. Data.
|
|
464
|
-
|
|
465
|
-
---
|
|
466
|
-
|
|
467
|
-
## Theoretical Foundations
|
|
468
|
-
|
|
469
|
-
For the technically curious:
|
|
470
|
-
|
|
471
|
-
| Concept | Application in buildlog | Status |
|
|
472
|
-
|---------|------------------------|--------|
|
|
473
|
-
| **Confidence scoring** | Frequency + recency decay | ✅ Implemented |
|
|
474
|
-
| **Semantic hashing** | Mistake deduplication for RMR | ✅ Implemented |
|
|
475
|
-
| **Reward signals** | Binary feedback infrastructure | ✅ Implemented |
|
|
476
|
-
| **Thompson Sampling** | Rule selection under uncertainty | ⏳ Planned (v0.8) |
|
|
477
|
-
| **Beta-Bernoulli model** | Posterior updates from binary reward | ⏳ Planned (v0.8) |
|
|
478
|
-
| **Contextual bandits** | Context-dependent rule selection | ⏳ Planned (v0.8) |
|
|
479
|
-
| **Regret bounds** | O(√(KT log K)) theoretical guarantee | ⏳ Planned (v0.8) |
|
|
480
|
-
|
|
481
|
-
We're not inventing new math. We're applying proven frameworks to a new domain. The infrastructure for reward collection is live; the bandit policy is the next milestone.
|
|
482
|
-
|
|
483
|
-
---
|
|
484
|
-
|
|
485
|
-
## Honest Limitations
|
|
486
|
-
|
|
487
|
-
### Not Yet Implemented
|
|
488
|
-
|
|
489
|
-
- **Automatic rule selection**: Currently manual promotion; Thompson Sampling bandit planned for v0.8
|
|
490
|
-
- **Context-aware surfacing**: Rules are surfaced globally, not based on task context
|
|
491
|
-
|
|
492
|
-
### Hard Problems We're Working On
|
|
493
|
-
|
|
494
|
-
- **Credit assignment**: When multiple rules are active, which one helped?
|
|
495
|
-
- **Non-stationarity**: Developer skill changes over time
|
|
496
|
-
- **Cold start**: New rules have high uncertainty
|
|
497
|
-
- **Context representation**: What features actually matter?
|
|
498
|
-
|
|
499
|
-
These are hard problems. We have directional ideas, not solutions. If you're a researcher working on bandit algorithms or causal inference, we'd love to talk.
|
|
500
|
-
|
|
501
|
-
---
|
|
502
|
-
|
|
503
|
-
## Philosophy
|
|
504
|
-
|
|
505
|
-
1. **Falsifiability over impressiveness** - If you can't prove it wrong, it's not a claim
|
|
506
|
-
2. **Measurement over intuition** - "Feels better" is not evidence
|
|
507
|
-
3. **Mechanisms over magic** - Explain how it works or admit you don't know
|
|
508
|
-
4. **Boring over exciting** - Proven frameworks beat novel demos
|
|
509
|
-
5. **Honesty over marketing** - State limitations. Invite scrutiny.
|
|
510
|
-
|
|
511
|
-
---
|
|
512
|
-
|
|
513
|
-
## Contributing
|
|
514
|
-
|
|
515
|
-
We're especially interested in:
|
|
516
|
-
- Better context representations for the bandit
|
|
517
|
-
- Credit assignment approaches
|
|
518
|
-
- Statistical methodology improvements
|
|
519
|
-
- Real-world experiment results (positive or negative)
|
|
520
|
-
|
|
521
|
-
```bash
|
|
522
|
-
git clone https://github.com/Peleke/buildlog-template
|
|
523
|
-
cd buildlog-template
|
|
524
|
-
pip install -e ".[dev]"
|
|
525
|
-
pytest
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
---
|
|
529
|
-
|
|
530
|
-
## License
|
|
531
|
-
|
|
532
|
-
MIT License — see [LICENSE](./LICENSE)
|
|
533
|
-
|
|
534
|
-
---
|
|
535
|
-
|
|
536
|
-
<div align="center">
|
|
537
|
-
|
|
538
|
-
**"Agent learning" without measurement is just prompt engineering with extra steps.**
|
|
539
|
-
|
|
540
|
-
**buildlog is measurement.**
|
|
541
|
-
|
|
542
|
-
[Back to top](#buildlog)
|
|
543
|
-
|
|
544
|
-
</div>
|
buildlog-0.7.0.dist-info/RECORD
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
buildlog/__init__.py,sha256=FrgjyZhC19YyB40rOXHJWTA4xKWx2Yn2heIhVraaZ7A,90
|
|
2
|
-
buildlog/cli.py,sha256=8Wxj3KqXd3u9ltv10BT0AOC233v1DMZ6qQAolVKxy_U,46543
|
|
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=L-lzO7rrDjMdVHcYKvEBm6scVDfCmFD0koiyafMZDLo,8596
|
|
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=_FTggRE6SVgtOFQ2ALlyCGkm8YmgyC33zxm0uUsqhro,1578
|
|
10
|
-
buildlog/core/operations.py,sha256=gdRZUC7oecZhYpbqIgxF7k0gpSNv-GLHr9I5pjzzJsA,59842
|
|
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=hZRqY8FHb8V7OZ4Yj0NNT-x6vqqbiDesjMBIVXfoshY,1231
|
|
16
|
-
buildlog/mcp/tools.py,sha256=7Ov_wXoK5lcYpZ16_wzzudorhNgA4qfyB1CSLhDYiws,15915
|
|
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=NVD2YxW9bY1lr5m86ampevJ7B1sGjhdm-o_r2J7yFNQ,3163
|
|
20
|
-
buildlog/render/settings_json.py,sha256=4DS5OWksPrFCa7MIgWIu0t4rxYmItpMdGfTqMX3aMNs,2495
|
|
21
|
-
buildlog/render/skill.py,sha256=_7umIS1Ms1oQ2_PopYueFjX41nMq1p28yJp6DhXFdgU,5981
|
|
22
|
-
buildlog/render/tracking.py,sha256=1y_Mf1s3KblV8TC0W9x2a_ynSJHLwkVZJcW1gs1a6q4,1786
|
|
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.7.0.data/data/share/buildlog/copier.yml,sha256=A-1JKV59kOe0BQosGUBgRCg7iQozP_qyA3zfoHwpBKY,927
|
|
31
|
-
buildlog-0.7.0.data/data/share/buildlog/post_gen.py,sha256=XFlo40LuPpAsBhIRRRtHqvU3_5POss4L401hp35ijhw,1744
|
|
32
|
-
buildlog-0.7.0.data/data/share/buildlog/template/buildlog/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
-
buildlog-0.7.0.data/data/share/buildlog/template/buildlog/2026-01-01-example.md,sha256=7x9sKmydfmfKyNz9hV7MtYnQJuBwbxNanbPOcpQDDZQ,7040
|
|
34
|
-
buildlog-0.7.0.data/data/share/buildlog/template/buildlog/BUILDLOG_SYSTEM.md,sha256=osclytWwl5jUiTgSpuT4cT3h3oPvCkZ5GPCnFuJZNcY,3802
|
|
35
|
-
buildlog-0.7.0.data/data/share/buildlog/template/buildlog/_TEMPLATE.md,sha256=CUvxgcx1-9XT_EdQ8e_vnuPq_h-u1uhXJgForJU2Pso,2932
|
|
36
|
-
buildlog-0.7.0.data/data/share/buildlog/template/buildlog/assets/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
buildlog-0.7.0.dist-info/METADATA,sha256=R_xu6usTJmn2lWctDZnTEa-pDz2qqCvB_U-xNZ9V_Pw,18076
|
|
38
|
-
buildlog-0.7.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
39
|
-
buildlog-0.7.0.dist-info/entry_points.txt,sha256=BMFclPOomp_sgaa0OqBg6LfqCMlqzjZV88ww5TrPPoo,87
|
|
40
|
-
buildlog-0.7.0.dist-info/licenses/LICENSE,sha256=fAgt-akug9nAwIj6M-SIf8u3ck-T7pJTwfmy9vWYASk,1074
|
|
41
|
-
buildlog-0.7.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/BUILDLOG_SYSTEM.md
RENAMED
|
File without changes
|
{buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/_TEMPLATE.md
RENAMED
|
File without changes
|
{buildlog-0.7.0.data → buildlog-0.9.0.data}/data/share/buildlog/template/buildlog/assets/.gitkeep
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|