ข้ามไปยังเนื้อหา

สถาปัตยกรรม (Architecture)

ระบบเอกสารและการกำกับดูแลครอบคลุมคลังเก็บข้อมูลสามแห่ง โดยแต่ละแห่งมีความรับผิดชอบเฉพาะ:

คลังเก็บข้อมูลบทบาท
docs-controlศูนย์กลางการกำกับดูแล — การตั้งค่าคลังเก็บข้อมูล, การกำหนดค่าการป้องกันสาขา, รายการไฟล์ที่อยู่ในการดูแล, CI workflows ที่นำกลับมาใช้ใหม่ได้, Antigravity AI workflows, เทมเพลต caller workflow, สกิลของเอเย่นต์, และการส่งต่อลงปลายน้ำ
docs-builderภาพบิลด์ Docker — การจัดการบิลด์ Astro + Starlight, npm dependencies, การสร้าง PDF ด้วย Puppeteer, คอมโพเนนต์แบบโต้ตอบ
docs-themeปลั๊กอิน Astro Starlight — แบรนด์ดิ้งร่วม, CSS, ฟอนต์, โลโก้, คอมโพเนนต์เลย์เอาต์, astro.config.mjs, และ content.config.ts

คลังเก็บข้อมูลเนื้อหาต้องการเพียงไดเรกทอรี docs/ เท่านั้น คอนเทนเนอร์บิลด์และ workflow จะจัดการส่วนที่เหลือทั้งหมด

เมื่อไฟล์เทมเพลตหรือ workflow เปลี่ยนแปลงใน docs-control บนสาขา main:

  1. dispatch workflow จะทำงานและจุดชนวนการบังคับใช้ในทุกคลังเก็บข้อมูลปลายน้ำ
  2. enforcement workflow จะเปรียบเทียบสถานะที่ต้องการกับสถานะปัจจุบันและแก้ไขการเปลี่ยนแปลง (drift) ใดๆ
  3. file sync workflow จะตรวจจับไฟล์ที่อยู่ในการดูแลที่มีการเปลี่ยนแปลง สร้าง PR พร้อมเนื้อหาหลัก และทำการรวมอัตโนมัติ (auto-merge)
  4. Antigravity AI workflows ที่นำกลับมาใช้ใหม่ได้ (antigravity-review.yml และ antigravity-translate.yml) จะทำงานบน pull requests ทั่วทั้งคลังเก็บข้อมูลที่ลงทะเบียนไว้

ระบบประกอบด้วยระบบอัตโนมัติ AI ของ Antigravity (agy) ที่ทำงานบน GitHub Actions runners:

Workflowวัตถุประสงค์ตัวจุดชนวนและการทำงาน
Antigravity Code Review (antigravity-review.yml)การรีวิวโค้ด pull request ด้วย AI แบบอัตโนมัติรันเมื่อมีการสร้างหรืออัปเดต PR ใช้ Gemini 3.6 Flash (High) ในการตรวจสอบ diffs เพื่อหาช่องโหว่ความปลอดภัย ความลับที่ฝังไว้ (hardcoded secrets) ข้อมูลส่วนบุคคลรั่วไหล (PII) และคุณภาพโค้ด พร้อมโพสต์ข้อเสนอแนะผ่านความคิดเห็น PR
Antigravity Language Translation (antigravity-translate.yml)การแปลภาษาเอกสารด้วย AI แบบอัตโนมัติรันบน PRs ที่แก้ไข docs/en/**/*.md[x] เรียกใช้สกิล .agents/skills/i18n-translate/SKILL.md เพื่ออัปเดต 12 ภาษาเป้าหมาย (fr, es, de, pt-br, ja, ko, zh-cn, zh-tw, ar, it, hi, th), อัปเดต i18n.sourceHash และคอมมิตกลับไปยังสาขา PR โดยอัตโนมัติ

ชุดข้อมูลประจำตัวสามชุดให้การแยกสิทธิ์ขั้นต่ำ (least-privilege):

