Simplify workflow docs sync around direct risk coverage - #18
Conversation
67dd891 to
034a180
Compare
034a180 to
5e5e47e
Compare
Case G 原始记录
Exact prompt
导航结果
九份中文语义源均存在,并有对应 三类
根 README 与中文维护者地图中的全部本地 Markdown 链接均解析为现存路径,无错误链接。 合同中找到的五项命令python3 -m pytest -q
python3 -m py_compile zh/skills/workflow-docs-sync/scripts/sync_docs.py zh/scripts/install_skills.py
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
zh/skills/workflow-docs-sync
git diff --check
python3 zh/skills/workflow-docs-sync/scripts/sync_docs.py --help实际执行的关键 exact commands 与结果git rev-parse HEAD
git rev-parse 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d^{commit}
git status --short --branch --untracked-files=all结果:两个 SHA 完全一致;工作树无变更。分支相对 tracking branch 显示 PYTHONDONTWRITEBYTECODE=1 PYTEST_ADDOPTS='-p no:cacheprovider' python3 -m pytest -q结果:退出码 只读发现本机已有环境: PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' python3 --version
PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' python3 -m pytest --version结果:Python 3.9.12、pytest 7.4.4。 PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' \
PYTHONDONTWRITEBYTECODE=1 PYTEST_ADDOPTS='-p no:cacheprovider' \
python3 -m pytest -q结果:退出码
python3 -m py_compile zh/skills/workflow-docs-sync/scripts/sync_docs.py zh/scripts/install_skills.py结果:退出码 PYTHONDONTWRITEBYTECODE=1 \
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
zh/skills/workflow-docs-sync结果:退出码 PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' \
PYTHONDONTWRITEBYTECODE=1 \
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
zh/skills/workflow-docs-sync结果:退出码 git diff --check结果:退出码 PYTHONDONTWRITEBYTECODE=1 \
python3 zh/skills/workflow-docs-sync/scripts/sync_docs.py --help结果:退出码 最终核验: git diff --binary | shasum -a 256
git diff --cached --binary | shasum -a 256
git status --porcelain=v1 --untracked-files=all结果:两个 diff 均为空内容 digest,status 为空。 Findings / 歧义
最终结论:PASSCase G 的仓库入口可导航性、路径职责和五项验证入口均满足当前合同;候选 SHA 上实际验证结果通过,默认解释器依赖缺失已作为环境歧义完整保留。 |
PR #18 final-SHA — Case A round 1 原始记录结论PASS:完成了一次完整 此 PASS 仅表示本轮文档事实重建与同步合同通过,不表示 SEC full validation、production deployment、live AI、Cutover 或外部审计通过。 固定身份
Exact promptPrepareExact command: python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh结果:exit 原始单行 JSON: {"status":"prepared","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}事实重建结论Stage 10
Stage 11
Stage 12
其他现实抽样
Findings 与处置
Files changed其他八份文件无变化。 完整 Git diff: diff --git a/architecture.md b/architecture.md
index 0fab599..c64a0d5 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括仓库配置与 source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
九份文件 SHA-256整体算法:
Overall digest: 测试环境测试只使用项目代码和系统临时目录;最终 Git 状态证明没有测试 artifact 落入 target。 Exact validation commands 与结果JSON/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m json.tool capability_contract.json >/dev/null
Canonical capability alignment/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 tools/check_capability_contract_alignment.py
当前工作树的纯结构检查: /usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 - <<'PY'
import json
import sys
from pathlib import Path
repo_root = Path.cwd().resolve()
sys.path.insert(0, str(repo_root / 'tools'))
from check_capability_contract_alignment import (
alignment_errors,
git_committed_entries,
read_contract,
)
contract_path = repo_root / 'capability_contract.json'
payload = read_contract(path=contract_path)
tracked_paths = set(git_committed_entries(repo_root=repo_root))
errors = alignment_errors(
repo_root=repo_root,
payload=payload,
tracked_paths=tracked_paths,
base_payload=None,
)
print(json.dumps({'structural_errors': errors}, ensure_ascii=False, separators=(',', ':')))
raise SystemExit(1 if errors else 0)
PY原始结果: {"structural_errors":[]}
Provenance 专项/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest tests.test_validation_provenance tests.test_validation_provenance_light_package
Stage 10/11/12 定向回归/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.FullGoldenIntegrityTest tests.test_sec_pipeline_validation.ReportVerdictTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_sec_pipeline_validation.AuditorRepairBoundaryTest tests.test_sec_pipeline_validation.FullInstanceFallbackTest
默认完整 quick 回归/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -t . -p 'test_*.py'
vNext Python 3.9/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
vNext 默认解释器/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
这两条仅证明 recorded/shadow 测试在两个解释器通过,不证明 live AI、Cutover 或 full validation。 Git 机械检查git diff --check
主要调查命令以下读取/调查命令均为只读,正常批次耗时 git rev-parse HEAD
git cat-file -t 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
git cat-file -t 00c49b119431ad7201c51e573fbf2f353da3425e
git status --short --branch --untracked-files=all
git diff --cached --name-status
git ls-files -z
git log --date=iso-strict --format='%H%x09%ad%x09%s' -n 8 -- AGENTS.md SOP.md architecture.md capability_contract.json interact.md TESTING.md PR_Checklist.md docs/business_user_guide.md .github/pull_request_template.md scripts/sec_pipeline.py scripts/validation_provenance.py requirements/ai_first_v3_3_1sed -n '1,220p' /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/SKILL.md
sed -n '1,620p' /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py
sed -n '1,220p' /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/evals/README.md完整或分段读取了: 此外执行了 调查过程中的非证据性调用错误已保留:
未运行项与原因
Final check第一次调用误用了不存在的参数名: python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e --expected-upstream-sha 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d原始结果: {"status":"failed","error":"参数无效","detail":"the following arguments are required: --upstream-sha"}该调用未写入文件。公开 help 确认参数后,按同一 pinned identity 重跑: python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --upstream-sha 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e --language zh最终原始单行 JSON: {"status":"passed","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","files_checked":9,"dirty_paths":["architecture.md"]}
最终判定PASS — workflow-docs-sync Case A round 1。 独立 review、真实回归、最终九文件哈希、完整 diff 和 pinned final check 已闭合;唯一未 staged diff 是经 reviewer 确认必要的 |
PR #18 final-SHA — SEC_metrics Case A round 2 fresh-context 原始记录
1. Exact prompt(初始消息原样全文)持久化 follow-up(证据链;不改变 eval 范围): 逐字核对结果:开始时读取仓库外 prompt 副本并确认它与收到的初始提示词完全一致。收口时首次提取脚本错误地等待第二个 opening fence,没有在第一个 closing fence 处停止,因而误把额外 Markdown 计入并报告假 mismatch;主执行者明确授权再读取一次且仅一次后,按正确边界 2. Review mode 与执行者边界Review mode: self-review; independent review was not available due to agent thread limit.
3. 环境命令: date -u '+%Y-%m-%dT%H:%M:%SZ'; uname -srm; sw_vers -productVersion; git --version; python3 --version; python3.9 --version; pwd -P原始结果: 除明确标注 upstream 工作目录的 4. 起始快照(在 prepare 前冻结)4.1 Git 身份与完整 status
4.2 九份核心文件逐项 SHA-256整体 digest 的明确算法:按下列固定路径顺序生成 shasum -a 256 .github/pull_request_template.md AGENTS.md PR_Checklist.md SOP.md TESTING.md architecture.md capability_contract.json docs/business_user_guide.md interact.md | shasum -a 256结果: 4.3 起始完整工作树 diffdiff --git a/architecture.md b/architecture.md
index 0fab5992b47dff76e14667042f8148eb0b0b5cd0..c64a0d54a5b469c7eb9a8335f651377a04ae6d49 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括仓库配置与 source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
5. 合同与事实重建范围完整读取 canonical:
由 target 路由并完整读取:
vNext 权威 hash 重新计算并与 baseline manifest 核对: FSD、Issue、decision register、legacy inventory 的当前 hash 与 baseline manifest 声明一致。D-01、live、第二真实布局、独立 holdout、staging、Cutover、rollback/full 仍是明确 blocker;没有将 recorded primitives 写成 active。 6. prepareexact command(工作目录:canonical upstream repo): python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh
{"status":"prepared","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}解释: 7. Stage 10、11、12 独立事实重建7.1 Stage 10 — Golden
7.2 Stage 11 — bounded repair/report
7.3 Stage 12 — 独立终态 gate + provenance
8. 主动现实抽样、findings 与处置F-01 — 部分过时的“只有三份配置”(已处置,保留起始 diff)当前 因此 architecture 原 HEAD 的“输入包括三份配置”已部分过时。起始工作树已经把它最小改成“仓库配置与 source policy”;本轮代码/config 复核确认该改动准确,故保留,不再制造格式抖动。 处置: F-02 — 多文档共同虚构能力搜索(未发现需要修订的共同虚构)
处置:九核心文档无需新增修订。 F-03 — committed PASS artifact 不是本轮 current acceptance(已正确限界)当前 committed manifest/provenance 观察: 它绑定旧 commit/tree,不绑定 final target SHA + 当前 architecture bytes。只读 snapshot checker 本轮按设计拒绝 dirty source。因此没有把旧 F-04 — light / Golden / repair / full 用语抽样(无失真)
处置:无需改文档。 9. 独立测试选择理由本轮从代码风险重新选择,不沿用其他轮次:
10. Exact test/check commands、结果与耗时T-01 阶段 10–12 聚焦测试/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.ReportVerdictTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_sec_pipeline_validation.AuditorRepairBoundaryTest
T-02 provenance 专项/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_validation_provenance tests.test_validation_provenance_light_package
T-03 默认解释器 vNext,第一次执行(证据捕获失误,结果不可判定)/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
相关过程命令: pgrep -fl "python3 -m unittest discover -s tests/vnext -t . -p test_.*\.py -v"
while pgrep -f "python3 -m unittest discover -s tests/vnext -t . -p test_.*\.py -v" >/dev/null; do sleep 2; doneT-04 默认解释器 vNext,证据恢复重跑/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
T-05 Python 3.9 vNext floor/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
T-06 默认解释器全仓 quick regression/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -t . -p 'test_*.py'
T-07 Python 3.9 全仓 quick regression/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests -t . -p 'test_*.py'
T-08 JSON 与 whitespace hygienepython3 -m json.tool capability_contract.json >/dev/null
git diff --check
T-09 capability alignment(预期 fail-closed)/usr/bin/time -p python3 tools/check_capability_contract_alignment.py
解释:checker 的合同要求证据 bytes 等于 committed HEAD;本任务禁止 commit/stage,而正确文档修订正位于 T-10 snapshot checker(预期 fail-closed)/usr/bin/time -p python3 tools/check_validation_snapshot.py
解释:证明 committed sidecar 不能验收本轮 dirty source;不得写成本轮 full validation PASS。 11. 调查中发生但不构成测试结果的命令错误为保留真实过程,不隐去以下错误:
这些错误均 fail fast/只读;没有改变 target。 12. 未运行项与原因
13. final-check13.1 首次错误调用(保留)python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh
{"status":"failed","error":"参数无效","detail":"the following arguments are required: --upstream-sha, --expected-target-head"}13.2 完整固定身份的有效 final-checkpython3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh --upstream-sha 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e
{"status":"passed","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","files_checked":9,"dirty_paths":["architecture.md"]}14. Files changed 与结束快照14.1 本轮写入边界
14.2 结束 Git statusindex diff:empty。 14.3 结束九文件 SHA-256 与整体 digest整体 digest: 起始与结束逐文件 SHA、整体 digest 完全相同,证明本轮没有在 target 制造额外变更。 14.4 结束完整工作树 diffdiff --git a/architecture.md b/architecture.md
index 0fab5992b47dff76e14667042f8148eb0b0b5cd0..c64a0d54a5b469c7eb9a8335f651377a04ae6d49 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括仓库配置与 source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
15. 最终判定最终结果:PASS(本轮 workflow-docs-sync / 九文档 fresh-context 语义复核范围)。 判定依据:
发布/当前 snapshot 验收状态:BLOCKED / NOT PASS。 这是与上述文档同步 PASS 不同的层级: |
5e5e47e to
2b46451
Compare
Case G fresh-context 原始记录(fallback 修订版)
Candidate identity
Language
Exact promptFresh-context / blind-first 边界
导航结论仅依靠根入口及其内链,成功定位:
实际读取路径完整读取:
结构性读取:
仅枚举、未读取内容:
环境
验证结果总表
完整 pytest 计数:
全部 exact commands以下为本轮全部 shell command dispatch;长命令中的换行按实际 shell input 保留。 原始导航、读取与默认 gate
export LC_ALL=C
export PYTHONPYCACHEPREFIX=/private/tmp/case-g-final-sha-2b464511-pycache
python3 -m py_compile zh/skills/workflow-docs-sync/scripts/sync_docs.py zh/scripts/install_skills.pyrc
export LC_ALL=C
export PYTHONDONTWRITEBYTECODE=1
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
zh/skills/workflow-docs-syncrc
export LC_ALL=C
export PYTHONDONTWRITEBYTECODE=1
python3 zh/skills/workflow-docs-sync/scripts/sync_docs.py --helprc
set -o pipefail
git ls-tree -r -z --full-tree 2b4645119877272296f0d9cd15a905695c33c5b6 | shasum -a 256rc
set -o pipefail
git diff --no-ext-diff --binary | shasum -a 256rc
set -o pipefail
git diff --cached --no-ext-diff --binary | shasum -a 256rc
Fallback 新增 exact commands
export PYTHONDONTWRITEBYTECODE=1
/Users/lyuhongwang/opt/anaconda3/bin/python3 -c 'import pytest, yaml; print(f"pytest={pytest.__version__}"); print(f"PyYAML={yaml.__version__}")'rc 耗时
export LC_ALL=C
export PYTHONPYCACHEPREFIX=/private/tmp/case-g-final-sha-2b464511-anaconda-pycache
/Users/lyuhongwang/opt/anaconda3/bin/python3 -m pytest -q -p no:cacheprovider tests/test_workflow_docs_sync.py
export LC_ALL=C
export PYTHONPYCACHEPREFIX=/private/tmp/case-g-final-sha-2b464511-anaconda-pycache
/Users/lyuhongwang/opt/anaconda3/bin/python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
zh/skills/workflow-docs-syncrc
set -o pipefail
git diff --no-ext-diff --binary | shasum -a 256rc
set -o pipefail
git diff --cached --no-ext-diff --binary | shasum -a 256rc
默认 Python 失败证据默认 默认 这些证据未被 fallback 删除、覆盖或表述成成功。 Files changed候选仓库:
仓库外临时副作用:
Worktree/index diff digest
FindingsBLOCKER无。 WARN
NOTE
未运行项请求要求的五项 gate:无未运行项。 明确不在本案执行范围:
Final verdictPASS 固定 candidate SHA 可从根入口导航至全部要求路径;编译、5 个完整场景测试、canonical Skill validation、diff check 和 CLI help 均形成有效通过证据。默认 Python 缺依赖的两次失败保留为环境 WARN;没有候选 BLOCKER,且最终 HEAD、tree、worktree 和 index 均未变化。 |
SEC_metrics Case A round 1 原始记录
1. Exact prompt(逐字回显)2. 身份、禁读边界与范围2.1 Git 身份$ git -C '/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target' rev-parse HEAD
00c49b119431ad7201c51e573fbf2f353da3425e
$ git -C '/Users/lyuhongwang/Desktop/coding workflow' rev-parse HEAD
2b4645119877272296f0d9cd15a905695c33c5b6结束时两项身份未漂移。 2.2 禁读与执行边界
2.3 已完整读取的权威材料九份候选文件:
同时读取:
3. Public prepareExact command: /usr/bin/time -p python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh
原始 stdout 单行 JSON: {"status":"prepared","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}4. 独立事实重建4.1 当前能力与证据状态
4.2 Stage 10/11/12 专项核对
4.3 四项专项检查结论
5. Findings、修复与复核
5.1 父级 finding 的独立验证证据
结论:原“三份配置”若描述完整 00–12 输入则不完整;一行修正属实且最小。 6. Independent review
7. 文件修改范围$ git diff --numstat
1 0 AGENTS.md
6 4 TESTING.md
1 1 architecture.md
$ git diff --shortstat
3 files changed, 8 insertions(+), 5 deletions(-)修改:
零 diff:
候选九文件外零 diff;无 staged file;无 untracked file。 8. 测试环境四组完整 unittest 在同一隔离 target 中并行启动;每个进程只使用 tests 的 tempfile/temp Git 路径, 9. Exact validation/test commands 与结果9.1 Capability JSON parse/usr/bin/time -p python3 -m json.tool capability_contract.json >/dev/null最终:RC 9.2 Whitespace/diff gate/usr/bin/time -p git diff --check最终:RC 9.3 Capability alignment(当前工作树真实结果)/usr/bin/time -p python3 tools/check_capability_contract_alignment.py
最终原始关键输出: 这是 checker 对未提交 evidence bytes 的预期 fail-closed 结果。任务明确禁止 commit/stage,并要求保留候选 diff,因此不能把它改写成 PASS;它不是 JSON/anchor 语义失败。最终 public 9.4 Provenance 专项/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest tests.test_validation_provenance tests.test_validation_provenance_light_package
最终: 9.5 Stage 10/11/12 定向回归/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.FullGoldenIntegrityTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_validation_provenance.ValidationProvenanceTest.test_stage_invalidation_removes_only_regular_provenance tests.test_validation_provenance.ValidationProvenanceTest.test_stage12_wrapper_downgrades_on_unexpected_postflight_error tests.test_validation_provenance.ValidationProvenanceTest.test_report_provenance_notice_is_idempotent tests.test_validation_provenance.ValidationProvenanceTest.test_readme_routes_are_idempotent覆盖:Stage 10 full/light Golden exact-set/tamper/workspace mode;Stage 11 manifest/README/report/repair failure;Stage 12 report/manifest publication、symlink/write failure、postflight fail-closed;stage invalidation 与 notice idempotency。
最终: 9.6 默认解释器全仓快速回归/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -t . -p 'test_*.py'
9.7 Python 3.9 全仓快速回归/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests -t . -p 'test_*.py'
9.8 默认解释器 tests/vnext 完整 recorded tests/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
9.9 Python 3.9 tests/vnext 完整 recorded tests/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
9.10 结果解释
10. NOT_RUN以下命令未执行,均未被写成 PASS:
11. Open decisions 与剩余风险11.1 Open decisions
11.2 剩余风险
12. Public final checkExact command: /usr/bin/time -p python3 '/Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py' check --target-repo '/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target' --upstream-dir '/Users/lyuhongwang/Desktop/coding workflow' --upstream-sha '2b4645119877272296f0d9cd15a905695c33c5b6' --expected-target-head '00c49b119431ad7201c51e573fbf2f353da3425e' --language 'zh'
原始 stdout 单行 JSON: {"status":"passed","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","files_checked":9,"dirty_paths":["AGENTS.md","TESTING.md","architecture.md"]}该 check 只证明:固定 upstream object、target HEAD、dirty allowlist、index/worktree 分叉约束、九份普通 UTF-8 非空文件、JSON object、active marker 与固定 whitespace 规则通过。它不证明文案语义、调查历史、测试层级或 full acceptance;这些由本记录中的事实重建、真实测试和 independent review 分别提供。 13. 九文件起止 SHA-256
13.1 整体 digest 算法固定文件顺序:
对每个文件先计算 raw bytes 的 lowercase SHA-256 hex,然后按固定顺序拼接: 整体 digest 为上述九段连接字节流的 SHA-256。
14. Git diff identity
Exact hash command: git diff --binary | shasum -a 25615. 完整
|
SEC_metrics Case A round 2:Workflow Docs Sync 独立复核记录最终结论:PASS(round 2 有一处基于新事实的最小文案修复,因此不是 no-op)。
1. Exact prompt 回显以下代码块内部逐字回显本轮 exact prompt;prompt receipt 本身另存于仓库外文件。 Prompt receipt:
2. 固定身份、环境与 review mode
3. Canonical skill 与公开 prepare/check使用 candidate upstream 的 canonical skill:
Prepare exact command: python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh结果:rc=0;tool wall=0.096954708s。原始单行 JSON: {"status":"prepared","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}Prepare 未安装文件,未改变 target bytes。 Final check 在修复与独立终审后运行。Exact command: python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --upstream-sha 2b4645119877272296f0d9cd15a905695c33c5b6 --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e --language zh结果:rc=0;tool wall=0.248234s。原始单行 JSON: {"status":"passed","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","files_checked":9,"dirty_paths":["AGENTS.md","TESTING.md","architecture.md"]}机械 4. 起始快照起始 HEAD: 起始 status: 4.1 九文件起始 hashes整体 digest 算法:严格按下表顺序,对每个文件原始 bytes 计算 SHA-256;为每项生成 UTF-8 行
起始九文件整体 digest: 起始完整 4.2 起始完整 diffdiff --git a/AGENTS.md b/AGENTS.md
index 27f21c2..ca741a1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -106,6 +106,7 @@ requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
- `01_SOP_SEC_10公司单年指标计算_直接SEC.md`:当前运行路径中的业务方法输入,属于 acceptance source;其中 M0–M7 是概念阶段,不是当前 `scripts/00_*`–`12_*` 的物理顺序,实际运行以 `README_RUN.md` 为准。
- `02_指标定义_SEC_10公司单年指标.md`:指标定义、候选链、公式、适用性与降级语义。
- `SEC_metrics_Project_Overview_and_Expert_Guide.md`:解释性非权威文档;其中历史数量或历史验收结论不是当前状态源,也不得作为 SOP 运行权威。
+- `SEC_metrics_项目全景与专家指南.md`、`SEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.md`、`SEC_metrics_Raw_Data_后端交接简版_v1.0.md`、`SEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.md` 与 `Databricks生产化方案_产品与前端沟通版.*`:历史说明、方案或交接材料,不在当前 runtime/acceptance source closure 内;其中 Databricks Job、数据库、API、前端或生产调度描述不证明本仓库已实现、部署或启用对应能力。
- `README_RUN.md`:完整阶段顺序、验收入口、主要输出和 light review 说明。
- `CIK变更应对方案.md`:CIK、successor/predecessor 与实体连续性规则,属于 acceptance source。
- `evidence/requests_log.csv`:按 request attempt 记录的请求 ledger。
diff --git a/TESTING.md b/TESTING.md
index 27d6c0d..b9062ac 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -164,20 +164,22 @@ fixture 可以包含公司身份;生产 `scripts/` 与 `tools/` 不得用公
### 7.2 Golden
-full 模式会通过 G2 访问 SEC companyconcept,可能更新 `evidence/requests_log.csv` 和 raw response,并覆盖:
+公开 `scripts/10_*` wrapper 没有受支持的业务参数或容错参数,不能把额外 argv 当成配置接口。full 模式读取 registry、resolution、metrics、concept inventory,并通过 G2 访问 SEC companyconcept;数值/字符串期望和容差逐行来自已跟踪的 `tests/fixtures/sec_10_company_spike/golden_expected_values.csv`(当前只包含 `exact`、`0`、`0.01` 和 `0.0000000001`)。该模式可能更新 request ledger/manifest、immutable response attempts,并覆盖:
- `outputs/golden_results.csv`
- `outputs/golden_candidates.csv`
-light 模式只做随包 snapshot integrity,不能被记录成 full Golden 重算。
+light 模式只做随包 snapshot integrity,不联网、不重算、不写上述 Golden 输出,也不能被记录成 full Golden 重算。输入缺失、远端/持久化失败或任一 assertion FAIL 都必须使 Stage 10 非零退出。
### 7.3 Repair gate
-阶段 12 在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查。
+公开 `scripts/12_*` wrapper 没有受支持的业务参数或容错参数。阶段 12 离线读取当前 source-input tree 与现有 full/light artifacts,并在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查;workspace incomplete、full 中 `NOT_EVALUATED_MISSING_EVIDENCE`、validation blocker、dirty source、写入失败或 postflight 失配都必须非零退出。
+
+现行 legacy repair 阈值不是 Stage 10 fixture,也不是可调 CLI 参数:lodging identity relative error 阈值为代码固定 `0.05`(5%),RevPAR/occupancy 合理范围来自 config,B03 crosscheck relative error 阈值为代码固定 `0.01`(1%),anchor comparison 使用代码固定 absolute Decimal tolerance `0.0000000001`。vNext FSD 的 lodging `1%` 只属于尚未切流的 recorded shadow 契约,不能反向改写现行 00–12 阈值。
### 7.4 Report build
-阶段 11 会先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12。
+公开 `scripts/11_*` wrapper 没有受支持的业务参数或容错参数。阶段 11 读取 config、现有 evidence/outputs 与 Golden fixture,先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,重写 metrics/evidence/governance、Golden repair-sensitive rows,并生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12;validation blocker 可形成 NO-GO 产物而 wrapper 仍退出 0,迁移、请求、持久化或报告生成异常必须非零退出,且 Stage 11 不发布成功 provenance。
### 7.5 Validation snapshot provenance
diff --git a/architecture.md b/architecture.md
index 0fab599..9c3e84e 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括现行 00–11 的三份业务/SEC 配置、Stage 12 的 validation source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
5. 独立事实重建完整读取并交叉核对:
5.1 Stage 10
5.2 Stage 11
5.3 Stage 12
5.4 阈值与 vNext 边界
6. 四项专项检查
7. 九文件逐项质疑
8. Finding、修复与独立复核A-R2-01 — BLOCKER(已修复)初始文字:
当前代码证据:
最小修复:只改
未改 production 的理由:任务是同步/审计文档;当前实现语义本身不是本轮授权修复范围。若业务希望远端失败强制 gate,应另开 production contract/implementation/test 变更,不能用文档先行创造能力。 修复影响:
独立 reviewer:
9. 测试与机械证据9.1 Exact commands所有测试从 env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m json.tool capability_contract.json >/dev/null
/usr/bin/time -p git diff --check
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 tools/check_capability_contract_alignment.py
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest -v tests.test_validation_provenance tests.test_validation_provenance_light_package
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.FullGoldenIntegrityTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_sec_pipeline_validation.PortableArtifactPathTest.test_stage_11_runs_after_clone_root_change
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest discover -s tests -t . -p 'test_*.py'
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3.9 -m unittest discover -s tests -t . -p 'test_*.py'
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -vStage 10/11/12 与 finding 直接调查的 exact read/search commands(只读): sed -n '1520,1575p' scripts/sec_http.py
sed -n '1575,1745p' scripts/sec_http.py
sed -n '8780,8885p' scripts/sec_pipeline.py
sed -n '9480,9570p' scripts/sec_pipeline.py
sed -n '160,182p' TESTING.md
rg -n '^def (validation_package_mode|run_golden_assertions|run_repairs|build_report|run_validation|run_stage)|GOLDEN_|lodging|relative_error|Decimal\("0\.(05|01|0000000001)' scripts/sec_pipeline.py scripts/10_run_golden_assertions.py scripts/11_build_report.py scripts/12_validate_repair.py tests/fixtures/sec_10_company_spike/golden_expected_values.csv config/metric_applicability.yaml
rg -n 'run_g2_structural_golden|companyconcept_status|G2_financial_assetscurrent|g2_financial_assetscurrent' tests
rg --files requirements/ai_first_v3_3_1 | sort
rg --files config | sort
rg --files | rg 'SEC_metrics_项目全景与专家指南|SEC_metrics_Databricks_Raw生产闭环操作手册|SEC_metrics_Raw_Data_后端交接简版|SEC_metrics_数据库边界与实施决策_项目负责人版|Databricks生产化方案_产品与前端沟通版' | sort
rg -n -m 6 'Databricks Job|Jobs|定时|调度|API|前端|数据库|未来|FSD|DoD|Gate' SEC_metrics_项目全景与专家指南.md SEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.md SEC_metrics_Raw_Data_后端交接简版_v1.0.md SEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.md Databricks生产化方案_产品与前端沟通版.artifact.json Databricks生产化方案_产品与前端沟通版.htmlSnapshot/digest exact command pattern: git rev-parse HEAD
git status --short
git diff --check
git diff --binary
for eval_path in architecture.md capability_contract.json interact.md docs/business_user_guide.md TESTING.md PR_Checklist.md SOP.md AGENTS.md .github/pull_request_template.md; do eval_hash=$(shasum -a 256 "$eval_path" | awk '{print $1}'); eval_lines=$(wc -l < "$eval_path" | tr -d ' '); eval_bytes=$(wc -c < "$eval_path" | tr -d ' '); printf '%s\t%s\t%s\t%s\n' "$eval_path" "$eval_hash" "$eval_lines" "$eval_bytes"; done
for eval_path in architecture.md capability_contract.json interact.md docs/business_user_guide.md TESTING.md PR_Checklist.md SOP.md AGENTS.md .github/pull_request_template.md; do printf '%s\t' "$eval_path"; shasum -a 256 "$eval_path" | awk '{print $1}'; done | shasum -a 256
git diff --binary | shasum -a 256一次只读 9.2 结果、解释器、return code、耗时与计数
Alignment 的 rc=1 是真实结果,不能改写为 PASS:checker 按设计要求 capability evidence 的工作树 bytes 与 HEAD regular blob 一致,而本次评估对象正是未提交文档 diff。它未报告 JSON、anchor、symbol、metadata 或 request-ledger schema 错误。若候选未来提交,仍必须在 commit 后重跑 alignment;当前 四套完整回归都在 finding 修复前完成;修复只改 10. NOT_RUN、open decisions 与剩余风险10.1 明确 NOT_RUN
10.2 Open decisions
10.3 剩余风险
11. 结束快照与 round-2 变更证明结束 HEAD: 结束 status: 11.1 九文件结束 hashes整体 digest 算法与起始完全相同。
结束九文件整体 digest: 结束完整 对比:
11.2 结束完整 diffdiff --git a/AGENTS.md b/AGENTS.md
index 27f21c2..ca741a1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -106,6 +106,7 @@ requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
- `01_SOP_SEC_10公司单年指标计算_直接SEC.md`:当前运行路径中的业务方法输入,属于 acceptance source;其中 M0–M7 是概念阶段,不是当前 `scripts/00_*`–`12_*` 的物理顺序,实际运行以 `README_RUN.md` 为准。
- `02_指标定义_SEC_10公司单年指标.md`:指标定义、候选链、公式、适用性与降级语义。
- `SEC_metrics_Project_Overview_and_Expert_Guide.md`:解释性非权威文档;其中历史数量或历史验收结论不是当前状态源,也不得作为 SOP 运行权威。
+- `SEC_metrics_项目全景与专家指南.md`、`SEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.md`、`SEC_metrics_Raw_Data_后端交接简版_v1.0.md`、`SEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.md` 与 `Databricks生产化方案_产品与前端沟通版.*`:历史说明、方案或交接材料,不在当前 runtime/acceptance source closure 内;其中 Databricks Job、数据库、API、前端或生产调度描述不证明本仓库已实现、部署或启用对应能力。
- `README_RUN.md`:完整阶段顺序、验收入口、主要输出和 light review 说明。
- `CIK变更应对方案.md`:CIK、successor/predecessor 与实体连续性规则,属于 acceptance source。
- `evidence/requests_log.csv`:按 request attempt 记录的请求 ledger。
diff --git a/TESTING.md b/TESTING.md
index 27d6c0d..8483cf6 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -164,20 +164,22 @@ fixture 可以包含公司身份;生产 `scripts/` 与 `tools/` 不得用公
### 7.2 Golden
-full 模式会通过 G2 访问 SEC companyconcept,可能更新 `evidence/requests_log.csv` 和 raw response,并覆盖:
+公开 `scripts/10_*` wrapper 没有受支持的业务参数或容错参数,不能把额外 argv 当成配置接口。full 模式读取 registry、resolution、metrics、concept inventory,并通过 G2 访问 SEC companyconcept;数值/字符串期望和容差逐行来自已跟踪的 `tests/fixtures/sec_10_company_spike/golden_expected_values.csv`(当前只包含 `exact`、`0`、`0.01` 和 `0.0000000001`)。该模式可能更新 request ledger/manifest、immutable response attempts,并覆盖:
- `outputs/golden_results.csv`
- `outputs/golden_candidates.csv`
-light 模式只做随包 snapshot integrity,不能被记录成 full Golden 重算。
+light 模式只做随包 snapshot integrity,不联网、不重算、不写上述 Golden 输出,也不能被记录成 full Golden 重算。输入缺失、持久化失败或任一 assertion FAIL 都必须使 Stage 10 非零退出。G2 远端请求状态会写入 `actual`,但当前 PASS/FAIL 只由 B08 是否为 `N_A_STRUCTURAL` 决定,不能把任意远端失败概括为必然非零。
### 7.3 Repair gate
-阶段 12 在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查。
+公开 `scripts/12_*` wrapper 没有受支持的业务参数或容错参数。阶段 12 离线读取当前 source-input tree 与现有 full/light artifacts,并在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查;workspace incomplete、full 中 `NOT_EVALUATED_MISSING_EVIDENCE`、validation blocker、dirty source、写入失败或 postflight 失配都必须非零退出。
+
+现行 legacy repair 阈值不是 Stage 10 fixture,也不是可调 CLI 参数:lodging identity relative error 阈值为代码固定 `0.05`(5%),RevPAR/occupancy 合理范围来自 config,B03 crosscheck relative error 阈值为代码固定 `0.01`(1%),anchor comparison 使用代码固定 absolute Decimal tolerance `0.0000000001`。vNext FSD 的 lodging `1%` 只属于尚未切流的 recorded shadow 契约,不能反向改写现行 00–12 阈值。
### 7.4 Report build
-阶段 11 会先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12。
+公开 `scripts/11_*` wrapper 没有受支持的业务参数或容错参数。阶段 11 读取 config、现有 evidence/outputs 与 Golden fixture,先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,重写 metrics/evidence/governance、Golden repair-sensitive rows,并生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12;validation blocker 可形成 NO-GO 产物而 wrapper 仍退出 0,迁移、请求、持久化或报告生成异常必须非零退出,且 Stage 11 不发布成功 provenance。
### 7.5 Validation snapshot provenance
diff --git a/architecture.md b/architecture.md
index 0fab599..9c3e84e 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括现行 00–11 的三份业务/SEC 配置、Stage 12 的 validation source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
12. 最终判定PASS — workflow-docs-sync Case A round 2。 判定边界:
|
1. Background and goal
本 PR 重新审查
workflow-docs-sync每一层是否承担独立风险。目标是保留核心公共行为、少量场景级确定性测试和真实端到端 eval;只有风险已被更直接机制覆盖或被明确接受时,才删除单元测试、实现细节测试、代理指标和重复控制面。本 PR 不执行目标项目的 live Cutover,不增加 ledger、run state、receipt 或 migration registry,也不改变“只有用户明确要求才 commit、push 或创建 PR”的发布边界。
2. Final identity and actual scope
f669ee40b1fbfe91baee097fd26ad975d7783aea5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d2b4645119877272296f0d9cd15a905695c33c5b69c00ed3e993b440389d6e3c455f4f992240deffcSimplify workflow docs sync around direct risk coverage实际范围覆盖根入口、双语九份下游模板、双语 maintainer map、development workflow、DEC-006、canonical Skill、eval contract、安装器分发合同和公开 CLI 场景测试。
3. Implementation and final P1 closure
prepare与check共用单一 source-template validator。upstream_dir决定 Git object store,upstream_sha决定固定 object,language决定读取zh/或en/;九份 source path 必须能从 pinned object 读取且为 UTF-8,八份非 PR source 必须至少含一个 active marker,PR template 豁免 marker。prepare在任何目标写入前验证 pinned source,并只补齐缺失模板;check在验证目标终态前重读并验证调用方指定的 pinned source。没有恢复 template equality 或 CRLF equality。StatusEntry保留 porcelain XY code。editable path 出现MM、AM、MD、RM等 index/worktree 分叉时 fail closed,要求调用方先统一唯一 final bytes。final-bytes whitespace 继续在临时非 Git 目录运行,但改为专用 Git 调用,不改变通用
run_git()对rev-parse、show、status的行为。专用环境设置:命令同时固定:
因此 checker 不继承 target repository、user-global 或 system attributes。
公开 CLI 回归使用临时 HOME,通过
git config --global core.attributesFile指向含*.md -whitespace的临时 attributes 文件,再把 trailing whitespace 写入目标architecture.md。旧生产实现中check错误返回 0;修复后同一场景以trailing whitespace失败。测试没有修改真实用户 global config,也没有 import production helper。canonical
SKILL.md与 DEC-006 同步声明 target/user-global/system attributes 隔离。存在的
.gitignore继续要求普通文件、UTF-8,并进入同一 final-bytes whitespace gate。红绿记录:
1 failed in 32.97s;新断言捕获check_result.returncode == 0。1 passed in 36.19s。4. Template and decision boundary
prepare/check机械责任边界,以及发布需显式授权且不由sync_docs.py执行继续有效。TEMPLATE_TOKENS和独立 broad“待补充”扫描;两个 active project-fill marker 是唯一机器未完成状态。历史 upstream 由 source active-marker invariant fail closed。check不声称判断文案质量或章节语义。5. Public CLI scenario coverage
场景测试只通过公开 CLI 与真实临时 Git 仓库验证,不 import
sync_docs.py内部 helper:check(v1)PASS,check(v2)FAIL,证明结论依赖 object bytes 而非回显 SHA。prepare(zh)后以en或无九模板的 unrelated object store 执行check,均按真实 source 失败。.gitattributes与 user-globalcore.attributesFile的*.md -whitespace均不能绕过 bad final Markdown。.gitignore失败。6. Final-SHA mechanical evidence
以下命令均在
2b4645119877272296f0d9cd15a905695c33c5b6上重跑:Result:
5 passed in 55.27s。Result:PASS。
Result:
Skill is valid!。Result:diff checks PASS;CLI 只暴露
{prepare,check}。7. Final-SHA end-to-end eval
三次 eval 均固定 candidate upstream SHA
2b4645119877272296f0d9cd15a905695c33c5b6。Case A 使用隔离 SEC_metrics worktree,target SHA00c49b119431ad7201c51e573fbf2f353da3425e,languagezh;原始 SEC checkout 未修改。Case G — PASS
9c00ed3e...;worktree/index diff 均为空。.github职责。5 passed in 47.92s且Skill is valid!。没有安装依赖。SEC_metrics Case A round 1 — PASS
prepare固定 target/upstream/language,installed=[],九文件均 existing。AGENTS.md、TESTING.md、architecture.md:历史方案文档降权、Stage 10–12 参数/副作用/阈值/failure boundary 补齐,以及 active 00–11 三份配置与 Stage 12 source policy 边界澄清。最终 diff 为 8 insertions/5 deletions,SHA-2560f0ad9124fe32174874b2eccac7c118aa84ca3bf98a4076ab06f3445e3bd0bb3。APPROVE。父级在 blind review 后补充的 architecture finding 经 production/config 验证后窄修。git diff --checkPASS。checkPASS,dirty allowlist 恰为三文件。SEC_metrics Case A round 2 — PASS with one fact-triggered correction
3d5f399e2de8a694e10c9d4094555ca1ed93a8e2de031d2f6833c96a9c81151f;禁止读取 round 1、Case G、PR body/comments 和历史 eval。prepare/check。TESTING.md把任意 Stage 10 远端失败写成必然非零,但SecHttpClient.fetch()重试耗尽返回FetchResult,G2 只把 status 写入actual,Stage 10 按 assertion status 决定退出码。round 2 只收窄该句文案,未改 production;修后 reviewerAPPROVE。TESTING.md变化;最终三文件 diff 仍为 8 insertions/5 deletions,diff SHA-256ed492af7064f0d451ff25c4a0e57b37f6e0a2725c86f2dbbec742e9a34aed6b0。INDETERMINATE,原命令独立重跑 174/174 PASS。修后 provenance 22/22、Stage 10–12 定向 18/18、JSON/diff PASS。AGENTS.md;因此记录明确不声称“九文件严格全盲”。其余八文件和完整 diff 在独立事实冻结后读取。checkPASS,dirty allowlist 恰为三文件。旧
5e5e47e...的三份 eval 已按 final-SHA contract superseded,不作为本 head 的合并证据。8. Review/fix record
.gitignoreUTF-8 进入稳定 final-bytes gate。core.attributesFile/ system attributes 绕过已由 whitespace 专用 Git 环境和公开 CLI 回归关闭;通用 Git 调用未改变。当前没有未解决 P0/BLOCKER 或 P1/actionable WARN。范围外 NOTE:默认 Python 缺 pytest/PyYAML;现有 Anaconda 环境已形成有效 gate evidence。
9. Known limits and final gate
test/pytest (pull_request)与test/pytest (push)均 SUCCESS。最终自检:local SHA、remote branch 与 PR head 一致;base 上单一提交;机械 gate、Case G、Case A round 1 和完整 round 2 均固定同一 final SHA;PR body 与 raw comments 对应真实执行;canonical worktree/index clean。