이 스킬은 언어 모델이 생성한 프랑스어 문장을, 내용은 바꾸지 않으면서 인간이 쓴 것처럼 읽히도록 다시 작성합니다. blader/humanizer(MIT)의 방법론을 차용하여 프랑스어에 맞게 조정했으며, 2020년 이전(일부 장르는 2021년까지)에 출판된 인간 텍스트에서 추출한 프랑스어 고유의 패턴 카탈로그와 레지스터 프로필을 포함합니다.
목표는 인간 독자에게 즐거운 텍스트를 만드는 것입니다. AI 탐지기를 속이는 것은 목표가 아닙니다. 고의적인 오류는 절대 추가하지 않습니다.
이러한 패턴이 존재하는 이유
모델은 가장 확률이 높은 다음 단어를 선택하므로, 가장 많은 독자와 주제에 적합한 표현을 선택합니다. 반면 사람은 특정 독자와 주제를 위해 글을 씁니다. 카탈로그의 각 패턴은 이러한 기본 선택의 흔적입니다: 사실 대신 중요성을 알리는 문장, 규칙에 따라 적용된 리듬, 결정적인 전환으로 포장된 평범한 진술, 대화의 잔재, 독자가 이미 알고 있는 내용에 대한 설명.
절차
- 개인 말뭉치 확인. 사용자가 텍스트를 추가한 경우(아래
add명령어 참조),python3 scripts/ajouter.py profil을 실행한 후, 재작성할 텍스트의 맥락에 대해python3 scripts/ajouter.py exemples <context>를 실행합니다. 작성자의 텍스트는 레지스터 프로필보다 음성에 대해 우선합니다. - 화자 파악. 사용자가 자신을 소개하는 경우(예: "저는 DAF입니다", "저는 전기 기술자입니다", "저는 견습생입니다", "저는 스타트업 CTO입니다", "제 집주인에게 편지를 씁니다"), 레지스터를 선택하기 전에 아래 '누가, 누구에게 말하는가' 섹션을 적용합니다.
- 레지스터 식별. 텍스트를 읽고
references/registres.md에 있는 37개 프로필 중 하나를 선택합니다(파일 상단에 목차가 있습니다). 언론의 경우, 먼저 가장 가벼운 것부터 가장 격식 있는 것까지의 척도에서 텍스트의 위치를 파악합니다. AI는 모든 것을 동일한 중간 수준으로 작성하는 반면, 기자는 한쪽 끝에 명확하게 고정됩니다. 맞는 프로필이 없으면 일반 규칙을 적용합니다. 레지스터가 모호하고 이해 관계가 중요한 경우(공식 서한, 법률 문서), 물어봅니다. 재작성하기 전에 선택한 프로필의 섹션을 읽습니다. - 패턴 식별.
references/motifs-ia-fr.md를 가장 강한 것부터 가장 약한 것 순으로 훑어봅니다. 처음 다섯 개는 첫 번째 발생부터 수정해야 합니다. 약한 단독으로 표시된 것은 동일한 구절에 누적될 때만 문제가 됩니다. 긴 텍스트나 문서의 경우python3 scripts/scan.py fichier.md를 실행하여 정량화된 첫 번째 식별(어휘, 대시, 대문자 제목, 연속 접속사, 문장의 균일성)을 얻습니다. - 초안. 원래 구조를 당연시하지 않고 다시 작성합니다. 내용이 개선된다면 병합, 분할, 재정렬합니다. 관찰된 프로필 특성(문장 길이, 어휘, 구두점, 관용구)을 목표로 합니다.
- 검토. 초안을 다시 읽으면서 여전히 "AI가 작성한" 느낌이 나는 부분을 찾아 2-3줄로 기록합니다. 충실도 확인: 모든 이름, 숫자, 날짜, 인용문, 참조는 출처 또는 작성자로부터 왔습니다.
- 최종 버전. 검토에서 발견된 사항을 수정합니다.
사용자가 텍스트를 붙여넣으면 다음을 표시합니다: 발견된 패턴의 짧은 목록(가장 강한 것부터), 초안, 비판, 최종 버전. 파일을 제공하면 산문만 수정합니다. 코드, 데이터, 프론트매터, 링크 대상 및 인용문은 그대로 둡니다.
고정 규칙
- 아무것도 발명하지 마십시오. 문장에 누락된 세부 사항(숫자, 날짜, 실제 경험)이 필요한 경우, 발명하는 대신 물어보십시오. 법률에서는 출처에 없는 조항, 판례 또는 날짜를 절대 추가하지 마십시오.
- 올바른 악센트와 철자, 대문자 악센트 포함(À, É, Ç).
- 구두점으로 전각 대시(U+2014) 또는 반각 대시(U+2013)를 사용하지 마십시오. 쉼표, 마침표, 콜론 또는 괄호로 바꾸십시오. 예외: 작성자의 음성 샘플에서 이를 사용하는 경우.
- 프랑스어 구두점 및 타이포그래피: 다음 섹션을 참조하십시오.
- 일반적으로 사용되는 영어 외래어는 유지하십시오. 업계 또는 일상 생활에서 일반적으로 사용되는 영어 단어(backlog, sprint, crawl, SEO, pitch, week-end, 도구 이름, 명령어)는 프랑스어에서 정상적입니다. 그대로 둡니다. 패턴 21은 서투른 번역체만을 대상으로 합니다("faire du sens", "adresser un problème", "délivrer de la valeur").
- 레지스터의 언어 수준을 유지하십시오. 격식 있는 편지를 구어체로 만들거나 친구 간의 메시지를 격식 있게 만들지 마십시오. 반말 또는 존댓말: 출처의 것을 유지하십시오.
- 의견을 평평하게 하지 마십시오. 개인적인 텍스트는 의견, 편견 및 의도적인 특성을 유지합니다. 기술적이거나 참고용 텍스트는 중립적이고 절제된 상태를 유지합니다.
누가, 누구에게 말하는가
사용자가 자신이 누구인지(예: "저는...", "~로서...", "저는 ...으로 일합니다") 또는 누구에게 쓰는지 말할 때, 산문은 해당 직업 또는 상황의 진정한 구성원처럼 들려야 합니다.
- 세 가지를 파악하십시오: 직업 또는 역할(DAF, 전기 기술자, HR 관리자, 개발자, 학생, 세입자), 수준(주니어, 시니어, 임원), 그리고 수신자(고객, 채용 담당자, 동료, 행정 기관, 친구).
- 가장 가까운 레지스터 프로필을 선택하십시오(예: 고객에게 편지를 쓰는 전기 기술자, 격식 편지 또는 기술 시트; LinkedIn에 게시하는 DAF, 프로필 32; 블로그 게시물을 작성하는 CTO, 프로필 33; 주니어 지원자, 프로필 4, 29 및 30).
- 작성자 수준에 맞는 실제 직업 어휘를 사용하십시오: 전기 기술자는 동료에게는 section, calibre 및 différentiel 30 mA를 설명하지 않고 사용하지만, 개인에게는 설명합니다. DAF는 clôture, BFR 및 trésorerie에 대해 이야기합니다. 개발자는 배포, 부채, 종속성에 대해 이야기합니다. 시니어는 범위 수치(팀, 예산)를 인용합니다. 주니어는 자신의 작업과 배운 것에 대해 이야기합니다.
- 수신자에 맞게 조정하십시오: 동료에게 쓰는 것과 고객에게 쓰는 것, 채용 담당자에게 쓰는 것과 친구에게 쓰는 것은 다릅니다. 업계 관행에 따라 반말 또는 존댓말을 사용합니다(종종 개발자 간에는 반말, 고객 또는 행정 기관에는 존댓말).
- 전문 지식을 절대 발명하지 마십시오. 선언된 역할은 어조와 어휘를 결정하지만 사실을 결정하지는 않습니다. 사용자가 제공하지 않은 숫자, 규범 참조 또는 성과는 추가하지 마십시오. 텍스트가 자연스럽게 들리기 위해 필요한 경우, 요청하십시오.
- 역할이 어떤 프로필에도 맞지 않는 경우, 가장 가까운 프로필에서 시작하여 사용자가 작성한 한두 문장을 요청하거나
scripts/ajouter.py로 추가할 것을 제안하십시오.
예: "저는 전기 기술자입니다. 제 견적에 이의를 제기하는 고객에게 이 이메일을 다시 작성해 주세요." 협상 프로필(27)과 격식 편지(5): 짧은 문장, 견적 항목 명시(자재, 설치, 인증), 차이에 대한 기술적 이유를 개인이 이해할 수 있는 한 문장으로 설명, 구체적인 제안(더 저렴한 옵션, 기한), 존댓말, 설명되지 않은 전문 용어 없음.
구두점 및 타이포그래피
세심한 레지스터(법률, 격식 편지, 언론, 백과사전, 자기소개서)에서:
- 구두점으로 전각 대시 또는 반각 대시를 절대 사용하지 말고, 두 공백 사이에 이를 대체하는 하이픈도 사용하지 마십시오. 대시는 대화 회답 또는 목록 항목의 줄 시작 부분에서만 허용됩니다.
- 프랑스식 따옴표 « » 를 내부에 줄 바꿈 없는 공백과 함께 사용하십시오. 영어식 따옴표 "..."는 인용문 내의 인용문에만 사용하십시오.
- 줄 바꿈 없는 공백 ; : ! ? 및 % 기호 앞에 사용하십시오. 마침표와 쉼표 앞에는 공백이 없습니다.
- 생략 부호: 세 점, 그 이상은 안 되며, 그 뒤에 마침표가 없습니다.
- 숫자: 천 단위 사이에 공백(1 455 746), 소수점 쉼표(4,40 m), 숫자와 단위 사이에 공백(12 V, 24 %). 약식 서수 1er, 2e, 16e (2ème 또는 16ème 아님). 세기는 작은 대문자 또는 로마 숫자(XXe siècle).
- 대문자: 악센트 포함(À, É, Ç). 제목과 부제는 첫 글자와 고유 명사를 제외하고 소문자.
- 콜론: 설명이나 목록을 소개하는 데 사용하며, 효과를 내기 위해 사용하지 않습니다(패턴 10).
- 세미콜론: 두 개의 관련 절을 연결하거나 긴 열거 항목을 구분하는 데 환영받습니다. 인간이 법률 및 비평에서 사용하는 방식입니다.
편안한 레지스터(포럼, 친구 간의 메시지, 버즈)에서는 작성자의 구두점을, 심지어 불규칙하더라도 유지하십시오. 음성의 일부인 것은 "수정"하지 말고, 오류를 추가하지 마십시오.
결과 확인
- 최종 버전에 대해
python3 scripts/scan.py texte.md를 실행하십시오. 점수가 크게 낮아져야 합니다. 카탈로그의 패턴을 측정하며, 작성자를 측정하지 않습니다. - 소리 내어 다시 읽으십시오: 그 독자에게 절대 말하지 않을 문장은 수정해야 합니다.
- AI 탐지기가 존재합니다(GPTZero, ZeroGPT, Compilatio, 프랑스어용 Lucide.ai, Pangram...). 양방향으로 오류를 범하며 인간 텍스트도 신호할 수 있습니다. 이 스킬은 이들을 위해 조정되지 않았습니다. 탐지기를 통과한다고 해서 텍스트의 품질을 말해주지는 않으며, 점수를 낮추기 위해 의미를 희생하지 않습니다.
작성자의 음성에 맞게 보정
사용자가 자신의 글에서 두세 단락을 제공하면, 이에 맞추십시오: 문장 길이와 리듬, 선호하는 단어, 구두점, 의도적인 특성(대시를 사용하는 경우 포함). 샘플은, 사실 및 참조의 정확성을 제외하고, 레지스터 프로필과 다를 때 우선합니다.
호출 예시:
/french-humanizer
다음은 제 글의 샘플입니다:
[2-3 단락]
이 텍스트를 인간화해 주세요(격식 편지):
[텍스트]
명령어 /french-humanizer add <맥락>
사용자는 Claude Code 또는 데스크톱 앱에서 다음을 입력하여 스킬을 보강합니다. 예:
/french-humanizer add commercial
[붙여넣은 텍스트]
add와 ajouter는 동의어입니다. 뒤에 오는 단어는 맥락(commercial, mail pro, juridique, LinkedIn, lettre de motivation...)입니다. 여러 단어가 될 수 있습니다. 이 경우 붙여넣은 텍스트를 다시 작성하지 말고 그대로 저장하십시오.
-
텍스트 검색. 명령어와 함께 붙여넣지 않은 경우 요청하고 기다리십시오.
-
누가 작성했는지 알아내십시오. 수신된 텍스트는 사용자 음성의 모델로 사용되어서는 안 되기 때문입니다. 명시되지 않은 경우(예: "내 이메일", "고객의 이메일", "수신..."), 한 가지만 물어보십시오: 직접 작성했습니까, 아니면 받았습니까? 그가 직접 쓴 이메일은
mail-envoyé, 다른 자신이 쓴 텍스트는texte-modèle, 받은 이메일은mail-reçu, 제3자의 다른 텍스트는texte-autre를 제공합니다. -
민감한 데이터를 제거하거나 표시하십시오(계좌 번호, 전화번호, 개인 주소) 사용자가 요청하거나 저장하기 전에. 텍스트의 다른 것은 변경하지 마십시오.
-
저장하려면 텍스트를 표준 입력으로 전달하고 저장소에 중간 파일을 사용하지 않습니다:
python3 scripts/ajouter.py <type> - --registre "<contexte>" <<'FIN_DU_TEXTE' [텍스트] FIN_DU_TEXTE스킬 디렉토리(일반적으로
~/.claude/skills/french-humanizer)에서 명령어를 실행하십시오. -
두 줄로 보고하십시오: 무엇이 저장되었는지, 어떤 맥락에서, 그리고 스크립트의 경고(작성자 텍스트가 AI 산문처럼 보이는 경우). 스크립트가 이 경고를 표시하면 제거를 제안하십시오.
기타 유용한 명령어: /french-humanizer contextes는 python3 scripts/ajouter.py contextes를 실행하고 이미 저장된 내용을 보여줍니다. /french-humanizer exemples commercial은 python3 scripts/ajouter.py exemples commercial을 실행합니다.
재작성 중에 텍스트의 맥락이 말뭉치의 레지스터와 일치하는 경우(ajouter.py contextes), 초안을 작성하기 전에 ajouter.py exemples <contexte>로 두세 가지 예를 읽으십시오. 작성자의 텍스트는 음성을 결정합니다. 받은 텍스트는 해당 맥락에서 어떻게 쓰는지만 보여줍니다.
스크립트를 실행할 수 없는 경우(터미널에 접근할 수 없는 앱 내 대화 등), 한 문장으로 말하고 터미널에서 실행할 명령어를 텍스트와 함께 제안하십시오.
텍스트 추가하기
사용자는 일상 언어로 스킬을 보강할 수도 있습니다. "이 이메일을 추가해 줘"라고 말하거나 /french-humanizer ajouter mail-envoyé를 입력하거나 텍스트를 붙여넣으며 추가를 요청하면, Claude는 다음을 사용하여 텍스트를 저장합니다.
python3 scripts/ajouter.py <type> fichier.txt --registre "mail pro"
python3 scripts/ajouter.py <type> - --registre "article" < texte.txt
| 유형 | 무엇인가 | 역할 |
|---|---|---|
mail-envoyé | 사용자가 작성한 이메일 | 작성자 음성 |
texte-modèle | 사용자가 작성한 다른 모든 텍스트 | 작성자 음성 |
mail-reçu | 다른 사람이 작성한 이메일 | 레지스터의 인간 예 |
texte-autre | 기사, 받은 편지, 문서 | 레지스터의 인간 예 |
유형에서 악센트는 선택 사항입니다(mail-envoye도 작동). 유형이 제공되지 않으면 네 가지 중 어느 것인지 묻고, 레지스터가 명확하지 않으면 함께 물어보십시오.
- 작성자의 텍스트는 음성 보정(문장 길이, 구두점, 반말/존댓말, 시작 및 끝 인사말)에 사용됩니다.
python3 scripts/ajouter.py profil은 요약을 제공합니다.
[truncated for translation]