{
  "schema_version": 1,
  "repository": "weidu12123/Liyuan",
  "commit": "f7b06e414abff4afb0651c8441db1268156ad318",
  "research_status": "in_progress",
  "publication_status": "preview",
  "stability": "stable",
  "stages": {
    "identity": "complete",
    "snapshot": "complete",
    "existing_knowledge": "complete",
    "controlled_copy": "complete",
    "index": "complete",
    "modules": "complete",
    "current_flow": "complete",
    "questions": "complete",
    "deep_analysis": "complete",
    "evolution": "complete",
    "comparison": "skipped_by_user",
    "publication": "pending"
  },
  "coverage": {
    "file_inventory_count": 2641,
    "cloc_file_count": 1857,
    "excluded_count": 784,
    "reconciled": true,
    "missing_scope": [],
    "exclusion_manifest": "/tmp/liyuan-site/research/liyuan/exclusion-manifest.yaml"
  },
  "confirmations": {
    "research_scope": "user_initial_request_authorized_standard_readonly",
    "external_publish": {
      "authorized_by": "user",
      "channel": "feishu DM",
      "timestamp": "2026-08-12T08:26:00Z",
      "scope": "Cloudflare Pages preview (technical-research.pages.dev/research/liyuan/)",
      "notes": "User replied '好，发布，暂不横向比较，暂不深挖' — combined authorization for stable promotion + preview publish for cindy AND liyuan. Production (默认 *.pages.dev) 仍需另一次确认。"
    },
    "stable_promotion": {
      "authorized_by": "user",
      "channel": "feishu DM",
      "timestamp": "2026-08-12T08:26:00Z",
      "promoted_to": "stable",
      "promoted_at": "2026-08-12T08:26:00Z",
      "notes": "user '好，发布' — combined with external_publish above. Stable because: 12/12 claims with fixed-source, both validate_workflow.py runs returned PASS, file counts 2641 = 1857 + 784 reconciled."
    }
  },
  "claims": {
    "total": 12,
    "with_fixed_source": 12,
    "unverified": 0,
    "list": [
      "Liyuan is PolyForm Noncommercial 1.0.0 (commercial use forbidden); src: LICENSE",
      "Default port 7620 with no built-in auth (README warns against public exposure); src: README.md + server/main.ts",
      "Stage engine: src/stage/engine.ts (1664 LOC) implements #agentLoop with MAX_ROUNDS=20; src: src/stage/engine.ts + commit 5058d15",
      "Workspace pattern: src/stage/workspace.ts (609 LOC) holds per-turn draft/writes/patches/lastReport; src: src/stage/workspace.ts",
      "Preset split taxonomy: 9 natures (A-I) -> 5 destinations, 常驻削减 74-83%; src: docs/PRESET-SPLIT-TAXONOMY.md",
      "Stage adapters: src/tools/{registry,lore,panels,memory,card,worldline,gate}.ts + adapters/stage.ts; src: src/tools/*",
      "Roleplay extension: .liyuan/extensions/roleplay.ts is the only file allowed to import pi API (D3); src: .liyuan/extensions/roleplay.ts + docs/PLAN-RP-AGENT.md D3",
      "Wire protocol: server/wire.ts uses duck typing on AgentMessage (zero pi import); src: server/wire.ts header",
      "packages/coding-agent fork of pi v0.80.3 (2026-06-30, frozen, MIT retained); src: packages/coding-agent/CHANGELOG.md",
      "MVU protocol detected and stripped by src/protocol-detect.ts (M-C2 B-solution coverage=24%, A-solution covers worldbook); src: src/protocol-detect.ts + docs/PLAN-RP-AGENT-EXEC.md §4.5.5",
      "v1.3.0 introduces 分轮演出 + ask three-class trigger (subject/auto/end); src: docs/RELEASE-v1.3.0.md + docs/PLAN-ROUND-FLOW.md",
      "MAX_ROUNDS changed 12 -> 20 in fix(stage): 轮次预算与收场兜底 (572 -> 574); src: commit 5058d15 + commit log"
    ]
  },
  "validation": {
    "passed_at": "2026-08-12T08:24:00Z",
    "stable_at": "2026-08-12T08:26:00Z",
    "deployed_at": "2026-08-12T09:12:00Z",
    "deployment_id": "9a409c89-d53b-4983-bbe5-cc42eb4b94ad",
    "deployment_url": "https://9a409c89.technical-research.pages.dev",
    "production_url": "https://technical-research.pages.dev",
    "deploy_method": "wrangler pages deploy /tmp/tech-research-site/site --project-name=technical-research",
    "patch_note": "Added 4 earendil-works/pi hyperlinks to Liyuan SUMMARY.md (was rendered as plain 'pi' word — fixed)"
  }
}