@handsupmin/gc-tree 0.1.2 → 0.1.4
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.
- package/README.es.md +147 -78
- package/README.ja.md +151 -82
- package/README.ko.md +149 -80
- package/README.md +160 -91
- package/README.zh.md +150 -82
- package/docs/concept.es.md +37 -37
- package/docs/concept.ja.md +43 -43
- package/docs/concept.ko.md +41 -41
- package/docs/concept.md +15 -15
- package/docs/concept.zh.md +37 -37
- package/docs/local-development.es.md +25 -25
- package/docs/local-development.ja.md +22 -22
- package/docs/local-development.ko.md +25 -25
- package/docs/local-development.md +3 -3
- package/docs/local-development.zh.md +23 -23
- package/docs/principles.es.md +27 -26
- package/docs/principles.ja.md +28 -27
- package/docs/principles.ko.md +29 -28
- package/docs/principles.md +4 -4
- package/docs/principles.zh.md +28 -27
- package/docs/usage.es.md +32 -30
- package/docs/usage.ja.md +45 -43
- package/docs/usage.ko.md +41 -39
- package/docs/usage.md +2 -2
- package/docs/usage.zh.md +46 -44
- package/package.json +1 -1
package/docs/usage.ja.md
CHANGED
|
@@ -2,45 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
[English](usage.md) | [한국어](usage.ko.md) | [简体中文](usage.zh.md) | [日本語](usage.ja.md) | [Español](usage.es.md)
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 要約
|
|
6
6
|
|
|
7
|
-
標準的な `gctree`
|
|
7
|
+
標準的な `gctree` の流れはこうです。gc-tree を初期化し、provider を選び、デフォルトの `main` gc-branch をオンボードし、必要な文脈を resolve で引き、必要になったら新しい gc-branch を作り、各リポジトリを正しい gc-branch に結び付け、長期的な変更はガイド付き更新で反映していきます。
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 標準ワークフロー
|
|
10
10
|
|
|
11
11
|
1. `gctree init` を実行する
|
|
12
|
-
2. 好みの provider
|
|
13
|
-
3.
|
|
14
|
-
4. `both`
|
|
15
|
-
5. デフォルトの `main` gc-branch
|
|
16
|
-
6. `gctree resolve --query "..."`
|
|
17
|
-
7. `gctree checkout` で gc-branch
|
|
18
|
-
8.
|
|
19
|
-
9.
|
|
20
|
-
10.
|
|
12
|
+
2. 好みの provider モードを選ぶ(`claude-code`、`codex`、`both`)
|
|
13
|
+
3. ワークフロー言語を選ぶ(`English`、`Korean`、またはカスタム言語)
|
|
14
|
+
4. `both` を選んだ場合は、今回のオンボーディングをどちらの provider で始めるか選ぶ
|
|
15
|
+
5. デフォルトの `main` gc-branch に対するガイド付きオンボーディングを完了する
|
|
16
|
+
6. `gctree resolve --query "..."` で必要なコンテキストを取り出す
|
|
17
|
+
7. `gctree checkout` で gc-branch を作る / 切り替える
|
|
18
|
+
8. `gctree onboard` は空の gc-branch に対してだけ使う
|
|
19
|
+
9. repo scope を設定して gc-branch が本来のリポジトリにだけ効くようにする
|
|
20
|
+
10. 後からの長期変更には `gctree update-global-context` を使う
|
|
21
21
|
|
|
22
22
|
## 主要コマンド
|
|
23
23
|
|
|
24
|
-
| コマンド |
|
|
24
|
+
| コマンド | 役割 |
|
|
25
25
|
| --- | --- |
|
|
26
|
-
| `gctree init` | `~/.gctree`
|
|
26
|
+
| `gctree init` | `~/.gctree` を作成し、デフォルトの `main` gc-branch を作り、provider モード / オンボーディング provider / 優先言語を保存し、現在の環境を scaffold し、`main` が空ならガイド付きオンボーディングまで開始します。 |
|
|
27
27
|
| `gctree checkout <branch>` | アクティブな gc-branch を切り替えます。 |
|
|
28
|
-
| `gctree checkout -b <branch>` | 新しい空の gc-branch
|
|
29
|
-
| `gctree branches` | 利用可能な gc-
|
|
30
|
-
| `gctree status` | アクティブな gc-branch
|
|
31
|
-
| `gctree resolve --query TEXT` |
|
|
32
|
-
| `gctree repo-map` | `branch-repo-map.json`
|
|
33
|
-
| `gctree set-repo-scope --branch <name> --include` |
|
|
34
|
-
| `gctree set-repo-scope --branch <name> --exclude` |
|
|
35
|
-
| `gctree onboard` | アクティブな gc-branch
|
|
36
|
-
| `gctree reset-gc-branch --branch <name> --yes` | gc-branch
|
|
37
|
-
| `gctree update-global-context` | アクティブな gc-branch
|
|
28
|
+
| `gctree checkout -b <branch>` | 新しい空の gc-branch を作成し、そのまま切り替えます。 |
|
|
29
|
+
| `gctree branches` | 利用可能な gc-branch 一覧と、現在アクティブなものを表示します。 |
|
|
30
|
+
| `gctree status` | アクティブな gc-branch、現在のリポジトリ、現在の repo-scope 状態、警告、優先 provider を表示します。 |
|
|
31
|
+
| `gctree resolve --query TEXT` | 関係する gc-branch からコンテキストを検索します。現在のリポジトリが未マップなら、そのリポジトリをどう扱うかを尋ねる場合があります。 |
|
|
32
|
+
| `gctree repo-map` | 現在の `branch-repo-map.json` の内容を表示します。 |
|
|
33
|
+
| `gctree set-repo-scope --branch <name> --include` | 現在のリポジトリを、その gc-branch に含まれるものとして記録します。 |
|
|
34
|
+
| `gctree set-repo-scope --branch <name> --exclude` | 現在のリポジトリを、その gc-branch では無視するものとして記録します。 |
|
|
35
|
+
| `gctree onboard` | アクティブな gc-branch に対するガイド付きオンボーディングを開始します。空の gc-branch でのみ動作します。 |
|
|
36
|
+
| `gctree reset-gc-branch --branch <name> --yes` | gc-branch を空にして再オンボード可能にします。 |
|
|
37
|
+
| `gctree update-global-context` | アクティブな gc-branch に対するガイド付き長期更新を開始します。 |
|
|
38
38
|
| `gctree update-gc` / `gctree ugc` | `gctree update-global-context` の別名です。 |
|
|
39
|
-
| `gctree scaffold --host <codex|claude-code>` |
|
|
39
|
+
| `gctree scaffold --host <codex|claude-code>` | 別の環境に provider 向けコマンド面をインストールします。 |
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## repo scope の例
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
gc-branch `A` が repo `B`、`C`、`D` には関係し、`F` には関係しないとします。
|
|
44
|
+
|
|
45
|
+
その場合は、たとえば次のように管理できます。
|
|
44
46
|
|
|
45
47
|
```json
|
|
46
48
|
{
|
|
@@ -51,16 +53,16 @@
|
|
|
51
53
|
}
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
保存先は次のとおりです。
|
|
55
57
|
|
|
56
58
|
```text
|
|
57
59
|
~/.gctree/branch-repo-map.json
|
|
58
60
|
```
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
repo `E` から `resolve` を実行し、branch `A` がまだそこにマップされていない場合、`gctree` は次のどれにするかを尋ねられます。
|
|
61
63
|
|
|
62
|
-
1.
|
|
63
|
-
2.
|
|
64
|
+
1. 今回だけ続ける
|
|
65
|
+
2. `E` では今後も常に `A` を使う
|
|
64
66
|
3. `E` では `A` を無視する
|
|
65
67
|
|
|
66
68
|
## 初回実行の例
|
|
@@ -69,13 +71,13 @@
|
|
|
69
71
|
gctree init
|
|
70
72
|
```
|
|
71
73
|
|
|
72
|
-
|
|
74
|
+
そのあと:
|
|
73
75
|
|
|
74
|
-
1. `codex`
|
|
76
|
+
1. `codex` か `claude-code` を選ぶ
|
|
75
77
|
2. `gctree` に現在の環境を scaffold させる
|
|
76
|
-
3. `main` gc-branch
|
|
78
|
+
3. `main` gc-branch のガイド付きオンボーディングを完了する
|
|
77
79
|
|
|
78
|
-
##
|
|
80
|
+
## 複数ブランチを使う例
|
|
79
81
|
|
|
80
82
|
```bash
|
|
81
83
|
gctree checkout -b client-b
|
|
@@ -96,24 +98,24 @@ gctree update-gc
|
|
|
96
98
|
gctree ugc
|
|
97
99
|
```
|
|
98
100
|
|
|
99
|
-
|
|
101
|
+
新しく重要になったリポジトリを長期コンテキストにも組み込みたい場合、自然な流れは次のとおりです。
|
|
100
102
|
|
|
101
|
-
1. まずそのリポジトリを branch
|
|
102
|
-
2. その後 `update-global-context`
|
|
103
|
+
1. まずそのリポジトリを gc-branch にマップする
|
|
104
|
+
2. その後 `update-global-context` を実行して、そのリポジトリが何を担い、なぜ重要なのかという長期知識を追加する
|
|
103
105
|
|
|
104
106
|
## 統合パターン
|
|
105
107
|
|
|
106
108
|
### Codex CLI / Claude Code CLI
|
|
107
109
|
|
|
108
|
-
`gctree scaffold` は、ガイド付きオンボーディングやガイド付き更新などの provider
|
|
109
|
-
|
|
110
|
+
`gctree scaffold` は、ガイド付きオンボーディングやガイド付き更新などの provider 向けコマンド面をインストールします。
|
|
111
|
+
これらのコマンドは、長期コンテキストを集めたり適用したりする前に、現在アクティブな gc-branch を明示的に伝えるべきです。また、ユーザーが明示的に切り替えを求めない限り、保存されたワークフロー言語を使い続けるべきです。
|
|
110
112
|
|
|
111
113
|
```bash
|
|
112
114
|
gctree scaffold --host codex --target /path/to/repo
|
|
113
115
|
gctree scaffold --host claude-code --target /path/to/repo
|
|
114
116
|
```
|
|
115
117
|
|
|
116
|
-
###
|
|
118
|
+
### ランタイムの振る舞い
|
|
117
119
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
+
デフォルトのアクティブ gc-branch は `~/.gctree` の `HEAD` が指しているものですが、特定のリポジトリが別の gc-branch に明示的に結び付けられている場合は、repo mapping がその既定値を上書きできます。
|
|
121
|
+
このおかげで、互いに無関係なセッションをたくさん同時に開いているヘビーユーザーでも gc-tree を実用的に使えます。
|
package/docs/usage.ko.md
CHANGED
|
@@ -1,46 +1,48 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 사용 방법
|
|
2
2
|
|
|
3
3
|
[English](usage.md) | [한국어](usage.ko.md) | [简体中文](usage.zh.md) | [日本語](usage.ja.md) | [Español](usage.es.md)
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 요약
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
표준적인 `gctree` 흐름은 이렇습니다. gc-tree를 초기화하고, provider를 고르고, 기본 `main` gc-branch를 온보딩하고, 필요한 컨텍스트를 resolve로 불러오고, 필요할 때 새 gc-branch를 만들고, 각 레포를 맞는 gc-branch에 매핑하고, 나중에는 가이드형 업데이트로 장기 컨텍스트를 유지합니다.
|
|
8
8
|
|
|
9
|
-
## 기본
|
|
9
|
+
## 기본 워크플로
|
|
10
10
|
|
|
11
11
|
1. `gctree init` 실행
|
|
12
|
-
2.
|
|
13
|
-
3.
|
|
12
|
+
2. 선호하는 provider 모드 선택 (`claude-code`, `codex`, `both`)
|
|
13
|
+
3. 워크플로 언어 선택 (`English`, `Korean`, 또는 커스텀 언어)
|
|
14
14
|
4. `both`를 골랐다면 이번 온보딩을 어느 provider로 시작할지 선택
|
|
15
15
|
5. 기본 `main` gc-branch에 대한 가이드형 온보딩 완료
|
|
16
|
-
6. `gctree resolve --query "..."`로
|
|
16
|
+
6. `gctree resolve --query "..."`로 필요한 컨텍스트 조회
|
|
17
17
|
7. `gctree checkout`으로 gc-branch 생성 또는 전환
|
|
18
|
-
8. 비어 있는 gc-branch에서만
|
|
19
|
-
9. gc-branch가
|
|
20
|
-
10.
|
|
18
|
+
8. `gctree onboard`는 비어 있는 gc-branch에서만 실행
|
|
19
|
+
9. repo scope 매핑으로 gc-branch가 자기 레포에서만 적용되게 유지
|
|
20
|
+
10. 장기 변경은 나중에 `gctree update-global-context`로 반영
|
|
21
21
|
|
|
22
22
|
## 핵심 명령
|
|
23
23
|
|
|
24
|
-
| 명령 |
|
|
24
|
+
| 명령 | 용도 |
|
|
25
25
|
| --- | --- |
|
|
26
|
-
| `gctree init` | `~/.gctree
|
|
26
|
+
| `gctree init` | `~/.gctree`를 만들고, 기본 `main` gc-branch를 만들고, provider 모드/온보딩 provider/선호 언어를 저장하고, 현재 환경을 스캐폴딩하고, `main`이 비어 있으면 가이드형 온보딩까지 시작합니다. |
|
|
27
27
|
| `gctree checkout <branch>` | 활성 gc-branch를 전환합니다. |
|
|
28
|
-
| `gctree checkout -b <branch>` |
|
|
29
|
-
| `gctree branches` | 사용 가능한 gc-branch
|
|
30
|
-
| `gctree status` | 활성 gc-branch, 현재 레포, 현재
|
|
31
|
-
| `gctree resolve --query TEXT` | 관련 gc-branch에서 컨텍스트를
|
|
32
|
-
| `gctree repo-map` | `branch-repo-map.json`
|
|
33
|
-
| `gctree set-repo-scope --branch <name> --include` | 현재 레포를 해당 gc-branch
|
|
34
|
-
| `gctree set-repo-scope --branch <name> --exclude` | 현재 레포를 해당 gc-branch
|
|
35
|
-
| `gctree onboard` | 활성 gc-branch에 대한 가이드형 온보딩을 시작합니다.
|
|
28
|
+
| `gctree checkout -b <branch>` | 새로운 빈 gc-branch를 만들고 바로 전환합니다. |
|
|
29
|
+
| `gctree branches` | 사용 가능한 gc-branch 목록과 현재 활성 브랜치를 보여줍니다. |
|
|
30
|
+
| `gctree status` | 활성 gc-branch, 현재 레포, 현재 repo-scope 상태, 경고, 선호 provider를 보여줍니다. |
|
|
31
|
+
| `gctree resolve --query TEXT` | 관련 gc-branch에서 컨텍스트를 찾습니다. 현재 레포가 아직 매핑되지 않았다면, 이 레포를 어떻게 다룰지 물어볼 수 있습니다. |
|
|
32
|
+
| `gctree repo-map` | 현재 `branch-repo-map.json` 내용을 보여줍니다. |
|
|
33
|
+
| `gctree set-repo-scope --branch <name> --include` | 현재 레포를 해당 gc-branch에 포함된 것으로 표시합니다. |
|
|
34
|
+
| `gctree set-repo-scope --branch <name> --exclude` | 현재 레포를 해당 gc-branch에서 무시할 레포로 표시합니다. |
|
|
35
|
+
| `gctree onboard` | 활성 gc-branch에 대한 가이드형 온보딩을 시작합니다. 이 gc-branch가 비어 있을 때만 동작합니다. |
|
|
36
36
|
| `gctree reset-gc-branch --branch <name> --yes` | gc-branch를 비워서 다시 온보딩할 수 있게 만듭니다. |
|
|
37
37
|
| `gctree update-global-context` | 활성 gc-branch에 대한 가이드형 장기 업데이트를 시작합니다. |
|
|
38
38
|
| `gctree update-gc` / `gctree ugc` | `gctree update-global-context`의 별칭입니다. |
|
|
39
|
-
| `gctree scaffold --host <codex|claude-code>` | 다른
|
|
39
|
+
| `gctree scaffold --host <codex|claude-code>` | 다른 환경에도 provider용 명령 표면을 설치합니다. |
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## repo scope 예시 흐름
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
gc-branch `A`가 `B`, `C`, `D` 레포에는 관련 있고 `F`에는 관련이 없다고 가정해봅시다.
|
|
44
|
+
|
|
45
|
+
이 경우 다음 같은 구조로 관리할 수 있습니다.
|
|
44
46
|
|
|
45
47
|
```json
|
|
46
48
|
{
|
|
@@ -51,19 +53,19 @@
|
|
|
51
53
|
}
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
이 정보는 다음 위치에 저장됩니다.
|
|
55
57
|
|
|
56
58
|
```text
|
|
57
59
|
~/.gctree/branch-repo-map.json
|
|
58
60
|
```
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
`E` 레포에서 `resolve`를 실행했는데 branch `A`가 아직 거기에 매핑되지 않았다면, `gctree`는 다음 중 무엇을 할지 물어볼 수 있습니다.
|
|
61
63
|
|
|
62
|
-
1. 이번만
|
|
63
|
-
2.
|
|
64
|
-
3.
|
|
64
|
+
1. 이번만 계속하기
|
|
65
|
+
2. `E`에서는 앞으로도 항상 `A` 사용하기
|
|
66
|
+
3. `E`에서는 `A` 무시하기
|
|
65
67
|
|
|
66
|
-
##
|
|
68
|
+
## 첫 실행 예시
|
|
67
69
|
|
|
68
70
|
```bash
|
|
69
71
|
gctree init
|
|
@@ -72,10 +74,10 @@ gctree init
|
|
|
72
74
|
그다음:
|
|
73
75
|
|
|
74
76
|
1. `codex` 또는 `claude-code` 선택
|
|
75
|
-
2. `gctree`가 현재 환경을 스캐폴딩하도록
|
|
76
|
-
3. `main` gc-branch 온보딩 완료
|
|
77
|
+
2. `gctree`가 현재 환경을 스캐폴딩하도록 두기
|
|
78
|
+
3. `main` gc-branch에 대한 가이드형 온보딩 완료
|
|
77
79
|
|
|
78
|
-
##
|
|
80
|
+
## 여러 브랜치를 쓰는 예시
|
|
79
81
|
|
|
80
82
|
```bash
|
|
81
83
|
gctree checkout -b client-b
|
|
@@ -96,17 +98,17 @@ gctree update-gc
|
|
|
96
98
|
gctree ugc
|
|
97
99
|
```
|
|
98
100
|
|
|
99
|
-
|
|
101
|
+
새롭게 중요해진 레포를 장기 컨텍스트에도 포함시키고 싶다면, 자연스러운 흐름은 이렇습니다.
|
|
100
102
|
|
|
101
|
-
1. 먼저
|
|
102
|
-
2.
|
|
103
|
+
1. 먼저 그 레포를 gc-branch에 매핑하고
|
|
104
|
+
2. 그다음 `update-global-context`를 실행해서 그 레포가 무엇을 하는지, 왜 중요한지 같은 장기 지식을 추가하기
|
|
103
105
|
|
|
104
106
|
## 통합 패턴
|
|
105
107
|
|
|
106
108
|
### Codex CLI / Claude Code CLI
|
|
107
109
|
|
|
108
|
-
`gctree scaffold`는 가이드형
|
|
109
|
-
이 명령들은
|
|
110
|
+
`gctree scaffold`는 가이드형 온보딩, 가이드형 업데이트 같은 provider 명령 표면을 설치합니다.
|
|
111
|
+
이 명령들은 장기 컨텍스트를 수집하거나 반영하기 전에 현재 활성 gc-branch가 무엇인지 명시적으로 말해야 하고, 사용자가 따로 바꾸라고 하지 않는 한 저장된 워크플로 언어를 계속 사용해야 합니다.
|
|
110
112
|
|
|
111
113
|
```bash
|
|
112
114
|
gctree scaffold --host codex --target /path/to/repo
|
|
@@ -115,5 +117,5 @@ gctree scaffold --host claude-code --target /path/to/repo
|
|
|
115
117
|
|
|
116
118
|
### 런타임 동작
|
|
117
119
|
|
|
118
|
-
활성 gc-branch는 `~/.gctree` 안의 `HEAD`가 가리키는
|
|
119
|
-
|
|
120
|
+
기본적으로 활성 gc-branch는 `~/.gctree` 안의 `HEAD`가 가리키는 브랜치입니다. 다만 특정 레포가 다른 gc-branch에 명시적으로 묶여 있다면 repo mapping이 그 기본값을 덮어쓸 수 있습니다.
|
|
121
|
+
덕분에 서로 무관한 세션을 많이 동시에 띄워두는 사용자에게도 gc-tree가 실용적으로 동작합니다.
|
package/docs/usage.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## Summary
|
|
6
6
|
|
|
7
|
-
A standard `gctree` workflow
|
|
7
|
+
A standard `gctree` workflow looks like this: initialize gc-tree, choose a provider, onboard the default `main` gc-branch, resolve the context you need, create new gc-branches when work deserves its own lane, map repositories to the right gc-branches, and use guided updates for durable changes later.
|
|
8
8
|
|
|
9
9
|
## Standard workflow
|
|
10
10
|
|
|
@@ -118,4 +118,4 @@ gctree scaffold --host claude-code --target /path/to/repo
|
|
|
118
118
|
### Runtime behavior
|
|
119
119
|
|
|
120
120
|
The active gc-branch is the one pointed to by `HEAD` inside `~/.gctree`, but repo mapping can override that fallback when a repository is explicitly bound to another gc-branch.
|
|
121
|
-
|
|
121
|
+
That makes gc-tree practical for heavy users who keep many unrelated sessions open at the same time.
|
package/docs/usage.zh.md
CHANGED
|
@@ -2,45 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
[English](usage.md) | [한국어](usage.ko.md) | [简体中文](usage.zh.md) | [日本語](usage.ja.md) | [Español](usage.es.md)
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 摘要
|
|
6
6
|
|
|
7
|
-
标准的 `gctree`
|
|
7
|
+
标准的 `gctree` 工作流大致是这样的:先初始化 gc-tree,选择 provider,为默认的 `main` gc-branch 完成 onboarding,用 resolve 拉取当前需要的上下文,在需要的时候创建新的 gc-branch,把仓库映射到正确的 gc-branch,后续再通过带引导的更新来维护长期上下文。
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 标准工作流
|
|
10
10
|
|
|
11
11
|
1. 运行 `gctree init`
|
|
12
|
-
2.
|
|
13
|
-
3. 选择工作流语言(`English`、`Korean
|
|
14
|
-
4.
|
|
12
|
+
2. 选择你偏好的 provider 模式(`claude-code`、`codex` 或 `both`)
|
|
13
|
+
3. 选择工作流语言(`English`、`Korean` 或自定义语言)
|
|
14
|
+
4. 如果你选择了 `both`,再决定这次 onboarding 由哪个 provider 先启动
|
|
15
15
|
5. 完成默认 `main` gc-branch 的引导式 onboarding
|
|
16
|
-
6. 用 `gctree resolve --query "..."`
|
|
16
|
+
6. 用 `gctree resolve --query "..."` 拉取相关上下文
|
|
17
17
|
7. 用 `gctree checkout` 创建或切换 gc-branch
|
|
18
|
-
8.
|
|
19
|
-
9.
|
|
20
|
-
10.
|
|
18
|
+
8. `gctree onboard` 只用于空的 gc-branch
|
|
19
|
+
9. 通过 repo scope 映射,让 gc-branch 只在它该生效的仓库里生效
|
|
20
|
+
10. 之后的长期变化用 `gctree update-global-context` 来补充
|
|
21
21
|
|
|
22
22
|
## 核心命令
|
|
23
23
|
|
|
24
|
-
| 命令 |
|
|
24
|
+
| 命令 | 用途 |
|
|
25
25
|
| --- | --- |
|
|
26
|
-
| `gctree init` | 创建 `~/.gctree
|
|
26
|
+
| `gctree init` | 创建 `~/.gctree`,创建默认 `main` gc-branch,保存 provider 模式 / onboarding provider / 偏好语言,为当前环境安装 scaffold,并在 `main` 为空时启动引导式 onboarding。 |
|
|
27
27
|
| `gctree checkout <branch>` | 切换当前激活的 gc-branch。 |
|
|
28
|
-
| `gctree checkout -b <branch>` |
|
|
29
|
-
| `gctree branches` |
|
|
30
|
-
| `gctree status` | 显示当前 gc-branch
|
|
31
|
-
| `gctree resolve --query TEXT` |
|
|
32
|
-
| `gctree repo-map` |
|
|
33
|
-
| `gctree set-repo-scope --branch <name> --include` |
|
|
34
|
-
| `gctree set-repo-scope --branch <name> --exclude` |
|
|
35
|
-
| `gctree onboard` |
|
|
36
|
-
| `gctree reset-gc-branch --branch <name> --yes` |
|
|
37
|
-
| `gctree update-global-context` |
|
|
38
|
-
| `gctree update-gc` / `gctree ugc` | `gctree update-global-context`
|
|
39
|
-
| `gctree scaffold --host <codex|claude-code>` |
|
|
40
|
-
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
|
|
28
|
+
| `gctree checkout -b <branch>` | 创建一个新的空 gc-branch 并立即切换过去。 |
|
|
29
|
+
| `gctree branches` | 列出可用的 gc-branch,并标出当前激活的是哪一个。 |
|
|
30
|
+
| `gctree status` | 显示当前 gc-branch、当前仓库、当前 repo-scope 状态、告警以及偏好的 provider。 |
|
|
31
|
+
| `gctree resolve --query TEXT` | 从相关 gc-branch 中搜索上下文。如果当前仓库还没有映射,`gctree` 可能会询问应该如何处理这个仓库。 |
|
|
32
|
+
| `gctree repo-map` | 显示当前 `branch-repo-map.json` 的内容。 |
|
|
33
|
+
| `gctree set-repo-scope --branch <name> --include` | 把当前仓库标记为该 gc-branch 的包含仓库。 |
|
|
34
|
+
| `gctree set-repo-scope --branch <name> --exclude` | 把当前仓库标记为该 gc-branch 下应忽略的仓库。 |
|
|
35
|
+
| `gctree onboard` | 为当前激活的 gc-branch 启动引导式 onboarding。只有在该 gc-branch 为空时才可用。 |
|
|
36
|
+
| `gctree reset-gc-branch --branch <name> --yes` | 清空某条 gc-branch,让它可以重新 onboarding。 |
|
|
37
|
+
| `gctree update-global-context` | 为当前激活的 gc-branch 启动一次带引导的长期更新。 |
|
|
38
|
+
| `gctree update-gc` / `gctree ugc` | `gctree update-global-context` 的简短别名。 |
|
|
39
|
+
| `gctree scaffold --host <codex|claude-code>` | 在其他环境里安装 provider 对应的命令表面。 |
|
|
40
|
+
|
|
41
|
+
## repo scope 示例流程
|
|
42
|
+
|
|
43
|
+
假设 gc-branch `A` 与仓库 `B`、`C`、`D` 相关,但与 `F` 无关。
|
|
44
|
+
|
|
45
|
+
你可以这样管理:
|
|
44
46
|
|
|
45
47
|
```json
|
|
46
48
|
{
|
|
@@ -51,19 +53,19 @@
|
|
|
51
53
|
}
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
这份配置保存在:
|
|
55
57
|
|
|
56
58
|
```text
|
|
57
59
|
~/.gctree/branch-repo-map.json
|
|
58
60
|
```
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
当你在仓库 `E` 中执行 `resolve`,而 branch `A` 还没有映射到这里时,`gctree` 可以询问你是否要:
|
|
61
63
|
|
|
62
|
-
1.
|
|
63
|
-
2.
|
|
64
|
-
3.
|
|
64
|
+
1. 只这一次继续
|
|
65
|
+
2. 以后在 `E` 中始终使用 `A`
|
|
66
|
+
3. 在 `E` 中忽略 `A`
|
|
65
67
|
|
|
66
|
-
##
|
|
68
|
+
## 首次运行示例
|
|
67
69
|
|
|
68
70
|
```bash
|
|
69
71
|
gctree init
|
|
@@ -72,10 +74,10 @@ gctree init
|
|
|
72
74
|
然后:
|
|
73
75
|
|
|
74
76
|
1. 选择 `codex` 或 `claude-code`
|
|
75
|
-
2. 让 `gctree`
|
|
76
|
-
3. 完成 `main` gc-branch
|
|
77
|
+
2. 让 `gctree` 为当前环境安装 scaffold
|
|
78
|
+
3. 完成 `main` gc-branch 的引导式 onboarding
|
|
77
79
|
|
|
78
|
-
##
|
|
80
|
+
## 多分支示例
|
|
79
81
|
|
|
80
82
|
```bash
|
|
81
83
|
gctree checkout -b client-b
|
|
@@ -96,17 +98,17 @@ gctree update-gc
|
|
|
96
98
|
gctree ugc
|
|
97
99
|
```
|
|
98
100
|
|
|
99
|
-
|
|
101
|
+
如果某个新变得重要的仓库也应该进入长期上下文,更自然的流程是:
|
|
100
102
|
|
|
101
|
-
1.
|
|
102
|
-
2.
|
|
103
|
+
1. 先把这个仓库映射到对应的 gc-branch
|
|
104
|
+
2. 再执行 `update-global-context`,补充这个仓库做什么、为什么重要等长期知识
|
|
103
105
|
|
|
104
106
|
## 集成模式
|
|
105
107
|
|
|
106
108
|
### Codex CLI / Claude Code CLI
|
|
107
109
|
|
|
108
|
-
`gctree scaffold`
|
|
109
|
-
|
|
110
|
+
`gctree scaffold` 会安装面向 provider 的命令表面,比如引导式 onboarding 和引导式更新。
|
|
111
|
+
这些命令在开始收集或应用长期上下文之前,都应该明确说明当前激活的是哪条 gc-branch,并且除非用户明确要求切换,否则应继续使用已经保存的工作流语言。
|
|
110
112
|
|
|
111
113
|
```bash
|
|
112
114
|
gctree scaffold --host codex --target /path/to/repo
|
|
@@ -115,5 +117,5 @@ gctree scaffold --host claude-code --target /path/to/repo
|
|
|
115
117
|
|
|
116
118
|
### 运行时行为
|
|
117
119
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
+
默认情况下,激活的 gc-branch 是 `~/.gctree` 中 `HEAD` 指向的那一条。但如果某个仓库被显式绑定到了另一条 gc-branch,repo mapping 就可以覆盖这个默认值。
|
|
121
|
+
这使得 gc-tree 对那些同时在许多互不相关仓库里开很多会话的重度用户来说也依然实用。
|