buildlog 0.9.0__tar.gz → 0.10.1__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 (60) hide show
  1. {buildlog-0.9.0 → buildlog-0.10.1}/PKG-INFO +28 -26
  2. {buildlog-0.9.0 → buildlog-0.10.1}/README.md +26 -23
  3. {buildlog-0.9.0 → buildlog-0.10.1}/post_gen.py +10 -5
  4. {buildlog-0.9.0 → buildlog-0.10.1}/pyproject.toml +4 -6
  5. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/cli.py +304 -26
  6. buildlog-0.10.1/src/buildlog/constants.py +160 -0
  7. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/core/__init__.py +44 -0
  8. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/core/operations.py +1170 -0
  9. buildlog-0.10.1/src/buildlog/data/seeds/bragi.yaml +61 -0
  10. buildlog-0.10.1/src/buildlog/mcp/__init__.py +65 -0
  11. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/mcp/server.py +36 -0
  12. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/mcp/tools.py +526 -12
  13. buildlog-0.10.1/template/buildlog/.gitkeep +0 -0
  14. buildlog-0.10.1/template/buildlog/assets/.gitkeep +0 -0
  15. buildlog-0.9.0/src/buildlog/mcp/__init__.py +0 -17
  16. {buildlog-0.9.0 → buildlog-0.10.1}/.gitignore +0 -0
  17. {buildlog-0.9.0 → buildlog-0.10.1}/LICENSE +0 -0
  18. {buildlog-0.9.0 → buildlog-0.10.1}/copier.yml +0 -0
  19. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/__init__.py +0 -0
  20. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/confidence.py +0 -0
  21. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/core/bandit.py +0 -0
  22. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/data/__init__.py +0 -0
  23. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/data/seeds/security_karen.yaml +0 -0
  24. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/data/seeds/test_terrorist.yaml +0 -0
  25. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/distill.py +0 -0
  26. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/embeddings.py +0 -0
  27. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/engine/__init__.py +0 -0
  28. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/engine/bandit.py +0 -0
  29. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/engine/confidence.py +0 -0
  30. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/engine/embeddings.py +0 -0
  31. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/engine/experiments.py +0 -0
  32. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/engine/types.py +0 -0
  33. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/llm.py +0 -0
  34. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/__init__.py +0 -0
  35. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/base.py +0 -0
  36. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/claude_md.py +0 -0
  37. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/continue_dev.py +0 -0
  38. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/copilot.py +0 -0
  39. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/cursor.py +0 -0
  40. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/settings_json.py +0 -0
  41. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/skill.py +0 -0
  42. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/tracking.py +0 -0
  43. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/render/windsurf.py +0 -0
  44. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/__init__.py +0 -0
  45. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/categorizers.py +0 -0
  46. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/extractors.py +0 -0
  47. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/generators.py +0 -0
  48. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/llm_extractor.py +0 -0
  49. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/models.py +0 -0
  50. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/pipeline.py +0 -0
  51. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seed_engine/sources.py +0 -0
  52. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/seeds.py +0 -0
  53. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/skills.py +0 -0
  54. {buildlog-0.9.0 → buildlog-0.10.1}/src/buildlog/stats.py +0 -0
  55. {buildlog-0.9.0/template/buildlog → buildlog-0.10.1/template/buildlog/.buildlog}/.gitkeep +0 -0
  56. {buildlog-0.9.0/template/buildlog/assets → buildlog-0.10.1/template/buildlog/.buildlog/seeds}/.gitkeep +0 -0
  57. {buildlog-0.9.0 → buildlog-0.10.1}/template/buildlog/2026-01-01-example.md +0 -0
  58. {buildlog-0.9.0 → buildlog-0.10.1}/template/buildlog/BUILDLOG_SYSTEM.md +0 -0
  59. {buildlog-0.9.0 → buildlog-0.10.1}/template/buildlog/_TEMPLATE.md +0 -0
  60. {buildlog-0.9.0 → buildlog-0.10.1}/template/buildlog/_TEMPLATE_QUICK.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: buildlog
3
- Version: 0.9.0
3
+ Version: 0.10.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
@@ -22,12 +22,12 @@ Classifier: Topic :: Software Development :: Documentation
22
22
  Requires-Python: >=3.10
23
23
  Requires-Dist: click>=8.0.0
24
24
  Requires-Dist: copier>=9.0.0
25
+ Requires-Dist: mcp>=1.0.0
25
26
  Requires-Dist: numpy>=1.21.0
26
27
  Requires-Dist: pymupdf>=1.26.7
27
28
  Requires-Dist: pyyaml>=6.0.0
28
29
  Provides-Extra: all
29
30
  Requires-Dist: anthropic>=0.40.0; extra == 'all'
30
- Requires-Dist: mcp>=1.0.0; extra == 'all'
31
31
  Requires-Dist: ollama>=0.4.0; extra == 'all'
32
32
  Requires-Dist: openai>=1.0.0; extra == 'all'
33
33
  Requires-Dist: sentence-transformers>=2.2.0; extra == 'all'
