feat: v2.2.194 — Post-gen Term Validator (결정론적 글로서리 검증)
v2.2.192 Terminology Dictionary 가 *instructional* 지시 (LLM 에게 표준 표기 사용 권유) 였다면, 이번엔 *deterministic* 검증 — LLM 이 지시를 안 따랐을 때 결정론적 정규식 스캔. 신규 모듈: src/agent/termValidator.ts - parseGlossary() — .astra/glossary.md 정규식 파싱 (mtime 캐시) Pattern 1: **Canonical** (X: typo1, typo2, ...) — typo 등장 시 "→ Canonical 권장" Pattern 2: H2/H3 "금지/비추/forbidden/avoid/don't" 섹션의 - ❌ "phrase" - validateTermUsage() — 정규식 스캔 + 발견 횟수 - formatTermValidatorFooter() — markdown 한 줄 footer False-positive 필터: - 한글 1음절·영문 1자·공백 포함 토큰 제외 - 영문 단어 경계 매치, 한글 substring Wiring: - agent.ts _maybeRunTermValidator — Self-Check 직후, swallow 패턴 - /glossary reload — Term Validator 캐시도 함께 비움 신규 설정: g1nation.termValidatorEnabled (기본 true) Footer 누적: - v2.2.191 🔍 Self-check (LLM 호출, opt-in) - v2.2.194 🔤 Term validator (정규식, on by default) 시너지: Terminology Dictionary(instructional, 작성 중) + Term Validator(deterministic, 작성 후) → 사용자가 .astra/glossary.md 한 곳만 관리하면 2단 자동 동작. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"generatedAt": "2026-05-29T06:58:50.872Z",
|
||||
"generatedAt": "2026-05-29T07:30:42.949Z",
|
||||
"files": {
|
||||
"src/agent/actions/brainOps.ts": {
|
||||
"mtimeMs": 1779764602582.9768,
|
||||
@@ -316,10 +316,17 @@
|
||||
"src/agent"
|
||||
]
|
||||
},
|
||||
"src/agent/termValidator.ts": {
|
||||
"mtimeMs": 1780039129011.7288,
|
||||
"size": 8675,
|
||||
"lines": 221,
|
||||
"role": "Post-generation Term Validator — 답변 완료 후 정규식/사전 기반 결정론적 스캔. v2.2.192 의 Terminology Dictionary 가 instructional (LLM 에게 표준 표기 사용 지시) 이면, 이건 deterministic — LLM 이 지시를 안 따랐을 때 catch. Glossary 파싱 — 두 패턴 인식",
|
||||
"imports": []
|
||||
},
|
||||
"src/agent.ts": {
|
||||
"mtimeMs": 1780033640914.1235,
|
||||
"size": 85839,
|
||||
"lines": 1568,
|
||||
"mtimeMs": 1780039163639.0967,
|
||||
"size": 87154,
|
||||
"lines": 1589,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -391,6 +398,7 @@
|
||||
"src/agent/handlePrompt/computeBudgetedRequest",
|
||||
"src/agent/handlePrompt/processFinalAnswer",
|
||||
"src/agent/postHocSelfCheck",
|
||||
"src/agent/termValidator",
|
||||
"src/agent/handlePrompt/applyAutoContinuation",
|
||||
"src/features/approval/approvalQueue",
|
||||
"src/features/providers",
|
||||
@@ -433,9 +441,9 @@
|
||||
]
|
||||
},
|
||||
"src/config.ts": {
|
||||
"mtimeMs": 1780033618147.1584,
|
||||
"size": 30668,
|
||||
"lines": 550,
|
||||
"mtimeMs": 1780039183821.263,
|
||||
"size": 31114,
|
||||
"lines": 557,
|
||||
"role": "",
|
||||
"imports": []
|
||||
},
|
||||
@@ -1158,9 +1166,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"src/features/datacollect/slashRouter.ts": {
|
||||
"mtimeMs": 1780035781878.5417,
|
||||
"size": 226019,
|
||||
"lines": 4090,
|
||||
"mtimeMs": 1780039211177.6035,
|
||||
"size": 226165,
|
||||
"lines": 4096,
|
||||
"role": "",
|
||||
"imports": [
|
||||
"src/utils",
|
||||
@@ -1170,6 +1178,7 @@
|
||||
"src/memory",
|
||||
"src/config",
|
||||
"src/retrieval/terminologyBlock",
|
||||
"src/agent/termValidator",
|
||||
"src/features/setup/datacollectSetup",
|
||||
"src/features/datacollect/prompts/synthesisPrompt",
|
||||
"src/features/datacollect/prompts/youtubePrompts",
|
||||
@@ -3348,7 +3357,7 @@
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/chronicle.config.json": {
|
||||
"mtimeMs": 1780037924615.7922,
|
||||
"mtimeMs": 1780039836702.8801,
|
||||
"size": 371,
|
||||
"lines": 11,
|
||||
"role": "JSON configuration",
|
||||
@@ -3550,6 +3559,13 @@
|
||||
"role": "ADR: 질문이 있어, 내가 당근이라는 중고 거래 사이트에서 8TB HDD를 구매했어. 안전거래 (Escrow)를 사용했어. 일단 물건을 어제 받았고, ...",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/decisions/ADR-0029-여전히-오타가-있어-그러고-어색한-답변도-있네-오타-및-문맥-수정-사항-s-m-a-t-s-m-a-r-t-하드.md": {
|
||||
"mtimeMs": 1780038664272.424,
|
||||
"size": 2211,
|
||||
"lines": 19,
|
||||
"role": "ADR: 여전히 오타가 있어. 그러고 어색한 답변도 있네. 오타 및 문맥 수정 사항 S.M.A.T -> S.M.A.R.T: 하드디스크의 자가 진단 기능을...",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/development/2026-05-02_answer-format-readability-tuning.md": {
|
||||
"mtimeMs": 1778028987330.4185,
|
||||
"size": 1564,
|
||||
@@ -3837,6 +3853,13 @@
|
||||
"role": "Discussion: E:\\Wiki\\connectai git에 커밋하고 푸쉬해줘.",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/discussions/2026-05-29_진행해.md": {
|
||||
"mtimeMs": 1780039836692.6577,
|
||||
"size": 892,
|
||||
"lines": 16,
|
||||
"role": "Discussion: 진행해",
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/planning/2026-05-02_project-chronicle-guard.md": {
|
||||
"mtimeMs": 1778028987339.2349,
|
||||
"size": 3004,
|
||||
@@ -3887,9 +3910,9 @@
|
||||
"imports": []
|
||||
},
|
||||
"docs/records/ConnectAI/timeline.md": {
|
||||
"mtimeMs": 1780037924607.6199,
|
||||
"size": 14606,
|
||||
"lines": 227,
|
||||
"mtimeMs": 1780039836694.6646,
|
||||
"size": 14881,
|
||||
"lines": 233,
|
||||
"role": "Project Timeline",
|
||||
"imports": []
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user