install: default jj setup in one-click flow
Some checks failed
publish-site / deploy-public-site (push) Has been cancelled
preview-slot-reclaim / reclaim (push) Has been cancelled

This commit is contained in:
2026-03-13 14:14:09 +08:00
parent ccfdda4342
commit 594c7e1a4d
6 changed files with 711 additions and 10 deletions

View File

@@ -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`