tfx-harness
Skill7 starsChanged 13 days agoMITView on GitHub
어떤 스킬·경로를 선택할지 묻는 메타 라우팅 요청에 사용한다. 실행하지 않고 canonical routing SSOT에서 branch와 즉시 owner 하나만 반환한다.
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- tfx-autoSkill
- tfx-doctorSkill
- tfx-leadSkill
- tfx-liveSkill
- tfx-remoteSkill
- tfx-researchSkill
- tfx-reviewSkill
- tfx-setupSkill
- tfx-shipSkill
- tfx-wtSkill
The file
Files
tfx-harness — Claude adapter
이 스킬은 실행 엔진이 아니다. routing SSOT의 D0–D11을 읽어 사용자 intent와 확인 가능한 host capability evidence를 판정한다. 정책 표, keyword 표, owner 매트릭스를 이 파일에 복제하지 않는다.
Jev 분기 선택
명시 지정(D0)이 없으면 SSOT를 읽기 전에 요청을 요약해 한 번 실행한다. 비밀값과 붙여넣은 원문은 요약에 넣지 않는다.
tfx judge route --task '<요청 요약>'choice가 있으면 그 값이 branch이고 rule 한 줄로 owner를 정한다. SSOT 전문은 읽지 않는다. rule만으로 owner가 하나로 정해지지 않으면 전문을 읽는다. choice가 null이거나 명령이 실패하면 아래 순서로 SSOT를 찾아 직접 판정한다.
SSOT 탐색
이 스킬은 글로벌 설치이고 triflux 밖에서도 호출되지만 SSOT는 프로젝트 로컬 파일이다. 아래를 순서대로 시도하고, 전부 실패할 때만 blocked를 반환한다.
$TFX_ROUTING_SSOT(설정돼 있으면 1순위)- git 메인 워크트리 —
$(git rev-parse --git-common-dir)의 부모 아래.claude/rules/tfx-routing.md - cwd에서 위로 올라가며
.claude/rules/tfx-routing.md - 이 스킬 디렉터리의
references/tfx-routing.md(tfx setup이 패키지에서 복사한 사본)
위 순서는 아래 블록을 그대로 실행해 확인한다. 한 줄로 합치거나 다시 짜지 않는다. 출력이 비면 blocked다.
common=$(git rev-parse --git-common-dir 2>/dev/null) && common=$(cd "$common" && pwd)
d=$PWD
while [ "$d" != / ] && [ ! -f "$d/.claude/rules/tfx-routing.md" ]; do d=$(dirname "$d"); done
for f in "${TFX_ROUTING_SSOT:-}" "${common%/*}/.claude/rules/tfx-routing.md" "$d/.claude/rules/tfx-routing.md" "$HOME/.claude/skills/tfx-harness/references/tfx-routing.md"; do
[ -f "$f" ] && { echo "$f"; break; }
done4순위는 clone이 없는 기기를 위한 것이다. 설치한 버전의 정책이라 clone보다 늦을 수 있으므로 1~3순위 뒤에 둔다.
2순위에 --show-toplevel을 쓰지 않는다. linked worktree 안에서는 worktree 루트를
반환하는데 그곳의 SSOT는 브랜치 분기 시점 사본이라, blocked 없이 stale 정책으로
조용히 오판정한다. --git-common-dir은 worktree 안에서도 메인 repo의 .git을 가리킨다.
blocked를 반환할 때는 해소 방법을 한 줄 덧붙인다: tfx setup을 다시 실행해 4순위 사본을 설치한다.
clone의 최신 정책을 쓰려면 export TFX_ROUTING_SSOT=<triflux clone>/.claude/rules/tfx-routing.md
를 ~/.zshenv에 둔다. ~/.zshrc는 interactive 전용이라 훅·headless 워커·툴 셸에서는 읽히지 않는다.
~/.claude/rules/에 사본이나 symlink를 두지 않는다. 그 디렉터리는 Claude가 모든 세션에
자동 로드하므로 tfx와 무관한 세션까지 SSOT 전문을 매번 컨텍스트에 싣게 된다.
npm 패키지에는 .claude/ 중 rules/tfx-routing.md와 rules/tfx-psmux.md만 들어 있다.
반환 형식:
[tfx-harness]
branch: D<n>
owner: <exactly one immediate owner>
availability: available | unavailable | unknown
fallback_notice: <optional>
status: recommendation-only | dispatching | blocked- 한 판정에는 branch 하나와 immediate owner 하나만 둔다.
- availability가 unknown이면 fallback하지 않는다. 실제 unavailable 증거가 있을 때만
owner unavailable → tfx-X fallback을 함께 알릴 수 있다. - SSOT를 읽지 못하면 추측하지 말고
blocked: routing SSOT unavailable을 반환한다. - “어떤 스킬/경로?” 질문은 recommendation-only다. 명백한 진행 요청만
/skill문법으로 owner에 handoff한다. - downstream implementation agent나 model은 선택하지 않는다.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

