productivity-analyzer

Tinjau · 67
Diindeks di Registry

Analyze labor productivity from site data. Compare planned vs actual, identify trends, benchmark against industry standards.

Verified installs0
Star282
Versi1.0.0
Kualitas71/100 · Kuat
Kepercayaan67/100 · Hanya sandbox
Audit81/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 datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill productivity-analyzer

Pemeliharaan

Terkini

1 hari sejak push

Risiko

Perlu ditinjau

The SKILL.md excerpt is truncated; full documentation should be verified for completeness.

Kualitas GitHub

282

71/100 Kualitas · 75/100 Kepercayaan

Tag cakupan

CodingGitHub automationdata-analysisagent-skill

Catatan ulasan

The SKILL.md excerpt is truncated; full documentation should be verified for completeness. · Access to filesystem is granted, but no explicit sandboxing or validation of file paths is described in instructions.md.

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

Kuat
71

Solid option that is likely worth shortlisting for production workflows.

Kepercayaan

Hanya sandbox
67

Kandidat berguna dengan sinyal kepercayaan yang kurang atau bercampur. Gunakan di ruang kerja terisolasi hingga loop hasil membuktikan kecocokan tugas.

Audit

Perlu ditinjau
81

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

Trust Score OpenAgentSkill v5

Tinjauan manusia sebelum pemasangan

Jalankan hanya dalam sandbox dan bandingkan alternatif terdekat sebelum digunakan untuk kerja nyata.

CodexClaude CodeCursorOpenAgentSkill CLI

Star

282 star GitHub

Aktivitas repositori

282 star dan 74 fork

Pemeliharaan

1 hari sejak push

Lisensi

MIT

Pasang

npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill productivity-analyzer

Keamanan pemasangan

Jalur pemasangan paket atau runtime standar

Cakupan izin

Tidak ada cakupan izin berisiko tinggi dalam metadata publik

Hasil Agent

Belum ada data hasil Agent

Dokumentasi

Konteks README/SKILL.md kuat

Ringkasan risiko

Tinjau sebelum produksi

  • The SKILL.md excerpt is truncated; full documentation should be verified for completeness.
  • Quality score needs review

Kesiapan pemasangan

Jalur pemasangan tersedia

  • Jalur pemasangan tersedia
  • Bukti repositori tersedia
  • Lisensi dinyatakan
  • 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 Agent riset
  • Tim Claude Code
  • builders willing to evaluate younger projects
  • Sumber pencarian

Agent yang sesuai

CodexClaude CodeCursorOpenAgentSkill CLICLI

Keputusan pemasangan

Perintah
npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill productivity-analyzer
Kebijakan
Tinjau
Tinjauan manusia
Ya

Kepercayaan dan risiko

Kepercayaan
67/100
Audit
81/100
Tingkat risiko
Perlu ditinjau

Lingkar hasil

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

Perintah pemasangan

npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill productivity-analyzer

Jangan gunakan ketika

  • Tim yang membutuhkan SLA dengan dukungan vendor
  • production agents without a repository review
  • The SKILL.md excerpt is truncated; full documentation should be verified for completeness.
  • No OpenAgentSkill engagement data yet
  • Access to filesystem is granted, but no explicit sandboxing or validation of file paths is described in instructions.md.

Keamanan Agent v2

69/100 · Tinjau sebelum memasang

Ditinjau dengan catatan izinTinjau

Kandidat yang dapat digunakan, tetapi Agent harus menampilkan catatan izin dan audit sebelum memasang.

Memerlukan persetujuan manusia sebelum memasang ke workspace nyata.

Selesaikan via API

Sedang

Akses jaringan

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

  • The SKILL.md excerpt is truncated; full documentation should be verified for completeness.

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 datadrivenconstruction-productivity-analyzer

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 productivity-analyzer in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20productivity-analyzer%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/datadrivenconstruction-productivity-analyzer/install
Install command: npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill productivity-analyzer
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 productivity-analyzer for this task. Review https://www.openagentskill.com/api/skills/datadrivenconstruction-productivity-analyzer/install, then install with: npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill productivity-analyzer

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

70/100

Agent riset

Platform

Claude Code

Laporan audit

Perlu ditinjau · 81/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 Research agents

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

70
Kesiapan
Prototipe
Tahap

Peran di stack

Kandidat cadangan

Kecocokan utama

Agent riset

Label kepercayaan

Buat prototipe dulu

Jalur pemasangan

Perintah siap

Gunakan saat

  • Alur kerja Agent riset
  • Tim Claude Code
  • builders willing to evaluate younger projects

