정보
이 스킬은 채팅, 로그, 커밋 등에서 발견된 키나 토큰과 같은 노출된 비밀을 즉시 폐기하고 교체하기 위한 추적 작업을 생성합니다. 단일 조치와 에스컬레이션을 통해 대응을 중앙화하여 문제가 단순히 기록되고 잊히는 것을 방지합니다. 라이브 자격 증명이 있어서는 안 될 곳에서 발견되어 강제적인 교체 워크플로우를 시작해야 할 때 사용하세요.
빠른 설치
Claude Code
추천npx skills add avelikiy/great_cto -a claude-code/plugin add https://github.com/avelikiy/great_ctogit clone https://github.com/avelikiy/great_cto.git ~/.claude/skills/secrets-rotationClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
secrets-rotation — an exposed secret is spent
Deleting the message, rewriting git history or redacting the log does not un-expose a secret: the transcript, the remote, the backup and the provider's own logs already hold it. The only fix is to make the exposed value worthless — revoke it and issue a new one.
What went wrong on real projects is not ignorance of that. It is that the rotation was remembered instead of tracked: "rotate the exchange API keys" was carried forward through seven session logs; "keys that passed through chat" appeared in seven summaries of another project; a monitoring token pasted in plain text was never rotated. Each session wrote the reminder again and nobody owned it.
The moment you see one
-
Never repeat the value. Not in your answer, not in a task title, not in a log, not in a commit message. Name its kind and where it is: "OpenRouter API key, in the operator's message of 22.09, 14:10".
scripts/lib/secret-patterns.mjsnames the kind. -
Say it plainly, first line: this key is compromised; revoking it is the only fix.
-
Open one task, not a note — in Beads if the project has it:
bd create "Rotate <kind> exposed in <where> on <date>" -t bug -p 0 \ -d "Exposed: <where>. Revoke at <provider console>, issue new, store in <secret store>, redeploy <consumers>, prove the old one is rejected."Priority 0 for a production credential or anything that moves money; 1 otherwise.
-
If you can rotate it, rotate it — the operator asked you to handle it, or your task covers that system. If it needs the operator (a provider console you cannot reach, a hardware token), the task's first line says exactly what they must click.
Done means the old value is refused
A rotation is closed with evidence, not with "rotated":
- the new value is in the secret store the code reads — never in
CLAUDE.md,preferences.md, memory files, a README or any file that is loaded into a model's context (one key in a preferences file reached 605 transcripts); - every consumer was redeployed and uses it (
deploy-landed, config check); - a call with the old value fails — 401/403 from the provider. That is the proof.
Carrying it forward
An open rotation task older than 48 hours goes to the top of the next session's report
and of /inbox, with its age. Do not re-list it in the session log as a fresh item —
link the task. Re-writing a reminder is how the seven-session carry-over happened.
GitHub 저장소
자주 묻는 질문
secrets-rotation Skill이란 무엇인가요?
secrets-rotation은(는) avelikiy이(가) 만든 Claude Skill입니다. Skill은 Claude가 필요할 때 불러오는 지침과 리소스를 묶어 추가 프롬프트 없이 secrets-rotation 관련 작업을 수행할 수 있게 합니다.
secrets-rotation은(는) 어떻게 설치하나요?
이 페이지의 설치 명령을 사용하세요. secrets-rotation을(를) Claude Code 플러그인으로 추가하거나 저장소를 skills 디렉터리에 복제한 다음 Claude를 다시 시작해 Skill을 불러옵니다.
secrets-rotation은(는) 어떤 카테고리에 속하나요?
secrets-rotation은(는) 문서 처리 카테고리에 속합니다.
secrets-rotation은(는) 무료로 사용할 수 있나요?
네. secrets-rotation은(는) AIMCP에 등록되어 있으며 무료로 설치할 수 있습니다.
연관 스킬
이 스킬은 소프트웨어 릴리스에 대한 시맨틱 버저닝(semver) 가이드라인과 변경 로그 형식 표준을 제공합니다. 릴리스를 준비할 때 버전 번호(메이저/마이너/패치)를 올바르게 증가시키고 변경 로그 항목을 구성하려면 이 스킬을 사용하세요. 사전 릴리스 식별자 규칙과 개발자를 위한 명확한 예시가 포함되어 있습니다.
이 스킬은 Conventional Commits 표준에 따라 Git 커밋 메시지를 형식화합니다. 커밋 작성이나 리뷰 시 일관성을 보장하기 위해 템플릿과 유형 정의(예: `feat`, `fix`, `refactor`)를 제공합니다. 커밋 과정에서 이를 사용하여 명확하고 구조화된 커밋 기록을 생성할 수 있습니다.
nano-pdf는 개발자가 특정 페이지의 텍스트 변경이나 오타 수정과 같은 자연어 지시를 사용해 PDF를 편집할 수 있는 CLI 도구입니다. 터미널에서 직접 빠르고 프로그래밍 방식으로 PDF를 수정하는 데 이상적입니다. 페이지 번호 매기기가 버전마다 다를 수 있으므로 출력 결과는 항상 확인하세요.
이 스킬은 HuggingFace의 Rust 기반 라이브러리를 사용하여 1GB 텍스트를 20초 이내에 처리하는 고성능 토크나이제이션을 제공합니다. BPE, WordPiece, Unigram 알고리즘을 지원하며 사용자 정의 토크나이저 학습과 정렬 추적 기능을 포함합니다. 프로덕션 수준의 고속 토크나이제이션이 필요하거나 transformers 생태계와 통합된 맞춤형 토크나이저를 구축할 때 사용하세요.
