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