Skip to content

[Hackathon] Add structured debug logging to silent catch blocks #186

Description

@farhank15

Discord Username / User ID

getmawa_22

What does this improvement do?

Multiple catch blocks across the CLI silently swallow errors with no
logging or trace output, making debugging difficult. When a feature
silently degrades (e.g., duplicate-name advisory, skill nudge,
bundle stream verification), the operator has no way to know an
error occurred — the CLI just returns a confusing result.

This adds structured debug logging (gated behind --debug / --verbose)
to these catch blocks so developers and support can trace suppressed
errors without changing behavior or exit codes.

Details / implementation notes

Found ~12 catch blocks across:

  • src/commands/test.ts (lines 634, 4429, 4440, 4727, 5739)
  • src/lib/skill-nudge.ts (lines 63, 130)
  • src/lib/bundle.ts (line 606)
  • src/commands/init.ts (lines 43, 290, 316)
  • src/lib/dry-run/fetch.ts (line 41)
  • src/lib/facade.ts (lines 78, 95)

For each location, inject a conditional stderr log when opts.debug
or opts.verbose is set, e.g.:

if (opts.debug) {
  stderr(`[debug] <context>: ${err instanceof Error ? err.message : String(err)}`);
}

Changes are additive — no existing behavior is altered, no exit codes
change, and the default (no --debug) output is byte-identical.
Estimated < 100 lines changed across ~12 files.

Tests: verify that with --debug the catch path prints a stderr line
and without --debug the output is unchanged (byte-identical snapshots).

Confirmations

  • I have searched existing issues and this is not a duplicate.
  • I have provided my Discord identity above for reward coordination.

Metadata

Metadata

Assignees

No one assigned

    Labels

    hackathonCLI hackathon submissionsneeds-triageNew issue/PR awaiting first triage

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions