Community라이팅 & 에디팅github.com

ne-slop-text

사람이 쓴 것처럼 읽히는 텍스트를 작성하거나 수정합니다. 기본 모델이 생성하는 평균적인 결과물에서 벗어나, 철학(소재와 독자 우선), 루프(StoryScope 기반 담화 특징과 사용자 블라인드 테스트 점수로 학습된 가중치), 그리고 표면 검토를 통해 어떤 언어로든 사람의 목소리를 살립니다.

ne-slop-text란 무엇인가요?

이 스킬은 AI가 생성한 텍스트에서 흔히 나타나는 '슬롭(slop)'—가장 개연성 높은 선택을 채워 넣은 평균적인 결과물—을 제거하고, 특정 개인의 고유한 어조와 의사 결정을 담아내기 위해 설계되었습니다. 문서화된 증거에 따르면, 단순한 단어 교체로는 탐지율이 95.5%에서 93.9%로만 개선되는 데 비해, 담화 특징 기반의 StoryScope 방법론은 93% F1으로 AI와 인간 텍스트를 구분합니다. 따라서 이 스킬은 고정된 레시피를 적용하는 대신, 각 작업에 대해 기본 모델이 위치하는 지점을 찾고, 해당 지점에서 벗어나 실제 인물의 구체적인 경험, 의견, 표현을 담은 텍스트를 생성하는 5단계 파이프라인을 사용합니다. 짧은 텍스트(약 120단어 미만)에는 단순화된 버전을, 더 긴 중요한 텍스트에는 전체 파이프라인을 적용하며, Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/boris-timofeenko/ne-slop-text/tree/HEAD

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

ne-slop-text은(는) 무엇을 하나요?

슬롭(slop)은 평균입니다: 모델이 빈 공간을 가장 개연성 높은 수로 채울 때, 또는 "더 좋게 만들어라"는 요청을 받았을 때 작성하는 결과물입니다. 이는 단어가 아니라 결정(무엇을 직접 말하는지, 사건을 누가 주도하는지, 어떻게 끝나는지, 무엇을 나열하는지, 무엇을 명명하는지)에 존재합니다. 단어를 바꾼다고 해결되지 않습니다: StoryScope(Russell 외, COLM 2026)는 담화 특징만으로 AI와 인간 스토리를 93% F1으로 구분하며, 전문적인 표면 재작성은 탐지율을 95.5%에서 93.9%로만 이동시켰습니다. 모델은 한 영역에 모여 있고, 사람은 흩어져 있습니다. 따라서 이 스킬은 고정된 레시피를 적용하지 않습니다. 각 작업에 대해 기본 모델이 어디에 위치하는지 찾고, 그 지점에서 사람의 소재(material)를 사용하여 초안을 멀리 이동시킵니다.

파이프라인이 어떻게 발견되고 테스트되었는지: docs/evidence.md. 아래 경로는 이 스킬 디렉터리 기준 상대 경로입니다.

입력

  • 작업(무엇을, 누구를 위해, 왜 쓸지) 또는 원본(수정할 텍스트)
  • 컨텍스트(선택 사항): 문서, 사실, 그 사람 자신의 말(음성 대본, 채팅, 내부 노트)

모드 선택

  • 짧음(약 120단어 미만: 채팅 답장, 짧은 메시지, 제목): 1단계, 그 다음 3단계. 루프는 이 길이에서 신호를 제공하지 않습니다. 블라인드 테스트에서 100단어 요약을 다섯 가지 다른 방식으로 작성해도 구분이 불가능했습니다.
  • 전체(다른 사람에게 전달되는 더 긴 모든 것): 1, 2, 3, 4단계. 텍스트가 중요하거나 사용자가 요청한 경우 5단계.

1단계. 철학, 쓰기 전에

  1. 소재 우선. 오직 이 사람만이 가진 것을 찾으십시오: 특정 에피소드; 그들이 가진 의견; 그들 외에 사건을 형성한 힘(누군가가 밀었다, 무언가가 상속되었다, 무언가가 실패했다); 헤지(주저)나 한계; 그들 자신의 표현. 같은 장르의 오래된 텍스트(이전 이력서와 편지)는 사실을 제공하지만, 목소리는 제공하지 않습니다.
  2. 누락된 소재. 텍스트가 중요하다면, 1~3개의 짧은 질문을 하십시오; 음성 답변이 가장 좋으며, 대본을 소재로 보관하십시오. 답을 암시하지 않는 열린 질문을 하십시오: "실제로 어떻게 일어났습니까", "사례가 있었습니까", "X에 대해 어떻게 생각하십니까", "아직 할 수 없는 것은 무엇입니까". 질문할 수 없다면, 검증 가능한 구체적인 내용(이름, 숫자, 출처)을 사용하고 공백을 눈에 띄게 남겨 두십시오. 절대 평균으로 공백을 채우지 마십시오.
  3. 독자와 그들의 코드. 그들이 문자 그대로 무엇을 요청했습니까? 그들이 사용하는 단어와 농담은 무엇입니까? 그들 자신의 말로 답하는 것은 요점을 전달할 때 살아있습니다("귀하의 광고가 정의를 요구하므로, 제가 최고라고 주장하지 않겠습니다: 다른 지원자들을 만나보지 못했습니다"). 그들의 말을 레이블이나 제목으로 사용하는 것은 슬롭입니다.
  4. 소재에 가깝게 표현하십시오. 그 사람의 생각 순서, 그들의 헤지("아마도", "전반적으로"), 문자 그대로의 번역(관용적 번역보다), 짧은 동사를 사용한 1인칭: "저는 3명의 QA 엔지니어를 이끌고 릴리스 서명을 승인합니다"는 살아있는 것으로 평가되었습니다. "3명의 QA 엔지니어 팀을 이끌고 릴리스 서명 승인을 소유합니다"는 슬롭으로 평가되었습니다.
  5. 장르는 용기(container)에 살아있습니다(형식, 길이, 인사말, 필수 필드), 모든 문장에 있는 것이 아닙니다. 목록은 목록이 속한 곳(기술 섹션, 표, 첨부된 이력서)에 가고, 문장은 하나의 에피소드 또는 하나의 메커니즘을 전달합니다.
  6. 쉽게 떠오르는 것을 의심하십시오. 결정 없이 문장이 도착했다면, 그것은 아마도 평균일 것입니다.

2단계. 루프: 기본값에서 멀어지기(전체 모드)

  1. 기본값. 다른 모델(예: opus, sonnet, haiku)에서 3개의 새로운 에이전트를 생성하십시오. 각각에게 일반 작업과 동일한 컨텍스트를 loop/default_prompt.md와 함께 제공하십시오. 이들은 이 스킬, 초안, 또는 서로를 보지 못해야 합니다.
  2. 주석. 작성자와 다른 모델의 새로운 에이전트 하나가 loop/questionnaire.json을 사용하여 초안과 기본값에 주석을 답니다. loop/annotator.md를 따릅니다. 출력: features.json.
  3. 보고서. python3 loop/consensus.py loop/questionnaire.json features.json D1,D2,D3 DRAFT TEXTS_DIR > report.txt 는 P1(초안이 모든 기본값이 하는 일을 하며, 기계적인 경향을 보임), P2(가중치에 의해 기계적인 경향을 보임), Keep(인간적인 경향, 잃지 말아야 할 것), 기본값과 공유된 4-그램, 그리고 시작 문장이 기본값들의 시작 문장과 얼마나 가까운지를 제공합니다.
  4. 수정. 새로운 에이전트가 loop/reviser.md를 보고서와 컨텍스트와 함께 초안에 적용합니다. 소재가 가중치를 이깁니다: 그 사람의 자신의 말을 표현하는 문장은 특징이 플래그를 지정하더라도 유지됩니다.
  5. 중단. 최대 2회 이후, 또는 P1이 비어 있을 때 중단하십시오. 텍스트가 길어져서는 안 됩니다.

비용: 약 68번의 에이전트 호출과 35분. 합의(consensus)만으로는 슬롭이 아닙니다: 컨텍스트가 풍부할 때, 모든 기본값도 특정 에피소드를 가집니다. 플래그는 두 가지 모두 필요합니다: 기본값이 동의하고, 특징이 기계적인 경향을 보여야 합니다. 일부 동의는 단순히 장르일 뿐입니다(README는 설치 방법을 말합니다); 수정자에게 용기가 무엇인지 알려주십시오.

