Menu

#216 docs(contributing): add targeted test selection guide

closed
nobody
None
2026-08-19
2026-07-30
Anonymous
No

Originally created by: navaneethsankar07

Slice

Repo: doberman-core
Feature / Slice: Targeted test selection guide for contributors


What this PR does

Adds a "Choosing targeted tests" section to CONTRIBUTING.md to help contributors iterate faster while preserving the existing pre-PR verification workflow.

Specifically, this change:

  • Explains the difference between focused iteration tests and the complete verification suite.
  • Maps common development areas (CLI, discovery/scan, policy/engine rules, storage/audit logging, proxy, and host hooks) to existing test files.
  • Provides copyable pytest examples for:
  • Running a single test file
  • Running a single test
  • Running tests by keyword
  • Reinforces that contributors should still run the complete linting, import-boundary, and test/coverage checks before marking a PR ready.
  • Uses only verified test paths and commands that exist in the current repository.

Tests added (run in CI)

No code changes.

Documentation only.


Validation

Verified all documented commands against the current repository:

  • pytest tests/unit/test_cli_help.py
  • pytest tests/unit/test_discovery_scan.py
  • pytest tests/unit/test_objective_guardrail.py
  • pytest tests/unit/test_audit_sink.py
  • pytest tests/integration/test_proxy_passthrough.py
  • pytest tests/unit/test_hosthook_control_plane.py
  • pytest tests/unit/test_discovery_scan.py::test_scan_is_depth_bounded
  • pytest -k scan
  • ruff check .
  • ruff format --check .
  • lint-imports

Public-release safety (doberman-core only)

  • [x] Documentation-only change
  • [x] No enterprise code
  • [x] No proprietary logic
  • [x] No customer data
  • [x] No secrets
  • [x] No behavior changes

Security checklist

  • [x] No runtime behavior changed
  • [x] No security policy modified
  • [x] No guardrail logic changed
  • [x] No secrets or sensitive information introduced

Edge cases covered / Deviations from plan / Risks introduced

  • Verified that all documented test paths and commands exist.
  • No functional or behavioral changes.
  • Low risk: documentation update only.

Closes [#177]

Related

Tickets: #177
Tickets: #218
Tickets: #231

Discussion

  • Anonymous

    Anonymous - 2026-07-30

    Ticket changed by: fu351

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-07-30

    Originally posted by: fu351

    Merged — thanks again. Since you're now unblocked, here's where I'd point you next, roughly in order of how well it matches what you just demonstrated.

    Doberman labels every issue with a difficulty level (level-1level-10) so you can pick your own step size.

    Closest to what you just did — documentation that has to be verified against the code:

    • #189 — document the shared shape of Doberman's host adapters (good first issue, level-3). Same discipline as your test guide: read what the adapters actually do, then write it down accurately. This one matters because the adapter shape is what someone needs to understand before they can guard a new agent harness.
    • #193 — audit and document the CLI exit codes (level-5). This one has real teeth: while reviewing another PR today I found that doberman scan always exits 0 no matter what it finds, while its help text advertises itself as useful for CI gates. So this issue isn't only writing docs — it's establishing what the exit codes should be and flagging where the code disagrees with its own documentation.

    A natural step up, if you'd like to move from docs into tests:

    • #188 — assert the objective guardrail's rule-reduction loop is exhaustively raise-only (good first issue, level-3). "Raise-only" is one of Doberman's core safety invariants: combining guardrail results may tighten a verdict but must never loosen one. This issue is about proving that property holds for every combination rather than the few we happen to test. It's a great introduction to how this codebase thinks, and it's the kind of test that would genuinely catch a serious regression.

    No obligation to take any of these — if something else in the tracker interests you more, go for it. If you'd like, comment on whichever issue you pick and I'll make sure the context you need is there before you start.

    The one-character typo (PASS / AUTH /BLOCK) is still outstanding if you want a trivial warm-up PR to open alongside.

     
  • Anonymous

    Anonymous - 2026-08-18

    Originally posted by: fu351

    @navaneethsankar07 The targeted test-selection guide still gets newcomers to a fast feedback loop. Thanks for writing it.

    Quick community roll-call: are you in the Doberman Discord? If yes, drop your handle here (or DM me there) so I can match the GitHub side of your work to your Discord name. If not, you're warmly invited: https://discord.gg/Sfy5XGNqty

     
  • Anonymous

    Anonymous - 2026-08-19

    Originally posted by: navaneethsankar07

    Joined! My Discord handle is navaneethsankar

     

Log in to post a comment.