kotonoha 0.1.2 → 0.1.5-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +126 -25
  3. package/bin/kotonoha.js +81 -13
  4. package/bin/npm-publish-tag.js +12 -0
  5. package/package.json +7 -3
  6. package/skills/presentation-planner/SKILL.md +243 -0
  7. package/skills/presentation-planner/assets/design-templates/data-report.yaml +97 -0
  8. package/skills/presentation-planner/assets/design-templates/executive-proposal.yaml +92 -0
  9. package/skills/presentation-planner/assets/design-templates/technical-briefing.yaml +96 -0
  10. package/skills/presentation-planner/assets/scenario-templates/data-report.md +47 -0
  11. package/skills/presentation-planner/assets/scenario-templates/executive-decision.md +43 -0
  12. package/skills/presentation-planner/assets/scenario-templates/technical-briefing.md +45 -0
  13. package/skills/presentation-planner/references/customizing-design-templates.md +160 -0
  14. package/skills/presentation-planner/references/design-spec-schema.md +72 -0
  15. package/skills/presentation-planner/references/handoff-contract.md +49 -0
  16. package/skills/presentation-planner/references/responsibility-boundary.md +32 -0
  17. package/skills/presentation-planner/references/scenario-templates.md +55 -0
  18. package/skills/tech-writer/SKILL.md +147 -46
  19. package/skills/tech-writer/assets/templates/migration-plan.md +173 -0
  20. package/skills/tech-writer/assets/templates/operations-runbook.md +202 -0
  21. package/skills/tech-writer/assets/templates/requirements-definition.md +170 -0
  22. package/skills/tech-writer/assets/templates/rfi.md +113 -0
  23. package/skills/tech-writer/assets/templates/rfp.md +180 -0
  24. package/skills/tech-writer/assets/templates/security-design.md +167 -0
  25. package/skills/tech-writer/assets/templates/system-design.md +220 -0
  26. package/skills/tech-writer/assets/templates/technical-proposal.md +112 -0
  27. package/skills/tech-writer/assets/templates/test-plan.md +153 -0
  28. package/skills/tech-writer/references/doctypes/migration-plan.md +63 -0
  29. package/skills/tech-writer/references/doctypes/operations-runbook.md +63 -0
  30. package/skills/tech-writer/references/doctypes/requirements-definition.md +61 -0
  31. package/skills/tech-writer/references/doctypes/rfi.md +43 -0
  32. package/skills/tech-writer/references/doctypes/rfp.md +46 -0
  33. package/skills/tech-writer/references/doctypes/security-design.md +71 -0
  34. package/skills/tech-writer/references/doctypes/system-design.md +74 -0
  35. package/skills/tech-writer/references/doctypes/technical-proposal.md +49 -0
  36. package/skills/tech-writer/references/doctypes/test-plan.md +67 -0
  37. package/skills/tech-writer/references/japanese-prose-optimization.md +108 -0
  38. package/skills/tech-writer/references/style-constitution.md +7 -6
@@ -3,25 +3,34 @@ name: tech-writer
3
3
  description: >-
4
4
  Helps structure and polish technical documents: README, design docs/ADRs,
5
5
  API reference, PR descriptions/commit messages/issue reports, release
