chore: agent 配置文件纳入版本管理 + docs/ 项目章程与全局状态 - Closes #37
CI / test (pull_request) Successful in 11s

- agents/DEV_AGENT.md: 新增启动读取 docs、Session 收尾流程、自行验证关闭 Issue
- agents/QE_AGENT.md: 新增启动读取 docs、Session 收尾流程
- docs/PROJECT_CHARTER.md: 项目章程(背景、愿景、目标、约束)
- docs/GLOBAL_STATE.md: 项目全局状态(架构、已知问题、变更日志)
- scripts/: 启动脚本重构,引入 _common.sh

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 13:57:42 +08:00
parent 4cf9f1d3e0
commit 3a3091d0df
8 changed files with 390 additions and 158 deletions
+19 -48
View File
@@ -1,55 +1,26 @@
#!/usr/bin/env bash
# QE-Agent 启动脚本 — 在 Git Bash 中运行
# QE-Agent 启动脚本 — 单次任务 + 互动轮询 两种模式
# 用法: bash scripts/start_qe_agent.sh
# 前置: 在 scripts/.env 中设置 GITEA_API_TOKEN
set -e
set -eu
export GITEA_API_TOKEN="59117246ec418d5d87042de073b0d4197d8054bf"
export GITEA_URL="http://localhost:3000"
export GITEA_REPO="pzhang_zywl/document_analyzer"
export QE_AGENT_ID="qa-01"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
source "$SCRIPT_DIR/_common.sh"
cd "$(dirname "$0")/.."
# Agent 标识: qa-MMDD-HHmm,可通过环境变量覆盖
export QE_AGENT_ID="${QE_AGENT_ID:-qa-$(date +%m%d-%H%M)}"
echo "============================================"
echo " QE-Agent 启动器"
echo "============================================"
echo ""
echo "模式选择:"
echo " [1] 单次任务 - 检查一次 test-dev Issue 并处理"
echo " [2] 持续轮询 - 每 10 分钟检查一次 (推荐)"
echo " [3] 交互模式 - 进入对话手动操作"
echo ""
read -r -p "请输入 (1/2/3): " MODE
banner "QE"
require_token
case "$MODE" in
1)
echo ""
echo "正在执行单次检查..."
claude -p --agent agents/QE_AGENT.md \
"你是 QE-Agent。检查 Gitea 上的 test-dev 和 acceptance-failure 标签 Issue--action list --labels test-dev 和 --labels acceptance-failure)。对 test-dev Issue:分析内容 → 开发验收测试到 tests/acceptance/ → pytest 本地验证 → commit 'test: <描述> - Closes #N' → push → create-pr → comment Issue → 等 CI 通过 → merge-pr。对 acceptance-failure Issue:分析失败原因 → 如果是测试本身问题修复测试 → 如果是管道问题开 test-dev issue 跟踪。"
;;
2)
echo ""
echo "启动持续轮询模式 (每 10 分钟)..."
echo "按 Ctrl+C 停止"
claude -p --agent agents/QE_AGENT.md \
"你是 QE-Agent。用 loop 模式每 10 分钟检查一次 Gitea 上的 test-dev 和 acceptance-failure 标签 Issue。对 test-dev Issue 走完整闭环:分析→开发验收测试→pytest验证→commit('test:' 前缀)→push→create-pr→comment→CI→merge-pr。对 acceptance-failure 分析失败原因→修复→push→PR。每个步骤用 agent_poller.py 对应命令。如果没有待处理 Issue,报告 '当前没有 QE 相关 Issuemain branch 质量正常'。"
;;
3)
echo ""
echo "启动交互模式 (默认 10 分钟轮询)..."
echo "按 Ctrl+C 停止"
echo ""
echo "可用命令速查:"
echo " agent_poller.py --action list --labels test-dev"
echo " agent_poller.py --action list --labels acceptance-failure"
echo " agent_poller.py --action get --issue <N>"
echo " python -m pytest tests/acceptance/ -v --run-acceptance"
claude --agent agents/QE_AGENT.md
;;
*)
echo "无效选择。"
exit 1
;;
esac
launch_agent \
"agents/QE_AGENT.md" \
"QE-Agent" \
"执行一次 Issue 巡检(单次任务,不要用 /loop):
1. python scripts/agent_poller.py --action list --labels test-dev 检查 test-dev Issue
2. python scripts/agent_poller.py --action list --labels acceptance-failure 检查 acceptance-failure Issue
3. test-dev Issue:分析 → 开发验收测试到 tests/acceptance/ → pytest 本地验证 → commit('test:' 前缀, Closes #N) → push → create-pr → 等 CI → merge-pr
4. acceptance-failure Issue:分析失败原因 → 测试问题则修复测试 → 管道问题则开 test-dev issue 跟踪
5. 所有 Issue 处理完毕后报告汇总并退出。" \
"现在开始工作。使用 /loop 10m 开启轮询:每 10 分钟检查 test-dev 和 acceptance-failure 标签 Issue,有则走完整闭环(分析→开发测试→pytest→push→PR→CI→merge),无则报告 main healthy。保持对话开放。"