buildlog 0.4.0__tar.gz → 0.8.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 (61) hide show
  1. {buildlog-0.4.0 → buildlog-0.8.0}/.gitignore +10 -0
  2. buildlog-0.8.0/PKG-INFO +151 -0
  3. buildlog-0.8.0/README.md +91 -0
  4. {buildlog-0.4.0 → buildlog-0.8.0}/copier.yml +0 -4
  5. {buildlog-0.4.0 → buildlog-0.8.0}/pyproject.toml +29 -1
  6. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/__init__.py +1 -1
  7. buildlog-0.8.0/src/buildlog/cli.py +1813 -0
  8. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/confidence.py +27 -0
  9. buildlog-0.8.0/src/buildlog/core/__init__.py +79 -0
  10. buildlog-0.8.0/src/buildlog/core/bandit.py +699 -0
  11. buildlog-0.8.0/src/buildlog/core/operations.py +2142 -0
  12. buildlog-0.8.0/src/buildlog/data/seeds/security_karen.yaml +162 -0
  13. buildlog-0.8.0/src/buildlog/data/seeds/test_terrorist.yaml +280 -0
  14. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/distill.py +80 -1
  15. buildlog-0.8.0/src/buildlog/engine/__init__.py +61 -0
  16. buildlog-0.8.0/src/buildlog/engine/bandit.py +23 -0
  17. buildlog-0.8.0/src/buildlog/engine/confidence.py +28 -0
  18. buildlog-0.8.0/src/buildlog/engine/embeddings.py +28 -0
  19. buildlog-0.8.0/src/buildlog/engine/experiments.py +619 -0
  20. buildlog-0.8.0/src/buildlog/engine/types.py +31 -0
  21. buildlog-0.8.0/src/buildlog/llm.py +461 -0
  22. buildlog-0.8.0/src/buildlog/mcp/server.py +53 -0
  23. buildlog-0.8.0/src/buildlog/mcp/tools.py +560 -0
  24. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/render/__init__.py +19 -2
  25. buildlog-0.8.0/src/buildlog/render/claude_md.py +133 -0
  26. buildlog-0.8.0/src/buildlog/render/continue_dev.py +102 -0
  27. buildlog-0.4.0/src/buildlog/render/claude_md.py → buildlog-0.8.0/src/buildlog/render/copilot.py +40 -25
  28. buildlog-0.8.0/src/buildlog/render/cursor.py +105 -0
  29. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/render/tracking.py +20 -1
  30. buildlog-0.8.0/src/buildlog/render/windsurf.py +95 -0
  31. buildlog-0.8.0/src/buildlog/seed_engine/__init__.py +74 -0
  32. buildlog-0.8.0/src/buildlog/seed_engine/categorizers.py +145 -0
  33. buildlog-0.8.0/src/buildlog/seed_engine/extractors.py +148 -0
  34. buildlog-0.8.0/src/buildlog/seed_engine/generators.py +144 -0
  35. buildlog-0.8.0/src/buildlog/seed_engine/models.py +113 -0
  36. buildlog-0.8.0/src/buildlog/seed_engine/pipeline.py +202 -0
  37. buildlog-0.8.0/src/buildlog/seed_engine/sources.py +362 -0
  38. buildlog-0.8.0/src/buildlog/seeds.py +302 -0
  39. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/skills.py +95 -9
  40. buildlog-0.8.0/template/buildlog/_TEMPLATE_QUICK.md +21 -0
  41. buildlog-0.8.0/template/buildlog/assets/.gitkeep +0 -0
  42. buildlog-0.4.0/PKG-INFO +0 -894
  43. buildlog-0.4.0/README.md +0 -846
  44. buildlog-0.4.0/src/buildlog/cli.py +0 -460
  45. buildlog-0.4.0/src/buildlog/core/__init__.py +0 -33
  46. buildlog-0.4.0/src/buildlog/core/operations.py +0 -729
  47. buildlog-0.4.0/src/buildlog/mcp/server.py +0 -31
  48. buildlog-0.4.0/src/buildlog/mcp/tools.py +0 -142
  49. {buildlog-0.4.0 → buildlog-0.8.0}/LICENSE +0 -0
  50. {buildlog-0.4.0 → buildlog-0.8.0}/post_gen.py +0 -0
  51. /buildlog-0.4.0/template/buildlog/.gitkeep → /buildlog-0.8.0/src/buildlog/data/__init__.py +0 -0
  52. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/embeddings.py +0 -0
  53. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/mcp/__init__.py +0 -0
  54. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/render/base.py +0 -0
  55. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/render/settings_json.py +0 -0
  56. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/render/skill.py +0 -0
  57. {buildlog-0.4.0 → buildlog-0.8.0}/src/buildlog/stats.py +0 -0
  58. {buildlog-0.4.0/template/buildlog/assets → buildlog-0.8.0/template/buildlog}/.gitkeep +0 -0
  59. {buildlog-0.4.0 → buildlog-0.8.0}/template/buildlog/2026-01-01-example.md +0 -0
  60. {buildlog-0.4.0 → buildlog-0.8.0}/template/buildlog/BUILDLOG_SYSTEM.md +0 -0
  61. {buildlog-0.4.0 → buildlog-0.8.0}/template/buildlog/_TEMPLATE.md +0 -0
