Repository navigation
Releases: orientpine/cytoplasm
Release list
v1.20.0 — 대리 요청이 조용히 사라지지 않게 한다 — 대리 봇 요청 처리, 소유자 웹훅 원문, 누락 안전망
대리 봇이 옮겨 쓴 소유자 요청이 ✅ 반응만 받고 처리되지 않던 문제를 고친다. 소유자 지시(2026-10-10, "네 요청도 내 요청과 같이 모두 처리하게 해줘")에 따라 대리 봇(Dori)의 요청은 원문 검증이 실패해도 끝까지 처리한다. 소유자의 단축어 녹음 웹훅은 원문 작성자로 좁게 인정한다. 처리되지 않은 대리 요청은 그 사실이 대리 글 스레드에 남는다.
바뀐 것
- 대리 봇 요청 처리(소유자 지시) — 사설 설정
owner_proxy_bot_id의 봇이 소유자 대화 채널에 대리 접두어와 본문을 붙여 쓴 글은 원문 검증이 실패해도 버리지 않는다. 대리 봇의 요청(via=dori)으로 턴을 열고, 실패 사유와 대리 봇이 붙인 링크(미검증)를 머리말에 함께 싣는다. - 소유자 웹훅 원문 인정 — 소유자가 직접 만든 웹훅(단축어 녹음)이 쓴 원문은 Discord 가 작성자를 봇으로 표시한다. 그래서 출처 검증이
origin_author로 거부해 턴이 열리지 않았다(2026-10-10 일정 7건 등록 요청). 이제 사설 설정owner_proxy_origin_webhook_ids에 등록한 웹훅만 받는다. 원문의webhook_id가 작성자 id 와 같고 글이 원문 채널 자체에 있을 때만이다. - 누락 안전망 — 게이트웨이 ✅ 는 글을 버려도 붙는 수신 영수증이라 처리 여부를 말하지 않는다. 형식은 대리 요청인데 거부되면 그 대리 글 스레드에 사유를 즉시 남긴다. 받았는데 3분 안에 오토파지의 글(답·승인 카드·질문)이 없으면 '응답 없음'을 남긴다. 대기 목록은 파일에 남아 게이트웨이가 재시동돼도 다시 확인하고, 무장은 게이트웨이 주 프로세스에서만 한다.
신뢰 범위 (대리 봇 요청)
- 설정한 대리 봇 id 하나만 해당한다. 다른 봇(오토파지 자신 포함)의 글, 접두어가 없는 글, 본문이 빈 글은 예전처럼 버리므로 봇끼리 주고받기가 열리지 않는다.
- 외부효과(메일·일정·할 일·Obsidian 쓰기 등)는 지금처럼 소유자가 승인 카드에 누른 ✅ 가 있어야 실행된다. 게이트는 바뀌지 않았고 시험으로 고정했다.
- 기록: 로그
interop owner proxy accepted origin=None via=dori origin_check=<사유>, 턴 머리말원문: 출처 미검증(<사유>) · 대리 봇이 붙인 링크(미검증): <링크> (작성: dori).
신뢰 범위 (웹훅 출처)
- 웹훅 글은 URL 을 아는 누구나 쓸 수 있다. 그래서 신뢰는 에이전트 턴을 여는 데까지다. 외부효과는 웹훅 출처든 아니든 소유자가 승인 카드에 누른 ✅ 가 있어야 실행되고, 이 조건은 시험으로 고정했다.
- 등록하지 않은 웹훅, 작성자 id 가 다른 웹훅, 스레드 안의 웹훅 글은 받지 않는다. 키가 없거나 형식이 틀리면 예전처럼 모두 거부한다.
- 출처 종류가 기록에 남는다. 로그는
interop owner proxy accepted origin=<id> via=owner-webhook이고, 턴 머리말은(작성: owner-webhook)이다. - 웹훅 URL 이 새어 나갔다고 의심되면 웹훅을 지우고 새로 만든 뒤 설정의 id 를 바꾼다.
사용자에게 보이는 변화
- 대리 봇의 요청은 원문을 확인하지 못해도 직접 쓴 요청과 같이 처리된다. 단축어 녹음 원문은 등록하면
owner-webhook출처로 검증된다. 어느 쪽이든 외부효과는 승인 카드를 거친다. - 대리 요청이 처리되지 않으면 그 스레드에 "
⚠️ 이 대리 요청은 처리하지 않았습니다 — <사유>" 또는 "⚠️ 이 대리 요청에 3분 동안 응답이 없습니다"가 달린다.
깨지는 변경 · 운영자 할 일
- 깨지는 변경은 없다. 게이트웨이 플러그인 코드라 전량 반영이 agent·peer 게이트웨이를 재시동해야 적용된다.
- 대리 봇 요청 처리에는 새 설정이 필요 없다(기존
owner_proxy_bot_id). 웹훅을owner-webhook출처로 검증 기록하려면 agent 계정~/.hermes/interop/config.json에owner_proxy_origin_webhook_ids(문자열 id 목록)를 넣는다. 선택 사항이고 재시동은 필요 없다.
포함된 PR (v1.19.0 이후)
- #17 fix(interop): owner proxy requests are never silently dropped
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.19.0 — 콘텐츠 민감 판정을 저장소 전체에서 없앴습니다 — 모든 문서·메일·전사를 같은 경로로 처리합니다
바뀐 것
소유자 결정(2026-10-09, "모두 보안 관리자 등급")에 따라, v1.18.0 에서 회의 스킬에 한 것과 같은 정리를 나머지 전부에 적용했습니다. 키워드·정규식·모델로 내용을 "민감/특허/기밀"로 나누던 판정과, 그 판정이 낳던 효과가 모두 사라졌습니다.
없어진 것:
- 메일 분류(triage)의 민감 판정과 그에 따른 마스킹·게시 차단·모델 제한
- 제안서의 특허 판정, 내용에 따른 윤문 호스트 허용 목록·그림 생성 차단, 엔진의 민감 플래그·태그
- doctype·report·topics·prompt 의 분류 모듈, 저장 목적지 차단, 민감 본문 별도 저장, 주제 거부, 주간 연구 동향의 주제 필터
- recall 의
patent-sensitive센티널, RAG 인제스트 태깅, 지식 계층·위키·트윈·메모리 큐레이터·Plaud 라이프로그 추출·화자 수 질의의 민감 건너뛰기 - 모델 호출 경로의 특허 판정 기반 제공자 제한(Codex OAuth 전용 검사)
- 공용 규칙 파일
configs/sensitivity-rules.yaml과 스킬별 사본, 이를 노드에 올리던 배포 선언, 관련 환경변수
사용자에게 보이는 변화
- 특허·기밀 같은 낱말이 들어 있어도 다른 내용과 똑같이 요약·게시·발행·검색됩니다. 카드에
[민감]마스킹이 붙지 않고, 같은 모델 체인(주 모델 → 폴백)이 처리합니다. - 민감하다는 이유로 확인을 묻거나 처리를 건너뛰지 않습니다.
그대로 남긴 보안 장치
경로 검증(경로 탐색·심볼릭 링크), 비밀값·누출 검사(gitleaks·public_gate·leak-guard), 소유자 ✅ 승인 게이트, 인증·권한, 서명 검증, 입력 크기 제한, 배포본 실행 사본 가드, 제안서의 개인 노트 출처 경계(내용 낱말이 아니라 출처로 정하는 접근 제한), 특허 산출물의 전용 반출 게이트(Drive gate-only), 승인 스레드·결과 통지의 스킬별 고정 마스킹 규칙은 바뀌지 않았습니다. 메일의 명시적 --masked 출력과 오류·로그의 비밀값 가림도 그대로입니다.
변경은 PR #12(문서·보고서·주제·프롬프트·연구 동향), #13(제안서), #14(메일), #15(자동화·recall·RAG·지식·메모리·라이프로그·모델 경로), #16(공용 분류기·규칙 파일 삭제와 문서)에 나뉘어 들어갔습니다.
기존 데이터
기존 데이터는 그대로입니다. 이미 분리 저장된 파일, 마스킹된 카드, 민감 태그가 붙은 색인은 자동으로 옮기거나 다시 처리하지 않습니다. 옛 형식 레코드는 계속 읽히며 민감 필드는 무시됩니다. 노드에 남아 있는 옛 규칙 파일 사본도 지우지 않습니다(더 이상 읽지 않습니다).
운영자 할 일
없습니다.
포함된 PR (v1.18.0 이후)
- #16 feat!: delete the shared sensitivity rules and finish the docs after the bundle PRs
- #15 refactor(automation)!: remove content classification from recall, RAG, knowledge, memory, lifelog and model routing
- #14 feat(mail): process every mail topic without content confinement
- #13 feat(proposal): process proposal content without keyword restrictions
- #12 feat(documents)!: remove content classification from documents, reports, topics and prompts
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.18.0 — 회의록 민감 판정·게시 차단·외부 LLM 제한 제거 — 모든 회의를 같은 경로로 처리
바뀐 것
- 회의록 민감 판정 제거. meeting 스킬이 회의마다 내리던 민감(특허) 판정을 없앴다. 전사·근거·발표자료·
참고자료에 대한 키워드/정규식 검사와 회의록 frontmatter 의 민감 태그 자동 부착이 사라졌다. - 게시 차단 제거. 판정이 걸던 효과도 모두 사라졌다 — 카드·마일스톤 마스킹(
[민감] 회의 액션아이템 N),
#team 게시 차단, Drive 발행 건너뛰기(DRIVE-PUBLISH-SKIP reason=sensitive), 과제 원장(action-items)
미갱신, 완료 통지의 「민감 문서」 표기. - 외부 LLM 제한 제거. 민감 회의에 대해 Codex 경로 외의 라우팅을 거부하던 장치를 없앴다.
- 이유: 운영자와 구성원이 모두 보안 관리자 등급이라 문서 단위 민감 차단이 필요 없어졌다.
- 회의 스킬 밖은 그대로다: 공용
configs/sensitivity-rules.yaml과 메일·보고서·제안서·문서 유형·topics·
prompt·recall·RAG·라이프로그의 민감도 게이트는 바뀌지 않았다.
사용자에게 보이는 변화
- 「특허」「출원」「청구항」이 들어간 회의도 실제 제목의 Kanban 카드, 마일스톤, #team 게시, Drive 회의록,
과제 원장 갱신을 다른 회의와 똑같이 받는다. - 특허 낱말이 든 회의 본문도 계정의 주 모델과 그 폴백 체인(
~/.hermes/config.yaml의
fallback_providers— 외부 제공자일 수 있다)으로 그대로 보내진다. - 회의 CLI 결과 JSON 과 라우팅 로그에서
sensitive·tags필드가 빠진다.
깨지는 변경 / 운영자 할 일
- 이미 민감으로 막혀 있던 회의록은 자동으로 다시 처리되지 않는다. 그때 Drive 에 올라가지 않았거나
카드·마일스톤이 가려진 회의록은 그대로 남는다. 필요하면 그 회의를!meeting또는
meeting_cli.py ingest로 다시 인제스트한다(Drive 회의록은 같은 이름으로 갱신된다). meeting_cli.py gate하위명령과 환경변수MEETING_RULES_FILE이 없어졌다. 노드 env 에 남아 있어도
읽히지 않는다 — 정리는 선택이다. meeting 스킬 마운트에서configs/sensitivity-rules.yaml사본도 빠진다.- 스키마·필수 설정 필드·정책 버전 변경은 없다. 그래서 MAJOR 가 아닌 minor 릴리스다.
포함된 PR (v1.17.1 이후)
- #11 fix(meeting): 시나리오의 태그 검사가 실패할 수 없던 문제
- #10 feat(meeting)!: 회의 스킬의 민감 판정과 그 효과를 전부 제거
- #9 docs(readme): Dori 모드를 함께 쓰는 운영 구조도 추가
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.17.1 — 릴리스 노트를 태그와 같은 단계에서 게시
릴리스를 자를 때 서명 태그만 남고 GitHub Release 노트가 빠지던 구멍을 막았습니다. 이제 release.sh 가 승인 요청 전에 노트 초안을 받고, 소유자 ✅ 뒤 태그를 자른 바로 그 단계에서 Release 노트와 update-trust.pub 를 게시한 뒤 다시 읽어 확인합니다.
바뀐 것
- 릴리스 = 태그 + Release 노트 — v1.16.0·v1.17.0 이 태그만 남아 Releases 목록의 Latest 가 v1.15.1 에 멈춰 있었고, 이미 배포된 변경이 어떤 노트에도 실리지 않았습니다. 이제
automation/release.sh --notes-file <노트>가 초안(첫 줄# <한 줄 요약>)을 승인 요청 전에 요구하고, 없거나 비어 있으면 승인 카드를 올리지 않고 exit 4 로 멈춥니다. 태그를 자른 뒤에는 초안에 포함 PR 목록과 업데이트 신뢰키 지문을 붙여 GitHub Release 를 만들고update-trust.pub를 첨부한 뒤 본문과 자산을 다시 읽어 확인합니다. - 실패는 크게 알린다 — 노트 게시 실패는
RELEASE-NOTE-FAIL과 exit 11 입니다(태그는 남고, 같은 명령을 다시 돌리면 노트만 이어서 게시합니다). 직전 릴리스 태그에 Release 가 없으면 새 릴리스를 열지 않습니다(RELEASE-NOTE-MISSING). - 보충 명령 — 이미 잘린 태그에 노트를 채우는
automation/release-note.sh <tag> --notes-file <노트>가 생겼습니다(이미 있으면 무동작). 완결 타이머와release-tag.sh도 태그 뒤 같은 함수를 부르고, 태그를 자르는 모든 경로가 노트 단계를 갖는지는 conformance 시험이 막습니다. - 문서 — 「공개 릴리스 규칙」과 유지보수자 매뉴얼 §1.7 이 새 흐름을 설명하고, 기능 소개 문서를 추가했습니다.
사용자에게 보이는 변화
- 새 릴리스마다 GitHub Releases 에 한국어 노트와
update-trust.pub가 함께 올라오고 가장 높은 버전이 Latest 로 표시됩니다. 새로 설치하는 사람은 거기서 신뢰키와 지문을 바로 받을 수 있습니다. - 노드에서 도는 에이전트 동작은 바뀌지 않습니다 — 이번 변경은 릴리스를 자르는 워크스테이션 도구에만 있습니다.
깨지는 변경 · 운영자 할 일
- 깨지는 변경 없음. 릴리스를 자르는 유지보수자는 이제
release.sh에--notes-file을 반드시 넘겨야 합니다.
포함된 PR (v1.17.0 이후)
- #8 feat(release): 릴리스할 때 태그와 함께 GitHub Release 노트를 게시한다 (release notes)
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.17.0 — 메일 다이제스트 개편 — 이름만 한 번, 메일마다 스레드 메시지 하나, 메일에 답하면 회신 초안
메일 다이제스트를 읽고 답하기 쉽게 바꿨습니다.
바뀐 것
- 이름 표시 — 표시 이름이 두 번 이스케이프돼 역슬래시가 겹쳐 보이던 문제를 고쳤습니다. 이제 이름만 보이고, 참조(Cc)는 소유자를 빼고 "A, B, C 외 N명" 으로 줄입니다.
- 메일마다 메시지 하나 — 다이제스트는 채널에 머리글 하나를 올리고 그 아래 스레드에 메일당 메시지 하나를 답니다(스레드를 열 수 없으면 채널에 이어 붙입니다). 2000자 분할이 메일 카드를 자르지 않습니다. UID 와 발신자 해시는 화면에서 빠졌습니다.
- 메일에 답하면 회신 초안 — 메일 메시지에 소유자가 답글을 달면 그 메일의 회신 초안이 만들어지고 기존 회신 승인 카드 경로로 올라갑니다. 소유자가 아닌 사람의 답글과 같은 메일에 대한 두 번째 초안은 거부됩니다. 머리글은 더 이상 채팅 확인을 요청하지 않습니다.
사용자에게 보이는 변화
- 다이제스트 스레드에서 메일 하나하나를 따로 읽고, 답하고 싶은 메일에 바로 답글을 달면 됩니다.
깨지는 변경 · 운영자 할 일
- 없음. 이미 올라간 옛 다이제스트 메시지에 단 답글은 회신 초안을 만들지 않습니다(새 다이제스트부터 적용).
포함된 PR (v1.16.0 이후)
- #7 feat(mail): readable digest, one message per mail in a thread, reply to a mail to draft
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.16.0 — 승인 경로 완결 · Obsidian 노트 저장 승인 카드 · 공개 우선 문서
공개 우선 개발로 넘어온 뒤 두 번째 릴리스입니다. 승인 없이 끝나던 Obsidian 노트 저장에 표준 승인 카드가 생겼고, 승인 카드 없는 "채팅에 ✅ 눌러 주세요" 답장을 에이전트가 더는 보내지 않습니다.
바뀐 것
- Obsidian 노트 저장 승인 카드 — 경로와 본문을 받은 노트 저장에 카드를 올리는 명령이 없어, 에이전트가 자기 채팅 메시지에 ✅ 를 요청했고 그 ✅ 는 아무것도 실행하지 않았습니다. 이제
python3 -m automation.obsidian_write request가 PARA 경로를 검증하고 본문을 동결한 뒤 표준 승인 카드 하나를 올리며, 새 no-agent cronobsidian-note-watch가 카드의 ✅ 를 보고 노트를 쓰고 push 한 뒤 다시 읽은 영수증을 같은 스레드에 남깁니다. - 승인 경로 완결 규칙 — 게이트 대상 외부효과마다 카드 생산자 · ✅ 워처 · 시험이 한 벌로 있어야 하고(
test_gated_effect_paths_conformance), 승인 카드 링크 없이 ✅ 를 요청하는 답장은 게이트웨이가 "표준 승인 경로를 거치지 않았다"는 안내로 바꿉니다. - 문서 — 규칙·매뉴얼이 공개 저장소(
orientpine/cytoplasm)를 개발 정본으로 설명합니다. 스킬 문서는 텍스트 fallback(실행 <id>)을 먼저 제안하지 않고 승인 카드만 인용합니다.
사용자에게 보이는 변화
- 노트 저장을 부탁하면 "#agent-chat 요청별 스레드에 승인 카드" 가 올라오고, ✅ 한 번으로 노트가 저장됩니다.
- 승인 카드가 없는 작업이면 에이전트가 ✅ 를 청하지 않고 "이 작업은 승인 경로가 없다" 고 알립니다.
깨지는 변경 · 운영자 할 일
- 깨지는 변경 없음. 새 cron
obsidian-note-watch는 배포 선언에 등록돼 릴리스 전량 반영이 함께 올립니다.
포함된 PR (v1.15.1 이후)
- #6 feat(approval): ledger and runtime guard so every gated effect has a card, watcher and test
- #5 feat(obsidian_write): standard approval card and watcher for note save requests
- #4 docs: public-first flow
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.15.1 — 공개 우선 개발 첫 릴리스
공개 우선 개발 전환 후 첫 릴리스입니다. 이 버전부터 서명 태그가 공개 저장소의 개발 커밋에 직접 붙습니다.
바뀐 것
- 세션 증거 링크 제외 —
.gitignore에/.omo·/docs/qa를 넣었습니다. 운영 자료는 비공개 저장소에 두고automation/ops_link.sh가 링크로 잇습니다. - 테스트 데이터 정리 — 공개 테스트에 남아 있던 실제 Discord id를 가짜 값으로 바꿨습니다.
- 링크 검사 —
docs/qa가 링크로 연결된 공개 체크아웃에서도 문서 링크 검사가 공개 트리 기준으로 돕니다.
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.15.0 — 제안서 엔진 공개 · 공개 누출 게이트
v1.14.9 이후의 공개 반출입니다. 이번 릴리스부터 공개 저장소에서 직접 개발할 준비를 갖춥니다.
바뀐 것
- 제안서 HWPX 렌더 엔진 공개 — 그동안 공개 반출에서 빠져 있던
skills/proposal/engine/과 그 테스트가 함께 실립니다. 시드 양식은 단락 위치를 유지한 합성 예시로 바꿨습니다(파일명resource/R&D 연구계획서 양식.hwpx). - 공개 누출 게이트
automation/public_gate.py— 금지 경로(.omo·docs/qa), 설치 토폴로지, 비공개 금칙어(추가된 줄·커밋 메시지·PR 본문)를 커밋·push·PR 시점에 검사합니다. 찾은 값은 출력하지 않습니다.automation/ops_link.sh가 공개 체크아웃에 훅(pre-commit·commit-msg·pre-push)을 설치하고,automation/local_ci.sh의public-gate단계와 CIleak-guard잡(고정 버전 gitleaks·카나리아)이 같은 검사를 돕니다. - 수리 자동화 — 수리 브랜치는 push 직전에 같은 누출 게이트를 통과해야 합니다.
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.14.9 — 릴리스 수렴 사각지대 해소 · peer 서명 증명 정비 · doctor 사전 경보
v1.14.0 이후 private 릴리스 v1.14.1~v1.14.9를 한데 모은 공개 반출입니다.
바뀐 것
- 릴리스 수렴 사각지대 해소 — 배포 선언 v2(런타임 트리·빌드 산출물·cron 등록·게이트웨이 드롭인)를 릴리스 판정이 노드에서 직접 관측하고 소유 배포기로 수렴합니다. 영수증 v2에는 보류 항목과 남은 소유자 조치가 실립니다. 계정 홈에 쓰는 경로는 원자적 전송·트리 교체·cron 수렴 세 가지로 묶였습니다.
- peer attestation 서명 모드 정비 — 승인 채널 핀이 없는 설치에서도 게이트가 바인딩한 채널로 서명합니다. signed 모드 peer는 승인 채널에
[skill-attest]답글을 쓰지 않습니다. 기존 discord 설치를 signed로 옮기는 절차는 설치 가이드 §3.1에 있습니다. - doctor·헬스체크 — 주 모델을 바꾼 뒤 건너뛴 정기 작업과 cron이 요구하는 환경값 누락을 첫 실패 전에 알립니다. agent-chat 무멘션 응답 채널이 빠지면 알립니다.
- 인터롭 — 허용된 대리 봇이 옮겨 쓴 소유자 요청은 원문을 확인한 뒤에만 받습니다(첨부 포함).
- 기관메일 — 로그인 페이지 열기 시간 초과와 목록 행 미렌더링에도 동기화를 이어 갑니다. 큰 받은메일함도 제한 시간 안에 끝납니다.
- 모델 폴백 — 자식 프로세스 PATH에 계정
~/.local/bin을 넣어 폴백 CLI를 찾습니다.
업데이트 신뢰키
지문: SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA (update-trust@autophagy, ED25519)
첨부된 update-trust.pub의 지문을 설치기가 아닌 경로로 이 값과 대조하세요.
v1.14.0 — 제안서 그림·캡션이 본문을 덮지 않는다 · 평가 감점 사유를 렌더가 먼저 찾는다
이번 릴리스에 담긴 것 (v1.13.0 이후)
제안서(proposal) 스킬만 바뀌었습니다. HWPX 렌더 엔진(skills/proposal/engine/)은 공개 배포본에 포함되지 않으므로, 공개 트리에서 달라진 파일은 스킬 안내(skills/proposal/SKILL.md, v2.3.3)와 문서입니다.
그림·캡션이 본문을 덮지 않는다
- 그림을 쪽 안에 떠 있는 개체 대신 글자처럼 취급하는 한 줄로 넣습니다. 앵커 아래 공간이 모자랄 때 뷰어가 그림을 끌어올려 앞 본문을 덮던 문제가 사라집니다. 쪽 끝에 들어가지 않는 그림은 다음 쪽으로 넘어가며, 앞 쪽 하단이 빌 수 있습니다.
- 캡션은 그림 바로 다음의 캡션 문단이 되고 그림 문단과 같은 쪽에 붙습니다. 줄 배치 정보가 없는 문서에서 캡션이 다음 문장 위에 그려지던 겹침이 없어집니다.
figures.json캡션은 번호 없는 설명만 씁니다. 렌더러가그림 N.을 붙이고, 이미 붙어 오면 걷어 내그림 N. 그림 N.중복을 막습니다.- 시각 검토(
visual-review)는 브라우저 조판이라 그림·캡션 겹침을 보여 주지 못한다는 점을 안내에 적었습니다.
평가 감점 사유를 렌더가 먼저 찾는다 — quality.json
render가 최종 본문·계획·표지를 결정적으로 읽어out/proposal.hwpx.quality.json에 감점 사유를 남기고rubric_findings건수를 출력합니다. 본문은 고치지 않고 알리기만 합니다.KPI_VALUE_DRIFT: 한 지표에 기준값이 둘KPI_PROTOCOL_MISSING: 측정 절차에 반복 시험 횟수·산정식이 없음KPI_RESTATED·NUMBER_RESTATED·SCHEDULE_RESTATED: 같은 목표·수치·일정이 여러 절이나 표지에 되풀이됨TERM_VARIANT: 비표준 외래어 표기
- 코드별 조치(
inputs/PLAN.md의 기준값 하나·반복 횟수·산정식, 표지 반복 줄이기)는SKILL.md「평가 감점 점검」에 있습니다. 문구를 손으로 고치지 않고 입력을 고쳐compose·render를 다시 돌립니다. - 렌더가 스스로 고치는 것: 근거 인용 밖의 생성 본문·성과지표·키워드·표지 표기를 표준 외래어로 맞추고, 성과지표 표 머리행을
성과지표 | 현 수준 → 목표 (가중치) | 측정 방법 · 시험 환경 · 설정 근거로 씁니다. - 작성 지시가 기준값 하나·표기 통일, 절마다 수치·일정을 둘 자리, 측정 절차(반복 횟수·산정식)를 요구합니다.
운영 안내
- 배포된 스킬 파일(
/srv/autophagy-skills/live/proposal/…)은 root 소유 읽기 전용입니다. 문서나 엔진이 실제 동작과 다르면 파일을 고치지 말고 소유자에게 보고하세요. 수정은 저장소 커밋과 릴리스로만 반영됩니다.
업데이트 신뢰키 지문 (대역외 대조용)
SHA256:0imCAjLaEFCB8oNX05/7mHFQAZsL722KIEZsVD5yvrA
이 릴리스에 첨부된 update-trust.pub 의 지문이 위 값과 같은지 설치기가 아닌 경로로 대조한 뒤 --expect-update-trust-fingerprint 로 넘겨 설치하세요.
운영자 조치
- 없습니다. 설정·상태 스키마 변경이 없는 기능 추가(MINOR)입니다.