3단계. 검토(Lint), 마지막

python3 lint/lint.py FILE --lang en (또는 ru), 그런 다음 lint/en.md 또는 lint/ru.md를 읽으십시오. 플래그가 지정된 것만 수정하십시오; 이 단계에서 구조를 변경하지 마십시오. 단어 목록은 가장 약한 신호이며 가장 먼저 노화됩니다.

4단계. 출력

사용자에게 제공: 텍스트; 무엇이 왜 변경되었는지 몇 줄로; 열린 질문과 계속 눈에 띄게 남은 공백. 컨텍스트가 사용된 경우 "줄 ← 출처" 맵을 제공하십시오. 사용자의 원본 파일을 절대 편집하지 말고, 그 옆에 초안을 작성하십시오.

5단계. 학습

  • 중요한 텍스트에 대한 블라인드 테스트: python3 tools/blind.py out.html key.json "제목" "부제목" name=path=label ... 동일한 소재의 여러 처리본, 동점 없는 순위, 문장 표시(슬롭 / 살아있음). 적어도 두 문단을 비교하십시오; 짧은 조각은 구분되지 않습니다.
  • 표시가 가중치가 됩니다. 사용자의 표시를 learn/patterns.md의 패턴 태그와 함께 learn/marks.jsonl에 추가한 다음, python3 learn/update_weights.py를 실행하십시오. 어떤 패턴이 정착되었는지, 어떤 설문지 가중치가 이들과 일치하지 않는지 보여줍니다; loop/questionnaire.json을 일치하도록 편집하십시오. 두 번 슬롭으로 표시되고 한 번도 살아있는 것으로 표시되지 않은 새 패턴은 새로운 특징이 됩니다.
  • 거절이 칭찬보다 더 가르칩니다. 사용자가 텍스트를 편집할 때, diff를 보십시오: 그들이 자른 것이 표시입니다.

하지 말아야 할 것(각각 테스트됨)

  • 장르를 향한 다듬기("더 전문적으로 만들어"): 이력서 말투와 단독 영웅이 돌아오고, 에피소드가 망가집니다.
  • 좋은 소재에서 한 번에 생성: 모델이 목소리를 평균 속에 녹여 버리고 의견을 떨어뜨립니다.
  • 캐주얼함 연출: 농담을 구성체로 작성("농담 답변은...; 진짜 답변은..."), "개성과 영혼을 더하는" 재작성. 사람들이 알아채는 humanizer 시그니처입니다.
  • 오래된 노트에서 의견을 가져오는 대신, 그 사람에게서 실시간으로 가져오기. 노트는 한 가지를 말했고, 그 사람은 다른 것을 말했습니다.
  • 희귀 단어 쫓기. 살아있는 텍스트는 어휘적으로 평범합니다; 희귀함은 결정에 있습니다.
  • 그 사람 자신의 것조차도, 교묘한 표현("엔지니어에게 엔지니어처럼 말하라", "...그리고 팀이 한 사람에게 티켓을 넘긴다").
  • 텍스트가 자기 자신에 대해 말하기("X 먼저, 당신이 명시적으로 요청했으니까").

다른 접근 방식이 어디에 적합한지

  • ne-slop(모든 창작 작업을 위한 부모 스킬): 1단계는 텍스트별 부분입니다. 실제 소재, 많은 작고 명시적인 결정, 여러 다른 변형, 사람이 선택하고, 거절이 기억되며, 결과를 봅니다.
  • StoryScope: 2단계 뒤의 이론이자 설문지 가중치의 씨앗.
  • unslop: 이식성 테스트(이 문장이 다른 사람이나 회사에 맞을까?)와 허구 사실에 대한 안전장치는 1단계와 3단계에 속합니다; 단어 목록은 검토(lint)에 공급됩니다.
  • humanizer: 패턴 목록은 검토에 공급됩니다. "개성과 영혼을 더하는" 재작성은 의도적으로 제외됩니다.

관련 스킬