agentsclimarketplace

Init

Skill DikDns/upi-rpl-laporan-magang/skills/init

One-time setup — parse pedoman PDF, review extracted config, and save for use by other rpl-magang skillsFrom its SKILL.md

Install
npx -y skills add DikDns/upi-rpl-laporan-magang --skill init

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.2 KB, as published. Nobody here has run it

<objective> Run once to set up rpl-magang. Parse the user's pedoman PDF, show the extracted config for review and correction, then save to ~/.claude/magang-tools/config.json. All other rpl-magang skills depend on this config. </objective> <constants> TOOLS_DIR = ~/.claude/magang-tools CONFIG_PATH = ~/.claude/magang-tools/config.json PYTHON = ~/.claude/magang-tools/venv/bin/python INIT_SCRIPT = ~/.claude/magang-tools/scripts/init_pedoman.py </constants> <steps>

Step 1 — Check existing config

Run:

test -f ~/.claude/magang-tools/config.json && echo "exists" || echo "not_found"

If config exists → show warning: "Config sudah ada dari sebelumnya. Re-init akan menimpa konfigurasi yang lama." Ask:

  • "Lanjut re-init?" → if No, stop.

Step 2 — Collect pedoman PDF path

If $ARGUMENTS contains --pdf, extract path from there. Otherwise ask:

"Berikan path ke file pedoman PDF kamu (contoh: ~/Downloads/Pedoman_MBKM.pdf):"

Validate the path exists before continuing:

test -f "[PATH]" && echo "ok" || echo "not_found"

If not found → ask again.

Step 3 — Parse pedoman PDF

Run:

~/.claude/magang-tools/venv/bin/python ~/.claude/magang-tools/scripts/init_pedoman.py --pdf "[PDF_PATH]"

Parse the JSON output.

If exit code 2 (pdf_parse_failed) → go to Step 3b (manual fallback).

If exit code 0 → go to Step 4 (review).

Step 3b — Manual config fallback

Tell user: "PDF tidak bisa dibaca otomatis. Gw akan tanya manual."

Ask the following (can batch into one AskUserQuestion call or multiple):

  • Program studi (default: Rekayasa Perangkat Lunak)
  • Nama kampus (default: Kampus UPI di Cibiru)
  • Font laporan (default: Arial)
  • Ukuran font body (default: 11pt)
  • Spasi baris (default: 1.5)
  • Margin kiri/atas/bawah/kanan dalam cm (default: 4/3/3/3)
  • Style kutipan (default: APA)
  • Struktur Bab I (sub-sections, comma-separated)
  • Struktur Bab II (sub-sections)
  • Struktur Bab III (sub-sections)
  • Struktur Bab IV (sub-sections)
  • Komponen penilaian (comma-separated)

Build config dict from answers. Skip Step 4, go to Step 5.

Step 4 — Show extracted config for review

Display extracted info in a readable format. Example:

📋 Hasil ekstraksi dari pedoman:

FORMATTING:
  Font         : Arial 11pt
  Spasi        : 1.5
  Margin       : 4cm kiri, 3cm atas/bawah/kanan
  Kutipan      : APA

STRUKTUR LAPORAN:
  Bab I   : Pendahuluan (1.1 Latar Belakang, 1.2 Manfaat & Tujuan, ...)
  Bab II  : Profil Institusi Mitra (2.1, 2.2, ...)
  Bab III : Pelaksanaan Kegiatan (3.1, 3.2, ...)
  Bab IV  : Kesimpulan dan Saran (4.1, 4.2)

KOMPONEN PENILAIAN:
  1. Aspek kemampuan kompetensi dan ketrampilan
  2. Aspek personal dan sosial
  3. ...

Sanity-check the extracted structure before showing it (safety net on top of the extractor):

  • Duplicate section numbers within a bab (e.g. two 3.1) → keep the one matching the bab's real outline, drop the stray.
  • A section whose chapter digit ≠ its bab (e.g. a 4.1 Substansi sitting in Bab IV alongside the real 4.1 Kesimpulan) → drop the off-topic one; the real Bab IV is "Kesimpulan dan Saran".
  • Titles cut mid-word or with stray characters → clean them. Flag anything you fix so the student can confirm: "Gw rapihin [X] karena [alasan] — bener?"

Then ask: "Ada yang perlu dikoreksi? Kalau ada, sebutkan field mana dan nilai yang benar. Kalau sudah oke ketik 'lanjut'."

