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
+18 -49
View File
@@ -1,57 +1,26 @@
#!/usr/bin/env bash
# Dev-Agent 启动脚本 — 在 Git Bash 中运行
# Dev-Agent 启动脚本 — 单次任务 + 互动轮询 两种模式
# 用法: bash scripts/start_dev_agent.sh
# 前置: 在 scripts/.env 中设置 GITEA_API_TOKEN
set -e
set -eu
# Source local secrets if available (not tracked by git)
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
if [ -f "$SCRIPT_DIR/.env" ]; then
source "$SCRIPT_DIR/.env"
fi
source "$SCRIPT_DIR/_common.sh"
# Load from environment or default values
export GITEA_API_TOKEN="${GITEA_API_TOKEN:-}"
export GITEA_URL="${GITEA_URL:-http://localhost:3000}"
export GITEA_REPO="${GITEA_REPO:-pzhang_zywl/document_analyzer}"
export DEV_AGENT_ID="da-$(date +%m%d-%H%M)"
# Agent 标识: da-MMDD-HHmm,可通过环境变量覆盖
export DEV_AGENT_ID="${DEV_AGENT_ID:-da-$(date +%m%d-%H%M)}"
cd "$(dirname "$0")/.."
banner "Dev"
require_token
echo "============================================"
echo " Dev-Agent 启动器"
echo "============================================"
echo ""
echo "模式选择:"
echo " [1] 单次任务 - 检查一次 Issue 并处理"
echo " [2] 持续轮询 - 每 10 分钟检查一次 (推荐)"
echo " [3] 交互模式 - 进入对话手动操作"
echo ""
read -r -p "请输入 (1/2/3): " MODE
case "$MODE" in
1)
echo ""
echo "正在执行单次检查..."
claude -p --agent agents/DEV_AGENT.md \
"你是 Dev-Agent。检查 Gitea 所有打开的 Issue--action list),跳过纯测试相关的。对每个负责的 Issue,走完完整闭环:分析 → 分支 → 开发+UT → pytest → commit → push → create-pr → comment Issue → 等 CI → merge-pr → 关闭。"
;;
2)
echo ""
echo "启动持续轮询模式 (每 10 分钟)..."
echo "按 Ctrl+C 停止"
claude -p --agent agents/DEV_AGENT.md \
"你是 Dev-Agent。用 loop 模式每 10 分钟检查一次 Gitea Issue--action list)。跳过纯测试相关的。每个 Issue 走完整闭环:分析→开发→push→create-pr→comment→CI→merge-pr→close。每个步骤用 agent_poller.py 对应命令。"
;;
3)
echo ""
echo "启动交互模式..."
echo "进入后输入: 检查 Gitea Issues 并处理"
echo "可用命令速查: agent_poller.py --help"
claude --agent agents/DEV_AGENT.md
;;
*)
echo "无效选择。"
exit 1
;;
esac
launch_agent \
"agents/DEV_AGENT.md" \
"Dev-Agent" \
"执行一次 Issue 巡检(单次任务,不要用 /loop):
1. python scripts/agent_poller.py --action list 列出所有打开的 Issue
2. 跳过纯测试相关的 Issue
3. 对每个负责的 Issue 走完整闭环:
分析 → 分支 → 开发+UT → pytest → commit → push → create-pr → comment → 等 CI → merge-pr → 通知 QE 验证
4. 所有 Issue 处理完毕后报告汇总并退出。" \
"现在开始工作。使用 /loop 10m 开启轮询:每 10 分钟 python scripts/agent_poller.py --action list 检查打开的 Issue,跳过纯测试相关的,有则走完整闭环,无则报告 main healthy。保持对话开放。"