@handsupmin/gc-tree 0.1.3 → 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.
@@ -1,16 +1,16 @@
1
- # 本地运行方法
1
+ # 本地开发
2
2
 
3
3
  [English](local-development.md) | [한국어](local-development.ko.md) | [简体中文](local-development.zh.md) | [日本語](local-development.ja.md) | [Español](local-development.es.md)
4
4
 
5
- ## Summary
5
+ ## 摘要
6
6
 
7
- 本地开发采用标准的 Node.js 20+ 工作流:安装依赖、构建 CLI、本地运行,并在提交前用现有测试套件进行验证。
7
+ 本地开发遵循一套标准的 Node.js 20+ 工作流:安装依赖、构建 CLI、在本地运行它,并且在提交修改前用现有测试套件完成验证。
8
8
 
9
9
  ## 前置条件
10
10
 
11
11
  - Node.js 20+
12
12
  - npm
13
- - 如果想手动验证 provider 启动流程,需要本地可用的 `codex` 或 `claude` 二进制
13
+ - 如果你想手动体验 provider 启动流程,还需要本地的 `codex` 和 / 或 `claude` 可执行文件
14
14
 
15
15
  ## 设置
16
16
 
@@ -21,57 +21,57 @@ npm run build
21
21
 
22
22
  ## 在本地运行 CLI
23
23
 
24
- ### 方法 1:直接运行构建后的入口
24
+ ### 方式 1:直接运行构建后的入口文件
25
25
 
26
26
  ```bash
27
27
  node dist/src/cli.js status
28
28
  ```
29
29
 
30
- ### 方法 2:把 CLI 链接到你的 shell
30
+ ### 方式 2:把 CLI 链接到你的 shell
31
31
 
32
32
  ```bash
33
33
  npm link
34
34
  gctree status
35
35
  ```
36
36
 
37
- 如果你修改了 TypeScript 源码,请在再次测试 CLI 之前重新构建。
37
+ 如果你改了 TypeScript 源码,在再次测试 CLI 之前记得重新 build 一次。
38
38
 
39
39
  ## 验证
40
40
 
41
- 提交改动前请运行:
41
+ 在发起 PR 之前,请先运行:
42
42
 
43
43
  ```bash
44
44
  npm run build
45
45
  npm test
46
46
  ```
47
47
 
48
- ## 仓库范围相关测试
48
+ ## repo-scope 测试
49
49
 
50
- 目前测试套件会验证:
50
+ 当前测试套件覆盖了以下内容:
51
51
 
52
- - provider 模式(`claude-code`、`codex`、`both`)持久化
53
- - 首选语言持久化以及 launch prompt 中更强的语言约束
54
- - 根据仓库自动选择 gc-branch
55
- - `resolve` 过程中的 include/exclude 交互
52
+ - provider 模式持久化(`claude-code`、`codex`、`both`)
53
+ - 偏好语言持久化,以及 launch prompt 中的强语言约束
54
+ - 面向仓库的 gc-branch 选择
55
+ - `resolve` 过程中的 include / exclude 交互
56
56
  - branch repo map 更新
57
- - 引导式 onboarding/update 的边界条件
57
+ - 带引导的 onboarding / update 流程边界
58
58
 
59
- ## 手动 provider E2E 验证
59
+ ## provider 手动 E2E 检查
60
60
 
61
- 自动测试会关闭 provider launch,只验证 launch plan,而不会真的打开 Codex 或 Claude Code 会话。
62
- 如果你想亲自验证真实启动路径,可以在临时目录里运行:
61
+ 自动化测试会禁用 provider 启动,这样它们就能在不真正打开 Codex 或 Claude Code 会话的情况下验证 launch plan。
62
+ 如果你想亲自走一遍真实的启动路径,可以在一个临时目录里运行下面任意一个命令:
63
63
 
64
64
  ```bash
65
65
  gctree init --provider codex
66
66
  gctree init --provider claude-code
67
67
  ```
68
68
 
69
- 正常情况下,provider 会真正启动,并立即收到 `$gc-onboard` 或 `/gc-onboard`。
69
+ 正常情况下,你会看到 provider 被拉起,并立刻收到 `$gc-onboard` 或 `/gc-onboard`。
70
70
 
71
71
  ## 项目结构
72
72
 
73
- - `src/` — CLI、上下文存储、provider 选择、仓库范围映射、引导式 onboarding/update 流程、scaffolding 逻辑
73
+ - `src/` — CLI、本地上下文存储、provider 选择、repo-scope 映射、带引导的 onboarding / update 流程,以及 scaffolding 逻辑
74
74
  - `tests/` — CLI 与行为测试
75
- - `skills/` — 工具无关的工作流技能
76
- - `scaffolds/` — 宿主特定的 bootstrap 模板
77
- - `docs/` — concept、principles、usage 与 development 文档
75
+ - `skills/` — 与工具无关的工作流技能
76
+ - `scaffolds/` — 面向不同 host 的引导模板
77
+ - `docs/` — 概念、原则、使用方式与开发文档
@@ -2,48 +2,49 @@
2
2
 
