carson 3.29.0 → 3.29.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d026cfc1581b568aaa9459ab21faf0d4f52d1026995b5ce62f21dca0072853a
4
- data.tar.gz: '08bdaaebab6ccaf1dac6768057f55acf3833ddbe903001b2ca3934551f280bae'
3
+ metadata.gz: bdb70b55b0dddf63dd2e96b68d060472e3abfd10ae6c55010df2d43ad766c7b8
4
+ data.tar.gz: 122ef3005263475ce82fce1177037ddd4f017662a5a74bbee16ada7a464e0fc6
5
5
  SHA512:
6
- metadata.gz: 68d7fd88800a7a2756466ae88e3be1baae2df66b25d285cd54b676b6506d1ee86c69a110bf4f040c8259fc9dc8aa623120b0150b4a73c3081460c080940bfb2b
7
- data.tar.gz: 35403e45bad7632031bbc9c56a8aece6e7b3dc7eafa1c36c4f183bc7c6271beb1b39d4b35985373cb9be0baee3b8cc58491920bb2f63dcf852fb20c4198c33ed
6
+ metadata.gz: f526c974bf821f31a025e5a7c2a09644d3ef814c04f62a5d7021c0c6d102a9a883320c16ab20ab559159a95eee0198a26dfdec37c5684fd09936a13cbd7d081e
7
+ data.tar.gz: 6e7b04be1bf3a96d607599af821f38b4fb9cbaadea9c54f69407bf5d5d90bd4f10b46eec1e9254b4bbc6f1fa0c3e3bd673e9be8343a3b6e4006fe3a3291b8913
data/RELEASE.md CHANGED
@@ -5,6 +5,16 @@ 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
+ ## 3.29.1
9
+
10
+ ### What changed
11
+
12
+ - **Delivery output now shows the remote target explicitly** — `Delivery: branch → github/main` instead of the ambiguous `→ main`, making it clear the target is the remote branch, not local.
13
+
14
+ ### No migration required
15
+
16
+ - Existing workflows continue to work unchanged.
17
+
8
18
  ## 3.29.0
9
19
 
10
20
  ### What changed
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.29.0
1
+ 3.29.1
data/carson.gemspec CHANGED
@@ -37,7 +37,6 @@ Gem::Specification.new do |spec|
37
37
  "RELEASE.md",
38
38
  "VERSION",
39
39
  "LICENSE",
40
- "SKILL.md",
41
40
  "icon.svg",
42
41
  "carson.gemspec"
43
42
  ]
