install: default jj setup in one-click flow
This commit is contained in:
97
README.md
97
README.md
@@ -33,6 +33,9 @@
|
||||
|
||||
## 一键安装
|
||||
|
||||
安装器现在会先安装 skill,再默认尝试安装 `jj`。
|
||||
如果 `jj` 因本机环境、包管理器或网络原因安装失败,安装器不会失败,只会给出手动安装提示。
|
||||
|
||||
### Linux
|
||||
|
||||
```bash
|
||||
@@ -55,6 +58,41 @@ powershell -NoProfile -ExecutionPolicy Bypass -Command "iwr -useb https://fun-md
|
||||
|
||||
- `~/.codex/skills/gitea-issue-devops-agent`
|
||||
|
||||
默认 `jj` 安装顺序:
|
||||
|
||||
- Linux / macOS:`brew -> cargo-binstall -> cargo`
|
||||
- Windows:`winget -> scoop -> cargo`
|
||||
|
||||
安装控制项:
|
||||
|
||||
### Bash
|
||||
|
||||
```bash
|
||||
INSTALL_JJ=0
|
||||
JJ_INSTALL_METHOD=auto|brew|binstall|cargo
|
||||
JJ_CHANNEL=release|prerelease
|
||||
```
|
||||
|
||||
### PowerShell
|
||||
|
||||
```powershell
|
||||
$env:INSTALL_JJ='0'
|
||||
$env:JJ_INSTALL_METHOD='auto' # 或 winget / scoop / cargo
|
||||
$env:JJ_CHANNEL='release' # 或 prerelease
|
||||
```
|
||||
|
||||
验证命令:
|
||||
|
||||
```bash
|
||||
jj --version
|
||||
jj config set --user user.name "Your Name"
|
||||
jj config set --user user.email "you@example.com"
|
||||
```
|
||||
|
||||
详细说明:
|
||||
|
||||
- `skills/gitea-issue-devops-agent/references/jj-default-usage.md`
|
||||
|
||||
## 工具使用说明
|
||||
|
||||
### issue_audit.py
|
||||
@@ -97,6 +135,11 @@ python skills/gitea-issue-devops-agent/scripts/preview_slot_allocator.py --state
|
||||
- `issue` 或固定 issue 触发来源
|
||||
- 可选:`target_base`、`plan_path`、`reviewers`、`test_entry`、`deploy_env`、`health_endpoint`、`min_quality_score`、`jj_policy`
|
||||
|
||||
推荐默认值:
|
||||
|
||||
- `jj_policy=optional-internal`
|
||||
- 先固定 issue,再进入 `Plan -> Draft PR -> 提测 -> 人工确认合并`
|
||||
|
||||
### Claude Code
|
||||
|
||||
Skills 目录(官方支持):
|
||||
@@ -161,6 +204,14 @@ api_key=<TOKEN>
|
||||
mode=manual
|
||||
```
|
||||
|
||||
## `jj` 在工作流中的定位
|
||||
|
||||
默认安装 `jj`,但不要求非工程角色理解 `jj`。
|
||||
|
||||
- 对外:继续使用 `issue / git branch / PR / CI/CD / review apps`
|
||||
- 对内:用 `jj` 承担本地执行、回退、并行 workspace、变更重写
|
||||
- 原则:`jj` 是内部可靠性增强层,不替代你们对外的 Git/Gitea 协作界面
|
||||
|
||||
## `skills` 命令参数释义(重点补充)
|
||||
|
||||
> 本节把“`skills` 命令”统一理解为:在 Claude/Codex/OpenCode 中显式调用 `gitea-issue-devops-agent` 时提交的参数块。
|
||||
@@ -213,6 +264,14 @@ min_quality_score=70
|
||||
|
||||
适用:问题描述完整、团队希望最大化自动化吞吐。
|
||||
|
||||
典型流程:
|
||||
|
||||
1. 人工在 Gitea 选中 issue。
|
||||
2. MajorAgent 生成 Plan 并创建分支、Draft PR。
|
||||
3. SubAgent 只读取必要上下文并修改计划内路径。
|
||||
4. TestAgent 跑单测、集成测试、issue 级 e2e。
|
||||
5. 通过后进入 preview slot 和人工复核。
|
||||
|
||||
#### 场景 2:生产敏感仓库,人工确认每一步
|
||||
|
||||
```text
|
||||
@@ -227,6 +286,13 @@ health_endpoint: /healthz
|
||||
|
||||
适用:高风险改动、强合规流程、需要逐步确认分支/提交/提测/关闭。
|
||||
|
||||
典型流程:
|
||||
|
||||
1. 先生成 Plan。
|
||||
2. 每次代码改动前都确认允许范围。
|
||||
3. 提测、回写 issue、关闭 issue、最终 merge 都要人工确认。
|
||||
4. 如 AI 偏航,可用 `jj` 做本地回退而不破坏外部 PR。
|
||||
|
||||
#### 场景 3:半自动协作,先评审后提测
|
||||
|
||||
```text
|
||||
@@ -243,6 +309,13 @@ preview_slots=preview-a,preview-b,preview-c
|
||||
|
||||
适用:多人协作项目,需要评审人显式批准后再进入提测和环境分配。
|
||||
|
||||
典型流程:
|
||||
|
||||
1. AI 先产出初始 Draft PR。
|
||||
2. 工程师在 AI 编码工具里继续白盒调整。
|
||||
3. reviewer 回复 `review-approved` 后才进入提测。
|
||||
4. maintainer 最后确认 merge。
|
||||
|
||||
#### 场景 4:仅文档改动或轻量改动,资源最省策略
|
||||
|
||||
```text
|
||||
@@ -251,10 +324,34 @@ preview_slots=preview-a,preview-b,preview-c
|
||||
|
||||
配合 `change_scope.py` 可自动得到 `skip` 或 `client_only`,避免不必要的服务端重启和环境开销。
|
||||
|
||||
#### 场景 5:多 Agent 并行,但上下文不脑裂
|
||||
|
||||
```text
|
||||
issue=48
|
||||
mode=semi-automatic
|
||||
jj_policy=optional-internal
|
||||
plan_path=.tmp/devops-plans/devops-skills__issue-48.md
|
||||
```
|
||||
|
||||
典型流程:
|
||||
|
||||
1. MajorAgent 只负责 issue 语义分析和 Plan。
|
||||
2. SubAgent 只负责修改代码。
|
||||
3. TestAgent 在独立 `jj workspace` 里验证。
|
||||
4. 人工 reviewer 再决定是否继续迭代或合并。
|
||||
|
||||
适用:长流程、多角色协作、希望降低 token 消耗和上下文漂移。
|
||||
|
||||
## 技能路径
|
||||
|
||||
- `skills/gitea-issue-devops-agent/SKILL.md`
|
||||
|
||||
## 核心文档
|
||||
|
||||
- `skills/gitea-issue-devops-agent/references/issue-template-standard.md`
|
||||
- `skills/gitea-issue-devops-agent/references/plan-template.md`
|
||||
- `skills/gitea-issue-devops-agent/references/jj-default-usage.md`
|
||||
|
||||
## 核心脚本
|
||||
|
||||
- `skills/gitea-issue-devops-agent/scripts/issue_audit.py`
|
||||
|
||||
Reference in New Issue
Block a user