3
3
  [English](principles.md) | [한국어](principles.ko.md) | [简体中文](principles.zh.md) | [日本語](principles.ja.md) | [Español](principles.es.md)
4
4
 
5
- ## Summary
5
+ ## Resumen
6
6
 
7
- `gctree` sigue un conjunto pequeño pero claro de principios de producto: separar el contexto por gc-branch, escribir documentos summary-first, mantener los índices livianos y hacer que cada gc-branch solo influya en los repositorios donde realmente corresponde.
7
+ `gctree` sigue unas pocas reglas de producto muy claras: mantener el contexto con conciencia de rama, mantener los documentos source con enfoque summary-first, mantener los índices ligeros y hacer explícito el repo scope para que cada gc-branch solo influya donde realmente le toca.
8
8
 
9
- ## 1. Separar el contexto por gc-branch
9
+ ## 1. Mantén el contexto con conciencia de rama
10
10
 
11
- Una sola máquina puede contener varios árboles de contexto global sin mezclarlos.
12
- Por eso `gctree` usa comandos al estilo git como `checkout` y `checkout -b`, pero en la interfaz deja claro que la rama activa se presenta como **gc-branch**.
11
+ Una misma máquina debería poder contener varios árboles de contexto global sin mezclarlos.
12
+ Por eso `gctree` usa lenguaje tipo Git como `checkout` y `checkout -b`, mientras que en la interfaz orientada al usuario se refiere a la rama activa como **gc-branch**.
13
13
 
14
- ## 2. Gestionar explícitamente el alcance por repositorio
14
+ ## 2. Haz explícito el repo scope
15
15
 
16
16
  Un gc-branch no debería afectar en silencio a todos los repositorios de la máquina.
17
- `gctree` usa `branch-repo-map.json` para registrar el estado de un repo respecto a un gc-branch:
17
+ `gctree` usa `branch-repo-map.json` para registrar si un repositorio está:
18
18
 
19
- - include
20
- - exclude
21
- - aún sin mapear
19
+ - incluido para un gc-branch
20
+ - excluido para un gc-branch
21
+ - todavía sin mapear
22
22
 
23
- Si `resolve` se ejecuta en un repo sin mapear, el usuario puede decidir si quiere continuar solo esta vez, usar siempre ese gc-branch allí o ignorarlo allí.
23
+ Si `resolve` se llama desde un repositorio no mapeado, la persona usuaria puede decidir si quiere continuar una vez, usar siempre ese gc-branch allí o ignorarlo en ese repo.
24
24
 
25
- ## 3. Mantener `index.md` liviano
25
+ ## 3. Mantén `index.md` ligero
26
26
 
27
- El `index.md` de nivel superior es un índice, no un volcado de conocimiento.
28
- Su trabajo es llevar a herramientas y personas rápidamente al documento fuente correcto.
27
+ El `index.md` de nivel superior es un índice, no un vertedero de contenido.
28
+ Su trabajo es ayudar a herramientas y personas a encontrar rápido el documento source correcto.
29
+ Debe seguir siendo compacto y orientado a enlaces, en lugar de duplicar todo el conocimiento en línea.
29
30
 
30
- ## 4. Priorizar documentos summary-first
31
+ ## 4. Haz que los documentos source sean summary-first
31
32
 
32
- Cada documento markdown source-of-truth debería incluir una sección `## Summary` cerca del inicio.
33
- Así las herramientas pueden leer primero la versión corta y abrir el resto solo cuando haga falta.
33
+ Todo documento markdown que actúe como source of truth debería incluir una sección `## Summary` cerca del inicio.
34
+ Eso le da a las herramientas una ruta rápida: leer primero la versión corta y ampliar solo cuando haga falta más detalle.
34
35
 
35
- ## 5. Hacer que el onboarding sea explícito y guiado
36
+ ## 5. Haz que el onboarding sea explícito y guiado
36
37
 
37
- El usuario no debería tener que escribir JSON a mano para crear un contexto global útil.
38
- `gctree init` y `gctree onboard` deberían guiar la conversación a través del provider elegido y guardar el resultado en el gc-branch activo.
38
+ Una persona no debería tener que escribir a mano un JSON de onboarding solo para crear un árbol de contexto útil.
39
+ `gctree init` y `gctree onboard` deberían guiar el flujo con el provider elegido y escribir el contexto resultante en el gc-branch activo.
39
40
 
40
41
  El onboarding solo aplica a gc-branches vacíos.
41
- Si un gc-branch ya tiene contexto, la ruta correcta es:
42
+ Si un gc-branch ya contiene contexto, el camino correcto es uno de estos dos:
42
43
 
