MCP HubMCP Hub
스킬 목록으로 돌아가기

redact-for-public-disclosure

pjt222
업데이트됨 2 days ago
4 조회
17
2
17
GitHub에서 보기
커뮤니케이션ai

정보

이 스킬은 역공학 결과물을 공개하기 전에 민감한 세부 정보를 체계적으로 제거하는 방법을 제공하며, 방법론과 교육적 가치는 그대로 유지합니다. 여기에는 비공개/공개 저장소 분리, 거부 목록 패턴 관리, `git log` 유출을 방지하는 고아 커밋 게시 패턴 등의 기법이 포함됩니다. 타사 소프트웨어에 대한 연구를 공개적으로 공개하거나 비공개 조사 저장소를 아카이브할 때 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/redact-for-public-disclosure

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

公示之刪削

分逆研之私庫與公庫,用刪削之察、形之拒列、孤提交之公布形。法可傳,特定之發現留私。

用時

  • 公示閉源 CLI 之方法所得乃用
  • 為非己之項目擬上游之議或缺陷報乃用
  • 存私研庫為公參乃用
  • 升 Phase 1-4 之察為公指南乃用
  • 立公布之線於發現累積之前以防漏滯乃用
  • 草稿幾洩敏標之後清理乃用

  • 必要:私研庫,含混敏度之內(真之源)
  • 必要:公鏡(別庫或 public/ 工作樹),公削之內所往
  • 可選:擬公示之現草
  • 可選:版滯之策(默為「當前 + 前一留私」)
  • 可選:已知敏者之名表(廠商標、旗前綴或命空)

第一步:分諸候之事

書或升任何內前,分各事為四類。類定其可否公示及何時可公示。

可示乎
方法察之,獨立於任何特定發現恆然
通形類層之察(如「框常用單前綴之旗命空」)
版特發現繫於特定釋之具體察(如「於 vN.M,閘默閉」)唯版滯冷卻後
生內縮名、字節偏移、暗旗名、當版閘邏輯、PRNG/鹽常數、內部碼名永不

各草段、捕記、注前置類於審公示之前。混類之段宜分——方法淨提,餘留私。

得:每候事皆有類標。擬公鏡之草獨含方法與通形之入(加冷卻過後之版特發現)。

敗則:若事抗分類,默作生內。獨經對版滯策之明審後再分。

第二步:定版滯冷卻之策

先定「當前」與「可示」間隔幾版。二為常:當前 + 前一留私,更老之形可議。書策於私庫(如 REDACTION_POLICY.md),免後身復推。

# Redaction Policy

Version-lag cool-off: **2 releases**.
- Current release (vN): all version-specific findings PRIVATE.
- Previous release (vN-1): all version-specific findings PRIVATE.
- Releases vN-2 and earlier: version-specific findings may move to public draft after Step 5 review.

Source of truth for "current": output of `monitor-binary-version-baselines`.
Owner: <name>. Reviewed quarterly.

「當前」必為實證之版(自所裝二進制而讀),非行政者。繫策於基線掃描之輸出,非繫於曆。

得:私庫已提交之 REDACTION_POLICY.md,含明冷卻與所有者。

敗則:若所涉者不能議冷卻之長,默最保守之議。冷卻可後縮;召回已洩之事不可。

第三步:建拒列之掃描

於單可執之文中守形,是為削策之真源。文居私庫(tools/check-redaction.sh),對公鏡而行。

#!/usr/bin/env bash
set -u
PUBLIC_REPO="${1:-./public}"
LEAKS=0

PATTERNS=(
  "minified identifier shape|<regex matching short bundle-style identifiers>"
  "vendor-prefixed flag|<regex matching the vendor's flag prefix>"
  "PRNG/salt constant|<regex matching the specific constants>"
)

for entry in "${PATTERNS[@]}"; do
  desc="${entry%%|*}"
  pattern="${entry##*|}"
  if rg -q "$pattern" "$PUBLIC_REPO"; then
    echo "LEAK: $desc"; LEAKS=$((LEAKS+1))
  fi
done
exit $LEAKS

各入條皆有人讀之標與正則。一入條對一敏標之(非對字面之串——形可越版變而存)。退碼即洩之數;淨運退 0。

得:tools/check-redaction.sh ./public-mirror 於小庫秒內可行,無中時退 0。

敗則:若 rg 不可得,退用 grep -rqE。若形過寬(每行皆報洩),於源縮之,勿增抑。

第四步:草前守拒列

若 Phase 1-4 之發現可漏於草,當擴掃描。草賤;教掃描新形可久。

流程:

  1. 新發現入私庫(如新得之旗前綴)
  2. 問:「若此漏,吾欲掃描何捕?」
  3. 增形入條於 tools/check-redaction.sh(標 + 正則)
  4. 對全公鏡行掃描,確新形未為合內所誤觸
  5. 至此方可草涉此區之公內

此倒常序:先更掃描,後草。掃描成「何過敏不可示」之可執規約,而草不至無意越之。

得:tools/check-redaction.sh 之形入條早於可觸之公鏡內。git log tools/check-redaction.sh 示掃描之更先於相關草提交。

