ai-assist-git-publish

Tinjau · 56
Diindeks di Registry

Publish a GitHub Release when CHANGELOG.md's top version is ahead of the latest published release. Only invoke when the user explicitly types /ai-assist-git-publish. Never auto-trigger from general conversation about releases, tags, or versions.

Verified installs0
Star88
Versi1.0.0
Kualitas61/100 · Menjanjikan
Kepercayaan56/100 · Do not auto-install
Audit72/100 · Perlu ditinjau

Profil aset

Agent pemrograman dan pengembangan

Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.

Lihat kategori

Skenario

GitHub automation

I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.

Kecocokan Agent

Claude Code + CLI + Codex

Cocok untuk Codex, Claude Code, Cursor, CLI, atau Agent khusus.

Pasang

Siap

npx skills add jparkerweb/ai-assist-skills --skill ai-assist-git-publish

Pemeliharaan

Terkini

2 hari sejak push

Risiko

Perlu ditinjau

Lisensi tidak jelas

Kualitas GitHub

88

61/100 Kualitas · 64/100 Kepercayaan

Tag cakupan

CodingGitHub automationAgent pemrogramanagent-skill

Catatan ulasan

Lisensi tidak jelas · Permission surface may require sandboxing

Kartu adopsi Agent

Kepercayaan, audit, dan kesiapan pemasangan dalam sekali lihat

Skor ini menggabungkan metadata repositori publik, sinyal ulasan OpenAgentSkill, kebaruan pemeliharaan, dan kesiapan pemasangan. Ini adalah sinyal shortlist, bukan pengganti peninjauan manusia.

Kualitas

Menjanjikan
61

Useful candidate, but compare it with alternatives before adopting.

Kepercayaan

Do not auto-install
56

Trust Score v5 found insufficient evidence for agent installation. Treat this as discovery material, not an executable recommendation.

Audit

Perlu ditinjau
72

Tinjauan yang dapat dibaca mesin tentang kesiapan pemasangan, metadata keamanan, pemeliharaan, dan risiko adopsi.

Trust Score OpenAgentSkill v5

Tinjauan manusia sebelum pemasangan

Choose a stronger alternative or inspect the source manually before any install attempt.

CodexClaude CodeCursorOpenAgentSkill CLI

Star

88 star GitHub

Aktivitas repositori

88 star dan 12 fork

Pemeliharaan

2 hari sejak push

Lisensi

Tidak diketahui

Pasang

npx skills add jparkerweb/ai-assist-skills --skill ai-assist-git-publish

Keamanan pemasangan

Jalur pemasangan paket atau runtime standar

Cakupan izin

shell or command execution, filesystem or document access

Hasil Agent

Belum ada data hasil Agent

Dokumentasi

Konteks README/SKILL.md kuat

Ringkasan risiko

Tinjau sebelum produksi

  • The provided SKILL.md excerpt is incomplete; final release creation steps are missing, which could create ambiguity (likely present in full document).
  • Lisensi tidak jelas
  • Quality score needs review
  • Permission surface needs review: shell or command execution, filesystem or document access

Kesiapan pemasangan

Jalur pemasangan tersedia

  • Jalur pemasangan tersedia
  • Bukti repositori tersedia
  • Lisensi tidak jelas
  • Belum ada bukti hasil Agent-Proven

Metadata yang dapat dibaca Agent

Data keputusan yang dapat dibaca mesin untuk skill ini.

Gunakan blok ini atau JSON tersemat untuk memutuskan apakah Agent perlu memasang skill ini, memilih alternatif, atau meminta tinjauan manusia terlebih dahulu.

Buka JSON

Tugas yang sesuai

  • alur kerja GitHub automation
  • Tim Claude Code
  • builders willing to evaluate younger projects
  • Inspect repository metadata

Agent yang sesuai

CodexClaude CodeCursorOpenAgentSkill CLICLI

Keputusan pemasangan

Perintah
npx skills add jparkerweb/ai-assist-skills --skill ai-assist-git-publish
Kebijakan
Blokir
Tinjauan manusia
Ya

Kepercayaan dan risiko

Kepercayaan
56/100
Audit
72/100
Tingkat risiko
Perlu ditinjau