43
- - resetear ese gc-branch y volver a hacer onboarding
44
- - o ejecutar una actualización duradera guiada
44
+ - restablecer ese gc-branch y volver a hacer onboarding
45
+ - o lanzar una actualización duradera guiada
45
46
 
46
- ## 6. Mantener las actualizaciones duraderas bajo control
47
+ ## 6. Haz que las actualizaciones duraderas sean intencionales
47
48
 
48
- El contexto duradero no debería cambiar por accidente ni por memoria oculta.
49
- El flujo de actualización debe ser explícito, guiado por el provider y siempre ligado al gc-branch activo.
49
+ El contexto duradero no debería cambiar por accidente ni a través de memoria oculta.
50
+ El flujo de actualización debe ser explícito, guiado por el provider y estar ligado al gc-branch activo en ese momento.
@@ -2,48 +2,49 @@
2
2
 
3
3
  [English](principles.md) | [한국어](principles.ko.md) | [简体中文](principles.zh.md) | [日本語](principles.ja.md) | [Español](principles.es.md)
4
4
 
5
- ## Summary
5
+ ## 要約
6
6
 
7
- `gctree` は、少数の明確な製品原則に基づいています。コンテキストは gc-branch 単位で分け、文書は summary-first で書き、インデックスは小さく保ち、各 gc-branch が本当に関係するリポジトリでだけ使われるようにします。
7
+ `gctree` は少数のプロダクト原則に従っています。コンテキストはブランチ単位で扱うこと、source 文書は summary-first にすること、index は薄く保つこと、そして repo scope を明示して gc-branch が本来関係するリポジトリにだけ作用するようにすることです。
8
8
 
9
- ## 1. コンテキストを gc-branch 単位で分ける
9
+ ## 1. コンテキストはブランチを意識して持つ
10
10
 
11
- 1 台のマシン上に複数のグローバルコンテキストツリーを混在させずに保持できます。
12
- そのため `gctree` は `checkout` や `checkout -b` のような git ライクなコマンドを使いながら、ユーザー向けには現在のブランチを **gc-branch** と明示します。
11
+ 1 台のマシンの中に複数のグローバルコンテキストツリーがあっても、互いに混ざらないようにできるべきです。
12
+ そのため `gctree` は `checkout` や `checkout -b` のような Git ライクな言葉を使いつつ、ユーザー向けの表現ではアクティブなブランチを **gc-branch** と呼びます。
13
13
 
14
- ## 2. リポジトリ範囲を明示的に管理する
14
+ ## 2. repo scope は明示する
15
15
 
16
- ある gc-branch がマシン上のすべてのリポジトリへ静かに影響してはいけません。
17
- `gctree` は `branch-repo-map.json` によって、そのリポジトリがその gc-branch に対してどの状態かを記録します。
16
+ gc-branch がマシン上のすべてのリポジトリに黙って影響してはいけません。
17
+ `gctree` は `branch-repo-map.json` を使って、そのリポジトリが次のどれに当たるかを記録します。
18
18
 
19
- - include
20
- - exclude
21
- - まだ未設定
19
+ - その gc-branch に含まれる
20
+ - その gc-branch から除外される
21
+ - まだマッピングされていない
22
22
 
23
- `resolve` が未設定のリポジトリで呼ばれた場合、今回だけ使うか、今後も使うか、ここでは無視するかを選べます。
23
+ `resolve` が未マップのリポジトリから呼ばれた場合、今回だけ続けるか、今後もその gc-branch をそこで使うか、そこで無視するかをユーザーが決められます。
24
24
 
25
- ## 3. `index.md` を小さく保つ
25
+ ## 3. `index.md` は薄く保つ
26
26
 
27
- トップレベルの `index.md` はダンプではなくインデックスです。
28
- 役割は、ツールを適切な source document へ素早く導くことであり、知識をすべてインラインで複製することではありません。
27
+ トップレベルの `index.md` は知識の置き場ではなく、あくまでインデックスです。
28
+ 役割は、人やツールが正しい source 文書を素早く見つけられるようにすることです。
29
+ 全文の知識をその場に複製するのではなく、コンパクトでリンク中心に保つべきです。
29
30
 
30
- ## 4. summary-first 文書を優先する
31
+ ## 4. source 文書は summary-first にする
31
32
 
32
- すべての source-of-truth markdown 文書は、できるだけ冒頭近くに `## Summary` を置くべきです。
33
- これにより、ツールはまず短い要約を読み、要約だけで足りる場合は全文読み込みを避けられます。
33
+ source-of-truth markdown 文書には、冒頭近くに `## Summary` セクションがあるべきです。
34
+ そうしておけば、後段のツールはまず短い要約を読み、必要なときだけ詳細を展開できます。
34
35
 
35
36
  ## 5. オンボーディングは明示的かつガイド付きにする
36
37
 