6
- notes/CHANGELOG, user manuals/how-to guides, code comments/docstrings, and
7
- Qiita/Zenn articles. Use for requests like "write a README", "draft a
8
- design doc", "write this PR description", "clean up my commit message",
9
- "make this how-to guide clearer", "write API docs", "summarize the release
10
- notes", "write a Zenn article", "write this up for Qiita", as well as
6
+ notes/CHANGELOG, user manuals/how-to guides, code comments/docstrings,
7
+ requirements definitions, system designs, test plans, operations runbooks,
8
+ migration plans, security designs/threat models, technical proposals,
9
+ RFI/RFP procurement documents, and Qiita/Zenn articles. Use for requests
10
+ like "write a README", "draft a design doc", "define system requirements",
11
+ "write a system design", "create a test plan", "write an operations
12
+ runbook", "plan a migration", "create a threat model", "write a technical
13
+ proposal", "draft an RFI", "create an RFP", "write this PR description",
14
+ "clean up my commit
15
+ message", "make this how-to guide clearer", "write API docs", "summarize
16
+ the release notes", "write a Zenn article", "write this up for Qiita", as
17
+ well as
11
18
  Japanese-language equivalents (「READMEを書いて」「設計ドキュメントを作って」
12
- 「PRの説明文を書いて」「コミットメッセージを整えて」「手順書を分かりやすくして」
13
- 「APIドキュメントを整備して」「リリースノートをまとめて」「Zennの記事を書いて」
14
- 「Qiitaに投稿する記事を書いて」). Especially useful when
19
+ 「要件定義書を作って」「システム設計書を書いて」「テスト計画書を作って」
20
+ 「運用設計書を書いて」「移行計画を作って」「脅威モデルを作って」
21
+ 「技術提案書を書いて」「RFIを作って」「RFPを作って」「PRの説明文を書いて」
22
+ 「コミットメッセージを整えて」「手順書を分かりやすくして」
23
+ 「APIドキュメントを整備して」「リリースノートをまとめて」
24
+ 「Zennの記事を書いて」「Qiitaに投稿する記事を書いて」). Especially useful when
15
25
  the request is a bare goal without enough context to start (e.g. "I want
16
26
  to write a README" / "○○を書きたい"), since this skill drives a one
17
27
  question-at-a-time intake before writing. Supports both Japanese and
18
- English documents, with Japanese as the primary target for polished,
19
- natural phrasing (pairing well with https://github.com/coji/natural-japanese
20
- for sentence-level Japanese refinement). Does NOT handle sentence-level
21
- naturalness, word choice, or rhythm ("AI smell" removal) — that is the
22
- domain of natural-japanese and similar prose-polishing skills. This skill
23
- is specific to a document's structure, information completeness, and
24
- reader fit.
28
+ English documents, with Japanese as the primary target. Owns document
29
+ structure, information completeness, and reader fit; for living Japanese
30
+ documents, it orchestrates a registered prose-polishing skill such as
31
+ https://github.com/coji/natural-japanese for sentence-level naturalness,
32
+ word choice, rhythm, and "AI smell" removal without reimplementing that
33
+ skill.
25
34
  license: MIT
26
35
  argument-hint: "[write|review|score] [doctype] <target file or request>"
27
36
  ---
@@ -31,7 +40,10 @@ argument-hint: "[write|review|score] [doctype] <target file or request>"
31
40
  Structures technical documents so readers reach the information they need
32
41
  with the shortest path. Covers README, design docs/ADRs, API reference, PR
33
42
  descriptions/commit messages/issue reports, release notes/CHANGELOG, user
34
- manuals/how-to guides, code comments/docstrings, and Qiita/Zenn articles.
43
+ manuals/how-to guides, code comments/docstrings, requirements definitions,
44
+ system designs, test plans, operations runbooks, migration plans, security
45
+ designs/threat models, technical proposals, RFI/RFP procurement documents,
46
+ and Qiita/Zenn articles.
35
47
 
36
48
  Default format: Markdown for every doctype in this skill, except a git
37
49
  commit message body (plain text by convention — light "-" bullets are
@@ -45,11 +57,13 @@ reference files.
45
57
 
46
58
  Document quality splits into two layers: "is the structure right" and "is
47
59
  the prose natural and readable". This skill owns the first layer (structure,
48
- document type conventions, completeness, reader fit). The second layer
49
- (sentence-level naturalness, removing "AI smell", rhythm) is out of scope and
50
- belongs to a prose-polishing skill such as [natural-japanese](https://github.com/coji/natural-japanese).
51
- When both skills are installed, use this skill to lock down the structure
52
- first, then hand Japanese prose to natural-japanese for polish.
60
+ document type conventions, completeness, reader fit). A prose-polishing skill
61
+ such as [natural-japanese](https://github.com/coji/natural-japanese) owns the
62
+ second layer (sentence-level naturalness, removing "AI smell", rhythm);
63
+ tech-writer orchestrates that skill without duplicating its rules or scripts.
64
+ When both skills are installed, this skill locks down the structure and
65
+ orchestrates the §5 handoff to natural-japanese during `write` mode before
66
+ the final rubber-duck review.
53
67
 
54
68
  - Rule of thumb: "does removing a heading still make sense?" tests structure
55
69
  (this skill's job). "Does rereading a single sentence change its meaning?"
@@ -62,12 +76,14 @@ first, then hand Japanese prose to natural-japanese for polish.
62
76
  Infer the mode from the argument or the request:
63
77
 
64
78
  - `write` (default): new document, or restructuring a draft. Runs the full
65
- §1–§5 workflow, starting with the intake loop in §1 and ending only after
79
+ §1–§6 workflow, starting with the intake loop in §1 and ending only after
66
80
  the rubber-duck review loop has no remaining actionable findings. If an
67
81
  independent review cannot run or cannot converge, returns the explicit
68
- review status required by §5 instead of claiming a clean review.
82
+ review status required by §6 instead of claiming a clean review. For a
83
+ in-scope Japanese living document, also return the §5 Japanese prose
84
+ optimization status.
69
85
  - `review`: structural review of an existing document. Does not rewrite;
70
- reports the gap against the doctype checklist (§6).
86
+ reports the gap against the doctype checklist (§7).
71
87
  - `score`: structure-only quick diagnostic. Runs
72
88
  `scripts/lint.py --json <file>` and summarizes the findings (no rewrite).
73
89
 
@@ -90,7 +106,13 @@ hand the user a checklist to fill in. Instead:
90
106
  past this doctype without knowing which one applies. Similarly, a bare
91
107
  "write a tech blog post" request doesn't by itself say Qiita, Zenn, or
92
108
  neither — ask which platform (or "no platform, just a plain document")
93
- as part of this same first question.
109
+ as part of this same first question. For a "technical proposal", ask
110
+ whether it is an internal approval proposal or a supplier response to an
111
+ RFP; only the internal approval proposal maps to `technical-proposal`.
112
+ For a supplier response, structure the document against the supplied
113
+ RFP's requirement IDs, requested proposal contents, pricing format, and
114
+ contract deviations, then apply the general principles in
115
+ `references/style-constitution.md`.
94
116
  2. Open the matching reference file and note its target reader and any
95
117
  "settle before writing" items. Combined with the general musts below,
96
118
  this is your information checklist — but never show it to the user as a
@@ -104,7 +126,12 @@ hand the user a checklist to fill in. Instead:
104
126
  doctype (and subtype, for `pr-commit`), and (d) any doctype-specific
105
127
  musts (e.g. the decision and alternatives for a design doc, the
106
128
  prior-knowledge floor for a user manual, breaking-change status for
107
- release notes, the related issue for a PR description or bug report).
129
+ release notes, the related issue for a PR description or bug report,
130
+ measurable acceptance conditions for a requirements definition, the
131
+ approved requirements baseline for a system design, exit criteria for a
132
+ test plan, RTO/RPO for an operations runbook, rollback conditions for a
133
+ migration plan, assets and trust boundaries for a threat model, market
134
+ unknowns for an RFI, or evaluation rules for an RFP).
108
135
  5. **A "don't know" / "not applicable" / "no ticket for this" answer
109
136
  satisfies a must — it is not a reason to keep asking.** Ask that must
110
137
  at most once; if the answer is a non-answer, record it as a stated
@@ -113,7 +140,7 @@ hand the user a checklist to fill in. Instead:
113
140
  one-line note) and move on.
114
141
  6. **Once complete, do not ask the user to compose anything.** Synthesize
115
142
  the gathered answers into the best possible generation approach yourself
116
- and immediately continue into §2–§5 in the same turn to produce the
143
+ and immediately continue into §2–§6 in the same turn to produce the
117
144
  document. Skip further confirmation unless the doctype is release-facing
118
145
  and consequential (e.g. a public release note with breaking changes) or
119
146
  the user explicitly asked to see a plan first.
@@ -130,6 +157,15 @@ hand the user a checklist to fill in. Instead:
130
157
  | Release notes / CHANGELOG | release-notes | `references/doctypes/release-notes.md` |
131
158
  | User manual / how-to guide / tutorial | user-manual | `references/doctypes/user-manual.md` |
132
159
  | Code comments / docstrings | code-comments | `references/doctypes/code-comments.md` |
160
+ | Requirements definition / 要件定義書 | requirements-definition | `references/doctypes/requirements-definition.md` |
161
+ | System design / システム設計書 | system-design | `references/doctypes/system-design.md` |
162
+ | Test plan / テスト計画書 | test-plan | `references/doctypes/test-plan.md` |
163
+ | Operations design / Runbook / 運用設計書 | operations-runbook | `references/doctypes/operations-runbook.md` |
164
+ | Migration plan / 移行計画書 | migration-plan | `references/doctypes/migration-plan.md` |
165
+ | Security design / Threat model / セキュリティ設計書 | security-design | `references/doctypes/security-design.md` |
166
+ | Internal technical proposal | technical-proposal | `references/doctypes/technical-proposal.md` |
167
+ | Request for information / RFI | rfi | `references/doctypes/rfi.md` |
168
+ | Request for proposal / RFP | rfp | `references/doctypes/rfp.md` |
133
169
  | Zenn article | zenn | `references/doctypes/zenn.md` |
134
170
  | Qiita article | qiita | `references/doctypes/qiita.md` |
135
171
 
@@ -140,9 +176,12 @@ one-question-at-a-time intake for reader and outcome.
140
176
  ## 2. Outline first for long documents
141
177
 
142
178
  For documents likely to run long — design docs/ADRs, user manuals with
143
- multiple steps, API references covering several endpoints, or anything the
144
- user calls "long"/"detailed"/"comprehensive" — draft a table of contents
145
- (heading outline) before writing any body prose.
179
+ multiple steps, API references covering several endpoints, requirements
180
+ definitions, system designs, test plans, operations runbooks, migration
181
+ plans, security designs, technical proposals, RFI/RFP documents, or anything
182
+ the user calls
183
+ "long"/"detailed"/"comprehensive" — draft a table of contents (heading
184
+ outline) before writing any body prose.
146
185
 
147
186
  1. Build the heading outline from the reader and outcome gathered in §1 and
148
187
  the doctype's recommended skeleton (in its reference file).
@@ -168,7 +207,9 @@ document and needs the outline step below.
168
207
  ## 3. Write — under the structure constitution
169
208
 
170
209
  For living, multi-section documents (README, design doc, API reference,
171
- release notes, user manual, Zenn/Qiita article), write under the 8 rules
210
+ release notes, user manual, requirements definition, system design, test
211
+ plan, operations runbook, migration plan, security design, technical
212
+ proposal, RFI/RFP, Zenn/Qiita article), write under the 8 rules
172
213
  in `references/style-constitution.md`. Summary: state "what this is" and
