이번 파이프라인 작업과 무관하게 작업 트리에 남아 있던 것을 그대로 올린다. 사용자가 「전부 커밋」으로 정했고, 이번 작업과 섞이지 않게 커밋만 나눴다. 대부분은 clean-architecture-backend-template 의 그림 정본 재배치다 — final/assets/diagrams/<이름>/ 에 있던 것이 CLAUDE.md 가 적은 배치인 final/assets/<이름>/ 로 옮겨졌고 .techviz/<이름>/ 이 함께 들어왔다. 삽입 줄의 대부분(3.15M)이 그 .techviz context.json 이다. 그 밖에 ca-tmpl·document-haness 의 정리, .claude/agents/ 열한 개, writing-practitioner-guides 스킬, .playwright-mcp 세션 산출물, scripts/check-ssot-facts.py 와 그 시험이 들어 있다. 이 커밋의 내용은 내가 만든 것이 아니라 이전 세션이 남긴 것이고 검증하지 않았다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
writing-tech-log-records
Tech Log Studio에 올릴 기록을 쓰는 스킬. Case · Concept · Setup · Reference · Question · Decision 여섯 종류의 종류 선택, 칸 채우기, 본문 작성, 게시 전 대조를 다룬다.
파일
| 파일 | 무엇 |
|---|---|
SKILL.md |
진입점. 종류 선택과 절차 |
references/record-kinds.md |
여섯 종류의 칸·상한·게시 조건 |
references/from-ssot-to-records.md |
긴 글에서 글감을 뽑는 기준과 tech-log-tree.json |
references/writing-each-kind.md |
종류마다 무엇을 어떤 순서로 쓰나 |
templates/*.md |
종류별 빈 틀. 복사해서 채운다 |
references/body-syntax.md |
Case 본문의 허용·금지 문법 |
references/code-tables-diagrams.md |
코드블록·표·SVG·이미지 |
references/explaining.md |
설명의 깊이와 말투 |
references/review-checklist.md |
게시 전 대조 |
examples/case-body.md |
통과하는 본문 예시 |
scripts/check_body.mjs |
본문을 Studio 파서로 미리 검사 |
본문 미리 검사
Studio에 붙여넣기 전에 확인한다. Studio가 쓰는 파서를 그대로 부르므로, 통과하면 저장도 통과한다.
node --experimental-transform-types \
.agents/skills/writing-tech-log-records/scripts/check_body.mjs 초안.md
tech-log-frontend 체크아웃이 기본 경로에 없으면 알려 준다.
node --experimental-transform-types scripts/check_body.mjs 초안.md \
--frontend /path/to/tech-log-frontend
# 또는 TECH_LOG_FRONTEND 환경변수
통과하면 블록 구성을, 실패하면 줄·칸과 이유를 낸다.
PASS 14개 블록 — CALLOUT 2 · CODE_BLOCK 1 · DATA_TABLE 1 · …
FAIL 초안.md:3:1 unsupported block syntax: html
계약 기준
| 계약 | 버전 |
|---|---|
@tech-log/studio-contract |
3.1.0 |
@tech-log/public-contract |
2.1.0 |
계약이 올라가면 body-syntax.md의 허용 목록과 record-kinds.md의 상한을 다시 맞춘다. 특히
블록 유니온(CaseRenderBlock)에 타입이 늘면 쓸 수 있는 문법이 늘어난다.
알아둘 제약
코드·표·다이어그램·이미지는 본문에만 들어간다. 본문이 있는 종류는 Case·Concept·Setup 셋이고, Reference·Question·Decision의 모든 칸은 평문으로 렌더링된다.