# 角色定义 (与 kg.py ROLE_SECTIONS 的 5 角色对齐)
# commands: 该角色建议主用的命令 (软引导, 不拦截 —— 任何角色都能跑任何命令)
# permissions: 声明式权限 (遗留字段, 向后兼容)
#
# ★ 能力边界 (v3.0+ 解耦核心) ★
# can_produce: 该角色允许产出的契约类型 (guard.py 强制, 越权则降级)
# can_consume: 该角色允许读取/消费的能力 (越权则只读降级)
# 契约类型必须与 contracts/schemas/*.schema.json 的 type 对齐:
#   prd / prototype / spec / design-spec / code / unit-test / test-report / task
roles:
  pm:
    name: 产品经理
    permissions: [create_task, write_prd, approve_prd, review_spec]
    commands: [wl-init, wl-insight, wl-prd, wl-design, wl-task, wl-search, wl-status, wl-report]
    can_produce: [prd, prototype]
    can_consume: ["*"]              # PM 需读代码做现状分析
  design:
    name: 设计师
    permissions: [upload_design, approve_design]
    commands: [wl-init, wl-design, wl-search, wl-status]
    can_produce: [design-spec, prototype]
    can_consume: [prd, code-search]
  dev:
    name: 开发
    permissions: [write_spec, implement, commit, review_code]
    commands: [wl-init, wl-spec, wl-code, wl-test, wl-search, wl-commit, wl-status]
    can_produce: [spec, code, unit-test]
    can_consume: [prd, prototype, task]
  test:
    name: 测试
    permissions: [run_test, review_acceptance]
    commands: [wl-init, wl-test, wl-search, wl-status]
    can_produce: [test-report, test-cases, unit-test]
    can_consume: [prd, task, prototype]
  admin:
    name: 管理员
    permissions: [manage_index, manage_members, all]
    commands: [wl-init, wl-status, wl-search, wl-report]
    can_produce: ["*"]
    can_consume: ["*"]

pipeline:
  workspace_dir: workspace
  prd_dir: specs/prd
  spec_dir: specs
  task_dir: tasks
  data_dir: data
  auto_spec_on_prd_push: true
  req_id_start: 1

# ── MySQL 只读 MCP (团队共享, 多环境) ──
# AI 查数据库时会先问"查哪个环境"，用这里的标签让用户选。
# 标签名自定义 (test/pre/prod 或 qa/staging...)，对应 environments 下的 key。
# 没配 environments (旧扁平结构) 时兼容：当作只有 default_env 一个环境。
mysql:
  default_env: test            # AI 不指定 / 用户不选时的默认环境
  environments:
    test:                      # 测试环境
      host: 10.54.6.9
      port: 3306
      user: fywl_ics_test
      password: Fywl_ics_test56476
      env_name: "QAS 测试环境"   # 显示标签，会随查询结果返回提醒 AI 当前在哪个环境
    pre:                       # 预生产环境 (按需填, 不用可整段删)
      host: 10.54.6.10
      port: 3306
      user: fywl_ics_pre_ro
      password: ""
      env_name: "预生产环境"
    prod:                      # 生产环境 (⚠️ 只读账号! 配了才能查, 查时 AI 会标红提醒)
      host: fywl-mysql.rwlb.rds.aliyuncs.com
      port: 3306
      user: queryuser
      password: "query2025_ics@infore"
      env_name: "生产环境"

# ── 禅道 MCP (自建内网) ──
# v3.1.4: 禅道是【每人一个账号】(非团队共享)。
#   - url (服务地址): 团队共享, 留这里。
#   - user/password (个人凭据): 不放这里 (进 git 会泄露)。
#     每人各自填 workspace/members/{我}/.private/secrets/zentao.env:
#       ZENTAO_USER=<你的禅道账号>
#       ZENTAO_PASSWORD=<你的禅道密码>
#   - 账号名映射: member.json 的 zentao_account (进 git, 用于归属过滤)。
zentao:
  url: http://10.89.2.91/zentao

# ── Platforms (知识图谱/搜索的平台映射, 换项目改这里即可) ──
# search_index.py --platform <key或alias> 会过滤到对应 project 目录
platforms:
  web:
    project: fywl-ui
    aliases: [pc, 管理端, 后台]
    ui_stack: "Ant Design Vue + VxeGrid (Vben Admin)"
    prototype_template: .qoder/templates/prototype-web.html
  app:
    project: Carmg-H5
    aliases: [mobile, h5, 移动端]
    ui_stack: "Vant 3"
    prototype_template: .qoder/templates/prototype-app.html