37
- 有用なグローバルコンテキストを作るために、ユーザーが手で onboarding JSON を書く必要はありません。
38
- `gctree init` と `gctree onboard` は、ユーザーが選んだ provider を通じて対話し、その結果を現在の gc-branch に書き込みます。
38
+ 使えるコンテキストツリーを作るために、ユーザーがオンボーディング用 JSON を手書きしなければならないのはよくありません。
39
+ `gctree init` と `gctree onboard` は、ユーザーが選んだ provider に沿って流れを案内し、その結果のコンテキストを現在アクティブな gc-branch に書き込むべきです。
39
40
 
40
- オンボーディングは空の gc-branch に対してのみ実行します。
41
- すでにコンテキストが入っている場合は、次のどちらかが正しい流れです。
41
+ オンボーディングは空の gc-branch に対してだけ行うものです。
42
+ すでにコンテキストが入っている gc-branch の場合、正しい道筋は次のどちらかです。
42
43
 
43
- - gc-branch をリセットしてから再オンボーディングする
44
- - またはガイド付きの永続更新を行う
44
+ - その gc-branch をリセットして再オンボードする
45
+ - またはガイド付きの長期更新を実行する
45
46
 
46
- ## 6. 永続更新は意図的に行う
47
+ ## 6. 長期更新は意図を持って行う
47
48
 
48
- 長期コンテキストは、隠れたメモリや偶発的な操作で変わるべきではありません。
49
- 更新フローは明示的で、provider 主導で、常に現在アクティブな gc-branch に結びついている必要があります。
49
+ 長期コンテキストが事故的に変わったり、隠れメモリ経由で変わったりしてはいけません。
50
+ 更新フローは明示的で、provider 主導であり、かつ現在アクティブな gc-branch にしっかり結び付いているべきです。
@@ -1,49 +1,50 @@
1
- # 원리
1
+ # 원칙
2
2
 
3
3
  [English](principles.md) | [한국어](principles.ko.md) | [简体中文](principles.zh.md) | [日本語](principles.ja.md) | [Español](principles.es.md)
4
4
 
5
- ## Summary
5
+ ## 요약
6
6
 
7
- `gctree`는 몇 가지 단순한 제품 원칙을 따릅니다. 컨텍스트는 gc-branch 단위로 분리하고, 문서는 summary-first로 작성하며, 인덱스는 작게 유지하고, gc-branch가 실제로 관련 있는 레포에서만 영향을 주도록 범위를 명시합니다.
7
+ `gctree`는 몇 가지 작은 제품 원칙 위에서 움직입니다. 컨텍스트는 브랜치 단위로 다루고, source 문서는 summary-first로 유지하고, index는 얇게 유지하고, repo scope는 명시적으로 관리해서 gc-branch가 자기 자리에만 영향을 주게 합니다.
8
8
 
9
- ## 1. 컨텍스트는 gc-branch 단위로 분리한다
9
+ ## 1. 컨텍스트는 브랜치 단위로 다룬다
10
10
 
11
- 한 머신 안에서도 여러 글로벌 컨텍스트 트리를 섞지 않고 운영할 수 있어야 합니다.
12
- 그래서 `gctree`는 `checkout`, `checkout -b` 같은 git 스타일 명령을 쓰되, 사용자에게는 현재 브랜치를 **gc-branch**라고 명시합니다.
11
+ 대의 머신 안에서도 여러 글로벌 컨텍스트 트리를 서로 섞이지 않게 유지할 수 있어야 합니다.
12
+ 그래서 `gctree`는 `checkout`, `checkout -b` 같은 Git 스타일 언어를 쓰되, 사용자에게 보이는 표현에서는 활성 브랜치를 **gc-branch**라고 부릅니다.
13
13
 
14
- ## 2. 레포 범위를 명시적으로 관리한다
14
+ ## 2. repo scope는 명시적으로 둔다
15
15
 
16
- 어떤 gc-branch가 머신의 모든 레포에 조용히 영향을 주면 안 됩니다.
17
- `gctree`는 `branch-repo-map.json`을 통해 각 레포가 해당 gc-branch에 대해 어떤 상태인지 기록합니다.
16
+ gc-branch가 머신 안의 모든 레포에 조용히 영향을 주면 안 됩니다.
17
+ `gctree`는 `branch-repo-map.json`을 통해 각 레포가 다음 어디에 속하는지 기록합니다.
18
18
 
19
- - include
20
- - exclude
21
- - 아직 미지정
19
+ - 특정 gc-branch에 포함됨
20
+ - 특정 gc-branch에서 제외됨
21
+ - 아직 매핑되지 않음
22
22
 
23
- `resolve`가 미지정 레포에서 호출되면, 이번만 사용할지 / 항상 사용할지 / 여기서는 무시할지를 고를 수 있습니다.
23
+ `resolve`가 아직 매핑되지 않은 레포에서 호출되면, 사용자는 이번만 계속할지, 앞으로도 gc-branch를 여기서 쓸지, 아니면 여기서는 무시할지 결정할 수 있습니다.
24
24
 