Lingkar hasil

Endpoint
/api/agent/outcome
ID event
resolve
Hasil
5

Perintah pemasangan

npx skills add jparkerweb/ai-assist-skills --skill ai-assist-git-publish

Jangan gunakan ketika

  • Tim yang membutuhkan SLA dengan dukungan vendor
  • production agents without a repository review
  • The provided SKILL.md excerpt is incomplete; final release creation steps are missing, which could create ambiguity (likely present in full document).
  • Petunjuk izin berisiko tinggi: Shell or command execution, Secrets or environment access
  • Lisensi tidak jelas

Keamanan Agent v2

32/100 · Hindari pemasangan otomatis

Blocked for auto-installBlokir

This skill should not be selected by an agent without explicit human security review.

Do not auto-install. Inspect the source, dependencies, and permission surface first.

Selesaikan via API

Tinggi

Eksekusi shell atau perintah

Metadata skill merujuk terminal, CLI, shell, subprocess, atau alur kerja eksekusi perintah.

Sedang

Akses jaringan

Skill kemungkinan mengambil halaman jarak jauh, API, repositori, atau layanan eksternal.

Sedang

Akses sistem file

Skill dapat membaca atau menulis file proyek, dokumen, artefak yang dihasilkan, atau status workspace lokal.

Tinggi

Secrets or environment access

Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.

  • Petunjuk izin berisiko tinggi: Shell or command execution, Secrets or environment access
  • Lisensi tidak jelas

Target pemasangan

Pasang skill ini di alur Agent Anda

Gunakan endpoint publik untuk mengambil perintah, checklist keamanan, prompt target, dan tautan kanonis.

skill install

OpenAgentSkill CLI

Resolve policy, run the source installer safely, and report a verified install receipt.

$ npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install jparkerweb-ai-assist-git-publish

Rencana resolusi Agent

Biarkan Agent memverifikasi kecocokan sebelum memasang.

API Resolve mengembalikan skill utama, alternatif, kebijakan keamanan, catatan audit, target pemasangan, dan prompt siap pakai.

Buka rencana teks

Agent harus memeriksa

  • Task fit and alternatives from Resolve API.
  • Audit score, trust score, and safety policy warnings.
  • Install target compatibility for Codex, Claude Code, Cursor, or CLI.

Salin prompt

Task: Use ai-assist-git-publish in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20ai-assist-git-publish%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/jparkerweb-ai-assist-git-publish/install
Install command: npx skills add jparkerweb/ai-assist-skills --skill ai-assist-git-publish
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.

Serah-terima Agent

Berikan jalur pemasangan kepada Agent, bukan direktori lain.

Gunakan endpoint publik untuk mengambil perintah, checklist keamanan, prompt target, dan tautan kanonis.

Buka API pemasangan

Prompt Agent

Use ai-assist-git-publish for this task. Review https://www.openagentskill.com/api/skills/jparkerweb-ai-assist-git-publish/install, then install with: npx skills add jparkerweb/ai-assist-skills --skill ai-assist-git-publish

Metadata Registry

Profil yang dapat dibaca Agent untuk pemilihan skill otomatis.

API Registry menyediakan sinyal keputusan, kepercayaan, audit, use case, dan pemasangan tanpa mengikis UI.

Buka Manifest

Kecocokan Agent

63/100

GitHub automation

Platform

Claude Code

Laporan audit

Perlu ditinjau · 72/100

Tinjauan yang dapat dibaca mesin tentang kesiapan pemasangan, metadata keamanan, pemeliharaan, dan risiko adopsi.

Lihat laporan auditLihat laporan evaluasi

Panel keputusan Agent

Fallback candidate for GitHub automation

Prototype with this skill first; keep a fallback candidate ready.

63
Kesiapan
Prototipe
Tahap

Peran di stack

Kandidat cadangan

Kecocokan utama

GitHub automation

Label kepercayaan

Buat prototipe dulu

Jalur pemasangan

Perintah siap

Gunakan saat

  • alur kerja GitHub automation
  • Tim Claude Code
  • builders willing to evaluate younger projects

Bukti

  • recent repository activity
  • install command or GitHub repo available
  • profil kualitas 61/100
  • 7 event interaksi OpenAgentSkill

