Diagram pipeline CI/CD
Peta visual dan rincian per jalur dari tahap alur kerja build, uji, lint, keamanan, dan publikasi yang mengawal setiap perubahan kode dan rilis.
Peta struktural alur kerja build · validasi · publikasi yang mengawal setiap perubahan pada ekosistem Apothem. Dokumen ini memasang permukaan visualisasi; berkas alur kerja GitHub Actions yang konkret dan perkakas rilis hadir kemudian di bawah pemasangan kesiapan produksi.
Bentuk pipeline
%%{ init: { "theme": "neutral" } }%%
%% verified: 2026-04-27 %%
%% provenance: pyproject.toml + scripts/dev/validate_ecosystem.py + scripts/dev/validate_hooks.py %%
%% cross-reference: site/content/docs/developer-guide.mdx (contributor workflow) %%
flowchart LR
accTitle: CI/CD pipeline shape
accDescr: Left-to-right flowchart of the apothem CI CD pipeline showing build, test, lint, type-check, security scan, docs build, package, sign, and publish stages with branch protection gates between them.
subgraph Trigger["Trigger surface"]
PR["Pull request opened or updated"]
PUSH["Push to main"]
TAG["Tag release vX.Y.Z"]
end
subgraph Static["Static analysis lane"]
LINT["Ruff lint + format check"]
TYPE["Mypy strict"]
MD["markdownlint"]
FRONT["Frontmatter validator"]
end
subgraph Test["Test lane"]
PYTEST["pytest tests/hooks"]
ECO["validate_ecosystem.py"]
CHAOS["chaos_pass.py (release lane)"]
BENCH["src/apothem/benchmarks/ (release lane)"]
end
subgraph Security["Security lane"]
SECRETS["Secret scan"]
SBOM["SBOM generation"]
LICENSE["License audit"]
end
subgraph Publish["Publish lane (tags only)"]
SIGN["Signed-tag verification"]
ATTEST["Provenance attestation"]
DOCS["Project website publish"]
RELEASE["Release notes from CHANGELOG.md"]
end
PR --> Static
PR --> Test
PR --> Security
PUSH --> Static
PUSH --> Test
PUSH --> Security
TAG --> Static
TAG --> Test
TAG --> Security
TAG --> Publish
Static --> GATE{All lanes green?}
Test --> GATE
Security --> GATE
GATE -->|yes| MERGE[Merge / publish]
GATE -->|no| BLOCK[Block · surface failures · request fix]
Publish --> MERGEPeran jalur
- Jalur analisis statis — umpan balik cepat. Ruff mencakup gaya Python dan satu set aturan yang dikurasi; mypy menegakkan disiplin tipe pada strict; markdownlint mengatur permukaan dokumentasi; validator frontmatter mengawal kepatuhan skema artefak untuk aturan, skill, pekerja yang didelegasikan, dan perintah.
- Jalur uji —
pytest tests/hooksmenjalankan runtime hook terhadap matriks peristiwa lengkap;validate_ecosystem.pyadalah gerbang struktural utama untuk konsistensi lintas-artefak;chaos_pass.pydan suite benchmark per-kelas di bawahsrc/apothem/benchmarks/aktif pada jalur rilis untuk menangkap degradasi di bawah masukan yang terdegradasi dan regresi anggaran runtime. - Jalur keamanan — pemindaian rahasia menangkap kredensial yang tidak sengaja di-commit; pembuatan SBOM dan audit lisensi mengawal permukaan rantai pasok untuk setiap pemasangan kesiapan produksi.
- Jalur publikasi — berjalan hanya pada rilis bertag. Verifikasi tag yang
ditandatangani memastikan asal-usul cabang rilis; situs web proyek
dipublikasikan dari
site/dist/ke target GitHub Pages; catatan rilis berasal dari format Keep-A-ChangelogCHANGELOG.md.
Konfigurasi konkret
Berkas alur kerja yang sebenarnya (.github/workflows/ci.yml,
.github/workflows/release.yml, dst.) dipasang selama pembangunan ekosistem
kesiapan produksi. Diagram ini mendefinisikan bentuk kanonik yang dicerminkan
oleh setiap konfigurasi mendatang.
Referensi silang otoritatif
pyproject.toml— sumber kebenaran konfigurasi Ruff / mypy / pytest.scripts/dev/validate_ecosystem.py— gerbang lintas-artefak utama.scripts/dev/validate_hooks.py— validasi struktural khusus hook.scripts/dev/chaos_pass.py— sapuan adversarial pada setiap hook yang dikonfigurasi.src/apothem/benchmarks/— verifikator anggaran runtime per-kelas.site/content/docs/developer-guide.mdx— alur kerja kontributor yang berorientasi operator.CHANGELOG.md— sumber catatan rilis.
Konvensi Berlingkup-Repositori untuk Harness Asisten
Bagaimana apothem memmaterialisasikan konvensi operasi berlingkup-repositori — aturan, skill, dan definisi pekerja terdelegasi — ke dalam permukaan instruksi asli setiap harness (AGENTS.md dan padanan per-toolnya).
Referensi
Registri kelas artefak yang dapat dinavigasi dengan jalur dan tata letak di disk untuk aturan, perintah, skill, pekerja terdelegasi, hook, server MCP, pengaturan, dan gaya keluaran.