laporan-generator 2.6.1
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.
- package/.agents/skills/laporan-generator/SKILL.md +132 -0
- package/.agents/skills/laporan-generator/agents/openai.yaml +3 -0
- package/.agents/skills/laporan-generator/references/campus-guide.md +120 -0
- package/.agents/skills/laporan-generator/references/metadata-schema.md +76 -0
- package/.agents/skills/laporan-generator/references/preset-schema.md +79 -0
- package/.agents/skills/laporan-generator/references/syntax-cheatsheet.md +122 -0
- package/.agents/skills/laporan-generator/references/template-guide.md +100 -0
- package/.agents/skills/laporan-generator/references/troubleshooting.md +105 -0
- package/.agents/skills/laporan-generator/resources/Makefile +90 -0
- package/.agents/skills/laporan-generator/resources/apa.csl +2273 -0
- package/.agents/skills/laporan-generator/resources/build-docx.sh +122 -0
- package/.agents/skills/laporan-generator/resources/build.sh +102 -0
- package/.agents/skills/laporan-generator/resources/chapters/bab1-pendahuluan.md +60 -0
- package/.agents/skills/laporan-generator/resources/chapters/bab2-tinjauan-pustaka.md +83 -0
- package/.agents/skills/laporan-generator/resources/chapters/bab3-metodologi.md +116 -0
- package/.agents/skills/laporan-generator/resources/chapters/bab4-hasil-dan-pembahasan.md +93 -0
- package/.agents/skills/laporan-generator/resources/chapters/bab5-penutup.md +27 -0
- package/.agents/skills/laporan-generator/resources/cover.md +50 -0
- package/.agents/skills/laporan-generator/resources/docx.lua +416 -0
- package/.agents/skills/laporan-generator/resources/laporan +464 -0
- package/.agents/skills/laporan-generator/resources/laporan.ps1 +552 -0
- package/.agents/skills/laporan-generator/resources/logo.jpg +0 -0
- package/.agents/skills/laporan-generator/resources/metadata.yml +35 -0
- package/.agents/skills/laporan-generator/resources/presets/itb-ta.yml +27 -0
- package/.agents/skills/laporan-generator/resources/presets/its-skripsi.yml +26 -0
- package/.agents/skills/laporan-generator/resources/presets/skripsi-4433.yml +26 -0
- package/.agents/skills/laporan-generator/resources/presets/standard.yml +26 -0
- package/.agents/skills/laporan-generator/resources/presets/ugm-skripsi.yml +26 -0
- package/.agents/skills/laporan-generator/resources/presets/ui-skripsi.yml +26 -0
- package/.agents/skills/laporan-generator/resources/presets/unpad-skripsi.yml +27 -0
- package/.agents/skills/laporan-generator/resources/reference.docx +0 -0
- package/.agents/skills/laporan-generator/resources/references.bib +115 -0
- package/.agents/skills/laporan-generator/resources/scripts/bundle.py +75 -0
- package/.agents/skills/laporan-generator/resources/scripts/docx-pagenum.py +192 -0
- package/.agents/skills/laporan-generator/resources/scripts/finalize-docx.py +291 -0
- package/.agents/skills/laporan-generator/resources/scripts/make-reference-docx.py +670 -0
- package/.agents/skills/laporan-generator/resources/scripts/report-doctor.py +211 -0
- package/.agents/skills/laporan-generator/resources/scripts/report-stats.py +149 -0
- package/.agents/skills/laporan-generator/resources/scripts/scan-preset.py +311 -0
- package/.agents/skills/laporan-generator/resources/scripts/setup-deps.ps1 +152 -0
- package/.agents/skills/laporan-generator/resources/scripts/setup-deps.sh +113 -0
- package/.agents/skills/laporan-generator/resources/scripts/test_scripts.py +128 -0
- package/.agents/skills/laporan-generator/resources/scripts/validate-preset.py +166 -0
- package/.agents/skills/laporan-generator/resources/template.typ +394 -0
- package/.agents/skills/laporan-generator/scripts/build.sh +78 -0
- package/.agents/skills/laporan-generator/scripts/bundle.py +75 -0
- package/.agents/skills/laporan-generator/scripts/docx-pagenum.py +192 -0
- package/.agents/skills/laporan-generator/scripts/finalize-docx.py +152 -0
- package/.agents/skills/laporan-generator/scripts/laporan +447 -0
- package/.agents/skills/laporan-generator/scripts/laporan.ps1 +529 -0
- package/.agents/skills/laporan-generator/scripts/make-reference-docx.py +630 -0
- package/.agents/skills/laporan-generator/scripts/report-doctor.py +211 -0
- package/.agents/skills/laporan-generator/scripts/report-stats.py +149 -0
- package/.agents/skills/laporan-generator/scripts/scan-preset.py +311 -0
- package/.agents/skills/laporan-generator/scripts/setup-deps.ps1 +152 -0
- package/.agents/skills/laporan-generator/scripts/setup-deps.sh +113 -0
- package/.agents/skills/laporan-generator/scripts/test_scripts.py +103 -0
- package/.agents/skills/laporan-generator/scripts/validate-preset.py +166 -0
- package/.agents/workflows/laporan-generator.md +8 -0
- package/LICENSE +21 -0
- package/Makefile +90 -0
- package/README.md +389 -0
- package/apa.csl +2273 -0
- package/bin/laporan-generator.js +71 -0
- package/build-docx.sh +122 -0
- package/build.sh +102 -0
- package/chapters/bab1-pendahuluan.md +60 -0
- package/chapters/bab2-tinjauan-pustaka.md +83 -0
- package/chapters/bab3-metodologi.md +116 -0
- package/chapters/bab4-hasil-dan-pembahasan.md +93 -0
- package/chapters/bab5-penutup.md +27 -0
- package/cover.md +50 -0
- package/docs/campus-guide.md +120 -0
- package/docs/metadata-schema.md +76 -0
- package/docs/preset-schema.md +79 -0
- package/docs/syntax-cheatsheet.md +122 -0
- package/docs/template-guide.md +100 -0
- package/docs/troubleshooting.md +105 -0
- package/docx.lua +416 -0
- package/laporan +464 -0
- package/laporan.ps1 +552 -0
- package/lib/init.js +118 -0
- package/lib/setup.js +33 -0
- package/lib/sync-hosts.js +194 -0
- package/lib/uninstall.js +123 -0
- package/logo.jpg +0 -0
- package/metadata.yml +35 -0
- package/package.json +65 -0
- package/presets/itb-ta.yml +27 -0
- package/presets/its-skripsi.yml +26 -0
- package/presets/skripsi-4433.yml +26 -0
- package/presets/standard.yml +26 -0
- package/presets/ugm-skripsi.yml +26 -0
- package/presets/ui-skripsi.yml +26 -0
- package/presets/unpad-skripsi.yml +27 -0
- package/reference.docx +0 -0
- package/references.bib +115 -0
- package/scripts/bundle.py +75 -0
- package/scripts/docx-pagenum.py +192 -0
- package/scripts/finalize-docx.py +291 -0
- package/scripts/make-reference-docx.py +670 -0
- package/scripts/report-doctor.py +211 -0
- package/scripts/report-stats.py +149 -0
- package/scripts/scan-preset.py +311 -0
- package/scripts/setup-deps.ps1 +152 -0
- package/scripts/setup-deps.sh +113 -0
- package/scripts/test_scripts.py +128 -0
- package/scripts/validate-preset.py +166 -0
- package/template.typ +394 -0
package/README.md
ADDED
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="logo.jpg" alt="Laporan Generator" width="180"/>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Laporan Generator</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<b>Universal Academic Document & Thesis Engine for AI Agents and Engineers</b><br/>
|
|
9
|
+
Otomatisasi dokumen akademik dan teknis dari Markdown ke PDF berstandar publikasi dan Microsoft Word (DOCX) dalam hitungan detik.<br/>
|
|
10
|
+
Mendukung pedoman resmi format penulisan kampus Indonesia (UI, ITB, UGM, ITS, UNPAD) dan standar internasional.
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://www.npmjs.com/package/laporan-generator"><img src="https://img.shields.io/npm/v/laporan-generator?style=for-the-badge&color=cb3837&logo=npm" alt="npm version"></a>
|
|
15
|
+
<a href="https://github.com/muadzhdz/laporan-generator/actions/workflows/build.yml"><img src="https://github.com/muadzhdz/laporan-generator/actions/workflows/build.yml/badge.svg" alt="Status Build"></a>
|
|
16
|
+
<a href="#"><img src="https://img.shields.io/badge/Typst-0.13+-239DAD?style=for-the-badge&logo=typst&logoColor=white" alt="Typst"></a>
|
|
17
|
+
<a href="#"><img src="https://img.shields.io/badge/Pandoc-3.0+-blue?style=for-the-badge&logo=markdown" alt="Pandoc"></a>
|
|
18
|
+
<a href="#"><img src="https://img.shields.io/badge/Python-3.9+-3776AB?style=for-the-badge&logo=python&logoColor=white" alt="Python"></a>
|
|
19
|
+
<a href="#"><img src="https://img.shields.io/badge/Tests-101%20Passed-success?style=for-the-badge" alt="Pengujian Lulus"></a>
|
|
20
|
+
<a href="#"><img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="Lisensi"></a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<p align="center">
|
|
24
|
+
<a href="GETTING-STARTED.md">Panduan Cepat</a> •
|
|
25
|
+
<a href="docs/campus-guide.md">Panduan Preset Kampus</a> •
|
|
26
|
+
<a href="docs/syntax-cheatsheet.md">Cheatsheet Sintaks</a> •
|
|
27
|
+
<a href="docs/metadata-schema.md">Skema Metadata</a> •
|
|
28
|
+
<a href="docs/troubleshooting.md">Penyelesaian Masalah</a> •
|
|
29
|
+
<a href="CHANGELOG.md">Catatan Perubahan</a>
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Ikhtisar
|
|
35
|
+
|
|
36
|
+
Laporan Generator adalah kompilator otomatisasi dokumen akademik berevolusi ganda (*dual-engine*) sekaligus kapabilitas terpadu untuk agen kecerdasan buatan (*AI Agent Skill*). Alat ini dirancang untuk menjembatani alur kerja rekayasa perangkat lunak modern dengan standar ketat format penulisan karya ilmiah perguruan tinggi.
|
|
37
|
+
|
|
38
|
+
Penyusunan makalah, laporan magang/praktik kerja lapangan (PKL), laporan proyek, hingga skripsi dan tesis kerap menguras waktu akibat proses penataan format manual di pengolah kata seperti Microsoft Word. Laporan Generator menuntaskan permasalahan ini secara menyeluruh langsung dari berkas sumber Markdown modular, yang dapat dikompilasi secara paralel menjadi:
|
|
39
|
+
1. **PDF Kualitas Publikasi**: Tipografi presisi tinggi berbasis mesin typesetting modern Typst.
|
|
40
|
+
2. **Microsoft Word Standar (.docx)**: Dokumen murni berbasis OpenXML dengan penataan hierarki heading yang rapi, bidang dinamis Daftar Isi (*TOC Field Codes*), serta penomoran halaman ganda (Romawi kecil untuk bagian awal dan angka Arab untuk batang tubuh bab).
|
|
41
|
+
|
|
42
|
+
Proyek ini juga memuat paket **AI Agent Skill** yang kompatibel dengan 10+ platform agen AI, memungkinkan agen cerdas menyusun draf, mengaudit sitasi, memindai pedoman kampus, dan membangun dokumen secara otonom.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Sorotan Arsitektur
|
|
47
|
+
|
|
48
|
+
### Alur Kerja Pipeline Dual-Engine
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
[ Berkas Sumber Markdown ]
|
|
52
|
+
├── cover.md (Kata Pengantar & Lembar Depan)
|
|
53
|
+
├── chapters/bab*.md (BAB I s.d. BAB V)
|
|
54
|
+
├── metadata.yml (Preset Kampus, Penulis, Dosen, Lembar Pengesahan)
|
|
55
|
+
└── references.bib (Basis Data Sitasi BibTeX)
|
|
56
|
+
│
|
|
57
|
+
├──> [ Pipeline Mesin Typst ]
|
|
58
|
+
│ ├── template.typ (Tata letak tipografi & margin dinamis)
|
|
59
|
+
│ ├── ImageMagick (Normalisasi kanal alfa citra)
|
|
60
|
+
│ └── typst compile ──> [ Laporan.pdf ]
|
|
61
|
+
│
|
|
62
|
+
└──> [ Pipeline Mesin Word/DOCX ]
|
|
63
|
+
├── Pandoc + docx.lua (Transformasi AST untuk heading BAB)
|
|
64
|
+
├── reference.docx (Gaya tipografi dasar TNR 12pt A4)
|
|
65
|
+
├── scripts/finalize-docx.py (Injeksi kode bidang TOC dinamis)
|
|
66
|
+
└── scripts/docx-pagenum.py (Manipulasi OpenXML penomoran ganda) ──> [ Laporan.docx ]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Fitur Rekayasa Unggulan
|
|
70
|
+
|
|
71
|
+
* **Penomoran Halaman Ganda Otomatis**:
|
|
72
|
+
* Bagian Awal (Kata Pengantar, Daftar Isi, Daftar Gambar/Tabel, Abstrak): Penomoran angka Romawi kecil di tengah bawah (`i, ii, iii...`), dengan nomor pada halaman cover disembunyikan secara otomatis.
|
|
73
|
+
* Bagian Utama (BAB I hingga Penutup dan Daftar Pustaka): Penomoran angka Arab (`1, 2, 3...`) yang diatur ulang dimulai dari halaman 1.
|
|
74
|
+
* **Daftar Isi Dinamis Microsoft Word Asli**:
|
|
75
|
+
* Menggunakan kode bidang murni OpenXML (`w:fldSimple` / `w:instrText TOC \o "1-3" \h \z \u`).
|
|
76
|
+
* Hierarki judul bab (`BAB I`, `1.1`, `1.1.1`) terdaftar dengan sempurna pada panel navigasi Word tanpa tumpang tindih teks atau kesalahan indentasi.
|
|
77
|
+
* Kompatibel penuh dengan Microsoft Office 365, Word 2016-2021, LibreOffice Writer, dan WPS Office.
|
|
78
|
+
* **Penomoran Otomatis Bab, Gambar, dan Tabel**:
|
|
79
|
+
* Penomoran gambar, tabel, dan persamaan matematika secara otomatis mengikat pada indeks bab aktif (contoh: `Gambar 1.1`, `Tabel 2.3`, `Persamaan (3.1)`).
|
|
80
|
+
* Variabel counter di-reset secara otomatis pada setiap batas pergantian bab.
|
|
81
|
+
* **Keterampilan Agen AI Lintas Platform (Multi-Host AI Skill)**:
|
|
82
|
+
* Terstruktur sesuai spesifikasi *Agent Skill Standard* lengkap dengan protokol wawancara interaktif 3 tahap di `SKILL.md`.
|
|
83
|
+
* Dapat dideteksi dan dieksekusi langsung oleh Antigravity CLI, Claude Code, Grok, Codex/OpenAI, GitHub Copilot, Cursor, Roo-Code/Cline, OpenCode, dan Kiro-CLI.
|
|
84
|
+
* **Peralatan Audit & Penjaminan Mutu**:
|
|
85
|
+
* `doctor`: Audit integritas dokumen untuk mendeteksi sitasi rusak/yatim, gambar yang tidak ditemukan di disk, struktur heading yang salah, dan kesalahan skema metadata.
|
|
86
|
+
* `stats`: Analisis komprehensif jumlah kata, karakter, perkiraan durasi membaca, estimasi total halaman, dan inventaris media.
|
|
87
|
+
* `bundle`: Pengemasan arsip rilis zip yang bersih dari berkas sementara untuk pengumpulan ke institusi.
|
|
88
|
+
* `preset scan`: Pemindai otomatis dokumen PDF pedoman kampus untuk mengekstrak margin dan gaya heading ke konfigurasi YAML baru.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Dukungan Host AI Agent
|
|
93
|
+
|
|
94
|
+
Laporan Generator mendistribusikan *skill* agen ke direktori global maupun lokal repositori:
|
|
95
|
+
|
|
96
|
+
| Host AI Agent | Direktori Konfigurasi / Skill | Protokol Pemanggilan |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| **Antigravity CLI** | `~/.gemini/antigravity-cli/skills/laporan-generator` | Prompt interaktif / Slash command |
|
|
99
|
+
| **Claude Code** | `~/.claude/skills/laporan-generator` | Slash command / Natural language |
|
|
100
|
+
| **Grok** | `~/.grok/skills/laporan-generator` | Deteksi skill agen global |
|
|
101
|
+
| **OpenCode** | `~/.config/opencode/skills/laporan-generator` | Tooling native agen |
|
|
102
|
+
| **Kiro-CLI** | `~/.kiro/agents/laporan-generator.json` | Sub-agen kustom |
|
|
103
|
+
| **Universal Agents** | `~/.agents/skills/laporan-generator` | Standar direktori `.agents/` |
|
|
104
|
+
| **Cursor / Copilot** | `.github/copilot-instructions.md`, `.cursor/rules` | Konfigurasi aturan repo |
|
|
105
|
+
|
|
106
|
+
Untuk menyinkronkan seluruh skill ke seluruh host yang terpasang di sistem dalam satu perintah:
|
|
107
|
+
```bash
|
|
108
|
+
npx laporan-generator sync-hosts
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Alur Penggunaan Cepat
|
|
114
|
+
|
|
115
|
+
### Opsi A: Alur Otonom AI Agent via NPX (Direkomendasikan)
|
|
116
|
+
|
|
117
|
+
Anda dapat membuat atau menginisialisasi dokumen baru di folder mana pun tanpa perlu melakukan kloning repositori:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# 1. Daftarkan kapabilitas Laporan Generator ke seluruh agen AI Anda
|
|
121
|
+
npx laporan-generator sync-hosts
|
|
122
|
+
|
|
123
|
+
# 2. Pasang dependensi sistem yang diperlukan (Typst, Pandoc, ImageMagick)
|
|
124
|
+
npx laporan-generator setup
|
|
125
|
+
|
|
126
|
+
# 3. Inisialisasi struktur dokumen akademik lengkap di direktori saat ini
|
|
127
|
+
npx laporan-generator init
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Setelah inisialisasi selesai, buka antarmuka obrolan AI Agent Anda (Antigravity CLI, Claude Code, atau OpenCode), lalu berikan instruksi:
|
|
131
|
+
> *"Tolong buatkan draf Skripsi lengkap BAB 1 sampai BAB 3 dengan format ITB (preset itb-ta) berdasarkan topik sistem deteksi intrusi jaringan menggunakan eBPF."*
|
|
132
|
+
|
|
133
|
+
Agen AI akan membaca `SKILL.md`, menjalankan protokol wawancara interaktif 3 tahap, menerapkan preset kampus, menyusun konten bab, memvalidasi sitasi pada `references.bib`, menjalankan audit kesehatan `doctor`, dan membangun dokumen PDF serta Word secara otomatis.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### Opsi B: Alur Baris Perintah (CLI) Mandiri / Manual
|
|
138
|
+
|
|
139
|
+
Jika Anda ingin menulis dokumen secara manual dan mengompilasinya langsung via terminal:
|
|
140
|
+
|
|
141
|
+
#### Linux / macOS:
|
|
142
|
+
```bash
|
|
143
|
+
# Kloning repositori
|
|
144
|
+
git clone https://github.com/muadzhdz/laporan-generator.git tugas-akhir
|
|
145
|
+
cd tugas-akhir
|
|
146
|
+
|
|
147
|
+
# Periksa kelengkapan dependensi dan integritas berkas
|
|
148
|
+
./laporan check
|
|
149
|
+
|
|
150
|
+
# Bangun dokumen PDF dan DOCX
|
|
151
|
+
./laporan build
|
|
152
|
+
|
|
153
|
+
# Buka dokumen PDF hasil kompilasi
|
|
154
|
+
./laporan view
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### Windows (Native PowerShell 5.1+ / 7+ tanpa WSL):
|
|
158
|
+
```powershell
|
|
159
|
+
# Kloning repositori
|
|
160
|
+
git clone https://github.com/muadzhdz/laporan-generator.git tugas-akhir
|
|
161
|
+
cd tugas-akhir
|
|
162
|
+
|
|
163
|
+
# Periksa kelengkapan dependensi dan integritas berkas
|
|
164
|
+
.\laporan.ps1 check
|
|
165
|
+
|
|
166
|
+
# Bangun dokumen PDF dan DOCX
|
|
167
|
+
.\laporan.ps1 build
|
|
168
|
+
|
|
169
|
+
# Buka dokumen PDF hasil kompilasi
|
|
170
|
+
.\laporan.ps1 view
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
#### Lingkungan Nix Flake (Hermetik & Reproducible):
|
|
174
|
+
```bash
|
|
175
|
+
# Masuk ke isolated devShell dengan versi toolchain identik
|
|
176
|
+
nix develop
|
|
177
|
+
|
|
178
|
+
# Kompilasi dokumen di dalam lingkungan devShell
|
|
179
|
+
./laporan build
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
#### Lingkungan Docker (Tanpa Dependensi Sistem Host):
|
|
183
|
+
```bash
|
|
184
|
+
docker compose run --rm laporan-generator
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Matriks Perintah CLI
|
|
190
|
+
|
|
191
|
+
Seluruh perintah didukung secara konsisten di NPX, Linux/macOS Bash (`./laporan`), dan Windows PowerShell (`.\laporan.ps1`):
|
|
192
|
+
|
|
193
|
+
| Perintah | NPX (`npx laporan-generator`) | Bash (`./laporan`) | PowerShell (`.\laporan.ps1`) | Keterangan Fungsi |
|
|
194
|
+
|---|---|---|---|---|
|
|
195
|
+
| `init` | Didukung | Didukung | Didukung | Menyalin template berkas, metadata, dan draf bab awal |
|
|
196
|
+
| `sync-hosts` | Didukung | Didukung | Didukung | Memasang skill ke seluruh direktori agen AI yang terdeteksi |
|
|
197
|
+
| `setup` | Didukung | Didukung | Didukung | Memasang paket sistem Typst, Pandoc, ImageMagick, dan Python |
|
|
198
|
+
| `check` | Didukung | Didukung | Didukung | Memeriksa ketersediaan toolchain dan kelengkapan berkas |
|
|
199
|
+
| `build` | Didukung | Didukung | Didukung | Mengompilasi berkas sumber menjadi `Laporan.pdf` dan `Laporan.docx` |
|
|
200
|
+
| `stats` | Didukung | Didukung | Didukung | Menghitung jumlah kata, karakter, estimasi halaman, dan gambar |
|
|
201
|
+
| `doctor` | Didukung | Didukung | Didukung | Melakukan audit integritas sitasi, gambar hilang, dan format heading |
|
|
202
|
+
| `bundle` | Didukung | Didukung | Didukung | Mengemas proyek menjadi arsip ZIP rilis yang bersih |
|
|
203
|
+
| `preset list` | Didukung | Didukung | Didukung | Menampilkan daftar seluruh preset format kampus resmi |
|
|
204
|
+
| `preset apply <id>`| Didukung | Didukung | Didukung | Menerapkan konfigurasi preset kampus tertentu ke `metadata.yml` |
|
|
205
|
+
| `preset scan <pdf>`| Didukung | Didukung | Didukung | Memindai berkas PDF pedoman kampus menjadi file preset YAML baru |
|
|
206
|
+
| `view` | - | Didukung | Didukung | Membuka berkas `Laporan.pdf` pada PDF viewer bawaan sistem |
|
|
207
|
+
| `watch` | - | Didukung | Didukung | Melakukan kompilasi ulang otomatis saat berkas sumber disimpan |
|
|
208
|
+
| `clean` | - | Didukung | Didukung | Membersihkan berkas hasil build dan folder sementara |
|
|
209
|
+
| `uninstall` | Didukung | Didukung | Didukung | Menghapus seluruh instalasi skill dari seluruh host agen AI |
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Preset Kampus Resmi
|
|
214
|
+
|
|
215
|
+
Konfigurasi tata letak bawaan yang disesuaikan dengan pedoman penulisan universitas di Indonesia:
|
|
216
|
+
|
|
217
|
+
| ID Preset | Institusi / Standar | Batas Margin (A-B-K-Kn) | Tipografi | Gaya Judul Bab | Keterangan Khusus |
|
|
218
|
+
|---|---|---|---|---|---|
|
|
219
|
+
| `standard` | Standar Akademik Umum | 2.5cm - 2.5cm - 3.0cm - 2.5cm | Times New Roman, 12pt | `BAB I` (Tengah) | Format standar makalah, proyek, dan magang |
|
|
220
|
+
| `skripsi-4433` | Standar Skripsi Nasional | 4.0cm - 3.0cm - 4.0cm - 3.0cm | Times New Roman, 12pt | `BAB I` (Tengah) | Standar jilid hardcover dengan margin kiri 4cm |
|
|
221
|
+
| `ui-skripsi` | Universitas Indonesia | 2.5cm - 2.5cm - 2.5cm - 2.5cm | Times New Roman, 12pt | `BAB 1` (Angka Arab) | Format resmi Buku Pedoman Teknis UI |
|
|
222
|
+
| `itb-ta` | Institut Teknologi Bandung | 4.0cm - 3.0cm - 4.0cm - 3.0cm | Times New Roman, 12pt | `BAB I` (Tengah) | Cover minimalis tanpa dosen pembimbing luar |
|
|
223
|
+
| `ugm-skripsi` | Universitas Gadjah Mada | 4.0cm - 3.0cm - 4.0cm - 3.0cm | Times New Roman, 12pt | `BAB I` (Tengah) | Format resmi pedoman tugas akhir & tesis UGM |
|
|
224
|
+
| `its-skripsi` | Institut Teknologi Sepuluh Nopember | 4.0cm - 3.0cm - 4.0cm - 3.0cm | Times New Roman, 12pt | `BAB 1` (Angka Arab) | Format baku buku Tugas Akhir ITS |
|
|
225
|
+
| `unpad-skripsi` | Universitas Padjadjaran | 4.0cm - 3.0cm - 4.0cm - 3.0cm | Times New Roman, 12pt | `BAB I` (Tengah) | Format penulisan skripsi & karya ilmiah UNPAD |
|
|
226
|
+
|
|
227
|
+
### Cara Mengaktifkan Preset
|
|
228
|
+
```bash
|
|
229
|
+
./laporan preset apply itb-ta
|
|
230
|
+
# atau
|
|
231
|
+
npx laporan-generator preset apply itb-ta
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Memindai Pedoman PDF Kampus Lain
|
|
235
|
+
Apabila universitas Anda belum terdaftar di atas, jalankan pemindai dokumen:
|
|
236
|
+
```bash
|
|
237
|
+
./laporan preset scan /path/ke/pedoman-skripsi.pdf
|
|
238
|
+
```
|
|
239
|
+
Pemindai akan menganalisis parameter margin, ukuran font, dan penomoran bab dari teks dokumen pedoman, lalu menghasilkan berkas preset berekstensi `.yml` yang siap digunakan di direktori `presets/`.
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Konfigurasi Dokumen (`metadata.yml`)
|
|
244
|
+
|
|
245
|
+
Seluruh struktur dokumen, judul, informasi kepenulisan, tanda tangan lembar pengesahan, dan abstrak bilingual dikendalikan terpusat melalui `metadata.yml`:
|
|
246
|
+
|
|
247
|
+
```yaml
|
|
248
|
+
title: "Analisis dan Implementasi Sistem Deteksi Intrusi Jaringan Berbasis eBPF"
|
|
249
|
+
document_type: "Skripsi"
|
|
250
|
+
margin_preset: "itb-ta"
|
|
251
|
+
|
|
252
|
+
author:
|
|
253
|
+
- name: "Mu'adz Hudzaifah"
|
|
254
|
+
nim: "13522001"
|
|
255
|
+
|
|
256
|
+
institution: "Institut Teknologi Bandung"
|
|
257
|
+
faculty: "Sekolah Teknik Elektro dan Informatika"
|
|
258
|
+
department: "Teknik Informatika"
|
|
259
|
+
city: "Bandung"
|
|
260
|
+
year: "2026"
|
|
261
|
+
date: "14 September 2026"
|
|
262
|
+
|
|
263
|
+
course: "Tugas Akhir II"
|
|
264
|
+
lecturer: "Dr. Ir. Pembimbing Utama, M.T."
|
|
265
|
+
|
|
266
|
+
# Lembar Pengesahan
|
|
267
|
+
approval:
|
|
268
|
+
city: "Bandung"
|
|
269
|
+
date: "14 September 2026"
|
|
270
|
+
supervisors:
|
|
271
|
+
- name: "Dr. Ir. Pembimbing Utama, M.T."
|
|
272
|
+
nip: "197501012000031001"
|
|
273
|
+
role: "Pembimbing I"
|
|
274
|
+
- name: "Dr. Eng. Pembimbing Pendamping, S.T."
|
|
275
|
+
nip: "198002022005011002"
|
|
276
|
+
role: "Pembimbing II"
|
|
277
|
+
dean:
|
|
278
|
+
name: "Prof. Dr. Dekan Fakultas, M.Sc."
|
|
279
|
+
nip: "196803031992031003"
|
|
280
|
+
role: "Dekan STEI"
|
|
281
|
+
|
|
282
|
+
# Abstrak Bahasa Indonesia
|
|
283
|
+
abstract_id: >
|
|
284
|
+
Deteksi intrusi jaringan konvensional seringkali menimbulkan overhead performa yang signifikan...
|
|
285
|
+
keywords_id: ["eBPF", "Deteksi Intrusi", "Linux Kernel", "Keamanan Jaringan"]
|
|
286
|
+
|
|
287
|
+
# Abstrak Bahasa Inggris
|
|
288
|
+
abstract_en: >
|
|
289
|
+
Conventional network intrusion detection systems frequently introduce notable performance overhead...
|
|
290
|
+
keywords_en: ["eBPF", "Intrusion Detection", "Linux Kernel", "Network Security"]
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Struktur Direktori
|
|
296
|
+
|
|
297
|
+
```text
|
|
298
|
+
laporan-generator/
|
|
299
|
+
├── bin/
|
|
300
|
+
│ └── laporan-generator.js # Router CLI global untuk Node.js / NPX
|
|
301
|
+
├── lib/
|
|
302
|
+
│ ├── init.js # Modul inisialisasi dokumen baru
|
|
303
|
+
│ ├── setup.js # Wrapper instalasi dependensi sistem
|
|
304
|
+
│ ├── sync-hosts.js # Distributor skill agen AI multi-host
|
|
305
|
+
│ └── uninstall.js # Pembersih skill agen AI dari sistem
|
|
306
|
+
├── .agents/
|
|
307
|
+
│ ├── skills/laporan-generator/ # Standar Universal Agent Skill
|
|
308
|
+
│ │ ├── SKILL.md # Instruksi dan protokol wawancara agen AI
|
|
309
|
+
│ │ ├── agents/ # Skema konfigurasi spesifik agen
|
|
310
|
+
│ │ ├── references/ # Rujukan skema YAML dan panduan teknis
|
|
311
|
+
│ │ ├── resources/ # Salinan berkas template dan utilitas
|
|
312
|
+
│ │ └── scripts/ # Skrip bantu audit dan kalkulasi dokumen
|
|
313
|
+
│ └── workflows/
|
|
314
|
+
│ └── laporan-generator.md # Definisi perintah alur kerja slash command
|
|
315
|
+
├── chapters/
|
|
316
|
+
│ ├── bab1-pendahuluan.md # Latar belakang, rumusan masalah, dan tujuan
|
|
317
|
+
│ ├── bab2-tinjauan-pustaka.md # Landasan teori dan kajian literatur
|
|
318
|
+
│ ├── bab3-metodologi.md # Desain arsitektur dan metodologi riset
|
|
319
|
+
│ ├── bab4-hasil-dan-pembahasan.md # Implementasi, pengujian, dan pembahasan
|
|
320
|
+
│ └── bab5-penutup.md # Kesimpulan dan saran pengembangan
|
|
321
|
+
├── docs/ # Dokumentasi teknis terperinci
|
|
322
|
+
├── presets/ # Koleksi preset format resmi universitas
|
|
323
|
+
├── scripts/
|
|
324
|
+
│ ├── finalize-docx.py # Injeksi kode bidang TOC murni pada Word
|
|
325
|
+
│ ├── docx-pagenum.py # Penerapan sistem nomor halaman ganda Word
|
|
326
|
+
│ ├── make-reference-docx.py # Pembangun berkas gaya reference.docx
|
|
327
|
+
│ ├── report-doctor.py # Pemeriksa kesehatan & integritas berkas
|
|
328
|
+
│ ├── report-stats.py # Kalkulator statistik kata dan halaman
|
|
329
|
+
│ ├── bundle.py # Utilitas pengemasan berkas rilis
|
|
330
|
+
│ ├── scan-preset.py # Pemindai otomatis PDF pedoman kampus
|
|
331
|
+
│ ├── validate-preset.py # Validator skema berkas preset YAML
|
|
332
|
+
│ ├── setup-deps.sh # Skrip instalasi dependensi Unix
|
|
333
|
+
│ └── setup-deps.ps1 # Skrip instalasi dependensi PowerShell Windows
|
|
334
|
+
├── apa.csl # Format sitasi dan daftar pustaka standar APA 7th
|
|
335
|
+
├── build.sh # Skrip kompilasi utama Linux/macOS
|
|
336
|
+
├── build-docx.sh # Skrip kompilasi khusus dokumen Word
|
|
337
|
+
├── cover.md # Kata Pengantar dan halaman depan
|
|
338
|
+
├── docx.lua # Filter Pandoc Lua untuk transformasi AST Word
|
|
339
|
+
├── flake.nix # Konfigurasi lingkungan kerja Nix reproducible
|
|
340
|
+
├── laporan # Wrapper CLI interaktif Bash
|
|
341
|
+
├── laporan.ps1 # Wrapper CLI native PowerShell Windows
|
|
342
|
+
├── Makefile # Target otomatisasi pengembang
|
|
343
|
+
├── metadata.yml # Konfigurasi aktif berkas dokumen
|
|
344
|
+
├── reference.docx # Dokumen template acuan gaya Microsoft Word
|
|
345
|
+
├── references.bib # Basis data pustaka format BibTeX
|
|
346
|
+
├── template.typ # Mesin typesetting dan tata letak Typst
|
|
347
|
+
└── test.sh # Rangkaian pengujian otomatis (101 assertions)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Penjaminan Mutu & Pengujian
|
|
353
|
+
|
|
354
|
+
Laporan Generator dilengkapi rangkaian pengujian otomatis (*automated test suite*) yang memvalidasi pipeline Unix dan Windows, filter Lua, skrip manipulasi OpenXML, validasi preset, serta fungsionalitas CLI:
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
# Menjalankan pengujian
|
|
358
|
+
./test.sh
|
|
359
|
+
# atau
|
|
360
|
+
npm test
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Cakupan Pengujian (24 Test Suite / 101 Assertions)
|
|
364
|
+
* **Integritas Berkas**: Memverifikasi keberadaan seluruh template utama, skrip, dan skema acuan.
|
|
365
|
+
* **Pipeline Typst**: Memvalidasi rendering ukuran font, margin dinamis, logika penomoran bab, dan reset counter gambar/tabel.
|
|
366
|
+
* **Pipeline DOCX**: Memvalidasi transformasi AST Pandoc, filter Lua, field codes TOC OpenXML, dan nomor halaman ganda.
|
|
367
|
+
* **Validasi Preset**: Menguji seluruh preset bawaan terhadap skema spesifikasi YAML.
|
|
368
|
+
* **Perintah CLI**: Memverifikasi alur eksekusi `init`, `check`, `build`, `stats`, `doctor`, `bundle`, `preset`, dan `uninstall`.
|
|
369
|
+
* **Kebersihan & Keamanan**: Memastikan tidak ada berkas sampah biner, cache Python (`.pyc`), atau berkas temporer yang tertinggal.
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Pusat Dokumentasi
|
|
374
|
+
|
|
375
|
+
* **[Panduan Pemula (Zero to PDF)](GETTING-STARTED.md)**: Panduan langkah demi langkah dari instalasi hingga kompilasi pertama.
|
|
376
|
+
* **[Panduan Preset Kampus](docs/campus-guide.md)**: Rincian margin, tipografi, dan format penulisan antar universitas.
|
|
377
|
+
* **[Cheatsheet Sintaks Markdown](docs/syntax-cheatsheet.md)**: Panduan lengkap penulisan sitasi, rumus matematika, tabel, dan gambar.
|
|
378
|
+
* **[Skema Metadata](docs/metadata-schema.md)**: Referensi lengkap seluruh parameter pada `metadata.yml`.
|
|
379
|
+
* **[Skema Preset](docs/preset-schema.md)**: Spesifikasi format untuk membuat preset kampus baru.
|
|
380
|
+
* **[Panduan Template Typst](docs/template-guide.md)**: Arsitektur tipografi, font Libertinus Serif, dan aturan halaman.
|
|
381
|
+
* **[Penyelesaian Masalah (Troubleshooting)](docs/troubleshooting.md)**: Panduan penanganan kendala umum dependensi, font, dan izin sistem.
|
|
382
|
+
* **[Panduan Kontribusi](CONTRIBUTING.md)**: Pedoman pengembangan fitur baru dan penambahan preset.
|
|
383
|
+
* **[Catatan Perubahan (Changelog)](CHANGELOG.md)**: Riwayat pembaruan dan rilis versi.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## Lisensi
|
|
388
|
+
|
|
389
|
+
Didistribusikan di bawah lisensi MIT. Silakan baca berkas [LICENSE](LICENSE) untuk informasi lebih lanjut.
|