write-gate

write-gate is a skill for Claude Code from jx-hxxx/hi-vibe. It costs 110 tokens per session (7,278 once invoked), scanned A, original, MIT.

A set of checks before and after code changes. Before writing, it looks for existing implementations; afterward, it reviews the change against a checklist.

In plain words
What is it for?
Use it when adding functions, types, helpers, or files, and when asking for a review of completed code changes.
Why use it?
It helps prevent duplicate code and catches problems that can be missed when a change is considered finished too quickly.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: mentions CLAUDE.md; mentions Claude Code.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the hi-vibe plugin — 6 skills, 10 commands, 2 agents, 5 hooks shipped together

Good fit Use it when adding functions, types, helpers, or files, and when asking for a review of completed code changes.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add jx-hxxx/hi-vibe
Claude Code
/plugin install hi-vibe

Made for: Claude Code.

Or install hi-vibe, the plugin that ships this one along with the rest of its 6 skills, 10 commands, 2 agents, 5 hooks.

Wrote 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.

agentmods badge for write-gate

README.md
[![agentmods](https://agentmods.dev/badge/skills/jx-hxxx/hi-vibe/write-gate/github.svg)](https://agentmods.dev/skills/jx-hxxx/hi-vibe/write-gate)
Your own site
<a href="https://agentmods.dev/skills/jx-hxxx/hi-vibe/write-gate"><img src="https://agentmods.dev/badge/skills/jx-hxxx/hi-vibe/write-gate/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for write-gate

Your own site · 80×15
<a href="https://agentmods.dev/skills/jx-hxxx/hi-vibe/write-gate"><img src="https://agentmods.dev/badge/skills/jx-hxxx/hi-vibe/write-gate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 110 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 7,278 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00110 $0.07278
Opus 5 $0.00055 $0.03639
Sonnet 5 $0.00022 $0.01456
Haiku 4.5 $0.00011 $0.00728

Measured 10d ago against content hash e77aaaa895dc, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

write-gate 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 10d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/review_scope.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

skills/write-gate/SKILL.md · 362 lines

How it starts

The opening of the file, as written. The whole thing — 362 lines — stays where its author put it; the contents beside it link to each section on GitHub.

write-gate

답변 언어: 이 지침은 한국어로 쓰였지만, 출력은 항상 사용자가 대화에서 쓰는 언어를 따른다 (한국어→한국어, 영어→영어). 기존 문서·코드에 언어가 있으면 그쪽을 우선한다.

먼저: 안전벨트가 매여 있는지 (두 모드 공통, 세션당 한 번)

훅은 조용히 실패한다(fail-open) — 망가져도 에러조차 안 뜬다. 그래서 "훅이 죽었나"를 훅으로는 알 수 없다(자기가 안 도니까). 확인할 수 있는 건 훅과 무관하게 도는 이 스킬 층뿐이다. 이 스킬은 사용자 말("만들어줘", "다 했어")에 걸리므로 훅이 전멸해도 살아 있다.

이 스킬이 이번 세션에서 처음 걸릴 때 한 번만:

python3 "${CLAUDE_PLUGIN_ROOT}/scripts/doctor.py" --root <repo> --quick

JSON state 하나로 갈린다. alive면 아무 말도 하지 마라 — 정상을 보고하는 건 잔소리다.

  • alive → 침묵. 그대로 아래 작업을 진행한다.
  • stale / never-ran → 훅이 이 세션에서 안 돌았다. 한 줄로 알린다: "hi-vibe 훅이 이 세션에서 안 돌고 있습니다(마지막 기록 N시간 전). 방금 플러그인을 업데이트했다면 Claude Code를 다시 시작하면 되고, 아니면 /hi-vibe:doctor로 확인하세요." 막지는 마라 — 훅 없이도 이 스킬은 동작하므로 하던 일은 그대로 진행한다.
  • not-initialized → 이 폴더는 hi-vibe가 꺼져 있다. 한 번만 알린다: "이 폴더는 hi-vibe가 꺼져 있습니다(자동 감지·기록 없음). 쓰시려면 /hi-vibe:init, 안 쓰실 거면 그렇다고 말씀만 주세요." 사용자가 "안 쓴다"고 하면 .hi-vibe/optout 파일을 만들어라(mkdir -p .hi-vibe && touch .hi-vibe/optout) — 그러면 훅은 계속 꺼진 채로, 다시 묻지 않는다. 여기서 마음대로 init하지 마라. opt-in은 사용자가 정한다.
  • optout → 침묵. 이 폴더에서 다시는 묻지 않는다.

tracked_env가 비어 있지 않으면 state와 별개로 반드시 알린다(세션당 한 번). 목록에 있는 .env 파일이 Git에 올라가 있다는 뜻이고, 비밀키 검사는 .env를 검사 대상에서 빼므로 이건 훅도 check도 못 잡는다.

.env가 Git에 올라가 있습니다(<파일들>). 비밀키 검사는 .env를 안 보기 때문에 이건 아무 검사에도 안 걸립니다. git rm --cached <파일>.gitignore에 넣으세요. 이미 push했다면 히스토리에 남아 있으니 그 키는 폐기(rotate)해야 합니다.

파일을 열어 보지 마라 — 내용을 읽는 순간 대화창이 유출 통로가 된다. 지워주지도 마라(사용자가 결정한다). 알리고 하던 일을 계속한다.

조회 자체가 실패하면(스크립트 없음·python3 없음) 조용히 넘어간다 — 확인을 못 한 것이 작업을 막을 이유는 아니다.

Mode: find (코드 작성 전)

새 function/helper/type/파일을 만들기 전에, 순서대로:

  1. 존재 확인: repo-xray로 그럴듯한 이름 2~3개를 검색한다. python3 "${CLAUDE_PLUGIN_ROOT}/skills/repo-xray/scripts/audit.py" find <name> --root <repo> 결과의 스캔 범위를 인용해 판정한다 (repo-xray 계약).
  2. 외부 API 근거 확인: 새 코드가 외부 라이브러리/프레임워크의 API를 사용하거나 버전에 민감한 부분(파라미터명, 옵션, 반환 형태, 설정 키)을 다루면, 기억으로 쓰지 않는다. context7 MCP가 연결되어 있으면 resolve-library-idquery-docs로 최신 문서를 확인하고, 없으면 공식 문서를 WebFetch로 확인한다. 둘 다 불가하면 추정임을 밝히고 쓴다 (grounded-answers 계약). 프로젝트 내부 코드만 다루는 경우 이 단계는 건너뛴다.
  3. 위치 확인: 대상 폴더의 MODULE.md를 읽는다 — 이 코드가 그 폴더의 책임에 맞는가? 안 맞으면 맞는 폴더를 찾거나 사용자에게 묻는다.
  4. SSOT: 공용 유틸/타입/shape은 지정된 공용 위치에 한 번만. 로컬 복사본을 만들지 않는다.
  5. 배치: 새 파일은 위계(도메인/레이어)에 맞게. 루트에 평탄하게 쌓지 않는다. 처음부터 파일을 나눈다 — 한 파일에 몰지 않는다.
  6. 경계 선언: 이 코드가 import해도 되는 것 / 이 코드를 import해도 되는 곳을 한 줄로 선언하고 시작한다.

Read the full file on GitHub · 362 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

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.

  1. 10d ago First seen · 362 lines · 110 tokens per session scan A e77aaaa895dc

Subscribe to this mod's changes

write-gate is a skill published in the GitHub repository jx-hxxx/hi-vibe (3 stars, last pushed 5d ago), licensed MIT. It adds 110 tokens to every session and 7,278 once invoked, about $0.0006 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-31.

Related

Other skills, from other repositories

procoder

Work like a senior developer in a repository governed by procoder: run the commit gate before calling anything done, format and lint through the binary, and drive the spec, plan, todo, backlog, and sprint chain in .procoder/. Use this skill when the repository contains a .procoder/ directory or an AGENTS.md naming…

azrtydxb/procoder · 101 tokens

code-review

The depth half of a review - the dimensions a diff is read against (correctness, boundaries, concurrency, failure paths, secrets, data access, structure, test quality) and the rule that a finding is refuted before it is reported. The verdict stays with the reviewer agent. Use when reviewing a diff or a pull request…

jjanczur/tyran · 80 tokens

deslop

The optimization pass, defined - delete before you add, one smell class per pass, behaviour pinned by a test that ran BEFORE the edit. Lints a SKILL.md and prose by the same instinct. Use for the per-story optimization pass or when code has grown noisy without growing capable.

jjanczur/tyran · 58 tokens

pr-feedback

Work a reviewer's comments on a pull request to the end - all three comment surfaces enumerated before any is triaged, every comment fixed, declined with a reason, or ticketed, push before you reply. Use when a PR comes back with review feedback or a red check.

jjanczur/tyran · 57 tokens

code-hygiene

Codebase health analysis: dead code, test quality, duplicates, complexity, security, architecture mapping. Tool-first, structured storage, forge integration.

malakhov-dmitrii/forge · 34 tokens

audit

This skill should be used when the user asks to "audit spec coverage", "find uncovered modules", "scan for missing specs", "check wyx coverage", "get spec TODO list", "wyx audit", "wyx", or wants a prioritized list of wyx skill commands for uncovered modules. Scans for coverage gaps, pipeline/sync candidates, and…

jlifyio/wyx · 81 tokens