carson 2.11.0 → 2.11.2
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.
- checksums.yaml +4 -4
- data/MANUAL.md +100 -1
- data/README.md +13 -1
- data/RELEASE.md +22 -0
- data/VERSION +1 -1
- data/carson.gemspec +3 -9
- metadata +8 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2ee87fb6195405a8984a69edfe853c54e4148e097ddeb68b664f3b174f76aa58
|
|
4
|
+
data.tar.gz: 1aff6cd40925b1e29a5317062963874428759a76932b5bc87ff49b1f181a433c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5431016b0e297bd23d69a781b633e6e786df4ebe5bb9625a9ed4052e8cdfb399e59e253b007d5403944f52ffdc6882c35eb0cf3babcb487740eadb178306d933
|
|
7
|
+
data.tar.gz: 713018f54df585927a2a86dc9d922bf750214603fb3daf89991c5eec9152a85ceeaad1ea130597f2fd357f8d95be282953c12c9a408bb169fd445ce26e4c6e10
|
data/MANUAL.md
CHANGED
|
@@ -5,7 +5,7 @@ For the mental model and command overview, see `README.md`. For formal interface
|
|
|
5
5
|
|
|
6
6
|
## Install Carson
|
|
7
7
|
|
|
8
|
-
Prerequisites: Ruby `>= 4
|
|
8
|
+
Prerequisites: Ruby `>= 3.4`, `gem` and `git` in `PATH`. `gh` (GitHub CLI) recommended for full review governance.
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
gem install --user-install carson
|
|
@@ -176,6 +176,105 @@ Carson's `govern.merge.method` controls how `carson govern` merges ready PRs. Th
|
|
|
176
176
|
|
|
177
177
|
**Important:** Carson's merge method must match your GitHub repository's allowed merge types. If your repo only allows squash merges and Carson is set to `merge`, govern will fail when it tries to auto-merge. Check your repository settings under Settings > General > Pull Requests.
|
|
178
178
|
|
|
179
|
+
## Defaults and Why
|
|
180
|
+
|
|
181
|
+
### Principles (iron rules)
|
|
182
|
+
|
|
183
|
+
These define what Carson *is*. They are not configurable.
|
|
184
|
+
|
|
185
|
+
- **Outsider boundary** — Carson never places its own artefacts inside a governed repository.
|
|
186
|
+
- **Centralised lint** — one policy source at `~/.carson/lint/`, shared across all repos, zero per-repo drift.
|
|
187
|
+
- **Active review** — undisposed reviewer findings block merge; feedback must be acknowledged.
|
|
188
|
+
- **Self-diagnosing output** — every message names the cause and the fix.
|
|
189
|
+
- **Transparent governance** — Carson prepares everything for merge but never makes decisions without telling you.
|
|
190
|
+
|
|
191
|
+
### Configurable defaults
|
|
192
|
+
|
|
193
|
+
These are starting points chosen during `carson setup`. Every default has a reason, but all can be changed.
|
|
194
|
+
|
|
195
|
+
#### Workflow style
|
|
196
|
+
|
|
197
|
+
How code reaches main.
|
|
198
|
+
|
|
199
|
+
- **`branch`** (default) — every change goes through a PR. Hooks block direct commits and pushes to main/master. PRs enforce review, scope integrity, and CI gates before code reaches main.
|
|
200
|
+
- **`trunk`** — commit directly to main. Hooks allow all commits. Suits solo projects or flat teams that don't need PR-based review.
|
|
201
|
+
|
|
202
|
+
Change: `carson setup` or `CARSON_WORKFLOW_STYLE`.
|
|
203
|
+
|
|
204
|
+
#### Merge method
|
|
205
|
+
|
|
206
|
+
How `carson govern` merges ready PRs.
|
|
207
|
+
|
|
208
|
+
- **`squash`** (default) — one PR = one commit on main. Linear, bisectable history. Every commit is individually revertable. Branch commits are preserved in the PR on GitHub.
|
|
209
|
+
- **`rebase`** — preserves individual branch commits on main. Linear history. Use when commit-level attribution matters.
|
|
210
|
+
- **`merge`** — creates merge commits. Non-linear graph but preserves branch topology. Use when branch structure is meaningful.
|
|
211
|
+
|
|
212
|
+
Must match your GitHub repo's allowed merge types. Change: `carson setup` or `govern.merge.method` in config.
|
|
213
|
+
|
|
214
|
+
#### Git remote
|
|
215
|
+
|
|
216
|
+
Which remote Carson checks for main sync and PR operations.
|
|
217
|
+
|
|
218
|
+
- Default: **`origin`**. Setup detects your actual remotes and presents them — pick the one that points to GitHub.
|
|
219
|
+
- If multiple remotes share the same URL, setup warns about the duplicate.
|
|
220
|
+
|
|
221
|
+
Change: `carson setup` or `git.remote` in config.
|
|
222
|
+
|
|
223
|
+
#### Main branch
|
|
224
|
+
|
|
225
|
+
Which branch Carson treats as the canonical baseline.
|
|
226
|
+
|
|
227
|
+
- Default: **`main`**. Setup detects whether `main` or `master` exists and offers both.
|
|
228
|
+
|
|
229
|
+
Change: `carson setup` or `git.main_branch` in config.
|
|
230
|
+
|
|
231
|
+
#### Hooks location
|
|
232
|
+
|
|
233
|
+
Where Carson installs git hooks.
|
|
234
|
+
|
|
235
|
+
- Default: **`~/.carson/hooks/<version>/`**. Outsider principle: hooks live outside your repo, versioned per Carson release, never committed to your repository.
|
|
236
|
+
|
|
237
|
+
Change: `CARSON_HOOKS_BASE_PATH`.
|
|
238
|
+
|
|
239
|
+
#### Lint policy source
|
|
240
|
+
|
|
241
|
+
Where lint configuration files live.
|
|
242
|
+
|
|
243
|
+
- Default: **`~/.carson/lint/`**. Centralised: one policy source governs all repos consistently. Repo-local `.rubocop.yml` is forbidden in outsider mode to prevent per-repo drift.
|
|
244
|
+
|
|
245
|
+
Change the source: `carson lint setup --source <path-or-git-url>`.
|
|
246
|
+
|
|
247
|
+
#### Scope integrity
|
|
248
|
+
|
|
249
|
+
Whether cross-module changes are flagged.
|
|
250
|
+
|
|
251
|
+
- Default: **advisory** (attention, not block). Carson informs you when staged files span multiple module groups (e.g. both `domain` and `ui`), but doesn't prevent the commit. Useful for awareness; not a hard gate.
|
|
252
|
+
|
|
253
|
+
Customise groups: `scope.path_groups` in config.
|
|
254
|
+
|
|
255
|
+
#### Review disposition
|
|
256
|
+
|
|
257
|
+
Whether reviewer findings require acknowledgement.
|
|
258
|
+
|
|
259
|
+
- Default: **required**. Comments containing risk keywords (`bug`, `security`, `regression`, etc.) must have a `Disposition:` response from the PR author before merge. Prevents feedback from being buried.
|
|
260
|
+
|
|
261
|
+
Change prefix: `CARSON_REVIEW_DISPOSITION_PREFIX`.
|
|
262
|
+
|
|
263
|
+
#### Merge authority
|
|
264
|
+
|
|
265
|
+
Whether `carson govern` can merge PRs autonomously.
|
|
266
|
+
|
|
267
|
+
- Default: **enabled**. Carson merges PRs that pass all gates (CI green, review clean, audit clean). PRs that need human judgement are escalated, never silently merged.
|
|
268
|
+
|
|
269
|
+
Disable: `govern.merge_authority: false` in config.
|
|
270
|
+
|
|
271
|
+
#### Output verbosity
|
|
272
|
+
|
|
273
|
+
How much Carson prints.
|
|
274
|
+
|
|
275
|
+
- Default: **concise**. A healthy audit prints one line. Problems print actionable summaries with cause and fix.
|
|
276
|
+
- `--verbose` restores full diagnostic key-value output for debugging.
|
|
277
|
+
|
|
179
278
|
## Agent Discovery
|
|
180
279
|
|
|
181
280
|
Carson writes managed files that help interactive agents (Claude Code, Codex, Copilot) discover the governance system when they work in a governed repository.
|
data/README.md
CHANGED
|
@@ -40,6 +40,18 @@ Carson is an autonomous governance runtime that lives on your workstation and in
|
|
|
40
40
|
|
|
41
41
|
This separation is Carson's defining trait — the **outsider boundary**: no Carson scripts, config files, or governance payloads are ever placed inside a governed repository.
|
|
42
42
|
|
|
43
|
+
## Opinions
|
|
44
|
+
|
|
45
|
+
Carson is opinionated about governance. These are non-negotiable principles, not configurable defaults:
|
|
46
|
+
|
|
47
|
+
- **Outsider boundary** — Carson lives outside your repo, never inside. No Carson-owned artefacts in your repository. Offboarding leaves no trace.
|
|
48
|
+
- **Centralised lint** — lint policy at `~/.carson/lint/`, shared across all repos. Repo-local config files are forbidden — one source of truth, zero drift.
|
|
49
|
+
- **Active review** — undisposed reviewer findings block merge. Feedback must be acknowledged, not buried.
|
|
50
|
+
- **Self-diagnosing output** — every message names the cause and the fix. If you need to debug Carson's output, the output failed.
|
|
51
|
+
- **Transparent governance** — Carson prepares everything for merge but never oversteps. It does not make decisions for you without telling you.
|
|
52
|
+
|
|
53
|
+
Everything else — workflow style, merge method, remote name, main branch — is a configurable default chosen during `carson setup`. See `MANUAL.md` for the full list of defaults and why each was chosen.
|
|
54
|
+
|
|
43
55
|
The data flow:
|
|
44
56
|
|
|
45
57
|
1. You maintain a **policy source** — a directory or git repository containing your lint rules (e.g. `CODING/rubocop.yml`). Carson copies these to `~/.carson/lint/` via `carson lint setup`.
|
|
@@ -95,7 +107,7 @@ The data flow:
|
|
|
95
107
|
|
|
96
108
|
## Quickstart
|
|
97
109
|
|
|
98
|
-
Prerequisites: Ruby `>= 4
|
|
110
|
+
Prerequisites: Ruby `>= 3.4`, `git`, and `gem` in your PATH.
|
|
99
111
|
`gh` (GitHub CLI) is recommended for full review governance features.
|
|
100
112
|
|
|
101
113
|
```bash
|
data/RELEASE.md
CHANGED
|
@@ -5,6 +5,28 @@ Release-note scope rule:
|
|
|
5
5
|
- `RELEASE.md` records only version deltas, breaking changes, and migration actions.
|
|
6
6
|
- Operational usage guides live in `MANUAL.md` and `API.md`.
|
|
7
7
|
|
|
8
|
+
## 2.11.2 — Improve RubyGems Summary and Description
|
|
9
|
+
|
|
10
|
+
### What changed
|
|
11
|
+
|
|
12
|
+
- **Gemspec** — rewrote `summary` and `description` to explain what Carson actually does instead of abstract jargon. Summary: "You write the code, Carson manages everything from commit to merge." Description covers the full loop: lint, review gates, PR triage, agent dispatch, merge, cleanup.
|
|
13
|
+
|
|
14
|
+
### What users must do now
|
|
15
|
+
|
|
16
|
+
Nothing. Metadata only.
|
|
17
|
+
|
|
18
|
+
## 2.11.1 — Document Philosophy, Opinions, and Configurable Defaults
|
|
19
|
+
|
|
20
|
+
### What changed
|
|
21
|
+
|
|
22
|
+
- **README.md** — added "Opinions" section stating Carson's five iron-rule principles (outsider boundary, centralised lint, active review, self-diagnosing output, transparent governance).
|
|
23
|
+
- **MANUAL.md** — added "Defaults and Why" section: principles recap plus comprehensive reference for all ten configurable defaults with options, rationale, and how to change each one.
|
|
24
|
+
- Fixed stale Ruby prerequisite in both files: `>= 4.0` → `>= 3.4`.
|
|
25
|
+
|
|
26
|
+
### What users must do now
|
|
27
|
+
|
|
28
|
+
Nothing. Documentation only.
|
|
29
|
+
|
|
8
30
|
## 2.11.0 — Self-Diagnosing Audit and Duplicate-Remote Prevention
|
|
9
31
|
|
|
10
32
|
### What changed
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.11.
|
|
1
|
+
2.11.2
|
data/carson.gemspec
CHANGED
|
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.version = Carson::VERSION
|
|
8
8
|
spec.authors = [ "Hailei Wang" ]
|
|
9
9
|
spec.email = [ "wanghailei@users.noreply.github.com" ]
|
|
10
|
-
spec.summary = "
|
|
11
|
-
spec.description = "Carson
|
|
10
|
+
spec.summary = "You write the code, Carson manages everything from commit to merge."
|
|
11
|
+
spec.description = "Carson is an autonomous governance runtime that lives outside your repositories. It enforces lint policy on every commit, gates merges on unresolved reviewer feedback, triages open PRs across your entire portfolio, dispatches coding agents to fix failures, merges what's ready, and cleans up after itself. One gem, all your projects, unmanned."
|
|
12
12
|
spec.homepage = "https://github.com/wanghailei/carson"
|
|
13
13
|
spec.license = "MIT"
|
|
14
14
|
spec.required_ruby_version = ">= 3.4"
|
|
@@ -20,15 +20,9 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
spec.post_install_message = <<~MSG
|
|
23
|
-
|
|
24
23
|
\u29D3 Carson at your service.
|
|
25
|
-
|
|
26
|
-
Step into your project directory and run:
|
|
27
|
-
|
|
28
|
-
carson onboard
|
|
29
|
-
|
|
24
|
+
Step into your project directory and run: carson onboard
|
|
30
25
|
I'll walk you through everything from there.
|
|
31
|
-
|
|
32
26
|
MSG
|
|
33
27
|
|
|
34
28
|
spec.bindir = "exe"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: carson
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.11.
|
|
4
|
+
version: 2.11.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hailei Wang
|
|
@@ -9,8 +9,10 @@ bindir: exe
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies: []
|
|
12
|
-
description: Carson
|
|
13
|
-
|
|
12
|
+
description: Carson is an autonomous governance runtime that lives outside your repositories.
|
|
13
|
+
It enforces lint policy on every commit, gates merges on unresolved reviewer feedback,
|
|
14
|
+
triages open PRs across your entire portfolio, dispatches coding agents to fix failures,
|
|
15
|
+
merges what's ready, and cleans up after itself. One gem, all your projects, unmanned.
|
|
14
16
|
email:
|
|
15
17
|
- wanghailei@users.noreply.github.com
|
|
16
18
|
executables:
|
|
@@ -71,16 +73,10 @@ metadata:
|
|
|
71
73
|
changelog_uri: https://github.com/wanghailei/carson/blob/main/RELEASE.md
|
|
72
74
|
bug_tracker_uri: https://github.com/wanghailei/carson/issues
|
|
73
75
|
documentation_uri: https://github.com/wanghailei/carson/blob/main/MANUAL.md
|
|
74
|
-
post_install_message: |
|
|
75
|
-
|
|
76
|
+
post_install_message: |
|
|
76
77
|
⧓ Carson at your service.
|
|
77
|
-
|
|
78
|
-
Step into your project directory and run:
|
|
79
|
-
|
|
80
|
-
carson onboard
|
|
81
|
-
|
|
78
|
+
Step into your project directory and run: carson onboard
|
|
82
79
|
I'll walk you through everything from there.
|
|
83
|
-
|
|
84
80
|
rdoc_options: []
|
|
85
81
|
require_paths:
|
|
86
82
|
- lib
|
|
@@ -97,6 +93,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
97
93
|
requirements: []
|
|
98
94
|
rubygems_version: 4.0.3
|
|
99
95
|
specification_version: 4
|
|
100
|
-
summary:
|
|
96
|
+
summary: You write the code, Carson manages everything from commit to merge.
|
|
101
97
|
test_files: []
|
|
102
|
-
...
|