173
214
  "the outcome for the reader" in the first three lines; make headings
174
215
  labels that preview content (not "Overview", but "Overview of what");
@@ -191,11 +232,11 @@ or `references/doctypes/release-notes.md` instead — see the scope note in
191
232
  verbatim there.
192
233
 
193
234
  Sentence-level concerns — keeping individual sentences concise, avoiding
194
- double negatives, not dropping the subject, and general naturalness — are
195
- out of this skill's scope regardless of doctype. When natural-japanese (or
196
- an equivalent prose-polishing skill) is available, hand Japanese prose to
197
- it for that pass; otherwise apply ordinary careful-writing judgment, but
198
- don't treat it as this skill's responsibility to enforce.
235
+ double negatives, not dropping the subject, and general naturalness — belong
236
+ to a prose-polishing skill. In `write` mode for a Japanese document, perform
237
+ the explicit handoff in §5 after the structure is complete. If no compatible
238
+ optimizer is available, still apply ordinary careful-writing judgment and
239
+ report the missing optimization pass explicitly.
199
240
 
200
241
 
201
242
  ## 4. Review — structural check
@@ -224,9 +265,60 @@ step 2 as the primary check for those.
224
265
  4. **Reader-goal recheck**: confirm the "what the reader can do after
225
266
  reading" outcome from §1 is actually achievable from this document alone.