tinjau dulu

  • The provided SKILL.md excerpt is incomplete; final release creation steps are missing, which could create ambiguity (likely present in full document).

Jalur implementasi

  1. 1Pasang di Agent sandbox dan jalankan satu tugas GitHub automation dari awal hingga akhir.
  2. 2Compare output quality, latency, and failure behavior against at least one alternative.
  3. 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.

Profil kepercayaan

Do not auto-install

Trust Score v5 found insufficient evidence for agent installation. Treat this as discovery material, not an executable recommendation.

56
Trust Score OpenAgentSkill

Adopsi GitHub

Periksa

88 star GitHub

Aktivitas star/fork

Periksa

88 star dan 12 fork; aktivitas issue tidak tersedia dalam metadata saat ini

Pemeliharaan terbaru

Lulus

2 hari sejak push

Kejelasan lisensi

Periksa

Tidak diketahui

Sinyal positif

  • Tinjauan AI disetujui
  • Jalur pemasangan tersedia
  • Bukti repositori tersedia
  • Repositori yang baru dipelihara
  • Perintah pemasangan tidak memiliki pola berisiko tinggi yang jelas
  • Loop hasil siap tetapi membutuhkan eksekusi Agent nyata pertama

Tinjau sebelum memasang

  • The provided SKILL.md excerpt is incomplete; final release creation steps are missing, which could create ambiguity (likely present in full document).
  • Lisensi tidak jelas
  • Quality score needs review
  • Permission surface needs review: shell or command execution, filesystem or document access
  • GitHub adoption: 88 GitHub stars
  • Stars/forks activity: 88 stars, 12 forks; issue activity unavailable in current metadata
  • License clarity: Unknown
  • Permission surface: shell or command execution, filesystem or document access
  • Belum ada laporan hasil Agent nyata
  • Tinjauan manusia diperlukan sebelum pemasangan tanpa pengawasan

Tindakan yang disarankan

Choose a stronger alternative or inspect the source manually before any install attempt.

Profil kualitas

Menjanjikan kandidat untuk alur kerja Agent

Useful candidate, but compare it with alternatives before adopting.

61
Star GitHub
88
Keterkinian
2 hari lalu
Siap dipasang
Ya
Lisensi
Tidak diketahui
Tinjau sebelum memasang: The provided SKILL.md excerpt is incomplete; final release creation steps are missing, which could create ambiguity (likely present in full document).

Kecocokan alur kerja

Gunakan skill ini pada skenario berikut

Kecocokan alur kerja

Tambahkan ke alur kerja lengkap

Daftar alternatif

Bandingkan sebelum memasang

Similar skills that may fit this task.

Bandingkan semua

Ringkasan

--- name: ai-assist-git-publish description: "Publish a GitHub Release when CHANGELOG.md's top version is ahead of the latest published release. Only invoke when the user explicitly types /ai-assist-git-publish. Never auto-trigger from general conversation about releases, tags, or versions." ---

# Git Publish

Publish a GitHub Release for the current repository whenever `CHANGELOG.md`'s top version is ahead of the latest release published on GitHub. This closes the loop after a version bump lands on the default branch — `ai-assist-changelog-bump` computes and merges the version number, this skill turns that merged CHANGELOG entry into an actual GitHub Release.

This skill is only invoked manually by the user — never auto-trigger.

**Prerequisites:** GitHub CLI (`gh`) installed and authenticated, and a git repo with a GitHub remote and a `CHANGELOG.md` at the repo root.

## Workflow

### Step 1 — Preflight

Run `git status --porcelain`. If the output is non-empty, stop immediately — do not switch branches or take any other action. Tell the user:

> Working tree has uncommitted changes. Commit or stash them, then re-run this skill.

Identify the repository and its default branch (never hardcode either — this skill runs in any repo):

```bash gh repo view --json nameWithOwner,defaultBranchRef -q '.nameWithOwner + " " + .defaultBranchRef.name' ```

Store these as `$REPO` and `$DEFAULT_BRANCH`. If this command fails, the repo has no GitHub remote or `gh` isn't authenticated — report the error verbatim and stop.

If the current branch is not `$DEFAULT_BRANCH`, ask the user before switching:

