@litfamily/litgrok 1.0.13 → 1.0.15

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.
Files changed (114) hide show
  1. package/.grok/hooks/auto-handoff-gate.mjs +15 -2
  2. package/.grok/rules/00-litgrok.md +1 -1
  3. package/.grok/skills/frontend-ui-ux/THIRD-PARTY-NOTICE.txt +0 -5
  4. package/.grok/skills/frontend-ui-ux/references/slop-register.md +4 -4
  5. package/.grok/skills/frontend-ui-ux/scripts/import-design-intelligence.mjs +1 -1
  6. package/.grok/skills/lit-docx/SKILL.md +59 -11
  7. package/.grok/skills/lit-docx/examples/01-report-ko.md +137 -0
  8. package/.grok/skills/lit-docx/examples/02-brief-ko.md +82 -0
  9. package/.grok/skills/lit-docx/examples/03-manual-ko.md +118 -0
  10. package/.grok/skills/lit-docx/examples/04-proposal-ko.md +92 -0
  11. package/.grok/skills/lit-docx/examples/05-memo-en.md +42 -0
  12. package/.grok/skills/lit-docx/examples/06-journal-en.md +90 -0
  13. package/.grok/skills/lit-docx/examples/07-report-en.md +103 -0
  14. package/.grok/skills/lit-docx/examples/08-proposal-en.md +90 -0
  15. package/.grok/skills/lit-docx/examples/09-memo-ko.md +41 -0
  16. package/.grok/skills/lit-docx/references/components.md +151 -0
  17. package/.grok/skills/lit-docx/references/direction-step.md +129 -0
  18. package/.grok/skills/lit-docx/references/page-composition.md +129 -0
  19. package/.grok/skills/lit-docx/references/tonalities/brief.md +98 -0
  20. package/.grok/skills/lit-docx/references/tonalities/journal.md +100 -0
  21. package/.grok/skills/lit-docx/references/tonalities/manual.md +107 -0
  22. package/.grok/skills/lit-docx/references/tonalities/memo.md +95 -0
  23. package/.grok/skills/lit-docx/references/tonalities/proposal.md +105 -0
  24. package/.grok/skills/lit-docx/references/tonalities/report.md +114 -0
  25. package/.grok/skills/lit-docx/scripts/convert_md_to_docx.py +394 -51
  26. package/.grok/skills/lit-docx/scripts/docx_design.py +2446 -0
  27. package/.grok/skills/lit-docx/scripts/docx_gate.py +203 -0
  28. package/.grok/skills/lit-docx/scripts/docx_layout.py +959 -0
  29. package/.grok/skills/lit-docx/scripts/run.mjs +3 -2
  30. package/.grok/skills/lit-docx/scripts/slop_lint.py +63 -17
  31. package/.grok/skills/lit-docx/templates/tonalities/brief.yaml +29 -0
  32. package/.grok/skills/lit-docx/templates/tonalities/journal.yaml +26 -0
  33. package/.grok/skills/lit-docx/templates/tonalities/manual.yaml +27 -0
  34. package/.grok/skills/lit-docx/templates/tonalities/memo.yaml +27 -0
  35. package/.grok/skills/lit-docx/templates/tonalities/proposal.yaml +27 -0
  36. package/.grok/skills/lit-docx/templates/tonalities/report.yaml +27 -0
  37. package/.grok/skills/lit-pptx/NOTICE.md +1 -1
  38. package/.grok/skills/lit-pptx/SKILL.md +70 -14
  39. package/.grok/skills/lit-pptx/agents/analyst.md +1 -1
  40. package/.grok/skills/lit-pptx/agents/thesis.md +2 -2
  41. package/.grok/skills/lit-pptx/examples/01-pitch-signal-ko.md +175 -0
  42. package/.grok/skills/lit-pptx/examples/02-business-review-ledger-ko.md +199 -0
  43. package/.grok/skills/lit-pptx/examples/03-research-talk-paper-en.md +177 -0
  44. package/.grok/skills/lit-pptx/examples/04-lecture-chalk-ko.md +176 -0
  45. package/.grok/skills/lit-pptx/examples/05-data-review-night-en.md +221 -0
  46. package/.grok/skills/lit-pptx/examples/06-image-led-atlas-en.md +143 -0
  47. package/.grok/skills/lit-pptx/examples/07-briefing-gazette-ko.md +192 -0
  48. package/.grok/skills/lit-pptx/examples/08-status-update-ledger-en.md +168 -0
  49. package/.grok/skills/lit-pptx/examples/09-pitch-studio-en.md +157 -0
  50. package/.grok/skills/lit-pptx/examples/10-image-led-studio-ko.md +175 -0
  51. package/.grok/skills/lit-pptx/examples/11-business-review-night-en.md +181 -0
  52. package/.grok/skills/lit-pptx/examples/12-status-update-gazette-ko.md +199 -0
  53. package/.grok/skills/lit-pptx/pretendard-font/public/static/Pretendard-Bold.otf +0 -0
  54. package/.grok/skills/lit-pptx/pretendard-font/public/static/Pretendard-Regular.otf +0 -0
  55. package/.grok/skills/lit-pptx/references/density-and-fill.md +155 -0
  56. package/.grok/skills/lit-pptx/references/direction-step.md +211 -0
  57. package/.grok/skills/lit-pptx/references/layout-families.md +193 -0
  58. package/.grok/skills/lit-pptx/references/title-treatments.md +134 -0
  59. package/.grok/skills/lit-pptx/references/tonalities/atlas.md +124 -0
  60. package/.grok/skills/lit-pptx/references/tonalities/chalk.md +135 -0
  61. package/.grok/skills/lit-pptx/references/tonalities/gazette.md +127 -0
  62. package/.grok/skills/lit-pptx/references/tonalities/ledger.md +134 -0
  63. package/.grok/skills/lit-pptx/references/tonalities/night.md +132 -0
  64. package/.grok/skills/lit-pptx/references/tonalities/paper.md +127 -0
  65. package/.grok/skills/lit-pptx/references/tonalities/signal.md +118 -0
  66. package/.grok/skills/lit-pptx/references/tonalities/studio.md +123 -0
  67. package/.grok/skills/lit-pptx/scripts/compile-deck.js +65 -17
  68. package/.grok/skills/lit-pptx/scripts/craft_extras.py +82 -18
  69. package/.grok/skills/lit-pptx/scripts/deck_output.py +598 -0
  70. package/.grok/skills/lit-pptx/scripts/embed_fonts.py +1 -1
  71. package/.grok/skills/lit-pptx/scripts/inventory.py +6 -2
  72. package/.grok/skills/lit-pptx/scripts/lib/directive-parser.js +2 -2
  73. package/.grok/skills/lit-pptx/scripts/lib/grid-resolver.js +521 -0
  74. package/.grok/skills/lit-pptx/scripts/lib/layout-resolver.js +401 -16
  75. package/.grok/skills/lit-pptx/scripts/lib/markdown-loader.js +6 -4
  76. package/.grok/skills/lit-pptx/scripts/lib/render-adapter-html.js +2 -2
  77. package/.grok/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +500 -126
  78. package/.grok/skills/lit-pptx/scripts/lib/render-pack.js +3558 -0
  79. package/.grok/skills/lit-pptx/scripts/lib/slide-ast.js +54 -6
  80. package/.grok/skills/lit-pptx/scripts/lib/template-registry.js +335 -11
  81. package/.grok/skills/lit-pptx/scripts/qa_deck.py +43 -10
  82. package/.grok/skills/lit-pptx/scripts/run.mjs +3 -2
  83. package/.grok/skills/lit-pptx/scripts/validate_pptx.py +17 -5
  84. package/.grok/skills/lit-pptx/templates/boilerplate_professional.css +6 -6
  85. package/.grok/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +1 -1
  86. package/.grok/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +4 -1
  87. package/.grok/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +1 -1
  88. package/.grok/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +4 -1
  89. package/.grok/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +99 -0
  90. package/.grok/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +104 -0
  91. package/.grok/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +99 -0
  92. package/.grok/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +100 -0
  93. package/.grok/skills/lit-pptx/templates/tonalities/night/pack.yaml +100 -0
  94. package/.grok/skills/lit-pptx/templates/tonalities/paper/pack.yaml +105 -0
  95. package/.grok/skills/lit-pptx/templates/tonalities/signal/pack.yaml +101 -0
  96. package/.grok/skills/lit-pptx/templates/tonalities/studio/pack.yaml +99 -0
  97. package/.grok/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +1 -1
  98. package/.grok/skills/lit-typographic-motion/fonts/pins.json +6 -6
  99. package/.grok/skills/lit-typographic-motion/references/runtime.md +1 -1
  100. package/.grok/skills/lit-typographic-motion/references/style-bible.md +2 -2
  101. package/.grok/skills/lit-typographic-motion/references/type-craft.md +2 -2
  102. package/.grok/skills/lit-typographic-motion/scripts/lib/gate.mjs +1 -1
  103. package/.grok/skills/litgrok/SKILL.md +1 -1
  104. package/.grok-plugin/plugin.json +1 -1
  105. package/CHANGELOG.md +11 -0
  106. package/README.md +9 -9
  107. package/README_ko-KR.md +9 -9
  108. package/docs/assets/readme/badge-version.svg +1 -1
  109. package/docs/reference.md +1 -1
  110. package/docs/reference_ko-KR.md +1 -1
  111. package/package.json +1 -1
  112. package/plugin.json +1 -1
  113. package/.grok/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Bold.otf +0 -0
  114. package/.grok/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Regular.otf +0 -0