โทเค็น / ความลับสิทธิ์ / ขอบเขตใช้โดย
REPO_SETTINGS_TOKENAdministration R/W, Pages R/W, Contents Read, Metadata Readenforce-repo-settings.yml, dispatch-downstream.yml, update-governed-workflow-pins.yml
REPO_SYNC_TOKENContents R/W, Issues R/W, Pull Requests R/W, Metadata Readsync-managed-files.yml
ANTIGRAVITY_TOKEN & GCP_PROJECT_IDการรับรองความถูกต้อง Antigravity AI และการเข้าถึงโครงการ GCPantigravity-review.yml, antigravity-translate.yml

workflow การบังคับใช้ต้องการสิทธิ์เข้าถึงระดับผู้ดูแลระบบเพื่อแก้ไขการป้องกันสาขาและการตั้งค่า Pages workflow การซิงค์ต้องการสิทธิ์เข้าถึงเนื้อหาและ PR เพื่อสร้างสาขา คอมมิตไฟล์ และรวม PR Antigravity AI workflows ใช้ข้อมูลประจำตัวโครงการเฉพาะเพื่อรับรองความถูกต้องกับ Gemini 3.6 Flash

Docs-control เป็นทั้งผู้ให้บริการและผู้ใช้การกำหนดค่าการกำกับดูแลของตัวเอง เมื่อ enforce-repo-settings.yml รันบน docs-control เอง (ผ่านตัวจุดชนวน push) ระบบจะตรวจจับสิ่งนี้โดยการเปรียบเทียบ managed_files.source_repo กับ github.repository สิ่งนี้จะจุดชนวนการเขียนทับ self_contexts ในการป้องกันสาขา — docs-control ใช้ workflows โดยตรง (เช่น Shell Unit Tests) ในขณะที่คลังเก็บข้อมูลปลายน้ำใช้ตัวห่อ caller (เช่น lint / Shell Unit Tests) ดู หน้าการกำหนดค่า สำหรับรายละเอียดเกี่ยวกับ contexts vs self_contexts

ไดเรกทอรี / ไฟล์วัตถุประสงค์
.github/config/repo-settings.jsonการตั้งค่าส่วนกลาง: การตั้งค่าคลังเก็บข้อมูล, การกำหนดค่าการป้องกันสาขา, สิทธิ์ของ Actions, การกำหนดค่า Pages และรายการไฟล์ที่อยู่ในการดูแล
.github/config/downstream-repos.jsonทะเบียนของคลังเก็บข้อมูลปลายน้ำที่ลงทะเบียนไว้
.github/config/docs-sites.jsonเมทาดาตาสำหรับแต่ละไซต์เอกสารปลายน้ำ (ป้ายชื่อ, URL, คำอธิบาย) ที่ใช้โดยการทำเทมเพลต README
.github/workflows/Workflows ที่นำกลับมาใช้ใหม่ได้: การบังคับใช้, การซิงค์ไฟล์, การปรับใช้ Pages, การตรวจสอบการเชื่อมโยง Issue, การส่งต่อ, การรีวิว Antigravity และการแปล Antigravity
.agents/skills/การกำกับดูแลสกิลของเอเย่นต์: demo-components, i18n-translate
workflows/เทมเพลต caller ที่คลังเก็บข้อมูลปลายน้ำติดตั้งไว้ใน .github/workflows/
docs/ซอร์สโค้ดเอกสาร (บิลด์และปรับใช้ผ่าน Astro Starlight)
CONTRIBUTING.mdกฎกระบวนการทำงานของผู้ร่วมสมทบ (ซิงค์ไปยังคลังเก็บข้อมูลปลายน้ำทั้งหมด)
CLAUDE.mdคำแนะนำสำหรับผู้ช่วย AI (ซิงค์ไปยังคลังเก็บข้อมูลปลายน้ำทั้งหมด)
AGENTS.mdคำแนะนำเอเย่นต์ของคลังเก็บข้อมูล นโยบายการกำกับดูแล
README.md.tplเทมเพลตสำหรับไฟล์ README ปลายน้ำที่สร้างขึ้นแบบไดนามิก
.pre-commit-config.yamlการกำหนดค่า Pre-commit hooks (ซิงค์ไปยังคลังเก็บข้อมูลปลายน้ำทั้งหมด)
.markdownlint.jsonกฎตัวตรวจสอบ Markdown
.yamllint.yamlกฎตัวตรวจสอบ YAML