If user provides corrections → apply them to the config dict. If user types 'lanjut' or equivalent → proceed.

Step 5 — Ask for custom PKS template (optional)

Ask: "Punya template PKS DOCX sendiri? Kalau ada, berikan path-nya. Kalau tidak, skip (Enter)."

If path provided → validate it exists → set pks_template_path in config. If skipped → pks_template_path remains null (use built-in).

Step 5b — Identitas mahasiswa (opsional)

Ask (boleh skip dengan Enter): "Mau simpan identitas biar nggak ditanya ulang tiap skill? (boleh skip)"

  • Nama Mahasiswa (lengkap)
  • NIM
  • Nama Mitra (perusahaan/instansi)
  • Nama Penyelia (supervisor di tempat magang)

Bila diisi, simpan ke config sebagai student_identity:

{ "student_identity": { "nama": "...", "nim": "...", "mitra": "...", "penyelia": "..." } }

Skill laporan / logbook / pks membaca ini dan hanya minta konfirmasi, tidak tanya ulang. Bila skip, student_identity tidak ditulis (skill akan menanyakannya saat dibutuhkan, lalu menyimpannya balik).

Step 5c — Konfirmasi konvensi penamaan file (opsional)

Tampilkan template nama file default dari config dan tanyakan apakah ada yang mau diubah:

📁 Konvensi penamaan file P3NK (dari panduan):

  form_konversi    : Form_Mk_Konversi_MBKM_{nama_mhs}.xlsx
  loa              : LoA_{nama_mhs}.pdf
  logbook          : Logbook_{nama_mhs}.pdf
  laporan          : Laporan_MBKM_{nama_mhs}.pdf
  transkrip_nilai  : Transkrip_Nilai_{nama_mhs}.pdf
  pks              : PKS_{nama_perusahaan}.pdf
  presentasi       : presentasi_{nama_mhs}.mp4
  sertifikat       : Sertifikat_{nama_kegiatan}_{nama_mhs}.pdf

Tanya: "Ada template nama file yang mau diubah? Kalau sudah sesuai, ketik 'lanjut'."

Jika user ubah salah satu → update key yang relevan di config["file_naming"]. Jika skip/lanjut → biarkan default.

Step 6 — Save config

Write config to ~/.claude/magang-tools/config.json.

mkdir -p ~/.claude/magang-tools

Use the Write tool to write the final config JSON.

Step 8 — Generate per-bab skills

Run:

~/.claude/magang-tools/venv/bin/python \
  ~/.claude/magang-tools/scripts/generate_bab_skills.py \
  --config ~/.claude/magang-tools/config.json \
  --output-dir ~/.claude/magang-tools/generated-skills

Parse JSON output. If error → show error, continue (skills can be regenerated later).

Sync generated skills to plugin cache:

CACHE=$(ls -d ~/.claude/plugins/cache/rpl-magang/rpl-magang/*/skills 2>/dev/null | sort -V | tail -1)
if [ -n "$CACHE" ]; then
  for skill_dir in ~/.claude/magang-tools/generated-skills/laporan-bab-*/; do
    dir="${skill_dir%/}"
    [ -d "$dir" ] && cp -r "$dir" "$CACHE/"
  done
fi

Show which skills were generated:

🔧 Skills yang di-generate dari pedoman kamu:
  /rpl-magang:laporan-bab-1  — BAB I [title from config]
  /rpl-magang:laporan-bab-2  — BAB II [title from config]
  /rpl-magang:laporan-bab-3  — BAB III [title from config]
  /rpl-magang:laporan-bab-4  — BAB IV [title from config]

Step 7 — Confirm

Show:

✅ Setup selesai! Config disimpan di ~/.claude/magang-tools/config.json

Skills siap digunakan:
  /rpl-magang:laporan             — cover, lembar pengesahan, kata pengantar
  /rpl-magang:laporan-compile     — compile semua section jadi DOCX
  /rpl-magang:logbook             — buat logbook mingguan
  /rpl-magang:pks                 — buat PKS
  /rpl-magang:penilaian-penyelia  — buat lembar penilaian penyelia

⚠️  RESTART CLAUDE CODE untuk mengaktifkan skill bab yang baru di-generate:
  /rpl-magang:laporan-bab-1, laporan-bab-2, laporan-bab-3, laporan-bab-4
</steps>

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.