# ── 自动化测试 (浏览器/E2E) ──
# /wl-test 浏览器测试用。base_url 留空=未配, run 时报错提示用 --url 或在此填。
# 命令行 --url > --env(查这里) > 报错。换部署地址改这里即可, 不用动脚本。
autotest:
  default_env: test              # /wl-test 不指定 --env 时的默认环境
  environments:
    test:                        # 测试环境
      web: { base_url: "https://icsqas.inforecloud.com/" }      # ← 填 fywl-ui 测试地址, 如 http://10.x.x.x:8080
      app: { base_url: "" }      # ← 填 Carmg-H5 测试地址
    pre:                         # 预生产环境
      web: { base_url: "https://icspre.inforecloud.com/" }
      app: { base_url: "" }
    prod:                        # 生产环境 (慎用, 会测真实数据)
      web: { base_url: "https://ics.inforecloud.com/" }
      app: { base_url: "" }
  # 生成用例时从 PRD 哪些段抽取验收点 (AI 读 skill 时参考)
  case_source_section: ["验收标准", "功能清单"]

# ── 团队协作仓库 (workspace/ 产出 push 到这里) ──
# 这是团队共享 PRD/任务/原型的仓库, 跟 data/code/ 的源码仓库不同。
# setup.py init 时会交互式配置 git remote add origin <url>。
# 不配也能本地工作, 但 push/同步功能不可用。
team_remote:
  url: ""  # 留空则 setup.py 会问; 填了团队所有人 init 时自动用这个地址
  branch: master  # 团队主分支

# ── Git Sync (Weekly) ──
# 每个项目在 data/code/ 下有自己的 git 仓库
# 运行: python .qoder/scripts/orchestration/wlkj.py git-sync
# 或设 cron: 每周五 18:00
#
# ★ 源码仓库配置 (重要) ★
#   把下面的 url 改成你团队的 git 地址 (Gitea/GitLab/GitHub 均可)。
#   branch 改成你的主分支。
#   不知道填什么? 注释掉整个 projects 段, 手动把代码放到 data/code/<项目名>/ 即可。
#   填完后跑: python .qoder/scripts/orchestration/wlkj.py doctor --fix  会自动克隆+建索引。
git_sync:
  schedule: "0 18 * * 5"
  projects:
    Carmg-H5:
      remote: origin
      url: http://10.87.106.228:8877/pengxicheng/Carmg-H5.git
      branch: master
    fywl-ics:
      remote: origin
      url: http://10.87.106.228:8877/fywl-ics/fywl-ics.git
      branch: online
    fywl-ui:
      remote: origin
      url: http://10.87.106.228:8877/fywl-ics/fywl-ui.git
      branch: online


prd_modes:
  reference:
    steps: [scan, analyze, reflect, confirm, generate]
    product_types: [B2C, B2B, internal, platform]
    quality_checklist:
      - background_not_vague
      - goals_quantifiable
      - user_personas_specific
      - business_rules_exhaustive
      - exceptions_covered
      - ac_testable
      - data_events_complete
      - no_tech_implementation
      - priority_tagged
      - schedule_grounded
    built_in:
      - competitive_scan
      - story_breakdown
  # Brainstorm mode (dispatches .qoder/agents/prd-research.md sub-agents)
  brainstorm:
    min_agents: 2
    default_agents: 4
    built_in:
      - SCAMPER
      - 5Whys
      - constraint_innovation
      - impact_effort_screening
  planning:
    steps: [current_state, ideal_state, gap_analysis, plans]
  quick:
    steps: [locate, generate, confirm]

task:
  prioritization: RICE
  auto_rank: true

status:
  dimensions:
    - on_time_delivery
    - scope_stability
    - dependency_health
    - pipeline_flow
    - learning_growth

insight:
  types: [feedback, metrics]

# ── Feishu (飞书) 通知集成 (阶段 D) ──
# 群机器人 webhook: 在飞书群设置 > 群机器人 > 添加自定义机器人 > 拿 webhook URL
# 支持环境变量覆盖: export FEISHU_WEBHOOK_URL=...
feishu:
  enabled: false  # 设 true 并配 webhook_url 后才推送
  webhook_url: ""  # 或填群机器人 webhook, 或用环境变量 FEISHU_WEBHOOK_URL
  secret: ""       # 签名校验密钥 (机器人启用签名校验时填), 或 FEISHU_SECRET
  # 推送哪些事件 (不配则全推)
  events:
    - task_finished       # 任务完成
    - prd_published       # PRD 发布
    - eval_rejected       # EVA 门禁拒绝
    - deadline_warning    # 截止日期临近 (由 /wl-status 触发)
  # 卡片主题色 (default/green/orange/red)
  theme:
    task_finished: green
    prd_published: blue
    eval_rejected: red
    deadline_warning: orange

  feedback_categories: [feature_request, bug, UX, performance, praise, question]
  metrics_analyses: [growth, retention, funnel, ab_experiment, okr]

notification:
  console:
    type: console
    enabled: true