> Currently on `<branch>`, but releases are published from `$DEFAULT_BRANCH`. Switch to `$DEFAULT_BRANCH` and pull latest? (yes / no)

On "no", stop. On "yes" (or if already on `$DEFAULT_BRANCH`), sync with the remote. Run these as two separate, non-chained commands — never `&&`/`;`-chain `git`/`gh` commands, since PowerShell pre-7 rejects `&&`:

```bash git checkout $DEFAULT_BRANCH git pull origin $DEFAULT_BRANCH ```

### Step 2 — Read CHANGELOG.md

Read `CHANGELOG.md` at the repo root. If it doesn't exist, tell the user and stop.

Parse the first version heading as `$CHANGELOG_VERSION`. CHANGELOGs use different heading conventions — all of these are valid and must be handled:

| Style | Example | |-------|---------| | Bracketed (Keep a Changelog) | `## [1.8.1] - 2026-08-13` | | `v`-prefixed | `## v1.8.1 - 2026-08-13` | | Bracketed + `v` | `## [v1.8.1] - 2026-08-13` | | Bare | `## 1.8.1` |

Alternate date separators (`–`, `—`, `(2026-08-13)`) and a missing date also count as matches. A tolerant pattern:

```bash grep -m1 -E '^##[[:space:]]+\[?v?[0-9]+\.[0-9]+\.[0-9]+\]?' CHANGELOG.md ```

Strip any surrounding `[`/`]` and any leading `v` — `$CHANGELOG_VERSION` is always bare semver (`1.8.1`).

Skip `## [Unreleased]` / `## Unreleased` headings — they are not concrete versions. If the top concrete heading is preceded only by an Unreleased section, that's fine; use the first real version. If there is **no** concrete version heading at all, tell the user there's nothing to publish and stop.

Capture the section body — everything from immediately after that heading up to (but not including) the next `##` version heading, or end-of-file if there is no next heading — as `$NOTES_BODY`.

### Step 3 — Determine the latest published release

```bash gh release view --repo $REPO --json tagName -q .tagName ```

**There is no `latest` argument.** Bare `gh release view` (with no tag) already means "the latest release" — passing the literal word `latest` is treated as a tag name and fails with `release not found`.

