개요
Markdown 기반 Agent 스킬로, 일반적인 AI 글쓰기 패턴을 식별하여 자연스러운 인간 스타일로 재작성합니다. 위키백과의 35가지 글쓰기 흔적 패턴을 참조하며 사실적 세부 사항을 유지하고, 사용자의 개인 문체에 맞출 수 있어 스킬 메커니즘을 지원하는 다양한 Agent에 적용됩니다.
README 미리보기
# Humanizer\n\n[](https://skills.sh/blader/humanizer)\n\nHumanizer rewrites AI-sounding text so it reads like a person wrote it, without changing what it says. Because it is just Markdown, it works with any agent that supports skills.\n\n## How it works\n\nHumanizer uses 35 patterns from Wikipedia's ["Signs of AI writing"](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing), maintained by WikiProject AI Cleanup. It makes a first pass without treating the original structure as fixed. Then it checks the draft against those patterns and the original claims before rewriting whatever still needs work.\n\n> "LLMs use statistical algorithms to guess what should come next. The result tends toward the most statistically likely result that applies to the widest variety of cases."\n\nIt does not make things up. A name, number, date, quote, citation, or other factual detail must come from the source or the writer. For personal writing, Humanizer keeps the writer's style. Technical and reference prose stays neutral and plain. If you provide a writing sample, Humanizer follows that sample instead of its default style rules.\n\nWhen you paste text, Humanizer shows its work before giving you the final version. You see the first rewrite and a short critique of anything that still sounds artificial. Point it at a file and it changes only the prose, leaving code, data, frontmatter, and link targets alone.\n\n## Usage\n\nCall the skill directly:\n\n```\n/humanizer\n\n[paste your text here]\n```\n\nOr ask in plain language:\n\n```\nPlease humanize this text: [your text]\n```\n\nTo rewrite a file, give Humanizer its path:\n\n```\nHumanize the prose in docs/launch-post.md\n```\n\n### Match your voice\n\nIf you want the rewrite to sound more like you, include a sample:\n\n```\n/humanizer\n\nHere's a sample of my writing for voice matching:\n[paste 2-3 paragraphs of your own writing]\n\nNow humanize this text:\n[paste AI text to humanize]\n```\n\nHumanizer follows the sample's rhyt
FAQ (3)
문제 해결Humanizer 플러그인은 Pangram과 같은 AI 탐지기를 우회하거나 무력화할 수 있나요?
아니요. Humanizer는 AI 탐지기를 회피하기 위한 것이 아니라, AI가 생성한 텍스트를 사람이 읽기에 더 좋도록 다시 작성하기 위해 설계되었습니다. 보고된 블라인드 연구에서 탐지 점수는 거의 변하지 않았습니다: 원본 출력, 재작성 패스, 재작성+체커에서 각각 100% → 98.6% → 97.8%였습니다. Pangram 4.0은 문장 경계 변경만 적용된 버전을 포함해 테스트된 네 가지 변형 모두에서 100% AI를 반환했습니다. 메인테이너는 순수한 LLM 프롬프팅으로는 현재 Pangram을 이길 수 없으며, 탐지기 우회는 프로젝트의 목표가 아니라고 확인했습니다. Humanizer는 가독성을 높이고 어휘적 AI 흔적을 줄이는 데 사용하세요. AI 탐지 도구를 통과하는 데 의존해서는 안 됩니다.
방법모든 OpenCode 세션에서 Humanizer가 자동으로 로드되도록 하려면 어떻게 해야 하나요?
OpenCode 1.18.29 이상으로 업그레이드하세요. OpenCode가 리포지토리에서 실행될 때 Humanizer 지침이 자동으로 주입되며, V1 및 V2 플러그인 훅이 모두 지원됩니다. 이전 버전에서 수동으로 설정하려면 SKILL.md를 읽어 프런트매터를 제거하고, experimental.chat.system.transform 훅을 사용해 규칙을 시스템 프롬프트에 추가하는 .opencode/plugins/humanizer.mjs 파일을 생성하세요:
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const skillPath = path.resolve(__dirname, '../../SKILL.md');
export default async () => ({
'experimental.chat.system.transform': async (_input, output) => {
const body = fs.readFileSync(skillPath, 'utf8')
.replace(/^---[^\S\r\n]*\r?\n[\s\S]*?\r?\n---[^\S\r\n]*(?:\r?\n|$)/, '')
.replace(/(?:\r?\n)+$/, '');
output.system.push(
'HUMANIZER MODE ACTIVE. Apply these rules to assistant prose while preserving code, commands, paths, structured data, URLs, quoted text, and exact-output requests.\n\n' + body
);
},
});
OpenCode를 재시작한 후 Humanizer 플러그인이 활성화되어 있는지 물어보아 확인하세요.
문제 해결읽는 사람이 이미 아는 맥락을 과도하게 설명하는, AI가 쓴 것처럼 들리는 PR 코멘트를 어떻게 고쳐야 할까요?
issue #269 수정에서 패턴 #26으로 추가된 Humanizer의 conversational-context 검사를 사용하세요. 해당 PR이 포함된 릴리스로 업그레이드한 후, 답변을 재작성할 때 다음 규칙을 적용하세요: (1) 텍스트가 진행 중인 스레드에 대한 응답인지 파악하고, (2) PR, Slack 또는 이메일 대화에서 이미 확립된 공유 맥락이 있다고 가정하고, (3) 결정을 뒷받침하는 데 필요한 경우가 아니라면 반복되는 진단, 조사 증명, 쿼리, 메트릭을 제거하고, (4) 실제 결정이나 요청을 맨 앞에 두고, (5) 필요한 최소한의 근거만 남기세요. 예를 들어, 전체 근본 원인 및 backfill 설명을 다음과 같이 바꾸세요: "여기서 MergeService를 변경하면 이 PR의 범위가 커집니다. 이 변경은 Client A에 한정하고 MergeService 수정과 backfill은 별도 티켓으로 여는 것이 좋겠습니다. 괜찮으시면 LMK 해 주세요."