{
  "rules": [
    {
      "id": "tfx-cancel",
      "patterns": [
        {
          "source": "\\b(canceltfx|stoptfx)\\b",
          "flags": "i"
        }
      ],
      "skill": null,
      "action": "suppress_all",
      "priority": 0,
      "supersedes": ["tfx-multi", "tfx-unified", "tfx-codex", "tfx-gemini"],
      "exclusive": true,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-multi",
      "patterns": [
        {
          "source": "(?<!\\b(?:my|the|our|omc|oh-my-claudecode)\\s)\\btfx[\\s-]?multi\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-auto",
      "priority": 1,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-swarm",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?swarm\\b",
          "flags": "i"
        },
        {
          "source": "\\btfx[\\s-]?codex[\\s-]?swarm\\b",
          "flags": "i"
        },
        {
          "source": "\\bcodex[\\s-]?swarm\\b",
          "flags": "i"
        },
        {
          "source": "\\btfx[\\s-]?remote[\\s-]?spawn\\b",
          "flags": "i"
        },
        {
          "source": "\\bremote[\\s-]?spawn\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-swarm",
      "priority": 1,
      "supersedes": ["tfx-codex"],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-unified",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?auto\\b",
          "flags": "i"
        },
        {
          "source": "\\btfx[\\s-]?auto[\\s-]?codex\\b",
          "flags": "i"
        },
        {
          "source": "(?:만들어|고쳐|구현해|짜줘|수정해|바꿔)",
          "flags": "i"
        },
        {
          "source": "(?:리뷰해|검토해|봐줘|괜찮아)",
          "flags": "i"
        },
        {
          "source": "(?:테스트|검증|돌려봐|QA)",
          "flags": "i"
        },
        {
          "source": "(?:분석해|계획|설계해)",
          "flags": "i"
        },
        {
          "source": "(?:찾아봐|조사해|검색해)",
          "flags": "i"
        },
        {
          "source": "(?:정리해|슬롭|클린업)",
          "flags": "i"
        },
        {
          "source": "(?:병렬|동시에|parallel|concurrent)",
          "flags": "i"
        },
        {
          "source": "(?:점검|진단|확인해)",
          "flags": "i"
        },
        {
          "source": "(?:계속해|이어서|진행해)",
          "flags": "i"
        },
        {
          "source": "\\b(?:implement|build|fix|review|test|plan|analyze)\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-auto",
      "priority": 2,
      "supersedes": ["tfx-auto-codex"],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-codex",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?codex\\b(?![\\s-]?swarm)",
          "flags": "i"
        }
      ],
      "skill": "tfx-auto",
      "priority": 3,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-gemini",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?gemini\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-auto",
      "priority": 3,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-hub",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?hub\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-hub",
      "priority": 2,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-doctor",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?doctor\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-doctor",
      "priority": 2,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-setup",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?setup\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-setup",
      "priority": 2,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-autoresearch",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?autoresearch\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-research",
      "priority": 2,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-deep-interview",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?deep[\\s-]?interview\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-interview",
      "priority": 2,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "wt-tab-route",
      "patterns": [
        {
          "source": "(?:새\\s*탭|탭\\s*(?:새로|추가|생성|열|띄|파|만들))",
          "flags": "i"
        },
        {
          "source": "(?:패인|화면|pane)\\s*(?:분할|나눠|스플릿|split)",
          "flags": "i"
        },
        {
          "source": "\\bwt\\b\\s*(?:에\\s*)?(?:탭|tab|열|띄|새)",
          "flags": "i"
        },
        {
          "source": "(?:터미널|terminal)\\s*(?:탭|새\\s*탭)",
          "flags": "i"
        },
        {
          "source": "\\b(?:new\\s+tab|split\\s+pane|open\\s+(?:new\\s+)?tab)\\b",
          "flags": "i"
        }
      ],
      "skill": "tfx-wt",
      "priority": 1,
      "supersedes": ["tfx-unified"],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "wt-tab-rename",
      "patterns": [
        {
          "source": "(?:탭\\s*(?:이름|제목)\\s*(?:바꿔|변경|rename))",
          "flags": "i"
        },
        {
          "source": "(?:rename\\s+tab|tab\\s+rename)",
          "flags": "i"
        }
      ],
      "skill": "tfx-wt",
      "priority": 1,
      "supersedes": ["tfx-unified"],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "wt-tab-list",
      "patterns": [
        {
          "source": "(?:탭\\s*(?:목록|리스트|열린|현재))",
          "flags": "i"
        },
        {
          "source": "(?:list\\s+tabs|tab\\s+list|열린\\s*탭)",
          "flags": "i"
        }
      ],
      "skill": "tfx-wt",
      "priority": 1,
      "supersedes": ["tfx-unified"],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "wt-tab-close",
      "patterns": [
        {
          "source": "(?:탭\\s*(?:닫아|닫기|종료|정리|close))",
          "flags": "i"
        },
        {
          "source": "(?:close\\s+tab|tab\\s+close|탭\\s*정리)",
          "flags": "i"
        }
      ],
      "skill": "tfx-wt",
      "priority": 1,
      "supersedes": ["tfx-unified"],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "handoff-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(핸드오프|handoff|세션\\s*넘기)[\\s]*(생성|만들|써줘|작성|넘겨)",
          "flags": "i"
        }
      ],
      "skill": null,
      "action": "handoff",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "notion-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(노션|notion)[\\s-]?(페이지|글|조회|생성|수정|검색)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(노션|\\bnotion\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "chrome-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(크롬|chrome|브라우저)[\\s-]?(열|접속|로그인|navigate|click)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(크롬|\\bchrome\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "jira-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(jira|지라)[\\s-]?(이슈|티켓|생성|조회|스프린트)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(지라|\\bjira\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "codex"
    },
    {
      "id": "mail-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(메일|gmail|이메일)[\\s-]?(보내|읽|검색|draft)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(메일|이메일|\\bgmail\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "calendar-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(일정|캘린더|calendar)[\\s-]?(생성|조회|추가)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(일정|캘린더|\\bcalendar\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "playwright-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(playwright|브라우저\\s*테스트)(?:$|(?=\\s))",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "canva-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(canva|캔바|디자인\\s*생성)(?:$|(?=\\s))",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "confluence-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(confluence|위키|wiki)[\\s-]?(페이지|문서|조회|생성|수정|검색)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(위키|\\bconfluence\\b|\\bwiki\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "slack-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(slack|슬랙)[\\s-]?(메시지|채널|보내|읽|검색|알림)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(슬랙|\\bslack\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "antigravity"
    },
    {
      "id": "github-route",
      "patterns": [
        {
          "source": "(?:^|(?<=\\s))(github|깃허브)[\\s-]?(이슈|issue|PR|pull|커밋|commit|리포|repo)(?:$|(?=\\s))",
          "flags": "i"
        },
        {
          "source": "(깃허브|\\bgithub\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "priority": 10,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": "codex"
    },
    {
      "id": "gstack-checkpoint",
      "patterns": [
        {
          "source": "(?:어디까지\\s*했|뭐\\s*하고\\s*있었|뭘\\s*해야\\s*하|까먹|기억이\\s*안|이어서\\s*하|중단\\s*지점)",
          "flags": "i"
        },
        {
          "source": "\\b(?:checkpoint|resume|pick\\s*up|where\\s*was\\s*I)\\b",
          "flags": "i"
        }
      ],
      "skill": "checkpoint",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "gstack-office-hours",
      "patterns": [
        {
          "source": "(?:아이디어\\s*(?:있|정리|브레인)|뭘\\s*만들|제품\\s*구상)",
          "flags": "i"
        },
        {
          "source": "\\boffice[\\s-]?hours\\b",
          "flags": "i"
        }
      ],
      "skill": "office-hours",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "gstack-ship",
      "disabled": true,
      "patterns": [
        {
          "source": "(?:배포해|PR\\s*만들|릴리스\\s*해|머지하고\\s*배포)",
          "flags": "i"
        },
        {
          "source": "\\bship\\b(?!.*tfx)",
          "flags": "i"
        }
      ],
      "skill": "ship",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "gstack-investigate",
      "patterns": [
        {
          "source": "(?:왜\\s*(?:안\\s*돼|터져|에러)|원인\\s*(?:찾아|분석)|root\\s*cause)",
          "flags": "i"
        },
        {
          "source": "\\binvestigate\\b",
          "flags": "i"
        }
      ],
      "skill": "investigate",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "gstack-cso",
      "patterns": [
        {
          "source": "(?:보안\\s*(?:감사|점검|리뷰|스캔)|\\bcso\\b|\\bOWASP\\b|\\bSTRIDE\\b)",
          "flags": "i"
        }
      ],
      "skill": "cso",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "gstack-qa-browser",
      "patterns": [
        {
          "source": "(?:사이트|브라우저|웹)\\s*(?:QA|테스트|확인|점검)",
          "flags": "i"
        },
        {
          "source": "(?:클릭|접속).*(?:테스트|확인)",
          "flags": "i"
        }
      ],
      "skill": "qa",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "gstack-retro",
      "patterns": [
        {
          "source": "(?:회고|이번\\s*주\\s*뭐\\s*했|주간\\s*리뷰|뭘\\s*했지)",
          "flags": "i"
        },
        {
          "source": "\\bretro\\b",
          "flags": "i"
        }
      ],
      "skill": "retro",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "gstack-autoplan",
      "patterns": [
        {
          "source": "(?:자동\\s*리뷰|리뷰\\s*파이프라인|전체\\s*리뷰)",
          "flags": "i"
        },
        {
          "source": "\\bautoplan\\b",
          "flags": "i"
        }
      ],
      "skill": "autoplan",
      "priority": 5,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "suppress-omc-team",
      "patterns": [
        {
          "source": "(?<!tfx[\\s-]?)(팀|\\bteam\\b)",
          "flags": "i"
        }
      ],
      "skill": null,
      "action": "suppress_omc",
      "priority": 20,
      "supersedes": [],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    },
    {
      "id": "tfx-ship",
      "patterns": [
        {
          "source": "\\btfx[\\s-]?ship\\b",
          "flags": "i"
        },
        {
          "source": "/ship\\b",
          "flags": "i"
        },
        {
          "source": "\\brelease\\b",
          "flags": "i"
        },
        {
          "source": "\\bpublish\\b",
          "flags": "i"
        },
        {
          "source": "배포(?!자|사|장|처)",
          "flags": ""
        },
        {
          "source": "릴리[즈스]",
          "flags": ""
        },
        {
          "source": "쉽\\s*(?:해|하자|가자|쳐)",
          "flags": ""
        }
      ],
      "skill": "tfx-ship",
      "priority": 3,
      "supersedes": ["gstack-ship"],
      "exclusive": false,
      "state": null,
      "mcp_route": null
    }
  ]
}