@@ -44,3 +44,13 @@ htmlcov/
44
44
 
45
45
  # Build artifacts
46
46
  *.whl
47
+
48
+ # Development artifacts
49
+ CHAT.txt
50
+ results/
51
+ sketches/
52
+
53
+ # buildlog runtime data (in project root, not in src/)
54
+ buildlog/.buildlog/
55
+ buildlog/bandit_state.jsonl
56
+ site/
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.4
2
+ Name: buildlog
3
+ Version: 0.8.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: pymupdf>=1.26.7
27
+ Requires-Dist: pyyaml>=6.0.0
28
+ Provides-Extra: all
29
+ Requires-Dist: anthropic>=0.40.0; extra == 'all'
30
+ Requires-Dist: mcp>=1.0.0; extra == 'all'
31
+ Requires-Dist: ollama>=0.4.0; extra == 'all'
32
+ Requires-Dist: openai>=1.0.0; extra == 'all'
33
+ Requires-Dist: sentence-transformers>=2.2.0; extra == 'all'
34
+ Provides-Extra: anthropic
35
+ Requires-Dist: anthropic>=0.40.0; extra == 'anthropic'
36
+ Provides-Extra: dev
37
+ Requires-Dist: black>=24.0.0; extra == 'dev'
38
+ Requires-Dist: flake8>=7.0.0; extra == 'dev'
39
+ Requires-Dist: isort>=5.13.0; extra == 'dev'
40
+ Requires-Dist: mkdocs-material>=9.5.0; extra == 'dev'
41
+ Requires-Dist: mypy>=1.8.0; extra == 'dev'
42
+ Requires-Dist: pre-commit>=3.6.0; extra == 'dev'
43
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
44
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
45
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
46
+ Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
47
+ Provides-Extra: embeddings
48
+ Requires-Dist: sentence-transformers>=2.2.0; extra == 'embeddings'
49
+ Provides-Extra: engine
50
+ Provides-Extra: llm
51
+ Requires-Dist: anthropic>=0.40.0; extra == 'llm'
52
+ Requires-Dist: ollama>=0.4.0; extra == 'llm'
53
+ Provides-Extra: mcp
54
+ Requires-Dist: mcp>=1.0.0; extra == 'mcp'
55
+ Provides-Extra: ollama
56
+ Requires-Dist: ollama>=0.4.0; extra == 'ollama'
57
+ Provides-Extra: openai
58
+ Requires-Dist: openai>=1.0.0; extra == 'openai'
59
+ Description-Content-Type: text/markdown
60
+
61
+ <div align="center">
62
+
63
+ # buildlog
64
+
65
+ ### The Only Agent Learning System You Can Prove Works
66
+
67
+ [![PyPI](https://img.shields.io/pypi/v/buildlog?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/buildlog/)
68
+ [![Python](https://img.shields.io/pypi/pyversions/buildlog?style=for-the-badge&logo=python&logoColor=white)](https://python.org/)
69
+ [![CI](https://img.shields.io/github/actions/workflow/status/Peleke/buildlog-template/ci.yml?branch=main&style=for-the-badge&logo=github&label=CI)](https://github.com/Peleke/buildlog-template/actions/workflows/ci.yml)
70
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
71
+ [![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue?style=for-the-badge&logo=github)](https://peleke.github.io/buildlog-template/)
72
+
73
+ **Falsifiable claims. Measurable outcomes. No vibes.**
74
+
75
+ <img src="assets/hero-banner-perfectdeliberate.png" alt="buildlog - The Only Agent Learning System You Can Prove Works" width="800"/>
76
+
77
+ > **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.
78
+
79
+ **[Read the full documentation](https://peleke.github.io/buildlog-template/)**
80
+
81
+ </div>
82
+
83
+ ---
84
+
85
+ Everyone's building "agent memory." Blog posts announce breakthroughs. Products ship with "learning" in the tagline. Ask them one question: **How do you know it works?**
86
+
87
+ buildlog gives you the infrastructure to answer with data. It captures engineering knowledge from work sessions, extracts rules, selects which rules to surface using a Thompson Sampling bandit, and measures impact via Repeated Mistake Rate (RMR) across tracked experiments.
88
+
89
+ ## Features
90
+
91
+ - **Structured capture** — Document work sessions as entries with mistakes, decisions, and outcomes
92
+ - **Rule extraction** — Distill and deduplicate patterns into actionable rules
93
+ - **Thompson Sampling bandit** — Automatic rule selection that balances exploration and exploitation
94
+ - **Experiment tracking** — Sessions, mistakes, RMR calculation with statistical rigor
95
+ - **Review gauntlet** — Curated reviewer personas (Security Karen, Test Terrorist) with HITL checkpoints
96
+ - **Multi-agent support** — Render rules to Claude Code, Cursor, GitHub Copilot, Windsurf, Continue.dev
97
+ - **MCP server** — Full Claude Code integration via `buildlog-mcp`
98
+
99
+ ## Quick Start
100
+
101
+ ```bash
102
+ uv pip install buildlog # or: pip install buildlog (inside a venv)
103
+ buildlog init
104
+ buildlog new my-feature
105
+ buildlog distill && buildlog skills
106
+ buildlog experiment start
107
+ # ... work ...
108
+ buildlog experiment end
109
+ buildlog experiment report
110
+ ```
111
+
112
+ ## Documentation
113
+
114
+ | Section | Description |
115
+ |---------|------------|
116
+ | [Installation](https://peleke.github.io/buildlog-template/getting-started/installation/) | Setup, extras, and initialization |
117
+ | [Quick Start](https://peleke.github.io/buildlog-template/getting-started/quick-start/) | Full pipeline walkthrough |
118
+ | [Core Concepts](https://peleke.github.io/buildlog-template/getting-started/concepts/) | The problem, the claim, and the metric |
119
+ | [CLI Reference](https://peleke.github.io/buildlog-template/guides/cli-reference/) | Every command documented |
120
+ | [MCP Integration](https://peleke.github.io/buildlog-template/guides/mcp-integration/) | Claude Code setup and available tools |
121
+ | [Experiments](https://peleke.github.io/buildlog-template/guides/experiments/) | Running and measuring experiments |
122
+ | [Review Gauntlet](https://peleke.github.io/buildlog-template/guides/review-gauntlet/) | Reviewer personas and the gauntlet loop |
123
+ | [Multi-Agent Setup](https://peleke.github.io/buildlog-template/guides/multi-agent/) | Render rules to any AI coding agent |
124
+ | [Theory](https://peleke.github.io/buildlog-template/theory/00-background/) | The math behind Thompson Sampling |
125
+ | [Philosophy](https://peleke.github.io/buildlog-template/philosophy/) | Principles and honest limitations |
126
+
127
+ ## Contributing
128
+
129
+ ```bash
130
+ git clone https://github.com/Peleke/buildlog-template
131
+ cd buildlog-template
132
+ uv venv && source .venv/bin/activate
133
+ uv pip install -e ".[dev]"
134
+ pytest
135
+ ```
136
+
137
+ We're especially interested in better context representations, credit assignment approaches, statistical methodology improvements, and real-world experiment results (positive or negative).
138
+
139
+ ## License
140
+
141
+ MIT License — see [LICENSE](./LICENSE)
142
+
143
+ ---
144
+
145
+ <div align="center">
146
+
147
+ **"Agent learning" without measurement is just prompt engineering with extra steps.**
148
+
149
+ **buildlog is measurement.**
150
+
151
+ </div>
@@ -0,0 +1,91 @@
1
+ <div align="center">
2
+
3
+ # buildlog
4
+
5
+ ### The Only Agent Learning System You Can Prove Works
6
+
7
+ [![PyPI](https://img.shields.io/pypi/v/buildlog?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/buildlog/)
8
+ [![Python](https://img.shields.io/pypi/pyversions/buildlog?style=for-the-badge&logo=python&logoColor=white)](https://python.org/)
9
+ [![CI](https://img.shields.io/github/actions/workflow/status/Peleke/buildlog-template/ci.yml?branch=main&style=for-the-badge&logo=github&label=CI)](https://github.com/Peleke/buildlog-template/actions/workflows/ci.yml)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
11
+ [![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue?style=for-the-badge&logo=github)](https://peleke.github.io/buildlog-template/)
12
+
13
+ **Falsifiable claims. Measurable outcomes. No vibes.**
14
+
15
+ <img src="assets/hero-banner-perfectdeliberate.png" alt="buildlog - The Only Agent Learning System You Can Prove Works" width="800"/>
16
+
17
+ > **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.
18
+
19
+ **[Read the full documentation](https://peleke.github.io/buildlog-template/)**
20
+
21
+ </div>
22
+
23
+ ---
24
+
25
+ Everyone's building "agent memory." Blog posts announce breakthroughs. Products ship with "learning" in the tagline. Ask them one question: **How do you know it works?**
26
+
27
+ buildlog gives you the infrastructure to answer with data. It captures engineering knowledge from work sessions, extracts rules, selects which rules to surface using a Thompson Sampling bandit, and measures impact via Repeated Mistake Rate (RMR) across tracked experiments.
28
+
29
+ ## Features
30
+
31
+ - **Structured capture** — Document work sessions as entries with mistakes, decisions, and outcomes
32
+ - **Rule extraction** — Distill and deduplicate patterns into actionable rules
33
+ - **Thompson Sampling bandit** — Automatic rule selection that balances exploration and exploitation
34
+ - **Experiment tracking** — Sessions, mistakes, RMR calculation with statistical rigor
35
+ - **Review gauntlet** — Curated reviewer personas (Security Karen, Test Terrorist) with HITL checkpoints
36
+ - **Multi-agent support** — Render rules to Claude Code, Cursor, GitHub Copilot, Windsurf, Continue.dev
37
+ - **MCP server** — Full Claude Code integration via `buildlog-mcp`
38
+
39
+ ## Quick Start
40
+
41
+ ```bash
42
+ uv pip install buildlog # or: pip install buildlog (inside a venv)
43
+ buildlog init
44
+ buildlog new my-feature
45
+ buildlog distill && buildlog skills
46
+ buildlog experiment start
47
+ # ... work ...
48
+ buildlog experiment end
49
+ buildlog experiment report
50
+ ```
51
+
52
+ ## Documentation
53
+
54
+ | Section | Description |
55
+ |---------|------------|
56
+ | [Installation](https://peleke.github.io/buildlog-template/getting-started/installation/) | Setup, extras, and initialization |
57
+ | [Quick Start](https://peleke.github.io/buildlog-template/getting-started/quick-start/) | Full pipeline walkthrough |
58
+ | [Core Concepts](https://peleke.github.io/buildlog-template/getting-started/concepts/) | The problem, the claim, and the metric |
59
+ | [CLI Reference](https://peleke.github.io/buildlog-template/guides/cli-reference/) | Every command documented |
60
+ | [MCP Integration](https://peleke.github.io/buildlog-template/guides/mcp-integration/) | Claude Code setup and available tools |
61
+ | [Experiments](https://peleke.github.io/buildlog-template/guides/experiments/) | Running and measuring experiments |
62
+ | [Review Gauntlet](https://peleke.github.io/buildlog-template/guides/review-gauntlet/) | Reviewer personas and the gauntlet loop |
63
+ | [Multi-Agent Setup](https://peleke.github.io/buildlog-template/guides/multi-agent/) | Render rules to any AI coding agent |
64
+ | [Theory](https://peleke.github.io/buildlog-template/theory/00-background/) | The math behind Thompson Sampling |
65
+ | [Philosophy](https://peleke.github.io/buildlog-template/philosophy/) | Principles and honest limitations |
66
+
67
+ ## Contributing
68
+
69
+ ```bash
70
+ git clone https://github.com/Peleke/buildlog-template
71
+ cd buildlog-template
72
+ uv venv && source .venv/bin/activate
73
+ uv pip install -e ".[dev]"
74
+ pytest
75
+ ```
76
+
77
+ We're especially interested in better context representations, credit assignment approaches, statistical methodology improvements, and real-world experiment results (positive or negative).
78
+
79
+ ## License
80
+
81
+ MIT License — see [LICENSE](./LICENSE)
82
+
83
+ ---
84
+
85
+ <div align="center">
86
+
87
+ **"Agent learning" without measurement is just prompt engineering with extra steps.**
88
+
89
+ **buildlog is measurement.**
90
+
91
+ </div>
@@ -20,10 +20,6 @@ update_claude_md:
20
20
  help: Add buildlog instructions to CLAUDE.md if it exists?
21
21
  default: true
22
22
 
23
- # Post-generation tasks
24
- _tasks:
25
- - "{{ 'python3 post_gen.py' if update_claude_md else 'echo Skipping CLAUDE.md update' }}"
26
-
27
23
  _message_after_copy: |
28
24
  Build journal installed!
29
25
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "buildlog"
7
- version = "0.4.0"
7
+ version = "0.8.0"
8
8
  description = "Engineering notebook for AI-assisted development"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -31,9 +31,14 @@ dependencies = [
31
31
  "click>=8.0.0",
32
32
  "pyyaml>=6.0.0",
33
33
  "numpy>=1.21.0",
34
+ "pymupdf>=1.26.7",
34
35
  ]
35
36
 
36
37
  [project.optional-dependencies]
38
+ # Engine-only: bandit, confidence, embeddings, experiment tracking.
39
+ # Zero extra deps — the engine is part of the base package.
40
+ # This extra documents the clean namespace: from buildlog.engine import X
41
+ engine = []
37
42
  # Local embeddings for semantic deduplication (offline)
38
43
  embeddings = [
39
44
  "sentence-transformers>=2.2.0",
@@ -42,6 +47,19 @@ embeddings = [
42
47
  openai = [
43
48
  "openai>=1.0.0",
44
49
  ]
50
+ # Ollama for local LLM-backed extraction
51
+ ollama = [
52
+ "ollama>=0.4.0",
53
+ ]
54
+ # Anthropic Claude for cloud LLM-backed extraction
55
+ anthropic = [
56
+ "anthropic>=0.40.0",
57
+ ]
58
+ # Both LLM providers (convenience)
59
+ llm = [
60
+ "ollama>=0.4.0",
61
+ "anthropic>=0.40.0",
62
+ ]
45
63
  # MCP server for Claude Code integration
46
64
  mcp = [
47
65
  "mcp>=1.0.0",
@@ -51,6 +69,8 @@ all = [
51
69
  "sentence-transformers>=2.2.0",
52
70
  "openai>=1.0.0",
53
71
  "mcp>=1.0.0",
72
+ "ollama>=0.4.0",
73
+ "anthropic>=0.40.0",
54
74
  ]
55
75
  # Development dependencies
56
76
  dev = [
@@ -63,6 +83,7 @@ dev = [
63
83
  "flake8>=7.0.0",
64
84
  "types-PyYAML>=6.0.0",
65
85
  "pre-commit>=3.6.0",
86
+ "mkdocs-material>=9.5.0",
66
87
  ]
67
88
 
68
89
  [project.urls]
@@ -122,3 +143,10 @@ disallow_untyped_defs = false
122
143
  testpaths = ["tests"]
123
144
  python_files = ["test_*.py"]
124
145
  addopts = "-v --tb=short"
146
+
147
+ [dependency-groups]
148
+ dev = [
149
+ "marimo>=0.19.5",
150
+ "matplotlib>=3.10.8",
151
+ "scipy>=1.15.3",
152
+ ]
@@ -1,3 +1,3 @@
1
1
  """buildlog - Engineering notebook for AI-assisted development."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.8.0"