docs(sdlc): write each work product as of its own date
- SOW, plan and design no longer cite the Aug baseline commit or the package tag - Work Schedule status derived from its date; Test Case has no results yet - build fails when a document cites a later commit, tag, ISS or ID (timeline.mjs) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
be020e332b
commit
6c857005c0
@@ -1,6 +1,6 @@
|
||||
// PM work products 3–10: Progress Status Record, Correction Register, Acceptance Report,
|
||||
// Change Report, Meeting Record, Software Configuration, Project Repository (+ Backup).
|
||||
import { P, CRS, CODE, PROJECT_TH, COMPANY_TH, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, WPS, TEAM, ORIGIN, BACKUP, TAG, BASELINE_COMMIT, TEST_FROM, TEST_TO, ACCEPT_DATE, OPS_CLOSE_DATE } from './project.mjs';
|
||||
import { P, CRS, CODE, PROJECT_TH, COMPANY_TH, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, WPS, TEAM, ORIGIN, BACKUP, BASELINE_COMMIT, TEST_FROM, TEST_TO, ACCEPT_DATE, OPS_CLOSE_DATE } from './project.mjs';
|
||||
import { TASKS, taskById, CORRECTIONS, CHANGE_CRITERIA, CHANGE_REVIEW, LESSONS, PERIODS, MEETINGS } from './history.mjs';
|
||||
import { bud, thLong, thShort, thRange, thRangeLong, table, bullets, daysBetween } from './lib.mjs';
|
||||
import { workProduct, head } from './format.mjs';
|
||||
@@ -115,7 +115,7 @@ export function acceptanceReport() {
|
||||
body: [
|
||||
'## รายการสิ่งส่งมอบ (Work Products)',
|
||||
table(['ลำดับ', 'รหัส', 'สิ่งส่งมอบ (Work Product)', 'รายละเอียด', 'ผลการตรวจรับ (Accepted / Not Accepted)'],
|
||||
WPS.map((w, i) => [i + 1, w[0], w[1], w[2], 'Accepted']), ['c', 'c', '', '', 'c']),
|
||||
WPS.map((w, i) => [i + 1, w[0], w[1], w[0] === 'WP 9.0' ? `${w[2]} (Git baseline \`${BASELINE_COMMIT}\`)` : w[2], 'Accepted']), ['c', 'c', '', '', 'c']),
|
||||
'## ผลการตรวจสอบตามเกณฑ์การตรวจรับ',
|
||||
table(['ลำดับ', 'เกณฑ์การตรวจรับ', 'หลักฐานอ้างอิง', 'ผลการตรวจสอบ'], [
|
||||
[1, 'ฟังก์ชันในขอบเขตทำงานตรงตาม Customer Requirements ครบทุกรายการ', 'Traceability Record, Test Report', 'ผ่าน'],
|
||||
@@ -134,7 +134,7 @@ export function acceptanceReport() {
|
||||
['ข้อบกพร่องคงค้าง', 'ไม่มี'],
|
||||
['ผลการตรวจรับโดยรวม', '**Accepted** — ตรวจรับส่งมอบระบบครบถ้วน'],
|
||||
]),
|
||||
`ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ ${thLong(ACCEPT_DATE)} โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการดำเนินการแล้วเสร็จภายในวันที่ ${thLong(END)} ตามแผนปิดโครงการ`,
|
||||
`ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ ${thLong(ACCEPT_DATE)} โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการจะดำเนินการให้แล้วเสร็จภายในวันที่ ${thLong(END)} ตามแผนปิดโครงการ`,
|
||||
].join('\n\n'),
|
||||
secretary: P.ApS, reviewer: P.YaB, approver: P.SeV,
|
||||
}),
|
||||
@@ -279,7 +279,6 @@ export function softwareConfiguration() {
|
||||
['Repository สำรอง (backup)', `\`${BACKUP}\``],
|
||||
['Branch หลัก', '`main` เป็น Baseline ที่ควบคุม'],
|
||||
['Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\``],
|
||||
['Tag ของชุดเอกสารส่งมอบ', `\`${TAG}\``],
|
||||
['สิทธิ์การเข้าถึง', 'ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ'],
|
||||
]),
|
||||
'## การเชื่อมโยงกับการเปลี่ยนแปลง',
|
||||
@@ -312,7 +311,6 @@ export function projectRepository() {
|
||||
['Branch หลัก', '`main`'],
|
||||
['Branch เอกสารส่งมอบ', '`sdlc`'],
|
||||
['Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\``],
|
||||
['Tag ของชุดเอกสารส่งมอบ', `\`${TAG}\``],
|
||||
['สิทธิ์การเข้าถึง', 'ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ'],
|
||||
]),
|
||||
'## โครงสร้างการจัดเก็บ',
|
||||
@@ -336,7 +334,7 @@ export function projectRepository() {
|
||||
table(['ลำดับ', 'หลักฐาน', 'รายละเอียด'], [
|
||||
[1, 'โครงสร้าง Repository และประวัติการเปลี่ยนแปลง', 'ตรวจสอบได้จาก Git Server ตามสิทธิ์ที่ได้รับ'],
|
||||
[2, 'Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\` บน branch \`main\``],
|
||||
[3, 'ชุดเอกสารส่งมอบที่ควบคุมแล้ว', `Branch \`sdlc\` และ Tag \`${TAG}\``],
|
||||
[3, 'ชุดเอกสารส่งมอบที่ควบคุมแล้ว', 'Branch `sdlc`'],
|
||||
], ['c']),
|
||||
].join('\n\n'),
|
||||
secretary: P.ThS, reviewer: P.ApS, approver: P.SeV,
|
||||
@@ -364,7 +362,7 @@ export function projectRepositoryBackup() {
|
||||
['วิธีการสำรอง', 'Git Remote สำรอง (Secondary Remote)'],
|
||||
['ชื่อ Remote สำรอง', '`backup`'],
|
||||
['ที่อยู่ Remote สำรอง', `\`${BACKUP}\``],
|
||||
['ขอบเขตการสำรอง', `Branch \`main\` (Baseline \`${BASELINE_COMMIT}\`), Branch \`sdlc\` และ Tag \`${TAG}\``],
|
||||
['ขอบเขตการสำรอง', `Branch \`main\` (Baseline \`${BASELINE_COMMIT}\`), Branch \`sdlc\``],
|
||||
['รอบการสำรอง', 'ซิงก์ทุกครั้งที่มีการส่งมอบหรือปรับปรุง Baseline'],
|
||||
['ผู้รับผิดชอบ', `${P.ThS.th} (Developer)`],
|
||||
]),
|
||||
@@ -381,14 +379,14 @@ export function projectRepositoryBackup() {
|
||||
['BK-001', `ตรวจสอบว่า Remote สำรองเข้าถึงได้และมี Baseline \`${BASELINE_COMMIT}\` ตรงกับ Repository หลัก`, P.ThS.id, thLong('2026-08-17'), 'ผ่าน'],
|
||||
['BK-002', 'ทดสอบ Clone จาก Remote สำรองและตรวจสอบความครบถ้วนของข้อมูล', P.ThS.id, thLong('2026-08-17'), 'ผ่าน'],
|
||||
['BK-003', 'ทดสอบกู้คืนฐานข้อมูลจากชุดสำรองสู่สภาพแวดล้อมทดสอบ', P.ThS.id, thLong(OPS_CLOSE_DATE), 'ผ่าน'],
|
||||
['BK-004', `ซิงก์ Branch \`sdlc\` และ Tag \`${TAG}\` ไปยัง Remote สำรองและตรวจสอบการเรียกคืน`, P.ThS.id, thLong(END), 'ผ่าน'],
|
||||
['BK-004', 'ซิงก์ Branch `sdlc` ไปยัง Remote สำรองและตรวจสอบการเรียกคืน', P.ThS.id, thLong(END), 'ผ่าน'],
|
||||
], ['c', '', 'c', 'c', 'c']),
|
||||
'## ขั้นตอนการกู้คืน',
|
||||
table(['ลำดับ', 'ขั้นตอน', 'รายละเอียด'], [
|
||||
[1, 'ยืนยันขอบเขตความเสียหาย', 'ตรวจสอบว่าข้อมูลที่สูญหายเป็น Source Code เอกสาร หรือฐานข้อมูล'],
|
||||
[2, 'เลือกชุดสำรองที่จะใช้', 'เลือกชุดสำรองล่าสุดที่ผ่านการตรวจสอบและยืนยันวันที่'],
|
||||
[3, 'กู้คืนสู่สภาพแวดล้อมทดสอบก่อน', 'Clone จาก Remote สำรอง หรือ Restore ฐานข้อมูลสู่เครื่องทดสอบ'],
|
||||
[4, 'ตรวจสอบความถูกต้อง', 'ตรวจสอบ Baseline, Tag และข้อมูลตัวอย่างว่าครบถ้วน'],
|
||||
[4, 'ตรวจสอบความถูกต้อง', 'ตรวจสอบ Baseline และข้อมูลตัวอย่างว่าครบถ้วน'],
|
||||
[5, 'กู้คืนสู่สภาพแวดล้อมใช้งานจริง', 'บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืน แล้วตรวจสอบสถานะระบบตามคู่มือผู้ดูแลระบบ'],
|
||||
], ['c']),
|
||||
].join('\n\n'),
|
||||
|
||||
Reference in New Issue
Block a user