بنقرة واحدة
config-loader
Aria 项目级配置加载器(内部基础设施)。 查找、解析、验证 .aria/config.json 并合并默认值。 此 Skill 不直接触发,由其他 Skills 引用以读取项目配置。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Aria 项目级配置加载器(内部基础设施)。 查找、解析、验证 .aria/config.json 并合并默认值。 此 Skill 不直接触发,由其他 Skills 引用以读取项目配置。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
项目状态扫描与智能工作流推荐,十步循环的统一入口。 收集项目状态、分析变更、推荐最佳工作流、引导用户确认执行。 使用场景:"查看项目当前状态"、"我要提交代码"、"开发新功能"
会话收尾 —— 在任意对话(含未走完十步循环的探索/调试/讨论 session)把"未交接成果" 固化为 handoff。**与十步循环正交平级的会话仪式**(非周期收尾): AI 先内省本对话出 未完成线程 + 待固化经验, 再用机械 autofill 交叉核验补漏, 写 docs/handoff/。leaf — 终结于写交接, 不拖入十步循环。 使用场景: "对话收尾" / "执行对话收尾" / "会话收尾" / "session closeout" / "收尾这次对话" / "写交接" / "写 handoff" / "收工" / "结束本次对话" / context 快满时主动收尾。 不适用 (用 phase-d-closer): "Phase D" / "周期收尾" / "归档 Spec" / "更新 cycle 进度" —— 那是开发周期收尾, 不是会话收尾。
Git 多远程 parity 检测与 push 验证的共享基础设施。 内部工具, 仅供其他 skills 引用。提供标准化 Bash/Python 执行脚本段 + 输出 JSON schema 契约。
任务到 Agent 的智能路由器,根据任务类型、文件路径自动选择最合适的 Agent。 使用场景:subagent-driver 需要为任务选择 Agent、不确定应该使用哪个 Agent
向 Aria 维护团队报告 Bug 或提交功能建议。自动收集环境信息, 自动路由到 Forgejo(内部用户)或 GitHub(外部用户)。 使用场景:"报告 bug"、"report an issue"、"提交功能建议"、 "aria 有个问题想反馈"、"feature request"、"提 issue"、 "反馈问题"、"report bug to aria"
十步循环 Phase B - 开发阶段执行器,编排 B.1-B.3 步骤。 使用场景:"执行开发阶段"、"Phase B"、"创建分支并运行测试"
| name | config-loader |
| description | Aria 项目级配置加载器(内部基础设施)。 查找、解析、验证 .aria/config.json 并合并默认值。 此 Skill 不直接触发,由其他 Skills 引用以读取项目配置。 |
| user-invocable | false |
| disable-model-invocation | true |
| allowed-tools | Read, Glob |
版本: 1.0.0 | 角色: 内部基础设施 Skill
为所有需要读取项目配置的 Skills 提供统一的配置加载逻辑。
1. 查找 .aria/config.json (项目根目录)
2. 如果存在 → 解析 JSON
3. 旧配置兼容映射 (见下方"旧配置兼容层"章节)
4. 验证字段类型和范围
5. 与 DEFAULTS.json 合并 (用户值覆盖默认值)
6. 返回完整配置对象
| 场景 | 行为 |
|---|---|
| 文件缺失 | 静默返回 DEFAULTS.json 全部默认值 |
| JSON 格式错误 | 警告用户 + 返回默认值 |
| 字段类型错误 | 警告 + 使用该字段默认值 |
| 字段值超范围 | 警告 + clamp 到有效范围 |
workflow.auto_proceed:
type: boolean
default: false
state_scanner.confidence_threshold:
type: integer
range: [0, 100]
default: 90
state_scanner.auto_execute_enabled:
type: boolean
default: false
state_scanner.auto_execute_rules:
type: array of string
valid_values: [commit_only, quick_fix, doc_only, feature_with_spec]
default: [commit_only, quick_fix, doc_only]
state_scanner.audit_log_path:
type: string
default: ".aria/audit.log"
# Phase 1.12 — 本地/远程同步检测 (v2.9.0)
state_scanner.sync_check.enabled:
type: boolean
default: true
state_scanner.sync_check.check_submodules:
type: boolean
default: true
state_scanner.sync_check.check_remote:
type: boolean
default: false
# Phase 1.13 — Issue 感知扫描 (v2.9.0, opt-in)
state_scanner.issue_scan.enabled:
type: boolean
default: false
state_scanner.issue_scan.platform:
type: string | null
valid_values: [forgejo, github, null]
default: null
state_scanner.issue_scan.platform_hostnames:
type: object
default:
forgejo: ["forgejo.10cg.pub"]
github: ["github.com"]
# Forgejo hosts precedence (v1.30.0+, per OpenSpec aria-forgejo-hosts-parameterization):
# 1. ARIA_FORGEJO_HOSTS env var (comma-separated) ← highest
# 2. .aria/config.json platform_hostnames.forgejo
# 3. DEFAULTS.json fallback (forgejo.10cg.pub legacy)
# Env override applies to forgejo key only; github key untouched.
# Empty env (""/whitespace) and empty config list ([]) fall through to defaults.
state_scanner.issue_scan.cache_ttl_seconds:
type: integer
range: [60, 86400]
default: 900
state_scanner.issue_scan.cache_path:
type: string
default: ".aria/cache/issues.json"
state_scanner.issue_scan.stage_timeout_seconds:
type: integer
range: [3, 60]
default: 12
state_scanner.issue_scan.api_timeout_seconds:
type: integer
range: [1, 30]
default: 5
state_scanner.issue_scan.limit:
type: integer
range: [1, 100]
default: 20
state_scanner.issue_scan.label_filter:
type: array of string
default: []
# Layer L 多终端协调闸门 (multi-terminal-coordination; opt-out since
# coordination-claim-lifecycle-and-overlap Part A1)
# — coordination.enabled 承载 #133 AC-2 互斥不变式 (advanced-rules.md rule 1.54):
# enabled==true → cross-owner collision 由 phase1_gate 处理;
# enabled==false → 切口2 advisory (rule 1.54) surface collision。两者在 enabled 上严格互斥。
state_scanner.coordination.enabled:
type: boolean
default: true # Part A1 (defect a): false→true — 2026-07-11 双子星撞车实证 opt-in 默认导致认领从不发生; advisory mode 保证翻转不阻断任何流程。显式设 false 可退回 rule 1.54 advisory。
# 已知边界: runtime_probe._resolve_enabled_when 的缺键=off 是通用探针契约不随动 — 无此 key 的项目 coordination_probe 判 skipped (保守), 不误报 warn。
# mode 与 enabled 正交 (仅 enabled==true 时相关), 不改 rule 1.54 disjointness (DEC-20260704-002 §1, R1-C2)
state_scanner.coordination.mode:
type: string
valid_values: [advisory, block]
default: "advisory" # advisory=放行+写推自己 claim+surface 告警 (advisory-over-hardlock); block=旧交互 abort/yield 语义
# 远程引用新鲜度阈值 (state-scanner-stale-refs-false-parity Phase 0)
# — D15′/D18 阈值, 供 F1′ 双轴谓词 (evidence_grade) + 豁免资格判定使用。
# 由 multi_remote.py `_load_sync_freshness_config` 单独读取 (与 multi_remote 块正交)。
state_scanner.sync_freshness.evidence_window_seconds:
type: integer
default: 3600 # 证据窗 (E): leg 的 fetched_at 在此窗内才算 "fresh" 直接证据
state_scanner.sync_freshness.hard_cap_days:
type: integer
default: 7 # 墙钟硬顶: 超过即 expired, 豁免资格 (X) 一律不再成立
state_scanner.sync_freshness.k_min:
type: integer
default: 3 # 连续未验证次数下限; 冷启动下 k_eff = k_min (fail-CLOSED)
tdd.strictness:
type: string
valid_values: [advisory, strict, superpowers]
default: "advisory"
phase_b_developer.framework_build_check.enabled:
type: boolean
default: false # Aria #95: B.2.5 框架 build 验证开关
phase_b_developer.framework_build_check.command:
type: string | null
default: null # build 命令 (如 "npm run build"); null=no-op
phase_b_developer.framework_build_check.mode:
type: string
valid_values: [advisory, blocking]
default: "advisory" # advisory=警告不阻塞 / blocking=失败阻塞进 Phase C
benchmarks.require_before_merge:
type: boolean
default: true
benchmarks.skill_change_block_mode:
type: string
valid_values: [warn, block, off]
default: "warn"
experiments.agent_team_audit:
type: boolean
default: false
experiments.agent_team_audit_points:
type: array of string
valid_values: [pre_merge, post_implementation, post_spec]
default: [pre_merge]
audit.enabled:
type: boolean
default: false
audit.mode:
type: string
valid_values: [adaptive, manual, convergence, challenge]
default: "adaptive"
audit.max_rounds:
type: integer
range: [1, 20]
default: 5
# drift guard 完整功能需 max_rounds >= 3 (DRIFT_TERMINATED 需 consecutive_refocus >= 2,
# 至少 3 轮; max_rounds < 3 时 drift guard 降级为 max_rounds 兜底)
# audit.drift_guard.* — 多轮审计 Drift Guard 阈值与模式开关 (#17, v1.44.0)
audit.drift_guard.warn_threshold:
type: number
range: [0, 1]
default: 0.2
# 域外 → warn + default
audit.drift_guard.refocus_threshold:
type: number
range: [0, 1]
default: 0.5
# 约束 >= warn_threshold, 违反 → warn + 单向 clamp (refocus_threshold 抬升到 warn_threshold)
audit.drift_guard.convergence_mode:
type: boolean
default: false
# challenge 默认开 + convergence 可选 (本字段) + post_closure 由模式选择阶段屏蔽
audit.checkpoints.*:
type: string
valid_values: [off, convergence, challenge]
valid_keys: [post_brainstorm, post_spec, post_planning, post_implementation,
mid_implementation, mid_post_spec, pre_merge, post_closure]
default: "off"
# mid_post_spec (Aria #79): Phase B 实施期 spec 漂移条件触发的快速校验。
# trigger=spec_drift_detected; 恒 max_rounds=1; scope 限漂移点; advisory。
# 见 audit.mid_post_spec block + agent-team-audit/audit-points.md。
# Phase C.2.4 — Pre-Merge Precondition Gate (v1.3.0+, Forgejo Issue #60)
phase_c_integrator.pre_merge_gate.enabled:
type: boolean
default: true
phase_c_integrator.pre_merge_gate.ci_backends:
type: null | array of {name: string} | array of string
default: null # null/missing = auto-detect via static BACKENDS list; [] = explicit disable; non-empty list = user-specified order
# v1.31.0+ replaces legacy `primitive_preference` (alias still works, emits DeprecationWarning, removed in v2.0)
# Supported names: "aether-ci-cli" (real), "github-actions" (stub v1.31.0+)
# See aria/skills/phase-c-integrator/SKILL.md §C.2.4.X CI Backends
phase_c_integrator.pre_merge_gate.no_ci_fallback:
type: string
valid_values: [skip_with_warning, abort]
default: "skip_with_warning"
# v1.31.0+ replaces legacy `no_aether_fallback` (alias still works, emits DeprecationWarning, removed in v2.0)
phase_c_integrator.pre_merge_gate.wait_timeout_seconds:
type: integer
range: [60, 7200]
default: 1800
phase_c_integrator.pre_merge_gate.wait_check_intervals:
type: array of integer
default: [30, 60, 120, 300, 300]
# 数组耗尽后重复 intervals[-1] 直到 wait_timeout_seconds
phase_c_integrator.pre_merge_gate.primitive_call_timeout_seconds:
type: integer
range: [5, 300]
default: 30
phase_c_integrator.pre_merge_gate.poll_chunk_seconds:
type: integer
range: [1, 30]
default: 5
phase_c_integrator.pre_merge_gate.user_escape_hatch:
type: boolean
default: true
在步骤 3(验证之前)执行以下检测和映射,确保旧配置用户无缝升级到新 audit 体系。
同时满足以下两点时触发兼容映射:
experiments.agent_team_audit === trueaudit 块(即 audit 字段为 undefined)experiments.agent_team_audit: true
→ audit.enabled: true
→ audit.mode: "manual"
experiments.agent_team_audit_points 数组元素映射:
"post_spec" → audit.checkpoints.post_spec: "convergence"
"post_implementation" → audit.checkpoints.post_implementation: "convergence"
"pre_merge" → audit.checkpoints.pre_merge: "convergence"
未在 agent_team_audit_points 中出现的检查点保持默认值 "off"。
新增的 4 个检查点(post_brainstorm, post_planning, mid_implementation, post_closure)不在旧配置中,映射后均为 "off"。
兼容映射生效时,必须向用户输出以下提示(仅在实际触发时显示,不影响正常加载):
[config-loader] 检测到旧版审计配置 (experiments.agent_team_audit)。
已自动映射到新配置格式:
audit.enabled: true
audit.mode: "manual"
audit.checkpoints: { <映射结果列表> }
建议将 .aria/config.json 迁移到新格式以获得完整功能(7 个检查点、多轮收敛、挑战模式)。
参考: openspec/changes/auto-audit-system/proposal.md
experiments.agent_team_audit: false(或缺失)→ 跳过兼容映射,正常加载audit 块 → 跳过兼容映射,用户显式配置优先优先级 (高 → 低):
.aria/config.json tdd.strictness ← 项目统一配置 (推荐)
.claude/tdd-config.json ← 遗留配置 (向后兼容)
Skill 内置默认值 (DEFAULTS.json) ← 兜底
当 .aria/config.json 存在时,其 tdd.strictness 覆盖 .claude/tdd-config.json 中的对应字段。.claude/tdd-config.json 中的细粒度字段 (skip_patterns, test_patterns) 不在 .aria/config.json 中重复,继续在原位生效。
其他 Skill 在执行前通过以下模式读取配置:
1. 检查 .aria/config.json 是否存在
2. 如果存在,读取并解析
3. 提取所需字段,缺失字段使用 DEFAULTS.json 中的默认值
4. 字段验证参照上述规则
| Skill | 读取字段 |
|---|---|
| state-scanner | state_scanner.*, workflow.auto_proceed |
| workflow-runner | workflow.auto_proceed |
| tdd-enforcer | tdd.strictness |
| branch-finisher | benchmarks.require_before_merge |
| phase-c-integrator | experiments.agent_team_audit*, audit.* |
| phase-b-developer | experiments.agent_team_audit*, audit.* |
| audit-engine | audit.* |
所有默认值集中管理在 DEFAULTS.json。
最后更新: 2026-06-11 (#17 audit-drift-guard — Drift Guard 原始目的锚定)