agent-safety-oss 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -194
- package/README.md +163 -388
- package/build/capability-registry.js +2 -2
- package/build/capability-registry.js.map +1 -1
- package/build/cli.js +12 -2
- package/build/cli.js.map +1 -1
- package/build/lib/api-client.js +1 -1
- package/build/lib/api-client.js.map +1 -1
- package/build/lib/article-iri-map.d.ts.map +1 -1
- package/build/lib/article-iri-map.js +56 -8
- package/build/lib/article-iri-map.js.map +1 -1
- package/build/lib/graph-nodes-loader.js +2 -2
- package/build/lib/graph-nodes-loader.js.map +1 -1
- package/build/lib/input-validator.js +1 -1
- package/build/lib/input-validator.js.map +1 -1
- package/build/lib/law-body-extractor.js +3 -3
- package/build/lib/law-body-extractor.js.map +1 -1
- package/build/lib/safety-laws-loader.d.ts +1 -0
- package/build/lib/safety-laws-loader.d.ts.map +1 -1
- package/build/lib/safety-laws-loader.js +48 -15
- package/build/lib/safety-laws-loader.js.map +1 -1
- package/build/lib/site-profile.js +1 -1
- package/build/lib/site-profile.js.map +1 -1
- package/build/ontology/graph/nodes/activities/chemical_handling.jsonld +1 -1
- package/build/ontology/graph/nodes/activities/contractor_management.jsonld +1 -1
- package/build/ontology/graph/nodes/activities/hazardous_chemical_work.jsonld +1 -1
- package/build/ontology/graph/nodes/applicabilities/hazard_factor_exposed.jsonld +1 -1
- package/build/ontology/graph/nodes/penalties//354/202/260/354/225/210/353/262/225-/302/247167.jsonld +1 -1
- package/build/ontology/graph/nodes/sources/msds.jsonld +1 -1
- package/build/ontology/safety-laws//352/261/264/354/204/244/352/270/260/354/210/240/354/247/204/355/235/245/353/262/225-/354/213/234/355/226/211/352/267/234/354/271/231.md +45 -0
- package/build/ontology/safety-laws//352/261/264/354/204/244/352/270/260/354/210/240/354/247/204/355/235/245/353/262/225-/354/213/234/355/226/211/353/240/271.md +40 -0
- package/build/ontology/safety-laws//352/261/264/354/204/244/352/270/260/354/210/240/354/247/204/355/235/245/353/262/225.md +46 -0
- package/build/ontology/safety-laws//354/202/260/354/227/205/354/225/210/354/240/204/353/263/264/352/261/264/353/262/225.md +35 -3
- package/build/ontology/skeleton/skeleton.jsonld +8 -8
- package/build/tool-registry.js +3 -3
- package/build/tool-registry.js.map +1 -1
- package/build/tools/analyze-work-context.js +2 -2
- package/build/tools/analyze-work-context.js.map +1 -1
- package/build/tools/assemble-doc-context.d.ts.map +1 -1
- package/build/tools/assemble-doc-context.js +4 -1
- package/build/tools/assemble-doc-context.js.map +1 -1
- package/build/tools/generate-safety-document.d.ts.map +1 -1
- package/build/tools/generate-safety-document.js +106 -18
- package/build/tools/generate-safety-document.js.map +1 -1
- package/build/tools/list-core-safety-laws.js +1 -1
- package/build/tools/list-core-safety-laws.js.map +1 -1
- package/build/tools/preview-review.js +2 -2
- package/build/tools/preview-review.js.map +1 -1
- package/build/tools/query-delegation-chain.js +2 -2
- package/build/tools/query-delegation-chain.js.map +1 -1
- package/build/tools/query-legal-basis.js +1 -1
- package/build/tools/query-legal-basis.js.map +1 -1
- package/build/tools/render-a2ui-form.js +20 -20
- package/build/tools/render-a2ui-form.js.map +1 -1
- package/build/tools/request-field-help.js +2 -2
- package/build/tools/request-field-help.js.map +1 -1
- package/build/tools/review-safety-document.d.ts.map +1 -1
- package/build/tools/review-safety-document.js +81 -95
- package/build/tools/review-safety-document.js.map +1 -1
- package/build/tools/suggest-controls-for-hazard.js +2 -2
- package/build/tools/suggest-controls-for-hazard.js.map +1 -1
- package/build/tools/verify-safety-basis.d.ts.map +1 -1
- package/build/tools/verify-safety-basis.js +86 -3
- package/build/tools/verify-safety-basis.js.map +1 -1
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/build/viewer.d.ts +6 -0
- package/build/viewer.d.ts.map +1 -0
- package/build/viewer.js +1949 -0
- package/build/viewer.js.map +1 -0
- package/docs/ARCHITECTURE.md +89 -92
- package/docs/DATA_SOURCES.md +34 -1
- package/docs/IDENTITY.md +2 -2
- package/docs/INVENTORY.md +8 -6
- package/docs/JSONLD-AUTHORING-GUIDE.md +2 -2
- package/docs/OPERATIONAL-ONTOLOGY.md +1 -1
- package/docs/SETUP_CLAUDE_DESKTOP.md +4 -4
- package/docs/SETUP_CODEX.md +1 -1
- package/docs/assets/viewer-form.png +0 -0
- package/examples/README.md +6 -2
- package/package.json +6 -5
- package/README-EN.md +0 -220
package/CHANGELOG.md
CHANGED
|
@@ -5,240 +5,97 @@ All notable changes to `agent-safety-oss` are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [1.
|
|
9
|
-
|
|
10
|
-
**🎯 양방향 온톨로지 그래프 통합 — 실무 가용 수준 달성**. 사용자 본질 기획 ("트리 → 그래프 → LLM 도메인 전문성 자동 활용") 의 결정적 진전.
|
|
11
|
-
|
|
12
|
-
### Added — 3-단계 양방향 그래프 enrichment (ADR 004)
|
|
13
|
-
|
|
14
|
-
- **Stage 1** `scripts/etl/enrich-guide-legal-edges.ts` — 1,039 KOSHA Guide 본문 전수 정규식 파싱 → art:* IRI 매핑 → `legalBasis` edge 자동 박제. **+1,550 신규 edge** (legalBasis 약 400 → 1,967). dangling 0 (가지 조문 29건 skip — audit:strict 회귀 차단).
|
|
15
|
-
- **Stage 2** `scripts/etl/enrich-article-reverse-edges.ts` — Stage 1 결과 역방향 인덱싱 → 각 art:* 노드의 `legalBasisOf` edge 박제. **+1,550 신규 edge** / 법령 조문 → 가이드 발견 가능 비율 **0% → 29.6%** (387/1,306).
|
|
16
|
-
- **Stage 3** `scripts/etl/enrich-document-guidedby.ts` — 법정문서 45개 (guidedBy 미보유) ↔ KOSHA Guide 자동 매핑. legalBasis traversal (의미적 정확성) + docId 키워드 fallback. **+131 신규 guidedBy edge** / 법정문서 guidedBy 보유율 **53% → 100%** (51/96 → 96/96).
|
|
17
|
-
- **Stage 4** `src/tools/assemble-doc-context.ts` 강화 — `koshaGuides` 결과 필드 신설. docNode.guidedBy traversal → 각 가이드 메타 (guideNo / title / category / bodyAvailable) 자동 노출. LLM 이 자연어 요청만으로 적용 가이드 즉시 발견.
|
|
18
|
-
- **ADR** `decisions/004-bidirectional-graph-enrichment.md` — 결정/대안/결과 박제.
|
|
19
|
-
|
|
20
|
-
### Verification — 시나리오별 KOSHA Guide 자동 발견 (assemble_doc_context 호출)
|
|
21
|
-
|
|
22
|
-
| 시나리오 (사용자 자연어 요청 매핑) | 강화 전 | 강화 후 |
|
|
23
|
-
|---|:---:|:---:|
|
|
24
|
-
| daily_tbm (오늘 TBM 만들어줘) | 0 | **5** |
|
|
25
|
-
| ad_hoc_risk_assessment (수시 위험성평가) | 0 | **14** |
|
|
26
|
-
| industrial_accident_report (산재보고) | 0 | **4** |
|
|
27
|
-
| ppe_register (보호구 대장) | 0 | **5** |
|
|
28
|
-
| monthly_education_log (월간 교육) | 0 | **5** |
|
|
29
|
-
|
|
30
|
-
- 그래프 총 엣지: 29,730 → **32,961** (+3,231 신규 의미 edge)
|
|
31
|
-
- audit:strict / verify-graph: ✅ PASS (dangling 0, DAG cycle 0, critical 누락 0)
|
|
32
|
-
- mcp:test:smoke 22/22 PASS, mcp:test:graph reasoning/consistency/effect PASS
|
|
33
|
-
- docs:check 16개 문서 정합 (자동 marker 갱신)
|
|
34
|
-
|
|
35
|
-
### Impact (사용자 본질 기획 달성)
|
|
8
|
+
## [1.6.1] — 2026-06-10
|
|
36
9
|
|
|
37
|
-
|
|
38
|
-
- **LLM 환각 차단 강화** — 그래프 SSoT 에서 가이드 IRI 인용 → 임의 가이드명 생성 차단.
|
|
39
|
-
- **트리 → 그래프 변환 본질 효과 실현** — LLM 이 도메인 전문성을 그래프 traversal 로 자동 활용.
|
|
10
|
+
문서를 처음 보는 분 기준으로 다시 정리하고, 도구가 표시하는 버전 오류를 바로잡았습니다.
|
|
40
11
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## [1.4.2] — 2026-05-23
|
|
44
|
-
|
|
45
|
-
`inspect` CLI 신설 (`doctor` 의 정식 이름) + KOSHA Guide 본문 전수 회복 (1,037 → 1,039) + ADR 003 Doc Drift Prevention (marker + sync-docs + docs:check + pre-commit).
|
|
12
|
+
### 수정
|
|
46
13
|
|
|
47
|
-
|
|
14
|
+
- 런타임이 표시하는 버전(`src/version.ts`)이 v1.5.0 으로 남아 있던 문제를 바로잡았습니다. MCP 서버 선언·CLI 배너·프로젝트 정보 조회가 이제 실제 패키지 버전을 표시합니다. 재발하지 않도록 release 전 자동 검사에 버전 일치 항목을 추가했습니다.
|
|
48
15
|
|
|
49
|
-
|
|
16
|
+
### 개선
|
|
50
17
|
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
- `.githooks/pre-commit` (husky 미사용, native git hook + `prepare` script 가 `core.hooksPath` 자동 설정)
|
|
55
|
-
- `.github/workflows/ci.yml` CI step 추가
|
|
56
|
-
- `npm test` 와 `prepublishOnly` 에 포함
|
|
57
|
-
- **ADR**: `decisions/003-doc-drift-prevention.md` — alternatives 4종 비교 후 marker 방식 채택 사유 박제.
|
|
58
|
-
- **marker 키 13종**: `KOSHA_BODY`/`KOSHA_META`/`KOSHA_FAILURES` · `TOOLS_TOTAL`/`KEYLESS`/`KEYREQ`/`PLACEHOLDER`/`ACTIVE` · `LAW_LAST_SYNC`/`LAW_ARTICLES` · `GRAPH_TOTAL`/`DOCUMENTS_TOTAL` · `VERSION`.
|
|
18
|
+
- README 를 처음 보는 분 기준으로 다시 정리했습니다 — 목차 추가, 여러 곳에 흩어져 있던 시작 방법·구성 요소 안내를 한 곳으로 통합, 브라우저 입력 폼 화면 캡처 추가.
|
|
19
|
+
- 공공 데이터 source 상세 매핑과 향후 추가 후보를 [docs/DATA_SOURCES.md](./docs/DATA_SOURCES.md) 로 정리했습니다.
|
|
20
|
+
- AI 코딩 도구(Claude Code·Codex CLI·Cursor 등) 공통 안내 파일 `AGENTS.md` 를 추가했습니다 — 외부 기여자가 어떤 도구를 쓰든 같은 규칙을 안내받습니다.
|
|
59
21
|
|
|
60
|
-
|
|
22
|
+
## [1.6.0] — 2026-05-30
|
|
61
23
|
|
|
62
|
-
|
|
63
|
-
- **KOSHA Guide 본문 ↔ 메타 차이 자동 검증** — `inspect` 와 `INVENTORY.md` 가 `src/ontology/graph/nodes/documents/guides/` (메타 1,039) 와 `src/ontology/kosha-guides/` (본문 1,039) 의 차이를 자동 검출. v1.4.2 에서 본문 = 메타 일치 회복.
|
|
64
|
-
- **`scripts/audit/audit-kosha-guide-gaps.ts`** — KOSHA Guide 카테고리별 번호 시퀀스 갭 자동 audit. KOSHA 발행 패턴 진단용.
|
|
24
|
+
브라우저 입력 폼을 명령어 한 줄로 띄울 수 있습니다 — 설치도 빌드도 필요 없습니다.
|
|
65
25
|
|
|
66
|
-
###
|
|
26
|
+
### 추가
|
|
67
27
|
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
- A-142-2018: fileOrdrNo=4 → PDF 506KB → kordoc 변환 → 528 line MD
|
|
71
|
-
- T-25-2021: fileOrdrNo=4 → HWP 26KB (KOSHA portal 측 PDF 자체가 0 bytes) → kordoc HWP 변환 → 261 line MD
|
|
72
|
-
- `_FAILURES.json` 풍부화 + history 박제 (failures 0건). v1.4.1 시점 등록 사유와 v1.4.2 해소 사유 모두 보존.
|
|
28
|
+
- **브라우저 입력 폼을 `npx` 한 줄로** — `npx -y agent-safety-oss viewer` 만 입력하면 안전문서 입력 폼이 브라우저에 바로 열립니다. 이전엔 소스를 내려받아 빌드해야 했지만, 이제 Node.js 만 있으면 됩니다. AI 비서(Claude·Codex)나 명령어가 익숙하지 않은 안전관리자·현장소장을 위한 가장 쉬운 경로입니다.
|
|
29
|
+
- **자동 브라우저 열기가 Windows·Linux 에서도 동작** — 폼 화면이 운영체제에 맞게 자동으로 열립니다 (이전 macOS 전용 → 전 OS 지원).
|
|
73
30
|
|
|
74
|
-
###
|
|
31
|
+
### 개선
|
|
75
32
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
| README.md "키 없이 동작 81개" | 81 | 85 (TOOLS_KEYLESS) |
|
|
79
|
-
| README.md "패키지 버전" | 1.4.1 | 1.4.2 (VERSION) |
|
|
80
|
-
| README-EN.md "Package version" | 1.4.1 | 1.4.2 |
|
|
81
|
-
| README-EN.md "API key for 6 KOSHA Live tools" | 6 | 7 (TOOLS_KEYREQ) |
|
|
82
|
-
| SECURITY.md "현재 안정판" | 1.4.1 | 1.4.2 |
|
|
83
|
-
| SECURITY.md "KOSHA Guide 메타 (1,037 노드)" | 1,037 | 1,039 (메타 표현이 본문 카운트로 잘못 박힘) |
|
|
84
|
-
| OPERATIONAL-ONTOLOGY.md "release" | v1.4.1 · 92 tools · 1,037 | 모두 marker 화 |
|
|
85
|
-
| ARCHITECTURE.md "documents/guides/" | 1,037 (메타인데 본문 카운트) | 1,039 (메타) + 1,037 (본문 — v1.4.2 회복 후 1,039 자동 갱신) 분리 |
|
|
33
|
+
- 포트가 이미 사용 중일 때 다른 포트로 실행하는 방법을 안내합니다.
|
|
34
|
+
- Claude Desktop·Codex 설정 가이드의 옛 버전 표기를 정리했습니다.
|
|
86
35
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
### Fixed — 외부 공개 기준 정밀 audit (README/examples/docs 전수)
|
|
90
|
-
|
|
91
|
-
추가 발견된 stale + 정정:
|
|
92
|
-
|
|
93
|
-
| 위치 | 기존 | 정정 |
|
|
94
|
-
|---|---|---|
|
|
95
|
-
| README.md "현재 상태: v1.4.1 npm publish" | 1.4.1 (두 곳) | `VERSION` marker (현재값 자동 갱신) |
|
|
96
|
-
| README.md "12+ source, 11개 도구" | 11 | 13 source (실측 표 row 수) |
|
|
97
|
-
| README.md "운영 그래프 3,336 노드 / 29,642 엣지" | stale | 1단계 2,212 + 재귀 3,369 (KOSHA 1,039 포함) / 엣지 약 29,730 (audit 와 동일 산출) |
|
|
98
|
-
| README.md "Control 45 / WorkActivity 41 / Hazard 38" | Control 45 stale | 50 정정 + marker |
|
|
99
|
-
| README.md "들어 있는 것" 섹션 8건 카운트 | 일부 stale | 모두 marker 화 |
|
|
100
|
-
| README-EN.md "Current Status" 표 5건 | 일부 stale | DOCID_MASTER/FORMS_*/GRAPH_*/CONTROLS marker |
|
|
101
|
-
| IDENTITY.md "89개 MCP 도구" | 89 | `TOOLS_TOTAL` marker (당시 92) |
|
|
102
|
-
| IDENTITY.md "Control 45개" | 45 | 50 marker |
|
|
103
|
-
| IDENTITY.md "운영 그래프 3,336/29,642" | stale | 3,369 (재귀) / 29,730 marker |
|
|
104
|
-
| OPERATIONAL-ONTOLOGY.md "Full graph 3,336 / edges 29,642" | stale | 3,369 / 29,730 marker + 1단계 분리 명시 |
|
|
105
|
-
| ARCHITECTURE.md "132 formIds" | 하드코딩 | `FORMS_TOTAL` marker (당시 132) |
|
|
106
|
-
| **examples/generate-tbm.sh, mcp-list-tools.sh, search-laws.sh** | **`agent-safety-oss-mcp`** (stale binary — 외부 사용자 100% 실행 실패) | **`npx -y agent-safety-oss`** (글로벌 미설치 환경도 동작) |
|
|
107
|
-
| examples/README.md "89개 카탈로그 출력" | stale | "현재 수: docs/INVENTORY.md 참조 — 자동 산출" |
|
|
108
|
-
| examples/mcp-list-tools.sh "도구 70개" 주석 | stale | INVENTORY.md 참조 안내 |
|
|
36
|
+
## [1.5.0] — 2026-05-24
|
|
109
37
|
|
|
110
|
-
|
|
38
|
+
안전 문서를 작성하면 관련 KOSHA 가이드와 법령 조항이 자동으로 따라붙습니다 — 일일이 찾을 필요가 없습니다.
|
|
111
39
|
|
|
112
|
-
|
|
40
|
+
### 추가
|
|
113
41
|
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
- 법정문서: `DOCID_MASTER` (legal-duty-master.json documents 카운트)
|
|
117
|
-
- 양식: `FORMS_TOTAL` / `FORMS_HWP` / `FORMS_PDF` / `FORMS_XLSX` / `FORMS_MD`
|
|
118
|
-
- 법령: `LAW_BUNDLE_COUNT`
|
|
42
|
+
- **가이드·법령 자동 연결** — 문서(TBM·위험성평가·산업재해보고 등)를 작성하면 관련 KOSHA 안전 가이드와 법령 근거를 자동으로 찾아 붙여줍니다.
|
|
43
|
+
- **양식 자동 채움** — 문서 양식을 열면 관련 가이드·법령·위험요인·대책이 미리 채워진 상태로 시작합니다(빈 양식이 아니라).
|
|
119
44
|
|
|
120
|
-
|
|
45
|
+
### 개선
|
|
121
46
|
|
|
122
|
-
|
|
47
|
+
- **근거 없는 인용 차단 강화** — 가이드·법령은 내장 지식에서 가져오므로, 존재하지 않는 가이드명·조문을 지어내지 않습니다.
|
|
123
48
|
|
|
124
|
-
|
|
125
|
-
- TOOLS = CAPABILITY_REGISTRY = .jsonld = 92/92/92
|
|
126
|
-
- `npm run docs:check` PASS (9개 문서 정합, 0 drift)
|
|
127
|
-
- `npm run build` PASS (generate-inventory + sync-docs 통합)
|
|
128
|
-
- pre-commit hook 차단 동작 검증 (drift 시뮬레이션 → exit 1 → `docs:sync` 자동 정정)
|
|
129
|
-
- mcp:test:smoke 29/29 PASS
|
|
49
|
+
---
|
|
130
50
|
|
|
131
|
-
|
|
51
|
+
## [1.4.2] — 2026-05-23
|
|
132
52
|
|
|
133
|
-
|
|
134
|
-
- **KOSHA Guide 본문 ↔ 메타 차이 자동 검증** — `inspect` 와 `INVENTORY.md` 가 `src/ontology/graph/nodes/documents/guides/` (메타 1,039) 와 `src/ontology/kosha-guides/` (본문 1,037) 의 차이를 자동 검출하고 `_FAILURES.json` 과의 정합도 검증. drift 발생 시 ⚠️ 경고.
|
|
135
|
-
- **`_FAILURES.json` 풍부화** — 미수집 가이드 2건의 제목 · 카테고리 · KOSHA OneAPI 측 사유 · 사용자 우회 경로 (KOSHA 자료마당 직접 검색) 명시.
|
|
136
|
-
- **`scripts/audit/audit-kosha-guide-gaps.ts`** — KOSHA Guide 카테고리별 번호 시퀀스 갭 자동 audit. KOSHA 발행 패턴 진단용.
|
|
53
|
+
빠졌던 KOSHA 가이드 2건을 채우고, 문서·예제의 잘못된 명령어를 바로잡았습니다.
|
|
137
54
|
|
|
138
|
-
###
|
|
55
|
+
### 추가
|
|
139
56
|
|
|
140
|
-
-
|
|
141
|
-
- `_FAILURES.json` 의 "폐기 판정" 표현 정정 — 실제는 KOSHA OneAPI 측 PDF 응답 부재 (가이드 자체는 KOSHA 자료마당에 존재). 사용자가 직접 다운로드 가능한 경로 명시.
|
|
142
|
-
- 미수집 가이드의 실체 박제 — A-142-2018 "디에탄올아민에 대한 작업환경측정 분석 기술지침" · T-25-2021 "시험동물 조직 전처리 및 포매 지침".
|
|
57
|
+
- **`inspect` 명령** — 설치한 시스템이 제대로 동작하는지(번들된 가이드·법령·도구가 온전한지) 한 번에 점검합니다. 기존 `doctor` 명령도 계속 쓸 수 있습니다.
|
|
143
58
|
|
|
144
|
-
###
|
|
59
|
+
### 수정
|
|
145
60
|
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
61
|
+
- **빠졌던 KOSHA 가이드 2건 채움** — "디에탄올아민에 대한 작업환경측정 분석 기술지침", "시험동물 조직 전처리 및 포매 지침" 본문이 이제 포함됩니다.
|
|
62
|
+
- **예제 스크립트 실행 오류 수정** — 예제(TBM 생성·도구 목록·법령 검색)에 적힌 명령어가 옛 이름이라 그대로 실행하면 실패하던 문제를 바로잡았습니다.
|
|
63
|
+
- **문서 표기 정정** — 버전·항목 수 등 일부 문서의 오래된 표기를 실제 값으로 맞췄습니다.
|
|
149
64
|
|
|
150
65
|
## [1.4.1] — 2026-05-22
|
|
151
66
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
### Added
|
|
155
|
-
|
|
156
|
-
- **`docs/INVENTORY.md` 자동 생성** (`scripts/build/generate-inventory.ts`) — `npm run build` 시 TOOLS · capability · KOSHA Guide · 법령 조문 · 양식 · 그래프 노드 카운트를 코드/데이터에서 직접 산출. 수동 표기 drift 차단.
|
|
157
|
-
- **`doctor` CLI 명령** (`node build/cli.js doctor`) — 시스템 무결성 진단. 도구·Capability SSoT 정합 / 그래프 노드 / KOSHA Guide 추출 품질 / 법령 동기화 stale 경고 / 사용자 환경 (profile + API 키) 점검. `--json` 옵션.
|
|
158
|
-
- **KOSHA Guide 추출 품질 등급 자동 분류** — verified / partial / raw (빈 `<table>` 잔재 기준).
|
|
159
|
-
- **`SECURITY.md §6.1`** — AgentHQ 키 vs `DATA_GO_KR_KEY` 거버넌스 차이 비교표 + 라텔웍스 relay 운영 정책 4항 (영구 보관 X / 로그 redaction / 수익화 회수 없음 / 회수 사유 한정) 명시.
|
|
67
|
+
시스템 진단 기능을 추가하고, 번들된 법령 범위를 정확히 표기했습니다.
|
|
160
68
|
|
|
161
|
-
###
|
|
69
|
+
### 추가
|
|
162
70
|
|
|
163
|
-
-
|
|
164
|
-
- **법령 본문 표현 정확화** — `"안전관리 법령 8개 본문"` → `"8건 핵심 조문 발췌 (산안법 10조 / 시행령 3조 / 시행규칙 4조 / 기준규칙 10조 / 중처법 7조 / 중처법시행령 13조 / 위평고시 23조 전문 / 건진법 §62 영역 4조 — 합계 약 77조, 전체 법령 아님)"`. 산안법 175조 中 5.7% 만 수록임을 명시. 개별 `safety-laws/*.md` 헤더는 이미 정직 명시, 최상위 README/IDENTITY 만 정정.
|
|
165
|
-
- **라이선스 placeholder 도구 명시** — `search_sif_archive` / `list_construction_subtasks` 가 공공누리 변경금지 라이선스 준수용 의도된 placeholder 임을 INVENTORY 와 README 5초 진입 카드에 명시. **실질 활성 도구 90** (92 = 85 keyless + 7 키 필요 + 2 placeholder).
|
|
166
|
-
- **npm publish 상태 안내 갱신** — `README` / `README-EN` / `SETUP_CLAUDE_DESKTOP` 의 "publish 전 (E404)" / "not yet published" 표현 제거. publish 완료 상태 반영.
|
|
71
|
+
- **`doctor` 명령** — 설치한 시스템이 제대로 동작하는지(도구·번들 가이드·법령 동기화 상태·내 환경 설정) 점검합니다.
|
|
167
72
|
|
|
168
|
-
###
|
|
73
|
+
### 수정
|
|
169
74
|
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
- INVENTORY.md 자동 생성 (133 lines) — `npm run build` 시 자동
|
|
75
|
+
- **번들 법령 범위 정확화** — "법령 8개 본문" 표현을 "8개 법령의 핵심 조문 발췌"로 바로잡았습니다. 산업안전보건법 등의 전체 조문이 아니라 안전관리 실무에 필요한 핵심 조항만 발췌해 담았다는 점을 분명히 했습니다.
|
|
76
|
+
- **항목 수 표기 정정** — 번들된 KOSHA 가이드·도구 수 등 일부 문서의 오래된 표기를 실제 값으로 맞췄습니다.
|
|
77
|
+
- **설치 안내 갱신** — npm 공개 완료에 맞춰 "아직 공개 전" 같은 옛 안내를 제거했습니다.
|
|
174
78
|
|
|
175
79
|
## [1.4.0] — 2026-05-21
|
|
176
80
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
본 릴리스는 ADR 002 (Active Graph Authoring Loop) 도입과 ADR 001 (viewer 격상) 을 한 번에 묶고, 첫 publish 직후 발견된 사용자 onboarding 이슈 5건을 함께 해소한다.
|
|
180
|
-
|
|
181
|
-
### Added — Active Graph Authoring Loop (ADR 002)
|
|
182
|
-
|
|
183
|
-
**A2UI ↔ LLM ↔ Graph 의 능동 루프** 도입. 사용자 입력이 LLM 의 도구 체이닝을 trigger 하고, 결과가 `updateComponents` 로 폼에 동적 push 되는 작성 보조 패턴.
|
|
184
|
-
|
|
185
|
-
신규 MCP 도구 4종 (총 88 → 92):
|
|
186
|
-
- `request_field_help` — 필드 단위 동적 도움말 (inputGuide·examples·checkPoints + `_meta.writingGuide.fieldHints`/`commonMistakes`/`bestPractices` 결정론 조립). `currentValue` 가 있으면 추상명사·서명 누락 등 패턴 일치 경고.
|
|
187
|
-
- `suggest_controls_for_hazard` — 위험요인 입력 → ERIC-PP 위계 (제거·대체·공학·관리·PPE) 정렬 통제대책 추천 (`mitigatedBy` 그래프 traversal).
|
|
188
|
-
- `analyze_work_context` — 작업명·내용·조건 입력 → 위험·통제·법령·KOSHA Guide 종합 컨텍스트. `workConditions.depthM`/`heightM`/`confinedSpace` 등 조건 기반 §38·§42·§618 적용성 룰 자동 발동.
|
|
189
|
-
- `preview_review` — 작성 중 부분 검토 (`scope: all|required-only|hallucination-only`). 최종 `review_safety_document` 와 직교 — 가드레일 vs 결재 직전 검증.
|
|
190
|
-
|
|
191
|
-
`render_a2ui_form` 강화:
|
|
192
|
-
- info-card 에 그래프 컨텍스트 inline (hazards/controls/relatedDocs/legalArticles/koshaGuides)
|
|
193
|
-
- `_meta.writingGuide.commonMistakes`/`bestPractices` 를 신규 `guide-card` 로 노출
|
|
194
|
-
- 필드별 `checkPoints` + `fieldHints` 동시 표시 (라벨 정규화 후 양방향 substring 매칭)
|
|
195
|
-
- actions Row 에 6 액션 버튼 — analyze/controls/help/preview-review/assemble/submit
|
|
196
|
-
|
|
197
|
-
문서·인프라:
|
|
198
|
-
- `decisions/002-active-graph-authoring-loop.md` — ADR 박제
|
|
199
|
-
- `.specs/in-progress/2026-05-21-active-graph-authoring-loop.md` — EARS 요구사항·디자인·태스크
|
|
200
|
-
- `scripts/test/test-active-graph-authoring-loop.ts` — 통합 시나리오 (daily_tbm + work_plan_excavation + 그래프 SSoT 일관성) 25 checks PASS
|
|
201
|
-
|
|
202
|
-
### Added — viewer 격상 (ADR 001)
|
|
203
|
-
|
|
204
|
-
데모 위치에 있던 A2UI 폼 viewer 를 운영 자원으로 격상. 비-개발자 안전관리자가 MCP host (Claude Desktop / Codex / MCP Inspector) 없이도 브라우저에서 직접 사용 가능.
|
|
205
|
-
|
|
206
|
-
- 본문 생성 후 **MD 파일 다운로드** 버튼 (`{docId}-{YYYY-MM-DD}.md`) — 의존성 0 (Blob URL 만 사용)
|
|
207
|
-
- `decisions/001-a2ui-viewer-promotion.md` — ADR 표준 도입
|
|
208
|
-
- `.specs/` 디렉토리 — phase gate spec (`plans/` → `in-progress/` → `executed/`)
|
|
209
|
-
- `render_a2ui_form` 도구 description / nextActions 에 viewer 가 동급 A2UI 호환 클라이언트로 등재
|
|
210
|
-
|
|
211
|
-
### Added — CLI DX 강화 (Issue #4)
|
|
212
|
-
|
|
213
|
-
- `node build/cli.js tools --with-schema` — 각 도구의 `inputSchema` (properties · required · type · enum · description) JSON 출력
|
|
214
|
-
- `node build/cli.js tools describe <toolName>` — 단일 도구 상세 (인터랙티브 형식 + 호출 예시 자동 생성)
|
|
215
|
-
- `tools` 사람 가독 출력에 각 도구 **필수 필드 한 줄** 추가
|
|
216
|
-
- 의존성 0 유지 — `zod-to-json-schema` 미사용, `src/lib/schema-introspection.ts` 자체 변환
|
|
81
|
+
문서를 채워가는 동안 필요한 도움말·위험요인 대책·검토가 실시간으로 따라오고, MCP 프로그램 없이도 브라우저에서 바로 작성할 수 있습니다.
|
|
217
82
|
|
|
218
|
-
###
|
|
83
|
+
### 추가
|
|
219
84
|
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
- **Issue #5 lateral** — 같은 KST/UTC 회귀가 박혀 있던 **8곳 일괄 fix**. `src/lib/datetime-kst.ts` 공통 유틸 신설 (`kstToday`/`kstAddDays`/`kstDayDiff`/`parseKstDate`/`formatKstDate`/`kstIsoNow`). 적용처: `list_upcoming_duties` (asOf + 내일 fallback), `get_retention_status` (asOf), `generate_safety_document` (planDate fallback), `site-profile` (compileDate auto-fill), `input-validator` (TODAY 모듈 상수), `master-loader.computeNextDueDate` (compileDate + P{N}{D|M|Y} 산술), `trace-recorder` (활동 로그 일자), `local-storage.timestamp` (보관 timestamp 파일명). KST 새벽 0~9시 호출 시 "오늘"이 어제로 잘못 산정되던 회귀가 모든 시간 의존 도구에서 해소됨.
|
|
223
|
-
- **Issue #6** — enum/필드명 자연어 alias 미지원. `src/lib/input-aliases.ts` 의 `aliasedEnum` / `withFieldAliases` 헬퍼 도입. `severity: fatality|death|사망 → fatal`, `critical|major|중상 → serious`, `light|slight|경상 → minor` 영문·한국어 alias 지원. `field_safety_briefing` 도 `topic`/`workName`/`작업명` 등을 `workOrTopic` 으로 자동 정규화.
|
|
224
|
-
- **Issue #6 lateral** — 같은 패턴이 사용자 진입점 4곳에 추가 박힘 — 일괄 alias 확대. `INDUSTRY_ALIASES` (건설/건축/토목/제조/공장/서비스/기타 + 영문 변형) 가 `assess_my_obligations.industry` + `query_applicability.industry` 에 적용. `STAGE_ALIASES` (착공전/사전/시공중/진행/준공/완공 + before/during/after) 가 `get_construction_stage_duties.stage` 에 적용. `PERIOD_ALIASES` (주/주간/매주/월/월간/매월) 가 `generate_safety_report.period` + `list_safety_reports.period` 에 적용.
|
|
225
|
-
- **Issue #7** — `register_site`/`register_person`/`register_contractor` 응답 텍스트에 사업자등록번호·대표자명 평문 노출. `src/lib/pii-masking.ts` 신설 — 표시용 text 만 마스킹 (`***-**-67890` / `J*** D**`), `structuredContent` 는 평문 유지 (파일 저장·재호출용). `get_site_profile` 출력에도 일괄 적용. (※ `company-key-tools` 는 이미 자체 `reveal=true` 마스킹 메커니즘 보유 — lateral 점검 결과 추가 작업 불필요.)
|
|
226
|
-
- **결함 #1 (릴리즈 전 점검)** — `suggest_controls_for_hazard` 가 빈 문자열 / whitespace 입력에 silent fail (isError 미설정, 결과 없음). 명시적 거부 + `error: "empty_hazard"` + nextActions 안내.
|
|
227
|
-
- **결함 #2 (릴리즈 전 점검)** — `analyze_work_context` 가 도메인 외 입력 (서비스/제조/화학공정 등) 에도 docId 의 기본 hazard/control 을 반환해 사용자가 비-건설 작업에 건설 매핑을 적용할 위험. `domainBoundary` 시그널 신설 — `scope.json` excluded 키워드 감지 + `matchedActivities + matchedWorktypes` 모두 0 일 때 응답 상단에 ⚠️ 도메인 경계 안내 + `structuredContent.domainBoundary` 노출.
|
|
85
|
+
- **작성 중 실시간 보조** — 항목별 작성 도움말과 흔한 실수 안내, 위험요인을 넣으면 (제거·대체·공학적·관리적·보호구 순서로) 대책을 추천, 작업명·내용·조건을 넣으면 관련 위험·대책·법령·가이드를 한 번에 정리, 결재 전 문서를 미리 점검합니다.
|
|
86
|
+
- **브라우저에서 바로 작성** — Claude Desktop 같은 별도 프로그램 없이도 브라우저에서 안전 문서를 작성하고, 완성 본문을 파일(.md)로 내려받을 수 있습니다. (PDF로 바꾸는 방법도 안내에 추가)
|
|
228
87
|
|
|
229
|
-
###
|
|
230
|
-
- npm script `mcp:demo:viewer` → `mcp:viewer` 로 변경
|
|
231
|
-
- `a2ui-demo/` 폴더 제거 — JSONL 정적 시연 기능은 운영 viewer (`npm run mcp:viewer`) 로 통합
|
|
232
|
-
- `scripts/dev/demo-a2ui-viewer.ts` → `scripts/dev/viewer-server.ts` 로 리네임
|
|
88
|
+
### 수정
|
|
233
89
|
|
|
234
|
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
-
|
|
90
|
+
- **새벽 시간대 날짜 오류 수정** — 자정~오전 9시 사이에 쓰면 "오늘"이 어제로 잡혀 작성일·기한이 하루 어긋나던 문제를 모든 도구에서 바로잡았습니다(한국 시각 기준).
|
|
91
|
+
- **자연어로 입력 가능** — "사망/중상/경상", "건설/제조/서비스", "착공전/시공중/준공", "주간/월간" 같은 한국어(또는 영문) 표현을 그대로 입력해도 알아듣습니다.
|
|
92
|
+
- **개인정보 보호** — 현장·인원·협력사 등록 결과 화면에 사업자등록번호·대표자명이 그대로 보이던 것을 가려서 표시합니다(저장·재사용에는 원본 유지).
|
|
93
|
+
- **잘못된 입력 처리 개선** — 위험요인을 비워서 대책을 요청하면 조용히 빈 결과를 주던 문제를 바로잡았고, 건설 외 작업(서비스·화학공정 등)을 넣으면 "이 도구의 적용 범위 밖"이라고 안내합니다.
|
|
238
94
|
|
|
239
|
-
###
|
|
95
|
+
### 호환성 (Breaking)
|
|
240
96
|
|
|
241
|
-
|
|
97
|
+
- 브라우저 작성 화면 실행 명령이 `npm run mcp:demo:viewer` → `npm run mcp:viewer` 로 바뀌었습니다.
|
|
98
|
+
- 정적 시연용 `a2ui-demo/` 폴더는 제거되고, 그 기능은 위 브라우저 작성 화면으로 통합되었습니다.
|
|
242
99
|
|
|
243
100
|
## [1.3.1] — 2026-05-20
|
|
244
101
|
|