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.
Files changed (7) hide show
  1. checksums.yaml +4 -4
  2. data/MANUAL.md +100 -1
  3. data/README.md +13 -1
  4. data/RELEASE.md +22 -0
  5. data/VERSION +1 -1
  6. data/carson.gemspec +3 -9
  7. metadata +8 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef5d5bfa64c8a8b7f4d2b4893dd5a3cab05ab2f154bd12ab926837ae396c2fe2
4
- data.tar.gz: 106a0dc1a54c05e59ba9fe4eb0d01f647c420ac305d92a5d70cbc3c606300006
3
+ metadata.gz: 2ee87fb6195405a8984a69edfe853c54e4148e097ddeb68b664f3b174f76aa58
4
+ data.tar.gz: 1aff6cd40925b1e29a5317062963874428759a76932b5bc87ff49b1f181a433c
5
5
  SHA512:
6
- metadata.gz: 1c1d53528fa822f8d7e4850234a039459f56053762ed8ed1982e7a27c2b1f7fd7820f6565afc2a8cda596971ce4dfab2e2288aeabf8b92e54e2cc5e9266ab213
7
- data.tar.gz: 04755a262052a630f8200089d03ff1f5a7c48ab8e68f50097fcdd206a8672da988d51c5f041384752a7d97712854b054aa4fd85b2b7268989190ea248d33bf1f
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.0`, `gem` and `git` in `PATH`. `gh` (GitHub CLI) recommended for full review governance.
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.0`, `git`, and `gem` in your PATH.
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.0
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 = "Outsider governance runtime for repository hygiene and merge readiness."
11
- spec.description = "Carson runs outside host repositories and applies governance checks, review gates, and managed GitHub-native files."
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.0
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 runs outside host repositories and applies governance checks,
13
- review gates, and managed GitHub-native files.
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: |2+
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: Outsider governance runtime for repository hygiene and merge readiness.
96
+ summary: You write the code, Carson manages everything from commit to merge.
101
97
  test_files: []
102
- ...