HuggingFace router의 모델 목록과 chat-ui 설정을 비교해 미등록 모델을 조사합니다. 짧은 영어 설명을 작성하고 운영용·개발용 설정에 함께 추가합니다.
- 라우터의 새 모델을 추가할 때
- 모델 특징을 짧은 설명으로 정리할 때
- 운영용·개발용 모델 정보를 함께 갱신할 때
수정 사항을 식별하는 문자열과 파일 해시를 서명된 목록에 기록합니다. 릴리스별 기록으로 수정 사항의 소실과 문제 재발에 관련된 커밋을 추적합니다.
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.
서명된 기록과 이력을 통해 이후 변경으로 코드 수정 사항이 사라졌는지 확인합니다. 수정 사항마다 대상 파일과 고유한 표식 문자열을 등록하고 SHA256 해시와 함께 목록에 기록합니다. 검증 시 서명, 파일의 존재 여부, 표식의 소실을 확인합니다. 이력으로 수정 상태의 변화와 문제가 재발한 커밋도 추적할 수 있습니다.
릴리스 전에 과거 수정 사항이 남아 있는지 확인하거나 CI에서 문제 재발을 탐지할 때 유용합니다. 특정 수정 사항의 경과를 살펴보고 이전 기록 이후 새로 사라진 수정 사항을 확인할 수도 있습니다.
--source-only --strict로 검증해 주세요.”Node.js로 실행하며 서명에는 @noble/ed25519가 필요합니다. 표식은 고유한 문자열로 선택합니다. 목록은 직접 편집하지 않고 다시 생성하며 이력과 같은 커밋에 포함합니다. 표식이 남아 있는 파일 변경은 보통 보고만 하며, --strict를 지정하면 실패로 처리합니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.
총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 21일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
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:
.github/workflows/v3-ci.yml job witness-verify).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.# 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.
# 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.
verification.md.json — always regenerate via regen.mjs,
otherwise the signature breaks.'function', 'import') — pick something
unique enough that grep doesn't false-positive against unrelated code.--history, you lose the
ability to bisect when a regression was introduced.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.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.v3-ci.yml job witness-verify runs after the behavioral smoke tests
and before publish. Failure modes:
| Failure | Cause |
|---|---|
signatureValid: no | manifest hand-edited; re-run regen |
regressed: > 0 | a documented fix lost its marker since issuance |
missing: > 0 | a cited dist file no longer exists; rebuild or remove the entry |
scope: source-only | signature + source markers checked; generated entries intentionally skipped |
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
HuggingFace router의 모델 목록과 chat-ui 설정을 비교해 미등록 모델을 조사합니다. 짧은 영어 설명을 작성하고 운영용·개발용 설정에 함께 추가합니다.
기술 선택과 설계 판단을 기록하는 ADR을 기존 파일에 이어지는 번호로 만듭니다. 템플릿 생성, AgentDB 등록과 관련된 과거 결정의 연결을 처리합니다.
설계 결정과 이유를 기록한 ADR을 읽어 검색 색인과 의존 관계 그래프를 만들고 갱신합니다. 두 문서 형식을 지원하며 참조와 상태의 불일치도 집계합니다.
삭제한 ADR 설계 결정 기록이나 관계 정보가 색인에 남았을 때 전체 삭제 후 재구축합니다. 현재 파일 수와 등록 수를 대조하며, 변경 없이 작업 내용을 미리 확인할 수 있습니다.
코드 변경 사항을 채택된 설계 결정을 기록한 ADR과 대조합니다. 결정 위반, 오래된 기록 참조, 관련 기록이 없는 변경을 정리하고 코드 수정이나 결정 재검토를 제안합니다.
저장된 아키텍처 결정 기록인 ADR의 관계를 검증해 끊어진 참조, 대체 관계의 순환, 상태 불일치를 보고합니다. 가져오기 후나 출시 전 점검에 활용합니다.