226
267
 
227
- ## 5. Rubber-duck review loop — write mode only
228
-
229
- After the structural review in §4, use the host's subagent mechanism to
268
+ ## 5. Optimize Japanese prose without changing the structure — write mode only
269
+
270
+ For a living, multi-section document whose requested final language is
271
+ Japanese, read
272
+ `references/japanese-prose-optimization.md` and hand the completed draft to a
273
+ registered `natural-japanese` or equivalent Japanese prose-polishing skill.
274
+ This pass is mandatory when such a skill is available.
275
+
276
+ Treat the optimizer as available when the host's registered skill list
277
+ contains `natural-japanese` or a compatible Japanese prose-polishing skill.
278
+ Invoke it through the host's skill-loading mechanism; when only installed
279
+ skill files are exposed, check
280
+ `.github/skills/natural-japanese/SKILL.md`,
281
+ `.copilot/skills/natural-japanese/SKILL.md`, and
282
+ `$HOME/.copilot/skills/natural-japanese/SKILL.md`, then load the discovered
283
+ `SKILL.md` and follow that workflow. Treat the pass as unavailable only when
284
+ no compatible registration or readable skill installation exists, or when
285
+ the optimizer cannot start.
286
+
287
+ Freeze heading hierarchy, section order, identifiers, numeric facts,
288
+ citations, normative language, tables, code, commands, acceptance criteria,
289
+ and explicit risks before handoff. Require sentence-level optimization and
290
+ request AI-pattern diagnostics, reading-load review, and terminology checks
291
+ when their scripts are runnable, without changing those invariants. Missing
292
+ optional diagnostics are a reported limitation, not proof that the prose pass
293
+ did not run. After the prose pass, repeat the doctype checklist and structural
294
+ lint from §4.
295
+
296
+ For an in-scope Japanese document in `write` mode, report one explicit status.
297
+ Do not run this pass or report a status for atomic artifacts such as commit
298
+ messages, PR descriptions, issue reports, single release-note entries, or
299
+ code comments/docstrings unless the user explicitly requests prose polishing
300
+ and supplies the prose in a standalone file:
301
+
302
+ - `Japanese prose optimization completed`
303
+ - `Japanese prose optimization not performed`
304
+ - `Japanese prose optimization did not converge`
305
+
306
+ Across the complete write workflow, allow at most 15 optimizer handoffs,
307
+ including reruns after rubber-duck edits. If no compatible optimizer can be
308
+ loaded, use
309
+ `Japanese prose optimization not performed` and state the reason. If the
310
+ optimizer starts but fails, or an edit violates a frozen invariant, revert
311
+ the invalid edit and retry within the three-round limit; unresolved failures
312
+ or invariant violations use
313
+ `Japanese prose optimization did not converge`. Do not claim this
314
+ optimization from kotonoha's structural lint alone. Documents that are not
315
+ within the Japanese final-language scope defined above require no optimization
316
+ status.
317
+
318
+ ## 6. Rubber-duck review loop — write mode only
319
+
320
+ After the structural review in §4 and any Japanese prose optimization in §5,
321
+ use the host's subagent mechanism to
230
322
  launch an independent reviewer in the `rubber-duck` role to challenge the
