{ "schema_version": "1.1", "work_package": "P3-WP00", "captured_at": "2026-08-02T13:24:00+08:00", "baseline_type": "PHASE3_ENGINEERING_ENTRY", "source_control": { "branch": "codex/dataops-phase3-enterprise-readiness", "captured_local_commit": "487b57d538f619407f0f2be1db7061b055b13400", "phase2_baseline_tag": "v0.3.0-phase2", "phase2_baseline_commit": "95023e59bfb9f00be4ed61f7a8307fac56fbcee9", "merge_base_with_phase2": "95023e59bfb9f00be4ed61f7a8307fac56fbcee9", "remote_phase2_tracking_ref": "refs/remotes/origin/codex/dataops-phase2-platformization", "remote_phase2_tracking_commit": "95023e59bfb9f00be4ed61f7a8307fac56fbcee9", "remote_network_refresh_performed": false, "relationship": "captured_local_commit is a direct descendant of phase2_baseline_commit", "notes": "远端第二阶段值来自现有本地 remote-tracking ref;按 P3-WP00 不联网约束未执行 fetch 或 ls-remote。", "wp00_delivery_commit_resolution": "GIT_COMMIT_CONTAINING_THIS_MANIFEST", "wp00_delivery_commit_note": "Git 提交无法在自身内容中保存自身哈希;最终提交号由提交结果和交付报告提供。" }, "api_contract": { "path": "docs/architecture/OPENAPI.yaml", "operation_count": 395, "sha256": "fcb9d0e23640fb75e698519622d99466da372f6fefe3152dd84e9855421e9f3a", "git_blob_at_capture": "3133570b704ffcb2464375715f214fd441e145ac", "generator": "scripts/generate_openapi.py", "generated_output": "/private/tmp/p3-wp00-openapi.yaml", "generated_sha256": "fcb9d0e23640fb75e698519622d99466da372f6fefe3152dd84e9855421e9f3a", "generated_operation_count": 395, "generated_matches_committed": true }, "migration_contract": { "source_path": "migrations", "versions_path": "migrations/versions", "heads": [ "20260802_460" ], "heads_status": "AVAILABLE", "file_count": 52, "git_tree": "68755a0e738f8e7a25a374b755124e75d66037ff" }, "release_copy_contract": { "source_app_path": "app", "release_app_path": "deployment/app", "app_git_tree": "9237562e058c7b911c9e5db1b102aa6963ba46df", "deployment_app_git_tree": "9237562e058c7b911c9e5db1b102aa6963ba46df", "app_matches": true, "source_migrations_path": "migrations", "release_migrations_path": "deployment/migrations", "migrations_git_tree": "68755a0e738f8e7a25a374b755124e75d66037ff", "deployment_migrations_git_tree": "68755a0e738f8e7a25a374b755124e75d66037ff", "migrations_match": true, "comparison_mode": "recursive byte/path comparison plus Git tree identity" }, "data_snapshot": { "scope": "LOCAL_PHASE2_ENGINEERING_STATE", "read_only_capture": true, "enterprise_uat": false, "status": "NOT_AVAILABLE", "error_category": "MISSING_DATABASE_CONFIGURATION", "error_summary": "alembic current could not start because neither SQLALCHEMY_DATABASE_URI nor DATABASE_URL was configured for migrations.", "alembic_current": "NOT_AVAILABLE", "public_table_count": "NOT_AVAILABLE", "record_counts": "NOT_AVAILABLE", "write_attempted": false, "prior_phase2_counts_reused": false }, "user_untracked_inventory": { "inspection_mode": "PATHS_ONLY_CONTENT_NOT_READ", "modified": false, "captured_before_wp00_files_were_added": true, "paths": [ "canvas/cowart-selection.json", "canvas/cowart-view-state.json", "canvas/pages/manifest.json", "canvas/pages/page/assets/DATAOPS_PLATFORM_ENTRY_AND_CORE_ARCHITECTURE_20260801-cowart-edit-01.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_ENTRY_AND_CORE_ARCHITECTURE_20260801-cowart.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_ENTRY_AND_FOUNDATION_ARCHITECTURE_20260801-cowart.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-01.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-02.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-03.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-04.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-05.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-06.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-07.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-08.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-09.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-10.png", "canvas/pages/page/assets/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801-cowart-edit-11.png", "canvas/pages/page/assets/asset-877967025.svg", "canvas/pages/page/cowart-canvas.json", "docs/architecture/DATAOPS_PLATFORM_ENTRY_AND_CORE_ARCHITECTURE_20260801.png", "docs/architecture/DATAOPS_PLATFORM_ENTRY_AND_CORE_ARCHITECTURE_20260801.svg", "docs/architecture/DATAOPS_PLATFORM_ENTRY_AND_FOUNDATION_ARCHITECTURE_20260801.md", "docs/architecture/DATAOPS_PLATFORM_ENTRY_AND_FOUNDATION_ARCHITECTURE_20260801.png", "docs/architecture/DATAOPS_PLATFORM_ENTRY_AND_FOUNDATION_ARCHITECTURE_20260801.svg", "docs/architecture/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801.md", "docs/architecture/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801.png", "docs/architecture/DATAOPS_PLATFORM_SYSTEM_ARCHITECTURE_20260801.svg" ] }, "verification_commands": [ "git rev-parse HEAD v0.3.0-phase2^{commit}", "git merge-base HEAD v0.3.0-phase2", "git rev-parse refs/remotes/origin/codex/dataops-phase2-platformization", "PYTHONPATH=. .venv/bin/python scripts/generate_openapi.py --output /private/tmp/p3-wp00-openapi.yaml", "PYTHONPATH=. .venv/bin/alembic heads", "PYTHONPATH=. .venv/bin/alembic current", "diff -qr app deployment/app", "diff -qr migrations deployment/migrations" ], "verification_results": [ { "id": "P3-EVD-001", "command": "PYTHONPATH=. .venv/bin/pytest -q tests/test_phase3_wp00_baseline_contract.py", "case_count": 12, "result": "PASSED", "summary": "12 passed", "exit_code": 0, "enterprise_uat": false }, { "id": "P3-EVD-002", "command": "PYTHONPATH=. .venv/bin/pytest -q tests/test_phase2_wp00_baseline_contract.py", "case_count": 7, "result": "PASSED", "summary": "7 passed", "exit_code": 0, "enterprise_uat": false }, { "id": "P3-EVD-003", "command": "git archive captured_local_commit; run archived scripts/generate_openapi.py against archived app/ and compare archived OPENAPI.yaml", "case_count": 395, "result": "PASSED", "summary": "395 operations; committed and generated SHA-256 matched", "exit_code": 0, "enterprise_uat": false }, { "id": "P3-EVD-004", "command": "git archive captured_local_commit migrations/ and alembic.ini; run archived alembic heads", "case_count": 1, "result": "PASSED", "summary": "20260802_460 (head)", "exit_code": 0, "enterprise_uat": false }, { "id": "P3-EVD-005", "command": "PYTHONPATH=. .venv/bin/alembic current", "case_count": 0, "result": "NOT_AVAILABLE", "summary": "MISSING_DATABASE_CONFIGURATION", "exit_code": 1, "enterprise_uat": false }, { "id": "P3-EVD-006", "command": "diff -qr app deployment/app; diff -qr migrations deployment/migrations", "case_count": 2, "result": "PASSED", "summary": "app parity exit 0; migrations parity exit 0", "exit_code": 0, "enterprise_uat": false }, { "id": "P3-EVD-007", "command": "git rev-parse; git merge-base; local remote-tracking ref", "case_count": 3, "result": "PASSED_WITH_LIMITATION", "summary": "branch capture 487b57d; tag, merge-base and local remote-tracking commit 95023e5; no network refresh", "exit_code": 0, "enterprise_uat": false }, { "id": "P3-EVD-008", "command": "git diff --check; git diff --cached --check", "case_count": 2, "result": "PASSED", "summary": "exit 0", "exit_code": 0, "enterprise_uat": false } ], "limitations": [ "清单是本地工程基线,不是企业生产状态或企业 UAT 证据。", "数据库不可用时不继承或推断第二阶段历史计数。", "远端跟踪提交仅代表本地 remote-tracking ref 的当前值,未进行网络刷新。", "用户未跟踪文件只记录路径;未读取 canvas/ 或 docs/architecture 下未跟踪内容。" ] }