@@ -51,7 +51,6 @@ Provides-Extra: llm
51
51
  Requires-Dist: anthropic>=0.40.0; extra == 'llm'
52
52
  Requires-Dist: ollama>=0.4.0; extra == 'llm'
53
53
  Provides-Extra: mcp
54
- Requires-Dist: mcp>=1.0.0; extra == 'mcp'
55
54
  Provides-Extra: ollama
56
55
  Requires-Dist: ollama>=0.4.0; extra == 'ollama'
57
56
  Provides-Extra: openai
@@ -164,21 +163,34 @@ The roadmap: contextual bandits (now) -> richer policy models -> longer-horizon
164
163
 
165
164
  ## Installation
166
165
 
167
- ### Global install (recommended)
166
+ ### Always-On Mode (recommended)
167
+
168
+ We run buildlog as an **ambient data capture layer** across all projects. One command, works everywhere:
168
169
 
169
170
  ```bash
170
- uv tool install "buildlog[mcp]" # or: pipx install "buildlog[mcp]"
171
+ pipx install buildlog # or: uv tool install buildlog
172
+ buildlog init-mcp --global # registers MCP + writes instructions to ~/.claude/CLAUDE.md
171
173
  ```
172
174
 
173
- This puts `buildlog` and `buildlog-mcp` on your PATH. Works from any directory. The `[mcp]` extra is required for the MCP server.
175
+ That's it. Claude Code now has all 29 buildlog tools **and knows how to use them** in every project you open. No per-project setup needed.
176
+
177
+ The `--global` flag:
178
+ - Registers the MCP server in `~/.claude/settings.json`
179
+ - Creates `~/.claude/CLAUDE.md` with usage instructions so Claude proactively uses buildlog
180
+ - Works immediately in any repo, even without a local `buildlog/` directory
181
+
182
+ This is how we use buildlog ourselves: always on, capturing structured trajectories from every session, feeding downstream systems that generate engineering logs, courses, and content.
183
+
184
+ ### Per-project setup
174
185
 
175
- ### Per-project (virtual environment)
186
+ If you prefer explicit per-project control:
176
187
 
177
188
  ```bash
178
- uv pip install "buildlog[mcp]" # or: pip install "buildlog[mcp]"
189
+ pip install buildlog # MCP server included by default
190
+ buildlog init --defaults # scaffold buildlog/, register MCP, update CLAUDE.md
179
191
  ```
180
192
 
181
- Omit `[mcp]` if you only need the CLI.
193
+ This creates a `buildlog/` directory with templates and configures Claude Code for that specific project.
182
194
 
183
195
  ### For JS/TS projects
184
196
 
@@ -186,30 +198,20 @@ Omit `[mcp]` if you only need the CLI.
186
198
  npx @peleke.s/buildlog init
187
199
  ```
188
200
 
189
- ### MCP server for Claude Code
201
+ ### Verify installation
190
202
 
191
- Add to `~/.claude/claude_code_config.json`:
192
-
193
- ```json
194
- {
195
- "mcpServers": {
196
- "buildlog": {
197
- "command": "buildlog-mcp",
198
- "args": []
199
- }
200
- }
201
- }
203
+ ```bash
204
+ buildlog mcp-test # verify all 29 tools are registered
205
+ buildlog overview # check project state (works without init in global mode)
202
206
  ```
203
207
 
204
- This exposes buildlog tools (seeds, skills, experiments, gauntlet, bandit status) to any Claude Code session.
205
-
206
208
  ## Quick Start
207
209
 
208
210
  ```bash
209
- buildlog init # scaffold a project (run in any repo)
210
- buildlog new my-feature # start a session
211
+ buildlog init --defaults # scaffold + MCP + CLAUDE.md
212
+ buildlog new my-feature # start a session
211
213
  # ... work ...
212
- buildlog distill && buildlog skills
214
+ buildlog commit -m "feat: add auth"
213
215
  buildlog experiment start
214
216
  # ... work across sessions ...
215
217
  buildlog experiment end
@@ -104,21 +104,34 @@ The roadmap: contextual bandits (now) -> richer policy models -> longer-horizon
104
104
 
105
105
  ## Installation
106
106
 
107
- ### Global install (recommended)
107
+ ### Always-On Mode (recommended)
108
+
109
+ We run buildlog as an **ambient data capture layer** across all projects. One command, works everywhere:
108
110
 
109
111
  ```bash
110
- uv tool install "buildlog[mcp]" # or: pipx install "buildlog[mcp]"
112
+ pipx install buildlog # or: uv tool install buildlog
113
+ buildlog init-mcp --global # registers MCP + writes instructions to ~/.claude/CLAUDE.md
111
114
  ```
112
115
 
113
- This puts `buildlog` and `buildlog-mcp` on your PATH. Works from any directory. The `[mcp]` extra is required for the MCP server.
116
+ That's it. Claude Code now has all 29 buildlog tools **and knows how to use them** in every project you open. No per-project setup needed.
117
+
118
+ The `--global` flag:
119
+ - Registers the MCP server in `~/.claude/settings.json`
120
+ - Creates `~/.claude/CLAUDE.md` with usage instructions so Claude proactively uses buildlog
121
+ - Works immediately in any repo, even without a local `buildlog/` directory
122
+
123
+ This is how we use buildlog ourselves: always on, capturing structured trajectories from every session, feeding downstream systems that generate engineering logs, courses, and content.
124
+
125
+ ### Per-project setup
114
126
 
115
- ### Per-project (virtual environment)
127
+ If you prefer explicit per-project control:
116
128
 
117
129
  ```bash
