bumfuzzle 1.2.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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 arc-com
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,7 @@
1
+ Metadata-Version: 2.4
2
+ Name: bumfuzzle
3
+ Version: 1.2.1
4
+ Summary: Project scaffolding and validation
5
+ Requires-Python: >=3.8
6
+ License-File: LICENSE
7
+ Dynamic: license-file
@@ -0,0 +1,160 @@
1
+ <div align="center">
2
+
3
+ # 🦝 Bumfuzzle: Starting Point for Every Project
4
+
5
+ <p align="center">
6
+ <picture>
7
+ <img src="./public/bumfuzzle.png" alt="Bumfuzzle" width="500">
8
+ </picture>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <strong>EXFOLIATE! EXFOLIATE!</strong>
13
+ </p>
14
+
15
+ <p align="center">
16
+ <a href="https://github.com/arc-com/bumfuzzle/actions/workflows/ci.yml?branch=main"><img src="https://img.shields.io/github/actions/workflow/status/arc-com/bumfuzzle/ci.yml?branch=main&style=for-the-badge" alt="CI status"></a>
17
+ <a href="https://github.com/arc-com/bumfuzzle/releases"><img src="https://img.shields.io/github/v/release/arc-com/bumfuzzle?include_prereleases&style=for-the-badge" alt="GitHub release"></a>
18
+ <a href="https://discord.gg/REPLACE_ME"><img src="https://img.shields.io/badge/-Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
19
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/arc-com/bumfuzzle?style=for-the-badge" alt="License"></a>
20
+ </p>
21
+
22
+ <!-- DEMO: replace with asciinema cast or GIF -->
23
+
24
+ </div>
25
+
26
+ ---
27
+
28
+ > [!CAUTION]
29
+ > Now you can bash the soul out of your coding agent.
30
+ > And it will never break a rule again.
31
+
32
+ ---
33
+
34
+ ## Summary
35
+
36
+ - `bumfuzzle` is a single self-contained HTML file served by a lightweight local Python server. It shuts down when you close the tab. Nothing leaves your machine.
37
+ - `bumfuzzle.yml` is the only config file created in your project. One file, all rules.
38
+ - `preflight` only reads, never writes. `kickstart` only creates, never overwrites. They are symmetric: if you declare a file as expected, `kickstart` creates it and `preflight` checks it.
39
+
40
+ ---
41
+
42
+ ## Working with AI coding agents
43
+
44
+ It works perfectly with **Cursor**, **Claude Code**, **Codex**, and many more.
45
+
46
+ Models: Opus 4.8, Sonnet 5, Fable 5, GPT 5.5, GLM 5.2, and many more.
47
+
48
+ When a check fails, preflight prints exactly what broke and how to fix it. The agent reads the hint, resolves the issue, and reruns, in a loop, until the board is clean.
49
+
50
+ ---
51
+
52
+ ## Table of contents
53
+
54
+ - [Features](#features)
55
+ - [Install](#install)
56
+ - [How to use](#how-to-use)
57
+ - [Roadmap](#roadmap)
58
+ - [Comparison](#comparison)
59
+ - [Contributing](#contributing)
60
+
61
+ ---
62
+
63
+ ## Features
64
+
65
+ - **Closes the agentic verification loop:** custom instructions tell the model exactly what to do next.
66
+ - **Extremely fast, ridiculously simple, and lightweight:** zero external dependencies.
67
+ - **Works with any language, any OS, any project:** from a personal website to the Linux kernel.
68
+ - **You pick the rules yourself:** linters, hooks, and virtually anything else.
69
+ - **One config to rule them all:** a single `bumfuzzle.yml` stores every configuration.
70
+ - **One entry point for every check:** the `bumfuzzle` command runs it all.
71
+ - **Visual Wizard:** set up every check you want in seconds.
72
+ - **Zero prod footprint:** Bumfuzzle is never included in your build.
73
+ - **Batteries included:** ships with most of the common presets, so you just pick what you need.
74
+
75
+ ---
76
+
77
+ ## Install
78
+
79
+ ```bash
80
+ # Homebrew
81
+ brew tap arc-com/bumfuzzle
82
+ brew install bumfuzzle
83
+
84
+ # Package managers
85
+ pnpm add -D bumfuzzle
86
+ npm install -D bumfuzzle
87
+ yarn add -D bumfuzzle
88
+
89
+ pip install bumfuzzle
90
+ uv add --dev bumfuzzle
91
+ poetry add --group dev bumfuzzle
92
+
93
+ # From source
94
+ git clone https://github.com/arc-com/bumfuzzle ~/.local/share/bumfuzzle
95
+ bash ~/.local/share/bumfuzzle/install-global.sh
96
+ ```
97
+
98
+ Installing from source adds `kickstart`, `bumfuzzle`, and `preflight` to `~/.local/bin`.
99
+
100
+ ---
101
+
102
+ ## How to use
103
+
104
+ ```bash
105
+ cd my-project
106
+
107
+ # Path A, visual
108
+ bumfuzzle
109
+ # opens web wizard in browser; configure checks, environments, stacks, rules
110
+ # save, writes bumfuzzle.yml to project root
111
+
112
+ # Path B, fast
113
+ kickstart
114
+ # detects project type from manifests; scaffolds files and dirs; writes bumfuzzle.yml
115
+ # edit bumfuzzle.yml directly, or run bumfuzzle to open the wizard later
116
+
117
+ # Every subsequent run
118
+ preflight # run all checks
119
+ preflight --verbose # show passing checks too
120
+ preflight --env prod # scope to one environment
121
+ ```
122
+
123
+ `preflight` also runs automatically on every `git commit` via the pre-commit hook installed by `kickstart`.
124
+
125
+ Manage your rules two ways: run `bumfuzzle` for the visual wizard, or edit `bumfuzzle.yml` directly. `kickstart` is safe to rerun, it never deletes or overwrites. `preflight` is read-only. Both are idempotent.
126
+
127
+ ---
128
+
129
+ ## Roadmap
130
+
131
+ ### Bug fixes
132
+ - [ ] Fix drag-and-drop crash when dropping a rule into an empty group
133
+
134
+ ### Planned improvements
135
+ - [ ] Implement the `kickstart` scaffolding script (auto-detect project type, create config and hooks)
136
+ - [ ] Standardize argument-passing and argument-expectation conventions across shared scripts
137
+ - [ ] Support user-defined arguments in custom `command_checks` scripts
138
+ - [ ] Reduce `bumfuzzle.yml` size by extracting reusable rule sets into importable modules
139
+
140
+ ---
141
+
142
+ ## Comparison
143
+
144
+ How Bumfuzzle compares to other tools in the AI-agent-guardrail space:
145
+
146
+ | | Bumfuzzle | [agentlint](https://github.com/mauhpr/agentlint) | [agent-governance-toolkit](https://github.com/microsoft/agent-governance-toolkit) | [drift-guard](https://dev.to/hwaninet/how-i-built-drift-guard-a-cli-to-stop-ai-agents-from-destroying-your-design-3egc) | Plain `pre-commit` |
147
+ |---|---|---|---|---|---|
148
+ | Enforcement point | Git commit (pre-commit hook) | Real-time, tool-call time | Git commit (hook templates) | Git commit / CLI | Git commit |
149
+ | Config format | Single `bumfuzzle.yml` | Rule packs (JS/JSON config) | Docs + hook templates, no single schema | Zero-config | `.pre-commit-config.yaml` + per-hook config |
150
+ | Structural checks (files, dirs, env drift) | ✅ built-in | Partial (code-quality/security focus) | Governance/process focus, not file structure | Design/UI drift only | Only if you write custom hooks |
151
+ | Visual setup wizard | ✅ | ❌ | ❌ | ❌ | ❌ |
152
+ | Zero prod footprint | ✅ (dev dependency only) | ✅ | ✅ (docs/process, not shipped) | ✅ | ✅ |
153
+
154
+ _Comparisons above reflect public information about these projects as of July 2026 and may not capture every capability. Verify directly with each project before relying on this table._
155
+
156
+ ---
157
+
158
+ ## Contributing
159
+
160
+ Open an issue: [github.com/arc-com/bumfuzzle/issues](https://github.com/arc-com/bumfuzzle/issues)
@@ -0,0 +1 @@
1
+ 1.2.1
@@ -0,0 +1,8 @@
1
+ import os
2
+ import sys
3
+
4
+
5
+ def main() -> None:
6
+ root = os.path.dirname(os.path.abspath(__file__))
7
+ script = os.path.join(root, "bumfuzzle.sh")
8
+ os.execvp("bash", ["bash", script, *sys.argv[1:]])