敗則:若掃描之更滯於草,立對新形審公鏡。削之,後提交掃描之更,附注述所現之形。

第五步:立私公檔組之分

明定許列,列同步至公鏡之檔。新檔默為私;升須過刪削之察。

# tools/public-allowlist.txt
README.md
LICENSE
guides/methodology-overview.md
guides/category-classification.md
docs/contributing.md

tools/sync-to-public.sh 讀許列,獨複此等檔至公鏡,若許列引不存之檔則非零退(捕誤書)。

#!/usr/bin/env bash
set -eu
PRIVATE_ROOT="${1:?private repo path required}"
PUBLIC_ROOT="${2:?public mirror path required}"
ALLOWLIST="$PRIVATE_ROOT/tools/public-allowlist.txt"

while IFS= read -r path; do
  [ -z "$path" ] && continue
  case "$path" in \#*) continue ;; esac
  src="$PRIVATE_ROOT/$path"
  dst="$PUBLIC_ROOT/$path"
  if [ ! -e "$src" ]; then
    echo "MISSING: $path"; exit 2
  fi
  mkdir -p "$(dirname "$dst")"
  cp -a "$src" "$dst"
done < "$ALLOWLIST"

升須三事按序:檔入許列、檔過刪削之察、審者承第一步之類標。

得:公鏡所含之檔正合 tools/public-allowlist.txt 所列。無不於許列之檔現於公鏡。

敗則:若公鏡有檔而不於許列,視為洩事——查其何來,後或除或經刪削之察正式升之。

第六步:以孤提交公布

公鏡乃單 git commit --orphan 為根之提交,每公布時重立。此防 git log 於公庫露未削之草。

# In the public mirror (separate repo or worktree)
cd /path/to/public-mirror
git checkout --orphan publish-tmp
git rm -rf .                                    # Clear the index
# Sync from private using the allow-list
bash /path/to/private/tools/sync-to-public.sh /path/to/private .
git add -A
git commit -m "Publish: <date>"
git branch -D main 2>/dev/null || true
git branch -m main
git push --force origin main

公庫之 git log 示一提交。前草及任何刪削之迭留於私庫之史。公庫之 git log -pgit reflog、枝列皆不能復未削之內,蓋未嘗提交於彼也。

得:公鏡之 git log --oneline 每公布示一提交。無私庫史之引(無父 SHA、無合提交、無自私庫之標)。

敗則:若 git push --force 被拒(枝護),改開單提交之拉請於潔孤枝。勿以推私史解拒。

第七步:接 CI 之閘

於每公同步枝之提交行 tools/check-redaction.sh。察敗阻公布,非僅警。

# .github/workflows/redaction-check.yml (in the public mirror repo)
name: redaction-check
on:
  push:
    branches: [main, publish-*]
  pull_request:
    branches: [main]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install ripgrep
        run: sudo apt-get update && sudo apt-get install -y ripgrep
      - name: Fetch redaction scanner
        env:
          GH_TOKEN: ${{ secrets.PRIVATE_REPO_TOKEN }}
        run: |
          gh api repos/<org>/<private-repo>/contents/tools/check-redaction.sh \
            --jq .content | base64 -d > check-redaction.sh
          chmod +x check-redaction.sh
      - name: Run scanner
        run: ./check-redaction.sh .

二設計之擇:

  • 掃描自私庫於 CI 時取,故拒列本身不居公庫(形本身為敏——示之則告讀者所應尋者)
  • 此務以掃描之退碼退;非零阻流

得:致敏形之推使 CI 敗;公布不落。守者見敗標(如 LEAK: vendor-prefixed flag)而不見正則本身。

敗則:若不能授私庫之令於公 CI,獨嵌掃描之最少漏之部於公庫(寬形而不識廠者),全掃描自私庫推前而行。

第八步:誠處假陽

若掃描誤觸合內,宜縮形而非加略行。寬拒列附局部抑必朽——半年後無人記為何抑某行,下漏即過而不察。

決樹:

  1. 此匹真安乎? 復用第一步分之。若內實為偽裝之生內,削之;勿抑掃描
  2. 形過寬乎? 縮正則使安內不再匹。以 check-redaction.sh 中之注紀其縮,繫於激此者
  3. 唯一二皆敗時——且形構與合內過糾以致不能更縮——用單行抑附 # REASON: 注,述抑以為安。注其日
# Bad — mystery suppression
echo "API endpoint pattern" >> ignore.txt

# Good — narrowed pattern with rationale
# Pattern v2: tightened from `\bgate\(` to `\bgate\(['\"][a-z]+_phase` after
# legitimate `gate(true)` calls in our own SDK examples started matching. 2026-04-15.
PATTERNS+=("vendor flag predicate|\\bgate\\(['\"][a-z]+_phase")

得:每掃描形附零或一行內注述其縮。抑(若有)附日與其由。

敗則:若抑累積(季逾一),拒列形誤。排刪削策之審而自分類事錄重建諸形。

第九步:周期削掃

非凡削勞由事而起。月行周期之掃,再分私庫近增之事,重對公鏡行掃描。漂自察於成事級之前。