Bukti

  • recent repository activity
  • install command or GitHub repo available
  • profil kualitas 71/100

tinjau dulu

  • The SKILL.md excerpt is truncated; full documentation should be verified for completeness.
  • No OpenAgentSkill engagement data yet

Jalur implementasi

  1. 1Pasang di Agent sandbox dan jalankan satu tugas Agent riset 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

Hanya sandbox

Kandidat berguna dengan sinyal kepercayaan yang kurang atau bercampur. Gunakan di ruang kerja terisolasi hingga loop hasil membuktikan kecocokan tugas.

67
Trust Score OpenAgentSkill

Adopsi GitHub

Info

282 star GitHub

Aktivitas star/fork

Info

282 star dan 74 fork; aktivitas issue tidak tersedia dalam metadata saat ini

Pemeliharaan terbaru

Lulus

1 hari sejak push

Kejelasan lisensi

Lulus

MIT

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 SKILL.md excerpt is truncated; full documentation should be verified for completeness.
  • Quality score needs review
  • Belum ada laporan hasil Agent nyata
  • Tinjauan manusia diperlukan sebelum pemasangan tanpa pengawasan

Tindakan yang disarankan

Jalankan hanya dalam sandbox dan bandingkan alternatif terdekat sebelum digunakan untuk kerja nyata.

Profil kualitas

Kuat kandidat untuk alur kerja Agent

Solid option that is likely worth shortlisting for production workflows.

71
Star GitHub
282
Keterkinian
1 hari lalu
Siap dipasang
Ya
Lisensi
MIT
Tinjau sebelum memasang: The SKILL.md excerpt is truncated; full documentation should be verified for completeness.

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: "productivity-analyzer" description: "Analyze labor productivity from site data. Compare planned vs actual, identify trends, benchmark against industry standards." homepage: "https://datadrivenconstruction.io" metadata: {"openclaw": {"emoji": "📊", "os": ["darwin", "linux", "win32"], "homepage": "https://datadrivenconstruction.io", "requires": {"bins": ["python3"]}}} --- # Productivity Analyzer

## Business Case

### Problem Statement Understanding productivity requires: - Tracking actual output rates - Comparing to planned rates - Identifying problem areas - Forecasting project completion

### Solution Analyze labor productivity data to identify trends, compare to benchmarks, and provide actionable insights.

## Technical Implementation

