@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,95 @@
1
+ # Memo
2
+
3
+ A notice, internal memo, short decision request or letter of one or two pages. It has no cover and no components: a small label, the subject set as the title, To / From / Date / Subject rows between two hairlines, then a few unnumbered sections of plain prose. Its quietness is the point; a memo that looks designed reads like marketing.
4
+
5
+ Worked examples: `examples/05-memo-en.md` and `examples/09-memo-ko.md`, one page each.
6
+
7
+ ## When it fits
8
+
9
+ - Something has changed or will happen, and a defined group needs to know what to do: a move, a drill, a new rule, a deadline.
10
+ - A short request to one person or team that needs a written record.
11
+ - The whole message fits on one page, two at most.
12
+
13
+ ## When it is wrong
14
+
15
+ - The reader must choose between options: use Brief, which puts the decision and the comparison up front.
16
+ - It needs tables of evidence or more than one table: use Report or Brief.
17
+ - It is over two pages. Shorten it, or move the detail into an attached manual or report and keep the memo as the cover note.
18
+
19
+ ## Structure that sets it apart
20
+
21
+ 1. A label in muted bold at table size: the kicker of the `::: cover` directive (공지, 안내, Notice, Memo), or 메모 / Memo by default.
22
+ 2. The subject as the title, at 1.8 times the body (19 pt Korean, 20 pt English), not the 26 pt of the other tonalities. Frontmatter `subtitle:` is not printed in a memo (it still has to be a noun phrase, because the gate reads it), so put anything the reader needs into the Subject row.
23
+ 3. The memo block: rows of label and value between two ink hairlines, built from the cover line `To: … · From: … · Subject: …` (Korean `받는 사람:`, `보내는 사람:`, `제목:`, `참조:`; English also `Cc:`). The date row is added after From from frontmatter `date:` and printed as `2026. 10. 5.` or `5 October 2026`.
24
+ 4. The notice line under the block.
25
+ 5. Unnumbered sections in prose: what is happening, what each group must do, by when, whom to ask. The first section gives the whole message; later sections give detail.
26
+ 6. The folio at the foot from page 2, right-aligned; nothing in the header.
27
+
28
+ ## Tokens from the pack
29
+
30
+ | Token | Value |
31
+ |---|---|
32
+ | Dials | density 9, variance 2 |
33
+ | Margins | 25 / 27 / 25 / 25 mm |
34
+ | Body | Pretendard 10.5 pt Korean (justified), 11 pt English (ragged) |
35
+ | Ramp | h1 1.2 (12.5 / 13 pt), h2 1.1 (11.5 / 12 pt), title 1.8 (19 / 20 pt) |
36
+ | Numbering | none |
37
+ | Title block | memo block |
38
+ | Summary | prose |
39
+ | Running head | footer: folio right |
40
+ | Palette | ink #1A1A1A, muted #555555, line #8C8C8C, no accent |
41
+ | Accent on | nothing |
42
+ | Components | none |
43
+ | Figures | at most 0.40 of the frame high |
44
+ | Spacing | `spacing: tight`: line pitch at the low end (Hangul 165 %, Latin 120 %), heading space reduced; a run-in title line keeps a heading's 12 pt above it, and the paragraph after a list stands 6 pt clear of the last item |
45
+ | Fit | a memo never runs onto a second page that it fills under a quarter of the frame (`memo.fit`) |
46
+
47
+ ## Components
48
+
49
+ None. Every directive except `::: cover` turns into plain text: a callout becomes a bold title line and its paragraph, key figures become a list. That is deliberate; if something must stand out, put it in the first sentence of the first section. The memo block itself counts as the one component kind the gate sees, which is why a memo must stay under four pages.
50
+
51
+ ## Writing the source
52
+
53
+ - The subject line in the memo block and the title can differ: the title names the matter ("Finance team move to the sixth floor"), the Subject row says what the memo does ("Moving the finance team from floor 3 to floor 6 on 14–15 November").
54
+ - Write the To / From / Subject values on one line, separated by ` · ` (space, middle dot, space). English values are capitalised automatically.
55
+ - Korean memos to staff use 합니다체 consistently; a notice from an office may use 해요체 if the organisation does. Do not mix.
56
+ - One small table is acceptable (a schedule, a floor-by-floor list); give it no caption if it is the only one.
57
+ - End with the contact section: names, extensions, the date of any follow-up.
58
+ - Dates in Korean text as `10월 22일(목)` or `2026. 10. 22.`; a line must not begin with a date.
59
+
60
+ ## Do and avoid
61
+
62
+ | Do | Avoid |
63
+ |---|---|
64
+ | Say what changes for whom in the first paragraph | A background section before the reader learns what to do |
65
+ | Name a person and an extension for questions | "문의 사항은 담당 부서로" with no name |
66
+ | Keep it to one page when you can | Callouts, key figures or columns; they will print as text |
67
+ | Trim sentences when a few lines spill onto page 2 | Leaving a second page that holds two lines (`memo.fit` fails it) |
68
+
69
+ ## Worked snippet
70
+
71
+ ```markdown
72
+ ---
73
+ title: 2026년 하반기 본사 소방 대피 훈련 안내
74
+ subtitle: 훈련 일시, 층별 대피 경로와 부서별 협조 사항
75
+ author: 안전관리실
76
+ organization: 예시 주식회사
77
+ date: 2026-10-05
78
+ notice: "예시 데이터: 실제 내용으로 바꿔 주세요"
79
+ tonality: Memo
80
+ ---
81
+
82
+ ::: cover kicker="안내"
83
+ 받는 사람: 본사 전 직원 · 보내는 사람: 안전관리실 · 제목: 10월 22일 오후 소방 대피 훈련 실시
84
+ :::
85
+
86
+ # 훈련 개요
87
+
88
+ 본사 건물 전체를 대상으로 하는 하반기 소방 대피 훈련을 10월 22일(목) 오후 2시부터 2시 40분까지 실시합니다.
89
+
90
+ # 문의
91
+
92
+ 훈련 일정은 안전관리실 김도윤 책임(내선 4410)에게 연락해 주십시오.
93
+ ```
94
+
95
+ Page 1 shows "안내", the title, then four rows (받는 사람, 보내는 사람, 날짜 2026. 10. 5., 제목) between hairlines, the notice, and the two sections.
@@ -0,0 +1,105 @@
1
+ # Proposal
2
+
3
+ A proposal, plan or funding request as a document. It is the only tonality with a separate cover page, and the cover is typographic: the kind of document, the title set left in the upper third, one short rule, the subtitle and a two-line lead, with the organisation and date at the foot. The body that follows is unnumbered, states the case once with a key-figure strip, puts one decision box where the reader meets the request, and carries a budget table and a schedule.
4
+
5
+ Worked examples: `examples/04-proposal-ko.md` (cover and 3 body pages) and `examples/08-proposal-en.md` (cover and 3 body pages).
6
+
7
+ ## When it fits
8
+
9
+ - The document exists to get something approved: money, a pilot, a change of practice.
10
+ - The reader needs the problem, the plan, the cost, the timetable and how success will be judged, in that order.
11
+ - It may be read by people who were not in the room, so it must stand alone.
12
+
13
+ ## When it is wrong
14
+
15
+ - The decision is small and the reader wants one page: use Brief.
16
+ - It reports results of work already done, with a request at the end: use Report.
17
+ - It is a plan only for the team that will carry it out, with steps: use Manual.
18
+ - A cover page on a two-page document looks inflated; under about three body pages choose Brief.
19
+
20
+ ## Structure that sets it apart
21
+
22
+ 1. Cover page (its own section, no folio): kicker such as 사업 제안서 or Proposal, the title in the upper third at 2.7 times the body, a 36 mm rule in the accent, subtitle, the cover directive's lead paragraph, and at the foot the byline, date and sample-data notice.
23
+ 2. The body starts on page 2, numbered from 1, folio centred at the foot.
24
+ 3. 제안 요약 / Proposal in brief: the problem in numbers, the key-figure strip after the first paragraph, what is proposed, and the decision box.
25
+ 4. Unnumbered sections: current situation, what will be done, timetable, budget, benefits and how they will be measured.
26
+ 5. One budget table with a basis column and a bold total row; one schedule table.
27
+ 6. The last section names the measures and thresholds by which the pilot or plan will be judged.
28
+
29
+ ## Tokens from the pack
30
+
31
+ | Token | Value |
32
+ |---|---|
33
+ | Dials | density 8, variance 6 |
34
+ | Margins | 26 / 28 / 26 / 26 mm |
35
+ | Body | Pretendard 10.5 pt Korean (justified), 11 pt English (ragged) |
36
+ | Ramp | h1 1.4, h2 1.2, title 2.7 (Korean 14.5 / 12.5 / 28.5 pt; English 15.5 / 13 / 29.5 pt) |
37
+ | Numbering | none |
38
+ | Title block | cover page |
39
+ | Summary | prose with one key-figure strip |
40
+ | Running head | footer: folio centred |
41
+ | Palette | ink #1A1A1A, muted #555555, line #8C8C8C, accent #6E2639 |
42
+ | Accent on | title rule, callout rules |
43
+ | Components | keyfigures (3 per row), callout (at most one), columns |
44
+ | Figures | at most 0.60 of the frame high |
45
+ | Fill target | median 0.75 |
46
+
47
+ ## Components
48
+
49
+ - Key figures: three measured quantities that frame the case (the size of the problem, the target, the cost or payback), each with a basis line. Written inside `::: cover`, they are moved to the summary; they never stand on the cover.
50
+ - One decision box, `::: callout kind=key title="결정 요청"` / `title="Decision requested"`: what, how much, from which budget, by when. A second callout becomes plain text.
51
+ - Columns: for a short before / after or two-option comparison of similar length.
52
+
53
+ The cover counts as one component kind, so the strip or the box alone already meets the two-kind floor; use both.
54
+
55
+ ## Writing the source
56
+
57
+ - Put the cover's lead in `::: cover` as one or two sentences stating what is proposed. The title stays a noun phrase ("자전거 출퇴근 지원 시범 사업 제안서", "Booking system for shared laboratory instruments").
58
+ - Give each budget line a basis in its own column (`80명 × 주 2.4회 × 26주 × 3,000원`), so the reader can check the arithmetic. Make sure the rows add up to the total.
59
+ - State savings and benefits at their estimated size with the assumption that produces them. If a figure is a ceiling, say so.
60
+ - The timetable is a table of phases with months, not a paragraph.
61
+ - End with the measures and thresholds, not a restatement of the benefits.
62
+
63
+ ## Do and avoid
64
+
65
+ | Do | Avoid |
66
+ |---|---|
67
+ | One decision box with amount and source of funds | Boxes for each benefit |
68
+ | A budget table whose rows sum to the total | Rounded "약" figures that do not reconcile |
69
+ | Key figures with a basis, in the summary | Figures on the cover, or a "number of sites" posing as a metric |
70
+ | A cover lead that states the proposal in one or two sentences | A cover lead that repeats the title in other words |
71
+
72
+ ## Worked snippet
73
+
74
+ ```markdown
75
+ ---
76
+ title: Booking system for shared laboratory instruments
77
+ subtitle: A twelve-month plan for the Chemistry Building core facility
78
+ author: Core Facility Committee
79
+ organization: Example University, Department of Chemistry
80
+ date: 2026-10-05
81
+ notice: "Sample data: replace with real figures"
82
+ tonality: Proposal
83
+ ---
84
+
85
+ ::: cover variant=typographic kicker="Proposal"
86
+ This proposal replaces paper booking sheets with one booking system tied to training records and charges.
87
+ :::
88
+
89
+ # Proposal in brief
90
+
91
+ Last year the paper sheets produced 46 recorded double bookings.
92
+
93
+ ::: keyfigures
94
+ - **46** double bookings recorded (sample)
95
+ * Facility incident log, 2025–26 academic year
96
+ - **610 h** booked but unused instrument time (sample)
97
+ * Spreadsheet bookings against instrument logs
98
+ :::
99
+
100
+ ::: callout kind=key title="Decision requested"
101
+ Approve the plan and a first-year budget of £38,500 (sample) from the equipment reserve.
102
+ :::
103
+ ```
104
+
105
+ The cover holds the kicker, title, rule and lead with the byline and date at its foot; "Proposal in brief" opens page 1 of the body.
@@ -0,0 +1,114 @@
1
+ # Report
2
+
3
+ The default for results, project reports, periodic reviews and analyses read by managers, from about three to thirty pages. In Korean it follows the manner of a central-bank or research-institute issue note: an unadorned title block, numbered sections in the institute order Ⅰ. / 1. / 가., prose paragraphs that state a finding and then its evidence, and tables that carry the numbers. In English it is the same page with decimal numbering.
4
+
5
+ Worked examples: `examples/01-report-ko.md` (4 pages) and `examples/07-report-en.md` (3 pages).
6
+
7
+ ## When it fits
8
+
9
+ - The reader needs the evidence, not only the conclusion: tables, comparisons, causes.
10
+ - The document will be filed and read again, so section numbers help people point at things ("Ⅲ장 2절").
11
+ - There are several findings of similar weight and one or more requests at the end.
12
+
13
+ ## When it is wrong
14
+
15
+ - One decision for one busy reader: use Brief.
16
+ - The document exists to win approval for new spending: use Proposal, which gives the budget and the decision box their proper place.
17
+ - Readers will follow it step by step at a machine or a desk: use Manual.
18
+ - It fits on one page: use Memo.
19
+
20
+ ## Structure that sets it apart
21
+
22
+ 1. Page 1 masthead: the kicker (the kind of report, e.g. "운영 결과 보고" or "Quarterly review") at the left of a series line with the date at the right, then the title, subtitle, byline, one rule in the accent, the sample-data notice, and the cover directive's lead paragraph.
23
+ 2. A short contents list after the title block when the source is long enough for about five pages.
24
+ 3. A first section named 요약 / Summary in prose: the main result in the first sentence, the key-figure strip after the first paragraph, then what the reader is asked to do.
25
+ 4. Numbered sections, each opening with a paragraph before its first subsection.
26
+ 5. Tables with numbered captions, units and source lines.
27
+ 6. The last section ends on the request, the next step or the open question, never on a generic wrap-up.
28
+
29
+ ## Tokens from the pack
30
+
31
+ | Token | Value |
32
+ |---|---|
33
+ | Dials | density 9, variance 5 |
34
+ | Margins | 25 / 27 / 25 / 25 mm (top, bottom, left, right) |
35
+ | Body | Pretendard 10.5 pt, Korean justified, English ragged |
36
+ | Ramp | h1 1.4 (14.5 pt), h2 1.2 (12.5 pt), title 2.5 (26.5 pt) |
37
+ | Numbering | Korean `roman-ko` (Ⅰ. / 1. / 가.), English `decimal` |
38
+ | Title block | masthead, contents on |
39
+ | Summary | prose |
40
+ | Running head | footer: short title left, folio right |
41
+ | Palette | ink #1A1A1A, muted #555555, line #8C8C8C, accent #1F3A5F |
42
+ | Accent on | title rule, callout rules |
43
+ | Components | keyfigures (3 per row), callout, columns |
44
+ | Figures | at most 0.45 of the frame high |
45
+
46
+ ## Components
47
+
48
+ Use at most two of the three in most reports:
49
+
50
+ - One key-figure strip in the summary, three real metrics each with a basis.
51
+ - A callout for a stated assumption, a definition, or a warning about how to read a number; about one per four pages.
52
+ - Columns for a genuine pair (before / after, two sites), rarely.
53
+
54
+ A report of four pages or more must show two component kinds, and the masthead does not count as one in this tonality; the strip plus one callout is the usual pair.
55
+
56
+ ## Writing the source
57
+
58
+ - Headings are topics: "발전 실적", "효율 저하 요인", "Speed of response". Never "발전량이 예측을 넘었다".
59
+ - The first sentence under each heading carries the finding; the rest gives the evidence.
60
+ - Each table is introduced by the paragraph above it and followed by a sentence that says what to notice.
61
+ - Captions: `표 2. 분기별 발전량과 예측 대비 실적 (예시)`. Put units in the header cells; when all value columns share one unit, the converter lifts it into a `(단위: …)` line.
62
+ - Close a table with `자료:` (and `주:` before it when needed) or `Source:`.
63
+ - Avoid the generic institute headings that say nothing (개요, 주요 내용, 시사점, 결론) when a specific label is available.
64
+
65
+ ## Do and avoid
66
+
67
+ | Do | Avoid |
68
+ |---|---|
69
+ | Give every number its period and source | Rounding a 4.7 % gain to "약 5%" in one place and "4.7%" in another |
70
+ | Keep sections uneven when the material is uneven | Padding a short section to match its neighbours |
71
+ | Write `short_title:` so the footer reads cleanly | Typing section numbers into headings |
72
+ | End on the request or next step | Ending each section with a one-line restatement |
73
+
74
+ ## Worked snippet
75
+
76
+ ```markdown
77
+ ---
78
+ title: 본사 옥상 태양광 설비 1년 운영 결과
79
+ subtitle: 2025년 10월~2026년 9월 발전 실적과 2027년 보완 계획
80
+ author: 시설관리팀 에너지파트
81
+ organization: 예시 주식회사
82
+ date: 2026-10-05
83
+ short_title: 옥상 태양광 1년 운영 결과
84
+ notice: "예시 데이터: 실제 수치로 바꿔 주세요"
85
+ tonality: Report
86
+ ---
87
+
88
+ ::: cover variant=masthead kicker="운영 결과 보고"
89
+ 첫 1년의 발전량, 절감액, 고장 이력과 2027년 보완 예산 요청을 담았다.
90
+ :::
91
+
92
+ # 요약
93
+
94
+ 옥상 태양광 설비는 1년 동안 312MWh를 생산해 본사 전력 사용량의 8.4%를 대체했다.
95
+
96
+ ::: keyfigures
97
+ - **312MWh** 연간 발전량 (예시)
98
+ * 2025. 10.~2026. 9. 인버터 누적 기록
99
+ :::
100
+
101
+ # 발전 실적
102
+
103
+ ## 월별 발전량
104
+
105
+ 표 1. 분기별 발전량 (예시)
106
+
107
+ | 분기 | 예측 (MWh) | 실적 (MWh) |
108
+ | --- | ---: | ---: |
109
+ | 2026년 2분기 | 94 | 101 |
110
+
111
+ 자료: 인버터 원격 감시 기록
112
+ ```
113
+
114
+ The headings print as "Ⅰ. 요약", "Ⅱ. 발전 실적" and "1. 월별 발전량"; the caption prints as "<표 1> 분기별 발전량 (예시)". The basis line may open with `*` or `-`; either reads as a list marker, not a dash.