static S ctxRuleLinkToFileName(WoodyBot bot, S ruleLink) {
  new Matches m;
  if (!startsWith(ruleLink, "Agent#Agent.", m))
    fail("Unknown rule link: " + ruleLink);
  L<S> parts = splitAtDot($1);
  S folder = "Agent";
  for (S part : parts) {
    folder.
  }
}