Maester v3.1 Verification Report
2026-05-08 22:50 KST | Claude Code Opus 4.6
1. 서비스 상태 (실제 출력)
| 서비스 | PID | 상태 | 메모리 | 가동시간 |
|---|---|---|---|---|
| maester-mcp :8766 | 600629 | active (running) | 40.3M | 47min+ |
| maester-api :8780 | 626852 | active (running) | 63.4M | 40min+ |
| openclaw-mcp :8765 | 614700 | active (running) | 41.4M | 44min+ |
| openclaw-gateway :18789 | 612165 | active (running) | 398.6M | 44min+ |
| maester-neo4j Docker | - | Up 53 min | - | 53min+ |
모든 포트 리스닝 확인: 8765, 8766, 8780, 18789, 7474, 7687
2. Neo4j 스키마 (실제 쿼리 결과)
Labels
| Label | Count |
|---|---|
| MaesterPerson | 139 |
| MaesterOrganization | 76 |
| MaesterConcept | 41 |
| MaesterProject | 38 |
| MaesterDocument | 27 |
| MaesterPlace | 22 |
| MaesterDeal | 14 |
| MaesterEvent | 1 |
총 358 nodes
Relationship Types
| Type | Count |
|---|---|
| RELATED_TO | 24 |
| PART_OF | 19 |
| WORKS_AT | 15 |
| ABOUT | 12 |
| DISCUSSED_IN | 12 |
| LEADS_TO | 9 |
| CONTACT_OF | 6 |
| INVOLVES | 3 |
| (17 more types) | ... |
총 126 edges
Indexes
9개 인덱스 생성 확인 (doc id/type/source/project/created_at/hash, person/project/concept name)
3. E2E 테스트 (실제 request/response)
Ingest
POST /api/maester/ingest
Authorization: Bearer mst-write-4p8m1n6v
Request: {source: "chatgpt", title: "Maester v3 아키텍처 확정: 개인용 Palantir Gotham/AIP", ...}
Response:
doc_id: decision_20260508_15efbf
content_hash: 1f604fe42eb9beaa
entities: {people: ["신우성"], projects: ["maester"], concepts: ["Neo4j", "그래프", "Supabase"]}
node_count: 6, edge_count: 5
Recall
POST /api/maester/recall
Authorization: Bearer mst-read-7f3k9x2w
Request: {query: "Maester 아키텍처 Palantir Neo4j", content_mode: "preview"}
Response:
answer_brief: "1개 관련 문서, 0개 관계를 찾았습니다."
nodes[0]:
id: decision_20260508_15efbf
title: "Maester v3 아키텍처 확정: 개인용 Palantir Gotham/AIP"
source: chatgpt
doc_url: https://ai.shinjadong.cloud/docs/decision_20260508_15efbf
content_md: (preview 5줄)
query_entities: ["Neo4j", "Maester", "아키텍처", "Palantir"]
Auto-Linking
두 번째 문서 "CCTV렌탈 CPC nginx LP 리다이렉트 배포" ingest 시:
-> "KW3 CPC 키워드 전략 확정" 자동 연결
-> 공유 엔티티 7개, 프로젝트 keeper-direct 일치
-> score: 0.7
4. 인증 (v3.1 신규)
| 토큰 | 권한 | 용도 |
|---|---|---|
| MAESTER_READ_TOKEN | recall, doc_get, search, graph, versions | ChatGPT Actions, 읽기 전용 |
| MAESTER_WRITE_TOKEN | ingest, doc_update, delete, restore | 정리 트리거, 내부 AI |
인증 테스트 결과
- 토큰 없이 recall -> 401 (차단) OK
- read 토큰으로 recall -> 200 (허용) OK
- read 토큰으로 ingest -> 403 (차단) OK
- write 토큰으로 ingest -> 200 (허용) OK
5. 외부 접근 관문 (v3.1 신규)
Public HTTPS via Tailscale Funnel
URL: https://kontology.tail8a76b2.ts.net
인증: Authorization: Bearer <token>
TLS: Tailscale 자동 인증서 (Let's Encrypt)
테스트 결과
- Public health check: OK (no auth)
- Public recall with read token: 2 nodes 반환 OK
- Public recall without token: 401 차단 OK
6. OpenAPI Spec (v3.1 신규)
파일: ~/projects/maester-agent/openapi/maester-actions.openapi.yaml
Read-only 4개 엔드포인트:
- POST /api/maester/recall
- GET /api/maester/docs/{doc_id}
- GET /api/maester/search
- GET /api/maester/graph
ChatGPT Custom GPT Actions 연결 준비 완료.
7. consciousness-bridge 복구
venv 재생성 완료. --status 정상 출력 확인.
8. 다음 작업 (v3.2)
| # | 작업 |
|---|---|
| 1 | ChatGPT Custom GPT 생성 + Actions 연결 (read-only) |
| 2 | 정리 트리거 -> maester_ingest 호출 코드화 |
| 3 | ai.shinjadong.cloud Object Explorer (EC2 SSH 접근 후) |
| 4 | 기존 daily_log 57건 -> Maester 일괄 ingest |
| 5 | 임베딩 벡터 추가 (recall 정확도 향상) |
| 6 | OpenClaw Gateway 재설정 (Maester와 경로 분리) |
Maester의 심장이 뛰고 있고, 이제 입이 열렸습니다. 공개 HTTPS + 인증 토큰 + OpenAPI spec = 모든 AI가 드나들 준비 완료.