Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/jo-duchan/tapflow/promote-decisiongit clone --depth 1 https://github.com/jo-duchan/tapflowWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/jo-duchan/tapflow/promote-decision)<a href="https://agentmods.dev/commands/jo-duchan/tapflow/promote-decision"><img src="https://agentmods.dev/badge/commands/jo-duchan/tapflow/promote-decision.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00073 | $0.01440 |
| Opus 5 | $0.00036 | $0.00720 |
| Sonnet 5 | $0.00015 | $0.00288 |
| Haiku 4.5 | $0.00007 | $0.00144 |
Grade A, and why
promote-decision scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
.work/archive/(비공개 KO 작업로그)를 소스로, 기여자·기여자의 LLM이 코드를 바꾸기 전에 읽어야 할 결정·근거를 contributing/(공개, 커밋됨)으로 승격한다. .work/는 자유롭게 쓰는 사설 스크래치패드로 그대로 두고, 공유 가치가 있는 것만 골라 영어로 큐레이션해 옮긴다.
인자(선택): 승격 대상을 좁히는 주제·키워드 또는 특정 archive 파일 경로. 생략 시 .work/archive/ 전체를 후보로 스캔한다.
절차
1. 인벤토리 수집
- 스키마 SSOT를 먼저 읽는다:
contributing/README.md— 2단 frontmatter 스키마·type어휘·작성 규칙. 이 커맨드는 스키마를 재정의하지 않고 그 파일을 따른다. - 승격 대상(중복 제거 기준):
contributing/*.md전부 +INDEX.mdDocumentation 섹션. - 소스:
.work/archive/*.md(인자로 좁혀졌으면 해당 범위만). 읽기 전용 — 원본을 수정·삭제하지 않는다.
2. 후보 선별
archive 파일에서 공유 가치가 있는 것만 고른다. 판정 기준:
- 승격한다: 코드에 드러나지 않는 왜 — 의도적 비대칭("이건 버그가 아니라 이런 이유로 이렇게 뒀다"), 시도했다 버린 접근과 그 이유(사족 dead end), 리버스 엔지니어링 사실, 근본 원인까지 추적한 진단, 계측·튜닝 레퍼런스.
- 승격하지 않는다: 일상적 구현 내역(코드가 SoT), 이미 뒤집힌·낡은 결정, 진행 중이라 아직 정착 안 된 판단, 이번 작업에만 해당하는 일회성 메모.
3. 중복 제거
후보를 기존 contributing/ 문서와 주제 단위로 대조한다(파일명이 아니라 내용). 이미 다뤄진 결정은 제외하고, 기존 문서에 보강이 맞는 경우(새 섹션 추가)와 신규 파일이 맞는 경우를 구분한다.
4. 보안·프라이버시 게이트 (비가역 경계)
승격은 비공개 → 공개 이동이고, 한번 push되면 git 히스토리에 영구히 남는다. 초안을 만들기 전에 각 후보 내용을 스캔한다:
- 키·토큰·비밀번호·인증 정보, 내부 호스트/IP, 절대 경로(
/Users/...), 개인 이메일·실명, 미공개 계획·내부 URL. - 하나라도 걸리면 그 후보는 초안 생성을 보류하고, 무엇을 마스킹·삭제해야 공개 가능한지 사용자에게 보고한 뒤 확인을 받는다. 확신이 안 서면 승격하지 않는다.
5. 초안 작성
승인된(또는 민감정보 없는) 후보마다 contributing/<slug>.md를 만든다:
- 영어로, 기계 번역이 아니라 큐레이션. KO 작업로그의 맥락·근거·버린 접근은 보존하되, 시간순 잡음·사족·개인 메모는 걷어낸다.
contributing/README.md의 2단 스키마로 frontmatter를 얹는다.type/topics는 필수,status는 수명주기 있는 문서에만,related는 형제 문서가 있을 때.updated날짜는 아는 값만 — 지어내지 않는다.- 기존 문서 보강이면 새 파일 대신 해당 문서에 섹션을 추가한다.
6. 산문 점검
작성한 산문에 /ai-tells en detect <파일>을 돌려 AI 흔적을 잡고, 걸린 구간만 교정한다. (docs 계열이라 필요 시 rewrite 허용 — 마케팅 규칙과 무관.)
7. 등재
새 문서(또는 보강)를 두 곳에 등록한다:
contributing/README.md의 "Current records" 표.- 루트
INDEX.md의 "Engineering decision & rationale records —contributing/" 표.
제약
- 절대 커밋·PR을 만들지 않는다. 초안 생성 후 반드시 멈춰 사용자 승인을 받는다.
- 파일별 승인 게이트: 승격 후보를 한 번에 일괄 확정하지 않는다. 각 초안 + 출처가 된 archive 파일 + 무엇을 걷어냈는지를 제시하고, 사용자가 건건이 keep/버림을 정한다.
.work/archive/원본은 읽기 전용 — 수정·삭제·이동하지 않는다. 승격은 복제이지 이동이 아니다.- 스키마는
contributing/README.md가 단일 소스. 이 커맨드에서 필드를 새로 정의하지 않는다. - 확신이 안 서면 승격하지 않는다. 잘못 공개하는 비용 > 기록 안 하는 비용.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago Changed db6e89a0a54e
- 6d ago First seen · 80 lines · 73 tokens per session scan A 002ead6ee402
promote-decision is a command published in the GitHub repository jo-duchan/tapflow (586 stars, last pushed yesterday), licensed MIT. It adds 73 tokens to every session and 1,440 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
feature
Post a feature to the Features Board on production and write tweets.
commit-all
Group all changes semantically and commit each group separately.
audit
Scan a codebase for existing observability instrumentation and identify gaps.
instrument
Generate a comprehensive instrumentation plan for a mobile codebase.
feature-learn
View and manage patterns learned from feature builds. Shows extracted instincts, confidence scores, and feature completeness history.
feature-plan
Plan a mobile feature with architecture decisions, file breakdown, dependency analysis, and test strategy. Produces a structured plan document reviewed by an architecture agent.