25
- ## 3. `index.md`는 작게 유지한다
25
+ ## 3. `index.md`는 얇게 유지한다
26
26
 
27
- 최상위 `index.md`는 지식 덤프가 아니라 인덱스입니다.
28
- 역할은 도구를 올바른 source document로 빠르게 안내하는 것이지, 모든 내용을 인라인으로 복제하는 것이 아닙니다.
27
+ 최상위 `index.md`는 지식 dump가 아니라 인덱스입니다.
28
+ 역할은 사람과 도구가 올바른 source 문서를 빠르게 찾도록 돕는 것입니다.
29
+ 본문 지식을 다 복붙해 넣기보다, 짧고 링크 중심의 구조를 유지해야 합니다.
29
30
 
30
- ## 4. summary-first 문서를 우선한다
31
+ ## 4. source 문서는 summary-first 만든다
31
32
 
32
- 모든 source-of-truth markdown 문서는 상단 근처에 `## Summary` 섹션을 두는 것이 좋습니다.
33
- 이렇게 하면 도구가 먼저 짧은 버전을 읽고, 요약만으로 충분할 때는 전체 문서를 읽지 않아도 됩니다.
33
+ source-of-truth markdown 문서라면 상단 가까이에 `## Summary` 섹션이 있어야 합니다.
34
+ 그래야 도구가 먼저 짧은 버전을 읽고, 정말 자세한 내용이 필요할 때만 본문을 확장해서 볼 수 있습니다.
34
35
 
35
36
  ## 5. 온보딩은 명시적이고 가이드형이어야 한다
36
37
 
37
- 유용한 글로벌 컨텍스트를 만들기 위해 사용자가 직접 onboarding JSON을 손으로 작성할 필요는 없어야 합니다.
38
- `gctree init`과 `gctree onboard`는 사용자가 고른 provider를 통해 질문을 주고받으며 활성 gc-branch에 결과를 기록해야 합니다.
38
+ 유용한 컨텍스트 트리를 만들기 위해 사용자가 온보딩용 JSON을 손으로 작성하게 하면 됩니다.
39
+ `gctree init`과 `gctree onboard`는 사용자가 선호하는 provider를 기준으로 흐름을 안내하고, 결과 컨텍스트를 현재 활성 gc-branch에 넣어야 합니다.
39
40
 
40
- 온보딩은 비어 있는 gc-branch에서만 실행합니다.
41
- 이미 컨텍스트가 있다면 다음 하나가 올바른 경로입니다.
41
+ 온보딩은 비어 있는 gc-branch에서만 해야 합니다.
42
+ 이미 컨텍스트가 들어 있는 gc-branch라면 올바른 경로는 둘 중 하나입니다.
42
43
 
43
- - gc-branch를 리셋하고 다시 온보딩한다
44
- - 또는 가이드형 장기 업데이트를 실행한다
44
+ - gc-branch를 리셋하고 다시 온보딩하기
45
+ - 혹은 가이드형 장기 업데이트를 실행하기
45
46
 
46
- ## 6. 장기 업데이트는 의도적으로 수행한다
47
+ ## 6. 장기 업데이트는 의도적으로만 일어나야 한다
47
48
 
48
- 장기 컨텍스트는 실수로 바뀌거나 숨겨진 메모리로 덮어써지면 안 됩니다.
49
- 업데이트는 명시적이어야 하고, provider 통해 진행되며, 항상 현재 활성 gc-branch 연결되어야 합니다.
49
+ 장기 컨텍스트는 우연히 바뀌거나 숨겨진 메모리를 통해 바뀌면 안 됩니다.
50
+ 업데이트 흐름은 명시적이어야 하고, provider 주도해야 하며, 현재 활성 gc-branch 분명히 연결되어 있어야 합니다.
@@ -8,12 +8,12 @@
8
8
 
9
9
  ## 1. Keep context branch-aware
10
10
 
11
- A single machine should be able to hold multiple global-context trees without mixing them.
12
- That is why `gctree` uses git-like language such as `checkout` and `checkout -b`, while referring to the active branch as a **gc-branch** in user-facing language.
11
+ One machine should be able to hold multiple global-context trees without mixing them together.
12
+ That is why `gctree` uses git-like language such as `checkout` and `checkout -b`, while still referring to the active branch as a **gc-branch** in user-facing copy.
13
13
 
14
14
  ## 2. Keep repo scope explicit
15
15
 
16
- A gc-branch should not silently affect every repository on the machine.
16
+ A gc-branch should not quietly affect every repository on the machine.
17
17
  `gctree` uses `branch-repo-map.json` to record whether a repository is:
18
18
 
19
19
  - included for a gc-branch
@@ -31,7 +31,7 @@ It should stay compact and link-oriented instead of duplicating full knowledge i
31
31
  ## 4. Make source docs summary-first
