{ "schemaVersion": 1, "candidateId": "rc-20261009-r3-mp1", "taskCount": 63, "pageCount": 27, "sourceTreeSha256": "aa5170fe434db364da97cbe31ae58cfb7b67692fff39fb598301c148dbb34526", "taskLedgerSnapshotSha256": "c92df6c5c65fa30bdcfaae49f69b999789a6578730e4768d6ba1b88978ae8eb8", "pages": [ "pages/home/home", "packages/finance/entry/entry", "packages/finance/assessment/assessment", "packages/finance/confirm/confirm", "packages/finance/analyzing/analyzing", "packages/finance/report/report", "packages/finance/next-step/next-step", "packages/finance/matches/matches", "packages/finance/product/product", "packages/finance/compare/compare", "packages/finance/assistant/assistant", "packages/finance/archive/archive", "packages/account/index/index", "packages/account/login/login", "packages/account/profile/profile", "packages/account/edit-profile/edit-profile", "packages/account/security/security", "packages/account/password/password", "packages/account/change-phone/change-phone", "packages/account/points/points", "packages/account/messages/messages", "packages/content/search/search", "packages/content/help/help", "packages/content/news/news", "packages/content/article/article", "packages/content/classroom/classroom", "packages/content/lesson/lesson" ], "commonExecutionRules": [ "本轮只定义和固定用例,63项正式结果全部未执行,不预填签收。", "真实账户/运营写入、真实模型、迁移/守护/恢复演练须按相应已有授权和环境约束另行实施。", "执行记录必须带候选源码摘要、实际设备与版本;源码变更后创建新候选,保留本基线。", "课程整篇一次已读、无草稿、身份证明文输入/后台脱敏、积分默认关闭保持。", "不在公开结果记录手机号、Token、凭据、证件内容或原始生产数据。" ], "evidenceCatalog": [ { "id": "E01", "title": "1.02 主流程", "date": "2026-10-08", "historicalChecks": 1666, "formalAcceptance": false, "rerunThisTurn": false, "artifacts": [ { "privateRelativePath": "core-flow-regression/airz-core-flow-1791443749845/verification.json", "sha256": "ed7d8ef872b03740b204c87ee19b6d159b95d7cbf569a0da89fd494e17fbbd27" }, { "privateRelativePath": "core-flow-regression/airz-core-flow-1791443749845/tests.json", "sha256": "bd54d4643b023322f276c19f504f98c1842c4e3bbf4d3d9085598cb05b01f761" }, { "privateRelativePath": "core-flow-regression/airz-core-flow-1791443749845/cleanup.json", "sha256": "79f62bb7a68ec82f81f6a614fe2793385b94e82332bc10bca15e41e4a0d80a01" }, { "privateRelativePath": "core-flow-regression/airz-core-flow-1791443749845/final-source-validation.json", "sha256": "e22a100a6c5b8dc7bfcb8ad476b1f0dd85990f923befa92498bd85fdbba468fe" } ], "testSourceApplicability": [ { "path": "tests/core_assessment_flow.php", "recordedSha256": "35e5d7a5d85e0604e13ace6d5fb9a7f650512232fe1515b580df10441cf62a5e", "currentSha256": "35e5d7a5d85e0604e13ace6d5fb9a7f650512232fe1515b580df10441cf62a5e", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/match_records.php", "recordedSha256": "215709f81458fa59958ccf10e7713be6a2483f0898c9fba806250309348406c8", "currentSha256": "215709f81458fa59958ccf10e7713be6a2483f0898c9fba806250309348406c8", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/product_explanations.php", "recordedSha256": "32e79231ef235f364cbcc08a1bd8d2cfc2826907886b2d7abcad6048e71b5011", "currentSha256": "32e79231ef235f364cbcc08a1bd8d2cfc2826907886b2d7abcad6048e71b5011", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/report_persistence.php", "recordedSha256": "835b3677fc3809eb77fa399d78502062ea39fc1d80093f77cb6a3c56079b95a2", "currentSha256": "835b3677fc3809eb77fa399d78502062ea39fc1d80093f77cb6a3c56079b95a2", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/api_assessments.php", "recordedSha256": "bcf7ffee73a09c327020b457da6c263e26c212a7ae675dcfd44c7a20ac839e83", "currentSha256": "bcf7ffee73a09c327020b457da6c263e26c212a7ae675dcfd44c7a20ac839e83", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/product_matching.php", "recordedSha256": "9b555c04468ba32d1bbbb7d6db12d88796b3e31bcaf18a5b2d7513780fa87898", "currentSha256": "9b555c04468ba32d1bbbb7d6db12d88796b3e31bcaf18a5b2d7513780fa87898", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/product_match_rules.php", "recordedSha256": "55f3ce3703b9899b0b91029b36a48a62ab3eb9061bbcfc0d76b117951be1c465", "currentSha256": "55f3ce3703b9899b0b91029b36a48a62ab3eb9061bbcfc0d76b117951be1c465", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/assessment_revisions.php", "recordedSha256": "d1d2a28b11f87af2465b21d2c0b77993cb1bc2105868e29c4e028ffe7020ccd1", "currentSha256": "d1d2a28b11f87af2465b21d2c0b77993cb1bc2105868e29c4e028ffe7020ccd1", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/product_matching_tasks.php", "recordedSha256": "95752cea15ba763011224e6a3a6db3d34c043814e4c473780455ad5aa4eef492", "currentSha256": "95752cea15ba763011224e6a3a6db3d34c043814e4c473780455ad5aa4eef492", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/report_history.php", "recordedSha256": "a5c8c20016454b1624aefb7ab01309afdd787dd82006ee3cacffd3aae6672824", "currentSha256": "a5c8c20016454b1624aefb7ab01309afdd787dd82006ee3cacffd3aae6672824", "status": "same-test-source", "currentEvidence": null } ], "limitation": "合成数据/假模型与当时源码的局部开发证据;测试入口一致也不证明全部业务依赖或真实渠道一致。" }, { "id": "E02", "title": "1.03 会话组合", "date": "2026-10-08", "historicalChecks": 1369, "formalAcceptance": false, "rerunThisTurn": false, "artifacts": [ { "privateRelativePath": "security-flow-regression/airz-security-flow-1791445051475/verification.json", "sha256": "b27946877b8b8b25e4bc88e86aac1f38b1739cfbfe2303bdc5c7eccf461c5206" }, { "privateRelativePath": "security-flow-regression/airz-security-flow-1791445051475/tests.json", "sha256": "fd44327c5cd41095beffbff757b25fc1bf94683e095a8c33517480574ca52872" }, { "privateRelativePath": "security-flow-regression/airz-security-flow-1791445051475/cleanup.json", "sha256": "ff036ca83f80c0bb0c01d4134c020b234d46e926d71181597450e6fdf5521d06" }, { "privateRelativePath": "security-flow-regression/airz-security-flow-1791445051475/final-source-validation.json", "sha256": "22907fb7f5ebeec4a66bb633450d5a93489c62e995eff599a1c47b0a53962d6a" } ], "testSourceApplicability": [ { "path": "tests/session_assistant_flow.php", "recordedSha256": "871a672571f5a47a63acda7bdcd4fc3a87eef353f513b2ac24651870bbd86c82", "currentSha256": "871a672571f5a47a63acda7bdcd4fc3a87eef353f513b2ac24651870bbd86c82", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/api_session.php", "recordedSha256": "e6821886a1d27b33b01802bd8845b4ea48f65993ea8ac463f69f236c5e5ce6f0", "currentSha256": "e6821886a1d27b33b01802bd8845b4ea48f65993ea8ac463f69f236c5e5ce6f0", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/assistant_chats.php", "recordedSha256": "f1ab6d1033bdc7f6188265f64c164658f0864058b22a50b2eab81df5a2918ae6", "currentSha256": "f1ab6d1033bdc7f6188265f64c164658f0864058b22a50b2eab81df5a2918ae6", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/api_profile.php", "recordedSha256": "6cb88f7d54f4ab3e5ebb2095967fbd0c006f1883eb8814a666eaa83370f894fc", "currentSha256": "6cb88f7d54f4ab3e5ebb2095967fbd0c006f1883eb8814a666eaa83370f894fc", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/core_assessment_flow.php", "recordedSha256": "35e5d7a5d85e0604e13ace6d5fb9a7f650512232fe1515b580df10441cf62a5e", "currentSha256": "35e5d7a5d85e0604e13ace6d5fb9a7f650512232fe1515b580df10441cf62a5e", "status": "same-test-source", "currentEvidence": null } ], "limitation": "合成数据/假模型与当时源码的局部开发证据;测试入口一致也不证明全部业务依赖或真实渠道一致。" }, { "id": "E03", "title": "1.04 后台组合", "date": "2026-10-08", "historicalChecks": 1249, "formalAcceptance": false, "rerunThisTurn": false, "artifacts": [ { "privateRelativePath": "admin-flow-regression/airz-admin-flow-1791445932955/verification.json", "sha256": "f743c2d545b63de826abb25686aa017c53f5b988bc2c3639a6cf00c65a8f269e" }, { "privateRelativePath": "admin-flow-regression/airz-admin-flow-1791445932955/tests.json", "sha256": "f4832922a72214e22ddb01b1df13fc3149e4bfd73a04cbf2fdc3984464fc28b4" }, { "privateRelativePath": "admin-flow-regression/airz-admin-flow-1791445932955/cleanup.json", "sha256": "426038269852ebb5de2c371e2d71dbe3ff3d197091ea2659fa662033a699b826" }, { "privateRelativePath": "admin-flow-regression/airz-admin-flow-1791445932955/final-source-validation.json", "sha256": "f2f7bcc54ea2742dc6b5a0e04102cdbc86006632ce0d325b7b96bc6650d76f85" } ], "testSourceApplicability": [ { "path": "tests/admin_permission_definitions.php", "recordedSha256": "621e5501d18702c825e1f299f25bc5f96af648437182df76c3c8d1722d3f1e1b", "currentSha256": "621e5501d18702c825e1f299f25bc5f96af648437182df76c3c8d1722d3f1e1b", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/admin_privacy.php", "recordedSha256": "ec3f3f90cd7ceb3c9677f24fb67bf430663dbf218ca2f21584d0fbe97b6ad05d", "currentSha256": "ec3f3f90cd7ceb3c9677f24fb67bf430663dbf218ca2f21584d0fbe97b6ad05d", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/assessment_diagnostics.php", "recordedSha256": "e67d19cfd9b1b06b3e2b0968e55b7e122478a210b69a5b1c5c163003ee78d85c", "currentSha256": "e67d19cfd9b1b06b3e2b0968e55b7e122478a210b69a5b1c5c163003ee78d85c", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/assessment_retry_service.php", "recordedSha256": "c00a0db9ea6456c665a0d77f335bf395ed9f33345c40378c48ff894fa27b206d", "currentSha256": "c00a0db9ea6456c665a0d77f335bf395ed9f33345c40378c48ff894fa27b206d", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/assessment_retry_audit.php", "recordedSha256": "7ede17a3bdd957d315f4571ba87a09218b40ea406951a65cc9353be2b09a6b08", "currentSha256": "7ede17a3bdd957d315f4571ba87a09218b40ea406951a65cc9353be2b09a6b08", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/service_diagnostics.php", "recordedSha256": "7474f3ee5197f237ea18aa9587f16d4bb73018b033dcf5cd284141b8db558aee", "currentSha256": "7474f3ee5197f237ea18aa9587f16d4bb73018b033dcf5cd284141b8db558aee", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/ai_usage_diagnostics.php", "recordedSha256": "bf857b42a152783af1a9f63bdd54059e1e32f3cc026392154b1a12df5de70dd6", "currentSha256": "bf857b42a152783af1a9f63bdd54059e1e32f3cc026392154b1a12df5de70dd6", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/assessment_diagnostics_db.php", "recordedSha256": "6457dffb3837940e5eb9f68ae83e31843ca76609ca02dc8ae1dded81e33aa5bc", "currentSha256": "6457dffb3837940e5eb9f68ae83e31843ca76609ca02dc8ae1dded81e33aa5bc", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/assessment_retry_service_db.php", "recordedSha256": "60234921eea0e0a957a02c5324a1c09e8b74c06671e5dfa257031c364ba83cc7", "currentSha256": "60234921eea0e0a957a02c5324a1c09e8b74c06671e5dfa257031c364ba83cc7", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/service_diagnostics_db.php", "recordedSha256": "91f78adc2185f2899fb39dff9ee6ca64713021675354518fc881116c0d8d4428", "currentSha256": "91f78adc2185f2899fb39dff9ee6ca64713021675354518fc881116c0d8d4428", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/ai_usage_diagnostics_db.php", "recordedSha256": "5e291ef4c0a75f5a4e8285a1bd1ddb8404d4f0b31ae25e4178d6d2fd5abdc875", "currentSha256": "5e291ef4c0a75f5a4e8285a1bd1ddb8404d4f0b31ae25e4178d6d2fd5abdc875", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/core_assessment_flow.php", "recordedSha256": "35e5d7a5d85e0604e13ace6d5fb9a7f650512232fe1515b580df10441cf62a5e", "currentSha256": "35e5d7a5d85e0604e13ace6d5fb9a7f650512232fe1515b580df10441cf62a5e", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/admin_access.php", "recordedSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "currentSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/admin_assessment_flow.php", "recordedSha256": "3e2837a8a562ddf52ef07510cd7ad02aa3cc828300c34edd03362f3771805c9c", "currentSha256": "3e2837a8a562ddf52ef07510cd7ad02aa3cc828300c34edd03362f3771805c9c", "status": "same-test-source", "currentEvidence": null } ], "limitation": "合成数据/假模型与当时源码的局部开发证据;测试入口一致也不证明全部业务依赖或真实渠道一致。" }, { "id": "E04", "title": "1.05 反馈消息组合", "date": "2026-10-08", "historicalChecks": 1018, "formalAcceptance": false, "rerunThisTurn": false, "artifacts": [ { "privateRelativePath": "feedback-flow-regression/airz-feedback-flow-1791447922008/verification.json", "sha256": "2e8dea0f9da81946419c0aba60ff08f53fb4d30b164d57e34c2562427ce36c12" }, { "privateRelativePath": "feedback-flow-regression/airz-feedback-flow-1791447922008/tests.json", "sha256": "b184ecbe576f4673e03f10b0328a5370ae4a00081560c92c6e70cd72fc4c2bd0" }, { "privateRelativePath": "feedback-flow-regression/airz-feedback-flow-1791447922008/cleanup.json", "sha256": "04f930d237193c235139542c0c2b21b6abdc25fb9b838c6356743c803dd8bb96" }, { "privateRelativePath": "feedback-flow-regression/airz-feedback-flow-1791447922008/final-source-validation.json", "sha256": "b73cdb4564e23ac9d031c444dbfd4201cd764187272b2b60259dd77e58ce9780" } ], "testSourceApplicability": [ { "path": "tests/feedback_records.php", "recordedSha256": "9dc80b312a69eb787828149dbf3b0e1f54b14c7007ca0e80d7becd4e0346c5e1", "currentSha256": "9dc80b312a69eb787828149dbf3b0e1f54b14c7007ca0e80d7becd4e0346c5e1", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/feedback_editor.php", "recordedSha256": "da2194ddf21acbafe50720afcd5fe78ffff63953e22289134cc93a2a3ac7c2aa", "currentSha256": "da2194ddf21acbafe50720afcd5fe78ffff63953e22289134cc93a2a3ac7c2aa", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/feedback_notifications.php", "recordedSha256": "208f730f443dfb01a682b34a110abebaf07da19bbadfd99f6d4381db09f0d094", "currentSha256": "208f730f443dfb01a682b34a110abebaf07da19bbadfd99f6d4381db09f0d094", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/feedback_recovery_notifications.php", "recordedSha256": "04743781df63bbdff161838892c63a42d07a8c4031ec6da20da0f38d11987202", "currentSha256": "04743781df63bbdff161838892c63a42d07a8c4031ec6da20da0f38d11987202", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/api_session.php", "recordedSha256": "e6821886a1d27b33b01802bd8845b4ea48f65993ea8ac463f69f236c5e5ce6f0", "currentSha256": "e6821886a1d27b33b01802bd8845b4ea48f65993ea8ac463f69f236c5e5ce6f0", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/admin_access.php", "recordedSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "currentSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/feedback_message_flow.php", "recordedSha256": "dbaa3d419a4e8534bf3103f7a02371fdf8fb78a26de79a5f1cc97a445119d75b", "currentSha256": "dbaa3d419a4e8534bf3103f7a02371fdf8fb78a26de79a5f1cc97a445119d75b", "status": "same-test-source", "currentEvidence": null } ], "limitation": "合成数据/假模型与当时源码的局部开发证据;测试入口一致也不证明全部业务依赖或真实渠道一致。" }, { "id": "E05", "title": "1.06 内容发布组合", "date": "2026-10-08", "historicalChecks": 1163, "formalAcceptance": false, "rerunThisTurn": false, "artifacts": [ { "privateRelativePath": "content-flow-regression/airz-content-flow-1791448910652/verification.json", "sha256": "9f954cde629e098f1278ba9a2c30c9842802d733e2188d8355000afc577271a0" }, { "privateRelativePath": "content-flow-regression/airz-content-flow-1791448910652/tests.json", "sha256": "52ac0c63bec305e584c0bb94a535158ccb514bdf7c75055630889b3b855c6afc" }, { "privateRelativePath": "content-flow-regression/airz-content-flow-1791448910652/cleanup.json", "sha256": "21785e33e84f35e611b3dd05cc3a2087c416c2688c32f0376c44588372c9beaf" }, { "privateRelativePath": "content-flow-regression/airz-content-flow-1791448910652/final-source-validation.json", "sha256": "24afa6d8b3d02bb84ba587733a79accf7c7ee3c04c125688215d5bd9e78786b4" } ], "testSourceApplicability": [ { "path": "tests/content_catalog.php", "recordedSha256": "c8ee628692b76d58aa44e5e92f03217c0f4a664d42c99725249c3d6737829e80", "currentSha256": "c8ee628692b76d58aa44e5e92f03217c0f4a664d42c99725249c3d6737829e80", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/api_content.php", "recordedSha256": "e3860e15c4521aad9a0d68cc9be950645766b7cfbe540d215e29731fe2f4026b", "currentSha256": "e3860e15c4521aad9a0d68cc9be950645766b7cfbe540d215e29731fe2f4026b", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/admin_access.php", "recordedSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "currentSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/content_publication_flow.php", "recordedSha256": "6ebc93b90bb413c4ca21310df51228e6a870d6553ad09804f95c2ce2a2c4c287", "currentSha256": "5264cfe35bec3f5e7baa520cb0897efad20dc5fd3e1f698fa9931679d469d5cb", "status": "changed-since-historical-run", "currentEvidence": "E06" } ], "limitation": "合成数据/假模型与当时源码的局部开发证据;测试入口一致也不证明全部业务依赖或真实渠道一致。" }, { "id": "E06", "title": "1.07 内容CSRF", "date": "2026-10-08", "historicalChecks": 1794, "formalAcceptance": false, "rerunThisTurn": false, "artifacts": [ { "privateRelativePath": "content-csrf-regression/airz-content-csrf-1791450130328/verification.json", "sha256": "4ec856654ca5fe6422c3743216cafd5a8a95c20cc5f1b33425aa82c2730b9148" }, { "privateRelativePath": "content-csrf-regression/airz-content-csrf-1791450130328/tests.json", "sha256": "999a47e05cf55c961494fae6105282d39c788f6715a9d95bad41e1ddc42bbff7" }, { "privateRelativePath": "content-csrf-regression/airz-content-csrf-1791450130328/cleanup.json", "sha256": "cf83cd46eedab3fd388df3d2f982191263e28cc43cb673afacd6e335ba847c28" }, { "privateRelativePath": "content-csrf-regression/airz-content-csrf-1791450130328/final-source-validation.json", "sha256": "d9451e5c7c3e38211cc326ad394623e5ae788c955aa7f8961919c98bed73c56a" } ], "testSourceApplicability": [ { "path": "tests/content_csrf.php", "recordedSha256": "bc028a3fa89cb0bf36433c647c12202556bbd92094687d5fa438c1aadd55a4a0", "currentSha256": "bc028a3fa89cb0bf36433c647c12202556bbd92094687d5fa438c1aadd55a4a0", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/content_publication_flow.php", "recordedSha256": "5264cfe35bec3f5e7baa520cb0897efad20dc5fd3e1f698fa9931679d469d5cb", "currentSha256": "5264cfe35bec3f5e7baa520cb0897efad20dc5fd3e1f698fa9931679d469d5cb", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/content_catalog.php", "recordedSha256": "c8ee628692b76d58aa44e5e92f03217c0f4a664d42c99725249c3d6737829e80", "currentSha256": "c8ee628692b76d58aa44e5e92f03217c0f4a664d42c99725249c3d6737829e80", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/api_content.php", "recordedSha256": "e3860e15c4521aad9a0d68cc9be950645766b7cfbe540d215e29731fe2f4026b", "currentSha256": "e3860e15c4521aad9a0d68cc9be950645766b7cfbe540d215e29731fe2f4026b", "status": "same-test-source", "currentEvidence": null }, { "path": "tests/admin_access.php", "recordedSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "currentSha256": "0bd0bf66776b9fb14a050467d67ee94b37f328b923286f6a2fe004e5002b54b1", "status": "same-test-source", "currentEvidence": null } ], "limitation": "合成数据/假模型与当时源码的局部开发证据;测试入口一致也不证明全部业务依赖或真实渠道一致。" }, { "id": "E07", "title": "1.08 security-r3发布", "date": "2026-10-08", "artifacts": [ { "privateRelativePath": "production-release/airz-security-release-1791452975863/release-receipt.json", "sha256": "ce6809dcb62995e5272f9ac29bbc86fcdd81ef73179de1d74b67552bd9280146" }, { "privateRelativePath": "production-release/airz-security-release-1791452975863/final-verification.json", "sha256": "be9275df2b918010e869026ba24eb53d5efa859db2f7b717722574fc78641d31" }, { "privateRelativePath": "production-release/airz-security-release-1791452975863/final-source-validation.json", "sha256": "485cc7b93f9042a5df431714d6eadbc21054a8303827c02f4e1e8b82de054e11" } ], "serverHttpsChecks": 20, "publicHttpsChecks": 22, "recordedFiles": 85, "formalAcceptance": false, "rerunThisTurn": false, "limitation": "历史服务器/公网核验与恢复干跑;本轮未连接生产,不代表当前服务状态或完整业务/守护验收。" }, { "id": "E08", "title": "1.09 微信分包修复", "date": "2026-10-09", "currentChecks": 31, "artifacts": [ { "candidateRelativePath": "frontend-checks.json", "sha256": "d815d2f01f4545f89c408891139c85ef84a86c645a69b6407bcda79c016e1ad6" } ], "formalAcceptance": false, "rerunThisTurn": true, "limitation": "实际生成JavaScript及隔离的微信生命周期/窗口信息桩;不等同实际微信模拟器或真机。" }, { "id": "E09", "title": "积分关闭与合成检查", "documentPath": "docs/积分规则与开发契约.md", "documentSha256": "7074dd3aeccc5571acd937959610b7cb2668a110fd6986946e96597c1e18839e", "formalAcceptance": false, "rerunThisTurn": false, "limitation": "仅保留既有记录对应的样例与平台边界,不扩展为当前候选全面验收。" }, { "id": "E10", "title": "PDF冻结导出与平台边界", "documentPath": "docs/评估版本与最新资料.md", "documentSha256": "8b4611e9d432670cabe2ff8880415bcadc40f786bd57e4aedaa6daa5176e23e8", "formalAcceptance": false, "rerunThisTurn": false, "limitation": "仅保留既有记录对应的样例与平台边界,不扩展为当前候选全面验收。" }, { "id": "E11", "title": "既有真实模型小样例", "documentPath": "docs/AI助手真实语义验收.md", "documentSha256": "32acf0536cfb3d264b9fe632aa17a95c7ab8e76a3eb3018285b7b30a8d77164d", "formalAcceptance": false, "rerunThisTurn": false, "limitation": "仅保留既有记录对应的样例与平台边界,不扩展为当前候选全面验收。" }, { "id": "E12", "title": "合成恢复/密钥/队列/导入证据目录", "documentPath": "database/release-evidence.json", "documentSha256": "0372bed58c7b2cc06c87108ae094f522aef8c365d3ef980de948b70722a32deb", "formalAcceptance": false, "rerunThisTurn": false, "limitation": "指向既有合成演练证据;Linux/systemd、真实告警投递、真实密钥托管及规模RTO/RPO尚缺。" } ], "blockers": [ { "id": "EXT-SMS", "current": "服务商/签名模板/测试号码与回执能力未就绪", "responsibleRole": "业务选型与开通;开发验证", "exitCriterion": "成功发送、用途隔离、频控、过期及核销证据", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "EXT-WX", "current": "微信服务类型/主体权限/授权回调能力未定", "responsibleRole": "业务账号负责人;开发接入", "exitCriterion": "普通/微信内H5与目标小程序能力矩阵、真实授权和账号绑定证据", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "EXT-ONE", "current": "一键登录服务商及浏览器/运营商能力未定", "responsibleRole": "业务与开发联合选型", "exitCriterion": "SDK/服务端校验、网络限制、失败回退与真实绑定证据", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "EXT-STORAGE", "current": "私有证件存储/读取/生命周期方案未确认", "responsibleRole": "开发提案;业务确认", "exitCriterion": "私有存储、鉴权读取、元数据、删除与保留规则及越权反例", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "EXT-DATA", "current": "真实查询产品/资质/样例/计费对账未就绪", "responsibleRole": "业务渠道负责人;开发验证", "exitCriterion": "字段字典、授权凭证、验签/回调/计费与成功失败样例", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "EXT-AI", "current": "TokenHub指定模型真实权限已有证据;商业预算/异常和生产容量未签收", "responsibleRole": "业务预算负责人;开发验证", "exitCriterion": "模型标识、预算与费用核对入口、真实异常和容量证据", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "EXT-CS", "current": "客服供应商、真人坐席、工作时间/离线责任人未定", "responsibleRole": "业务客服负责人;开发接入", "exitCriterion": "身份签名、真实坐席、排队/离线/失败回退与渠道支持矩阵", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "EXT-DEPLOY", "current": "既有生产域名/HTTPS/数据库/Redis/worker已发布可用;完整守护/恢复/告警/规模未验收", "responsibleRole": "运维与业务负责人", "exitCriterion": "可恢复演练窗口、systemd信号/重启/开机、真实告警投递、密钥托管和实际RTO/RPO;独立机路线已取消", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "DEC-PRIVACY", "current": "正式协议全文/版本、资料范围、留存与撤销处理未定", "responsibleRole": "业务/隐私规则负责人", "exitCriterion": "版本化全文、逐项用途/保留/撤销清单和私有资料签收", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "DEC-QUERY", "current": "查询项目、适用对象、重查/失败路径和费用归属未定", "responsibleRole": "业务查询负责人", "exitCriterion": "数据产品到页面授权映射、重查条件和费用决策", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "DEC-READINESS", "current": "等权字段/条件分母开发版已发布;人工业务样例未签收", "responsibleRole": "业务规则负责人", "exitCriterion": "个人/企业含零值/none/other/缺失反例的人工复算及非授信说明签收", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "DEC-MATCH", "current": "三态/来源门槛/单产品覆盖/无评分口径已采用;真实金标准未签收", "responsibleRole": "业务产品负责人", "exitCriterion": "真实产品规则、边界/来源冲突金标准与人工签收", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "DEC-PRODUCT", "current": "首发真实产品及发布责任人未确认;历史四草稿不具发布条件", "responsibleRole": "业务产品负责人", "exitCriterion": "银行当前受理材料、地区/对象/额度/期限/利率/有效期及完整准入依据", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "DEC-AI", "current": "模型已确认;业务额度/重试/超时/月预算/超额处理未定", "responsibleRole": "业务预算负责人", "exitCriterion": "版本化额度/重试/超时/数据最小化与预算策略及费用对账责任人", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "DEC-POINT", "current": "积分数额/次数/条件/时区/有效期/权益未批准", "responsibleRole": "业务规则负责人", "exitCriterion": "正式版本化积分规则和可信事件;批准前保持关闭、不迁移旧表、不发真实奖励", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "B-VERSION", "current": "小程序1.0.6于2026-10-09 09:35由用户报告已发行;尚无发行包/上传源码摘要绑定", "responsibleRole": "用户发行负责人;开发核对", "exitCriterion": "保存开发者工具发行记录与候选摘要/构建来源,区别平台1.0.6和manifest的1.0.0", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "B-ENV", "current": "当前APP_ENVIRONMENT=test,连接已发布后端;PRODUCTION_API_URL为空", "responsibleRole": "开发配置负责人;用户发行负责人", "exitCriterion": "明确体验/正式发行配置、HTTPS及request/upload/download域名,关闭模拟且无失败兜底;改配置需新候选", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "B-DEVICE", "current": "本轮微信/Android编译及本机桩通过;真实设备/微信内H5/Safari/多设备未验收", "responsibleRole": "用户验收负责人;开发", "exitCriterion": "指定实际设备/基础库/浏览器,记录键盘/弱网/回跳/下载与账户隔离证据", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "B-FRONT", "current": "搜索旧响应竞态、反馈真实回执丢失持久恢复及多设备恢复未形成完整目标端证据", "responsibleRole": "开发", "exitCriterion": "受控延迟/断网/换账户/重进场景与目标端复核;本机后端回归不能替代", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "B-OPS", "current": "正式运营账号/权限并集、真实内容责任人、操作与签收负责人未指定", "responsibleRole": "业务/运营负责人", "exitCriterion": "明确账号与绑定授权,真实内容/产品/反馈/策略操作记录和留存;本轮不绑定或写入", "namedOwner": null, "targetDate": null, "resolved": false }, { "id": "B-H5", "current": "H5未发布,完整目标浏览器和真实渠道未验收", "responsibleRole": "用户发布负责人;开发", "exitCriterion": "明确H5发行范围/地址/候选摘要及浏览器矩阵,发行后保存验收与回退记录", "namedOwner": null, "targetDate": null, "resolved": false } ], "cases": [ { "id": "AC-BASE-001", "taskId": "BASE-001", "module": "BASE", "title": "接口契约与字段字典", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [], "formalAcceptanceCriterion": "接口样例可同时被 PHP 和 UTS 解析;区分占位接口与后端现有实现。", "prerequisite": "接口字典与A/B受控账号", "steps": [ "逐项核路由/错误码/分页ID/时间字典", "以个人和企业样例对照前后端字段", "送出非法ID/金额精度/未知字段" ], "expectedResults": [ "协议样例与实际响应一致", "非法输入明确拒绝且无业务写入" ], "blockedBy": [ "B-ENV" ], "historicalPartialEvidence": [ "E02", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-BASE-002", "taskId": "BASE-002", "module": "BASE", "title": "统一请求与认证适配", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "BASE-001" ], "formalAcceptanceCriterion": "HTTP 200 中业务失败不判成功;过期 Token 清会话;普通业务按所有者鉴权。", "prerequisite": "有效/过期/禁用受控会话", "steps": [ "密码登录后读取本人资料", "模拟超时/业务错误/401再恢复", "换B账号后释放A迟到响应" ], "expectedResults": [ "Bearer和requestId一致", "401撤当前会话且旧响应不回填B,错误可手动恢复" ], "blockedBy": [ "B-DEVICE" ], "historicalPartialEvidence": [ "E02", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-BASE-003", "taskId": "BASE-003", "module": "BASE", "title": "环境与用户缓存隔离", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "BASE-002" ], "formalAcceptanceCriterion": "切换账户无串数据;旧草稿键清理且不恢复;退出清理敏感缓存和临时填写内容。", "prerequisite": "候选配置、A/B账号与可观察缓存", "steps": [ "核test API及关闭模拟配置", "A填写未提交表单后退出再登录B", "重新进入/刷新并检查缓存", "在隔离构建核空地址/非HTTPS生产配置" ], "expectedResults": [ "没有跨账户缓存或草稿", "未配置请求明确失败,无模拟成功", "正式配置变化必须重建候选" ], "blockedBy": [ "B-ENV", "B-DEVICE" ], "historicalPartialEvidence": [ "E02", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-BASE-004", "taskId": "BASE-004", "module": "BASE", "title": "首页和联调骨架", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "BASE-002", "BASE-003" ], "formalAcceptanceCriterion": "深链接与刷新正确恢复;首页无硬编码账户数据;真实未读数由 MSG 聚合接口接入。", "prerequisite": "可用首页聚合数据与A/B账号", "steps": [ "打开首页/搜索/消息/融资与登录入口", "分别注入空态/失败/迟到响应", "登录返回原业务页" ], "expectedResults": [ "聚合数据与接口一致", "重试可恢复且无旧响应串页,账号包独立加载无缺失模块" ], "blockedBy": [ "B-DEVICE" ], "historicalPartialEvidence": [ "E02", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-AUTH-001", "taskId": "AUTH-001", "module": "AUTH", "title": "短信接入与验证码服务", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "BASE-002", "EXT-SMS" ], "formalAcceptanceCriterion": "发送成功才倒计时;验证码过期、复用、跨用途和频繁发送均拒绝。", "prerequisite": "已开通短信渠道、测试号码与批准模板", "steps": [ "按不同用途发送并核回执", "验证频控/过期/错误/重复核销", "用登录码尝试其他用途" ], "expectedResults": [ "按配置发送且用途隔离", "过期或重用明确失败,无模拟短信成功" ], "blockedBy": [ "EXT-SMS" ], "historicalPartialEvidence": [ "E02" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-AUTH-002", "taskId": "AUTH-002", "module": "AUTH", "title": "真实登录与会话", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "AUTH-001", "BASE-003" ], "formalAcceptanceCriterion": "真实账户登录成功;登录失败无假 Token;登出撤销当前 Token;旧散列兼容。", "prerequisite": "A/B账号、禁用与旧散列受控账户、短信渠道", "steps": [ "验证密码/短信登录与首次注册", "验证旧散列升级和禁用账号", "登出A一个会话后重试A其他会话及B" ], "expectedResults": [ "真实会话只归本人", "禁用拒绝、旧散列安全升级", "退出仅撤当前会话" ], "blockedBy": [ "EXT-SMS", "B-DEVICE" ], "historicalPartialEvidence": [ "E02" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-AUTH-003", "taskId": "AUTH-003", "module": "AUTH", "title": "资料与头像持久化", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "AUTH-002" ], "formalAcceptanceCriterion": "不同设备资料一致;昵称不覆盖评估实名;头像不依赖临时路径。", "prerequisite": "A/B账号与合法/非法头像文件", "steps": [ "A修改昵称和头像后刷新/重进", "上传超限/伪MIME/错误内容", "B读取A附件后切回A" ], "expectedResults": [ "以服务端资料为准", "非法文件无持久化,跨用户读取拒绝,迟到资料不回填" ], "blockedBy": [ "B-DEVICE" ], "historicalPartialEvidence": [ "E02" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-AUTH-004", "taskId": "AUTH-004", "module": "AUTH", "title": "改密与手机换绑", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "AUTH-002" ], "formalAcceptanceCriterion": "跨账户或单个验证码不能换绑;修改后旧 Token 全失效;新密码8–32位且含字母和数字。", "prerequisite": "A至少两个会话、B账号、原新手机号真实双挑战", "steps": [ "A改密后分别用旧/新密码与旧会话访问", "B持续访问", "验证换绑双挑战、号码冲突、挑战重用与事务失败" ], "expectedResults": [ "A旧会话全撤而B不受影响", "换绑同时验证原/新手机号且失败完整回滚" ], "blockedBy": [ "EXT-SMS", "B-DEVICE" ], "historicalPartialEvidence": [ "E02" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-LOGIN-001", "taskId": "LOGIN-001", "module": "LOGIN", "title": "登录渠道能力与身份方案", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "BASE-001", "EXT-WX", "EXT-ONE" ], "formalAcceptanceCriterion": "形成渠道支持矩阵、回调和身份唯一键方案;不以昵称/openid跨应用猜测同一账户。", "prerequisite": "微信/一键登录真实能力资料", "steps": [ "列普通移动/桌面/微信内H5及小程序支持方式", "核服务端身份/手机号绑定设计", "验证不支持方式的可见降级" ], "expectedResults": [ "渠道支持边界与资质一致", "不支持时明确提示且不模拟成功" ], "blockedBy": [ "EXT-WX", "EXT-ONE" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-LOGIN-002", "taskId": "LOGIN-002", "module": "LOGIN", "title": "微信登录接入", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "LOGIN-001", "AUTH-002", "EXT-WX" ], "formalAcceptanceCriterion": "授权取消和重放安全失败;绑定现有账户需原账户证明;获批H5场景真机通过。", "prerequisite": "微信真实账号权限与回调测试能力", "steps": [ "完成授权和首次手机号绑定", "测试错误state/重复code/取消授权", "测试已有账号冲突及退出重登" ], "expectedResults": [ "code只在服务端交换", "state与绑定归属有效", "冲突/取消不产生伪登录" ], "blockedBy": [ "EXT-WX", "EXT-SMS", "B-DEVICE" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-LOGIN-003", "taskId": "LOGIN-003", "module": "LOGIN", "title": "一键登录接入", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "LOGIN-001", "AUTH-002", "EXT-ONE" ], "formalAcceptanceCriterion": "按渠道支持的网络/运营商/浏览器验收;客户端自报手机号不能登录。", "prerequisite": "一键登录测试环境与批准绑定方案", "steps": [ "在支持网络完成号码认证和服务端校验", "在不支持浏览器/运营商/网络验证降级", "测试过期/重复凭据和账号冲突" ], "expectedResults": [ "真实服务端验证后才登录", "失败回退可用且不能通过客户端自报号码绑定" ], "blockedBy": [ "EXT-ONE", "EXT-SMS", "B-DEVICE" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-LOGIN-004", "taskId": "LOGIN-004", "module": "LOGIN", "title": "身份渠道联调", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "LOGIN-002", "LOGIN-003" ], "formalAcceptanceCriterion": "身份关联不误合并账户;重放无效;不支持场景有清晰短信回退。", "prerequisite": "已实现微信/一键渠道及目标端矩阵", "steps": [ "逐端走两渠道登录/取消/失败/重新进入", "验证绑定冲突和可用解绑流程", "切换A/B并恢复业务回跳" ], "expectedResults": [ "各端只展示支持能力", "身份不串账户,失败可恢复,回跳保留合法上下文" ], "blockedBy": [ "EXT-WX", "EXT-ONE", "EXT-SMS", "B-DEVICE", "B-H5" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-FILE-001", "taskId": "FILE-001", "module": "FILE", "title": "私有资料存储方案", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "BASE-001", "EXT-STORAGE", "DEC-PRIVACY" ], "formalAcceptanceCriterion": "私有文件不在公开web目录;形成文件用途/权限/生命周期配置清单。", "prerequisite": "批准私有存储与隐私方案", "steps": [ "区分公开头像与私有证件目录/桶", "核类型/大小/元数据/密钥读取/生命周期", "审核保留/删除/访问策略" ], "expectedResults": [ "私有资料无公开URL且有归属和期限", "密钥仅服务端,方案签收后才实施" ], "blockedBy": [ "EXT-STORAGE", "DEC-PRIVACY" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-FILE-002", "taskId": "FILE-002", "module": "FILE", "title": "私有上传与下载", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "FILE-001", "AUTH-002" ], "formalAcceptanceCriterion": "无登录/跨用户不能读取;客户端临时路径不能提交为附件;失效链接不可访问。", "prerequisite": "私有上传/读取已实施、A/B与受控文件", "steps": [ "A上传合法证件并用附件ID读取", "提交超限/伪MIME/错误内容与B读取", "验证取消/断网重试/删除后读取" ], "expectedResults": [ "仅本人可读取", "非法或取消不留可用附件", "删除与失败按批准生命周期执行" ], "blockedBy": [ "EXT-STORAGE", "DEC-PRIVACY", "B-DEVICE" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-FILE-003", "taskId": "FILE-003", "module": "FILE", "title": "协议与授权版本", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "FILE-001", "AUTH-002", "DEC-PRIVACY" ], "formalAcceptanceCriterion": "提交可追溯所见协议版本;撤销阻止新查询;前端布尔勾选不冒充第三方授权。", "prerequisite": "正式协议全文/版本与授权事件已实施", "steps": [ "查看实际全文并同意指定版本/范围", "提交后更新协议并读取旧快照", "撤销授权并尝试后续读取/查询" ], "expectedResults": [ "同意与撤销可追溯且绑定版本", "历史不被新协议覆盖,撤销按批准规则限制后续使用" ], "blockedBy": [ "DEC-PRIVACY", "EXT-STORAGE" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-FILE-004", "taskId": "FILE-004", "module": "FILE", "title": "资料授权页面联调", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "FILE-002", "FILE-003" ], "formalAcceptanceCriterion": "仅已上传且有权访问的附件入评估;拒绝可选授权仍可自填,不显示已查询。", "prerequisite": "私有附件与授权功能已实施、目标端", "steps": [ "逐端上传/授权并提交", "验证拒绝/取消/离页/断网后重进", "退出A登录B并释放迟到上传结果" ], "expectedResults": [ "页面展示真实持久状态", "不以选图预览或占位协议表示成功", "无跨账户附件" ], "blockedBy": [ "EXT-STORAGE", "DEC-PRIVACY", "B-DEVICE" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ASSESS-001", "taskId": "ASSESS-001", "module": "ASSESS", "title": "评估字段与增量模型", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "BASE-001", "DEC-DEMAND" ], "formalAcceptanceCriterion": "现有与v2字段映射明确,元字符串/整数月/用途条件校验;历史新字段NULL,不新建评估表。", "prerequisite": "现行个人/企业字段字典和版本样例", "steps": [ "核用途/other与金额元万换算", "提交零值/none/null/未知字段反例", "读取旧v1/v2与当前输入的需求字段" ], "expectedResults": [ "字段与冻结字典一致", "旧未采集不同于0,非法输入不落库,需求版本可追溯" ], "blockedBy": [ "DEC-READINESS" ], "historicalPartialEvidence": [ "E01" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ASSESS-002", "taskId": "ASSESS-002", "module": "ASSESS", "title": "正式评估记录与历史", "priority": "P0", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "ASSESS-001", "AUTH-002" ], "formalAcceptanceCriterion": "同用户可多次评估;越权拒绝;历史v1不回填需求、不重算,v2显示冻结需求且不可编辑。", "prerequisite": "A含多页/多版本历史、B受控账号", "steps": [ "翻页/筛选本人评估并读各版本详情", "B尝试A记录及游标", "刷新/重新登录并启动独立空白评估" ], "expectedResults": [ "只读本人正式历史", "无草稿续填", "旧未采集明确展示,新评估独立记录" ], "blockedBy": [ "B-DEVICE" ], "historicalPartialEvidence": [ "E01" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ASSESS-003", "taskId": "ASSESS-003", "module": "ASSESS", "title": "提交与生命周期API", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "ASSESS-002", "FILE-004" ], "formalAcceptanceCriterion": "同键同内容原回执,合法需求或版本变化409、非法格式422;最低新建版本2或用途停用不阻断原键回放;旧重试返回原taskId。", "prerequisite": "受控评估数据、幂等键、真实附件授权就绪", "steps": [ "个人/企业各提交一次并同键重发", "同键修改字段/并发提交", "测试无效授权、旧请求重放、失败后人工/用户重试" ], "expectedResults": [ "201/202生命周期和请求回执一致", "同键不重复创建,冲突/授权失败无部分落库" ], "blockedBy": [ "EXT-STORAGE", "DEC-PRIVACY" ], "historicalPartialEvidence": [ "E01" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ASSESS-004", "taskId": "ASSESS-004", "module": "ASSESS", "title": "评估全页面联调", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "ASSESS-003" ], "formalAcceptanceCriterion": "个人/企业新建空白,修改所选评估最新资料并保存新版本;12.345678万元=123456.78元;无草稿,历史不串账户,迟到响应不恢复旧资料。", "prerequisite": "可用报告/匹配、A/B与目标端", "steps": [ "贯穿填写/确认/分析/报告/档案", "修改最新资料生成新版本并读历史", "失败重评保留旧发布版", "离页/换账户/弱网后恢复" ], "expectedResults": [ "assessmentId/revisionId不混用", "金额精度一致,无重复提交或草稿,迟到响应不回填" ], "blockedBy": [ "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E01" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-DATA-001", "taskId": "DATA-001", "module": "DATA", "title": "查询渠道与范围定稿", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "BASE-001", "EXT-DATA", "DEC-QUERY" ], "formalAcceptanceCriterion": "每种首发授权都有明确数据来源和支持范围;缺失渠道记阻塞并更新估算。", "prerequisite": "真实渠道产品与批准查询范围", "steps": [ "核个人/企业可开通产品及授权映射", "审核样例/字典/留存/计费", "明确拒绝/失败后的自填路径和重查费用" ], "expectedResults": [ "能力/费用/授权逐项可追溯", "未可用产品不承诺查询成功" ], "blockedBy": [ "EXT-DATA", "DEC-QUERY", "DEC-PRIVACY" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-DATA-002", "taskId": "DATA-002", "module": "DATA", "title": "授权查询适配与记录", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "DATA-001", "FILE-003", "ASSESS-003" ], "formalAcceptanceCriterion": "无有效授权不调用;重复发起不重复建本地请求;不得将他人结果用于本次评估。", "prerequisite": "查询适配已实施、合法授权与测试渠道", "steps": [ "按评估发起查询并同键重发", "A/B互换附件/授权/评估编号", "撤销授权后重新发起" ], "expectedResults": [ "请求唯一且绑定本人评估", "凭证不下发,越权或撤销拒绝且不预留收费请求" ], "blockedBy": [ "EXT-DATA", "DEC-QUERY", "DEC-PRIVACY", "EXT-STORAGE" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-DATA-003", "taskId": "DATA-003", "module": "DATA", "title": "回调与结果标准化", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "DATA-002" ], "formalAcceptanceCriterion": "伪造/过期回调拒绝;迟到结果不覆盖冻结输入;查询失败不转换成零风险。", "prerequisite": "渠道真实验签样例及回调/对账测试能力", "steps": [ "送入有效/错误签名/重放回调", "重复回调和主动查询并发", "核字段/来源/时间和受限留存" ], "expectedResults": [ "验签和防重放有效", "结果仅持久一次且标准化一致,重复事件不重复计费" ], "blockedBy": [ "EXT-DATA", "DEC-QUERY" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-DATA-004", "taskId": "DATA-004", "module": "DATA", "title": "异常与渠道端到端验收", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "DATA-003" ], "formalAcceptanceCriterion": "成功和失败均可追踪;超时收费不明先对账;各已承诺首发场景有真实渠道证据。", "prerequisite": "渠道成功/拒绝/超时/余额不足样例", "steps": [ "依次验证超时/拒绝/撤销/余额不足", "重复回调/重查并核供应商账单", "逐端H5往返和断网恢复" ], "expectedResults": [ "状态与费用可对账", "不以未知或失败表示成功,恢复不重复查询/扣费" ], "blockedBy": [ "EXT-DATA", "DEC-QUERY", "B-DEVICE", "B-H5" ], "historicalPartialEvidence": [], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-PRODUCT-001", "taskId": "PRODUCT-001", "module": "PRODUCT", "title": "规则字典与评分口径", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "ASSESS-001", "DEC-MATCH" ], "formalAcceptanceCriterion": "发布规则与人工样例可审阅;非法字段/操作符阻止发布;fail优先于unknown,匹配指标不作为审批概率。", "prerequisite": "真实产品与人工金标准", "steps": [ "复核来源门槛/用途/单产品需求覆盖", "用pass/fail/unknown与缺失反例人工复算", "核冻结规则版本和排序口径" ], "expectedResults": [ "三态依据可追溯且fail优先", "缺依据不推断满足,未发布评分时score/rank为null" ], "blockedBy": [ "DEC-PRODUCT", "DEC-MATCH" ], "historicalPartialEvidence": [ "E01", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-PRODUCT-002", "taskId": "PRODUCT-002", "module": "PRODUCT", "title": "准入与排序执行器", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "PRODUCT-001" ], "formalAcceptanceCriterion": "同输入/快照结果稳定;未知不当满足,配置错误不归咎用户;需求不拆额、不改期;未运行与零候选区分。", "prerequisite": "合法上架目录与边界金标准", "steps": [ "测试上下架/生效失效/对象/地区及金额期限", "用至少一条fail和unknown反例复算", "冻结后更新产品/策略再重试历史" ], "expectedResults": [ "执行器与人工金标准一致", "productId排序稳定,快照不被现价/新策略改写" ], "blockedBy": [ "DEC-PRODUCT", "DEC-MATCH", "DEC-READINESS" ], "historicalPartialEvidence": [ "E01", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-PRODUCT-003", "taskId": "PRODUCT-003", "module": "PRODUCT", "title": "产品后台与公共查询", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "PRODUCT-001", "BASE-002", "DEC-PRODUCT" ], "formalAcceptanceCriterion": "产品用途/地区/额度/期限有真实依据;规则可配置并启停,版本变化留依据;公共详情无个人分数。", "prerequisite": "真实银行材料、运营发布责任人与批准权限", "steps": [ "录入草稿、来源/条件/用途和日期", "对缺项/过期/来源不足尝试发布", "补齐材料后发布/下架并查公开详情", "测试跨类型/撤权/旧版本冲突" ], "expectedResults": [ "不足依据不能发布", "草稿不可公开,合法发布可追溯且历史版本不被修改" ], "blockedBy": [ "DEC-PRODUCT", "DEC-MATCH", "B-OPS" ], "historicalPartialEvidence": [ "E01", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-PRODUCT-004", "taskId": "PRODUCT-004", "module": "PRODUCT", "title": "匹配页面与快照", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "PRODUCT-002", "PRODUCT-003", "ASSESS-004", "REPORT-003" ], "formalAcceptanceCriterion": "每条解释可追溯且不凑三正三反;当前产品变化不改历史;跨账户拒绝;unavailable/零候选/failed不混淆。", "prerequisite": "同评估冻结匹配三态与已发布报告", "steps": [ "打开分组/分页/详情及解释", "更新现产品和发布新报告后读取旧列表/详情", "测试B越权、单项失败、unavailable/零候选/failed" ], "expectedResults": [ "不混结果/快照版本", "新报告后旧版不能解释重试,失败与零候选分开,理由不补造" ], "blockedBy": [ "DEC-PRODUCT", "DEC-MATCH", "B-DEVICE" ], "historicalPartialEvidence": [ "E01", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-PRODUCT-005", "taskId": "PRODUCT-005", "module": "PRODUCT", "title": "同类产品对比", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "PRODUCT-004" ], "formalAcceptanceCriterion": "不跨评估/混用现价;缺值不同于0;手机横向表格可读,单项失败明确;不重跑模型。", "prerequisite": "同评估2至3个冻结产品与目标端", "steps": [ "从列表/产品补选并进入对比", "移除/刷新/登录返回", "测试超3项/重复/跨评估/单列失败重试与账户变化" ], "expectedResults": [ "仅同评估冻结产品对比", "缺值不同于0,顺序可恢复且手机可读", "无重复模型调用" ], "blockedBy": [ "DEC-PRODUCT", "B-DEVICE" ], "historicalPartialEvidence": [ "E01", "E08" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-REPORT-001", "taskId": "REPORT-001", "module": "REPORT", "title": "DeepSeek适配与配额", "priority": "P0", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "BASE-002", "EXT-AI", "DEC-AI" ], "formalAcceptanceCriterion": "模型可配置;密钥不下发;失败与使用量可追踪;数值事实不被模型改写。", "prerequisite": "真实指定模型、批准额度与测试预算", "steps": [ "核密钥仅服务端和模型标识", "用人工事实样例调用并核JSON/数值/用量", "测试额度不足/超时/格式错与对账" ], "expectedResults": [ "失败不成功", "输入最小化且数值事实不被改写", "预留/消耗可定位费用" ], "blockedBy": [ "EXT-AI", "DEC-AI" ], "historicalPartialEvidence": [ "E01", "E07", "E10", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-REPORT-002", "taskId": "REPORT-002", "module": "REPORT", "title": "异步任务与补偿", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "ASSESS-003", "REPORT-001" ], "formalAcceptanceCriterion": "漏投/中断可恢复或明确失败;旧任务不可回写;输入/目标结果/策略/产品快照重试不隐式变化。", "prerequisite": "可恢复隔离队列、冻结评估与可控故障", "steps": [ "模拟漏投/进程中断/租约过期", "以原键重试并核输入/策略/产品快照", "释放旧任务迟到结果与并发补投" ], "expectedResults": [ "一次有效发布且旧任务不可回写", "冻结快照不隐式更新,故障可恢复或明确失败" ], "blockedBy": [ "EXT-DEPLOY", "EXT-AI", "DEC-AI" ], "historicalPartialEvidence": [ "E01", "E07", "E10", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-REPORT-003", "taskId": "REPORT-003", "module": "REPORT", "title": "报告生成与持久化", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "REPORT-002", "DATA-004", "PRODUCT-002", "PRODUCT-003", "DEC-MATCH", "DEC-READINESS" ], "formalAcceptanceCriterion": "完整度按发布字段集复算,等级有依据且非审批;null rank/score按状态验证;格式错误不成功,产品/规则更新不改旧报告。", "prerequisite": "真实产品/渠道/金标准与报告链路", "steps": [ "个人/企业各完成自填与授权查询的正式报告", "人工复算完整度/等级和规则依据", "测试格式错/发布事务失败/后续产品更新" ], "expectedResults": [ "报告原子持久化", "三态/版本与冻结输入一致,非授信且历史不重算" ], "blockedBy": [ "EXT-DATA", "DEC-QUERY", "DEC-PRODUCT", "DEC-MATCH", "DEC-READINESS", "EXT-AI", "DEC-AI" ], "historicalPartialEvidence": [ "E01", "E07", "E10", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-REPORT-004", "taskId": "REPORT-004", "module": "REPORT", "title": "分析报告历史联调", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "REPORT-003", "PRODUCT-004", "ASSESS-004" ], "formalAcceptanceCriterion": "个人/企业链路按版本展示;未发布无分或等级,100%不等于授信;旧报告不重算;修改重评复用记录新增输入版本,新建评估另建记录。", "prerequisite": "A多版本报告、B与目标端", "steps": [ "展示概况/匹配/改善并分别失败重试", "修改重评处理中/失败/成功时读旧历史", "B读取A报告和换账号释放迟到响应" ], "expectedResults": [ "未发布无评分", "旧报告不改写,栏目版本一致且100%不表示获批", "无越权回填" ], "blockedBy": [ "DEC-PRODUCT", "B-DEVICE" ], "historicalPartialEvidence": [ "E01", "E07", "E10", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-REPORT-005", "taskId": "REPORT-005", "module": "REPORT", "title": "报告PDF导出", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "REPORT-004" ], "formalAcceptanceCriterion": "本人成功报告可导出;金额/理由与历史一致;不重跑模型/泄露身份;中文分页可读,JSON错误不保存成PDF。", "prerequisite": "成功中文报告、微信downloadFile合法域名与目标端", "steps": [ "导出历史版PDF并逐项核金额/理由/分页", "测试401/404/JSON伪PDF/截断/过大/取消/断网", "换账户并重试下载" ], "expectedResults": [ "错误文件不保存/预览", "临时文件清理且只导出本人冻结版,无新模型调用", "各目标端实际可读" ], "blockedBy": [ "B-ENV", "B-DEVICE", "B-H5" ], "historicalPartialEvidence": [ "E01", "E07", "E10", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-REPORT-006", "taskId": "REPORT-006", "module": "REPORT", "title": "下一步行动", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "PRODUCT-004", "REPORT-004", "CHAT-003" ], "formalAcceptanceCriterion": "根据判定及当前可用性开放行动;无银行申请提交;新评估不改历史、无草稿;上下文和返回正确。", "prerequisite": "当前/历史报告和产品可用性、目标端", "steps": [ "验证材料/报告/优化资料/新评估/咨询入口", "使当前记录重评中/失败或产品不可用", "登录返回原栏目和版本" ], "expectedResults": [ "按可用性正确降级", "新评估独立且无草稿,不存在银行申请提交或审批承诺" ], "blockedBy": [ "DEC-PRODUCT", "B-DEVICE" ], "historicalPartialEvidence": [ "E01", "E07", "E10", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CHAT-001", "taskId": "CHAT-001", "module": "CHAT", "title": "会话与消息API", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "AUTH-002", "BASE-001" ], "formalAcceptanceCriterion": "用户只能读自身会话;评估会话与普通会话分离;重进恢复历史。", "prerequisite": "A/B账号与普通/评估/产品上下文", "steps": [ "创建不同上下文会话并分页历史", "重进按chatId恢复", "B请求A会话/游标和错误上下文" ], "expectedResults": [ "只读本人会话且上下文分离", "创建/读取不自动调用模型" ], "blockedBy": [ "B-DEVICE" ], "historicalPartialEvidence": [ "E02", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CHAT-002", "taskId": "CHAT-002", "module": "CHAT", "title": "DeepSeek对话调用", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "CHAT-001", "REPORT-001", "REPORT-002" ], "formalAcceptanceCriterion": "同请求不重复建消息或记本地消耗;错误回复不标成功;不会发送无关证件资料。", "prerequisite": "批准AI预算与冻结上下文", "steps": [ "明确发送后同requestId重复/并发", "审查发送给模型的最小事实", "验证格式错/额度不足/失败后原键重试" ], "expectedResults": [ "一次预留和有效回复", "敏感证件不外发,错误不标成功", "费用可追溯" ], "blockedBy": [ "EXT-AI", "DEC-AI" ], "historicalPartialEvidence": [ "E02", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CHAT-003", "taskId": "CHAT-003", "module": "CHAT", "title": "助手页面接入", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "CHAT-002", "REPORT-004" ], "formalAcceptanceCriterion": "切换会话不串上下文;超时保留可重试消息;重进页面能继续。", "prerequisite": "多会话与报告/产品/对比入口、目标端", "steps": [ "从各入口查看摘要并发送", "分页/切换会话/刷新/超时重进", "过期登录后恢复同chatId/版本" ], "expectedResults": [ "不串上下文或旧响应", "消息可恢复重试,快捷入口不自动扣费" ], "blockedBy": [ "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E02", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CHAT-004", "taskId": "CHAT-004", "module": "CHAT", "title": "对话异常与额度验收", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "CHAT-003" ], "formalAcceptanceCriterion": "配额并发不超扣;供应商计费不明可对账;仅真实成功回复显示完成。", "prerequisite": "可控供应商异常/额度及并发测试环境", "steps": [ "并发提交多个逻辑问题与重复点击", "超时/回执丢失后原键重试", "撤销会话/换账户并核费用与旧消息" ], "expectedResults": [ "不超扣或重复回复", "只有有效成功才显示完成,费用不明可对账" ], "blockedBy": [ "EXT-AI", "DEC-AI", "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E02", "E11" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CONTENT-001", "taskId": "CONTENT-001", "module": "CONTENT", "title": "内容模型与发布后台", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "BASE-001" ], "formalAcceptanceCriterion": "后台可发布/下架;段落重排不换ID;草稿不可公开;FAQ可维护。", "prerequisite": "真实内容、批准运营账号与版本", "steps": [ "新建资讯/课程/FAQ/协议草稿并发布/下架", "重排段落/修改正文核版本", "对缺失/错/跨会话CSRF和撤权/跨类型/批量越界提交", "失败刷新Token后手动重试" ], "expectedResults": [ "草稿不可公开且段落ID稳定", "仅合法status批量生效", "Token门禁不自动重放,错误无部分保存" ], "blockedBy": [ "B-OPS" ], "historicalPartialEvidence": [ "E05", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CONTENT-002", "taskId": "CONTENT-002", "module": "CONTENT", "title": "列表详情与首页推荐", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "CONTENT-001", "BASE-004" ], "formalAcceptanceCriterion": "首页/列表/详情ID一致;无模拟兜底内容;下架详情有明确不可用状态。", "prerequisite": "已发布/下架内容及目标端", "steps": [ "从首页/列表/分类分页打开详情", "改变发布状态并刷新", "注入无内容/断网/迟到旧详情" ], "expectedResults": [ "各入口ID/版本一致", "下架明确不可用,无模拟兜底或迟到内容回填" ], "blockedBy": [ "B-OPS", "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E05", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CONTENT-003", "taskId": "CONTENT-003", "module": "CONTENT", "title": "云端课程已读", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "CONTENT-002", "AUTH-002" ], "formalAcceptanceCriterion": "整篇直接阅读;单一课程已读操作;账户隔离、失败可重试及跨设备一致。", "prerequisite": "已读课程、A/B账号与两实际设备", "steps": [ "整篇连续阅读并一次标已读", "A另一设备恢复", "重排/改简介/改正文/下架再发布", "B读取与重复提交" ], "expectedResults": [ "不引入章节任务", "整篇一次已读按版本兼容且不重复记账,A/B进度隔离" ], "blockedBy": [ "B-OPS", "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E05", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-CONTENT-004", "taskId": "CONTENT-004", "module": "CONTENT", "title": "搜索与FAQ联调", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "CONTENT-002" ], "formalAcceptanceCriterion": "旧搜索响应不覆盖新关键词;返回ID可开详情;FAQ与实际业务行为一致。", "prerequisite": "全文字段/FAQ数据与受控响应延迟", "steps": [ "快速换关键词/分类使旧响应后到", "分页时换查询/换账户", "测试无结果/断网/刷新和FAQ退回" ], "expectedResults": [ "仅当前查询响应更新", "正文全文命中、无重复页/横溢,失败可重试且旧响应不污染" ], "blockedBy": [ "B-OPS", "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E05", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-MSG-001", "taskId": "MSG-001", "module": "MSG", "title": "通知事件与去重", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "BASE-001", "REPORT-004" ], "formalAcceptanceCriterion": "重复任务不会重复通知;成功/失败通知关联正确assessmentId及revisionId。", "prerequisite": "可控评估/反馈事件与A/B账号", "steps": [ "重复发布同逻辑事件与失败重试", "核原版本绑定", "事务失败后重新处理" ], "expectedResults": [ "每事件仅一条本人通知", "失败不留半条通知,历史绑定不改新评估" ], "blockedBy": [ "B-OPS" ], "historicalPartialEvidence": [ "E02", "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-MSG-002", "taskId": "MSG-002", "module": "MSG", "title": "消息读写API", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "MSG-001", "AUTH-002" ], "formalAcceptanceCriterion": "跨用户读写拒绝;已读重复操作幂等;列表/计数一致。", "prerequisite": "多页/多类型通知和并发新消息", "steps": [ "A分页/分类/单条已读", "全部已读时插入新通知", "B读A消息/游标并核read_at/is_read" ], "expectedResults": [ "归属与分类严格", "已读水位不吞新消息,未读计数与存储一致" ], "blockedBy": [ "B-DEVICE" ], "historicalPartialEvidence": [ "E02", "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-MSG-003", "taskId": "MSG-003", "module": "MSG", "title": "消息页面与首页红点", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "MSG-002", "BASE-004" ], "formalAcceptanceCriterion": "换设备状态一致;打开通知到对应历史;关联记录不可用有提示。", "prerequisite": "真实报告/反馈通知与目标端", "steps": [ "首页红点进入消息后刷新/批量已读", "打开原版本报告/单条反馈", "目标下架/过期登录/换账户后重进" ], "expectedResults": [ "红点来自服务端", "跳转到原目标或明确不可用,登录恢复正确且不串用户" ], "blockedBy": [ "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E02", "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-MSG-004", "taskId": "MSG-004", "module": "MSG", "title": "事件消息验收", "priority": "P1", "taskStatusSnapshot": "待验收", "directTaskDependencies": [ "MSG-003" ], "formalAcceptanceCriterion": "全部已读不误吞操作后新增消息;通知去重和未读数通过数据库核对。", "prerequisite": "两端/两会话、分页与并发事件", "steps": [ "同时分页/全部已读并新增消息", "重复事件/失败恢复", "多设备刷新与改密撤销" ], "expectedResults": [ "一次通知、正确水位和计数", "旧会话拒绝,多设备最终一致" ], "blockedBy": [ "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E02", "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-POINT-001", "taskId": "POINT-001", "module": "POINT", "title": "积分规则定稿", "priority": "P1", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "BASE-001", "DEC-POINT" ], "formalAcceptanceCriterion": "形成版本化活动规则;复制/分享不等于奖励;未确认奖励规则不得上线。", "prerequisite": "业务规则负责人及正式规则方案", "steps": [ "逐项确认签到/资料/邀请数额次数条件", "明确业务时区/有效期/权益和反例", "签收版本化规则" ], "expectedResults": [ "批准前始终关闭", "不自行设奖励、迁移旧表或发放真实积分" ], "blockedBy": [ "DEC-POINT" ], "historicalPartialEvidence": [ "E09" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-POINT-002", "taskId": "POINT-002", "module": "POINT", "title": "积分账户与签到", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "POINT-001", "AUTH-002" ], "formalAcceptanceCriterion": "同用户同日并发只加一次;流水与积分一致;错误不静默吞掉。", "prerequisite": "批准规则后在隔离环境实施;未批准只检查关闭态", "steps": [ "核默认关闭及旧写接口保护", "仅批准后模拟跨日/重复/并发签到和流水故障", "核服务端日期/余额/幂等" ], "expectedResults": [ "关闭时零积分写入", "启用后余额/流水同事务,重复事件不多发" ], "blockedBy": [ "DEC-POINT" ], "historicalPartialEvidence": [ "E09" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-POINT-003", "taskId": "POINT-003", "module": "POINT", "title": "邀请码与邀请关系", "priority": "P1", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "POINT-002" ], "formalAcceptanceCriterion": "客户端不能自报完成奖励;重复/自邀拒绝;已有关系不随分享覆盖。", "prerequisite": "批准规则及可信邀请事件已实施", "steps": [ "生成邀请码并首次有效绑定", "测试重复绑定/自邀/换账户/伪客户端事件", "并发奖励和事务失败重试" ], "expectedResults": [ "邀请码唯一且绑定只一次", "不相信客户端达成,自邀/重复无奖励,发放幂等" ], "blockedBy": [ "DEC-POINT" ], "historicalPartialEvidence": [ "E09" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-POINT-004", "taskId": "POINT-004", "module": "POINT", "title": "任务积分页面联调", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "POINT-003", "ASSESS-004" ], "formalAcceptanceCriterion": "真实到账后才提示成功;跨账户/跨设备一致;邀请复制不立即发奖励。", "prerequisite": "积分规则和邀请功能就绪、目标端", "steps": [ "当前候选检查关闭提示/余额接口", "批准后验证真实任务/签到/邀请/规则页", "断网回执丢失与换账户恢复" ], "expectedResults": [ "关闭时不承诺奖励", "启用后仅显示服务端数据,无重复签到或账户残留" ], "blockedBy": [ "DEC-POINT", "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E09" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-SUPPORT-001", "taskId": "SUPPORT-001", "module": "SUPPORT", "title": "客服方案与运营准备", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "BASE-001", "EXT-CS" ], "formalAcceptanceCriterion": "具有可测试坐席和离线处理渠道;确认SDK/隐私及首发支持范围。", "prerequisite": "真实客服能力及运营责任人", "steps": [ "核普通/微信内H5支持、身份签名和坐席", "明确工作时间/离线与反馈状态", "审批运营接待方案" ], "expectedResults": [ "真实责任人与渠道能力明确", "没有坐席时不展示虚假在线接待" ], "blockedBy": [ "EXT-CS", "B-OPS" ], "historicalPartialEvidence": [ "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-SUPPORT-002", "taskId": "SUPPORT-002", "module": "SUPPORT", "title": "反馈提交与处理闭环", "priority": "P1", "taskStatusSnapshot": "开发完成,待验收", "directTaskDependencies": [ "AUTH-002", "FILE-002" ], "formalAcceptanceCriterion": "反馈可提交到后台并回复;仅当前用户可查;附件无越权。", "prerequisite": "A/B、真实反馈处理角色及附件功能就绪", "steps": [ "A提交后丢弃回执并退出/改密再登录按原键补确认", "跨角色处理回复并重复保存", "B/撤权账号读取与故障回滚" ], "expectedResults": [ "一条反馈和首次有效回复通知", "不串账户/角色或重复处理,持久恢复可追溯" ], "blockedBy": [ "EXT-STORAGE", "DEC-PRIVACY", "B-OPS", "B-DEVICE", "B-FRONT" ], "historicalPartialEvidence": [ "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-SUPPORT-003", "taskId": "SUPPORT-003", "module": "SUPPORT", "title": "H5人工客服接入", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "SUPPORT-001", "AUTH-002", "EXT-CS" ], "formalAcceptanceCriterion": "真实到达人工坐席;不由前端伪造用户身份;离线可留言并有处理路径。", "prerequisite": "真人坐席、SDK和服务端身份签名已接入", "steps": [ "以A身份打开客服在线/排队/离线", "验证签名过期/SDK失败/不支持端", "换B后关闭重开" ], "expectedResults": [ "身份由服务端签发且不串账户", "失败有明确反馈回退,无虚假成功" ], "blockedBy": [ "EXT-CS", "B-DEVICE", "B-H5" ], "historicalPartialEvidence": [ "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-SUPPORT-004", "taskId": "SUPPORT-004", "module": "SUPPORT", "title": "客服反馈联调", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "SUPPORT-002", "SUPPORT-003", "CONTENT-004" ], "formalAcceptanceCriterion": "会话无跨账户泄漏;客户可获回复;供应商不支持项准确提示。", "prerequisite": "客服与反馈闭环和两目标端", "steps": [ "逐端客服/反馈往返", "验证账户变化/关闭重开/无坐席/SDK失败", "消息定位本人最新回复和历史反馈" ], "expectedResults": [ "客服/反馈/通知闭环正确", "私有附件归属有效,失败可恢复且运营签收可追溯" ], "blockedBy": [ "EXT-CS", "EXT-STORAGE", "DEC-PRIVACY", "B-OPS", "B-DEVICE", "B-FRONT", "B-H5" ], "historicalPartialEvidence": [ "E04" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ADMIN-001", "taskId": "ADMIN-001", "module": "ADMIN", "title": "菜单与角色权限", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "BASE-001" ], "formalAcceptanceCriterion": "管理员权限最小化;无需恢复已删除会员组/规则;敏感字段继续掩码。", "prerequisite": "正式运营/客服/技术/超管账号及批准绑定方案", "steps": [ "核菜单和直接访问权限并集", "校验身份/金额/密钥/日志脱敏", "撤销角色再访问原入口" ], "expectedResults": [ "后端动作授权有效且撤权即时生效", "敏感字段独立授权,密钥不回显" ], "blockedBy": [ "B-OPS" ], "historicalPartialEvidence": [ "E03", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ADMIN-002", "taskId": "ADMIN-002", "module": "ADMIN", "title": "任务与查询排障", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "REPORT-004", "DATA-004", "ADMIN-001" ], "formalAcceptanceCriterion": "可定位失败原因;重试仍走生命周期和幂等;不允许后台手改正式结果。", "prerequisite": "受控失败/当前发布/历史任务与批准重试账号", "steps": [ "按assessmentId/taskId/requestId查诊断", "测试客服/旧技术/撤权拒绝和当前失败版合法重试", "同键/并发/审计故障/模型暂停与查询force反例" ], "expectedResults": [ "仅授权技术/超管在允许状态重试", "任务和审计同事务,历史回执稳定,无跨用户查询或隐式强制" ], "blockedBy": [ "EXT-DATA", "B-OPS", "EXT-DEPLOY" ], "historicalPartialEvidence": [ "E03", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ADMIN-003", "taskId": "ADMIN-003", "module": "ADMIN", "title": "模型额度与服务检查", "priority": "P1", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "REPORT-001", "CHAT-004", "ADMIN-001" ], "formalAcceptanceCriterion": "密钥不回显;配置失败可定位;本地消耗与渠道对账有入口。", "prerequisite": "批准运维账号、配置与供应商状态核对入口", "steps": [ "读取模型密钥状态/额度/调用用量和队列", "核启停权限/策略版本冲突", "分别检查短信/存储未配置与可用状态" ], "expectedResults": [ "只展示安全状态不泄露密钥", "未配置不报正常,启停/额度有审计且费用可定位" ], "blockedBy": [ "EXT-SMS", "EXT-STORAGE", "EXT-AI", "DEC-AI", "EXT-DEPLOY", "B-OPS" ], "historicalPartialEvidence": [ "E03", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-ADMIN-004", "taskId": "ADMIN-004", "module": "ADMIN", "title": "运营交接验收", "priority": "P1", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "ADMIN-002", "ADMIN-003", "CONTENT-004", "MSG-004", "POINT-004", "SUPPORT-004" ], "formalAcceptanceCriterion": "运营可独立发布/下架/处理反馈及定位异常;业务字段无占位数据。", "prerequisite": "真实业务资料/渠道和运营负责人就绪", "steps": [ "按批准角色演练产品/内容/课程/消息/反馈/客服", "批准积分后演练规则任务,否则记录阻塞", "复核操作说明/错误恢复/审计与责任人签收" ], "expectedResults": [ "真实运营闭环且权限正确", "每项有实际操作/恢复证据,未就绪项不代签" ], "blockedBy": [ "DEC-PRODUCT", "DEC-MATCH", "DEC-POINT", "EXT-CS", "EXT-STORAGE", "DEC-PRIVACY", "B-OPS" ], "historicalPartialEvidence": [ "E03", "E06", "E07" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-RELEASE-001", "taskId": "RELEASE-001", "module": "RELEASE", "title": "核心与权限回归", "priority": "P0", "taskStatusSnapshot": "开发中", "directTaskDependencies": [ "REPORT-004", "LOGIN-004", "AUTH-004", "ADMIN-004" ], "formalAcceptanceCriterion": "关键用例通过且有证据;无阻断或高危未解决缺陷;所有一期模块进入验收。", "prerequisite": "候选摘要相符、全部模块具备验收条件", "steps": [ "按本文件63用例和个人/企业全链路执行", "复测跨账户/金额/幂等/产品变更/并发", "登记阻断缺陷并验证修复后新候选" ], "expectedResults": [ "核心与权限有对应真实证据", "无阻断/高危未解决项,不能以开发断言数替代63任务签收" ], "blockedBy": [ "B-VERSION", "B-ENV", "B-DEVICE", "B-FRONT", "B-OPS" ], "historicalPartialEvidence": [ "E01", "E02", "E03", "E04", "E05", "E06", "E07", "E08", "E12" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-RELEASE-002", "taskId": "RELEASE-002", "module": "RELEASE", "title": "H5与第三方真实验收", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "RELEASE-001" ], "formalAcceptanceCriterion": "真实渠道与目标浏览器矩阵通过;不是仅编译通过或mock成功。", "prerequisite": "真实渠道就绪、H5与小程序发行信息明确", "steps": [ "逐实际端核键盘/上传/回跳/断网/弱网/PDF", "各真实渠道走成功/取消/失败/恢复", "两设备/账户核缓存和状态" ], "expectedResults": [ "目标浏览器/设备矩阵和真实渠道通过", "编译或桩不代替实际平台运行" ], "blockedBy": [ "B-VERSION", "B-ENV", "B-DEVICE", "B-H5", "EXT-WX", "EXT-ONE", "EXT-SMS", "EXT-DATA", "EXT-CS" ], "historicalPartialEvidence": [ "E01", "E02", "E03", "E04", "E05", "E06", "E07", "E08", "E12" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-RELEASE-003", "taskId": "RELEASE-003", "module": "RELEASE", "title": "部署与恢复演练", "priority": "P0", "taskStatusSnapshot": "阻塞", "directTaskDependencies": [ "RELEASE-001", "ADMIN-003", "EXT-DEPLOY" ], "formalAcceptanceCriterion": "干净测试环境可部署;有数据环境升级可恢复;不重跑旧空表限定迁移。", "prerequisite": "用户另行授权可恢复演练窗口/目标和备份方案;不要求已取消的独立机", "steps": [ "核配置/HTTPS/增量迁移预检与恢复守卫", "受控验证systemd信号/重启/开机、告警实际投递与密钥恢复", "测规模备份/恢复RTO/RPO并保护后续数据" ], "expectedResults": [ "服务/数据可恢复且费用无重复", "真实故障/告警/托管/耗时有证据", "既有r3恢复与干跑仅为历史局部证据" ], "blockedBy": [ "EXT-DEPLOY", "B-OPS" ], "historicalPartialEvidence": [ "E01", "E02", "E03", "E04", "E05", "E06", "E07", "E08", "E12" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } }, { "id": "AC-RELEASE-004", "taskId": "RELEASE-004", "module": "RELEASE", "title": "首发验收与发布记录", "priority": "P0", "taskStatusSnapshot": "未开始", "directTaskDependencies": [ "RELEASE-002", "RELEASE-003" ], "formalAcceptanceCriterion": "所有一期必做项已验收;生产无demo数据/占位协议/模拟Token;记录实际版本和时间。", "prerequisite": "RELEASE-001/002/003完成且63必做项真实签收", "steps": [ "核所有范围/外部条件/缺陷结论与候选SHA", "保存实际小程序/H5/后端版本和时间", "经授权正式发布后冒烟并核回退触发/数据保护" ], "expectedResults": [ "正式负责人签收且版本可追溯", "无demo数据/占位协议/模拟Token,完整首发记录与回退条件齐备" ], "blockedBy": [ "B-VERSION", "B-ENV", "B-DEVICE", "B-H5", "B-OPS" ], "historicalPartialEvidence": [ "E01", "E02", "E03", "E04", "E05", "E06", "E07", "E08", "E12" ], "evidenceRequired": [ "候选ID/源码摘要和实际发布版本", "实际端/基础库/浏览器及非敏感账号角色别名", "成功/失败/恢复步骤与脱敏截图或安全回执", "requestId/taskId/assessmentId/revisionId等非秘密关联编号(仅按需)", "执行日期、执行人、缺陷号与复验结论" ], "result": { "status": "not-performed", "executedAt": null, "executor": null, "device": null, "evidence": [], "defects": [], "signoff": null } } ], "overallAcceptance": { "status": "not-performed", "signoffPerson": null, "signedAt": null, "conclusion": null } }