k-skill-setup
Original:🇺🇸 English
Translated
After installing the full k-skill bundle, configure and verify the shared cross-platform setup with sops plus age, then optionally wire update checks and GitHub starring with explicit user consent.
40installs
Sourcenomadamas/k-skill
Added on
NPX Install
npx skill4agent add nomadamas/k-skill k-skill-setupTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →k-skill Setup
Purpose
전체 설치가 끝난 뒤, 공통 후속 작업을 처리한다.
k-skill- 설치
sops + age - age key 생성
- 공통 secrets 파일 생성
- 암호화 확인
- 런타임 주입 확인
- 선택 사항: 주기적인 업데이트 확인 자동화
- 선택 사항: GitHub star 여부 확인 및 동의 시 실행
이 스킬의 기본 정책:
- 시크릿이 없으면 필요한 값 이름을 사용자에게 정확히 알려준다
- 값을 채팅창에 붙여 넣으라고 하지 않는다
- 로컬에 안전하게 등록하는 절차를 안내한 뒤 다시 진행한다
- 필요한 패키지가 없으면 대체 구현을 찾기보다 전역 설치를 먼저 시도한다
- ,
cron,launchd,schtasks같은 지속성/외부 상태 변경은 자동으로 하지 말고 먼저 사용자 동의를 받는다gh - GitHub star는 사용자가 명시적으로 동의했을 때만 실행한다
Why this is the default setup path
- 계정 가입이 필요 없다
- macOS, Linux, Windows 모두 가능하다
- 스킬은 비밀값 위치를 몰라도 되고, 표준 환경변수 이름만 보면 된다
- 비밀값은 저장소에 평문으로 두지 않아도 된다
- 설치 단계와 시크릿/운영 자동화 단계를 분리할 수 있다
Security model
중요한 한계:
- 암호화된 파일은 안전하게 저장할 수 있다
- 하지만 로 실행된 프로세스는 복호화된 환경변수를 사용할 수 있다
sops exec-env ... - 즉, 에이전트가 "쓸 수는 있지만 절대로 읽을 수는 없는" 구조는 아니다
더 강한 모델이 필요하면 비밀값 자체를 넘기지 말고, 비밀값을 내부에서 소비하는 래퍼 명령만 노출해야 한다.
Standard file locations
- age key:
~/.config/k-skill/age/keys.txt - encrypted secrets file:
~/.config/k-skill/secrets.env
원하면 다른 위치를 써도 되지만, 기본 문서는 이 경로를 기준으로 한다.
Install
이 스킬은 전체 스킬 설치가 끝난 뒤 실행하는 것을 기본으로 한다.
k-skill예:
bash
npx --yes skills add <owner/repo> --all -g설치가 끝나면 이 스킬을 호출해 아래 setup 단계를 이어간다.
macOS
bash
brew install sops ageUbuntu / Debian
bash
sudo apt-get update
sudo apt-get install -y sops ageArch Linux
bash
sudo pacman -S sops ageWindows
powershell
winget install Mozilla.SOPS FiloSottile.age패키지 이름은 배포 채널에 따라 바뀔 수 있으니, 실패하면 공식 releases 페이지를 확인한다.
Setup steps
1. Create an age key
bash
mkdir -p ~/.config/k-skill/age
age-keygen -o ~/.config/k-skill/age/keys.txt출력에 보이는 public key를 복사한다.
2. Create .sops.yaml
.sops.yaml작업 디렉터리나 secrets 파일이 있는 디렉터리에 생성한다.
yaml
creation_rules:
- path_regex: .*secrets\.env(\.plain)?$
age: age1replace-with-your-public-key3. Create the plaintext env file once
bash
mkdir -p ~/.config/k-skill
cat > ~/.config/k-skill/secrets.env.plain <<'EOF'
KSKILL_SRT_ID=replace-me
KSKILL_SRT_PASSWORD=replace-me
KSKILL_KTX_ID=replace-me
KSKILL_KTX_PASSWORD=replace-me
SEOUL_OPEN_API_KEY=replace-me
EOF실제 값을 채운다.
4. Encrypt it
bash
cd ~/.config/k-skill
sops --encrypt --input-type dotenv --output-type dotenv \
secrets.env.plain > secrets.env
rm secrets.env.plainMissing secret response template
인증 스킬에서 값이 빠졌을 때는 다음 식으로 안내한다.
text
이 작업에는 <REQUIRED_SECRET_NAMES> 이 필요합니다.
값을 채팅창에 보내지 말고 ~/.config/k-skill/secrets.env.plain 에 직접 채운 뒤
sops 로 ~/.config/k-skill/secrets.env 로 암호화해 주세요.
암호화가 끝나면 plaintext 파일은 지우고 bash scripts/check-setup.sh 로 다시 확인해 주세요.예를 들면:
- SRT: ,
KSKILL_SRT_IDKSKILL_SRT_PASSWORD - KTX: ,
KSKILL_KTX_IDKSKILL_KTX_PASSWORD - 서울 지하철:
SEOUL_OPEN_API_KEY
시크릿이 비어 있다는 이유로 다른 서비스나 비공식 우회 경로를 자동 선택하지 않는다.
5. Verify runtime injection
bash
SOPS_AGE_KEY_FILE="$HOME/.config/k-skill/age/keys.txt" \
sops exec-env "$HOME/.config/k-skill/secrets.env" \
'test -n "$KSKILL_SRT_ID" || test -n "$KSKILL_KTX_ID" || test -n "$SEOUL_OPEN_API_KEY"'또는 저장소에 들어있는 점검 스크립트를 쓴다.
bash
bash scripts/check-setup.sh6. Run tools with the encrypted file
bash
SOPS_AGE_KEY_FILE="$HOME/.config/k-skill/age/keys.txt" \
sops exec-env "$HOME/.config/k-skill/secrets.env" '<your command>'7. Offer scheduled update checks
setup이 끝나면 사용자에게 주기적인 업데이트 확인 자동화를 원하는지 먼저 묻는다. 원하지 않으면 건너뛴다.
기본 정책:
- 자동 설치가 아니라 만 기본으로 제안한다
업데이트 확인 - 지속성 있는 시스템 변경(,
crontab,launchd)은 동의 없이 적용하지 않는다schtasks - 기본 확인 명령은
npx --yes skills check - 사용자가 명시적으로 를 원할 때만
자동 업데이트기반 스케줄을 별도로 제안한다npx --yes skills update
macOS / Linux 예시:
bash
mkdir -p ~/.config/k-skill/bin ~/.config/k-skill/logs
cat > ~/.config/k-skill/bin/check-skill-updates.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
mkdir -p "$HOME/.config/k-skill/logs"
{
date '+[%Y-%m-%d %H:%M:%S]'
npx --yes skills check
printf '\n'
} >> "$HOME/.config/k-skill/logs/skills-check.log" 2>&1
EOF
chmod +x ~/.config/k-skill/bin/check-skill-updates.sh
(crontab -l 2>/dev/null; echo "0 9 * * * $HOME/.config/k-skill/bin/check-skill-updates.sh") | crontab -Windows 예시:
powershell
New-Item -ItemType Directory -Force "$HOME/.config/k-skill/bin" | Out-Null
New-Item -ItemType Directory -Force "$HOME/.config/k-skill/logs" | Out-Null
@'
npx --yes skills check >> "$HOME/.config/k-skill/logs/skills-check.log" 2>&1
'@ | Set-Content "$HOME/.config/k-skill/bin/check-skill-updates.cmd"
schtasks /Create /SC DAILY /TN "k-skill-update-check" /TR "\"$HOME/.config/k-skill/bin/check-skill-updates.cmd\"" /ST 09:00 /F설정 후에는 로그 위치를 짧게 알려준다:
~/.config/k-skill/logs/skills-check.log
8. Offer GitHub starring with explicit consent
setup 마지막에는 다음처럼 짧게 묻는다.
text
k-skill 저장소(NomaDamas/k-skill)에 GitHub star를 눌러드릴까요?
원하시면 `gh` 로 바로 처리하고, 원하지 않으면 건너뜁니다.규칙:
- 사용자가 명시적으로 동의하기 전에는 를 실행하지 않는다
gh repo star - 가 없거나 인증되지 않았으면 설치/로그인 안내만 하고 자동 우회하지 않는다
gh - star 대상 저장소는 이다
NomaDamas/k-skill
동의했고 가 정상이면:
gh auth statusbash
gh repo star NomaDamas/k-skill성공하면 짧게 완료만 알린다.
Recommended shell helper
bash
kskill-run() {
SOPS_AGE_KEY_FILE="$HOME/.config/k-skill/age/keys.txt" \
sops exec-env "$HOME/.config/k-skill/secrets.env" "$@"
}예시:
bash
kskill-run python your-script.pyCompletion checklist
- works
sops --version - or
age-keygen --versionworksage --version - exists
~/.config/k-skill/age/keys.txt - exists and is encrypted
~/.config/k-skill/secrets.env - can inject expected env vars
sops exec-env ... - 사용자가 원한 경우에만 업데이트 확인 자동화 또는 GitHub star가 설정되었다
Notes
- 기본 흐름은 "전체 스킬 설치 → 이 setup skill 실행 → 개별 기능 사용" 이다
- 저장소 안에는 plaintext secret file을 두지 않는다