118
- uv pip install "buildlog[mcp]" # or: pip install "buildlog[mcp]"
130
+ pip install buildlog # MCP server included by default
131
+ buildlog init --defaults # scaffold buildlog/, register MCP, update CLAUDE.md
119
132
  ```
120
133
 
121
- Omit `[mcp]` if you only need the CLI.
134
+ This creates a `buildlog/` directory with templates and configures Claude Code for that specific project.
122
135
 
123
136
  ### For JS/TS projects
124
137
 
@@ -126,30 +139,20 @@ Omit `[mcp]` if you only need the CLI.
126
139
  npx @peleke.s/buildlog init
127
140
  ```
128
141
 
129
- ### MCP server for Claude Code
142
+ ### Verify installation
130
143
 
131
- Add to `~/.claude/claude_code_config.json`:
132
-
133
- ```json
134
- {
135
- "mcpServers": {
136
- "buildlog": {
137
- "command": "buildlog-mcp",
138
- "args": []
139
- }
140
- }
141
- }
144
+ ```bash
145
+ buildlog mcp-test # verify all 29 tools are registered
146
+ buildlog overview # check project state (works without init in global mode)
142
147
  ```
143
148
 
144
- This exposes buildlog tools (seeds, skills, experiments, gauntlet, bandit status) to any Claude Code session.
145
-
146
149
  ## Quick Start
147
150
 
148
151
  ```bash
149
- buildlog init # scaffold a project (run in any repo)
150
- buildlog new my-feature # start a session
152
+ buildlog init --defaults # scaffold + MCP + CLAUDE.md
153
+ buildlog new my-feature # start a session
151
154
  # ... work ...
152
- buildlog distill && buildlog skills
155
+ buildlog commit -m "feat: add auth"
153
156
  buildlog experiment start
154
157
  # ... work across sessions ...
155
158
  buildlog experiment end
@@ -3,7 +3,11 @@
3
3
 
4
4
  from pathlib import Path
5
5
 
6
- CLAUDE_MD_SECTION = """
6
+ try:
7
+ from buildlog.constants import CLAUDE_MD_BUILDLOG_SECTION
8
+ except ImportError:
9
+ # Fallback for when buildlog isn't installed (e.g., copier from GitHub)
10
+ CLAUDE_MD_BUILDLOG_SECTION = """
7
11
  ## Build Journal
8
12
 
9
13
  After completing significant work (features, debugging sessions, deployments,
@@ -40,15 +44,16 @@ def main():
40
44
 
41
45
  content = claude_md.read_text()
42
46
 
43
- if "## Build Journal" in content:
44
- print("Build Journal section already exists in CLAUDE.md")
47
+ # Check for either old or new section marker
48
+ if "## buildlog Integration" in content or "## Build Journal" in content:
49
+ print("buildlog section already exists in CLAUDE.md")
45
50
  return
46
51
 
47
52
  # Append to end of file
48
53
  with open(claude_md, "a") as f:
49
- f.write("\n" + CLAUDE_MD_SECTION)
54
+ f.write("\n" + CLAUDE_MD_BUILDLOG_SECTION)
50
55
 
51
- print("Added Build Journal section to CLAUDE.md")
56
+ print("Added buildlog Integration section to CLAUDE.md")
52
57
 
53
58
 
54
59
  if __name__ == "__main__":
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "buildlog"
7
- version = "0.9.0"
7
+ version = "0.10.1"
8
8
  description = "Engineering notebook for AI-assisted development"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -32,6 +32,7 @@ dependencies = [
32
32
  "pyyaml>=6.0.0",
33
33
  "numpy>=1.21.0",
34
34
  "pymupdf>=1.26.7",
35
+ "mcp>=1.0.0",
35
36
  ]
36
37
 
37
38
  [project.optional-dependencies]
@@ -60,15 +61,12 @@ llm = [
60
61
  "ollama>=0.4.0",
61
62
  "anthropic>=0.40.0",
62
63
  ]
63
- # MCP server for Claude Code integration
64
- mcp = [
65
- "mcp>=1.0.0",
66
- ]
64
+ # MCP server for Claude Code integration (now a default dependency, kept for backwards compat)
65
+ mcp = []
67
66
  # All optional features
68
67
  all = [
69
68
  "sentence-transformers>=2.2.0",
70
69
  "openai>=1.0.0",
71
- "mcp>=1.0.0",
72
70
  "ollama>=0.4.0",
73
71
  "anthropic>=0.40.0",
74
72
  ]