// PAGE — ARCHITECTURE

Architecture

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

// CHAPTER 01 //

1. Source-of-truth and platform mirrors

The skill payload is mirrored from a single canonical source into the two runtime platform trees, plus a derived release tarball that the one-line installer consumes.

1. 源头与平台镜像

技能负载从单一规范源头镜像到两个运行时平台目录树,外加一个由 install.sh 一键安装脚本所消费的衍生发布 tarball。

flowchart LR
    spec[".local/research/spec_v0.4.0.md<br/>(frozen)"]
    rules[".rules/si-chip-spec.mdc"]
    agentsmd["AGENTS.md (13 hard rules)"]
    skill[".agents/skills/si-chip/<br/>SKILL.md + DESIGN.md + 14 references + 5 scripts"]
    cursor[".cursor/skills/si-chip/<br/>(20 files; no DESIGN.md)"]
    claude[".claude/skills/si-chip/<br/>(20 files; no DESIGN.md)"]
    bridge[".cursor/rules/si-chip-bridge.mdc"]
    tarball["docs/skills/si-chip-0.4.0.tar.gz<br/>(21 files; deterministic)"]
    spec --> rules --> agentsmd
    spec --> skill
    skill --> cursor
    skill --> claude
    skill --> tarball
    cursor -.-> bridge

// CHAPTER 02 //

2. Dogfood loop (spec section 8.1 Frozen Order)

Each dogfood round walks the 8 frozen steps in order; the package-register step closes the loop and feeds the next round’s profile step.

2. Dogfood 循环(规范 §8.1 冻结顺序)

每一轮 dogfood 都按顺序走完 8 个冻结步骤;package-register 步骤完成闭环, 并为下一轮的 profile 步骤提供输入。

flowchart TB
    profile["1. profile<br/>basic_ability_profile.yaml"]
    evaluate["2. evaluate<br/>metrics_report.yaml"]
    diagnose["3. diagnose<br/>R6 7-dim scan"]
    improve["4. improve<br/>next_action_plan.yaml"]
    routerTest["5. router-test<br/>router_floor_report.yaml"]
    halfRetire["6. half-retire-review<br/>half_retire_decision.yaml"]
    iterate["7. iterate<br/>iteration_delta_report.yaml"]
    package["8. package-register"]
    profile --> evaluate --> diagnose --> improve --> routerTest --> halfRetire --> iterate --> package
    package -. "next round" .-> profile

// CHAPTER 03 //

3. Three progressive gate profiles

Promotion requires 2 consecutive passes at the current gate; demotion is triggered by 2 consecutive failures. v0.1.0 — v0.3.0 shipped at v1_baseline (relaxed); v0.4.0 is the FIRST Si-Chip release at v2_tightened (standard) after 19 consecutive v1_baseline rounds and 2 consecutive v2_tightened rounds (Round 18 + Round 19); v3_strict (strict) is deferred to v0.4.x.

3. 三档渐进 gate profile

升档需要在当前 gate 连续两轮通过;降档由连续两轮失败触发。v0.1.0 — v0.3.0 均在 v1_baselinerelaxed)档位交付;v0.4.0 是 Si-Chip 首次在 v2_tightenedstandard)档位发版——前置 19 轮连续 v1_baseline + 2 轮连续 v2_tightened(Round 18 + Round 19);v3_strictstrict)已延后到 v0.4.x。

flowchart LR
    v1["v1_baseline<br/>relaxed"]
    v2["v2_tightened<br/>standard"]
    v3["v3_strict<br/>strict"]
    v1 -- "2 consecutive passes" --> v2
    v2 -- "2 consecutive passes" --> v3
    v3 -- "2 consecutive failures" --> v2
    v2 -- "2 consecutive failures" --> v1

// CHAPTER 04 //

4. Decision tree for half-retirement (spec section 6.2)

The 8-axis value_vector (v0.4.0+; v0.1.0 — v0.3.0 used 7 axes — the 8th eager_token_delta was added per the Q4 user decision and is the FIRST byte-identicality break of §6.1) is computed every round. The decision branches on task_delta, the efficiency axes, and governance_risk_delta.

4. 半退役决策树(规范 §6.2)

每一轮都会计算 8 维 value_vector(v0.4.0+;v0.1.0 — v0.3.0 为 7 维——按 Q4 用户决策新增第 8 维 eager_token_delta,这是 §6.1 自 v0.1.0 以来首次破坏字节 一致性)。决策分支由 task_delta、各效率维度以及 governance_risk_delta 共同决定。

