如何接手:不用 AI 也能继续How to continue by hand, without AI
1. 机器与分工1. Machines and roles
| 机器Machine | 角色Role | 约束Limits |
|---|---|---|
| langlang | 分析与谱拟合(fitting)analysis and spectral fitting | 整机 CPU 与内存 \(\le 60\%\);单线程;不写根分区whole-machine CPU and memory \(\le 60\%\); single-threaded; never write to the root partition |
| VirgoVirgo | XMM 数据还原(reduction);永不拟合XMM data reduction; never fitting | 一个作业最多 80% CPU;远程 stdin 脚本一律 timeoutone job up to 80% CPU; remote stdin scripts always under timeout |
| lang2lang2 | 仅谱拟合spectral fitting only | 整机 CPU \(\le 60\%\),空闲内存 \(\ge 10\) GB;拷入拷出后删除输入whole-machine CPU \(\le 60\%\), free RAM \(\ge 10\) GB; copy inputs in, results back, delete inputs |
来源:cognition-os/history/08_RUNNING_until_2026-10-21.md §2(lang/lang2/Virgo 限制原文)。Source: cognition-os/history/08_RUNNING_until_2026-10-21.md §2 (the lang/lang2/Virgo limits as written).
2. 数据、代码与结果在哪2. Where data, code and results live
| 内容What | 路径Path |
|---|---|
| 项目记忆(简报、问题、信任表、决策、日志)project memory (briefing, question, trust table, decisions, logs) | ~/program/CGMStacking/cognition-os/ |
| 普查脚本(Chandra/XMM/eROSITA 覆盖)census scripts (Chandra/XMM/eROSITA coverage) | ~/program/CGMStacking/cognition-os/artifacts/scripts/chandra_census/ |
| 普查输入(只读,含 SHA256)census inputs (read-only, with SHA256) | /u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/ |
| 零场试点(选择、区域、拟合)null-field pilot (selection, regions, fits) | ~/program/CGMStacking/null_pilot/ |
| 零场拟合结果(executor 与 dispatcher 两套)null-field fit results (executor and dispatcher copies) | ~/program/CGMStacking/null_pilot/fits/results_codexnim/ 与and .../results_claude/ |
| NGC 5746 MOS vs pn 检验NGC 5746 MOS vs pn test | ~/program/CGMStacking/n5746_mos_pn/ |
| AO-26 起源项目(只读)the AO-26 origin project (read-only) | ~/program/XMMproposal2026/ |
| 工具校准项目(xsherpa、ESAS 问题去那里)tool calibration project (xsherpa; calibration problems go there) | ~/program/DiffuseXrayCalibration/ |
| 数据产品(FITS 永不进 git)data products (never commit FITS) | /u/Lang3/Data/ |
| 临时文件(永不写 /tmp、/var/tmp、~)scratch (never /tmp, /var/tmp or ~) | /u/Lang2/ai_tmp/<agent>/ |
来源:README.md;cognition-os/01_PROJECT_INDEX.md;AGENTS.md。Source: README.md; cognition-os/01_PROJECT_INDEX.md; AGENTS.md.
3. 可复制命令3. Copy-paste commands
以下命令都在 2026-10-21 实际运行过,输出照抄。普查脚本没有 --help(是普通脚本,必须在含 data/ 的目录里运行),所以先复制输入再运行。临时目录用 $TMPDIR。Every command below was actually run on 2026-10-21 and the output is copied verbatim. The census scripts have no --help (plain scripts that must run from a directory containing data/), so copy the inputs first. Scratch goes to $TMPDIR.
3.1 重跑覆盖普查3.1 Re-run the coverage census
export TMPDIR=/u/Lang2/ai_tmp/hermes/handbook_2026-10-21-handbook-build
cd $TMPDIR && mkdir -p byhand/data && cd byhand
cp /u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/chanmaster.ecsv \
/u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/xmmmaster.ecsv \
/u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/hecate_m10.ecsv \
/u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/sdss_mw.csv data/
cp /u/Lang3/program/CGMStacking/cognition-os/artifacts/scripts/chandra_census/count.py .
/home/huangrui/software/miniconda3/envs/ciao-4.18/bin/python count.py
实际输出(SDSS Zhang 式样品的行):Actual output (the SDSS Zhang-like sample row):
## SDSS z0.01-0.2 logM*10.5-11.0 (Zhang-like, all, not only centrals): N=251561 (eRASS1-DE half: 108981)
theta(R=50..250kpc) median arcmin: [0.4, 0.8, 1.2, 1.6, 2.0]
ACIS-I 50kpc:3472(1585|152t) 100kpc:3159(1442|152t) 150kpc:2875(1305|152t) 200kpc:2603(1169|151t) 250kpc:2334(1040|148t)
括号里是曝光 \(\ge 20\) ks 的星系数与视场内目标数。count2.py 把 ACIS-I 与 ACIS-S 合并并去掉星系团目标场,给出 I007 (c) 表里的数:Inside the brackets: galaxies with exposure \(\ge 20\) ks and targets in the field. count2.py merges ACIS-I with ACIS-S and drops cluster-target fields, giving the numbers in I007 (c):
cp /u/Lang3/program/CGMStacking/cognition-os/artifacts/scripts/chandra_census/count2.py .
/home/huangrui/software/miniconda3/envs/ciao-4.18/bin/python count2.py
SDSS z0.01-0.2 logM*10.5-11.0 (Zhang-lik 50:4969(2116) 100:4341(1858) 150:3753(1608) 200:3267(1413) 250:2823(1216)
3.2 Vrot 选样普查3.2 The Vrot-selected census
cp /u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/leda_try.txt \
/u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/alfalfa.ecsv \
/u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/durbala.ecsv \
/u/Lang2/ai_tmp/claude/CGMStacking/census_2026-10-21/data/fashi.ecsv data/
cp /u/Lang3/program/CGMStacking/cognition-os/artifacts/scripts/chandra_census/vrot.py .
/home/huangrui/software/miniconda3/envs/ciao-4.18/bin/python vrot.py
## HyperLEDA Vrot 150-300, i>=45: N=9566 (eRASS1-DE 4638) median D_A=114 Mpc
Chandra 50:203(75) 100:101(32) 150:49(15) 200:23(8) 250:13(3)
XMM 50:570(411) 100:447(319) 150:361(256) 200:271(194) 250:217(154)
3.3 读零场结果表3.3 Read the null-field result tables
head -1 /u/Lang3/program/CGMStacking/null_pilot/fits/results_claude/stablesky/0600090401/mos_pn_table.md
grep "N+S" /u/Lang3/program/CGMStacking/null_pilot/fits/results_claude/stablesky/0600090401/mos_pn_table.md
# NULL0600090401: MOS vs pn excess amplitude A (1e-6 APEC norm per arcmin^2, kT 0.3; = K units)
| N+S | 1_2 | 1.50 | -0.00 ± 0.26 (1.0/1) | +0.13 ± 0.16 (0.0/1) | -0.13 (-0.4σ) | ...
D005 汇总(九个零场、两种天空模型):The D005 summary (nine nulls, two sky models):
head -8 /u/Lang3/program/CGMStacking/null_pilot/fits/results_claude/stablesky/d005_summary.json
{
"10p1_30p0": {
"stable": [
-0.267643793079895,
0.07927339444890803,
8.074421287104768,
6
3.4 查询 Chandra/XMM 档案表(HEASARC TAP)3.4 Query the Chandra/XMM archive tables (HEASARC TAP)
export TMPDIR=/u/Lang2/ai_tmp/hermes/handbook_2026-10-21-handbook-build
cat > $TMPDIR/tap_query.py <<'EOF'
import pyvo
h = pyvo.dal.TAPService("https://heasarc.gsfc.nasa.gov/xamin/vo/tap")
t = h.run_async("select top 5 obsid, status, name, ra, dec, detector, exposure from chanmaster "
"where status='archived' and grating='NONE' and detector like 'ACIS%'").to_table()
print(t)
EOF
/home/huangrui/software/miniconda3/envs/ciao-4.18/bin/python $TMPDIR/tap_query.py
obsid status name ra dec detector exposure
deg deg s
----- -------- -------------------- --------- --------- -------- --------
21421 archived ESO005-G004 91.42333 -86.63194 ACIS-S 23060
10143 archived 1RXSJ200924.1-853911 302.30417 -85.64633 ACIS-S 2030
22326 archived RE J0317-853 49.31604 -85.54043 ACIS-I 37930
需要 pyvo(pip install pyvo)。普查脚本 fetch.py 用同一 TAP 服务拉全表;它写的是相对路径 data/,所以也要在含 data/ 的目录运行。Needs pyvo (pip install pyvo). The census script fetch.py pulls the full tables from the same TAP service; it writes to the relative path data/, so it also must run from a directory containing data/.
来源:cognition-os/artifacts/scripts/chandra_census/{count.py,count2.py,vrot.py,fetch.py};null_pilot/fits/results_claude/stablesky/。命令于 2026-10-21 由本手册构建实际运行。Source: cognition-os/artifacts/scripts/chandra_census/{count.py,count2.py,vrot.py,fetch.py}; null_pilot/fits/results_claude/stablesky/. The commands were actually run by this handbook build on 2026-10-21.
4. 必须遵守的规则4. Rules to keep
- lang 与 Virgo 整机 CPU 和内存 \(\le 60\%\);看住磁盘空间。Whole-machine CPU and memory \(\le 60\%\) on lang and Virgo; watch the disks.
- 临时文件只写
/u/Lang2/ai_tmp/<agent>/;永不写/tmp、/var/tmp、~。Scratch only in/u/Lang2/ai_tmp/<agent>/; never/tmp,/var/tmpor~. - 还原(reduction)在 Virgo;拟合在 lang(lang2 也可);永不在 Virgo 拟合。Reduction on Virgo; fitting on lang (lang2 also); never fit on Virgo.
../XMMproposal2026/从本项目只读。../XMMproposal2026/is read-only from this project.- 校准问题(xsherpa、ESAS 引擎、QPB 标定)报告给 DiffuseXrayCalibration 的
cognition-os/tool_iteration.md,不在本地修。Calibration problems (xsherpa, the ESAS engine, QPB normalisation) are reported to DiffuseXrayCalibration'scognition-os/tool_iteration.md, not fixed locally. - 每个触碰
cognition-os/的回合在06_AGENT_LOG.md追加一行。Every turn that touchescognition-os/appends one row to06_AGENT_LOG.md. - 远程 stdin 脚本一律
timeout(ssh virgo timeout 600 python -B - <<EOF)。Remote stdin scripts always undertimeout(ssh virgo timeout 600 python -B - <<EOF). - xsherpa 用锁定版本
/u/Lang3/program/xsherpa/releases/current,永不allow_deprecated;QPB 缩放只作为 pn-only 测试(DXC D016)。xsherpa via the pinned release/u/Lang3/program/xsherpa/releases/current, neverallow_deprecated; QPB scaling only as a pn-only test (DXC D016).
来源:AGENTS.md;cognition-os/PITFALLS.md。Source: AGENTS.md; cognition-os/PITFALLS.md.
5. 下一步(编号计划)5. Next steps (numbered plan)
每一步给出:目标、输入、方法、成功/失败判据、时间估计、先读哪个文件。运行中的任务(P1–P4、S1–S2、RT-01/RT-02)结果待定;分诊它们的报告是第 1–2 步。Each step gives: goal, inputs, method, how to tell success from failure, time estimate, and which file to read first. The running tasks (P1–P4, S1–S2, RT-01/RT-02) are pending; triaging their reports is steps 1–2.
步骤 1:分诊 Chandra S/N 预报(P1)Step 1: triage the Chandra S/N forecast (P1)
- 目标:知道 Zhang 式 Chandra 叠加在 50–250 kpc 每个半径档的可达 S/N。Goal: know the reachable S/N per radial bin (50–250 kpc) for a Zhang-like Chandra stack.
- 输入:P1 报告(
.agent/jobs/2026-10-21-P1-chandra-snr/)。Input: the P1 report (.agent/jobs/2026-10-21-P1-chandra-snr/). - 方法:读报告,把每个 (N, 曝光, 半径) 的 S/N 抄进信任表。Method: read the report and copy the S/N for each (N, exposure, radius) into the trust table.
- 成功:50–150 kpc 的 S/N \(\ge 3\) 在现实筛选下可达 \(\to\) 走步骤 3。失败:S/N 不够 \(\to\) Chandra 只做点源深度检验(P4)。Success: S/N \(\ge 3\) at 50–150 kpc reachable with realistic cuts \(\to\) go to step 3. Failure: S/N insufficient \(\to\) Chandra does only the point-source-depth test (P4).
- 时间:约 1 小时(读 + 记录)。先读:
08_RUNNING.md,再读 P1 的 REPORT。Time: about 1 h (read + record). Read first:08_RUNNING.md, then the P1 REPORT.
步骤 2:分诊 Vrot 检验设计与文献(P2、S1、S2)Step 2: triage the Vrot test design and literature (P2, S1, S2)
- 目标:知道 eRASS1 公共数据能否裁决 Vrot vs M*,需要多大的 N。Goal: know whether eRASS1 public data can decide Vrot vs M*, and the N needed.
- 输入:P2 报告(
.agent/jobs/2026-10-21-P2-erass1-vrot-test/)、S1/S2 检索报告。Inputs: the P2 report (.agent/jobs/2026-10-21-P2-erass1-vrot-test/), the S1/S2 search reports. - 成功:eRASS1 足够 \(\to\) 运行该叠加(公共数据,lang)。失败:不够 \(\to\) Vrot 检验推迟到 eRASS:4。Success: eRASS1 suffices \(\to\) run that stack (public data, on lang). Failure: insufficient \(\to\) the Vrot test waits for eRASS:4.
- 时间:约 1–2 小时。先读:P2 的 REPORT,再读 S2 的文献清单。Time: about 1–2 h. Read first: the P2 REPORT, then the S2 reading list.
步骤 3:Chandra 还原试点(约 20 个场)Step 3: Chandra reduction pilot (~20 fields)
- 目标:Zhang 式远距离 M* 选样中约 20 个场的真实数据走通 Chandra 还原。Goal: run the Chandra reduction end-to-end on ~20 fields of the Zhang-like distant M* sample.
- 输入:P3 的现实选样(真实 aimpoint + roll,去星系团成员)。Input: the P3 realistic sample (real aimpoint + roll, group/cluster members dropped).
- 方法:CIAO 标准还原(lang 单线程,限 60%);Chandra 还原主机与 PI 商定(Virgo 只做 XMM)。Method: standard CIAO reduction (lang single-threaded, 60% cap); the Chandra reduction host is to be decided with the PI (Virgo is for XMM only).
- 成功:每个场产出可拟合的谱与图像;失败:某一步在 \(> 25\%\) 的场失败 \(\to\) 停下写坑记录。Success: fittable spectra and images for every field; failure: any step fails in \(> 25\%\) of fields \(\to\) stop and write a pitfall.
- 时间:数天(机器时间为主)。先读:
08_RUNNING.md§7 第 1 条。Time: several days (mostly machine time). Read first:08_RUNNING.md§7 item 1.
步骤 4:点源深度检验(P4 设计)Step 4: the point-source-depth test (P4 design)
- 目标:eRASS1(与 eRASS:4)探测限和 Chandra 极限之间的点源通量,占叠加超额的多大比例。Goal: what fraction of the stacked excess is point-source flux between the eRASS1 (and eRASS:4) detection limit and the Chandra limit.
- 输入:CSC 2.1 点源表 + Chandra 覆盖的星系 + Zhang/He & Li 叠加 SB。Inputs: the CSC 2.1 point-source catalogue, the Chandra-covered galaxies, and the Zhang/He & Li stacked SB.
- 成功:得到一个带误差的占比数字;失败:CSC 覆盖不足 \(\to\) 改用 Chandra 自己的源表。Success: a fraction with an error bar; failure: CSC coverage insufficient \(\to\) use Chandra's own source list instead.
- 时间:约 1 天。先读:P4 的 BRIEF.md。Time: about 1 day. Read first: P4's BRIEF.md.
步骤 5:红队分诊(RT-01 普查、RT-02 \(0.17 \pm 0.10\))Step 5: triage the red teams (RT-01 census, RT-02 the \(0.17 \pm 0.10\) number)
- 目标:普查数字与 \(0.17 \pm 0.10\) 这个承载全局的数经过独立复核后定级。Goal: after independent re-analysis, set the trust of the census numbers and of the load-bearing \(0.17 \pm 0.10\).
- 方法:读两份红队报告;有推翻性发现就更新
03_TRUST_TABLE.md与本手册。Method: read both reports; if a finding overturns a number, update03_TRUST_TABLE.mdand this handbook. - 时间:约 1 小时。先读:
REDTEAM_QUEUE.md。Time: about 1 h. Read first:REDTEAM_QUEUE.md.
步骤 6(停泊):XMM 零场的 MOS 偏置Step 6 (parked): the XMM null-field MOS offset
- 两个 PI 同意的检验(固定 CXB 天空;NGC 5746 多历元)保持停泊,直到 DiffuseXrayCalibration 校准完成;在此之前,MOS 科学值与零值必须来自同一拟合变体(D006 规则)。The two PI-agreed tests (fixed-CXB sky; NGC 5746 multi-epoch) stay parked until DiffuseXrayCalibration is done; until then a MOS science value and its null must come from the same fit variant (the D006 rule).
来源:cognition-os/08_RUNNING.md §7;cognition-os/RESEARCH_PLAN.md;cognition-os/04_DECISION_LOG.md D006。步骤 1–5 的顺序是本手册的建议(未经评审)。Source: cognition-os/08_RUNNING.md §7; cognition-os/RESEARCH_PLAN.md; cognition-os/04_DECISION_LOG.md D006. The order of steps 1–5 is this handbook's suggestion (not reviewed).