1
Struktur Repository
Kristories/awesome-guidelines bukan aplikasi. Hampir seluruh isinya berupa satu katalog tautan di README.md, ditambah tooling lint Node dan berkas tata kelola kecil di tingkat root. Tidak ada direktori konten, sehingga pembagian repository ini bersifat datar. Halaman ini memetakan peran setiap berkas dan arah ketergantungannya; isi katalognya dibahas di Ringkasan Proyek, sedangkan eksekusi lint dibahas di Pipeline Lint dan CI.
Peta ketergantungan berkas
graph TD
COC["code-of-conduct.md"] --> GOV["contributing.md"]
GOV --> TPL["pull request template"]
TPL --> PR["pull request ke master"]
PR --> WFL["lint.yml"]
WFL --> CLI["npx awesome-lint"]
CLI --> RM["README.md"]
PKG["package.json"] --> LOCK["package-lock.json"]
LOCK --> CLI
DEP["dependabot.yml"] --> LOCK
STALE["stale.yml"] --> OLD["issue dan pull request tanpa aktivitas"]
ED["editorconfig + gitattributes"] -.-> RM
TR["travis.yml"] -.-> CLI
style RM fill:#336791,color:#fff
style LOCK fill:#8b5cf6,color:#fff
style WFL fill:#2d7d46,color:#fff
style CLI fill:#2d7d46,color:#fff
style PKG fill:#f59e0b,color:#000
style ED fill:#f59e0b,color:#000
style DEP fill:#f59e0b,color:#000
style TR fill:#dc2626,color:#fff
%% fig: Ketergantungan berkas di repository
%% desc: Konten dan tooling lint bertemu di satu workflow, sementara berkas tata kelola menjadi gerbang sebelum pull request dijalankan.Gambar di atas menunjukkan bahwa README.md adalah satu-satunya berkas yang diperiksa lint, sedangkan berkas lain menjadi masukan atau pemicu. package-lock.json diberi warna berbeda karena isinya diturunkan dari package.json. travis.yml diberi warna merah karena berada di luar .github/workflows/ travis.yml:1-51.
| Kelompok | Berkas | Peran |
|---|---|---|
| Konten | README.md | katalog tautan; berkas yang diperiksa lint |
| Tooling lint | package.json, package-lock.json, test.js | mendefinisikan dan menjalankan awesome-lint |
| CI | .github/workflows/lint.yml, .github/workflows/stale.yml | memeriksa pull request, menandai issue dan pull request yang menganggur |
| Otomasi dependensi | .github/dependabot.yml | memperbarui dependensi npm tiap hari |
| Tata kelola | contributing.md, code-of-conduct.md, .github/pull_request_template.md, LICENSE | aturan kontribusi, perilaku, dan lisensi |
| Konvensi editor | .editorconfig, .gitattributes, .gitignore | akhir baris, penggabungan berkas Markdown, pengecualian node_modules/ |
Konten: satu README.md
README.md dibuka dengan judul dan badge Awesome README.md:1-32. Setelah itu daftar isi menautkan enam bagian: Programming Languages, Development Environment, Platforms, Frameworks, Content Management System, dan Tools README.md:5-123. Setiap bahasa ditulis sebagai subbagian ### di bawah ## Programming Languages, misalnya ### Ada dan ### Brainfuck README.md:14-184. Katalog berakhir pada bagian Tools di baris terakhir, sehingga seluruh isi repository ini berada dalam 376 baris README.md README.md:363-3765.
Tooling lint Node
package.json hanya memuat dua hal: script test yang menjalankan awesome-lint, dan satu devDependency awesome-lint pada versi v2.3.0 package.json:1-86. package-lock.json mengunci paket itu pada versi 2.3.0 dengan tarball dari registry npm package-lock.json:319-3247. test.js adalah pembungkus tiga baris yang memuat modul awesome-lint lalu memanggil awesomeLint.report() test.js:1-38. Hasil instalasi tidak ikut masuk repository karena .gitignore hanya memuat node_modules/ .gitignore:1-1.
⚠️
package-lock.jsonmemuat kunci ganda. Baris 8 mencetak"awesome-lint": "v2.3.0"dua kali package-lock.json:1-109, dan entrinode_modules/awesome-lintmencetakversion,resolved, sertaintegritymasing-masing dua kali package-lock.json:319-3247. Pasangan kunci berulang membuat berkas ini tidak lolos parser JSON yang ketat, sehingga instalasi ulang lewatnpm citidak bisa diandalkan.
Workflow GitHub Actions
| Berkas | Pemicu | Langkah |
|---|---|---|
.github/workflows/lint.yml | pull_request ke branch master | actions/checkout@v2 dengan fetch-depth: 0, lalu npx awesome-lint |
.github/workflows/stale.yml | schedule dengan cron 59 23 * * * | actions/stale@v1, days-before-stale: 20, days-before-close: 1, label no-issue-activity dan no-pr-activity |
.github/dependabot.yml | schedule harian (interval: "daily") | ekosistem npm di direktori /, reviewer dan assignee kristories |
Workflow lint.yml hanya menyala pada pull_request ke master; tidak ada pemicu push .github/workflows/lint.yml:1-1410. Langkah terakhirnya menjalankan npx awesome-lint, bukan npm test, sehingga script test dan test.js tidak dipakai oleh workflow .github/workflows/lint.yml:1-1410. Di sisi lain, stale.yml menandai issue dan pull request sebagai stale setelah 20 hari tanpa aktivitas lalu menutupnya satu hari kemudian .github/workflows/stale.yml:1-2111. dependabot.yml memeriksa ekosistem npm di direktori akar setiap hari dan menugaskan hasilnya kepada kristories .github/dependabot.yml:1-1012.
⚠️
travis.ymldi root tidak berada di.github/workflows/, dan namanya tanpa titik depan, sehingga GitHub Actions maupun Travis tidak membacanya sebagai pipeline aktif. Isinya hanyalanguage: node_js,node_js: node, dan dua baris komentar travis.yml:1-51.
Berkas tata kelola
| Berkas | Isi |
|---|---|
contributing.md | pedoman entri [Title](url) - Description., urutan alfabetis, satu tautan per pull request |
code-of-conduct.md | tujuan proyek, perilaku yang diharapkan, perilaku yang tidak diterima, tanggung jawab maintainer |
.github/pull_request_template.md | satu paragraf pernyataan bahwa kontributor sudah membaca pedoman kontribusi |
LICENSE | CC0 1.0 Universal |
contributing.md menetapkan format dan tata urutan entri contributing.md:19-3113; rinciannya dibahas di Panduan Kontribusi dan Kode Etik. code-of-conduct.md membuka dengan tujuan proyek lalu menetapkan perilaku yang diharapkan code-of-conduct.md:1-614. Template pull request tidak memakai front matter: isinya satu paragraf dan satu baris panah, dan berkas pada path itu otomatis muncul di badan setiap pull request Kristories/awesome-guidelines .github/pull_request_template.md:1-315. LICENSE memakai CC0 1.0 Universal LICENSE:1-1.
Konvensi lintas editor
| Pola | .editorconfig | .gitattributes |
|---|---|---|
| semua berkas | charset = utf-8, end_of_line = lf, insert_final_newline = true, trim_trailing_whitespace = true, indent_style = space, indent_size = 2 | text=auto eol=lf |
*.md | trim_trailing_whitespace = false | merge=union |
*.yml, *.yaml, *.json | indent_size = 2 | ditandai text |
*.png, *.jpg, *.jpeg, *.gif, *.svg | tidak diatur | binary |
.editorconfig menetapkan akar konfigurasi lewat root = true dan memberlakukan akhir baris LF serta indentasi dua spasi untuk seluruh berkas .editorconfig:1-21. .gitattributes menormalkan akhir baris ke LF dan memakai *.md merge=union, sehingga dua penambahan pada berkas Markdown yang sama digabung otomatis .gitattributes:1-17.
⚠️ Ada aturan yang bertentangan untuk berkas Markdown.
.editorconfigmematikan pemangkasan trailing whitespace khusus*.md.editorconfig:11-12, sementara butir terakhir pedoman kontribusi meminta teks editor disetel untuk menghapus trailing whitespace contributing.md:19-3113. Pilih satu acuan agar hasilcommitkonsisten.