Skip to Content

Schema 카탈로그

한 줄 정의

index 가 자기 도메인에서 생산하는 typed-fact kind 의 SoT. GET /index/schemas endpoint 가 단일 envelope 으로 노출 — 이것이 schema 의 유일한 출처 (외부 schema registry 없음, MCP 가 권위). 같은 envelope 이 mcp_schema 테이블에도 mirror 되며 (index register-schemas), live 집계는 현황 페이지  의 “스키마 계약” 섹션에서 확인.

코드 SoT = src/mcp.rs (Rust) 의 schemas_envelope_base() 리터럴 (relational base) + judgment_schema_defs() (judgment). 두 곳이 served /index/schemasmcp_schema 레지스트리의 single source.

현재 카운트 (2026-06, live)

구분비고
active1510 relational base + 5 judgment (D-index-45/49). mcp_schema 에 등록됨
phase-1 stub6status: phase1_backlog, version: 0.1-stub — body 없는 roadmap placeholder. 레지스트리 미등록
total (envelope)20served /index/schemasschemas[] 길이

stub 이 active 로 graduate (real body + N.0 version 획득) 하면 register-schemas 가 코드 변경 없이 자동 등록.

Envelope 형식

curl -H "Authorization: Bearer $INDEX_MCP_TOKEN" \ https://axe.axelabs.ai/index/schemas

응답 (요약):