```python import pandas as pd import numpy as np from typing import Dict, Any, List, Optional from dataclasses import dataclass from datetime import date, timedelta from enum import Enum

class ProductivityStatus(Enum): EXCELLENT = "excellent" # >110% of planned ON_TARGET = "on_target" # 90-110% BELOW = "below" # 70-90% CRITICAL = "critical" # <70%

@dataclass class ProductivityRecord: date: date activity_code: str description: str planned_output: float actual_output: float unit: str manhours: float crew_size: int conditions: str # weather, access issues

@dataclass class ProductivityAnalysis: activity_code: str description: str total_planned: float total_actual: float total_manhours: float planned_rate: float # unit per manhour actual_rate: float efficiency: float # percentage status: ProductivityStatus trend: str # improving, declining, stable

class ProductivityAnalyzer: """Analyze construction productivity data."""

# Industry benchmark rates (unit per manhour) BENCHMARKS = { 'concrete_pour': 0.5, # m3/MH 'rebar_install': 15, # kg/MH 'formwork': 0.8, # m2/MH 'brick_laying': 35, # bricks/MH 'drywall': 1.5, # m2/MH 'painting': 3.0, # m2/MH 'conduit': 8, # m/MH 'pipe': 3, # m/MH 'excavation': 2.5, # m3/MH 'backfill': 3.0, # m3/MH }

def __init__(self): self.records: List[ProductivityRecord] = []

def add_record(self, date: date, activity_code: str, description: str, planned_output: float, actual_output: float, unit: str, manhours: float, crew_size: int, conditions: str = "normal"): """Add productivity record."""

self.records.append(ProductivityRecord( date=date, activity_code=activity_code, description=description, planned_output=planned_output, actual_output=actual_output, unit=unit, manhours=manhours, crew_size=crew_size, conditions=conditions ))

def import_from_dataframe(self, df: pd.DataFrame): """Import records from DataFrame.""" for _, row in df.iterrows(): self.add_record( date=pd.to_datetime(row['date']).date(), activity_code=row['activity_code'], description=row.get('description', ''), planned_output=float(row['planned_output']), actual_output=float(row['actual_output']), unit=row.get('unit', 'unit'), manhours=float(row['manhours']), crew_size=int(row.get('crew_size', 1)), conditions=row.get('conditions', 'normal') )

def _get_status(self, efficiency: float) -> ProductivityStatus: """Determine productivity status.""" if efficiency >= 110: return ProductivityStatus.EXCELLENT elif efficiency >= 90: return ProductivityStatus.ON_TARGET elif efficiency >= 70: return ProductivityStatus.BELOW else: return ProductivityStatus.CRITICAL

def _calculate_trend(self, records: List[ProductivityRecord]) -> str: """Calculate productivity trend.""" if len(records) < 3: return "insufficient_data"

# Sort by date sorted_records = sorted(records, key=lambda x: x.date)

# Calculate efficiency for first and last third n = len(sorted_records) third = n // 3

early_efficiency = [] late_efficiency = []

for i, r in enumerate(sorted_records): if r.manhours > 0: eff = (r.actual_output / r.planned_output * 100) if r.planned_output > 0 else 0 if i < third: early_efficiency.append(eff) elif i >= n - third: late_efficiency.append(eff)

if not early_efficiency or not late_efficiency: return "stable"

early_avg = np.mean(early_efficiency) late_avg = np.mean(late_efficiency)

if late_avg > early_avg * 1.05: return "improving" elif late_avg < early_avg * 0.95: return "declining" else: return "stable"

def analyze_activity(self, activity_code: str) -> Optional[ProductivityAnalysis]: """Analyze productivity for specific activity."""

activity_records = [r for r in self.records if r.activity_code == activity_code]

if not activity_records: return None

total_planned = sum(r.planned_output for r in activity_records) total_actual = sum(r.actual_output for r in activity_records) total_manhours = sum(r.manhours for r in activity_records)

planned_rate = total_planned / total_manhours if total_manhours > 0 else 0 actual_rate = total_actual / total_manhours if total_manhours > 0 else 0 efficiency = (total_actual / total_planned * 100) if total_planned > 0 else 0

return ProductivityAnalysis( activity_code=activity_code, description=activity_records[0].description, total_planned=round(total_planned, 2), total_actual=round(total_actual, 2), total_manhours=round(total_manhours, 1), planned_rate=round(planned_rate, 3), actual_rate=round(actual_rate, 3), efficiency=round(efficiency, 1), status=self._get_status(efficiency), trend=self._calculate_trend(activity_records) )

def analyze_all_activities(self) -> List[ProductivityAnalysis]: """Analyze all activities.""" activities = set(r.activity_code for r in self.records) return [self.analyze_activity(code) for code in activities if self.analyze_activity(code)]

def compare_to_benchmark(self, activity_code: str) -> Dict[str, Any]: """Compare activity to industry benchmark."""

analysis = self.analyze_activity(activity_code) if not analysis: return {}

# Find matching benchmark benchmark = None for key, value in self.BENCHMARKS.items(): if key in activity_code.lower(): benchmark = value break

if benchmark is None: return { 'activity': activity_code, 'actual_rate': analysis.actual_rate, 'benchmark': 'Not available', 'vs_benchmark': 'N/A' }

vs_benchmark = (analysis.actual_rate / benchmark * 100) if benchmark > 0 else 0

return { 'activity': activity_code, 'actual_rate': analysis.actual_rate, 'benchmark_rate': benchmark, 'vs_benchmark_pct': round(vs_benchmark, 1), 'recommendation': 'Above benchmark' if vs_benchmark >= 100 else 'Below benchmark - investigate' }

def identify_problem_areas(self) -> List[Dict[str, Any]]: """Identify activities with productivity issues."""

problems = []

for analysis in self.analyze_all_activities(): if analysis.status in [ProductivityStatus.BELOW, ProductivityStatus.CRITICAL]: problems.append({ 'activity': analysis.activity_code, 'efficiency': analysis.efficiency, 'status': analysis.status.value, 'trend': analysis.trend, 'manhours_impacted': analysis.total_manhours, 'priority': 'HIGH' if analysis.status == ProductivityStatus.CRITICAL else 'MEDIUM' })

return sorted(problems, key=lambda x: x['efficiency'])

def forecast_completion(self, activity_code: str, remaining_quantity: float) -> Dict[str, Any]: """Forecast completion based on current productivity."""

analysis = self.analyze_activity(activity_code) if not analysis or analysis.actual_rate == 0: return {}

# Manhours needed at current rate manhours_needed = remaining_quantity / analysis.actual_rate

# Average daily manhours activity_records = [r for r in self.records if r.activity_code == activity_code] avg_daily_mh = np.mean([r.manhours for r in activity_records]) if activity_records else 8

days_needed = manhours_needed / avg_daily_mh if avg_daily_mh > 0 else 0

return { 'activity': activity_code, 'remaining_qty': remaining_quantity, 'current_rate': analysis.actual_rate, 'manhours_needed': round(manhours_needed, 1), 'days_needed': round(days_needed, 1), 'estimated_completion': date.today() + timedelta(days=int(days_needed)) }

def export_analysis(self, output_path: str) -> str: """Export analysis to Excel."""

with pd.ExcelWriter(output_path, engine='openpyxl') as writer: # Summary analyses = self.analyze_all_activities() summary_df = pd.DataFrame([ { 'Activity': a.activity_code, 'Description': a.description, 'Planned': a.total_planned, 'Actual': a.total_actual, 'Manhours': a.total_manhours, 'Efficiency %': a.efficiency, 'Status': a.status.value, 'Trend': a.trend } for a in analyses ]) summary_df.to_excel(writer, sheet_name='Summary', index=False)

# Problems problems = self.identify_problem_areas() if problems: problems_df = pd.DataFrame(problems) problems_df.to_excel(writer, sheet_name='Problem Areas', index=False)

# Raw data records_df = pd.DataFrame([ { 'Date': r.date, 'Activity': r.activity_code, 'Planned': r.planned_output, 'Actual': r.actual_output, 'Unit': r.unit, 'Manhours': r.manhours, 'Crew': r.crew_size, 'Conditions': r.conditions } for r in self.records ]) records_df.to_excel(writer, sheet_name='Raw Data', index=False)

return output_path ```