231
323
  completed document for meaningful problems that the authoring pass may have
232
324
  missed. Prefer a registered `rubber-duck` agent when the host provides one;
@@ -244,9 +336,14 @@ for `write` mode; do not run it for `review` or `score` mode.
244
336
  2. **Resolve every valid finding**: edit the document rather than merely
245
337
  listing proposed fixes. If a finding conflicts with a stated requirement
246
338
  or is factually inapplicable, record a one-line reason for declining it.
247
- 3. **Re-run the relevant checks after each edit round**: repeat the doctype
248
- checklist and structural lint from §4 before asking for another
249
- rubber-duck review. A fix must not introduce a new structural defect.
339
+ 3. **Re-run the relevant checks after each edit round**: if a fix changed
340
+ Japanese prose, repeat the §5 optimization over the changed prose before
341
+ reporting its final status. Then repeat the doctype checklist and
342
+ structural lint from §4 before asking for another rubber-duck review. A
343
+ fix must not introduce a new structural defect or leave the final Japanese
344
+ prose outside the completed optimization pass. If a required rerun cannot
345
+ start because all 15 handoffs were already used, or cannot complete,
346
+ report `Japanese prose optimization did not converge`, not `completed`.
250
347
  4. **Review again with the prior decisions**: reuse the same reviewer context
