Skip to content

[RED TEAM] hooks.json not created during init/scan — users can't discover MCP hooks config without running MCP server #122

Description

@Wolfvin

Temuan

PR #113 menambahkan post_tool MCP hook dengan config di .codelens/hooks.json. Tapi file ini HANYA dibuat saat MCP server's HookManager initialize (lazy creation). codelens init dan codelens scan tidak membuat hooks.json.

User yang hanya pakai CLI (tidak jalankan codelens serve) tidak akan tahu bahwa hooks.json ada atau bagaimana mengkonfigurasinya. Untuk meng-enable post_tool hook, user harus entweder:

  1. Run codelens serve sekali untuk trigger creation, lalu edit
  2. Manually create .codelens/hooks.json dengan struktur yang benar (tidak didokumentasikan di CLI help)

Cara reproduce

cd benchmarks/fixtures/clean_app
rm -rf .codelens
codelens init .
codelens scan .
ls .codelens/hooks.json 2>/dev/null || echo "hooks.json MISSING"
# Output: hooks.json MISSING

Output aktual

After init + scan:
hooks.json MISSING

DEFAULT_CONFIG exists in code ({'hooks': {'post_tool': {'enabled': False, 'severity_threshold': 'high'}}}) tapi tidak di-persist ke disk.

Output yang diharapkan

codelens init harus membuat .codelens/hooks.json dengan DEFAULT_CONFIG (all hooks disabled) sehingga user bisa discover dan edit config. Atau documentation harus jelas bahwa hooks.json hanya dibuat oleh MCP server.

Severity

LOW — UX/discoverability issue. Tidak break functionality (hooks default disabled, MCP server creates file lazily). Tapi menyulitkan user yang ingin enable hooks tanpa membaca source code.

PR terkait

#113 (post_tool MCP hook). Fix: tambahkan hooks.json creation di codelens init command, atau tambahkan codelens hooks init subcommand.

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