@litfamily/litclaude 1.0.19 → 1.0.21
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.
- package/CHANGELOG.md +12 -0
- package/README.md +14 -8
- package/README_ko-KR.md +13 -8
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/hooks.md +3 -2
- package/package.json +1 -1
- package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/litclaude/bin/litclaude-hook.js +4 -4
- package/plugins/litclaude/bin/litclaude-mcp.js +1 -1
- package/plugins/litclaude/lib/canonical-skill-resources.mjs +91 -31
- package/plugins/litclaude/skills/frontend-ui-ux/ATTRIBUTION.md +3 -6
- package/plugins/litclaude/skills/lit-docx/SKILL.md +50 -19
- package/plugins/litclaude/skills/lit-docx/references/components.md +207 -0
- package/plugins/litclaude/skills/lit-docx/references/direction-step.md +277 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/01-report-ko.md +166 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/02-brief-ko.md +105 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/03-manual-ko.md +164 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/04-proposal-ko.md +138 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/05-memo-en.md +55 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/06-journal-en.md +130 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/07-report-en.md +123 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/08-proposal-en.md +123 -0
- package/plugins/litclaude/skills/lit-docx/references/examples/09-memo-ko.md +45 -0
- package/plugins/litclaude/skills/lit-docx/references/page-composition.md +221 -0
- package/plugins/litclaude/skills/lit-docx/references/tonalities/brief.md +143 -0
- package/plugins/litclaude/skills/lit-docx/references/tonalities/journal.md +142 -0
- package/plugins/litclaude/skills/lit-docx/references/tonalities/manual.md +148 -0
- package/plugins/litclaude/skills/lit-docx/references/tonalities/memo.md +137 -0
- package/plugins/litclaude/skills/lit-docx/references/tonalities/proposal.md +140 -0
- package/plugins/litclaude/skills/lit-docx/references/tonalities/report.md +156 -0
- package/plugins/litclaude/skills/lit-docx/scripts/convert_md_to_docx.py +274 -73
- package/plugins/litclaude/skills/lit-docx/scripts/docx_design.py +2449 -0
- package/plugins/litclaude/skills/lit-docx/scripts/docx_layout.py +959 -0
- package/plugins/litclaude/skills/lit-docx/scripts/qa_docx.py +66 -9
- package/plugins/litclaude/skills/lit-docx/scripts/slop_lint.py +18 -6
- package/plugins/litclaude/skills/lit-docx/templates/tonalities/brief.yaml +28 -0
- package/plugins/litclaude/skills/lit-docx/templates/tonalities/journal.yaml +25 -0
- package/plugins/litclaude/skills/lit-docx/templates/tonalities/manual.yaml +26 -0
- package/plugins/litclaude/skills/lit-docx/templates/tonalities/memo.yaml +26 -0
- package/plugins/litclaude/skills/lit-docx/templates/tonalities/proposal.yaml +26 -0
- package/plugins/litclaude/skills/lit-docx/templates/tonalities/report.yaml +26 -0
- package/plugins/litclaude/skills/lit-pptx/SKILL.md +105 -48
- package/plugins/litclaude/skills/lit-pptx/references/agents/analyst.md +1 -1
- package/plugins/litclaude/skills/lit-pptx/references/agents/thesis.md +1 -1
- package/plugins/litclaude/skills/lit-pptx/references/anti-slop-checklist.md +59 -30
- package/plugins/litclaude/skills/lit-pptx/references/authoring-guide.md +119 -42
- package/plugins/litclaude/skills/lit-pptx/references/consensus-protocol.md +1 -1
- package/plugins/litclaude/skills/lit-pptx/references/data-display-cookbook.md +13 -6
- package/plugins/litclaude/skills/lit-pptx/references/density-and-fill.md +164 -0
- package/plugins/litclaude/skills/lit-pptx/references/design-system-azure.md +7 -4
- package/plugins/litclaude/skills/lit-pptx/references/direction-step.md +186 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/01-pitch-signal-ko.md +210 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/02-pitch-studio-ko.md +147 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/03-business-review-ledger-ko.md +199 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/04-business-review-night-en.md +203 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/05-research-talk-paper-en.md +179 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/06-lecture-chalk-ko.md +199 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/07-data-review-night-en.md +194 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/08-image-led-atlas-ko.md +175 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/09-briefing-gazette-ko.md +204 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/10-status-update-ledger-ko.md +179 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/11-portfolio-studio-en.md +164 -0
- package/plugins/litclaude/skills/lit-pptx/references/examples/12-research-tutorial-chalk-en.md +174 -0
- package/plugins/litclaude/skills/lit-pptx/references/interview-protocol.md +1 -1
- package/plugins/litclaude/skills/lit-pptx/references/layout-families.md +198 -0
- package/plugins/litclaude/skills/lit-pptx/references/stages/autopilot.md +1 -1
- package/plugins/litclaude/skills/lit-pptx/references/stages/interview.md +2 -2
- package/plugins/litclaude/skills/lit-pptx/references/stages/plan.md +1 -1
- package/plugins/litclaude/skills/lit-pptx/references/title-treatments.md +109 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/atlas.md +139 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/chalk.md +148 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/gazette.md +149 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/ledger.md +149 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/night.md +147 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/paper.md +151 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/signal.md +150 -0
- package/plugins/litclaude/skills/lit-pptx/references/tonalities/studio.md +132 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/compile-deck.js +64 -16
- package/plugins/litclaude/skills/lit-pptx/scripts/craft_extras.py +664 -3
- package/plugins/litclaude/skills/lit-pptx/scripts/deck_craft.py +48 -6
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/grid-resolver.js +521 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/layout-resolver.js +362 -11
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/markdown-loader.js +6 -4
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +211 -65
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/render-pack.js +3559 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/slide-ast.js +10 -6
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/template-registry.js +286 -1
- package/plugins/litclaude/skills/lit-pptx/scripts/qa_deck.py +39 -10
- package/plugins/litclaude/skills/lit-pptx/scripts/validate_pptx.py +22 -7
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +1 -1
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +4 -1
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +1 -1
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +4 -1
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +92 -0
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +97 -0
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +93 -0
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +94 -0
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/night/pack.yaml +93 -0
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/paper/pack.yaml +98 -0
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/signal/pack.yaml +94 -0
- package/plugins/litclaude/skills/lit-pptx/templates/tonalities/studio/pack.yaml +92 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Journal
|
|
2
|
+
|
|
3
|
+
Journal is long-form reading set in two columns: an essay, a newsletter, a white paper, a research
|
|
4
|
+
summary for colleagues that is not bound for a named journal. It sits close to a publisher profile. A
|
|
5
|
+
masthead with authors, affiliations, an abstract and keywords opens page 1, the body runs in two
|
|
6
|
+
ragged-right columns with a 6 mm gutter, sections carry decimal numbers so that "Section 2.4" in the
|
|
7
|
+
text points somewhere, and the header holds the short title and the folio. Latin body text is set in
|
|
8
|
+
Times New Roman for its narrow measure; Hangul, headings and every other element stay in Pretendard.
|
|
9
|
+
The pack has no accent colour: rules, headings and the one callout style are all near-black ink.
|
|
10
|
+
|
|
11
|
+
## When to use it
|
|
12
|
+
|
|
13
|
+
Choose Journal for 칼럼, 뉴스레터, 백서, 연구 요약, a long explainer, or an English essay of three pages
|
|
14
|
+
and more with few tables. It is the first candidate for essays and white papers and moves up when the
|
|
15
|
+
source is mostly running prose in English, when it cites sections and references, or when the reader
|
|
16
|
+
is expected to read from start to finish rather than look things up.
|
|
17
|
+
|
|
18
|
+
## When it is the wrong choice
|
|
19
|
+
|
|
20
|
+
- A journal submission or a named publisher's format: use that publisher profile (`--publisher
|
|
21
|
+
elsevier`, `acs`, `ieee`, `nature`); a tonality never stands in for a journal's rules.
|
|
22
|
+
- A document of wide tables: every table of more than three columns spans the page, and a run of those
|
|
23
|
+
reads as Report with extra gutters.
|
|
24
|
+
- A briefing or a memo: two columns on a two-page memo slow the reader down.
|
|
25
|
+
- A procedure: steps in narrow columns wrap badly; Manual.
|
|
26
|
+
|
|
27
|
+
## Structure
|
|
28
|
+
|
|
29
|
+
Journal is the only pack with two columns, an abstract in its title block and Times New Roman body
|
|
30
|
+
text, so any other tonality rendered from the same source differs from it in at least three structural
|
|
31
|
+
features (`qa_docx.py a.docx --compare b.docx`, check `tonality.structure`).
|
|
32
|
+
|
|
33
|
+
- **Page 1: the masthead.** An optional label line with the Korean date on the right (`2026. 6. 30.`),
|
|
34
|
+
the title, the subtitle as a standfirst in muted ink, the authors and organisation, numbered
|
|
35
|
+
affiliations and a corresponding address when the frontmatter has them, one ink rule, the notice once
|
|
36
|
+
in small muted text, then the abstract and keywords (초록 / 주요어 or Abstract / Keywords) from the
|
|
37
|
+
frontmatter. The two-column body starts under the masthead on the same page. `variant=` on a cover is
|
|
38
|
+
accepted and ignored.
|
|
39
|
+
- **Summary form.** The abstract is the summary. There is no summary section and no key-figure strip;
|
|
40
|
+
the first paragraph of the body states what the piece argues and for whom.
|
|
41
|
+
- **Numbering.** Decimal: h1 `1`, h2 `1.1`, in plain ink at heading size, so cross-references resolve.
|
|
42
|
+
References or further reading close the piece as a numbered list; that back-matter heading is left
|
|
43
|
+
unnumbered.
|
|
44
|
+
- **Components and their purpose.** One kind only: `callout`, for a definition, a caveat or a method
|
|
45
|
+
note that sits outside the line of argument, at about one per four pages. It is drawn as a 1 pt ink
|
|
46
|
+
rule down its left side with a bold title, no fill. A `::: sidebar`, `::: keyfigures` or `::: columns`
|
|
47
|
+
written in the source keeps its content as ordinary text with its title as a bold lead line, and
|
|
48
|
+
stdout says so.
|
|
49
|
+
- **Wide material.** A table of four or more columns spans both columns with its caption; a table of up
|
|
50
|
+
to three columns stays in the column at column width. Figures take the column width.
|
|
51
|
+
- **Running head.** From page 2, the short title at the top left and the folio at the top right, small
|
|
52
|
+
and muted. No
|
|
53
|
+
section name in the header.
|
|
54
|
+
- **Contents.** None.
|
|
55
|
+
|
|
56
|
+
## Tokens
|
|
57
|
+
|
|
58
|
+
Values at the pack default (density 9, variance 6), from `templates/tonalities/journal.yaml`. The pack
|
|
59
|
+
has no accent: `accent_on` is empty, so the title rule and the callout rule are drawn in ink.
|
|
60
|
+
|
|
61
|
+
| Token | Value |
|
|
62
|
+
|---|---|
|
|
63
|
+
| Paper, margins | A4; top 25, bottom 27, left 25, right 25 mm; two columns, 6 mm gutter |
|
|
64
|
+
| Body | Times New Roman for Latin, Pretendard for Hangul, 10.5 pt, ragged right |
|
|
65
|
+
| Line pitch | Latin 133 % of the size (Word multiple about 1.16 in Times New Roman), Hangul 175 % (1.14 in Pretendard) |
|
|
66
|
+
| Paragraph spacing | 6 pt after (5 pt English), no indent |
|
|
67
|
+
| Scale | h1 13.5 pt (1.3x), h2 12 pt (1.15x), h3 10.5 pt bold, in Pretendard; title 26.5 pt (2.5x) |
|
|
68
|
+
| Ink | body and headings `#1A1A1A`; muted `#555555`; rules `#8C8C8C` |
|
|
69
|
+
| Accent | no accent |
|
|
70
|
+
| Tables | booktabs, 9.5 pt, header bold, numbers right-aligned |
|
|
71
|
+
| Running head | header: short title left, folio right, 8.5 pt muted |
|
|
72
|
+
| Components | callout only |
|
|
73
|
+
| Figures | at most 0.40 of the frame height, sized to the column width |
|
|
74
|
+
| Fill | no body page under 0.35 (`fill.page`) |
|
|
75
|
+
|
|
76
|
+
**Dials.** Density 7 opens the margins to 27/29/27/27 mm and the pitch to 137 % Latin and 180 % Hangul,
|
|
77
|
+
for a white paper meant to be printed; the columns get narrower, so check that three-column tables
|
|
78
|
+
still fit. Density 10 closes the top margin to 24 mm for a newsletter with a fixed page count. Variance
|
|
79
|
+
no longer adds component kinds.
|
|
80
|
+
|
|
81
|
+
## Worked source
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
---
|
|
85
|
+
title: 재택근무 1년의 협업 비용
|
|
86
|
+
subtitle: 4개 본부 설문으로 본 회의 시간 변화
|
|
87
|
+
authors: [김연구, 이분석]
|
|
88
|
+
organization: 예시연구소
|
|
89
|
+
date: 2026-09-30
|
|
90
|
+
abstract: 재택근무 도입 1년 뒤 본부별 회의 시간과 응답 지연을 비교했다. (예시)
|
|
91
|
+
keywords: [재택근무, 협업, 회의 시간]
|
|
92
|
+
tonality: journal
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
# 조사 방법
|
|
96
|
+
|
|
97
|
+
2026년 7-8월에 4개 본부 612명에게 설문을 보냈고 523명이 응답했다(예시). 응답자 구성은 2.2절에서 다룬다.
|
|
98
|
+
|
|
99
|
+
::: callout kind=note title="응답률 주의"
|
|
100
|
+
개발 본부의 응답률이 다른 본부보다 낮아 본부 간 비교에는 오차가 크다.
|
|
101
|
+
:::
|
|
102
|
+
|
|
103
|
+
표 1. 본부별 주간 회의 시간 (예시)
|
|
104
|
+
|
|
105
|
+
| 본부 | 2025년 9월 (시간) | 2026년 9월 (시간) | 변화 (시간) |
|
|
106
|
+
|---|---|---|---|
|
|
107
|
+
| 개발 | 3.9 | 5.1 | +1.2 |
|
|
108
|
+
| 영업 | 4.4 | 4.8 | +0.4 |
|
|
109
|
+
|
|
110
|
+
자료: 사내 설문 (예시)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
The four-column table spans the page with its caption, set as `<표 1>` above and the hoisted
|
|
114
|
+
`(단위: 시간)` line. The frontmatter date prints as `2026. 9. 30.`.
|
|
115
|
+
|
|
116
|
+
## Headings
|
|
117
|
+
|
|
118
|
+
| Use | Not |
|
|
119
|
+
|---|---|
|
|
120
|
+
| 재택근무 1년의 협업 비용 | 재택근무는 협업 비용을 키웠다 |
|
|
121
|
+
| Meeting time after remote work | Remote work doubled our meetings |
|
|
122
|
+
| 조사 방법과 한계 | 조사에는 몇 가지 한계가 있음 |
|
|
123
|
+
|
|
124
|
+
The standfirst under the title is a subtitle and follows the same rule; the argument starts in the
|
|
125
|
+
first paragraph. `heading.declarative` fails a heading, title or subtitle written as a sentence.
|
|
126
|
+
|
|
127
|
+
## Numbers
|
|
128
|
+
|
|
129
|
+
Journal leans on prose, and figures belong in sentences or tables with their period and source. There
|
|
130
|
+
is no key-figure strip and never a large number across both columns. Example data says (예시) or
|
|
131
|
+
(sample).
|
|
132
|
+
|
|
133
|
+
## Failure patterns
|
|
134
|
+
|
|
135
|
+
- A sidebar, key-figure strip or quotation box planned on the direction card: none is drawn; plan the
|
|
136
|
+
callout alone.
|
|
137
|
+
- Five-column tables in a row, each spanning the page: the columns lose their rhythm; move them to an
|
|
138
|
+
appendix part.
|
|
139
|
+
- Bullet lists of single words in a column: they leave half of each column empty; write them as a
|
|
140
|
+
sentence.
|
|
141
|
+
- Section numbers typed into headings, which doubles the decimal numbering.
|
|
142
|
+
- Using Journal as a stand-in for a publisher's manuscript format.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Manual
|
|
2
|
+
|
|
3
|
+
Manual is the technical guide: an installation procedure, an operating manual, an onboarding guide, a
|
|
4
|
+
reference for people who look things up while their hands are busy. Its pages are built for finding and
|
|
5
|
+
citing. A document-control block under the title tells the reader which document this is, who owns it
|
|
6
|
+
and from when it applies; decimal section numbers let a step be cited as "4.2"; numbered steps hold one
|
|
7
|
+
action each; every warning has the same quiet form, slate-blue rules above and below it and a bold
|
|
8
|
+
title. The page itself stays in near-black ink with no fills, so a sheet photocopied for the workbench
|
|
9
|
+
loses nothing.
|
|
10
|
+
|
|
11
|
+
## When to use it
|
|
12
|
+
|
|
13
|
+
Choose Manual for 가이드, 매뉴얼, 절차서, 운영 지침, setup and maintenance instructions, API or tool usage
|
|
14
|
+
guides delivered as a document, and training material read step by step. It is the first candidate for
|
|
15
|
+
the guide type and the third for reports. Move it up when the source holds numbered procedures, several
|
|
16
|
+
warnings or cautions, reference tables of settings, codes and limits, or a revision history that a
|
|
17
|
+
document-control block should carry.
|
|
18
|
+
|
|
19
|
+
## When it is the wrong choice
|
|
20
|
+
|
|
21
|
+
- A report of results: numbered steps and warning boxes make an analysis read like instructions. Use
|
|
22
|
+
Report.
|
|
23
|
+
- A decision paper or a briefing: Brief puts the decision first; Manual puts the procedure first.
|
|
24
|
+
- A text with no steps and no reference tables: the control block and the decimal numbering add
|
|
25
|
+
weight without helping anyone find anything; Report or Journal.
|
|
26
|
+
- A two-page notice of a procedure change: Memo, with the change stated in its opening paragraph.
|
|
27
|
+
|
|
28
|
+
## Structure
|
|
29
|
+
|
|
30
|
+
Manual is the only pack with a document-control block, a sidebar and a short title in the header, so it
|
|
31
|
+
differs from every other tonality in at least three structural features
|
|
32
|
+
(`qa_docx.py a.docx --compare b.docx`, check `tonality.structure`).
|
|
33
|
+
|
|
34
|
+
- **Page 1: title over a document-control block.** An optional label line (the `kicker=` of
|
|
35
|
+
`::: cover`, for example `설치 안내서`), the title, the subtitle in muted ink, then a two-column block
|
|
36
|
+
between two ink hairlines: 문서 / 작성 부서 / 기관 / 시행일 (English: Document / Owner / Organisation /
|
|
37
|
+
Issued). The values come from frontmatter `short_title` (or `title`), `author`, `organization` and
|
|
38
|
+
`date`, the date in the Korean form `2026. 6. 30.`. The notice follows once in small muted text. No
|
|
39
|
+
cover page; the body starts on page 1.
|
|
40
|
+
- **Contents.** From about five pages, a short contents list of the h1 parts with page numbers stands
|
|
41
|
+
under the control block.
|
|
42
|
+
- **Summary form.** Prose: `# 개요` / `# Overview` states scope, audience and what the reader needs
|
|
43
|
+
before starting (permissions, tools, time).
|
|
44
|
+
- **Numbering.** Decimal: h1 `1`, h2 `1.1`, in plain ink at heading size. Procedures are ordered lists,
|
|
45
|
+
one action per item, the expected result in the next sentence.
|
|
46
|
+
- **Components and their purpose.** Three kinds are allowed. `callout` carries a warning placed
|
|
47
|
+
immediately before the step it protects; every kind (key, warning, note) is drawn in the same single
|
|
48
|
+
style, and only about one per four pages is boxed, decision request first, then warning, then note.
|
|
49
|
+
`sidebar` holds definitions or a method note beside the text it explains; it floats right at a third
|
|
50
|
+
of the width with a hairline down its left side, and when the paragraphs beside it are shorter than
|
|
51
|
+
the box it is set full width so the next heading never starts next to it (`sidebar.overlap`).
|
|
52
|
+
`columns` sets two symptom-and-action groups of nearly equal length side by side. There is no
|
|
53
|
+
key-figure strip in this pack.
|
|
54
|
+
- **Reference tables.** Settings, error codes and limits in booktabs tables with units; a long table
|
|
55
|
+
(a header and six or more body rows) may break between rows with its header repeated.
|
|
56
|
+
- **Running head.** From page 2, the short title at the top left and the folio at the foot right, both
|
|
57
|
+
small and muted.
|
|
58
|
+
The header never carries the current section name: a page field showed the first section starting on
|
|
59
|
+
a page, not the one the page opens in.
|
|
60
|
+
|
|
61
|
+
## Tokens
|
|
62
|
+
|
|
63
|
+
Values at the pack default (density 9, variance 6), from `templates/tonalities/manual.yaml`.
|
|
64
|
+
|
|
65
|
+
| Token | Value |
|
|
66
|
+
|---|---|
|
|
67
|
+
| Paper, margins | A4; top 25, bottom 27, left 25, right 25 mm; text block 160 mm |
|
|
68
|
+
| Body | Pretendard 10.5 pt, ragged right in both languages (steps and codes read better unjustified) |
|
|
69
|
+
| Line pitch | Hangul 175 % (Word multiple 1.14), Latin 133 % (0.87) |
|
|
70
|
+
| Paragraph spacing | 6 pt after (5 pt English), no indent |
|
|
71
|
+
| Scale | h1 14 pt (1.35x), h2 12 pt (1.15x), h3 10.5 pt bold; title 26.5 pt (2.5x) |
|
|
72
|
+
| Ink | body and headings `#1A1A1A`; muted `#555555`; rules `#8C8C8C` |
|
|
73
|
+
| Accent | slate blue `2E4A66`, on the callout rule and the sidebar rule only |
|
|
74
|
+
| Control block | 9.5 pt, labels bold, between two 0.5 pt ink hairlines |
|
|
75
|
+
| Tables | booktabs, 9.5 pt, header bold, numbers right-aligned |
|
|
76
|
+
| Running head | header: short title left; footer: folio right; 8.5 pt muted |
|
|
77
|
+
| Components | callout, sidebar, columns (three kinds at most) |
|
|
78
|
+
| Figures | at most 0.45 of the frame height |
|
|
79
|
+
| Fill | no body page under 0.35 (`fill.page`) |
|
|
80
|
+
|
|
81
|
+
**Dials.** Density 7 opens the margins to 27/29/27/27 mm and the Hangul pitch to 180 %: for a guide used
|
|
82
|
+
at a bench, where a looser line helps the reader find their place again. Density 10 closes the top
|
|
83
|
+
margin to 24 mm for a long reference held to a page count. The type does not shrink. Variance no longer
|
|
84
|
+
adds kinds or table styles.
|
|
85
|
+
|
|
86
|
+
## Worked source
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
::: cover kicker="설치 안내서"
|
|
90
|
+
:::
|
|
91
|
+
|
|
92
|
+
# 개요
|
|
93
|
+
|
|
94
|
+
이 안내서는 현장 게이트웨이를 처음 설치하는 운영 담당자를 위한 것이다. 작업에는 관리자 계정과 약 40분이 필요하다.
|
|
95
|
+
|
|
96
|
+
::: sidebar title="용어"
|
|
97
|
+
**게이트웨이**: 센서 신호를 모아 서버로 보내는 장치
|
|
98
|
+
|
|
99
|
+
**펌웨어**: 장치에 들어 있는 제어 프로그램
|
|
100
|
+
:::
|
|
101
|
+
|
|
102
|
+
# 설치 순서
|
|
103
|
+
|
|
104
|
+
::: callout kind=warning title="전원 차단 후 작업"
|
|
105
|
+
배터리를 교체하기 전에 차단기를 내리고 잔류 전압이 0 V인지 확인한다.
|
|
106
|
+
:::
|
|
107
|
+
|
|
108
|
+
1. 차단기를 내린다. 상태 표시등이 꺼진다.
|
|
109
|
+
2. 전면 덮개의 나사 4개를 푼다.
|
|
110
|
+
3. 배터리를 교체하고 덮개를 닫는다.
|
|
111
|
+
|
|
112
|
+
표 1. 오류 코드와 조치 (예시)
|
|
113
|
+
|
|
114
|
+
| 코드 | 증상 | 조치 |
|
|
115
|
+
|---|---|---|
|
|
116
|
+
| E01 | 서버 연결 실패 | 네트워크 케이블 확인 |
|
|
117
|
+
| E07 | 펌웨어 불일치 | 최신 펌웨어로 갱신 |
|
|
118
|
+
|
|
119
|
+
자료: 제조사 기술 문서 (예시)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The sidebar floats beside the overview only if the overview is longer than the box; otherwise it is set
|
|
123
|
+
full width under it. The caption prints as `<표 1>`, and `출처:` would be rewritten `자료:`.
|
|
124
|
+
|
|
125
|
+
## Headings
|
|
126
|
+
|
|
127
|
+
| Use | Not |
|
|
128
|
+
|---|---|
|
|
129
|
+
| 게이트웨이 설치 순서 | 게이트웨이를 설치한다 |
|
|
130
|
+
| 펌웨어 갱신 전 확인 사항 | 갱신 전에 반드시 확인하세요 |
|
|
131
|
+
| Error codes and actions | Fix errors before restarting |
|
|
132
|
+
|
|
133
|
+
Steps inside a list are imperatives or plain statements; the headings above them stay noun phrases.
|
|
134
|
+
`heading.declarative` reads headings, the title and the subtitle, not list items.
|
|
135
|
+
|
|
136
|
+
## Numbers
|
|
137
|
+
|
|
138
|
+
Limits, voltages and times sit in tables with their units and a source line. A duration or a count in
|
|
139
|
+
the overview is written into its sentence ("약 40분"). Example values carry (예시) or (sample).
|
|
140
|
+
|
|
141
|
+
## Failure patterns
|
|
142
|
+
|
|
143
|
+
- Warnings collected in a list at the end, away from the steps they protect.
|
|
144
|
+
- Headings typed with their own numbers (`1.1 준비물`), which doubles the decimal numbering.
|
|
145
|
+
- Steps written as paragraphs; a reader at a bench needs one action per numbered item.
|
|
146
|
+
- A sidebar longer than the text beside it, or a sidebar used for content the reader must follow in
|
|
147
|
+
order; move that content into the steps.
|
|
148
|
+
- Reference tables with prose cells; move the explanation to a sentence under the table.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Memo
|
|
2
|
+
|
|
3
|
+
Memo is the short document: an internal memo, a notice, a decision request, a letter of one or two
|
|
4
|
+
pages. It has no cover and no components. Page 1 opens with a small label, the subject as the title,
|
|
5
|
+
and To / From / Date / Subject rows between two hairlines; the body follows at once. The pack has no
|
|
6
|
+
accent colour at all: everything is near-black ink, with muted grey only for the label, the notice and
|
|
7
|
+
the folio. The memo should look like something a person wrote and sent, and its authority comes from
|
|
8
|
+
the clarity of the first two sentences.
|
|
9
|
+
|
|
10
|
+
## When to use it
|
|
11
|
+
|
|
12
|
+
Choose Memo for 메모, 공지, 안내문, 협조 요청, a short decision request, a meeting follow-up, a cover letter
|
|
13
|
+
for another document, or any English or Korean text under about 900 words. It is the first candidate
|
|
14
|
+
for the memo type and the second for the itemised briefing. It moves up when the brief says one or two
|
|
15
|
+
pages, when the source names recipients, or when the content is a single request or a single piece of
|
|
16
|
+
news.
|
|
17
|
+
|
|
18
|
+
## When it is the wrong choice
|
|
19
|
+
|
|
20
|
+
- More than about two pages: without parts and a title block the text becomes a wall; use Report or
|
|
21
|
+
Brief.
|
|
22
|
+
- A briefing for an executive who reads numbered points and a boxed request: Brief.
|
|
23
|
+
- A document with several tables or figures that need captions and a summary strip: Report.
|
|
24
|
+
- A proposal asking for money: Proposal carries the cover, budget and schedule.
|
|
25
|
+
|
|
26
|
+
## Structure
|
|
27
|
+
|
|
28
|
+
Memo has the fewest structural features of any pack, and that is its signature: a memo block instead
|
|
29
|
+
of a title block, no components, no numbering, no contents and no running head on page 1. Rendered
|
|
30
|
+
from the same source, any other tonality differs from it in at least three of those features
|
|
31
|
+
(`qa_docx.py a.docx --compare b.docx`, check `tonality.structure`).
|
|
32
|
+
|
|
33
|
+
- **Page 1: the memo block.** A small bold label in muted ink (the `kicker=` of `::: cover`, or 메모 /
|
|
34
|
+
Memo by default), the subject as the title at about 1.8 times the body, then the recipient rows
|
|
35
|
+
between two ink hairlines. Write those rows inside `::: cover` as lines of `Key: value` pairs
|
|
36
|
+
separated by ` · `. Recognised keys: `To`, `From`, `Date`, `Subject`, `Cc`, `받는 사람`, `보내는 사람`,
|
|
37
|
+
`날짜`, `제목`, `참조`. When no date row is written, the frontmatter date is inserted after the sender
|
|
38
|
+
in the Korean form `2026. 6. 30.`. English values start with a capital. Other lines in the block
|
|
39
|
+
render as an opening paragraph under the rows. The frontmatter `notice:` prints once under the block
|
|
40
|
+
in small muted text. `variant=` on the cover is accepted and ignored.
|
|
41
|
+
- **Summary form.** No summary section: the opening paragraph is the summary. State the request or the
|
|
42
|
+
news and its date in the first two sentences.
|
|
43
|
+
- **Numbering.** None. Short memos often need no headings at all; two to four parts under plain
|
|
44
|
+
headings (`# 배경`, `# 요청 사항`, `# 일정`) are the most a memo carries.
|
|
45
|
+
- **Components.** None. A `::: callout` keeps its content as text, its title as a bold lead line with a
|
|
46
|
+
heading's space above it (12 pt), and stdout says so; that bold line is the memo's natural way to mark the request. Key figures become a
|
|
47
|
+
plain list with the basis in brackets. Do not plan components on the direction card; the purpose
|
|
48
|
+
line for each is "none".
|
|
49
|
+
- **Tables.** One booktabs table at most, `<표 1>` above, `주:` and `자료:` under it.
|
|
50
|
+
- **Running head.** The folio alone at the foot, right, from page 2. Nothing in the header.
|
|
51
|
+
- **Contents.** None.
|
|
52
|
+
|
|
53
|
+
## Tokens
|
|
54
|
+
|
|
55
|
+
Values at the pack default (density 9, variance 2), from `templates/tonalities/memo.yaml`. The pack has
|
|
56
|
+
no accent: the palette is ink, muted ink and a grey rule only.
|
|
57
|
+
|
|
58
|
+
| Token | Value |
|
|
59
|
+
|---|---|
|
|
60
|
+
| Paper, margins | A4; top 25, bottom 27, left 25, right 25 mm; text block 160 mm |
|
|
61
|
+
| Body | Pretendard 10.5 pt Korean / 11 pt English; Korean justified, English ragged right |
|
|
62
|
+
| Line pitch | tight spacing: Hangul 165 % (Word multiple 1.08), Latin 120 % (0.78), the low ends of A4.3 |
|
|
63
|
+
| Paragraph spacing | 5 pt after (4 pt English), no indent; a paragraph after a list stands 6 pt clear of it |
|
|
64
|
+
| Heading space | h1 12 pt above, 5 below; h2 10 / 4; h3 9 / 3 (other packs 22 / 9, 15 / 6, 11 / 4) |
|
|
65
|
+
| Scale (Korean) | h1 12.5 pt (1.2x), h2 11.5 pt (1.1x), h3 10.5 pt bold; subject title 19 pt (1.8x) |
|
|
66
|
+
| Scale (English) | h1 13, h2 12, h3 11 pt bold; subject title 20 pt |
|
|
67
|
+
| Ink | body and headings `#1A1A1A`; muted `#555555`; rules `#8C8C8C` |
|
|
68
|
+
| Accent | no accent |
|
|
69
|
+
| Memo block | 9.5 pt Korean / 10 pt English, labels bold, between two 0.5 pt ink hairlines |
|
|
70
|
+
| Tables | booktabs, 9.5 / 10 pt, header bold, numbers right-aligned; cells 2 pt above and below |
|
|
71
|
+
| Running head | folio from page 2, footer right, muted |
|
|
72
|
+
| Components | none |
|
|
73
|
+
| Figures | at most 0.40 of the frame height |
|
|
74
|
+
| Fill | no page under 0.35 except the last (`fill.page`); a memo never spills onto a second page it fills under a quarter of the frame (`memo.fit`) |
|
|
75
|
+
|
|
76
|
+
A memo stays on one page when its content allows: the pack's `spacing: tight` sets the tokens above,
|
|
77
|
+
and the page check `memo.fit` (qa_docx.py --layout) fails a memo that spills less than a quarter of a
|
|
78
|
+
page onto page 2; a longer second page is a two-page memo, which the pack allows. When it still spills, cut the lines that spill before reaching for the dials.
|
|
79
|
+
|
|
80
|
+
**Dials.** Density 7 opens the margins to 27/29/27/27 mm, for a letter that is printed and signed. Density 10 closes the top margin to 24 mm, which may pull a memo that spills three
|
|
81
|
+
lines onto page 3 back to two; cutting a sentence first is usually better. Variance changes nothing:
|
|
82
|
+
the pack never gains a cover or a component.
|
|
83
|
+
|
|
84
|
+
## Worked source
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
---
|
|
88
|
+
title: 회의실 예약 방식 변경 안내
|
|
89
|
+
date: 2026-10-06
|
|
90
|
+
tonality: memo
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
::: cover kicker="공지"
|
|
94
|
+
받는 사람: 각 팀장 · 보내는 사람: 총무팀
|
|
95
|
+
참조: 경영지원실장
|
|
96
|
+
:::
|
|
97
|
+
|
|
98
|
+
11월 1일부터 회의실은 사내 예약 시스템으로만 예약할 수 있습니다. 팀별 고정 예약 시간은 10월 17일(금)까지 알려 주시기 바랍니다.
|
|
99
|
+
|
|
100
|
+
# 변경 내용
|
|
101
|
+
|
|
102
|
+
종이 예약 대장은 10월 31일에 폐지합니다. 시스템 예약은 2주 앞까지 가능하며, 고정 예약은 팀당 주 2회로 제한합니다.
|
|
103
|
+
|
|
104
|
+
# 문의
|
|
105
|
+
|
|
106
|
+
총무팀 내선 1234
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
The frontmatter date appears as a `날짜` row reading `2026. 10. 6.` right after the sender. No ISO date
|
|
110
|
+
is left in the Korean text; the gate check `date.iso` fails one.
|
|
111
|
+
|
|
112
|
+
## Headings
|
|
113
|
+
|
|
114
|
+
| Use | Not |
|
|
115
|
+
|---|---|
|
|
116
|
+
| 회의실 예약 방식 변경 안내 | 회의실 예약 방식이 바뀝니다 |
|
|
117
|
+
| 요청 사항과 기한 | 17일까지 회신해 주세요 |
|
|
118
|
+
| Room booking change | We are changing room booking |
|
|
119
|
+
|
|
120
|
+
Write the subject row the same way as the title. `heading.declarative` reads headings, the title and
|
|
121
|
+
the subtitle; the memo rows are not read by the gate, so the subject row depends on the writer.
|
|
122
|
+
|
|
123
|
+
## Numbers
|
|
124
|
+
|
|
125
|
+
A memo rarely needs a key figure. A deadline, an amount or a count goes into its sentence with its unit
|
|
126
|
+
and date; example values carry (예시) or (sample).
|
|
127
|
+
|
|
128
|
+
## Failure patterns
|
|
129
|
+
|
|
130
|
+
- A memo written with a cover page or a decorative cover variant: Memo has none and sets the memo block
|
|
131
|
+
regardless.
|
|
132
|
+
- Recipient lines written as running text ("To all team leads from …"); use `Key: value` pairs so they
|
|
133
|
+
become rows.
|
|
134
|
+
- A callout or key-figure strip planned on the direction card: neither is drawn.
|
|
135
|
+
- Headings at every second paragraph; a memo under a page often needs none.
|
|
136
|
+
- A second page holding three lines: tighten the prose before raising density; the last page is exempt
|
|
137
|
+
from `fill.page`, so this is the reader's problem, not the gate's.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Proposal
|
|
2
|
+
|
|
3
|
+
Proposal is the plan or proposal as a document (제안서, 기획서, 사업 계획서): something a reader is asked
|
|
4
|
+
to approve, fund or join. It is the only pack with a cover page of its own, and that cover is
|
|
5
|
+
typographic: a label, a large title set left in the upper third of the page, one short wine-coloured
|
|
6
|
+
rule, the subtitle and a lead paragraph, with the byline, date and notice at the foot. The body that
|
|
7
|
+
follows is as plain as a report's: near-black headings without numbers, booktabs tables, one decision
|
|
8
|
+
box and one key-figure strip. A proposal persuades through a clear request, an honest budget and a
|
|
9
|
+
schedule a reader can check; the pages carry no brochure devices.
|
|
10
|
+
|
|
11
|
+
## When to use it
|
|
12
|
+
|
|
13
|
+
Choose Proposal for 사업 제안서, 기획서, 계획서, a grant or budget request, a partnership proposal written
|
|
14
|
+
as a document, or a project plan with costs and a schedule. It is the first candidate for the proposal
|
|
15
|
+
type. It moves up when the source asks the reader to approve an amount, when it holds a budget and a
|
|
16
|
+
timeline, or when the document is sent ahead of a meeting where the decision will be taken.
|
|
17
|
+
|
|
18
|
+
## When it is the wrong choice
|
|
19
|
+
|
|
20
|
+
- A results report with a decision at the end: Report reads as evidence, Proposal as a request.
|
|
21
|
+
- A one-to-three page decision request: Brief or Memo; a cover page on a two-page document wastes a
|
|
22
|
+
page.
|
|
23
|
+
- A technical procedure: Manual.
|
|
24
|
+
- A document whose reader expects no cover and numbered parts (a regulator, an audit): Report.
|
|
25
|
+
|
|
26
|
+
## Structure
|
|
27
|
+
|
|
28
|
+
Proposal differs from the other packs in its cover page, its unnumbered sections with a centred folio,
|
|
29
|
+
and its budget-led body; any other tonality rendered from the same source differs from it in at least
|
|
30
|
+
three structural features (`qa_docx.py a.docx --compare b.docx`, check `tonality.structure`).
|
|
31
|
+
|
|
32
|
+
- **Page 1: a typographic cover page.** The label (`kicker=`, for example `사업 제안서`), the title
|
|
33
|
+
left-aligned about a fifth of the way down the page, a short rule in the accent, the subtitle, and
|
|
34
|
+
the lead paragraph written inside `::: cover`. The byline, the date in the form `2026. 6. 30.` and the
|
|
35
|
+
frontmatter `notice:` stand at the foot of the cover. There is no colour block and no figure on the
|
|
36
|
+
cover; `variant=` is accepted and ignored. The body starts on the next page, numbered 1.
|
|
37
|
+
- **Summary.** `# 제안 요약` / `# Summary` as prose: the request in one sentence, then why now. The
|
|
38
|
+
key-figure strip (cost, time, result) is set after the summary's first paragraph; figures written
|
|
39
|
+
inside the cover block are moved there automatically.
|
|
40
|
+
- **Numbering.** Sections are unnumbered. Levels part by weight and the space above.
|
|
41
|
+
- **Components and their purpose.** Three kinds are allowed: `keyfigures` (one strip of three
|
|
42
|
+
comparable numbers the reader will be asked to approve), `callout` (one box at most, the decision
|
|
43
|
+
asked and its date), and `columns` (two blocks of nearly equal length, such as quantitative and
|
|
44
|
+
qualitative effects). Every component needs its purpose line on the direction card.
|
|
45
|
+
- **Budget and schedule.** `# 소요 예산` and `# 추진 일정` as booktabs tables, a total row in bold under
|
|
46
|
+
a thin rule, the unit hoisted to a `(단위: 백만 원)` line when every amount column shares it.
|
|
47
|
+
- **Running head.** The folio alone, centred at the foot; nothing on the cover. No header.
|
|
48
|
+
- **Contents.** None by default; a proposal long enough to need contents is usually a report.
|
|
49
|
+
|
|
50
|
+
## Tokens
|
|
51
|
+
|
|
52
|
+
Values at the pack default (density 8, variance 6), from `templates/tonalities/proposal.yaml`.
|
|
53
|
+
|
|
54
|
+
| Token | Value |
|
|
55
|
+
|---|---|
|
|
56
|
+
| Paper, margins | A4; top 26, bottom 28, left 26, right 26 mm; text block 158 mm |
|
|
57
|
+
| Body | Pretendard 10.5 pt Korean / 11 pt English; Korean justified, English ragged right |
|
|
58
|
+
| Line pitch | Hangul 175 % (Word multiple 1.14), Latin 133 % (0.87) |
|
|
59
|
+
| Paragraph spacing | 6 pt after (5 pt English), no indent |
|
|
60
|
+
| Scale (Korean) | h1 14.5 pt (1.4x), h2 12.5 pt (1.2x), h3 10.5 pt bold; cover title 28.5 pt (2.7x) |
|
|
61
|
+
| Scale (English) | h1 15.5, h2 13, h3 11 pt bold; cover title 29.5 pt |
|
|
62
|
+
| Ink | body and headings `#1A1A1A`; muted `#555555`; rules `#8C8C8C` |
|
|
63
|
+
| Accent | wine `6E2639`, on the cover title rule and the callout rule only |
|
|
64
|
+
| Tables | booktabs, 9.5 pt Korean / 10 pt English, header bold, numbers right-aligned |
|
|
65
|
+
| Key figure | h2 size, bold, in ink over an ink hairline, three per row |
|
|
66
|
+
| Running head | folio centred at the foot, 8.5 / 9 pt muted; none on the cover |
|
|
67
|
+
| Components | keyfigures, callout (one at most), columns |
|
|
68
|
+
| Figures | at most 0.60 of the frame height |
|
|
69
|
+
| Fill | no body page under 0.35 (`fill.page`) |
|
|
70
|
+
|
|
71
|
+
**Dials.** Density 6 or 7 opens the margins to 27/29/27/27 mm and the Hangul pitch to 180 %, for a
|
|
72
|
+
printed proposal handed over in a meeting. Density 10 closes them to 24/26/25/25 mm for a proposal held
|
|
73
|
+
to a page limit by a call for proposals; the body never drops below 10.5 pt. Variance no longer adds
|
|
74
|
+
kinds, table styles or cover looks.
|
|
75
|
+
|
|
76
|
+
## Worked source
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
::: cover kicker="사업 제안서"
|
|
80
|
+
예시 기관의 창고 두 곳에 재고 자동 추적을 도입하는 계획이다. 실사 시간과 출고 오류를 함께 줄이는 것이 목표다.
|
|
81
|
+
:::
|
|
82
|
+
|
|
83
|
+
# 제안 요약
|
|
84
|
+
|
|
85
|
+
창고 두 곳에 재고 자동 추적 장비를 도입하는 사업비 4.2억 원의 승인을 요청한다.
|
|
86
|
+
|
|
87
|
+
::: keyfigures cols=3
|
|
88
|
+
- **4.2억 원** 총사업비 (예시)
|
|
89
|
+
- 2027년 1-12월, 장비와 구축 포함
|
|
90
|
+
- **11개월** 투자 회수 기간 (예시)
|
|
91
|
+
- 연간 절감액 4.6억 원 기준, 내부 추정
|
|
92
|
+
- **38%** 재고 실사 시간 감소 (예시)
|
|
93
|
+
- 시범 창고, 2026년 3-5월 측정
|
|
94
|
+
:::
|
|
95
|
+
|
|
96
|
+
::: callout kind=key title="결정 요청"
|
|
97
|
+
2027년 예산 편성 전, 2026. 11. 30.까지 사업 추진 여부를 결정해 주시기 바랍니다.
|
|
98
|
+
:::
|
|
99
|
+
|
|
100
|
+
# 소요 예산
|
|
101
|
+
|
|
102
|
+
표 1. 항목별 소요 예산 (예시)
|
|
103
|
+
|
|
104
|
+
| 항목 | 상반기 (백만 원) | 하반기 (백만 원) |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| 장비 | 180 | 60 |
|
|
107
|
+
| 구축 | 70 | 50 |
|
|
108
|
+
| 합계 | 250 | 110 |
|
|
109
|
+
|
|
110
|
+
자료: 공급사 견적, 내부 추정 (예시)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Headings
|
|
114
|
+
|
|
115
|
+
| Use | Not |
|
|
116
|
+
|---|---|
|
|
117
|
+
| 재고 자동 추적 도입 계획 | 재고 자동 추적을 도입하면 비용이 줄어든다 |
|
|
118
|
+
| 소요 예산과 회수 기간 | 11개월이면 투자금을 회수할 수 있다 |
|
|
119
|
+
| Expected benefits | This plan pays for itself in a year |
|
|
120
|
+
|
|
121
|
+
The title and subtitle are labels too; the persuasive sentence goes in the cover's lead paragraph and
|
|
122
|
+
the first sentence of the summary. `heading.declarative` fails a heading, title or subtitle written as
|
|
123
|
+
a sentence.
|
|
124
|
+
|
|
125
|
+
## Numbers
|
|
126
|
+
|
|
127
|
+
Key figures sit at the h2 size in the summary, never on the cover. Each carries a label and a basis
|
|
128
|
+
line (period, scope, source). Estimates say (추정), (예시) or (estimate) in the label, and a payback or
|
|
129
|
+
saving shows the assumption it rests on. A figure without a basis is written into a sentence.
|
|
130
|
+
|
|
131
|
+
## Failure patterns
|
|
132
|
+
|
|
133
|
+
- A cover holding six figures: none stays on the cover, only the first strip is drawn in the summary,
|
|
134
|
+
and the rest belong in the budget table.
|
|
135
|
+
- A second callout for a risk: only one box is drawn (decision request first); write the risk as a
|
|
136
|
+
short part with its own heading.
|
|
137
|
+
- Every part opened with a full-page picture: the median fill drops below 0.75 and the argument
|
|
138
|
+
disappears; one picture per part at most.
|
|
139
|
+
- A budget table split over two pages (`table.split`); start it at the top of a page or shorten it.
|
|
140
|
+
- Expecting each part to start on a new page: there is no forced break before an h1.
|