## Quick Start

```python from datetime import date, timedelta

# Initialize analyzer analyzer = ProductivityAnalyzer()

# Add records for i in range(10): analyzer.add_record( date=date.today() - timedelta(days=i), activity_code="concrete_pour", description="Slab pour Level 3", planned_output=20,

Detail teknis

Versi
1.0.0
Lisensi
MIT
Pembaruan terakhir
22 Agu 2026
Diterbitkan
22 Agu 2026

Ringkasan keputusan

Kandidat cadangan

70
Siap
Prototipe
Tahap

recent repository activity

Audit

Tinjauan pemasangan

Tinjauan pemasangan dan adopsi

81
Perlu ditinjau
Keamanan
83/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 productivity-analyzer, siap untuk posting manual di X.

Catatan kurator
productivity-analyzer: Analyze labor productivity from site data. Compare planned vs actual, identify trends, benchm...

282 stars

https://www.openagentskill.com/skills/datadrivenconstruction-productivity-analyzer?ref=x
Buka draf X
Balasan opsional dengan perintah pemasangan
Listing + install path for productivity-analyzer:
https://www.openagentskill.com/skills/datadrivenconstruction-productivity-analyzer?ref=x

Install: npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --...
Buka draf balasan

Sumber listing

Diindeks Registry

Dapat diklaim

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

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 datadrivenconstruction, 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/datadrivenconstruction-productivity-analyzer?metric=listed&label=Listed)](https://www.openagentskill.com/skills/datadrivenconstruction-productivity-analyzer)
[![OpenAgentSkill Trust](https://www.openagentskill.com/api/badge/datadrivenconstruction-productivity-analyzer?metric=trust&label=Trust)](https://www.openagentskill.com/skills/datadrivenconstruction-productivity-analyzer)
[![OpenAgentSkill Audit](https://www.openagentskill.com/api/badge/datadrivenconstruction-productivity-analyzer?metric=audit&label=Audit)](https://www.openagentskill.com/skills/datadrivenconstruction-productivity-analyzer/audit)
[![Agent Proven](https://www.openagentskill.com/api/badge/datadrivenconstruction-productivity-analyzer?metric=proven&label=Agent%20Proven)](https://www.openagentskill.com/skills/datadrivenconstruction-productivity-analyzer)

Penulis

D

datadrivenconstruction

@datadrivenconstruction

Kecocokan platform

Sinyal kesehatan

Star GitHub
282
Skor kualitas
40/100
Push GitHub terakhir
22 Agu 2026
Petunjuk framework
Tidak diketahui
Tampilan OpenAgentSkill
0
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

Hanya sandbox

67
  • Adopsi GitHub282 star GitHubInfo
  • Aktivitas star/fork282 star dan 74 fork; aktivitas issue tidak tersedia dalam metadata saat iniInfo
  • Pemeliharaan terbaru1 hari sejak pushLulus
  • Kejelasan lisensiMITLulus
  • Kelengkapan README/SKILL.mdMetadata memuat konteks penggunaan dan alur kerja yang cukupLulus
  • Risiko dependensi/runtimeTidak ada petunjuk risiko dependensi besar dalam metadata publikLulus