import io
p='traceable-reqs.toml'
s=io.open(p,encoding='utf-8',newline='').read(); nl='\r\n' if '\r\n' in s else '\n'
old=('# to docs-only main pushes too (doyle ruling). The ruled text below is kept verbatim; read both.').replace('\n',nl)
assert s.count(old)==1
new=nl.join(['# to docs-only main pushes too (doyle ruling). The ruled text below is kept verbatim; read both.',
'# ALSO NARROWED (IR-147, 0854bbe8; doyle accepted 2026-09-24, carried to the operator in the',
'# milestone close note): the ruled title\'s docs set, "Markdown OUTSIDE docs-site/", is no longer',
'# what the classifier does. The docs set is now named POSITIVELY: traceable-reqs.toml, repo-root',
'# *.md, and docs/**.md minus Markdown compiled into a binary or test. Everything else is code,',
'# so a PR touching only crates/x/README.md, releases-repo/*.md or .github/*.md now runs units. WHY:',
'# Markdown can be compiled in or be load-bearing. docs/ER-SKELETON.md is include_str!\'d into an',
'# spt bin test (cli.rs), so a skeleton edit changes a unit\'s input while the old rule called it',
'# docs. DIRECTION: conservative only. The narrowing can run MORE units, never fewer, so it cannot',
'# fabricate a green.'])
s=s.replace(old,new)
io.open(p,'w',encoding='utf-8',newline='').write(s)
print('ok')
