@litfamily/litopencode 1.0.17 → 1.0.18
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 +6 -0
- package/README-Ko-KR.md +10 -10
- package/README.md +10 -10
- package/dist/deliverable-hedge-guard.js +3 -1
- package/dist/hooks.js +2 -1
- package/docs/assets/readme/badge-version.svg +1 -1
- package/package.json +1 -1
- package/skills/lit-docx/scripts/docx_design.py +1 -1
- package/skills/lit-docx/templates/tonalities/brief.yaml +0 -1
- package/skills/lit-docx/templates/tonalities/journal.yaml +0 -1
- package/skills/lit-docx/templates/tonalities/manual.yaml +0 -1
- package/skills/lit-docx/templates/tonalities/memo.yaml +0 -1
- package/skills/lit-docx/templates/tonalities/proposal.yaml +0 -1
- package/skills/lit-docx/templates/tonalities/report.yaml +0 -1
- package/skills/lit-pptx/references/tonalities/atlas.md +3 -4
- package/skills/lit-pptx/references/tonalities/chalk.md +2 -2
- package/skills/lit-pptx/references/tonalities/gazette.md +3 -3
- package/skills/lit-pptx/references/tonalities/ledger.md +6 -7
- package/skills/lit-pptx/references/tonalities/night.md +3 -3
- package/skills/lit-pptx/references/tonalities/paper.md +4 -5
- package/skills/lit-pptx/references/tonalities/signal.md +3 -4
- package/skills/lit-pptx/references/tonalities/studio.md +3 -3
- package/skills/lit-pptx/scripts/validate_pptx.py +10 -4
- package/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +2 -8
- package/skills/lit-pptx/templates/tonalities/night/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/paper/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/signal/pack.yaml +0 -6
- package/skills/lit-pptx/templates/tonalities/studio/pack.yaml +0 -6
- package/skills/managed-skill-manifest.json +24 -24
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ are tracked separately from this product history.
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
+
## 1.0.18 - 2026-10-09
|
|
9
|
+
|
|
10
|
+
- The prose check that runs before a file is written now works inside OpenCode. It used to start under OpenCode's own program instead of Node and to look for the new text in the wrong place, so it never saw a write. It now stops an added line such as an unrequested source label before the file is saved, adds a short note after the write when the wording only needs a second look, and checks the text of the Word, PowerPoint and PDF files a session creates.
|
|
11
|
+
- The eight deck looks and six document looks no longer list settings the engines never applied, such as tabular figures, chart annotation, picture bleed and crop, and page-fill targets, and their reference pages no longer promise them. Decks and documents come out exactly as before.
|
|
12
|
+
- The deck check treats a one-word placeholder term such as "todo", "tbd", "fixme" or "placeholder" as a word. A word like "Mastodon" no longer fails a deck, while "TODO:", "TODOs" and "(TBD)" still do.
|
|
13
|
+
|
|
8
14
|
## 1.0.17 - 2026-10-08
|
|
9
15
|
|
|
10
16
|
- `lit-pptx` now decides how a deck should look before it builds anything. It reads what the deck is for and who will see it, then picks one of eight looks: one for dense reviews that are read closely, one for pitches, one for decks led by pictures, one for teaching, one for research talks, one for Korean briefing pages, one for editorial portfolios and one for data talks on a dark screen. The reply names the look, says why it fits and offers two alternatives. A bare request gets no style questions.
|
package/README-Ko-KR.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
1
|
+
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/cover-motion.webp" width="100%" alt="LitFamily 모션 커버: 다섯 로봇 패널이 차례로 켜지고, LitOpenCode 로봇의 눈과 테두리가 빛난 뒤 LITFAMILY와 KEEP THE WORK LIT. 문구가 밝아지는 영상" /></picture></p>
|
|
2
2
|
|
|
3
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
3
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
|
|
4
4
|
|
|
5
5
|
<details>
|
|
6
6
|
<summary>ASCII 로고 복사</summary>
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
|
|
33
33
|
# LitOpenCode
|
|
34
34
|
|
|
35
|
-
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
35
|
+
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/README-Ko-KR.md)
|
|
36
36
|
|
|
37
37
|
> **불씨를 건네받았다.**<br>
|
|
38
38
|
> **이제, 당신의 작업에 옮길 차례다.**
|
|
39
39
|
|
|
40
40
|
<p align="center">
|
|
41
|
-
<a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
42
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
41
|
+
<a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/badge-version.svg" alt="1.0.18" /></a>
|
|
42
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/badge-license.svg" alt="MIT 라이선스" /></a>
|
|
43
43
|
</p>
|
|
44
44
|
|
|
45
45
|
LitOpenCode는 OpenCode에 워크플로 agent, 슬래시 명령, 로컬 근거 기록을 더합니다.
|
|
@@ -99,7 +99,7 @@ OpenAI 제공자를 쓰면 새로 설치했을 때 계획과 검토는 GPT-6 Ast
|
|
|
99
99
|
- planner는 계획만 세웁니다. `lit-plan`은 `edit`, `bash`, `task` 권한이 거부되어 있고, 더 느슨한 `balanced`나 `yolo` 모드를 직접 골라도 그대로입니다.
|
|
100
100
|
- LitOpenCode는 대화형으로 시작할 때와 install이나 doctor가 성공한 뒤에 스스로 업데이트할 수 있습니다. 끄려면 `--no-auto-update`를 붙이거나 `LITOPENCODE_NO_AUTO_UPDATE=1`을 설정하세요.
|
|
101
101
|
- 스킬 학습 기능은 제거되었습니다. 이전 릴리스가 프로젝트의 `.litopencode` 폴더에 남긴 학습 기록은 더 이상 쓰이지 않으니, 남겨 두든 지우든 편한 대로 하면 됩니다.
|
|
102
|
-
- Jev 스킬 힌트는 선택 기능이고 기본값은 꺼짐입니다. 켜면 조건에 맞는 프롬프트가 TypeSafe로 전송되니, 먼저 [Jev 스킬 힌트 참조 문서](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
102
|
+
- Jev 스킬 힌트는 선택 기능이고 기본값은 꺼짐입니다. 켜면 조건에 맞는 프롬프트가 TypeSafe로 전송되니, 먼저 [Jev 스킬 힌트 참조 문서](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference-Ko-KR.md#jev-스킬-힌트-선택)를 읽어 보세요. 알림과 doctor 줄이 어떻게 보이는지는 [GitHub 페이지](https://github.com/wjgoarxiv/litopencode/blob/master/README-Ko-KR.md#화면에서-보이는-것)에서 볼 수 있습니다.
|
|
103
103
|
- 뭔가 이상하면 `npm exec --package @litfamily/litopencode@latest -- litopencode doctor`로 패키지와 설정 상태를 확인하세요.
|
|
104
104
|
|
|
105
105
|
## 제거
|
|
@@ -110,11 +110,11 @@ OpenAI 제공자를 쓰면 새로 설치했을 때 계획과 검토는 GPT-6 Ast
|
|
|
110
110
|
npm uninstall -g @litfamily/litopencode
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
남겨 둘 만한 설치 파일과 기록은 [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
113
|
+
남겨 둘 만한 설치 파일과 기록은 [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference-Ko-KR.md#제거)에 정리되어 있습니다.
|
|
114
114
|
|
|
115
115
|
## 더 보기
|
|
116
116
|
|
|
117
117
|
- [GitHub 전체 안내](https://github.com/wjgoarxiv/litopencode/blob/master/README-Ko-KR.md)
|
|
118
|
-
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
119
|
-
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
120
|
-
- [MIT 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
118
|
+
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference-Ko-KR.md) · [English reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference.md)
|
|
119
|
+
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/migration.md) · [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/CHANGELOG.md) · [개인정보와 네트워크 동작](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/privacy.md)
|
|
120
|
+
- [MIT 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/LICENSE) · [ASCII 글꼴 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/JetBrainsMono-OFL.txt)
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
1
|
+
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/cover-motion.webp" width="100%" alt="LitFamily motion cover: five armored robots power on one by one, the LitOpenCode robot wakes with glowing eyes and a lit frame, then LITFAMILY and KEEP THE WORK LIT. light up." /></picture></p>
|
|
2
2
|
|
|
3
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
3
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
|
|
4
4
|
|
|
5
5
|
<details>
|
|
6
6
|
<summary>Copy ASCII logo</summary>
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
|
|
33
33
|
# LitOpenCode
|
|
34
34
|
|
|
35
|
-
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
35
|
+
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/README-Ko-KR.md)
|
|
36
36
|
|
|
37
37
|
**Keep the work lit.**
|
|
38
38
|
|
|
39
39
|
<p align="center">
|
|
40
|
-
<a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
41
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
40
|
+
<a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/badge-version.svg" alt="1.0.18" /></a>
|
|
41
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
|
|
42
42
|
</p>
|
|
43
43
|
|
|
44
44
|
LitOpenCode adds workflow agents, slash commands, and a local evidence ledger to OpenCode.
|
|
@@ -98,7 +98,7 @@ With the OpenAI provider, a fresh install uses GPT-6 Astra (`gpt-6-astra`) at `x
|
|
|
98
98
|
- The planner only plans. `lit-plan` has `edit`, `bash` and `task` denied, and it stays that way even if you choose the looser `balanced` or `yolo` mode.
|
|
99
99
|
- LitOpenCode can update itself when it starts interactively and after an install or doctor run succeeds. To turn that off, pass `--no-auto-update` or set `LITOPENCODE_NO_AUTO_UPDATE=1`.
|
|
100
100
|
- Skill learning has been removed. Learning records an earlier release left in a project's `.litopencode` folder are no longer used; keep or delete them as you like.
|
|
101
|
-
- The Jev skill hint is optional and off by default. Turning it on sends eligible prompts to TypeSafe, so read the [Jev skill hint reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
101
|
+
- The Jev skill hint is optional and off by default. Turning it on sends eligible prompts to TypeSafe, so read the [Jev skill hint reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference.md#jev-skill-hint-optional) first. The GitHub page shows [what the toast and the doctor line look like](https://github.com/wjgoarxiv/litopencode#what-you-will-see).
|
|
102
102
|
- If something seems off, `npm exec --package @litfamily/litopencode@latest -- litopencode doctor` checks the package and your configuration.
|
|
103
103
|
|
|
104
104
|
## Uninstall
|
|
@@ -109,11 +109,11 @@ There's no uninstall command. Remove the `@litfamily/litopencode` entry from the
|
|
|
109
109
|
npm uninstall -g @litfamily/litopencode
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
The [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
112
|
+
The [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference.md#remove) covers the installed files and records you may want to keep.
|
|
113
113
|
|
|
114
114
|
## More
|
|
115
115
|
|
|
116
116
|
- [Full guide on GitHub](https://github.com/wjgoarxiv/litopencode#readme)
|
|
117
|
-
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
118
|
-
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
119
|
-
- [MIT license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
117
|
+
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference.md) · [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/reference-Ko-KR.md)
|
|
118
|
+
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/migration.md) · [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/CHANGELOG.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/privacy.md)
|
|
119
|
+
- [MIT license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/LICENSE) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.18/docs/assets/readme/JetBrainsMono-OFL.txt)
|
|
@@ -2,6 +2,7 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import fs from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { childNodeExecutable } from "./cli/auto-update.js";
|
|
5
6
|
import { mutatedFilePaths } from "./tool-guards.js";
|
|
6
7
|
const defaultTimeoutMs = 1500;
|
|
7
8
|
const maxTextBytes = 4 * 1024 * 1024;
|
|
@@ -108,7 +109,8 @@ function runJsonProcess(command, args, input, timeoutMs) {
|
|
|
108
109
|
});
|
|
109
110
|
}
|
|
110
111
|
async function defaultScan(request, timeoutMs) {
|
|
111
|
-
|
|
112
|
+
// Inside OpenCode, process.execPath is the Bun host binary, which cannot run the worker script.
|
|
113
|
+
const raw = await runJsonProcess(childNodeExecutable(), [detectorWorker], JSON.stringify(request), timeoutMs);
|
|
112
114
|
const parsed = JSON.parse(raw);
|
|
113
115
|
if (!Array.isArray(parsed.findings))
|
|
114
116
|
throw new Error("detector returned an invalid response");
|
package/dist/hooks.js
CHANGED
|
@@ -7,7 +7,8 @@ export function createToolExecuteBeforeHook(options = {}) {
|
|
|
7
7
|
return async (input, output) => {
|
|
8
8
|
await applyTaskRecursionGuard(input, options.getSession);
|
|
9
9
|
applyLitOpenCodeToolBeforeHook(input, output);
|
|
10
|
-
|
|
10
|
+
// OpenCode sends the tool arguments only in output.args before a call.
|
|
11
|
+
await options.deliverableHedgeGuard?.before({ ...input, args: output.args ?? input.args });
|
|
11
12
|
};
|
|
12
13
|
}
|
|
13
14
|
export function createToolExecuteAfterHook(options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.18"><title>release: 1.0.18</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.18</text></g></svg>
|
package/package.json
CHANGED
|
@@ -58,7 +58,7 @@ LABELS = {
|
|
|
58
58
|
}
|
|
59
59
|
PACK_KEYS = {"schema_version", "tonality", "summary", "dials", "docx", "design"}
|
|
60
60
|
DESIGN_KEYS = {"ramp", "numbering", "h1_rule", "title_block", "contents", "summary_form", "conclusion_first", "running_head", "justify",
|
|
61
|
-
"palette", "accent_on", "page_geometry", "components", "figure_style", "
|
|
61
|
+
"palette", "accent_on", "page_geometry", "components", "figure_style", "spacing"}
|
|
62
62
|
ACCENT_PLACES = ("title_rule", "callout_rule", "sidebar_rule")
|
|
63
63
|
DIRECTIVE_KEYS = {
|
|
64
64
|
"cover": {"variant", "image", "kicker"},
|
|
@@ -34,7 +34,7 @@ colour; the pack's own accent is a quiet navy. Pack file: `templates/tonalities/
|
|
|
34
34
|
## Type
|
|
35
35
|
|
|
36
36
|
Pretendard throughout. Compact ramp at density 10. Titles at normal tracking, display slightly
|
|
37
|
-
tight
|
|
37
|
+
tight.
|
|
38
38
|
|
|
39
39
|
## Dials
|
|
40
40
|
|
|
@@ -73,9 +73,8 @@ Display devices: cover `plate`, statement `drench`, big number on a tint, closin
|
|
|
73
73
|
|
|
74
74
|
- Tables `light-grid`: no header fill, row rules, no banding, numbers right-aligned, totals bold.
|
|
75
75
|
A table can only appear inside a family that holds one (kpi-row, a closing).
|
|
76
|
-
- Charts: hairline gridlines, direct labels
|
|
77
|
-
- Images:
|
|
78
|
-
proportions, never stretched.
|
|
76
|
+
- Charts: hairline gridlines, direct labels.
|
|
77
|
+
- Images: no frame; pictures are cropped to their box with their own proportions, never stretched.
|
|
79
78
|
|
|
80
79
|
## Decoration vocabulary
|
|
81
80
|
|
|
@@ -74,8 +74,8 @@ Display devices: cover `rail`, statement `drench`, big number on a tint, closing
|
|
|
74
74
|
|
|
75
75
|
- Tables `header-fill`: a pale apricot header with dark rust labels, row rules, no banding, numbers
|
|
76
76
|
right-aligned, totals bold.
|
|
77
|
-
- Charts (if a chart appears in a table-insight): hairline gridlines, direct labels
|
|
78
|
-
- Images
|
|
77
|
+
- Charts (if a chart appears in a table-insight): hairline gridlines, direct labels.
|
|
78
|
+
- Images: no frame.
|
|
79
79
|
|
|
80
80
|
## Decoration vocabulary
|
|
81
81
|
|
|
@@ -33,7 +33,7 @@ Pack file: `templates/tonalities/gazette/pack.yaml`.
|
|
|
33
33
|
|
|
34
34
|
## Type
|
|
35
35
|
|
|
36
|
-
Pretendard throughout. Compact ramp at density 10 (body 13 pt, tables 11 pt).
|
|
36
|
+
Pretendard throughout. Compact ramp at density 10 (body 13 pt, tables 11 pt).
|
|
37
37
|
|
|
38
38
|
## Dials
|
|
39
39
|
|
|
@@ -71,8 +71,8 @@ outline, and `index: true`: a section page repeats the agenda with the current p
|
|
|
71
71
|
|
|
72
72
|
- Tables `header-fill`: slate blue header with white labels, a full grid of rules, pale slate
|
|
73
73
|
banding, numbers right-aligned, totals bold. The densest table style of the eight.
|
|
74
|
-
- Charts: hairline gridlines, direct labels
|
|
75
|
-
- Images:
|
|
74
|
+
- Charts: hairline gridlines, direct labels.
|
|
75
|
+
- Images: hairline frame.
|
|
76
76
|
|
|
77
77
|
## Decoration vocabulary
|
|
78
78
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ledger
|
|
2
2
|
|
|
3
|
-
Ledger sets a deck like a set of accounts made readable: small exact type,
|
|
3
|
+
Ledger sets a deck like a set of accounts made readable: small exact type, with
|
|
4
4
|
tables and figure rows doing most of the talking. Colour is rationed to two jobs, marking the
|
|
5
5
|
current period and the one number that matters. Pack file: `templates/tonalities/ledger/pack.yaml`.
|
|
6
6
|
|
|
@@ -36,8 +36,7 @@ current period and the one number that matters. Pack file: `templates/tonalities
|
|
|
36
36
|
|
|
37
37
|
Pretendard Regular and Bold throughout (A2Z display and numerals only with `faces: a2z`). At
|
|
38
38
|
density 10 the compact ramp applies: body 13 pt, labels and table cells 11 pt, sources 9 pt, titles
|
|
39
|
-
26 pt.
|
|
40
|
-
digit. Titles track slightly tight; Latin text is sentence case.
|
|
39
|
+
26 pt. Titles track slightly tight.
|
|
41
40
|
|
|
42
41
|
## Dials
|
|
43
42
|
|
|
@@ -78,10 +77,10 @@ with the current part marked.
|
|
|
78
77
|
## Tables and charts
|
|
79
78
|
|
|
80
79
|
- Tables in the `ledger` style: the header row is the deck's one dark mass (dark teal field, white
|
|
81
|
-
labels); rules under the header and above the totals only; no banding; numbers right-aligned
|
|
82
|
-
|
|
83
|
-
- Charts: hairline gridlines, direct labels, one accent on muted series
|
|
84
|
-
- Images (rare here):
|
|
80
|
+
labels); rules under the header and above the totals only; no banding; numbers right-aligned;
|
|
81
|
+
totals bold.
|
|
82
|
+
- Charts: hairline gridlines, direct labels, one accent on muted series.
|
|
83
|
+
- Images (rare here): hairline frame.
|
|
85
84
|
|
|
86
85
|
## Decoration vocabulary
|
|
87
86
|
|
|
@@ -33,7 +33,7 @@ is dark from cover to closing. Pack file: `templates/tonalities/night/pack.yaml`
|
|
|
33
33
|
|
|
34
34
|
## Type
|
|
35
35
|
|
|
36
|
-
Pretendard throughout. Compact ramp at density 10; display tracks tight (−2)
|
|
36
|
+
Pretendard throughout. Compact ramp at density 10; display tracks tight (−2). On a
|
|
37
37
|
dark ground thin light type below 18 pt is avoided, which is why Night never uses a light weight.
|
|
38
38
|
|
|
39
39
|
## Dials
|
|
@@ -72,11 +72,11 @@ Display devices: cover `numeral`, statement `open`, big number on a tint, closin
|
|
|
72
72
|
|
|
73
73
|
- Tables `header-fill`: dark slate header with off-white labels, row rules, no banding, numbers
|
|
74
74
|
right-aligned, totals bold, the protagonist row tinted umber.
|
|
75
|
-
- Charts: hairline gridlines, direct labels, amber on one series with the rest muted
|
|
75
|
+
- Charts: hairline gridlines, direct labels, amber on one series with the rest muted.
|
|
76
76
|
Charts are drawn native and editable, with the pack's body face named for Hangul axis labels.
|
|
77
77
|
The amber goes to the current series: the latest period, else the measured series over its plan
|
|
78
78
|
or target, else the last.
|
|
79
|
-
- Images:
|
|
79
|
+
- Images: no frame.
|
|
80
80
|
- Figures brought in as pictures: a chart or diagram exported on white stands here as a white card
|
|
81
81
|
with small grey labels. Put its dark variant beside it, named with `.dark` before the extension
|
|
82
82
|
(`assets/flow.png` and `assets/flow.dark.png`); Night draws the variant at full size, and the gate
|
|
@@ -31,8 +31,7 @@ method". Pack file: `templates/tonalities/paper/pack.yaml`.
|
|
|
31
31
|
|
|
32
32
|
## Type
|
|
33
33
|
|
|
34
|
-
Pretendard throughout. Compact ramp at density 10; titles at normal tracking
|
|
35
|
-
result columns align.
|
|
34
|
+
Pretendard throughout. Compact ramp at density 10; titles at normal tracking.
|
|
36
35
|
|
|
37
36
|
## Dials
|
|
38
37
|
|
|
@@ -71,10 +70,10 @@ Display devices: cover `rules`, statement `rules`, big number in an `outline`, c
|
|
|
71
70
|
## Tables and charts
|
|
72
71
|
|
|
73
72
|
- Tables in `booktabs` style: no header fill, horizontal rules over and under the header and at
|
|
74
|
-
the foot only, no vertical rules, no banding, numbers right-aligned
|
|
73
|
+
the foot only, no vertical rules, no banding, numbers right-aligned, totals bold.
|
|
75
74
|
- Charts: hairline gridlines, direct labels, series in order (the first series takes the crimson,
|
|
76
|
-
so put the proposed method first)
|
|
77
|
-
- Images: no
|
|
75
|
+
so put the proposed method first).
|
|
76
|
+
- Images: no frame; every figure has a numbered caption from its alt text.
|
|
78
77
|
|
|
79
78
|
## Decoration vocabulary
|
|
80
79
|
|
|
@@ -37,8 +37,7 @@ Because the accent is red, a loss is never red here; write the sign (`▼ 4%`, `
|
|
|
37
37
|
## Type
|
|
38
38
|
|
|
39
39
|
Pretendard throughout; A2Z only on request. Compact ramp at density 10 (body 13, title 26,
|
|
40
|
-
display 36). Display text tracks tighter (−2) than titles (−1)
|
|
41
|
-
suits large single numbers more than columns.
|
|
40
|
+
display 36). Display text tracks tighter (−2) than titles (−1).
|
|
42
41
|
|
|
43
42
|
## Dials
|
|
44
43
|
|
|
@@ -78,8 +77,8 @@ Display devices: cover `drench`, statement `open`, big number on a `field` panel
|
|
|
78
77
|
|
|
79
78
|
- Tables `open`: no header fill, rules at top and bottom only, no banding, numbers right-aligned,
|
|
80
79
|
totals bold, and the protagonist row tinted pale coral.
|
|
81
|
-
- Charts: no gridlines, direct labels, the accent on one series and the rest muted
|
|
82
|
-
- Images
|
|
80
|
+
- Charts: no gridlines, direct labels, the accent on one series and the rest muted.
|
|
81
|
+
- Images: no frame.
|
|
83
82
|
|
|
84
83
|
## Decoration vocabulary
|
|
85
84
|
|
|
@@ -32,7 +32,7 @@ tinted panels, and a dark ochre accent marks the one thing to look at. Pack file
|
|
|
32
32
|
|
|
33
33
|
## Type
|
|
34
34
|
|
|
35
|
-
Pretendard throughout. Compact ramp at density 10; display tracks tight (−2).
|
|
35
|
+
Pretendard throughout. Compact ramp at density 10; display tracks tight (−2).
|
|
36
36
|
|
|
37
37
|
## Dials
|
|
38
38
|
|
|
@@ -76,9 +76,9 @@ big number on a tint, closing step in a `band`.
|
|
|
76
76
|
|
|
77
77
|
- Tables `open`: no header fill, one rule under the header, no banding, numbers right-aligned,
|
|
78
78
|
totals bold. Studio lists no table family, so tables appear only as KPI rows and closing asks.
|
|
79
|
-
- Charts: no gridlines, direct labels, the accent on one series
|
|
79
|
+
- Charts: no gridlines, direct labels, the accent on one series. Column hairlines run
|
|
80
80
|
in the gutter beside a chart's takeaways.
|
|
81
|
-
- Images
|
|
81
|
+
- Images: no frame.
|
|
82
82
|
|
|
83
83
|
## Decoration vocabulary
|
|
84
84
|
|
|
@@ -52,18 +52,24 @@ def _load_terms() -> tuple[list[str], list[str], bool, bool]:
|
|
|
52
52
|
)
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
def _build_regex(terms: list[str], case_insensitive: bool, whole_word: bool) -> re.Pattern[str] | None:
|
|
55
|
+
def _build_regex(terms: list[str], case_insensitive: bool, whole_word: bool, latin_words: bool = False) -> re.Pattern[str] | None:
|
|
56
56
|
if not terms:
|
|
57
57
|
return None
|
|
58
58
|
# An acronym (RAM, FTO) is a word in capitals: matched as that word, so "diagram" or "program"
|
|
59
|
-
# does not contain it.
|
|
59
|
+
# does not contain it. With latin_words, a one-word Latin term (todo, tbd) is matched as a word or
|
|
60
|
+
# its plain plural ("TODOs") in any case, so "Mastodon" does not contain it. Every other term keeps
|
|
61
|
+
# the file's case and word settings.
|
|
60
62
|
acronyms = [term for term in terms if re.fullmatch(r"[A-Z]{2,5}", term)]
|
|
61
|
-
|
|
63
|
+
words = [term for term in terms if latin_words and term not in acronyms and re.fullmatch(r"[A-Za-z]+", term)]
|
|
64
|
+
escaped = [re.escape(term) for term in terms if term not in acronyms and term not in words]
|
|
62
65
|
pattern = "|".join(escaped)
|
|
63
66
|
if whole_word and pattern:
|
|
64
67
|
pattern = rf"(?:(?<=\W)|^)(?:{pattern})(?:(?=\W)|$)"
|
|
65
68
|
if case_insensitive and pattern:
|
|
66
69
|
pattern = f"(?i:{pattern})"
|
|
70
|
+
if words:
|
|
71
|
+
word_pattern = rf"(?<![A-Za-z])(?:{'|'.join(map(re.escape, words))})s?(?![A-Za-z])"
|
|
72
|
+
pattern = "|".join(filter(None, [pattern, f"(?i:{word_pattern})" if case_insensitive else word_pattern]))
|
|
67
73
|
if acronyms:
|
|
68
74
|
pattern = "|".join(filter(None, [pattern, rf"(?<![A-Za-z])(?:{'|'.join(map(re.escape, acronyms))})(?![A-Za-z])"]))
|
|
69
75
|
return re.compile(pattern)
|
|
@@ -138,7 +144,7 @@ def _slide_has_title(slide, slide_height: int | None) -> bool:
|
|
|
138
144
|
def lint(path: str | Path) -> dict[str, Any]:
|
|
139
145
|
prs = Presentation(str(path))
|
|
140
146
|
hard_terms, soft_terms, case_insensitive, whole_word = _load_terms()
|
|
141
|
-
hard_re = _build_regex(hard_terms, case_insensitive, whole_word)
|
|
147
|
+
hard_re = _build_regex(hard_terms, case_insensitive, whole_word, latin_words=True)
|
|
142
148
|
soft_re = _build_regex(soft_terms, case_insensitive, whole_word)
|
|
143
149
|
|
|
144
150
|
missing_titles: list[int] = []
|
|
@@ -47,8 +47,6 @@ hero: false
|
|
|
47
47
|
type-voice:
|
|
48
48
|
title-tracking: 0
|
|
49
49
|
display-tracking: -1
|
|
50
|
-
latin-case: sentence
|
|
51
|
-
figures: proportional
|
|
52
50
|
|
|
53
51
|
density: 10
|
|
54
52
|
variance: 7
|
|
@@ -85,16 +83,12 @@ table:
|
|
|
85
83
|
header-ink: ink
|
|
86
84
|
rules: rows
|
|
87
85
|
banding: none
|
|
88
|
-
numbers: right-tabular
|
|
89
86
|
totals: bold
|
|
90
87
|
chart:
|
|
91
88
|
gridlines: hairline
|
|
92
89
|
labels: direct
|
|
93
90
|
highlight: accent-on-muted
|
|
94
|
-
annotation: off
|
|
95
91
|
image:
|
|
96
|
-
bleed: allowed
|
|
97
|
-
crop: allowed
|
|
98
92
|
frame: none
|
|
99
93
|
|
|
100
94
|
fill-order: [anchor-visual, change-family, distribute, step-up]
|
|
@@ -47,8 +47,6 @@ hero: false
|
|
|
47
47
|
type-voice:
|
|
48
48
|
title-tracking: -1
|
|
49
49
|
display-tracking: -1
|
|
50
|
-
latin-case: sentence
|
|
51
|
-
figures: proportional
|
|
52
50
|
|
|
53
51
|
density: 10
|
|
54
52
|
variance: 6
|
|
@@ -91,16 +89,12 @@ table:
|
|
|
91
89
|
header-ink: accent-deep
|
|
92
90
|
rules: rows
|
|
93
91
|
banding: none
|
|
94
|
-
numbers: right-tabular
|
|
95
92
|
totals: bold
|
|
96
93
|
chart:
|
|
97
94
|
gridlines: hairline
|
|
98
95
|
labels: direct
|
|
99
96
|
highlight: accent-on-muted
|
|
100
|
-
annotation: on
|
|
101
97
|
image:
|
|
102
|
-
bleed: side-only
|
|
103
|
-
crop: none
|
|
104
98
|
frame: none
|
|
105
99
|
|
|
106
100
|
fill-order: [distribute, step-up, change-family, anchor-visual]
|
|
@@ -48,8 +48,6 @@ hero: false
|
|
|
48
48
|
type-voice:
|
|
49
49
|
title-tracking: -1
|
|
50
50
|
display-tracking: -1
|
|
51
|
-
latin-case: sentence
|
|
52
|
-
figures: tabular
|
|
53
51
|
|
|
54
52
|
density: 10
|
|
55
53
|
variance: 4
|
|
@@ -86,16 +84,12 @@ table:
|
|
|
86
84
|
header-ink: on-field
|
|
87
85
|
rules: grid
|
|
88
86
|
banding: surface
|
|
89
|
-
numbers: right-tabular
|
|
90
87
|
totals: bold
|
|
91
88
|
chart:
|
|
92
89
|
gridlines: hairline
|
|
93
90
|
labels: direct
|
|
94
91
|
highlight: accent-on-muted
|
|
95
|
-
annotation: off
|
|
96
92
|
image:
|
|
97
|
-
bleed: none
|
|
98
|
-
crop: none
|
|
99
93
|
frame: hairline
|
|
100
94
|
|
|
101
95
|
fill-order: [step-up, distribute, change-family, anchor-visual]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Ledger: a set of accounts made readable. Small, exact type,
|
|
2
|
-
#
|
|
1
|
+
# Ledger: a set of accounts made readable. Small, exact type, tables and KPI rows
|
|
2
|
+
# doing most of the talking; colour marks only "this
|
|
3
3
|
# period" and the one figure that matters. Wrong for a live pitch with little data
|
|
4
4
|
# or for a briefing that is read as prose.
|
|
5
5
|
id: ledger
|
|
@@ -48,8 +48,6 @@ hero: false
|
|
|
48
48
|
type-voice:
|
|
49
49
|
title-tracking: -1
|
|
50
50
|
display-tracking: -1
|
|
51
|
-
latin-case: sentence
|
|
52
|
-
figures: tabular
|
|
53
51
|
|
|
54
52
|
density: 10
|
|
55
53
|
variance: 5
|
|
@@ -87,16 +85,12 @@ table:
|
|
|
87
85
|
header-ink: on-field
|
|
88
86
|
rules: header-and-totals
|
|
89
87
|
banding: none
|
|
90
|
-
numbers: right-tabular
|
|
91
88
|
totals: bold
|
|
92
89
|
chart:
|
|
93
90
|
gridlines: hairline
|
|
94
91
|
labels: direct
|
|
95
92
|
highlight: accent-on-muted
|
|
96
|
-
annotation: on
|
|
97
93
|
image:
|
|
98
|
-
bleed: side-only
|
|
99
|
-
crop: none
|
|
100
94
|
frame: hairline
|
|
101
95
|
|
|
102
96
|
fill-order: [step-up, distribute, anchor-visual, change-family]
|
|
@@ -47,8 +47,6 @@ hero: false
|
|
|
47
47
|
type-voice:
|
|
48
48
|
title-tracking: -1
|
|
49
49
|
display-tracking: -2
|
|
50
|
-
latin-case: sentence
|
|
51
|
-
figures: tabular
|
|
52
50
|
|
|
53
51
|
density: 10
|
|
54
52
|
variance: 6
|
|
@@ -85,17 +83,13 @@ table:
|
|
|
85
83
|
header-ink: ink
|
|
86
84
|
rules: rows
|
|
87
85
|
banding: none
|
|
88
|
-
numbers: right-tabular
|
|
89
86
|
totals: bold
|
|
90
87
|
protagonist: accent-tint
|
|
91
88
|
chart:
|
|
92
89
|
gridlines: hairline
|
|
93
90
|
labels: direct
|
|
94
91
|
highlight: accent-on-muted
|
|
95
|
-
annotation: on
|
|
96
92
|
image:
|
|
97
|
-
bleed: side-only
|
|
98
|
-
crop: allowed
|
|
99
93
|
frame: none
|
|
100
94
|
|
|
101
95
|
fill-order: [anchor-visual, step-up, distribute, change-family]
|
|
@@ -47,8 +47,6 @@ hero: false
|
|
|
47
47
|
type-voice:
|
|
48
48
|
title-tracking: 0
|
|
49
49
|
display-tracking: -1
|
|
50
|
-
latin-case: sentence
|
|
51
|
-
figures: tabular
|
|
52
50
|
|
|
53
51
|
density: 10
|
|
54
52
|
variance: 5
|
|
@@ -91,16 +89,12 @@ table:
|
|
|
91
89
|
header-ink: ink
|
|
92
90
|
rules: booktabs
|
|
93
91
|
banding: none
|
|
94
|
-
numbers: right-tabular
|
|
95
92
|
totals: bold
|
|
96
93
|
chart:
|
|
97
94
|
gridlines: hairline
|
|
98
95
|
labels: direct
|
|
99
96
|
highlight: series-order
|
|
100
|
-
annotation: off
|
|
101
97
|
image:
|
|
102
|
-
bleed: none
|
|
103
|
-
crop: none
|
|
104
98
|
frame: none
|
|
105
99
|
|
|
106
100
|
fill-order: [anchor-visual, distribute, step-up, change-family]
|
|
@@ -48,8 +48,6 @@ hero: false
|
|
|
48
48
|
type-voice:
|
|
49
49
|
title-tracking: -1
|
|
50
50
|
display-tracking: -2
|
|
51
|
-
latin-case: sentence
|
|
52
|
-
figures: proportional
|
|
53
51
|
|
|
54
52
|
density: 10
|
|
55
53
|
variance: 6
|
|
@@ -86,17 +84,13 @@ table:
|
|
|
86
84
|
header-ink: ink
|
|
87
85
|
rules: top-bottom
|
|
88
86
|
banding: none
|
|
89
|
-
numbers: right-tabular
|
|
90
87
|
totals: bold
|
|
91
88
|
protagonist: accent-tint
|
|
92
89
|
chart:
|
|
93
90
|
gridlines: none
|
|
94
91
|
labels: direct
|
|
95
92
|
highlight: accent-on-muted
|
|
96
|
-
annotation: on
|
|
97
93
|
image:
|
|
98
|
-
bleed: allowed
|
|
99
|
-
crop: allowed
|
|
100
94
|
frame: none
|
|
101
95
|
|
|
102
96
|
fill-order: [step-up, change-family, anchor-visual, distribute]
|
|
@@ -47,8 +47,6 @@ hero: false
|
|
|
47
47
|
type-voice:
|
|
48
48
|
title-tracking: -1
|
|
49
49
|
display-tracking: -2
|
|
50
|
-
latin-case: sentence
|
|
51
|
-
figures: proportional
|
|
52
50
|
|
|
53
51
|
density: 10
|
|
54
52
|
variance: 8
|
|
@@ -85,16 +83,12 @@ table:
|
|
|
85
83
|
header-ink: ink
|
|
86
84
|
rules: header-rule
|
|
87
85
|
banding: none
|
|
88
|
-
numbers: right-tabular
|
|
89
86
|
totals: bold
|
|
90
87
|
chart:
|
|
91
88
|
gridlines: none
|
|
92
89
|
labels: direct
|
|
93
90
|
highlight: accent-on-muted
|
|
94
|
-
annotation: on
|
|
95
91
|
image:
|
|
96
|
-
bleed: allowed
|
|
97
|
-
crop: allowed
|
|
98
92
|
frame: none
|
|
99
93
|
|
|
100
94
|
fill-order: [change-family, step-up, anchor-visual, distribute]
|
|
@@ -3496,35 +3496,35 @@
|
|
|
3496
3496
|
},
|
|
3497
3497
|
{
|
|
3498
3498
|
"path": "references/tonalities/atlas.md",
|
|
3499
|
-
"sha256": "
|
|
3499
|
+
"sha256": "d14b91f16d0806fbc0b10c47a3ed7e70da1ceb15554233eb2f7d98fe4142e533"
|
|
3500
3500
|
},
|
|
3501
3501
|
{
|
|
3502
3502
|
"path": "references/tonalities/chalk.md",
|
|
3503
|
-
"sha256": "
|
|
3503
|
+
"sha256": "64820aa7af08a8055bc8fba13be4b9931c2d7c89e9e24c010c820827d5adecba"
|
|
3504
3504
|
},
|
|
3505
3505
|
{
|
|
3506
3506
|
"path": "references/tonalities/gazette.md",
|
|
3507
|
-
"sha256": "
|
|
3507
|
+
"sha256": "c2d0a132216b3e90a24f5f4b3077e9a96d7b380c72a14f3dbea638679e617a63"
|
|
3508
3508
|
},
|
|
3509
3509
|
{
|
|
3510
3510
|
"path": "references/tonalities/ledger.md",
|
|
3511
|
-
"sha256": "
|
|
3511
|
+
"sha256": "f65609d7597b7401da8e36e4dae641545f1b1defefc7fc7c3951ff671b7ae954"
|
|
3512
3512
|
},
|
|
3513
3513
|
{
|
|
3514
3514
|
"path": "references/tonalities/night.md",
|
|
3515
|
-
"sha256": "
|
|
3515
|
+
"sha256": "de252baa2378ad4b1322633a84499292a98d6ad87c5bef3266b19e862d48ff50"
|
|
3516
3516
|
},
|
|
3517
3517
|
{
|
|
3518
3518
|
"path": "references/tonalities/paper.md",
|
|
3519
|
-
"sha256": "
|
|
3519
|
+
"sha256": "309078f91112dd8b38618688b3cf3a3f3907b1223bfc17c5897c0f9af21ddcb6"
|
|
3520
3520
|
},
|
|
3521
3521
|
{
|
|
3522
3522
|
"path": "references/tonalities/signal.md",
|
|
3523
|
-
"sha256": "
|
|
3523
|
+
"sha256": "4db11121ed61483a9c9ff42d1a6810eaed91c163a5a53b29d0a2b2cff4345de5"
|
|
3524
3524
|
},
|
|
3525
3525
|
{
|
|
3526
3526
|
"path": "references/tonalities/studio.md",
|
|
3527
|
-
"sha256": "
|
|
3527
|
+
"sha256": "4ea17f436916dfb514a4f41e7e77c34b948147d304c57572766b9cc9ccb48d51"
|
|
3528
3528
|
},
|
|
3529
3529
|
{
|
|
3530
3530
|
"path": "requirements.in",
|
|
@@ -3632,7 +3632,7 @@
|
|
|
3632
3632
|
},
|
|
3633
3633
|
{
|
|
3634
3634
|
"path": "scripts/validate_pptx.py",
|
|
3635
|
-
"sha256": "
|
|
3635
|
+
"sha256": "5309464302eaf8c2984818fa96703c8bb06da7f10ae1e633b056ab23c587dbce"
|
|
3636
3636
|
},
|
|
3637
3637
|
{
|
|
3638
3638
|
"path": "specs/markdown-slide-spec-v1.md",
|
|
@@ -3712,35 +3712,35 @@
|
|
|
3712
3712
|
},
|
|
3713
3713
|
{
|
|
3714
3714
|
"path": "templates/tonalities/atlas/pack.yaml",
|
|
3715
|
-
"sha256": "
|
|
3715
|
+
"sha256": "9ab2b4ee7ff517bb2102e4d5621ca061d7963bb10d699ff1c312dc7be4aa7f4f"
|
|
3716
3716
|
},
|
|
3717
3717
|
{
|
|
3718
3718
|
"path": "templates/tonalities/chalk/pack.yaml",
|
|
3719
|
-
"sha256": "
|
|
3719
|
+
"sha256": "5aed521353fca689ffc82d7749d611e87fa1cd63735e364bdb1bf60645120281"
|
|
3720
3720
|
},
|
|
3721
3721
|
{
|
|
3722
3722
|
"path": "templates/tonalities/gazette/pack.yaml",
|
|
3723
|
-
"sha256": "
|
|
3723
|
+
"sha256": "8711484cd457829afa60990922611d9b2efd3930a0138345e389b15fa8115c1b"
|
|
3724
3724
|
},
|
|
3725
3725
|
{
|
|
3726
3726
|
"path": "templates/tonalities/ledger/pack.yaml",
|
|
3727
|
-
"sha256": "
|
|
3727
|
+
"sha256": "28d874b3512ace3e726d03021a128e72c6966b91fbaa72d6b63d9c1761c786fb"
|
|
3728
3728
|
},
|
|
3729
3729
|
{
|
|
3730
3730
|
"path": "templates/tonalities/night/pack.yaml",
|
|
3731
|
-
"sha256": "
|
|
3731
|
+
"sha256": "f151a840cc2253d4132891ed6135ed4c6e597379434fcee34540ee566590b1cc"
|
|
3732
3732
|
},
|
|
3733
3733
|
{
|
|
3734
3734
|
"path": "templates/tonalities/paper/pack.yaml",
|
|
3735
|
-
"sha256": "
|
|
3735
|
+
"sha256": "4b386272a7ed9e420777bb48daf55caf591cf4e443adb11c5e621b1e3626d0f3"
|
|
3736
3736
|
},
|
|
3737
3737
|
{
|
|
3738
3738
|
"path": "templates/tonalities/signal/pack.yaml",
|
|
3739
|
-
"sha256": "
|
|
3739
|
+
"sha256": "784ba047d0e993b7e7d8ebb6c0d354ad0666468801f0ccb3008ff370f0a1acf9"
|
|
3740
3740
|
},
|
|
3741
3741
|
{
|
|
3742
3742
|
"path": "templates/tonalities/studio/pack.yaml",
|
|
3743
|
-
"sha256": "
|
|
3743
|
+
"sha256": "3e6778f16c846220b4f4e66ab3e8149d6c382fe01b007a57d59f03bbcc73363b"
|
|
3744
3744
|
}
|
|
3745
3745
|
]
|
|
3746
3746
|
},
|
|
@@ -3883,7 +3883,7 @@
|
|
|
3883
3883
|
},
|
|
3884
3884
|
{
|
|
3885
3885
|
"path": "scripts/docx_design.py",
|
|
3886
|
-
"sha256": "
|
|
3886
|
+
"sha256": "c50193501d2326f381ed0c2b3f295592ca0d53eac764aa32233e3f2ebb19002d"
|
|
3887
3887
|
},
|
|
3888
3888
|
{
|
|
3889
3889
|
"path": "scripts/docx_layout.py",
|
|
@@ -3975,27 +3975,27 @@
|
|
|
3975
3975
|
},
|
|
3976
3976
|
{
|
|
3977
3977
|
"path": "templates/tonalities/brief.yaml",
|
|
3978
|
-
"sha256": "
|
|
3978
|
+
"sha256": "41bf481cd799b28ee53538a3cf88a58c4b2f9db365d1ca1ee10b3adfcad1ab8e"
|
|
3979
3979
|
},
|
|
3980
3980
|
{
|
|
3981
3981
|
"path": "templates/tonalities/journal.yaml",
|
|
3982
|
-
"sha256": "
|
|
3982
|
+
"sha256": "0a7ae34ccd6e91f289c472bfeb8bcfd6736005f15c55a63dd4cc43e55606ec57"
|
|
3983
3983
|
},
|
|
3984
3984
|
{
|
|
3985
3985
|
"path": "templates/tonalities/manual.yaml",
|
|
3986
|
-
"sha256": "
|
|
3986
|
+
"sha256": "cc965f5523c7cbaa4c1d0bc06e5260641dfc8113b77f2c252862a397eb97ce84"
|
|
3987
3987
|
},
|
|
3988
3988
|
{
|
|
3989
3989
|
"path": "templates/tonalities/memo.yaml",
|
|
3990
|
-
"sha256": "
|
|
3990
|
+
"sha256": "a78c339a193470e6762ffa03b948f44943eb25a5221c12ccbc06a1b2e7cb9e74"
|
|
3991
3991
|
},
|
|
3992
3992
|
{
|
|
3993
3993
|
"path": "templates/tonalities/proposal.yaml",
|
|
3994
|
-
"sha256": "
|
|
3994
|
+
"sha256": "b1b7f4875a89208939ca82d69e6cfb30c35b64ea91d67d5aecc98fe04bde3bfc"
|
|
3995
3995
|
},
|
|
3996
3996
|
{
|
|
3997
3997
|
"path": "templates/tonalities/report.yaml",
|
|
3998
|
-
"sha256": "
|
|
3998
|
+
"sha256": "23ac1d24f8936c6d522e19354d5948f0d00dce6d60c34fa42e37adafcc68cb8c"
|
|
3999
3999
|
}
|
|
4000
4000
|
]
|
|
4001
4001
|
}
|