본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

witness

수정 사항을 식별하는 문자열과 파일 해시를 서명된 목록에 기록합니다. 릴리스별 기록으로 수정 사항의 소실과 문제 재발에 관련된 커밋을 추적합니다.

원문원문 설명 보기

Sign, verify, and track fix-marker regressions over time using an Ed25519 witness manifest. The default seed is public-commit-derived (integrity only); set RUFLO_WITNESS_SEED/RUFLO_WITNESS_PUBLIC_KEY for authorship. Works in any project — clone the toolkit, run init, register fixes, regen on each release.

AI 평가100점/ 100설치 방법 보기

이럴 때 유용합니다

  • 릴리스 전 기존 수정 사항 유지 확인
  • 문제 재발에 관련된 커밋 조사
  • CI에서 서명된 수정 기록 검증
  • 특정 수정 사항의 상태 이력 확인

한국어 소개

할 수 있는 일

서명된 기록과 이력을 통해 이후 변경으로 코드 수정 사항이 사라졌는지 확인합니다. 수정 사항마다 대상 파일과 고유한 표식 문자열을 등록하고 SHA256 해시와 함께 목록에 기록합니다. 검증 시 서명, 파일의 존재 여부, 표식의 소실을 확인합니다. 이력으로 수정 상태의 변화와 문제가 재발한 커밋도 추적할 수 있습니다.

이럴 때 유용합니다

릴리스 전에 과거 수정 사항이 남아 있는지 확인하거나 CI에서 문제 재발을 탐지할 때 유용합니다. 특정 수정 사항의 경과를 살펴보고 이전 기록 이후 새로 사라진 수정 사항을 확인할 수도 있습니다.

사용 예시

  • “이 프로젝트를 초기 설정하고 수정 사항의 표식을 등록해 주세요.”
  • “이력에서 현재 재발한 문제의 발생 커밋을 찾아 주세요.”
  • “--source-only --strict로 검증해 주세요.”

주의 사항

Node.js로 실행하며 서명에는 @noble/ed25519가 필요합니다. 표식은 고유한 문자열로 선택합니다. 목록은 직접 편집하지 않고 다시 생성하며 이력과 같은 커밋에 포함합니다. 표식이 남아 있는 파일 변경은 보통 보고만 하며, --strict를 지정하면 실패로 처리합니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

객관 평가

AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.

지시의 명확성언제 쓰고 무엇을 하는지 알 수 있는가
A양호수정 표식을 서명된 목록에 기록하고 검증과 이력으로 문제 재발을 추적하는 용도가 명확합니다.
절차의 구체성절차·입출력·예시가 구체적으로 적혀 있는가
A양호init, regen, verify, history 실행 예시와 등록 항목, 생성 파일명을 제시합니다.
안전성전송·삭제·명령 실행 등을 명시하고 있는가
A양호생성 및 갱신할 파일, 서명 검증 절차, 엄격 모드의 실패 조건을 명시합니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
A양호스크립트 배치와 초기화, @noble/ed25519 설치 절차를 설명합니다.

총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 21일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(1)

  • SKILL.md5.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Witness — tamper-evident fix-regression tracking

The witness toolkit lets you ship every release with a signed manifest that lists every documented fix in your codebase along with a sha256 + marker substring. By default the signing seed is derived from the public git commit, so anyone can reproduce the signature: this is an integrity checksum, not proof of authorship. For authenticity, sign with a 32-byte RUFLO_WITNESS_SEED and verify with a pinned RUFLO_WITNESS_PUBLIC_KEY.

A temporal history (JSONL) tracks how the fix population evolves across releases — so when a regression appears, you can pinpoint the commit that introduced it, not just "it's broken now."

This skill works two ways:

  1. Inside ruflo — used by ruflo's own CI to gate publishes (see .github/workflows/v3-ci.yml job witness-verify).
  2. In your own project — copy plugins/ruflo-core/scripts/witness/ into your repo, run init.mjs, register your fixes in witness-fixes.json, and call regen.mjs from your release pipeline.

Quick start (any project)

# One-time bootstrap — creates verification.md.json,
# verification-history.jsonl, and witness-fixes.json template
node plugins/ruflo-core/scripts/witness/init.mjs --root .

# Edit witness-fixes.json: add { id, desc, file, marker } per fix.
# A "marker" is a distinctive substring that MUST appear in `file`
# while the fix is present. If someone reverts the fix, the marker
# disappears and `verify` reports it as `regressed`.

# Regenerate the manifest (signing requires @noble/ed25519)
npm i @noble/ed25519
node plugins/ruflo-core/scripts/witness/regen.mjs \
  --manifest verification.md.json \
  --history verification-history.jsonl \
  --fixes witness-fixes.json

# Verify markers are present in the live tree
node plugins/ruflo-core/scripts/witness/verify.mjs \
  --manifest verification.md.json

# Or authenticate the manifest and check source markers in a clean clone.
# Generated dist/ entries are explicitly reported as skipped.
node plugins/ruflo-core/scripts/witness/verify.mjs \
  --manifest verification.md.json --source-only

# For a CI hash tripwire, also fail when a file changes but its marker remains.
node plugins/ruflo-core/scripts/witness/verify.mjs \
  --manifest verification.md.json --source-only --strict

# Authenticity: pin a release public key (the flag wins over the env var).
node plugins/ruflo-core/scripts/witness/verify.mjs \
  --manifest verification.md.json --public-key <64-hex-public-key>

Without --strict, marker-preserving SHA drift is reported but exits 0. --strict makes that drift exit 1 without changing signature or missing-file checks.

Temporal queries (ADR-103)

# Latest snapshot vs. previous
node plugins/ruflo-core/scripts/witness/history.mjs \
  --history verification-history.jsonl summary

# For each currently-regressed fix, find the commit that introduced it
node plugins/ruflo-core/scripts/witness/history.mjs \
  --history verification-history.jsonl regressions

# Status timeline for a specific fix
node plugins/ruflo-core/scripts/witness/history.mjs \
  --history verification-history.jsonl timeline --id F1

# Machine-readable for CI
node plugins/ruflo-core/scripts/witness/history.mjs \
  --history verification-history.jsonl summary --json

summary exits non-zero if any fix newly regressed since the last snapshot — drop it in CI as a soft pre-merge gate.

Anti-patterns

  • Hand-editing verification.md.json — always regenerate via regen.mjs, otherwise the signature breaks.
  • Markers that are too generic ('function', 'import') — pick something unique enough that grep doesn't false-positive against unrelated code.
  • Skipping the history append — without --history, you lose the ability to bisect when a regression was introduced.
  • Committing one without the other — verification.md.json and verification-history.jsonl belong in the same commit; the JSONL is what lets future you verify the signed manifest is the latest in the line.

Files

  • scripts/witness/lib.mjs — shared regenerate / history logic.
  • scripts/witness/regen.mjs — CLI: sign + append history.
  • scripts/witness/history.mjs — CLI: query the temporal log.
  • scripts/witness/init.mjs — CLI: bootstrap into a fresh project.
  • scripts/witness/verify.mjs — CLI: validate signature + markers.

In ruflo's CI

v3-ci.yml job witness-verify runs after the behavioral smoke tests and before publish. Failure modes:

FailureCause
signatureValid: nomanifest hand-edited; re-run regen
regressed: > 0a documented fix lost its marker since issuance
missing: > 0a cited dist file no longer exists; rebuild or remove the entry
scope: source-onlysignature + source markers checked; generated entries intentionally skipped

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

add-model-descriptions

무료요약 있음AI 평가 80점

HuggingFace router의 모델 목록과 chat-ui 설정을 비교해 미등록 모델을 조사합니다. 짧은 영어 설명을 작성하고 운영용·개발용 설정에 함께 추가합니다.

  • 라우터의 새 모델을 추가할 때
  • 모델 특징을 짧은 설명으로 정리할 때
  • 운영용·개발용 모델 정보를 함께 갱신할 때
ruvnet/ruflo7.8만2026년 10월 21일 업데이트

adr-create

무료요약 있음AI 평가 80점

기술 선택과 설계 판단을 기록하는 ADR을 기존 파일에 이어지는 번호로 만듭니다. 템플릿 생성, AgentDB 등록과 관련된 과거 결정의 연결을 처리합니다.

  • 기술 도입 이유 기록
  • API나 데이터 모델 변경 기록
  • 인프라 구성 결정 문서화
ruvnet/ruflo7.8만2026년 10월 21일 업데이트

adr-index

무료요약 있음AI 평가 90점

설계 결정과 이유를 기록한 ADR을 읽어 검색 색인과 의존 관계 그래프를 만들고 갱신합니다. 두 문서 형식을 지원하며 참조와 상태의 불일치도 집계합니다.

  • 다른 프로젝트의 ADR을 가져온 뒤 색인 생성
  • 파일과 관계 그래프 동기화
  • 기존 코드베이스에서 ADR 관리 시작
ruvnet/ruflo7.8만2026년 10월 21일 업데이트

adr-reindex

무료요약 있음AI 평가 70점

삭제한 ADR 설계 결정 기록이나 관계 정보가 색인에 남았을 때 전체 삭제 후 재구축합니다. 현재 파일 수와 등록 수를 대조하며, 변경 없이 작업 내용을 미리 확인할 수 있습니다.

  • ADR 파일을 삭제한 뒤 색인을 재구축할 때
  • ADR 관계 삭제 후 남은 정보를 정리할 때
  • ADR 색인을 정기적으로 맞출 때
ruvnet/ruflo7.8만2026년 10월 21일 업데이트

adr-review

무료요약 있음AI 평가 80점

코드 변경 사항을 채택된 설계 결정을 기록한 ADR과 대조합니다. 결정 위반, 오래된 기록 참조, 관련 기록이 없는 변경을 정리하고 코드 수정이나 결정 재검토를 제안합니다.

  • PR 병합 전 설계 결정 확인
  • 대규모 변경과 설계 결정 대조
  • 대체된 ADR을 참조하는 코드 검색
ruvnet/ruflo7.8만2026년 10월 21일 업데이트

adr-verify

무료요약 있음AI 평가 90점

저장된 아키텍처 결정 기록인 ADR의 관계를 검증해 끊어진 참조, 대체 관계의 순환, 상태 불일치를 보고합니다. 가져오기 후나 출시 전 점검에 활용합니다.

  • ADR 가져오기 후 일관성 확인
  • 지속적 통합에서 불일치 탐지
  • 출시 전 저장된 ADR 데이터 점검
ruvnet/ruflo7.8만2026년 10월 21일 업데이트

ruvnet의 스킬 모두 보기

이 스킬의 문제 신고