掃單:

  • 重讀版滯策;確實證「當前」版未變或更策
  • 審近月私庫之提交,捕新增而未分類者(第一步)
  • 對公鏡行 tools/check-redaction.sh(仍宜退 0)
  • 審自上掃以來增之諸掃描形——有過寬者乎?有則縮之
  • 若有版越冷卻,識可升之發現
  • tools/public-allowlist.txt 合公鏡實有之檔組

得:私庫每月一短掃日誌(如 sweeps/2026-04.md),含單之果與所行。

敗則:若掃屢被略,自動曆提。若掃屢得同漂,其上之流程有患——查為何草時略分類。

  • 公鏡所有之檔皆於 tools/public-allowlist.txt
  • tools/check-redaction.sh ./public-mirror 退 0
  • 公鏡之 git log --oneline 每公布示一孤提交
  • 私庫存 REDACTION_POLICY.md,含明版滯冷卻
  • 每 Phase 1-4 之發現有類標(方法/通形/版特/生內)
  • 公 CI 每推皆行掃描;故設之試形使建敗
  • 拒列掃描本身不居公庫
  • 近月之掃日誌日期在前 35 日內

  • 「唯一例以實之」:欲含一具體發現「以實方法」乃最常之漏徑。用偽佔位(如 acme_widget_v3widget_handler_42)——明為造作,永不可繫於實品
  • git rebasegit filter-branch 於公庫原地擦漏:強推改寫之史仍留痕於克隆與分叉。孤提交公布形乃結構之修;隨手史改非也
  • 抑而不縮形:附廿抑之掃乃零意之掃。每抑乃未來之漏,待境淡化
  • 公 CI 警而不敗:警必被忽。CI 閘必阻公布(非零退、無合按)
  • 許列之漂:私庫新增之檔不自動屬許列。默拒乃唯一安姿
  • 誤密為削:編、雜、rot13 一敏標而示之者,仍示之也——原可復。削謂「全不現」
  • 公示拒列:形本身乃發現之錄:見正則之讀者知於二進制中當 grep 何。掃描留私;唯其標(如 LEAK: vendor-prefixed flag)宜現於公 CI 日誌
  • 視私庫為草堆:其乃研之真源,非草地。施以版控、審、備之嚴,如待生產品

  • monitor-binary-version-baselines — Phase 1,基線資版滯策:「當前」乃實證之事,非曆事
  • probe-feature-flag-state — Phase 2-3,此處之分類發現入削線於類步(第一步)
  • conduct-empirical-wire-capture — Phase 4,捕件(線錄、載式)需削後方可公引
  • security-audit-codebase — 二線皆得拒列式掃描之益;此技專於研示,非密漏
  • manage-git-branches — 孤提交公布形乃枝術;安行需彼處所書之枝衛之術

GitHub 저장소

pjt222/agent-almanac
경로: i18n/wenyan/skills/redact-for-public-disclosure
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

himalaya-email-manager

커뮤니케이션

이 Claude Skill은 IMAP을 통해 Himalaya CLI 도구를 이용한 이메일 관리를 가능하게 합니다. 개발자들이 자연어 쿼리로 IMAP 계정의 이메일을 검색하고, 요약하고, 삭제할 수 있게 해줍니다. 일일 요약 수신이나 Claude에서 직접 배치 작업 수행과 같은 자동화된 이메일 워크플로우에 활용하세요.

스킬 보기

imsg

커뮤니케이션

imsg는 macOS용 CLI 도구로, Messages.app을 통해 iMessage/SMS와 프로그래밍 방식으로 상호작용할 수 있게 해줍니다. 이 도구를 사용하면 개발자가 채팅 목록을 확인하고, 메시지 기록을 조회하며, 대화를 실시간으로 모니터링하고, 메시지나 첨부 파일을 보낼 수 있습니다. 이 스킬을 활용하여 메시징 작업을 자동화하거나 개발 워크플로우에 iMessage/SMS 기능을 통합해 보세요.

스킬 보기

internationalization-i18n

커뮤니케이션

이 Claude Skill은 애플리케이션에 국제화(i18n)와 현지화를 구현하기 위한 포괄적인 지침을 제공합니다. i18next 및 gettext와 같은 라이브러리를 활용하여 메시지 추출, 번역 관리, 로케일별 형식 지정, RTL(오른쪽에서 왼쪽) 지원 등 주요 작업을 다룹니다. 다국어 애플리케이션을 구축하거나 국제 사용자를 위한 현지화 기능을 추가할 때 활용하세요.

스킬 보기

wacli

커뮤니케이션

wacli는 WhatsApp Web 프로토콜을 통해 WhatsApp 메시징, 검색 및 동기화를 가능하게 하는 명령줄 도구입니다. 주로 Clawdis 워크플로우 내에서 자동화 처리를 위해 사용되지만, 메시지 전송, 채팅 동기화 또는 기록 조회를 위해 직접 호출할 수도 있습니다. 주요 기능으로는 QR 기반 인증, 지속적인 백그라운드 동기화, 텍스트 및 파일 전송 기능이 포함됩니다.

스킬 보기