32
32
 
33
33
  Every source-of-truth markdown document should include a `## Summary` section near the top.
34
- That gives downstream tools a fast path: read the short version first, then expand only when more detail is necessary.
34
+ That gives downstream tools a fast path: read the short version first, then expand only when more detail is actually needed.
35
35
 
36
36
  ## 5. Make onboarding explicit and guided
37
37
 
@@ -1,49 +1,50 @@
1
- # 原理
1
+ # 原则
2
2
 
3
3
  [English](principles.md) | [한국어](principles.ko.md) | [简体中文](principles.zh.md) | [日本語](principles.ja.md) | [Español](principles.es.md)
4
4
 
5
- ## Summary
5
+ ## 摘要
6
6
 
7
- `gctree` 遵循一组简洁而明确的产品原则:上下文按 gc-branch 隔离、文档采用 summary-first 结构、索引保持精简,并且让每个 gc-branch 只在真正相关的仓库里生效。
7
+ `gctree` 遵循几条很小但很明确的产品规则:上下文要有分支意识,source 文档要坚持 summary-first,index 要保持轻量,repo scope 要显式管理,这样每条 gc-branch 才只会影响它真正该影响的仓库。
8
8
 
9
- ## 1. 按 gc-branch 隔离上下文
9
+ ## 1. 让上下文具备分支意识
10
10
 
11
- 一台机器可以同时保存多个全局上下文树,而且彼此不混淆。
12
- 因此 `gctree` 虽然使用 `checkout`、`checkout -b` 这样的 git 风格命令,但在用户界面里会明确把当前分支称为 **gc-branch**。
11
+ 一台机器上应该可以同时容纳多棵全局上下文树,而且彼此不混在一起。
12
+ 这也是为什么 `gctree` 使用 `checkout`、`checkout -b` 这类类似 Git 的语言,同时在面向用户的表达里把当前分支称为 **gc-branch**。
13
13
 
14
- ## 2. 显式管理仓库范围
14
+ ## 2. 让 repo scope 保持显式
15
15
 
16
- 某个 gc-branch 不应该悄悄影响整台机器上的所有仓库。
17
- `gctree` 通过 `branch-repo-map.json` 记录一个仓库相对于某个 gc-branch 的状态:
16
+ gc-branch 不应该悄悄影响机器上的每一个仓库。
17
+ `gctree` `branch-repo-map.json` 来记录一个仓库对于某条 gc-branch 处于哪种状态:
18
18
 
19
- - include
20
- - exclude
21
- - 尚未映射
19
+ - 被该 gc-branch 包含
20
+ - 被该 gc-branch 排除
21
+ - 还没有映射
22
22
 
23
- `resolve` 在一个尚未映射的仓库里被调用时,用户可以选择是仅本次继续、以后总是使用,还是在这里忽略它。
23
+ 如果从一个尚未映射的仓库里调用 `resolve`,用户可以决定是只继续这一次、以后都在这里使用该 gc-branch,还是在这里忽略它。
24
24
 
25
- ## 3. 保持 `index.md` 精简
25
+ ## 3. `index.md` 保持轻量
26
26
 
27
- 顶层 `index.md` 是索引,不是内容堆积区。
28
- 它的职责是把工具快速引导到正确的源文档,而不是把所有知识都内联复制进去。
27
+ 顶层的 `index.md` 是索引,不是内容倾倒区。
28
+ 它的职责是帮助工具和人快速找到正确的 source 文档。
29
+ 所以它应该保持紧凑、以链接为主,而不是把完整知识大段复制进去。
29
30
 
30
- ## 4. 优先使用 summary-first 文档
31
+ ## 4. source 文档遵循 summary-first
31
32
 
32
- 每个 source-of-truth markdown 文档都应该在靠前位置包含 `## Summary`。
33
- 这样工具可以先读取简短版本,如果摘要已经足够,就不必再读取整篇文档。
33
+ 每一份 source-of-truth markdown 文档,都应该在靠前的位置带上 `## Summary` 段落。
34
+ 这样下游工具就有一条快速路径:先读短版本,只有确实需要更多细节时再继续展开。
34
35
 
35
36
  ## 5. 让 onboarding 明确且有引导
36
37
 
37
- 用户不应该为了创建可用的全局上下文而手写 onboarding JSON。
38
- `gctree init` 和 `gctree onboard` 应该通过用户选择的 provider 与用户对话,并把结果写入当前 gc-branch。
38
+ 为了创建一棵有用的上下文树,用户不应该被迫手写 onboarding JSON。
39
+ `gctree init` 和 `gctree onboard` 应该围绕用户偏好的 provider 提供引导,并把结果写入当前激活的 gc-branch。
39
40
 
40
41
  onboarding 只适用于空的 gc-branch。
41
- 如果该 gc-branch 已经有内容,正确做法是:
42
+ 如果某条 gc-branch 已经包含上下文,正确的路径只有两种:
42
43
 
