carson 2.11.0 → 2.11.1

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 +12 -0
  5. data/VERSION +1 -1
  6. data/carson.gemspec +1 -7
  7. metadata +3 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef5d5bfa64c8a8b7f4d2b4893dd5a3cab05ab2f154bd12ab926837ae396c2fe2
4
- data.tar.gz: 106a0dc1a54c05e59ba9fe4eb0d01f647c420ac305d92a5d70cbc3c606300006
3
+ metadata.gz: 4c1366b08108b8d3891fdf7b5a408c6fa48fc1f09fee3e7078f6740e775fb113
4
+ data.tar.gz: 7cfc57e6b7cd66909ea92f9241423e99312cc368c8395c33d8c6b367e8fbaf60
5
5
  SHA512:
6
- metadata.gz: 1c1d53528fa822f8d7e4850234a039459f56053762ed8ed1982e7a27c2b1f7fd7820f6565afc2a8cda596971ce4dfab2e2288aeabf8b92e54e2cc5e9266ab213
7
- data.tar.gz: 04755a262052a630f8200089d03ff1f5a7c48ab8e68f50097fcdd206a8672da988d51c5f041384752a7d97712854b054aa4fd85b2b7268989190ea248d33bf1f
6
+ metadata.gz: 9453360cbbc88577104b25a29373f987e4b8e3e881ec1d21127cbe0e8944beb0b479a617c9d8d83ca970a506b2bb76ceaeec6f264b25b00ae178f772be3a8ea1
7
+ data.tar.gz: f73ced7d9c9114ab395da8a348809ca17944b97cf6012b43c1dda23aa415d40a376c4e0ba01ba28eb3c8fbc74dc6ea7dad711850534ae10014b9a68cdd32dc40
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,18 @@ 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.1 — Document Philosophy, Opinions, and Configurable Defaults
9
+
10
+ ### What changed
11
+
12
+ - **README.md** — added "Opinions" section stating Carson's five iron-rule principles (outsider boundary, centralised lint, active review, self-diagnosing output, transparent governance).
13
+ - **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.
14
+ - Fixed stale Ruby prerequisite in both files: `>= 4.0` → `>= 3.4`.
15
+
16
+ ### What users must do now
17
+
18
+ Nothing. Documentation only.
19
+
8
20
  ## 2.11.0 — Self-Diagnosing Audit and Duplicate-Remote Prevention
9
21
 
10
22
  ### What changed
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.11.0
1
+ 2.11.1
data/carson.gemspec CHANGED
@@ -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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hailei Wang
@@ -71,16 +71,10 @@ metadata:
71
71
  changelog_uri: https://github.com/wanghailei/carson/blob/main/RELEASE.md
72
72
  bug_tracker_uri: https://github.com/wanghailei/carson/issues
73
73
  documentation_uri: https://github.com/wanghailei/carson/blob/main/MANUAL.md
74
- post_install_message: |2+
75
-
74
+ post_install_message: |
76
75
  ⧓ Carson at your service.
77
-
78
- Step into your project directory and run:
79
-
80
- carson onboard
81
-
76
+ Step into your project directory and run: carson onboard
82
77
  I'll walk you through everything from there.
83
-
84
78
  rdoc_options: []
85
79
  require_paths:
86
80
  - lib
@@ -99,4 +93,3 @@ rubygems_version: 4.0.3
99
93
  specification_version: 4
100
94
  summary: Outsider governance runtime for repository hygiene and merge readiness.
101
95
  test_files: []
102
- ...