1920 × 1080 Seen as a design The artboard itself, drawn live — sharp at any zoom Structure, margins and columns overlaid
1920 × 1080 Seen as a design The artboard itself, drawn live — sharp at any zoom Structure, margins and columns overlaid
Copy and paste, or save a file and hand it over. For a machine with no network, one “Everything” file is enough.
Everything in this panel, including the contents behind each URL, in one Markdown file — Large, so it goes as a file (copy is for 32 KB and under)
Produce one slide to the following specification. - Canvas 1920 × 1080 - Margin top 100 right 140 bottom 100 left 140 - 2 equal columns, gap 56 ## Emphasis column 2 only, by fill and nothing else ## Type (px against a 1920px canvas) title 46px / 700 / tracking 0.01em / leading 1.3 lede 19px / 400 / leading 1.8 label 16px / 500 / tracking 0.18em / uppercase lv 16px / 700 / tabular numerals sname 24px / 700 / leading 1.4 sdoc 15px / 400 / leading 1.7 fkey 14px / 500 / tracking 0.14em fval 17px / 500 / leading 1.6 / tabular numerals ## Colour Ground #FFFFFF / Surface #F4F6F9 / Ink #131820 / Muted #667183 / Accent #1F5FA8 / Rule #DBE1E9 ## Constraints — dropping these breaks it - Do not draw the V as a diagonal — the shape becomes the subject and the pairing of L2 with T2, which is the point, gets missed - Equal row counts on both sides; fewer tests than phases means some deliverable has nothing to accept it - Name who runs each test — "system test" alone does not say who attends and who judges - Write the acceptance criteria when the left-hand phase is written; decided just before the test, they describe what was built - Fill only the accepting side; fill both and the slide stops saying who decides Replace the content with [your content]. Keep the measurements and colours as given. For an exact reproduction, use the verbatim HTML at https://design-vault.pages.dev/designs/test-v-model-paired/pattern.html.
/ai/designs/test-v-model-paired.json
format: slide-16x9
density: medium
layout:
kind: 2-column
canvas:
w: 1920
h: 1080
margin:
top: 100
right: 140
bottom: 100
left: 140
columns:
count: 2
gap: 56
emphasis:
column: 2
via:
- fill
type:
title:
size: 46
weight: 700
tracking: 0.01em
leading: 1.3
lede:
size: 19
weight: 400
leading: 1.8
label:
size: 16
weight: 500
tracking: 0.18em
transform: upper
lv:
size: 16
weight: 700
numeric: tabular
sname:
size: 24
weight: 700
leading: 1.4
sdoc:
size: 15
weight: 400
leading: 1.7
fkey:
size: 14
weight: 500
tracking: 0.14em
fval:
size: 17
weight: 500
leading: 1.6
numeric: tabular
colors:
ground: "#FFFFFF"
surface: "#F4F6F9"
ink: "#131820"
muted: "#667183"
accent: "#1F5FA8"
rule: "#DBE1E9"
rules:
- Do not draw the V as a diagonal — the shape becomes the subject and the pairing of L2 with T2, which is the point, gets missed
- Equal row counts on both sides; fewer tests than phases means some deliverable has nothing to accept it
- Name who runs each test — "system test" alone does not say who attends and who judges
- Write the acceptance criteria when the left-hand phase is written; decided just before the test, they describe what was built
- Fill only the accepting side; fill both and the slide stops saying who decides{
"format": "slide-16x9",
"density": "medium",
"layout": {
"kind": "2-column",
"canvas": {
"w": 1920,
"h": 1080
},
"margin": {
"top": 100,
"right": 140,
"bottom": 100,
"left": 140
},
"columns": {
"count": 2,
"gap": 56
},
"emphasis": {
"column": 2,
"via": [
"fill"
]
}
},
"type": {
"title": {
"size": 46,
"weight": 700,
"tracking": "0.01em",
"leading": 1.3
},
"lede": {
"size": 19,
"weight": 400,
"leading": 1.8
},
"label": {
"size": 16,
"weight": 500,
"tracking": "0.18em",
"transform": "upper"
},
"lv": {
"size": 16,
"weight": 700,
"numeric": "tabular"
},
"sname": {
"size": 24,
"weight": 700,
"leading": 1.4
},
"sdoc": {
"size": 15,
"weight": 400,
"leading": 1.7
},
"fkey": {
"size": 14,
"weight": 500,
"tracking": "0.14em"
},
"fval": {
"size": 17,
"weight": 500,
"leading": 1.6,
"numeric": "tabular"
}
},
"colors": {
"ground": "#FFFFFF",
"surface": "#F4F6F9",
"ink": "#131820",
"muted": "#667183",
"accent": "#1F5FA8",
"rule": "#DBE1E9"
},
"rules": [
"Do not draw the V as a diagonal — the shape becomes the subject and the pairing of L2 with T2, which is the point, gets missed",
"Equal row counts on both sides; fewer tests than phases means some deliverable has nothing to accept it",
"Name who runs each test — \"system test\" alone does not say who attends and who judges",
"Write the acceptance criteria when the left-hand phase is written; decided just before the test, they describe what was built",
"Fill only the accepting side; fill both and the slide stops saying who decides"
]
} /designs/test-v-model-paired/pattern.html — The artboard itself, font subset included — open it and this picture draws.
<!doctype html>
<meta charset="utf-8">
<title>テスト計画 — 作る工程と受け入れる試験を行で対にする</title>
<meta name="dv-font" content="Zen Kaku Gothic New:400;500;700">
<link rel="stylesheet" href="./font.css">
<style>
/* この版そのもの。index.md の layout / type / colors は、この HTML を
scripts/render-pattern.mjs で実測した結果であって、別に書いた説明ではない。 */
:root {
--ground: #FFFFFF;
--surface: #F4F6F9;
--ink: #131820;
--muted: #667183;
--accent: #1F5FA8;
--rule: #DBE1E9;
}
* { box-sizing: border-box; margin: 0; }
html, body { width: 1920px; height: 1080px; }
body { font-family: "Zen Kaku Gothic New", "IPAGothic", sans-serif; }
.artboard {
width: 1920px; height: 1080px;
background: var(--ground); color: var(--ink);
padding: 100px 140px; /* → layout.margin */
}
.content { height: 100%; display: grid; grid-template-rows: auto 1fr auto; }
.head { display: grid; gap: 16px; }
.title { font-size: 46px; font-weight: 700; line-height: 1.3; letter-spacing: .01em; }
.lede { font-size: 19px; font-weight: 400; line-height: 1.8; color: var(--muted); }
/* 左右を等幅にし、同じ行に「作る工程」と「それを受け入れる試験」を置く。
V 字を斜めに描くと、対応関係が図の形の話になって読み落とされる。 */
.pairs { align-self: center; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; }
.side { display: grid; align-content: start; }
.label { font-size: 16px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); padding-bottom: 20px; }
.side[data-emphasis] .label { color: var(--accent); }
.step { display: grid; grid-template-columns: 54px 1fr; gap: 24px; align-items: baseline; padding: 24px 26px; border-top: 1px solid var(--rule); }
.step:last-child { border-bottom: 1px solid var(--rule); }
.side[data-emphasis] .step { background: var(--surface); }
.lv { font-size: 16px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.side[data-emphasis] .lv { color: var(--accent); }
.sname { font-size: 24px; font-weight: 700; line-height: 1.4; }
.sdoc { font-size: 15px; font-weight: 400; line-height: 1.7; color: var(--muted); margin-top: 8px; }
.foot { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; border-top: 1px solid var(--rule); padding-top: 26px; }
.fkey { font-size: 14px; font-weight: 500; letter-spacing: .14em; color: var(--muted); }
.fval { font-size: 17px; font-weight: 500; line-height: 1.6; margin-top: 10px; font-variant-numeric: tabular-nums; }
</style>
<div class="artboard" data-artboard>
<div class="content" data-content>
<div class="head">
<h1 class="title" data-type="title">テスト計画 — 工程と試験の対応</h1>
<p class="lede" data-type="lede">左で決めたことを、同じ行の試験で受け入れます。受入基準は左を書いた時点で作り、試験の直前に決めません。</p>
</div>
<div class="pairs">
<section class="side" data-col="1">
<p class="label" data-type="label">WHAT WE BUILD</p>
<div class="step">
<p class="lv" data-type="lv">L1</p>
<div>
<p class="sname" data-type="sname">要件定義</p>
<p class="sdoc" data-type="sdoc">業務要件一覧・受入基準(御社承認)</p>
</div>
</div>
<div class="step">
<p class="lv">L2</p>
<div>
<p class="sname">基本設計</p>
<p class="sdoc">画面・帳票・連携インタフェース定義</p>
</div>
</div>
<div class="step">
<p class="lv">L3</p>
<div>
<p class="sname">詳細設計</p>
<p class="sdoc">処理仕様・データ設計</p>
</div>
</div>
<div class="step">
<p class="lv">L4</p>
<div>
<p class="sname">実装</p>
<p class="sdoc">ソースコード・単体試験項目</p>
</div>
</div>
</section>
<section class="side" data-col="2" data-emphasis="fill">
<p class="label">WHAT ACCEPTS IT</p>
<div class="step">
<p class="lv">T1</p>
<div>
<p class="sname">受入テスト</p>
<p class="sdoc">御社実施 / 4 週間・判定は業務チーム</p>
</div>
</div>
<div class="step">
<p class="lv">T2</p>
<div>
<p class="sname">総合テスト</p>
<p class="sdoc">弊社実施・御社立会 / 性能と連携を含む</p>
</div>
</div>
<div class="step">
<p class="lv">T3</p>
<div>
<p class="sname">結合テスト</p>
<p class="sdoc">弊社実施 / 既存システムとの接続を含む</p>
</div>
</div>
<div class="step">
<p class="lv">T4</p>
<div>
<p class="sname">単体テスト</p>
<p class="sdoc">弊社実施 / 網羅率は分岐 80% を基準</p>
</div>
</div>
</section>
</div>
<div class="foot">
<div>
<p class="fkey" data-type="fkey">不具合の管理</p>
<p class="fval" data-type="fval">合同 PMO が 1 本の台帳で管理</p>
</div>
<div>
<p class="fkey">受入判定の期限</p>
<p class="fval">2027.09.30 / 移行判断の 4 週間前</p>
</div>
<div>
<p class="fkey">御社にお願いする稼働</p>
<p class="fval">受入テスト 4 週間 / 実務担当 6 名</p>
</div>
</div>
</div>
</div>
/designs/test-v-model-paired/font.css — Not in Everything
/* dv-subset v2 — generated by scripts/subset-font.mjs. Do not edit.
* font Zen Kaku Gothic New 400;500;700
* chars 160 (49668fac04e90592)
*
* pattern.html の文字だけを含む部分集合。描画時に外部へ取りに行かないよう同梱する。
* 版の文字を変えたら取り直すこと — 忘れると足りない字が豆腐になる。
* その取り忘れは pattern-entries.test.ts が上の指紋で検出する。
*/
@font-face {
font-family: 'Zen Kaku Gothic New';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(./font-0.woff2) format('woff2');
unicode-range: U+25, U+2e, U+30-34, U+36-39, U+41-45, U+48-49, U+4c-4d, U+4f-50, U+53-55, U+57, U+2014, U+3001-3002, U+3044, U+304a-304c, U+3051-3054, U+3057-305c, U+305f-3060, U+3066-3069, U+306b, U+306e-3070, U+307e, U+3080-3081, U+308a-308c, U+3092-3093, U+3099, U+30a4, U+30a7, U+30b3-30b4, U+30b7-30ba, U+30bd-30c2, U+30c6-30c9, U+30d5-30d6, U+30e0, U+30f3, U+30fb-30fc, U+4e00, U+4e0d, U+4ed5, U+4ef6, U+4f1a, U+4f53, U+4f5c, U+50cd, U+5165, U+5177, U+51e6, U+5206, U+5224, U+524d, U+52d9, U+5358, U+53d7, U+53f0, U+5408, U+540c-540d, U+542b, U+57fa, U+5b58, U+5b9a, U+5b9f, U+5bfe, U+5c90, U+5de5-5de6, U+5e33, U+5f0a, U+5f53, U+5fa1, U+5fdc, U+6027, U+627f, U+62c5, U+63a5, U+643a, U+65ad, U+65bd, U+65e2, U+6642, U+66f8, U+671f, U+672c, U+696d, U+69d8, U+6c7a, U+6e96, U+70b9, U+7387, U+7406, U+753b, U+76ee, U+76f4, U+793e, U+7968, U+79fb, U+7a0b, U+7a3c, U+7acb, U+7ba1, U+7d30, U+7d50, U+7d9a, U+7db2, U+7dcf, U+7f85, U+7fa9, U+80fd, U+884c, U+88c5, U+8981, U+89a7, U+8a08, U+8a2d, U+8a66, U+8a73, U+8a8d, U+9023, U+9031, U+9593, U+9650, U+9762, U+9805, U+9858, U+9a13, U+ff08-ff09, U+ff0f;
}
@font-face {
font-family: 'Zen Kaku Gothic New';
font-style: normal;
font-weight: 500;
font-display: block;
src: url(./font-1.woff2) format('woff2');
unicode-range: U+25, U+2e, U+30-34, U+36-39, U+41-45, U+48-49, U+4c-4d, U+4f-50, U+53-55, U+57, U+2014, U+3001-3002, U+3044, U+304a-304c, U+3051-3054, U+3057-305c, U+305f-3060, U+3066-3069, U+306b, U+306e-3070, U+307e, U+3080-3081, U+308a-308c, U+3092-3093, U+3099, U+30a4, U+30a7, U+30b3-30b4, U+30b7-30ba, U+30bd-30c2, U+30c6-30c9, U+30d5-30d6, U+30e0, U+30f3, U+30fb-30fc, U+4e00, U+4e0d, U+4ed5, U+4ef6, U+4f1a, U+4f53, U+4f5c, U+50cd, U+5165, U+5177, U+51e6, U+5206, U+5224, U+524d, U+52d9, U+5358, U+53d7, U+53f0, U+5408, U+540c-540d, U+542b, U+57fa, U+5b58, U+5b9a, U+5b9f, U+5bfe, U+5c90, U+5de5-5de6, U+5e33, U+5f0a, U+5f53, U+5fa1, U+5fdc, U+6027, U+627f, U+62c5, U+63a5, U+643a, U+65ad, U+65bd, U+65e2, U+6642, U+66f8, U+671f, U+672c, U+696d, U+69d8, U+6c7a, U+6e96, U+70b9, U+7387, U+7406, U+753b, U+76ee, U+76f4, U+793e, U+7968, U+79fb, U+7a0b, U+7a3c, U+7acb, U+7ba1, U+7d30, U+7d50, U+7d9a, U+7db2, U+7dcf, U+7f85, U+7fa9, U+80fd, U+884c, U+88c5, U+8981, U+89a7, U+8a08, U+8a2d, U+8a66, U+8a73, U+8a8d, U+9023, U+9031, U+9593, U+9650, U+9762, U+9805, U+9858, U+9a13, U+ff08-ff09, U+ff0f;
}
@font-face {
font-family: 'Zen Kaku Gothic New';
font-style: normal;
font-weight: 700;
font-display: block;
src: url(./font-2.woff2) format('woff2');
unicode-range: U+25, U+2e, U+30-34, U+36-39, U+41-45, U+48-49, U+4c-4d, U+4f-50, U+53-55, U+57, U+2014, U+3001-3002, U+3044, U+304a-304c, U+3051-3054, U+3057-305c, U+305f-3060, U+3066-3069, U+306b, U+306e-3070, U+307e, U+3080-3081, U+308a-308c, U+3092-3093, U+3099, U+30a4, U+30a7, U+30b3-30b4, U+30b7-30ba, U+30bd-30c2, U+30c6-30c9, U+30d5-30d6, U+30e0, U+30f3, U+30fb-30fc, U+4e00, U+4e0d, U+4ed5, U+4ef6, U+4f1a, U+4f53, U+4f5c, U+50cd, U+5165, U+5177, U+51e6, U+5206, U+5224, U+524d, U+52d9, U+5358, U+53d7, U+53f0, U+5408, U+540c-540d, U+542b, U+57fa, U+5b58, U+5b9a, U+5b9f, U+5bfe, U+5c90, U+5de5-5de6, U+5e33, U+5f0a, U+5f53, U+5fa1, U+5fdc, U+6027, U+627f, U+62c5, U+63a5, U+643a, U+65ad, U+65bd, U+65e2, U+6642, U+66f8, U+671f, U+672c, U+696d, U+69d8, U+6c7a, U+6e96, U+70b9, U+7387, U+7406, U+753b, U+76ee, U+76f4, U+793e, U+7968, U+79fb, U+7a0b, U+7a3c, U+7acb, U+7ba1, U+7d30, U+7d50, U+7d9a, U+7db2, U+7dcf, U+7f85, U+7fa9, U+80fd, U+884c, U+88c5, U+8981, U+89a7, U+8a08, U+8a2d, U+8a66, U+8a73, U+8a8d, U+9023, U+9031, U+9593, U+9650, U+9762, U+9805, U+9858, U+9a13, U+ff08-ff09, U+ff0f;
}
工程と試験の対応を 1 枚で合意するための版。pattern.html が版そのもので、cover.png と
frontmatter の寸法はどちらもそこから機械的に出している。編集するのは pattern.html だけ。
The page that gets the phase-to-test mapping agreed. pattern.html is the artboard itself; both
cover.png and the measurements come from it, so the three cannot drift apart.