install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/34-ndjson-storage" ~/.claude/skills/majiayu000-claude-skill-registry-34-ndjson-storage && rm -rf "$T"
manifest:
skills/data/34-ndjson-storage/SKILL.mdsource content
34-ndjson-storage
Status: ACTIVE
AppliesTo: v10
SSOT
이 문서는 NDJSON 저장 포맷의 정본이다.
목적/범위
NDJSON(Line-delimited JSON) 파일의 저장 포맷(내용/확장자)을 정의한다.
이 스킬은 "저장 포맷"만 정의한다. 구체적인 폴더 경로/라우팅은 각 도메인 스킬에서 정한다:
- String Table:
→skills/devian-data/33-string-table/SKILL.md.../string/ndjson/... - 일반 Table:
→skills/devian-data/32-json-row-io/SKILL.md.../ndjson/...
NDJSON 포맷 규칙 (Hard Rules)
파일 인코딩
UTF-8 텍스트
내용 형식
NDJSON (Line-delimited JSON)
- 한 줄 = JSON object 1개
- 빈 줄 금지
- JSON array (
) 금지[]
{"id":"item1","value":100} {"id":"item2","value":200} {"id":"item3","value":300}
확장자 규칙 (중요)
파일 확장자는
이다..json
- 내용이 NDJSON이라도 확장자는
사용.json - 소비 측(Unity/툴링) 요구로
고정.json
확장자 금지.ndjson
결정성 (Deterministic)
같은 입력이면 항상 같은 출력이 나와야 한다.
- 라인 순서: 입력 데이터 순서 유지
- JSON stringify: 컴팩트 포맷 (들여쓰기 없음)
- 필드 순서: 각 도메인 스킬에서 정의
빌더 API
소스 경로
framework-ts/tools/builder/generators/ndjson-storage.js
Export 함수
/** * Object 배열을 NDJSON 문자열로 변환 * @param {Array<object>} objects - JSON object 배열 * @returns {string} NDJSON 문자열 */ export function encodeNdjsonFromObjects(objects); /** * JSON 문자열 배열을 NDJSON 문자열로 변환 * @param {Array<string>} lines - 이미 JSON.stringify된 라인 배열 * @returns {string} NDJSON 문자열 */ export function encodeNdjsonFromLines(lines);
동작 규칙
:encodeNdjsonFromObjectsobjects.map(o => JSON.stringify(o)).join('\n')
:encodeNdjsonFromLineslines.join('\n')- 빈 배열이면
반환 (기존 동작과 호환)''
금지 행동
- NDJSON 내용을 JSON array(
)로 바꾸기 금지[] - 확장자를
로 바꾸기 금지 (.ndjson
유지).json - 라인 끝에 trailing comma 추가 금지
DoD (검증 가능)
PASS 조건
- NDJSON 파일 확장자가
임.json - 파일 내용이 한 줄당 JSON object 1개
- JSON array가 아님
- 빈 줄 없음
- 같은 입력이면 같은 출력 (결정성)
FAIL 조건
- 파일 확장자가
.ndjson - 내용이 JSON array
- 빈 줄 포함
- 비결정적 출력
Reference
- Consumer:
(일반 Table)skills/devian-data/32-json-row-io/SKILL.md - Consumer:
(String Table)skills/devian-data/33-string-table/SKILL.md