flowchart TB
    vv["8-axis value_vector<br/>(v0.4.0+; was 7-axis &le; v0.3.0)"]
    keep["decision: keep"]
    halfRetire["decision: half_retire"]
    retire["decision: retire"]
    disable["decision: disable_auto_trigger"]
    vv -- "task_delta >= +0.10<br/>OR all current-gate hard thresholds pass" --> keep
    vv -- "task_delta near 0<br/>AND any efficiency axis<br/>>= gate threshold (v1 +0.05 / v2 +0.10 / v3 +0.15)" --> halfRetire
    vv -- "all axes <= 0<br/>OR governance_risk_delta < 0" --> retire
    vv -- "governance_risk_delta<br/>significantly negative" --> disable

// CHAPTER 05 //

5. Cross-tree drift contract (zero drift required)

Every ship-eligible commit must satisfy ALL_TREES_DRIFT_ZERO: the devolaflow.local.drift hash check compares SHA256 across the source-of-truth and the two platform mirrors. Any mismatch fails CI.

5. 跨树漂移契约(要求零漂移)

任何具备 ship 资格的提交都必须满足 ALL_TREES_DRIFT_ZEROdevolaflow.local.drift 哈希检查会在源头与两个平台镜像之间比对 SHA256。 任意不匹配都会让 CI 失败。

flowchart LR
    src[".agents/skills/si-chip/"]
    cur[".cursor/skills/si-chip/"]
    cla[".claude/skills/si-chip/"]
    drift["devolaflow.local.drift hash check"]
    src --> drift
    cur --> drift
    cla --> drift
    drift -- "any mismatch" --> fail["DRIFT_DETECTED -> CI fail"]
    drift -- "all SHA256 match" --> pass["ALL_TREES_DRIFT_ZERO -> ship-eligible"]

Mermaid lint compliance: every node id is camelCase / snake_case (no spaces); labels with quoted text use double quotes; no reserved keywords as ids.

Mermaid 规范遵从:每个节点 id 都使用 camelCase / snake_case(不含空格); 含引号文本的 label 使用双引号;不使用保留字作为 id。

// CHAPTER 06 //

6. v0.3.0 + v0.4.0 invariant add-ons (top-level, beside metrics)

metrics_report.yaml at v0.4.0 grows beyond R6’s 7 × 37 keys with three top-level invariants — explicitly NOT inside R6 D2 (the v0.4.0 spec clarifies this in §18.1):

Block Spec Purpose
core_goal { C0_core_goal_pass_rate } §14 (v0.3.0) MUST = 1.0 every round; round failure if < 1.0 regardless of R6 axes; REVERT-only response per §14.4
token_tier { C7_eager_per_session, C8_oncall_per_trigger, C9_lazy_avg_per_load } §18 (v0.4.0) EAGER / ON-CALL / LAZY token decomposition; OPTIONAL EAGER-weighted iteration_delta; spec_validator BLOCKER 12
promotion_state { current_gate, consecutive_passes, ... } §20 (v0.4.0) first-class top-level block on metrics_report.yaml; mirrors lifecycle.promotion_history append-only audit trail

Three additional v0.4.0 BLOCKERs round out the 14-invariant validator: REAL_DATA_FIXTURE_PROVENANCE (§19), HEALTH_SMOKE_DECLARED_WHEN_LIVE_BACKEND (§21), and the v0.3.0 pair CORE_GOAL_FIELD_PRESENT (§14) + ROUND_KIND_TEMPLATE_VALID (§15). All 14 BLOCKERs are documented in tools/spec_validator.py --help and listed in USERGUIDE.md §5.

6. v0.3.0 + v0.4.0 不变量增量(顶层,与 metrics 平级)

v0.4.0 的 metrics_report.yaml 在 R6 的 7 × 37 个 key 之外,新增了三个 顶层不变量——明确不在 R6 D2 内(v0.4.0 规范在 §18.1 中专门澄清):

规范 作用
core_goal { C0_core_goal_pass_rate } §14(v0.3.0) 每轮 MUST = 1.0;< 1.0 则整轮失败,与 R6 维度无关;按 §14.4 触发 REVERT-only
token_tier { C7_eager_per_session, C8_oncall_per_trigger, C9_lazy_avg_per_load } §18(v0.4.0) EAGER / ON-CALL / LAZY token 三层分解;可选的 EAGER 加权 iteration_delta;spec_validator BLOCKER 12
promotion_state { current_gate, consecutive_passes, ... } §20(v0.4.0) metrics_report.yaml 上的一等顶层块;与 lifecycle.promotion_history 仅可追加的审计链对应

v0.4.0 还新增了 3 条 BLOCKER 把校验器拉到 14 条:REAL_DATA_FIXTURE_PROVENANCE(§19)、 HEALTH_SMOKE_DECLARED_WHEN_LIVE_BACKEND(§21),加上 v0.3.0 的两条 CORE_GOAL_FIELD_PRESENT(§14)与 ROUND_KIND_TEMPLATE_VALID(§15)。完整 14 条 BLOCKER 记录在 tools/spec_validator.py --help 中,并在 USERGUIDE.md §5 列出。