{ "version": "1.0", "service": "index", "schemas": [ { "name": "index.deal", "version": "1.0", "status": "active", "description": "...", "fields": { "deal_code": { "type": "string", "required": true }, "...": "..." } } // ... 14 active + 6 stub ], "metadata": { "active_count": 14, "total_count": 20, "frozen_enums": { "instrument": [...], "path": [...], "scrub_kind": [...], "...": "..." }, "frozen_enums_hash": "3b58b4b0...11f57f" } }
  • 인증: required (Bearer, Entra ID RS256)
  • versioning: 각 body 의 version 필드. 표시는 string (“1.0”), mcp_schema.version PK 는 integer major (“1.0” → 1)
  • envelope version: 응답 모양 변경 시에만 bump

14 active schemas

A. Relational base (10) — financial_model 6-table + deal pipeline

deal 의 relational compute substrate. propose_deal_closure 가 atomic 으로 적재, get_deal / get_exit_matrix / compute_outputs / query_irr 가 읽음. 상세 = financial-model.

1. index.target_company (v1.0)

fieldtypenotes
legal_namestring · required한글 정식 상호
brand_namestring영문/한글 브랜드명
biz_nostring사업자등록번호 ^\d{3}-\d{2}-\d{5}$
sectorstringsector_framework code 참조
founding_datedate
foundersarray
websiteuri

생성/읽기: propose_deal_closure · get_deal.

2. index.deal (v1.0)

deal_code 가 stable identifier — UUIDv5 idempotency key 의 namespace.

fieldtypenotes
deal_codestring · requiredstable UI ID (예: Iippo / Sentry / Canopy)
target_company_iduuid · required
stageenumPre-A · Series A · Series B · Series C · Bridge · Exit

3. index.fund_investment (v1.0)

deal × fund_entity × round 의 3-axis N:M (D-index-5). 1호 + 2호 동시 투자 시 각각 IRR 독립 산출. 상세 = financial-model § fund_investment.

fieldtypenotes
deal_iduuid · required
fund_entity_idstring · requiredaxe_ia_001 / axe_ia_002 등
round_labelstring · required
instrumentenum · frozenRCPS · BW · SAFE · 신주 · 보통주 (D-index-15)
committed_krwnumber · required
invested_krwnumber · nullable
paid_datedate · nullable
statusenum · frozencommitted · paid · locked_in · written_off · partial_exited · exited

4. index.financial_model (v1.0)

6-table SoT 의 root (per-deal). version + locked_at + source_xlsx_sha256 가 immutable provenance.

fieldtypenotes
deal_iduuid · required
versioninteger · requiredv(N) per ic skill
time_axis_kindenumannual · quarterly · monthly
start_perioddate · required
horizon_periodsinteger · required
currencystringdefault KRW
source_xlsx_sha256string · nullableround-trip integrity

5. index.financial_driver (v1.0)

driver = formula DSL atom. DSL grammar = 10 operator (+ - * / min max if sum avg lag growth) — D-index-15 immutable. 문법 = financial-model § DSL.

fieldtypenotes
codestring · requiredsnake_case (예: gross_margin_terminal)
kindenum · frozeninput · derived · output
formulastring · nullableDSL — derived 만 required
dependenciesarrayself-lag (revenue[y-1]) 는 cycle 미간주
unitsstringKRW · percent · multiple
categorystringrevenue · cost · opex · capex · financing

6. index.financial_scenario (v1.0)

scenario = (base · mgmt · upside · downside) × probability. Σ probability = 1.0 ±0.02.

fieldtypenotes
codestring · requiredbase · mgmt · upside · downside · custom
kindenumbase · mgmt · upside · downside · stress
probabilitynumber · required0~1, Σ = 1.0
name · descriptionstring

7. index.exit_matrix_leaf (v1.0)

scenario × timing × path 의 joint probability leaf. 읽기 = get_exit_matrix.

fieldtypenotes
scenario_iduuid · required
timingstring · required3y · 5y · 7y · never
pathenum · frozenma · ma_strategic · ipo · secondary · writedown · partial
probabilitynumber · requiredwithin-scenario, Σ = 1.0
axe_proceeds_krwnumber · nullablefund_share proceeds
recovery_ratenumber · nullablewritedown fallback

8. index.financial_output (v1.0)

compute_outputs / query_irr 의 결과. Blueprint IC memo 가 가장 자주 cite (“IRR” 의 출처).

fieldtypenotes
deal_codestring · required
model_iduuid · required
irr_expected_cashflownumberIRR(E[CF]) — 유일 canonical IRR (D-index-25/32; Σp·IRR 폐기)
expected_moicnumberE[MoM]
prob_lossnumberP(MoM<1)
success_probabilitynumber
methodologystringdefault “IRR(E[CF]) canonical”

9. index.financial_statement_line (v1.0)

compute_3fs 의 IS/BS/CF typed line items (gross_profit / opex_total / ebit / pretax_income / tax_expense / net_income). Phase 0 = IS focus, BS/CF placeholder.

10. index.skill_resource (v1.0)

list_skills / get_skill_resource 가 노출하는 skill resource fact (skill identifier + 파일 path + sha256). owner:index skill 의 read-path schema (D-index-47 — skill ownership 의 byte 식별). MCP byte-delivery 가 아니라 식별/감사용 (실 분배는 mirror, skill-ownership).


B. Judgment layer (4) — artifact-first (D-index-45)

relational 값을 지배하는 판단을 typed fact 로 적재. SoT = seed.yamljudgment: block + seeds/_corpus.yamlseed-ingest --emit-judgment 로 파생 (D-index-46 — hardcoded backfill 폐기). lifecycle propose→confirm, RLS owner_only, append-only artifact_event. 읽기 = get_judgment_provenance · list_calibrations. 현재 357 artifact / 23 deal (live 집계 = 현황 ).

링크는 일급 citation 이지 컬럼이 아님. judgment artifact 는 두 종류의 citation 으로 연결된다:

  • index_field — relational field 로의 링크. ref = {deal,field} (예: scenario:base:exit_multiple)
  • artifact_ref — fact↔fact 링크. ref = {artifact_id,relation}, relation ∈ calibrated_from · scrubbed_from · anchored_to · contradicts (frozen)

11. index.assumption (v1)

한 relational field_ref 를 지배하는 입력/파라미터 판단.

fieldtypenotes
field_refstring · requiredrelational target (예: scenario:base:exit_multiple · output:irr_expected_cashflow · leaf:downside:axe_proceeds · scenario:downside:probability)
scopestring · requiredbase · downside · weighted · deal-wide
valuenumber|string · required
unitsstringmultiple · percent · KRW · ratio
rationalestring · required왜 이 값인가
decision_refstringD-index-N 참조 (optional)

12. index.calibration (v1)

SURFACE→CALIBRATED scrub (D-index-24/26 핵심). surface_value (deck/사업계획) 를 calibrated_value (research-calibrated) 로 조정한 판단.

fieldtypenotes
metricstring · required조정 대상 (예: exit_multiple · revenue_ramp · downside_recovery)
surface_valuenumber|string · required조정 전 표면값 (deck claim)
calibrated_valuenumber|string · required채택값
scrub_kindenum · frozen7종 (아래 frozen-enum 표)
scrub_reasonstring · required
decision_refstring · requiredcalibration 은 결정 추적 필수

artifact_ref scrubbed_from/anchored_to 로 comp/base_rate 에 링크, index_field 로 대상 relational field 에 링크.

13. index.comp (v1)

Comparable — 한 지표의 비교가능 밴드. calibration 이 artifact_ref(anchored_to) 로 참조해 multiple_anchor/fat_tail_comp_scrub 을 정당화.

fieldtypenotes
namestring · required예: commodity supplement exit multiple
metricstring · required예: ev_rev_multiple · psr · gross_margin
value_lownumber · required
value_highnumber · required
sectorstring
sourcestring · requiredresearch 문서 / 시장 데이터

14. index.base_rate (v1)

Base rate — 시나리오/wipeout 확률 산정 기준율 (예: 식품 5년 생존율 0.34). calibration / scenario:*:probability assumption 이 artifact_ref(anchored_to) 로 참조.

fieldtypenotes
namestring · required예: food startup 5y survival
valuenumber · required0~1 비율
scopestring · required예: genuine_wipeout · downside
sourcestring · required

15. index.deal_judgment (v1)

Dead-deal harvest (D-index-49) — 한 deal 의 thesis-level 처분 JUDGMENT (“왜 passed/lost/died” + durable lesson). claim(source-cited·live·갱신)과 달리 author·불변·supersede (재판단 = 새 artifact 가 prior 를 artifact_ref(supersedes)). index_field{deal,"deal:disposition"} 로 relational deal 에, artifact_ref(anchored_to) 로 backing comp/base_rate 에 링크. 읽기 = query_dispositions(verdict/sector/tag 횡단) · get_deal_judgment. seed judgment.verdict: block = SoT → seed-ingest --emit-judgment 파생.

fieldtypenotes
deal_codestring · required= para_anchor
verdictenum · required · frozenpassed · lost · dead · invested · missed
thesisstring · requiredone-line thesis-level 판단 (예: good company ≠ good deal)
rationalearray구체 사유 bullet
lessonstring · requireddurable·재사용 lesson (예: field DD kills thesis)
sectorstring · requiredcross-deal rollup 용 (Pillar B sector Resource harvest 대상)
tagsarrayopen 패턴 vocabulary (예: good-company-not-good-deal · high-irr-not-go)
decided_by / decided_atstringauthor stamp (누가 / 언제)

frozen-enum 계약 + frozen_enums_hash (D-index-47 P1)

enum 값은 service code 에만 존재 — skill/producer 측에서 override 불가. 전체 frozen-enum set 의 deterministic sha256 = frozen_enums_hash, envelope metadata 에 publish. 현재 live:

frozen_enums_hash = 7895afeb4a135f38fb96e4dde239fc3981c790076ae7f7f638dc37d363132daa

envelope metadata.frozen_enums 의 키 (live):

instrumentRCPS · BW · SAFE · 신주 · 보통주
path (exit)ma · ma_strategic · ipo · secondary · writedown · partial
status (fund_investment)committed · paid · locked_in · written_off · partial_exited · exited
statement(financial_statement_line statement code)
is_line_code(income-statement line code)
risk_kind(risk_alert stub kind)
scrub_kindfat_tail_comp_scrub · genuine_wipeout · par_entry · dilution · over_pessimism_floor · ramp_haircut · multiple_anchor
artifact_ref_relationcalibrated_from · scrubbed_from · anchored_to · contradicts · supersedes
verdict (deal_judgment)passed · lost · dead · invested · missed (D-index-49)

SCHEMA_CONTRACT_DRIFT gate

외부 propose caller (예: ic-push 경유 propose_artifacts_from_ingest) 는 마지막으로 본 frozen_enums_hashexpected_frozen_enums_hash 로 pin 할 수 있다. index live hash 와 불일치하면 propose 가 거부된다:

{ "error_code": "SCHEMA_CONTRACT_DRIFT", "message": "...(stale skill/contract — refresh against /index/schemas)" }

생략 시 게이트 비활성. propose 가 성공하면 artifact_event.payload_after._provenanceskill · bundle_sha256 · frozen_enums_hash · actor · surface 가 stamp 된다 (P1 provenance). 상세 = skill-ownership § P1.

6 phase-1 stubs (status: phase1_backlog)

body (fields) 없는 roadmap placeholder. mcp_schema 미등록 — graduate 시 자동 등록.

stub예정 owner비고
index.dd_findingdue-diligence skillM7 후
index.ic_decisionic skill (--push)atomic propose_deal_closure 흡수 vs 별도 propose 검토
index.portfolio_kpipmc skillquarterly_close 시 propose
index.risk_alertpmc skillred/yellow 조기 경보
index.valuationpmc skillNAV / unrealized / realized
index.lp_commpmc skillLP 보고 audit

→ 이 6 stub 은 schema-catalog 의 미래 영역. 현행은 위 14 active 가 권위.

Citation kinds (evidence)

artifact 의 evidence 는 typed citation. judgment-layer 의 일급 링크 (index_field · artifact_ref) 외에, extracted-fact 의 source 앵커:

citation kindref 모양의미
index_field{deal,field}relational field 로의 judgment 링크
artifact_ref{artifact_id,relation}fact↔fact 링크 (relation frozen 4종)
xlsx_cell{source_file,sheet,cell, sha256?}xlsx key_output 앵커
pdf_figure{source_file,page, sha256?}pdf figure 앵커

Evidence durability (sha256 content-anchor)

xlsx_cell / pdf_figure 의 ref 는 sha256 (cited 파일 bytes 의 hash) 를 PRIMARY 앵커로 carry — 파일이 이동·개명·삭제돼도 살아남는다. 추가 앵커: drive_item_id (OneDrive move-survivor) · workspace_id + rel_path · marker.

DURABLE := ref 에 non-null sha256 OR drive_item_id OR (workspace_id AND rel_path). 아니면 FRAGILE (path-only). verify_citations 도구가 owner 의 citation 을 durable/fragile 로 집계 (현황 페이지에 durable% 노출). 상세 = evidence-durability v1, /services/index § evidence-durability.

Blueprint citation kind index.*

Blueprint artifact citation 의 index.* kind (D-bp-artifact-3 6 kind 에 7번째). IC memo 의 IRR 한 줄이 index 의 typed field 를 가리킴:

{ "field": "irr_expected_cashflow", "citations": [{ "kind": "index.financial_output", "deal_code": "Iippo", "model_id": "uuid-iippo-v8", "scenario_code": "weighted", "output_code": "irr_expected_cashflow" }] }

Blueprint resolver 가 stable ID 로 실 value 를 fetch (query_irr MCP 호출) + cache. 상세 = /architecture/artifacts § Citation 형태.

Migration SQL

/Users/axe/index/migrations/ ├── ..._shared_schema.sql — entity / target_company / deal / fund_investment / sector_framework ├── ..._artifact_core.sql — artifact / citation / artifact_event / mcp_schema (cortex 1:1 mirror) ├── ..._per_entity_template.sql — financial_model 6-table ├── ..._rls.sql — index_app role + FORCE RLS (owner_only) ├── ..._triggers.sql — artifact_event audit + validate_driver_tree + exit_matrix_sanity └── ..._judgment.sql — judgment artifact kinds (D-index-45)

상세 = /Users/axe/index/migrations/.

관련 페이지

Last updated on