@@ -16,6 +16,7 @@ module Carson
16
16
  result = {
17
17
  command: "deliver",
18
18
  branch: branch_name,
19
+ git_remote: remote_name,
19
20
  watch_window_seconds: config.govern_check_wait.to_i,
20
21
  waited_seconds: 0,
21
22
  merge_attempted: false
@@ -948,8 +949,10 @@ module Carson
948
949
 
949
950
  if result[ :delivery ]
950
951
  branch = result[ :branch ]
952
+ remote = result[ :git_remote ] || "github"
951
953
  main = result[ :main_branch ] || "main"
952
- puts_line "Delivery: #{branch} → #{main}"
954
+ remote_main = "#{remote}/#{main}"
955
+ puts_line "Delivery: #{branch} → #{remote_main}"
953
956
  end
954
957
  if result[ :commit ]
955
958
  puts_line "Committed: #{result.dig( :commit, :summary )}"
@@ -961,9 +964,9 @@ module Carson
961
964
  summary = result[ :summary ]
962
965
  if outcome == "integrated" || status == "integrated"
963
966
  if result[ :merge_method ]
964
- puts_line "Merged into #{main} with #{result[ :merge_method ]}."
967
+ puts_line "Merged into #{remote_main} with #{result[ :merge_method ]}."
965
968
  else
966
- puts_line "Merged into #{main}."
969
+ puts_line "Merged into #{remote_main}."
967
970
  end
968
971
  if result[ :synced ] == false
969
972
  puts_line "Local #{main} sync failed — #{result[ :sync_error ]}."
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: 3.29.0
4
+ version: 3.29.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hailei Wang
@@ -51,7 +51,6 @@ files:
51
51
  - MANUAL.md
52
52
  - README.md
53
53
  - RELEASE.md
54
- - SKILL.md
55
54
  - VERSION
56
55
  - carson.gemspec
57
56
  - exe/carson
data/SKILL.md DELETED
@@ -1,99 +0,0 @@
1
- # Carson Skill
2
-
3
- You are working in a repository governed by Carson — an autonomous git strategist and repositories governor. Carson handles git hooks, PR triage, agent dispatch, merge, and cleanup. You provide the intelligence; Carson provides the infrastructure.
4
-
5
- ## When to use Carson commands
6
-
7
- | User intent | Command | What happens |
8
- |---|---|---|
9
- | "Check if my code is ready" | `carson audit` | Scope, boundary checks. Exit 0 = clean. Exit 2 = policy block. |
10
- | "Is my PR mergeable?" | `carson review gate` | Polls for unresolved review threads and actionable comments. Blocks until resolved. |
11
- | "What's happening across my repos?" | `carson govern --dry-run` | Classifies every open PR without taking action. Read the summary. |
12
- | "Run governance continuously" | `carson govern --loop 300` | Triage-dispatch-merge cycle every 300 seconds. Ctrl-C to stop. |
13
- | "Merge ready PRs and dispatch fixes" | `carson govern` | Full autonomous cycle: merge, dispatch agents, escalate. |
14
- | "Set up Carson for a repo" | `carson onboard /path/to/repo` | Installs hooks, syncs templates, runs first audit. |
15
- | "Refresh after upgrading Carson" | `carson refresh` | Re-applies hooks and templates for the current version. |
16
- | "Update my local main" | `carson sync` | Fast-forward local main from remote. Blocks if tree is dirty. |
17
- | "Clean up stale branches" | `carson prune` | Removes local branches whose upstream is gone. |
18
- | "Check template drift" | `carson template check` then `carson template apply` | Detect and fix .github/* drift. |
19
- | "Remove Carson from a repo" | `carson offboard /path/to/repo` | Removes hooks and managed files. |
20
- | "What version?" | `carson version` | Prints installed version with ⧓ badge. |
21
-
22
- ## Exit codes
23
-
24
- - `0` — success, all clear.
25
- - `1` — runtime or configuration error. Read the error message.
26
- - `2` — policy block. Something must be fixed before proceeding (unresolved review, boundary breach).
27
-
28
- When you see exit 2, do NOT bypass it. Read the output, fix the root cause, and re-run.
29
-
30
- ## Interpreting audit output
31
-
32
- Carson audit output is structured as labelled key-value lines prefixed with ⧓. Key sections:
33
-
34
- - **Working Tree** — staged/unstaged status.
35
- - **Main Sync Status** — whether local main matches remote. If ahead, reset drift before committing.
36
- - **Scope Integrity Guard** — checks that commits stay within a single business intent and scope group.
37
- - **Audit Result** — final verdict: `status: ok` (clean), `status: attention` (advisory, not blocking), `status: block` (must fix).
38
-
39
- ## Interpreting govern output
40
-
41
- `carson govern --dry-run` classifies each PR:
42
-
43
- - **ready** → would merge. All gates pass.
44
- - **ci_failing** → would dispatch agent to fix CI.
45
- - **review_blocked** → would dispatch agent to address review comments.
46
- - **pending** → skip. Checks still running (within check_wait window).
47
- - **needs_attention** → escalate. Needs human judgement.
48
-
49
- The summary line: `govern_summary: repos=N prs=N ready=N blocked=N`
50
-
51
- ## Configuration
52
-
53
- Single config file: `~/.carson/config.json`. Key settings:
54
-
55
- ```json
56
- {
57
- "govern": {
58
- "repos": ["~/Dev/repo-a", "~/Dev/repo-b"],
59
- "merge": { "method": "rebase" },
60
- "agent": { "provider": "auto" }
61
- },
62
- "review": {
63
- "bot_usernames": ["gemini-code-assist"]
64
- }
65
- }
66
- ```
67
-
68
- - `govern.merge.method` — must match GitHub branch protection. Use `rebase` if linear history is required.
69
- - `govern.repos` — list of repo paths for portfolio-level governance. Empty = current repo only.
70
- - `govern.agent.provider` — `auto` (tries codex then claude), `codex`, or `claude`.
71
- - `review.bot_usernames` — bot logins to ignore in review gate. Use GraphQL login format (no `[bot]` suffix).
72
-
73
- Environment overrides take precedence over config file. Common ones:
74
- - `CARSON_GOVERN_MERGE_METHOD`
75
- - `CARSON_REVIEW_BOT_USERNAMES`
76
- - `CARSON_GOVERN_CHECK_WAIT`
77
-
78
- ## Common scenarios
79
-
80
- **Commit blocked by audit:**
81
- Run `carson audit`, read the block reason, fix it, then `git add` and `git commit` again. Do not skip the hook.
82
-
83
- **Review gate blocked:**
84
- Run `carson review gate` to see which comments need disposition. Respond to each with the required prefix (default: `Disposition:`), then re-run.
85
-
86
- **Local main drifted ahead of remote:**
87
- This means a commit was made to main that couldn't be pushed (branch protection). Reset: `git checkout main && git reset --hard github/main`.
88
-
89
- **Hooks out of date after upgrade:**
90
- Run `carson refresh` to re-apply hooks and templates for the current version.
91
-
92
- **Govern merge fails:**
93
- Check that `govern.merge.method` in config matches what GitHub allows. If the repo enforces linear history, only `rebase` works.
94
-
95
- ## Boundaries
96
-
97
- - Carson never lives inside governed repositories. No `.carson.yml`, no `bin/carson`, no `.tools/carson/`.
98
- - Carson-managed files in repos are limited to `.github/*` templates.
99
- - Carson's hooks live at `~/.carson/hooks/<version>/`, never in `.git/hooks/`.