43
- - 重置该 gc-branch 后重新 onboarding
44
- - 或者执行一次引导式长期更新
44
+ - 重置这条 gc-branch,然后重新 onboarding
45
+ - 或者执行一次带引导的长期更新
45
46
 
46
- ## 6. 让长期更新保持可控
47
+ ## 6. 让长期更新保持有意图
47
48
 
48
- 长期上下文不应该因为隐式记忆或误操作而被改写。
49
- 更新流程应当是显式的、由 provider 驱动的,并且始终绑定到当前激活的 gc-branch
49
+ 长期上下文不应该因为意外或隐藏式记忆而发生变化。
50
+ 更新流程必须是显式的、由 provider 驱动的,并且明确绑定到当前激活的 gc-branch 上。
package/docs/usage.es.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
- ## Summary
5
+ ## Resumen
6
6
 
7
- Un flujo estándar de `gctree` consiste en inicializar gc-tree, elegir un provider, completar el onboarding del gc-branch `main`, crear nuevos gc-branches cuando haga falta, asociar cada repositorio al gc-branch correcto y usar actualizaciones guiadas para los cambios duraderos.
7
+ Un flujo estándar con `gctree` suele ser así: inicializar gc-tree, elegir un provider, hacer onboarding del gc-branch `main`, resolver el contexto activo cuando haga falta, crear nuevos gc-branches cuando el trabajo lo pida, mapear cada repo al gc-branch correcto y usar actualizaciones guiadas para los cambios duraderos.
8
8
 
9
9
  ## Flujo estándar
10
10
 
11
11
  1. ejecuta `gctree init`
12
12
  2. elige tu modo de provider preferido (`claude-code`, `codex` o `both`)
13
- 3. elige el idioma del flujo (`English`, `Korean` o escribe tu propio idioma)
13
+ 3. elige el idioma del flujo (`English`, `Korean` o un idioma personalizado)
14
14
  4. si elegiste `both`, decide qué provider debe iniciar este onboarding
15
15
  5. completa el onboarding guiado del gc-branch `main`
16
- 6. resuelve el contexto relevante con `gctree resolve --query "..."`
16
+ 6. usa `gctree resolve --query "..."` para recuperar el contexto relevante
17
17
  7. crea o cambia gc-branches con `gctree checkout`
18
- 8. usa `gctree onboard` solo en gc-branches vacíos
19
- 9. usa el mapeo por repositorio para que cada gc-branch solo aplique donde corresponde
20
- 10. usa `gctree update-global-context` para cambios duraderos posteriores
18
+ 8. usa `gctree onboard` solo en un gc-branch vacío
19
+ 9. configura el repo scope para que cada gc-branch solo se aplique donde corresponde
20
+ 10. usa `gctree update-global-context` para los cambios duraderos posteriores
21
21
 
22
22
  ## Comandos clave
23
23
 
24
24
  | Comando | Propósito |
25
25
  | --- | --- |
26
- | `gctree init` | Crea `~/.gctree`, crea el gc-branch `main`, guarda el modo de provider, el provider real de onboarding y el idioma preferido, prepara el entorno actual y arranca el onboarding guiado si `main` está vacío. |
26
+ | `gctree init` | Crea `~/.gctree`, crea el gc-branch `main`, guarda el modo de provider, el provider de onboarding y el idioma preferido, hace scaffold del entorno actual y arranca el onboarding guiado cuando `main` está vacío. |
27
27
  | `gctree checkout <branch>` | Cambia el gc-branch activo. |
28
28
  | `gctree checkout -b <branch>` | Crea un gc-branch vacío nuevo y cambia a él. |
29
- | `gctree branches` | Lista los gc-branches disponibles y muestra el activo. |
30
- | `gctree status` | Muestra el gc-branch activo, el repo actual, el estado de alcance para ese repo, las advertencias y el provider guardado. |
31
- | `gctree resolve --query TEXT` | Busca contexto en el gc-branch relevante. Si el repo actual aún no está mapeado, permite decidir interactivamente qué hacer. |
29
+ | `gctree branches` | Lista los gc-branches disponibles y marca cuál está activo. |
30
+ | `gctree status` | Muestra el gc-branch activo, el repo actual, el estado actual de repo scope, advertencias y el provider preferido. |
31
+ | `gctree resolve --query TEXT` | Busca contexto en el gc-branch relevante. Si el repo actual no está mapeado, `gctree` puede preguntar cómo debe tratarse ese repo. |
32
32
  | `gctree repo-map` | Muestra el contenido actual de `branch-repo-map.json`. |
