Recommended
Watch cited sources in code
Once a week, have a job find every cited source that stopped answering or was replaced by a newer version. Alert with the rules that cite it.
How to do it
Read the sources from the built rules, so the list never drifts. Fetch each address as Check the links you send people to says. Ask each standards body's own data whether a document was replaced. The RFC Editor lists the RFCs that obsolete each RFC in a JSON file per RFC. Leave out "updated by", because most updates leave the cited text valid. Name every rule that cites the source in the alert, so the fix needs no search. Never rely on people rereading sources on a schedule, because nobody does.
Examples
Using these examples: they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.
JavaScript example
// Which RFCs replaced this one, from the RFC Editor's metadata
const replacedBy = async number => {
const meta = await (await fetch(`https://www.rfc-editor.org/rfc/rfc${number}.json`)).json();
return meta.obsoleted_by.filter(Boolean);
};
Python example
import json
import urllib.request
def replaced_by(number: int) -> list[str]:
url = f"https://www.rfc-editor.org/rfc/rfc{number}.json"
meta = json.load(urllib.request.urlopen(url))
return [rfc for rfc in meta["obsoleted_by"] if rfc]
How to check
Cite RFC 7231 in one rule. The next run alerts that RFC 9110 replaced it and names that rule.
Sources
Related rules
- Cite the primary source for every rule in Engineering
- Check the links you send people to in Website
- Let an agent reread rules whose sources changed in Engineering
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. Credit the Agent Wranglers engineering playbook with a link to https://agentwranglers.se/playbook/engineering/documentation/watch-cited-sources. Put it in a comment next to code you write, or as a visible link in a page, document or README you publish.