@@ -0,0 +1,92 @@
1
+ ---
2
+ title: 자전거 출퇴근 지원 시범 사업 제안서
3
+ subtitle: 본사 직원 대상 6개월 시범 운영 계획과 소요 예산
4
+ author: 총무팀 복지파트
5
+ organization: 예시 주식회사
6
+ date: 2026-10-05
7
+ short_title: 자전거 출퇴근 시범 사업
8
+ notice: "예시 데이터: 회사명, 인원, 금액은 모두 가정입니다. 실제 수치로 바꿔 주세요"
9
+ tonality: Proposal
10
+ ---
11
+
12
+ ::: cover variant=typographic kicker="사업 제안서"
13
+ 본사 반경 8km 안에 사는 직원 410명 가운데 자전거로 출퇴근할 의향이 있는 사람이 실제로 자전거를 타도록 보관 시설, 샤워실, 월 교통비 지원을 6개월 동안 함께 시험하는 사업을 제안한다.
14
+ :::
15
+
16
+ # 제안 요약
17
+
18
+ 본사 직원 1,860명 가운데 반경 8km 안에 사는 직원은 410명이다. 2026년 8월 설문에서 이 가운데 132명이 시설과 지원이 있으면 주 2회 이상 자전거로 출퇴근하겠다고 답했지만, 실제로 자전거를 타는 직원은 23명뿐이다. 응답자들은 자전거를 둘 곳이 없고, 땀을 씻을 곳이 없으며, 비 오는 날의 대안이 없다는 세 가지를 이유로 꼽았다.
19
+
20
+ ::: keyfigures
21
+ - **132명** 주 2회 이상 이용 의향 (예시)
22
+ * 2026년 8월 사내 설문, 반경 8km 거주자 410명 중
23
+ - **23명** 현재 자전거 출퇴근 인원 (예시)
24
+ * 2026년 9월 주차 관리 기록 기준
25
+ - **월 38면** 시범 기간 주차 수요 감소 추정 (예시)
26
+ * 목표 이용자 80명, 주 2.4회 이용 가정
27
+ :::
28
+
29
+ 이 제안은 세 가지 걸림돌을 한꺼번에 없애는 시범 사업이다. 지하 1층 창고 일부를 자전거 보관소로 바꾸고, 기존 체력단련실 샤워실의 이용 시간을 오전 7시로 앞당기며, 자전거로 출근한 날에는 하루 3,000원의 교통비를 지원한다. 6개월 뒤 이용 인원과 주차 수요 변화를 보고 정식 제도로 만들지 결정한다.
30
+
31
+ ::: callout kind=key title="결정 요청"
32
+ 2027년 1월부터 6월까지 시범 사업을 시행하고, 시설 공사비와 교통비 지원금을 합친 사업비 4,680만 원(예시)을 2027년 복리후생 예산에서 집행하는 안의 승인을 요청한다.
33
+ :::
34
+
35
+ # 현황과 문제
36
+
37
+ 본사 주차장은 312면이고 평일 오전 9시 기준 점유율은 2026년 상반기 평균 97%였다. 주차 대기 때문에 지각하는 사례가 월 40건 넘게 접수되고, 건물주는 2027년 하반기에 주차 요금을 15% 올리겠다고 알려 왔다. 주차면을 더 빌리는 방안도 검토했지만, 인근 공영주차장의 월 정기권은 이미 대기자가 120명을 넘는다. 주차면을 늘리는 길은 사실상 막혀 있다.
38
+
39
+ 자전거 출퇴근을 막는 요인은 설문에서 분명하게 드러났다. 의향이 있다고 답한 132명 가운데 71%가 보관 장소를, 64%가 샤워 시설을, 38%가 비용 보전을 조건으로 꼽았다(복수 응답). 현재 건물 앞 거치대는 12대 규모다. 지붕도 없어서, 비가 오면 안장이 젖는다. 도난 신고도 2026년에만 4건이 있었다. 응답자의 집은 대부분 본사 북쪽 하천변 자전거도로 근처에 몰려 있어서, 하천변 도로에서 본사 후문까지 이어지는 600m 구간만 조심하면 차도를 거의 지나지 않고 출근할 수 있다는 점도 시범 대상지를 본사로 정한 이유다.
40
+
41
+ # 시범 사업 내용
42
+
43
+ ## 보관 시설
44
+
45
+ 지하 1층 문서 창고 95㎡ 가운데 60㎡를 비워 2단 거치대 60대 규모의 보관소를 만든다. 출입은 사원증으로만 가능하게 하고, 입구에 CCTV 1대와 공기 주입기, 간단한 공구 세트를 둔다. 공사는 2주면 끝난다. 창고에 있던 문서 상자는 이미 전자화를 마친 것들이라 2026년 12월 안에 폐기 절차를 밟는다.
46
+
47
+ ## 샤워실과 탈의실
48
+
49
+ 체력단련실 샤워실은 지금 오전 9시부터 문을 연다. 시범 기간에는 오전 7시로 앞당기고, 수건 대여와 개인 사물함 40개를 추가한다. 청소 용역 계약을 2시간 앞당기는 비용이 생기며, 이는 예산에 포함했다. 시범 기간 동안 샤워실 이용 시간과 인원은 출입 기록으로 매주 집계하고, 오전 7시부터 9시 사이 이용자가 하루 15명을 넘는 날이 이어지면 사물함과 수건 수량을 늘리는 방안을 중간 점검 때 함께 검토한다.
50
+
51
+ ## 교통비 지원
52
+
53
+ 자전거로 출근한 날 보관소 출입 기록이 남으면 하루 3,000원을 다음 달 급여와 함께 지급한다. 한 사람이 받을 수 있는 금액은 월 6만 원까지다. 출입 기록으로만 확인하므로 별도 신청 절차는 없다.
54
+
55
+ # 추진 일정
56
+
57
+ 표 1. 단계별 일정 (예시)
58
+
59
+ | 단계 | 기간 | 주요 내용 |
60
+ | --- | --- | --- |
61
+ | 준비 | 2026년 11월~12월 | 창고 정리, 거치대와 출입 통제 설치 |
62
+ | 참가자 모집 | 2026년 12월 | 사내 공지, 안전교육 1시간 |
63
+ | 시범 운영 | 2027년 1월~6월 | 보관소, 샤워실, 교통비 지원 동시 시행 |
64
+ | 중간 점검 | 2027년 3월 말 | 이용 인원과 만족도 1차 조사 |
65
+ | 결과 보고 | 2027년 7월 | 정식 제도화 여부 결정 |
66
+
67
+ 자료: 총무팀 복지파트 시범 사업 일정안(2026. 10.)
68
+
69
+ 겨울에 시작하면 초기 이용 인원이 적게 나올 수 있다. 그래도 1월에 시작하는 것은 봄철 이용이 늘어나는 3~5월을 시범 기간 안에 넣고, 7월 결과 보고를 2028년 예산 편성 일정에 맞추기 위해서다.
70
+
71
+ # 소요 예산
72
+
73
+ 표 2. 시범 사업 예산 (예시)
74
+
75
+ | 항목 | 산출 근거 | 금액 (만 원) |
76
+ | --- | --- | ---: |
77
+ | 보관소 공사 | 거치대 60대, 출입 통제, CCTV | 1,900 |
78
+ | 샤워실 운영 | 사물함 40개, 수건 대여, 청소 시간 연장 | 860 |
79
+ | 교통비 지원 | 80명 × 주 2.4회 × 26주 × 3,000원 | 1,500 |
80
+ | 안전교육과 홍보 | 교육 2회, 안내물 | 220 |
81
+ | 예비비 | 나머지 항목 합계의 약 4.5% | 200 |
82
+ | 합계 | | 4,680 |
83
+
84
+ 자료: 시설 공사 업체 견적(2026. 9.), 총무팀 복지파트 산출
85
+
86
+ 교통비 지원 항목은 목표 이용자 80명이 모두 주 2.4회씩 이용한다고 가정한 상한이다. 실제 집행액은 이용 인원에 따라 줄어들며, 쓰지 않은 금액은 반납한다.
87
+
88
+ # 기대 효과와 평가 방법
89
+
90
+ 시범 사업이 목표대로 진행되면 평일 주차 수요가 하루 평균 38면 정도 줄어든다. 주차 점유율로 보면 97%에서 85% 안팎으로 내려가는 수준이다. 주차 대기로 인한 지각과 민원도 함께 줄 것으로 본다.
91
+
92
+ 평가는 세 가지 지표로 한다. 보관소 출입 기록으로 본 월별 이용 인원, 주차 관리 기록의 오전 9시 점유율, 참가자 만족도 조사 결과다. 6월 말 기준 월 이용 인원이 60명 이상이고 만족도가 5점 척도 4.0 이상이면 정식 제도화를 제안하고, 미치지 못하면 원인을 분석해 보완안이나 종료안을 함께 보고한다.
@@ -0,0 +1,42 @@
1
+ ---
2
+ title: Finance team move to the sixth floor
3
+ subtitle: Packing, the weekend of the move and the first week on floor 6
4
+ author: Workplace Services
5
+ organization: Example Ltd
6
+ date: 2026-10-05
7
+ short_title: Finance team move
8
+ notice: "Sample data: names, dates and room numbers are examples. Replace them with real details"
9
+ tonality: Memo
10
+ ---
11
+
12
+ ::: cover kicker="Memo"
13
+ To: Finance team, IT support and reception · From: Workplace Services · Subject: Moving the finance team from floor 3 to floor 6 on 14–15 November
14
+ :::
15
+
16
+ # Summary
17
+
18
+ The finance team moves from the east wing of floor 3 to the open area on floor 6 over the weekend of 14 and 15 November. Desks, monitors and locked cabinets travel with the movers; personal items go in the crates you will receive on 10 November. You start on floor 6 on Monday 16 November, with the same phone extensions and the same network drives.
19
+
20
+ # Before the move
21
+
22
+ Crates, labels and cable bags arrive at each desk on Tuesday 10 November. Pack everything you want to keep by 17:00 on Friday 13 November and label each crate with your new desk number from the floor plan sent this week. Leave your monitor, docking station and keyboard on the desk; the IT team disconnects and labels them.
23
+
24
+ Locked cabinets need one extra step. Move any cash, cheques or signed contracts into the safe in room 3.14 by Thursday evening, and hand the cabinet key to Marta Lindqvist in Workplace Services. The cabinets travel sealed, and the keys come back to you at your new desk on Monday morning.
25
+
26
+ # The weekend of the move
27
+
28
+ The movers work from 08:00 on Saturday until about 16:00 on Sunday. Floor 3 east and floor 6 are closed to staff for both days, and the goods lift is reserved for the movers. To collect something that weekend, call security on extension 2200 first.
29
+
30
+ | Day | Time | What happens |
31
+ | --- | --- | --- |
32
+ | Saturday 14 November | 08:00–13:00 | Crates and cabinets moved to floor 6 |
33
+ | Saturday 14 November | 13:00–18:00 | Desks and chairs moved and assembled |
34
+ | Sunday 15 November | 09:00–16:00 | IT connects monitors and docks, tests every desk |
35
+
36
+ # Your first week on floor 6
37
+
38
+ On Monday the IT team will be on floor 6 from 07:30 until noon to fix anything that does not work. Report problems through the usual service desk form and add the tag "floor 6 move" so they reach the right people. Reception will redirect visitors and couriers to floor 6 for the first two weeks; the payroll counter reopens there at 10:00 on Monday, in room 6.02. Quiet rooms open for booking on 9 November.
39
+
40
+ # Questions
41
+
42
+ Ask Marta Lindqvist (extension 2241) about packing and desks, and the IT service desk (extension 2000) about computers and phones. A walk-through of floor 6 starts at the lifts on Thursday 12 November at 12:30.
@@ -0,0 +1,90 @@
1
+ ---
2
+ title: Reading on the morning train
3
+ subtitle: A two-week diary study of commuters on one suburban line
4
+ authors:
5
+ - { name: "Hana Seo", affiliation: 1 }
6
+ - { name: "Daniel Okafor", affiliation: 2 }
7
+ affiliations:
8
+ 1: "Example Institute for Transport and Society"
9
+ 2: "Example University, School of Information"
10
+ date: 2026-10-05
11
+ short_title: Reading on the morning train
12
+ notice: "Sample study: participants, figures and places are examples. Replace them with real data"
13
+ abstract: "Forty-two commuters on one suburban rail line kept a diary of what they read on the train for ten working days. They logged 761 trips. Reading of some kind happened on 83 % of trips, but long-form reading, meaning at least ten minutes on one book, article or report, happened on 31 %. The strongest predictor of long-form reading was a seat in the first ten minutes of the ride, not trip length, age or device. Participants who read long-form at least three mornings a week described the habit as protected time and planned for it the evening before. The study is small and drawn from one line, so the figures describe this group rather than commuters in general."
14
+ keywords: [commuting, reading habits, diary study, rail travel]
15
+ tonality: Journal
16
+ ---
17
+
18
+ # Background
19
+
20
+ Rail operators and publishers both like to say that commuters read. The claim is usually based on what people report in a single survey question, and it rarely separates a glance at headlines from forty minutes with a novel. We wanted a closer look at what reading on a train actually consists of, minute by minute, and at the conditions that let a short scroll turn into sustained attention.
21
+
22
+ The line we chose runs 38 km from a dormitory suburb into the city centre, with eleven stops and a typical morning journey of 34 to 52 minutes. Trains between 07:00 and 08:30 run every six minutes and are usually full by the fourth stop. That crowding made the line a useful place to ask whether a seat matters as much as riders say it does.
23
+
24
+ ## Questions
25
+
26
+ We set out with three questions. What share of morning trips includes any reading, and what share includes long-form reading? Which conditions of the trip go with long-form reading? And how do people who read regularly on the train describe what they do?
27
+
28
+ # Method
29
+
30
+ ## Participants
31
+
32
+ We recruited through posters at four stations and a notice in the operator's newsletter. Of 97 volunteers, 42 met the criteria: a weekday commute on the line of at least 25 minutes, at least four trips a week, and no job that required reading on the train. The group was 24 women and 18 men, aged 23 to 64 (median 38). Thirty-one boarded at one of the first four stations.
33
+
34
+ ## The diary
35
+
36
+ Each participant used a short form on their phone at the end of every morning trip. The form asked for boarding and alighting times, whether they found a seat and when, what they read, on which device, and for roughly how many minutes. A free-text box at the end invited any comment. Participants filled in the form for ten consecutive working days in March 2026 and received a book voucher on completion.
37
+
38
+ We defined long-form reading as at least ten continuous minutes with a single book, article or report. Messages, social feeds, news headlines and work email counted as reading but not as long-form reading. We checked each diary against the operator's timetable to flag entries that did not fit the journey, and removed 9 of 770 trip records for that reason.
39
+
40
+ ## Interviews
41
+
42
+ After the diary period we interviewed 12 participants for about 30 minutes each, chosen to cover frequent, occasional and non-readers. The interviews followed a short guide about routines, interruptions and what made a trip feel well spent.
43
+
44
+ # Findings
45
+
46
+ ## How much reading
47
+
48
+ Reading of some kind appeared on 634 of 761 trips (83 %). Long-form reading appeared on 236 trips (31 %). The rest of the reading was short: feeds, messages and news, often in bursts of two or three minutes between stations. Table 1 sets out the mix.
49
+
50
+ Table 1. Reading on 761 morning trips (sample data)
51
+
52
+ | Type of reading | Trips | Share |
53
+ | --- | ---: | ---: |
54
+ | Any reading | 634 | 83 % |
55
+ | Long-form, 10 min or more | 236 | 31 % |
56
+ | Short reading only | 398 | 52 % |
57
+ | No reading | 127 | 17 % |
58
+
59
+ Books made up 58 % of long-form sessions, followed by long articles (27 %) and work reports (15 %). Paper books were more common than e-readers among those who read books, by 61 to 39.
60
+
61
+ ## Conditions that go with long-form reading
62
+
63
+ The seat mattered most. Riders who sat down within the first ten minutes read long-form on 46 % of trips, against 12 % for those who stood for longer or the whole way. Trip length had a smaller effect: among seated riders, trips over 45 minutes reached 51 %, trips under 40 minutes 39 %.
64
+
65
+ Table 2. Long-form reading by seat and trip length (sample data)
66
+
67
+ | Seat in first 10 min | Under 40 min | 40–45 min | Over 45 min |
68
+ | --- | ---: | ---: | ---: |
69
+ | Yes | 39 % | 47 % | 51 % |
70
+ | No | 9 % | 12 % | 15 % |
71
+
72
+ Device made little difference once the seat was taken into account. Age showed no clear pattern. Boarding at the first four stations raised the chance of a seat, which is why early boarders read more, and the effect disappeared when we compared early and late boarders who both found a seat.
73
+
74
+ ::: callout kind=note title="Reading the shares"
75
+ The shares in Tables 1 and 2 are counted over trips, not people. A few frequent readers contribute many trips, so the person-level picture in Section 3.3 is the safer guide to how common the habit is.
76
+ :::
77
+
78
+ ## Who reads regularly
79
+
80
+ Fourteen participants read long-form on at least six of their ten mornings. Eighteen did so on one to five mornings, and ten never did. The frequent readers were not younger or older than the rest, and their journeys were only four minutes longer on average.
81
+
82
+ # What the diaries suggest
83
+
84
+ The interviews add a pattern the numbers only hint at. Frequent readers planned. They chose the book or article the evening before, downloaded it if needed, and several said they let a train go by if the next one looked less crowded. One described the first half hour of the day as "the only part nobody else can book". Occasional readers spoke of reading as something that happened when the conditions allowed; non-readers often said they would read if a seat were free, and the diaries show it rarely was.
85
+
86
+ This matters for two groups. For operators, it suggests that extra seated capacity early in the line has a value beyond comfort, because a seat changes what people do with the trip. For publishers and libraries, it suggests that reading on the move depends on preparation, and that tools which help someone choose and download the next thing to read the night before may reach commuters better than offers delivered on the platform.
87
+
88
+ # Limits of the study
89
+
90
+ The sample is small, self-selected and drawn from one line. Volunteers who answer a poster about reading are likely to read more than the average rider, so the overall shares probably overstate reading among commuters at large. Diaries rely on memory a few minutes after the trip, and minutes of reading are estimates. The study ran for two weeks in March, before the longer evenings and lighter trains of spring. A repeat with a random sample, on more than one line and in more than one season, would test whether the seat effect holds.
@@ -0,0 +1,103 @@
1
+ ---
2
+ title: Customer support review, third quarter 2026
3
+ subtitle: Ticket volume, response times, satisfaction and staffing for July to September
4
+ author: Customer Support Operations
5
+ organization: Example Software Ltd
6
+ date: 2026-10-05
7
+ short_title: Support review Q3 2026
8
+ notice: "Sample data: company, volumes and scores are examples. Replace them with real figures"
9
+ tonality: Report
10
+ ---
11
+
12
+ ::: cover variant=masthead kicker="Quarterly review"
13
+ How the support team handled the third quarter of 2026: what customers asked about, how quickly we answered, what they thought of the answers, and what we propose for the fourth quarter.
14
+ :::
15
+
16
+ # Summary
17
+
18
+ The team closed 18,420 tickets in the quarter, 14 % more than in the second quarter, while median first response time stayed at 2.1 hours. Satisfaction slipped from 4.4 to 4.2 out of 5, and almost all of the drop came from billing questions after the August price change.
19
+
20
+ ::: keyfigures
21
+ - **18,420** tickets closed (sample)
22
+ * July to September 2026, all channels
23
+ - **2.1 h** median first response (sample)
24
+ * Business hours, email and web form
25
+ - **4.2 / 5** satisfaction score (sample)
26
+ * Post-ticket survey, 3,960 responses
27
+ :::
28
+
29
+ Two changes would recover most of the lost satisfaction: a billing help page written with the finance team, and a second billing specialist on the late shift. Together they cost about £41,000 a year. We ask for approval of both before the November billing cycle.
30
+
31
+ # Volume and mix
32
+
33
+ ## Tickets by channel
34
+
35
+ Email remained the largest channel, but chat grew fastest after we extended its hours to 20:00 in July. Phone volume fell for the third quarter in a row.
36
+
37
+ Table 1. Tickets closed by channel (sample data)
38
+
39
+ | Channel | Q2 2026 | Q3 2026 | Change |
40
+ | --- | ---: | ---: | ---: |
41
+ | Email and web form | 9,210 | 9,940 | 7.9 % |
42
+ | Chat | 4,020 | 5,610 | 39.6 % |
43
+ | Phone | 2,930 | 2,870 | −2.0 % |
44
+ | Total | 16,160 | 18,420 | 14.0 % |
45
+
46
+ Source: helpdesk ticket export, 1 October 2026
47
+
48
+ ## Tickets by topic
49
+
50
+ Billing questions rose from 18 % to 29 % of all tickets. Most asked why an invoice had changed, how the new seat-based price was calculated, or how to move to annual payment. Login and access problems fell after the single sign-on fix shipped in July, and product how-to questions held steady.
51
+
52
+ Table 2. Share of tickets by topic (sample data)
53
+
54
+ | Topic | Q2 2026 | Q3 2026 |
55
+ | --- | ---: | ---: |
56
+ | Billing and invoices | 18 % | 29 % |
57
+ | Product how-to | 34 % | 33 % |
58
+ | Login and access | 21 % | 13 % |
59
+ | Bug reports | 15 % | 14 % |
60
+ | Other | 12 % | 11 % |
61
+
62
+ # Speed of response
63
+
64
+ Median first response held at 2.1 hours across the quarter, inside the four-hour target. The tail is the concern. The slowest tenth of email tickets waited more than 11 hours for a first answer in August, compared with 7 hours in June, and nearly all of those were billing tickets that arrived after 17:00, when only one billing specialist is on shift.
65
+
66
+ Chat answered 91 % of conversations within two minutes. Resolution on first contact improved from 64 % to 68 %, helped by the new saved replies for login problems.
67
+
68
+ Table 3. Response and resolution measures (sample data)
69
+
70
+ | Measure | Target | Q2 2026 | Q3 2026 |
71
+ | --- | ---: | ---: | ---: |
72
+ | Median first response, email | 4.0 h | 2.0 h | 2.1 h |
73
+ | 90th percentile first response, email | 8.0 h | 7.2 h | 10.4 h |
74
+ | Chat answered within 2 min | 85 % | 88 % | 91 % |
75
+ | Resolved on first contact | 65 % | 64 % | 68 % |
76
+
77
+ # Customer satisfaction
78
+
79
+ The survey score fell from 4.4 to 4.2. Splitting the responses by topic shows where the fall came from: billing tickets averaged 3.6, down from 4.3, while every other topic stayed within 0.1 of its second-quarter score. Comments on billing tickets mention the same few things again and again. Customers could not see how the new price was worked out, and the first answer often sent them to an invoice page that did not explain it either.
80
+
81
+ ::: callout kind=note title="How the score is measured"
82
+ Customers receive a one-question survey when a ticket closes and answer on a scale of 1 to 5. The response rate this quarter was 21.5 %. Scores from fewer than 100 responses in a topic are not reported separately.
83
+ :::
84
+
85
+ # Staffing
86
+
87
+ The team had 38 full-time agents at the end of September, two more than in June. Attrition was one agent in the quarter. Average handling time rose from 9.4 to 10.8 minutes, mainly because billing tickets take longer to answer and needed checking against the finance system.
88
+
89
+ The late shift, 17:00 to 22:00, has six agents and one billing specialist. On the evenings after invoices go out, billing tickets on that shift reached 140, which one specialist cannot clear before morning.
90
+
91
+ # Proposals for the fourth quarter
92
+
93
+ ## Billing help page
94
+
95
+ We propose a single help page that explains the seat-based price with three worked examples, written jointly with finance and linked from every invoice email. Similar pages for the login changes cut related tickets by about a third within six weeks. The cost is staff time only, about two weeks for one writer and one finance analyst.
96
+
97
+ ## Second billing specialist on the late shift
98
+
99
+ We propose moving one agent into a billing specialist role on the late shift from 1 November, with a salary adjustment and two weeks of training with finance. The annual cost, including the adjustment and backfilling the agent's place, is about £41,000.
100
+
101
+ ## Measures to watch
102
+
103
+ If both changes work, the 90th percentile first response for email should return below 8 hours in November and the billing satisfaction score should recover to at least 4.0 by the end of December. We will report both in the fourth-quarter review.
@@ -0,0 +1,90 @@
1
+ ---
2
+ title: Booking system for shared laboratory instruments
3
+ subtitle: A twelve-month plan for the Chemistry Building core facility
4
+ author: Core Facility Committee
5
+ organization: Example University, Department of Chemistry
6
+ date: 2026-10-05
7
+ short_title: Instrument booking proposal
8
+ notice: "Sample data: department, instruments and costs are examples. Replace them with real figures"
9
+ tonality: Proposal
10
+ ---
11
+
12
+ ::: cover variant=typographic kicker="Proposal"
13
+ The core facility's nine shared instruments are booked on paper sheets and a shared spreadsheet. This proposal replaces both with one booking system tied to training records and usage charges, introduced over twelve months.
14
+ :::
15
+
16
+ # Proposal in brief
17
+
18
+ The core facility runs nine shared instruments used by 214 researchers from 31 groups. Bookings live on paper sheets taped to the instrument doors and a spreadsheet that anyone can edit. Last year that arrangement produced 46 recorded double bookings, an estimated 610 hours of booked time that went unused, and a monthly charging exercise that takes the facility manager three working days.
19
+
20
+ ::: keyfigures
21
+ - **46** double bookings recorded (sample)
22
+ * Facility incident log, 2025–26 academic year
23
+ - **610 h** booked but unused instrument time (sample)
24
+ * Spreadsheet bookings against instrument logs
25
+ - **3 days** monthly effort to prepare charges (sample)
26
+ * Facility manager's time sheet, average of 12 months
27
+ :::
28
+
29
+ We propose a hosted booking system that shows live availability, lets only trained users book each instrument, releases slots that are not claimed within 15 minutes, and produces the monthly charges from the bookings themselves. The first year costs £38,500, including setup, and the following years about £14,000.
30
+
31
+ ::: callout kind=key title="Decision requested"
32
+ Approve the twelve-month plan and a first-year budget of £38,500 (sample), funded from the facility's equipment reserve, so that procurement can start in November 2026.
33
+ :::
34
+
35
+ # The current arrangement
36
+
37
+ Each instrument has a paper sheet for the current week and a tab in a shared spreadsheet for later weeks. Users are meant to copy their booking from one to the other. In practice many do not, and the two records disagree several times a week. The facility manager settles disputes by email.
38
+
39
+ Training is tracked separately, in a list kept by the instrument specialists. Nothing stops an untrained user from booking a slot, and specialists report turning away an untrained user about twice a month after the slot has already blocked someone else.
40
+
41
+ Charging is the slowest part. At the end of each month the manager compares the spreadsheet with instrument log files, corrects the obvious errors, and sends each group leader a statement. Disputes about charges take another day or two to resolve.
42
+
43
+ # Functions of the system
44
+
45
+ ## Booking and availability
46
+
47
+ Users would see each instrument's calendar on the web and on their phone, book in slots of 30 minutes, and receive a reminder the evening before. A slot not claimed by signing in at the instrument within 15 minutes would be released and offered to the waiting list. No-shows would be visible.
48
+
49
+ ## Training and access
50
+
51
+ Only users whose training is recorded for an instrument could book it. Specialists would record training in the same system, so the list they keep today would no longer be needed. Users whose training lapses after a year without use would be asked to book a short refresher.
52
+
53
+ ## Charging
54
+
55
+ Charges would be calculated from actual sign-in and sign-out times at the rate set for each instrument and user category. Group leaders would see their running total at any time, and the monthly statement would be produced automatically. Group leaders who dispute a charge would see the sign-in record behind it, which settles most questions about who used an instrument and for how long without an email exchange with the facility manager.
56
+
57
+ # Plan and timetable
58
+
59
+ Table 1. Twelve-month plan (sample)
60
+
61
+ | Phase | Months | Work |
62
+ | --- | --- | --- |
63
+ | Procurement | November–December 2026 | Select supplier, agree contract |
64
+ | Setup | January–February 2027 | Configure instruments, rates and training records |
65
+ | Pilot | March–April 2027 | Two instruments, four research groups |
66
+ | Rollout | May–July 2027 | Remaining seven instruments, all groups |
67
+ | Review | October 2027 | Report to the committee |
68
+
69
+ The pilot uses the two busiest instruments, the 400 MHz NMR and the single-crystal diffractometer, because they account for most double bookings and would show quickly whether the release rule works.
70
+
71
+ # Budget
72
+
73
+ Table 2. First-year budget (sample)
74
+
75
+ | Item | Basis | Cost (£) |
76
+ | --- | --- | ---: |
77
+ | Software licence | Hosted, nine instruments, first year | 12,600 |
78
+ | Setup and configuration | Supplier, fixed price | 9,800 |
79
+ | Sign-in terminals | Nine tablets with stands | 4,100 |
80
+ | Staff time for setup | Facility manager, 0.2 FTE for six months | 8,500 |
81
+ | Contingency | About 10 % | 3,500 |
82
+ | Total | | 38,500 |
83
+
84
+ From the second year the licence and support cost about £14,000 a year. The facility recovers part of its running costs through charges; recovering unused booked time would add an estimated £9,000 a year at current rates.
85
+
86
+ # Benefits and measures
87
+
88
+ The committee would judge the system on four measures at the October 2027 review: double bookings, booked but unused hours, the manager's time spent on charging, and the share of users who rate booking as easy in the annual facility survey. The targets are fewer than five double bookings a year, unused booked time below 200 hours, charging done in half a day, and at least 80 % rating booking as easy.
89
+
90
+ If the pilot shows that the release rule frustrates users more than it helps, the committee can lengthen the 15-minute window before rollout without changing the rest of the plan.
@@ -0,0 +1,41 @@
1
+ ---
2
+ title: 2026년 하반기 본사 소방 대피 훈련 안내
3
+ subtitle: 훈련 일시, 층별 대피 경로와 부서별 협조 사항
4
+ author: 안전관리실
5
+ organization: 예시 주식회사
6
+ date: 2026-10-05
7
+ short_title: 하반기 소방 대피 훈련 안내
8
+ notice: "예시 데이터: 일시, 층수, 연락처는 모두 가정입니다. 실제 내용으로 바꿔 주세요"
9
+ tonality: Memo
10
+ ---
11
+
12
+ ::: cover kicker="안내"
13
+ 받는 사람: 본사 전 직원, 입주 협력사 담당자 · 보내는 사람: 안전관리실 · 제목: 10월 22일 오후 소방 대피 훈련 실시
14
+ :::
15
+
16
+ # 훈련 개요
17
+
18
+ 본사 건물 전체를 대상으로 하는 하반기 소방 대피 훈련을 10월 22일(목) 오후 2시부터 2시 40분까지 실시합니다. 훈련은 관할 소방서와 함께 진행하며, 비상 방송이 나오면 모든 직원이 업무를 멈추고 지정된 계단으로 1층 앞마당 집결지까지 이동합니다.
19
+
20
+ 훈련 중에는 엘리베이터 4대가 모두 1층에 멈춰 서고, 출입 게이트는 열린 상태로 고정됩니다. 거동이 불편한 직원과 임신 중인 직원은 미리 안전관리실에 알려 주시면 층별 대피 도우미가 함께 이동합니다.
21
+
22
+ # 층별 대피 경로
23
+
24
+ | 층 | 대피 계단 | 집결 위치 | 대피 도우미 |
25
+ | --- | --- | --- | --- |
26
+ | 2~5층 | 동쪽 계단 | 앞마당 A구역 | 총무팀 |
27
+ | 6~9층 | 서쪽 계단 | 앞마당 B구역 | 인사팀 |
28
+ | 10~13층 | 동쪽 계단 | 앞마당 C구역 | 재무팀 |
29
+ | 14~15층 | 서쪽 계단 | 앞마당 C구역 | 연구기획팀 |
30
+
31
+ 지하 주차장에 있는 직원은 차량을 세운 자리에 두고 주차장 출구 경사로를 걸어서 올라옵니다.
32
+
33
+ # 부서별 협조 사항
34
+
35
+ 각 부서장은 훈련 당일 오전까지 부서 인원 명단을 출력해 집결지에 가져와 주십시오. 집결 후 5분 안에 인원을 확인하고, 확인 결과를 구역별 대피 도우미에게 알려 주시면 됩니다. 서버실과 실험실처럼 작업을 바로 멈추기 어려운 곳은 10월 16일까지 안전관리실과 대피 순서를 따로 협의합니다.
36
+
37
+ 협력사 담당자는 같은 층 직원과 함께 이동하며, 상주 인원 명단을 10월 20일까지 안전관리실에 보내 주십시오.
38
+
39
+ # 문의
40
+
41
+ 훈련 일정과 대피 경로는 안전관리실 김도윤 책임(내선 4410)에게, 대피 도우미 지원 요청은 같은 부서 이서연 선임(내선 4412)에게 연락해 주십시오. 훈련 결과와 개선 사항은 11월 첫 주에 사내 게시판으로 알려 드립니다.
@@ -0,0 +1,151 @@
1
+ # Page components
2
+
3
+ A component is anything on the page beyond headings, paragraphs, lists, tables and figures: a key-figure strip, a callout box, a sidebar, a side-by-side column block, and the title block or cover that opens the document. They are written in the Markdown source as fenced directives, three or more colons, and the converter (`scripts/docx_design.py`) splits them out before Markdown sees the text, so no fence ever reaches the page.
4
+
5
+ Components are the fastest way to make a document look machine-made. A box in every section, a strip of big numbers on the cover, a pull quote that repeats the paragraph beside it: each is a known tell. The rules below are therefore ceilings, and a good document usually uses fewer components than its tonality allows.
6
+
7
+ ## Grammar
8
+
9
+ ```text
10
+ ::: <name> [positional] [key=value] [key="quoted value"]
11
+ body (Markdown, may hold tables and lists)
12
+ :::
13
+ ```
14
+
15
+ - Names: `cover`, `callout`, `sidebar`, `pullquote`, `keyfigures`, `columns`. Any other name stops the conversion with an error that lists the six.
16
+ - Each name takes a fixed set of attributes (below). An unknown attribute, a repeated one, or a fence that is never closed is an error naming the line. A lone `:::` with nothing open is an error too.
17
+ - A fence inside a fenced code block is left alone, so you can document the syntax in a document.
18
+ - To nest one directive inside another, give the outer fence more colons (`::::` around `:::`). Use this sparingly; a box inside a box is itself a budget violation.
19
+ - `<!-- column-break -->` is valid only inside `::: columns`.
20
+
21
+ ## The budget
22
+
23
+ The converter enforces the budget while it builds, so a component past the budget is never an error: it keeps its content as ordinary text (a title becomes a bold line above it) and the document still converts. The gate then checks the result.
24
+
25
+ | Rule | Where it is enforced |
26
+ |---|---|
27
+ | Only the kinds the tonality allows | converter; others become text |
28
+ | At most three component kinds per document | converter and gate (`component.budget`) |
29
+ | One key-figure strip per document, in the summary, never on a cover | converter and gate |
30
+ | About one callout per four pages, capped at one in Brief and Proposal; decision box first, then warnings, then notes | converter |
31
+ | Columns only when the parts are within 20 % of each other in length | converter |
32
+ | No pull quotes in any tonality | converter and gate |
33
+ | A document of four or more pages uses at least two component kinds (the title block or cover counts as one) | gate (`component.variety`) |
34
+
35
+ Which tonality allows what:
36
+
37
+ | Tonality | Allowed | Notes |
38
+ |---|---|---|
39
+ | Report | keyfigures, callout, columns | callouts by length |
40
+ | Brief | callout, columns | one callout; `kind=key` moves to the top |
41
+ | Manual | callout, sidebar, columns | the only tonality with sidebars |
42
+ | Proposal | keyfigures, callout, columns | one callout; keyfigures three per row |
43
+ | Memo | none | every directive becomes plain text |
44
+ | Journal | callout | the body is already in two columns |
45
+
46
+ Before you write a directive, put its purpose in the direction card in one line ("the decision the committee must take", "definitions the steps rely on"). If you cannot, leave it out.
47
+
48
+ ## `::: cover`
49
+
50
+ ```text
51
+ ::: cover [variant=typographic|band|split|masthead] [kicker="…"] [image=…]
52
+ optional lead paragraph, or To / From / Subject lines for a memo
53
+ :::
54
+ ```
55
+
56
+ The cover directive configures page 1; it must be the first block of the body, and its title always comes from frontmatter `title:` (a cover without one is an error). What it produces depends on the tonality, not on `variant`: the variant value is checked against the four names and then the pack's own title block is drawn. `image=` is accepted by the parser and drawn nowhere; leave it out.
57
+
58
+ - Report, Brief, Journal: a masthead on page 1. The kicker stands at the left of a series line with the date at the right, then the title, subtitle, byline, one rule and the notice. The directive's body becomes a lead paragraph set half a point above the body size.
59
+ - Manual: the title and subtitle over a document-control block (문서 / 작성 부서 / 기관 / 시행일, or Document / Owner / Organisation / Issued) built from `short_title`, `author`, `organization` and `date`.
60
+ - Proposal: a full typographic cover page. Kicker, title left-aligned in the upper third, a 36 mm rule, subtitle and lead; byline, date and notice at the foot. The body starts on the next page as page 1.
61
+ - Memo: a label (the kicker, or 메모 / Memo), the subject as title, then To / From / Date / Subject rows between two hairlines. Write the rows on one line separated by ` · `; the date is filled in from frontmatter after From.
62
+
63
+ ```text
64
+ ::: cover kicker="안내"
65
+ 받는 사람: 본사 전 직원 · 보내는 사람: 안전관리실 · 제목: 10월 22일 소방 대피 훈련
66
+ :::
67
+ ```
68
+
69
+ A `::: keyfigures` block inside the cover is moved into the summary when the tonality allows key figures, and left out (with a note) when it does not. A cover never carries figures, tiles, colour blocks or photographs.
70
+
71
+ ## `::: callout kind=<note|key|warning> [title="…"]`
72
+
73
+ Use a callout for content that stands outside the reading order: the decision a reader is asked to take, a warning that must be seen before a step, a definition or assumption that a calculation depends on. Never for a summary of the paragraph next to it.
74
+
75
+ It is drawn as one ruled box: a 0.75 pt rule above and a 0.5 pt rule below in the pack's accent (ink in Journal), no side stripe, no fill, the title in bold ink at body size. Without `title=` the label is 참고 / 핵심 / 주의 or Note / Key point / Warning. The box never splits across pages.
76
+
77
+ ```text
78
+ ::: callout kind=key title="결정 요청"
79
+ 2027년 1월부터 6월까지 시범 사업을 시행하고 사업비 4,680만 원(예시)을 복리후생 예산에서 집행하는 안의 승인을 요청한다.
80
+ :::
81
+ ```
82
+
83
+ When the budget allows fewer callouts than the source has, the converter keeps the decision box first, then warnings, then notes, in source order; the rest become a bold title line and plain text. In a Brief the first `kind=key` callout is moved to stand right under the title block, whatever its position in the source.
84
+
85
+ ## `::: sidebar [title="…"] [width=third|half] [float=right|left|none]`
86
+
87
+ Manual only. A box beside the text with a hairline down its left side (in the accent), no fill, table-size text: definitions, required tools, a short list of preconditions. Default width is a third of the text block, floated right.
88
+
89
+ ```text
90
+ ::: sidebar title="용어"
91
+ **면속도**: 새시 개구부를 지나 들어가는 공기의 평균 속도(m/s).
92
+
93
+ **새시**: 흄후드 앞면의 위아래로 움직이는 유리문.
94
+ :::
95
+ ```
96
+
97
+ A floating sidebar needs enough text beside it. When the paragraphs between the sidebar and the next heading are shorter than the box, the converter stops the float and sets the box full width in the flow; the gate's `sidebar.overlap` check catches any case that slips through. Place a sidebar right after the first paragraph of a long section, never just before a heading. In a two-column body a sidebar never floats.
98
+
99
+ ## `::: pullquote [cite="…"]`
100
+
101
+ Off in every tonality. A pull quote that repeats a sentence of the body is dropped with a note; any other text is kept as a plain paragraph. Do not write one.
102
+
103
+ ## `::: keyfigures [cols=2|3|4]`
104
+
105
+ One row of real, comparable metrics in the summary: three is usual, four at most per row, eight items at most in total. Each figure is set one modest step above the body (the h2 size), bold, in ink, over a hairline, with its label below and an optional basis line (period and source) in muted ink.
106
+
107
+ ```text
108
+ ::: keyfigures
109
+ - **312MWh** 연간 발전량 (예시)
110
+ * 2025. 10.~2026. 9. 인버터 누적 기록
111
+ - **8.4%** 본사 전력 사용량 대비 (예시)
112
+ * 같은 기간 수전 계량기 기준
113
+ :::
114
+ ```
115
+
116
+ The figure is the bold part and must contain a digit; the label follows it. An indented list item under a figure is its basis. Write the basis as an indented ` - ` or ` * ` item. The prose lint counts a spaced hyphen as a dash only between two words, so a list marker or an empty table cell never trips `rule-02-em-dash-cluster`.
117
+
118
+ A figure must be a measured quantity with a basis. A count of sites, a project name or a slogan is not a key figure. Put the strip after the first paragraph of the summary; the same numbers then do not need repeating in the paragraph above it. In a tonality without key figures (Brief, Manual, Memo, Journal) the block becomes a bulleted list with each basis in brackets.
119
+
120
+ ## `::: columns <1|2|3> [gap=<mm>] [rule=true]`
121
+
122
+ Two short blocks side by side: before and after, two options, field opinion and management opinion. Top level only, never inside a box.
123
+
124
+ ```text
125
+ ::: columns 2 rule=true
126
+ **현행 방식**
127
+
128
+ 서류 접수 후 담당자가 수기로 대조한다. 처리 기간은 평균 4일이다.
129
+ <!-- column-break -->
130
+ **변경 방식**
131
+
132
+ 접수와 동시에 시스템이 대조한다. 담당자는 불일치 건만 확인한다.
133
+ :::
134
+ ```
135
+
136
+ With a `<!-- column-break -->` each part gets its own cell of one borderless row, tops aligned (`rule=true` draws a hairline between them). Without a break the content flows through a balanced column section. Parts whose lengths differ by more than 20 % are set one after another as plain text, because an unbalanced pair leaves a hole under the shorter column.
137
+
138
+ ## Table captions and table styles
139
+
140
+ A table caption is a plain line above the table: `표 1. 제목` or `Table 1. Title`. Korean captions become `<표 1> 제목` with the label bold; English keep `Table 1.` bold. A `{style=banded}` (or `light-grid`, `header-fill`) attribute after a caption is accepted for older sources but every tonality draws booktabs, and the converter prints a note saying so.
141
+
142
+ Lines that open with `자료:`, `출처:`, `주:`, `Source:` or `Note:` right under a table take the source-note style (smaller, muted ink, 3 pt below the rule) and stay with the table. Korean `출처:` is rewritten as `자료:`.
143
+
144
+ ## Misuse
145
+
146
+ - A callout in every section, or a callout that restates the paragraph above it.
147
+ - Key figures that are not metrics, that lack a basis, or that appear on the cover.
148
+ - A sidebar used as a decorative panel for a quote or a slogan.
149
+ - Columns used to fill width with two unrelated lists.
150
+ - Nesting a box in a box.
151
+ - Writing components in a Memo and expecting boxes; they turn into text by design.