33
- | `gctree set-repo-scope --branch <name> --include` | Añade el repo actual al include de ese gc-branch. |
34
- | `gctree set-repo-scope --branch <name> --exclude` | Añade el repo actual al exclude de ese gc-branch. |
35
- | `gctree onboard` | Inicia el onboarding guiado del gc-branch activo. Solo funciona si ese gc-branch está vacío. |
36
- | `gctree reset-gc-branch --branch <name> --yes` | Limpia un gc-branch para poder volver a hacer onboarding. |
37
- | `gctree update-global-context` | Inicia una actualización duradera guiada para el gc-branch activo. |
33
+ | `gctree set-repo-scope --branch <name> --include` | Marca el repo actual como incluido para ese gc-branch. |
34
+ | `gctree set-repo-scope --branch <name> --exclude` | Marca el repo actual como ignorado para ese gc-branch. |
35
+ | `gctree onboard` | Lanza el onboarding guiado para el gc-branch activo. Solo funciona si ese gc-branch está vacío. |
36
+ | `gctree reset-gc-branch --branch <name> --yes` | Vacía un gc-branch para poder onboardearlo de nuevo. |
37
+ | `gctree update-global-context` | Lanza una actualización duradera guiada para el gc-branch activo. |
38
38
  | `gctree update-gc` / `gctree ugc` | Alias de `gctree update-global-context`. |
39
39
  | `gctree scaffold --host <codex|claude-code>` | Instala la superficie de comandos del provider en otro entorno. |
40
40
 
41
- ## Ejemplo de alcance por repositorio
41
+ ## Ejemplo de repo scope
42
42
 
43
- Por ejemplo, si el gc-branch `A` solo aplica a `B`, `C` y `D`, y no a `F`, puedes gestionarlo así:
43
+ Supón que el gc-branch `A` es relevante para los repos `B`, `C` y `D`, pero no para `F`.
44
+
45
+ Puedes gestionarlo así:
44
46
 
45
47
  ```json
46
48
  {
@@ -57,7 +59,7 @@ Guardado en:
57
59
  ~/.gctree/branch-repo-map.json
58
60
  ```
59
61
 
60
- Si luego llamas a `resolve` desde `E`, puedes elegir entre:
62
+ Cuando ejecutas `resolve` desde el repo `E` y la rama `A` todavía no está mapeada allí, `gctree` puede preguntarte si quieres:
61
63
 
62
64
  1. continuar solo esta vez
63
65
  2. usar siempre `A` en `E`
@@ -69,13 +71,13 @@ Si luego llamas a `resolve` desde `E`, puedes elegir entre:
69
71
  gctree init
70
72
  ```
71
73
 
72
- Después:
74
+ Luego:
73
75
 
74
76
  1. elige `codex` o `claude-code`
75
- 2. deja que `gctree` prepare el entorno actual
76
- 3. completa el onboarding del gc-branch `main`
77
+ 2. deja que `gctree` haga scaffold del entorno actual
78
+ 3. completa el onboarding guiado del gc-branch `main`
77
79
 
78
- ## Ejemplo con varios gc-branches
80
+ ## Ejemplo con varias ramas
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
- Si al trabajar descubres que un repo realmente pertenece al gc-branch actual, el flujo natural es:
101
+ Si un repo recién relevante también debería formar parte del contexto duradero, el flujo natural es:
100
102
 
101
- 1. primero añadir ese repo al branch repo map
102
- 2. después ejecutar `update-global-context` para agregar contexto duradero sobre qué hace ese repo y por qué importa
103
+ 1. primero mapear ese repo al gc-branch
104
+ 2. después ejecutar `update-global-context` para añadir conocimiento duradero sobre qué hace ese repo y por qué importa
103
105
 
104
106
  ## Patrones de integración
105
107
 
106
108
  ### Codex CLI / Claude Code CLI
107
109
 
108
- `gctree scaffold` instala comandos del provider para onboarding y actualizaciones guiadas.
109
- Esos comandos deben dejar claro cuál es el gc-branch activo antes de empezar, y también deben mantener el idioma guardado durante todo el flujo salvo que el usuario pida cambiarlo explícitamente.
110
+ `gctree scaffold` instala la superficie de comandos orientada al provider, como el onboarding guiado y las actualizaciones guiadas.
111
+ Esos comandos deberían mencionar de forma explícita cuál es el gc-branch activo antes de empezar a recopilar o aplicar contexto duradero, y también deberían seguir usando el idioma guardado salvo que la persona usuaria pida cambiarlo.
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
  ### Comportamiento en runtime
117
119
 
118
- El gc-branch activo es el fallback apuntado por `HEAD` dentro de `~/.gctree`.
119
- Pero si un repo está vinculado explícitamente a otro gc-branch, para ese repo el branch map tiene prioridad sobre HEAD.
120
+ Por defecto, el gc-branch activo es el que apunta `HEAD` dentro de `~/.gctree`, pero el repo mapping puede sobrescribir ese valor si un repositorio está ligado explícitamente a otro gc-branch.
121
+ Eso hace que gc-tree sea práctico incluso para quienes mantienen muchas sesiones abiertas a la vez en repositorios que no tienen relación entre sí.