Skip to content

feat(audit): dead-code findings auto-annotated with impact/trace safety verdict #238

Description

@Wolfvin

Mengapa

Ditemukan saat brainstorming "dream tool": sepanjang sesi audit CodeLens sebelumnya, BOS harus manual chain 2 command untuk memutuskan "aman dihapus?" — audit --check dead-code untuk cari kandidat, LALU context --check trace --name X --direction up untuk verifikasi bukan entry point. Ini persis pola yang CONTEXT.md sendiri sudah wanti-wanti ("status: dead ≠ aman dihapus"), tapi tool tidak menegakkan itu otomatis — agent yang lupa cross-check bisa salah rekomendasi hapus kode yang sebenarnya entry point.

Konteks

impact_engine.py::analyze_impact(name, workspace, action="delete") SUDAH ADA dan sudah menghitung affected/risk untuk skenario delete — infrastrukturnya sudah lengkap, cuma belum di-wire ke output dead-code.

Tujuan

Setiap item di audit --check dead-code hasil punya field tambahan deletion_safety (mis. safe / caution / entry_point_likely) yang dihitung dari analyze_impact(name, action="delete") secara otomatis — bukan langkah terpisah yang harus diminta.

Constraint

  • JANGAN duplikasi logic analyze_impact — panggil fungsi yang sudah ada.
  • Perhatikan performa: kalau dead-code findings ratusan, jangan panggil analyze_impact untuk semuanya secara serial tanpa cap — bisa lambat. Cap ke N item teratas (mis. top 20) atau beri flag --verify-impact untuk opt-in kalau defaultnya terlalu lambat di repo besar.
  • --lite output HARUS tetap include deletion_safety per item (ini justru poin paling actionable untuk decision-making agent).

Definition of Done

  • audit --check dead-code findings punya field deletion_safety
  • Verified: symbol yang secara nyata entry point (HTTP handler/CLI subcommand) TIDAK dilabeli "safe" meski status: dead di registry
  • Regression test dengan skenario entry-point palsu-mati
  • Dokumentasi di docs/agent-usage-guide.md diupdate: "cross-check dengan trace" tidak perlu lagi manual

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions