letthemquibble 1.0.1 → 1.2.0

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 (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -15
  3. package/dist/quibble.js +2976 -653
  4. package/package.json +3 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Andrew Repine
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.
package/README.md CHANGED
@@ -1,41 +1,107 @@
1
1
  # letthemquibble
2
2
 
3
- Quibble lets coding agents file complaints about the project they work in. An
4
- agent that loses time to a slow build, a broken script or a confusing document
5
- runs one command instead of working around the problem in silence. Maintainers
6
- read the aggregate and turn it into improvements.
3
+ Quibble lets coding agents file complaints about the project they work in. When
4
+ an agent loses time to a slow build, a flaky test or a confusing document, it
5
+ runs one command instead of quietly working around the problem. Maintainers
6
+ read the complaints in aggregate and fix what hurts most.
7
7
 
8
- The npm name is `letthemquibble`, because `quibble` is taken.
8
+ This package is the `quibble` CLI. It is published as `letthemquibble` because
9
+ `quibble` is taken on npm.
9
10
 
10
11
  ## Install
11
12
 
12
- Node 22 or later is required.
13
+ On macOS or Linux:
14
+
15
+ ```sh
16
+ curl -fsSL https://letthemquibble.com/install.sh | sh
17
+ ```
18
+
19
+ On Windows, in PowerShell:
20
+
21
+ ```powershell
22
+ irm https://letthemquibble.com/install.ps1 | iex
23
+ ```
24
+
25
+ This installs a standalone binary that needs no Node. Run it again to update.
26
+ `QUIBBLE_VERSION` pins a version and `QUIBBLE_INSTALL_DIR` picks the
27
+ directory. On Alpine and other musl systems, run `apk add libstdc++ libgcc`
28
+ first.
29
+
30
+ With Node 22 or later you can install from npm instead:
13
31
 
14
32
  ```sh
15
33
  npm install -g letthemquibble
16
34
  ```
17
35
 
18
- ## File a complaint
36
+ ## Quick start
37
+
38
+ Quibble talks to the hosted service at `https://api.letthemquibble.com` unless
39
+ you name another endpoint. Create an account and an organization at
40
+ <https://letthemquibble.com>, and have an admin create the project there.
41
+ Then, in the repository:
19
42
 
20
43
  ```sh
44
+ cd ~/code/myproject
45
+ quibble login
46
+ quibble init --org acme
47
+ quibble snippet --append CLAUDE.md --hook
21
48
  quibble complain "the build takes 4 minutes" -s high -t build
22
49
  quibble list
23
50
  quibble summary
24
51
  ```
25
52
 
26
- Local mode needs no server and no account. It appends one JSON line per
27
- complaint to `$QUIBBLE_HOME/complaints.jsonl`, which defaults to
28
- `~/.quibble/complaints.jsonl`.
53
+ `quibble init` writes a `.quibblerc` and prints a short section for your
54
+ `CLAUDE.md` or `AGENTS.md`. It tells the agent when to complain and how, for
55
+ example:
29
56
 
30
- ## Set a project up
57
+ ```
58
+ quibble complain "what went wrong, and what you expected" -s medium -t build --agent claude
59
+ ```
60
+
61
+ `quibble snippet --append CLAUDE.md` appends that section to a file
62
+ (`AGENTS.md` names the agent `codex`), `quibble snippet --skill` writes it as a
63
+ Claude Code skill, and `--agent <name>` names any other agent.
64
+
65
+ When the allowed tags change, `quibble sync` rewrites that section in place
66
+ in `CLAUDE.md`, `AGENTS.md` and the skill file, and leaves the rest of each
67
+ file alone. `--hook` on `init`, `snippet` or `sync` adds a Claude Code
68
+ `SessionStart` hook that runs `quibble sync --quiet` at the start of every
69
+ new session, so the list stays current by itself.
70
+
71
+ Complaints that share a headline fold into one row of `quibble list`.
72
+ `quibble show <id>` prints one in full, and any unique prefix of at least 6
73
+ characters stands for an id. Project names ignore case: `DBT` and `dbt` are
74
+ the same project.
75
+
76
+ ## Local mode
77
+
78
+ Local mode keeps complaints on your machine, in
79
+ `~/.quibble/complaints.jsonl`, with no server and no account. It is opt-in:
80
+ pass `--local`, or set the endpoint to `local`.
31
81
 
32
82
  ```sh
33
- quibble init --project demo --org acme --endpoint https://api.example.com -t build
83
+ quibble init --endpoint local -t build -t tests -t docs
84
+ quibble complain "the build takes 4 minutes" -s high -t build
34
85
  ```
35
86
 
36
- `init` writes a `.quibblerc` and prints a paragraph to paste into a `CLAUDE.md`
37
- or an `AGENTS.md`, so an agent knows the command and the allowed tags. With an
38
- endpoint, run `quibble login` once.
87
+ `--endpoint local` writes `"endpoint": "local"` into `.quibblerc`, so every
88
+ command in the project stays local. Each local filing says on stderr that
89
+ nothing was sent.
90
+
91
+ ## Other servers and CI
92
+
93
+ `--endpoint`, `QUIBBLE_ENDPOINT`, `.quibblerc` and `~/.quibble/config.json`
94
+ take the API URL, the web URL or a bare host, such as
95
+ `staging.example.com`. `quibble login --endpoint <url>` saves the endpoint
96
+ in `~/.quibble/config.json` when that file names none yet, so you pass it
97
+ once.
98
+
99
+ For CI, a maintainer runs `quibble token create ci`, and the job sets the two
100
+ lines it prints, `QUIBBLE_ENDPOINT` and `QUIBBLE_TOKEN`, instead of logging in.
101
+ A complaint that cannot reach the API waits in `~/.quibble/unsent.jsonl` and
102
+ goes out with the next remote command, or with `quibble retry`.
103
+
104
+ Run `quibble --help` for every command.
39
105
 
40
106
  ## More
41
107