Record the raw tag as `$LATEST_TAG` (used in Step 6 to match the repo's existing tag style), then strip any leading `v` to get `$RELEASE_VERSION`. If the command exits non-zero for **any** reason (no releases yet, transient error, etc.), set `$RELEASE_VERSION = "0.0.0"` and `$LATEST_TAG = ""` — no error-text matching is needed since the outcome is the same either way.

### Step 4 — Compare versions

Compare `$CHANGELOG_VERSION` vs `$RELEASE_VERSION` as a numeric `(major, minor, patch)` tuple. Never do a plain string/lexicographic compare — e.g. `"1.9.0" > "1.10.0"` is true as strings but wrong numerically.

### Step 5 — Not ahead: no-op

If `$CHANGELOG_VERSION` ≤ `$RELEASE_VERSION`, print a simple status message showing both versions and stop:

> CHANGELOG top version ($CHANGELOG_VERSION) is not ahead of the latest published release ($RELEASE_VERSION). Nothing to publish.

No error is raised and no release is created.

### Step 6 — Ahead: compute and confirm

If `$CHANGELOG_VERSION` > `$RELEASE_VERSION`, compute:

- `tag` — match the repo's existing tag style. If `$LATEST_TAG` starts with `v`, use `"v$CHANGELOG_VERSION"`; if it's a bare semver, use `"$CHANGELOG_VERSION"`. If there are no prior releases (`$LATEST_TAG` is empty), check existing git tags with `git tag --list --sort=-v:refname | head -5` and follow their style; default to `"v$CHANGELOG_VERSION"` when there's nothing to infer from. - `title = "$CHANGELOG_VERSION"` - `notes = "# What's New 🎉\n\n$NOTES_BODY"`

Present all of it to the user and wait for an explicit yes/no answer before any write happens:

> 🚀 [Publish Release — $REPO] > > CHANGELOG is ahead of the latest published release: > - **Current release:** $RELEASE_VERSION > - **CHANGELOG top version:** $CHANGELOG_VERSION > > Proposed release: > - **Tag:** $tag > - **Title:** $title > - **Target:** $DEFAULT_BRANCH > - **Notes:** > ``` > $notes > ``` > > Publish this release? (yes / no)

### Step 7 — Publish (on approval)

On "yes", write `$notes` to a temp file — never pass multiline text inline via `--notes`, that regresses into a quoting bug — then create the release targeting the default branch:

**bash:**

```bash NOTES_FILE=$(mktemp) printf '%s' "$notes" > "$NOTES_FILE" gh release create "$tag" --repo "$REPO" --title "$title" --notes-file "$NOTES_FILE" --target "$DEFAULT_BRANCH" rm -f "$NOTES_FILE" ```

**PowerShell:**

```powershell $NotesFile = [System.IO.Path]::GetTempFileName() Set-Content -Path $NotesFile -Value $notes gh release create "$tag" --repo "$Repo" --title "$title" --notes-file "$NotesFile" --target "$DefaultBranch" Remove-Item -Path $NotesFile ```

Always delete the temp file afterward, regardless of whether the `gh release create` command succeeded or failed.

**Failure handling — already-exists classification:** if `gh release create` exits non-zero, inspect the error text.

- If and only if it contains the substring `already exists` (real output: `HTTP 422: Validation Failed` / `Release.tag_name already exists`), report this to the user as already published, not as a raw CLI error:

> This version ($CHANGELOG_VERSION) was already published as a release — nothing more to do.

- Every other failure (auth, network, permissions, etc.) must be surfaced to the user verbatim. Never silently reclassify a genuine failure as "already published."

### Step 8 — Verify

Confirm the release now exists and report its URL:

```bash gh release view "$tag" --repo "$REPO" ```

Report the release URL to the user.

## Rules

- Only run when the user explicitly invokes `/ai-assist-git-publish` — never auto-trigger - Never modify `CHANGELOG.md`, `package.json`, or any other file — this skill only reads them - Never run a local `git tag` or `git push` — tag creation is delegated entirely to `gh release create --target $DEFAULT_BRANCH` - Never hardcode the repository or the default branch — always derive both from `gh repo view` - Never switch branches without asking, and never proceed with a dirty working tree - Match the repo's existing tag style (`v1.2.3` vs `1.2.3`) rather than assuming a `v` prefix - Support all common CHANGELOG heading styles (`## [x.y.z]`, `## vx.y.z`, `## [vx.y.z]`, `## x.y.z`) and always compare bare semver numerically, never as strings - Always use `--notes-file`, never inline multiline `--notes` - Always clean up the temp notes file, even on a mid-run error - Always get explicit user approval before any write (Step 6) — no release is created without a yes - On a latest-release lookup failure (Step 3), treat it as "no prior release" (baseline `0.0.0`) — no error-text matching needed - On a `gh release create` failure (Step 7), only reclassify as already-published when the error contains `already exists` — every other failure must be shown verbatim, never swallowed - This skill is idempotent and safe to re-run at any time — re-running after a successful publish hits the Step 5 no-op, and re-running after a race-lost publish hits the Step 7 already-exists handling

Detail teknis

Versi
1.0.0
Lisensi
Unknown
Pembaruan terakhir
21 Agu 2026
Diterbitkan
21 Agu 2026

Ringkasan keputusan

Kandidat cadangan

63
Siap
Prototipe
Tahap

recent repository activity

Audit

Tinjauan pemasangan

Tinjauan pemasangan dan adopsi

72
Perlu ditinjau
Keamanan
69/100
Pemeliharaan
100/100
Pasang
92/100
Buka audit lengkapLihat laporan evaluasi

Bukti tervalidasi Agent

Bukti tervalidasi Agent

Laporan hasil setelah resolve, tinjau, pasang, dan satu eksekusi terbatas.

0
Terbukti
Needs first agent runPasang otomatis: tinjau duluTerakhir: Tidak diketahui
Tingkat sukses
Kegagalan terbaru
Hasil
0
Kualitas output
Gagal
0
Tidak relevan
0
Pemasangan
0
Diblokir risiko
0
Perlu penyiapan
0
Produksi
0

Belum ada data hasil Agent. Eksekusi pertama dapat melaporkan keberhasilan, kebutuhan setup, blok risiko, kegagalan, atau tidak relevan melalui /api/agent/outcome.

Pasang

Tambahkan ke alur Agent

Gratis dan sumber terbuka. Tinjau laporan sebelum memasang pada Agent produksi.

Siklus pertumbuhan

Kit berbagi

X

Draf berbasis skenario untuk ai-assist-git-publish, siap untuk posting manual di X.

Catatan kurator
A practical pick for a web workflow:

ai-assist-git-publish: Publish a GitHub Release when CHANGELOG.md's top version is ahead of the latest published release. Only invoke when the use...

88 stars

https://www.openagentskill.com/skills/jparkerweb-ai-assist-git-publish?ref=x
Buka draf X
Balasan opsional dengan perintah pemasangan
Listing + install path for ai-assist-git-publish:
https://www.openagentskill.com/skills/jparkerweb-ai-assist-git-publish?ref=x

Install: npx skills add jparkerweb/ai-assist-skills --skill ai-assist-git-publish
Buka draf balasan

Sumber listing

Diindeks Registry

Dapat diklaim

Listing ini diindeks dari sumber publik dan belum ditandai resmi hingga klaim pemelihara disetujui.

Kreator
jparkerweb
Diindeks oleh
Indeks komunitas OpenAgentSkill

Atribusi menautkan ke repositori publik atau profil kreator. Kreator dapat mengklaim listing untuk memperbarui sinyal kepemilikan.

Klaim skill ini

Klaim pemilik

Klaim listing skill ini

Listing Diindeks Registry ini dikaitkan dengan jparkerweb, tetapi belum ditandai resmi. Klaim untuk menambahkan sinyal pemilik terverifikasi dan membuat pembaruan peluncuran, pemasangan, serta audit berikutnya lebih tepercaya.

Kit backlink kreator

Tambahkan badge bukti ke README Anda

Tampilkan listing kanonis, sinyal kepercayaan dan audit saat ini, serta bukti Agent-Proven nyata di tempat pengembang mengevaluasi repositori.

[![Listed on OpenAgentSkill](https://www.openagentskill.com/api/badge/jparkerweb-ai-assist-git-publish?metric=listed&label=Listed)](https://www.openagentskill.com/skills/jparkerweb-ai-assist-git-publish)
[![OpenAgentSkill Trust](https://www.openagentskill.com/api/badge/jparkerweb-ai-assist-git-publish?metric=trust&label=Trust)](https://www.openagentskill.com/skills/jparkerweb-ai-assist-git-publish)
[![OpenAgentSkill Audit](https://www.openagentskill.com/api/badge/jparkerweb-ai-assist-git-publish?metric=audit&label=Audit)](https://www.openagentskill.com/skills/jparkerweb-ai-assist-git-publish/audit)
[![Agent Proven](https://www.openagentskill.com/api/badge/jparkerweb-ai-assist-git-publish?metric=proven&label=Agent%20Proven)](https://www.openagentskill.com/skills/jparkerweb-ai-assist-git-publish)

Penulis

J

jparkerweb

@jparkerweb

Kecocokan platform

Sinyal kesehatan

Star GitHub
88
Skor kualitas
36/100
Push GitHub terakhir
20 Agu 2026
Petunjuk framework
Tidak diketahui
Tampilan OpenAgentSkill
7
Salinan pemasangan
0
Klik keluar
0

Sinyal komunitas

Bagikan apakah skill ini bermanfaat untuk alur kerja Agent Anda. Masukan gabungan meningkatkan peringkat dari waktu ke waktu.

Kepercayaan & keamanan

Do not auto-install

56
  • Adopsi GitHub88 star GitHubPeriksa
  • Aktivitas star/fork88 star dan 12 fork; aktivitas issue tidak tersedia dalam metadata saat iniPeriksa
  • Pemeliharaan terbaru2 hari sejak pushLulus
  • Kejelasan lisensiTidak diketahuiPeriksa
  • Kelengkapan README/SKILL.mdMetadata memuat konteks penggunaan dan alur kerja yang cukupLulus
  • Risiko dependensi/runtimecommand execution surface, network or browser surfaceInfo