251
348
  when supported. Otherwise, include the previous findings, applied fixes,
252
349
  and declined findings with their reasons in every new review prompt. Ask
@@ -268,11 +365,14 @@ for `write` mode; do not run it for `review` or `score` mode.
268
365
  contradictory requirements, label it `review did not converge` and
269
366
  include the latest unresolved findings and fixes already attempted.
270
367
 
271
- ## 6. Doctype checklist summary
368
+ ## 7. Doctype checklist summary
272
369
 
273
370
  See each reference file for detail. The items below are for living,
274
371
  multi-section documents (README, design doc, API reference, release notes,
275
- user manual, Zenn/Qiita article). Atomic artifacts (commit message, PR
372
+ user manual, requirements definition, system design, test plan, operations
373
+ runbook, migration plan, security design, technical proposal, RFI/RFP,
374
+ Zenn/Qiita article). Atomic
375
+ artifacts (commit message, PR
276
376
  description, issue report, code comment/docstring, a single appended
277
377
  release-notes entry) are already covered by their own doctype checklist
278
378
  via step 2 in §4 — these common items don't add extra requirements on top
@@ -292,5 +392,6 @@ The idea of separating structure from prose comes from
292
392
  [natural-japanese](https://github.com/coji/natural-japanese) (MIT License)
293
393
  and its design principle "machines detect, humans (or agents) judge" and
294
394
  "prevent at generation time rather than fix afterward". This skill extends
295
- that separation to the structural side of technical documents, deliberately
296
- leaving prose naturalness out of scope.
395
+ that separation by owning technical-document structure while orchestrating,
396
+ but not reimplementing, the registered prose-polishing skill responsible for
397
+ sentence-level naturalness.
@@ -0,0 +1,173 @@
1
+ # <システム・データ名> 移行計画書
2
+
3
+ <何をどこからどこへ、どの停止許容時間と品質基準で安全に移行するかを3文以内で要約する。>
4
+
5
+ - 文書版: <例: 1.0>
6
+ - 作成日: <YYYY-MM-DD>
7
+ - 最終更新日: <YYYY-MM-DD>
8
+ - 移行責任者: <氏名・チーム>
9
+ - Go / No-Go判断者: <氏名・会議体>
10
+ - ステータス: Draft / In Review / Approved
11
+ - 本番移行予定: <YYYY-MM-DD HH:mm–HH:mm TZ>
12
+ - 関連要件・設計: <文書名・版・URL>
13
+
14
+ ## この移行計画で合意する事項
15
+
16
+ - 移行対象: <データ、利用者、機能、外部接続>
17
+ - 移行方式: <一括、段階、並行稼働など>
18
+ - 許容停止時間と品質基準: <値>
19
+ - 承認を求める事項: <日程、体制、判定、ロールバック>
20
+
21
+ ## 現行と移行後の状態
22
+
23
+ | 項目 | 現行 | 移行後 | 主な変更 | 利用者への影響 |
24
+ |---|---|---|---|---|
25
+ | システム | <現行> | <移行先> | <変更> | <影響> |
26
+ | データ | <形式・量> | <形式・量> | <変換> | <影響> |
27
+ | 業務 | <手順> | <手順> | <変更> | <教育・周知> |
28
+
29
+ ## 対象範囲と対象外
30
+
31
+ ### 対象範囲
32
+
33
+ - <移行するデータ・設定・利用者・接続先>
34
+
35
+ ### 対象外
36
+
37
+ - <廃止しないもの・後続フェーズへ送るもの>
38
+
39
+ ## 前提条件と制約
40
+
41
+ | ID | 条件・制約 | 確認方法 | 期限 | 所有者 |
42
+ |---|---|---|---|---|
43
+ | MIG-CON-001 | <停止時間・契約・技術制約> | <確認> | <期限> | <担当> |
44
+
45
+ ## 移行対象の棚卸し
46
+
47
+ | 対象ID | 対象 | 移行元 | 移行先 | 件数・容量 | 所有者 | 依存関係 | 移行要否 |
48
+ |---|---|---|---|---:|---|---|---|
49
+ | MIG-001 | <データ・設定> | <場所> | <場所> | <値> | <担当> | <依存先> | Yes / No |
50
+
51
+ ## データマッピングと変換
52
+
53
+ | 移行元項目 | 移行先項目 | 変換ルール | 必須・既定値 | 検証ルール | エラー時の扱い |
54
+ |---|---|---|---|---|---|
55
+ | <項目> | <項目> | <変換> | <条件> | <型・範囲・参照整合性> | <除外・補正・中止> |
56
+
57
+ ## 移行方式と移行単位
58
+
59
+ - 方式: 一括 / 段階 / 並行稼働 / Blue-Green / <その他>
60
+ - 選定理由: <停止時間、整合性、ロールバックとの関係>
61
+ - 差分同期: <CDC、二重書き、再実行など>
62
+ - 冪等性: <再実行しても重複・欠損しない仕組み>
63
+
64
+ | Wave | 対象 | 実施日時 | 完了条件 | 次Waveへの判定 |
65
+ |---|---|---|---|---|
66
+ | 1 | <対象> | <日時> | <条件> | <条件> |
67
+
68
+ ## 体制と役割
69
+
70
+ | 役割 | 担当 | 責任 | 当日の連絡方法 | 代行者 |
71
+ |---|---|---|---|---|
72
+ | 移行指揮 | <担当> | Go / No-Go、進行 | <方法> | <担当> |
73
+ | データ移行 | <担当> | 抽出・変換・投入 | <方法> | <担当> |
74
+ | 業務確認 | <担当> | 業務受入 | <方法> | <担当> |
75
+ | 運用・監視 | <担当> | 監視・障害対応 | <方法> | <担当> |
76
+
77
+ ## リハーサル計画
78
+
79
+ | 回 | 目的 | 対象・データ量 | 実施日 | 目標時間 | 合格条件 | 改善事項 |
80
+ |---|---|---|---|---:|---|---|
81
+ | 1 | <手順・性能・復旧の検証> | <範囲> | <日付> | <時間> | <条件> | <記録> |
82
+
83
+ ## 移行開始条件
84
+
85
+ - <リハーサルが合格している>
86
+ - <対象版が承認され、変更凍結されている>
87
+ - <バックアップとリストア試験が完了している>
88
+ - <監視、連絡網、ロールバック環境が準備されている>
89
+ - <利用者通知と業務側の準備が完了している>
90
+
91
+ ## 本番移行タイムライン
92
+
93
+ | 時刻 | 手順ID | 作業 | 実行者 | 想定時間 | 完了条件 | 証跡 |
94
+ |---|---|---|---|---:|---|---|
95
+ | <HH:mm> | STEP-001 | <作業> | <担当> | <分> | <確認可能な条件> | <ログ・画面> |
96
+
97
+ ## 検証と照合
98
+
99
+ | 検証ID | 対象 | 検証方法 | 移行前値 | 移行後値 | 許容差 | 判定者 |
100
+ |---|---|---|---:|---:|---:|---|
101
+ | VAL-001 | 件数 | <SQL・レポート> | <値> | <値> | 0 | <担当> |
102
+ | VAL-002 | 金額・集計 | <照合方法> | <値> | <値> | <値> | <担当> |
103
+ | VAL-003 | 参照整合性 | <孤立・重複・外部キー検査> | <値> | <値> | 0 | <担当> |
104
+ | VAL-004 | 業務シナリオ | <操作> | <期待> | <実結果> | なし | <担当> |
105
+
106
+ ## Go / No-Go判定
107
+
108
+ | 判定時点 | Go条件 | No-Go条件 | 必要な証跡 | 判断者 |
109
+ |---|---|---|---|---|
110
+ | 移行開始前 | <条件> | <条件> | <チェックリスト> | <担当> |
111
+ | 切替前 | <条件> | <条件> | <移行・照合結果> | <担当> |
112
+ | サービス再開前 | <条件> | <条件> | <業務確認・監視> | <担当> |
113
+
114
+ ## ロールバック計画
115
+
116
+ - ロールバック可能期限: <時刻・条件>
117
+ - ロールバック判断条件: <時間超過、欠損、重大障害など>
118
+ - 判断者: <役割>
119
+ - データ整合性方針: <移行後更新の扱い>
120
+
121
+ | 手順 | 作業 | 実行者 | 想定時間 | 完了条件 |
122
+ |---:|---|---|---:|---|
123
+ | 1 | <新環境への書き込みを停止する> | <担当> | <分> | <条件> |
124
+ | 2 | <切替後に新環境へ書き込まれた差分を退避し、再適用・補償対象を確定する> | <担当> | <分> | <差分が固定され証跡がある> |
125
+ | 3 | <旧環境を復旧し、必要な差分を再適用または補償する> | <担当> | <分> | <整合性基準を満たす> |
126
+ | 4 | <データと業務を確認して旧環境を再開する> | <担当> | <分> | <再開条件を満たす> |
127
+
128
+ ## 業務継続と利用者コミュニケーション
129
+
130
+ | 対象 | 通知内容 | 通知時期 | 手段 | 担当 |
131
+ |---|---|---|---|---|
132
+ | 利用者 | <停止・変更・再開> | <時期> | <メール・画面> | <担当> |
133
+ | 問い合わせ窓口 | <FAQ・既知問題> | <時期> | <手段> | <担当> |
134
+ | 経営・顧客 | <進捗・障害> | <条件> | <手段> | <担当> |
135
+
136
+ - 停止中の代替業務: <手作業・受付停止など>
137
+ - 再開後の問い合わせ増加対応: <増員・期間>
138
+
139
+ ## セキュリティと監査
140
+
141
+ - 移行データの暗号化: <転送時・保存時>
142
+ - 一時ファイル: <保管場所・アクセス・削除期限>
143
+ - 特権アクセス: <申請・有効期限・監査>
144
+ - 個人情報・機密情報: <マスキング・取扱い>
145
+ - 操作証跡: <記録内容・保存期間>
146
+
147
+ ## 移行後の安定化
148
+
149
+ | 期間 | 監視強化項目 | 判定基準 | 担当 | 通常運用への移行条件 |
150
+ |---|---|---|---|---|
151
+ | <期間> | <エラー率・照合・問い合わせ> | <閾値> | <担当> | <条件> |
152
+
153
+ - 旧環境の扱い: <参照専用、保持期間、廃止日>
154
+ - 一時データ・権限の削除: <期限・証跡>
155
+ - 未移行・エラーデータの処理: <方法・期限>
156
+
157
+ ## リスクと未解決事項
158
+
159
+ | ID | 内容 | 影響 | 発生可能性 | 対策・期限 | 所有者 | ステータス |
160
+ |---|---|---|---|---|---|---|
161
+ | MIG-RSK-001 | <内容> | High / Medium / Low | High / Medium / Low | <対策> | <担当> | Open |
162
+
163
+ ## 承認記録
164
+
165
+ | 版 | 承認日 | 承認者 | 判断 | 条件・コメント |
166
+ |---|---|---|---|---|
167
+ | <版> | <YYYY-MM-DD> | <氏名・会議体> | Approved / Rejected / Deferred | <条件> |
168
+
169
+ ## 変更履歴
170
+
171
+ | 版 | 日付 | 変更内容 | 変更理由 | 作成者 |
172
+ |---|---|---|---|---|
173
+ | 0.1 | <YYYY-MM-DD> | 初版 | <理由> | <氏名> |