Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

docs: document just-in-time abstraction convention in CONTRIBUTING.md

Open
#329 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
45/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Stale
Tech stack
markdown
Domain
documentation

Research direction

Read PLAN.md architecture decision #2 and the relevant examples listed in the issue, then add the convention and review checklist to CONTRIBUTING.md. Link to that section from docs/ARCHITECTURE.md and update decision #2 as specified. Done means the new section is at most about 40 lines and includes the convention, checklist, and an in-repo example, with both links in place.

Written by the indexing model from the issue text.

Description

documentation enhancement
Problem Statement

PLAN.md architecture decision #2 calls for a reviewable convention: introduce an abstraction only when the second real implementation arrives. This guards ThrillhouseBot's simplicity/DRY goals under feature pressure (competitive parity with PR-Agent, Greptile cross-file context, multi-provider routing, etc.) but the rule is not yet written in CONTRIBUTING.md.

Contributors and reviewers have no shared, linkable standard when debating "should we add an interface now?" — leading to either premature abstraction or ad-hoc pushback in PR threads.

Proposed Solution

Add a short, actionable section to CONTRIBUTING.md (and cross-link from docs/ARCHITECTURE.md if appropriate) covering:

  1. Default: concrete implementation first; duplicate logic twice only when the second use case is real (not speculative).
  2. When to abstract: second distinct implementation with the same seam (e.g. second ContextProvider, second ChatModelProvider — see #30, #55).
  3. When not to abstract: "we might need GitLab someday" (#37), "PR-Agent has 20 tools" — ticket the feature, ship the simplest path.
  4. Review checklist: PR description should call out new interfaces/SPIs and justify why the second implementation exists now or why deferral is safe.
  5. Examples from this repo: ReviewOrchestrator decomposition (#250 — done), §23 AI-invocation contract (ModelSelector / ContextProvider / ReviewStrategy), Qlawkus boundary discipline (cite PLAN.md, not copy module count).

Pair with v0.4.0 config documentation (#50) and hosted docs (#319) so the convention is discoverable outside the repo root.

Related issues
  • #50 — per-model config + config docs (same v0.4.0 docs pass)
  • #319 — GitHub Pages docs site
  • #314 — quarkus-github-app spike (evaluate extension value before abstracting webhook layer)
  • #30 — provider SPI (future second implementation test case)
  • #250 — orchestrator decomposition (positive example)
Acceptance criteria
  • New CONTRIBUTING.md section (≤ ~40 lines) with the convention, review checklist, and at least one in-repo example
  • docs/ARCHITECTURE.md links to the section (one paragraph max — no duplication)
  • PLAN.md architecture decision #2 updated to link the new issue (maintainer doc sync)
  • No code changes required — documentation only
Alternatives considered
  • Issue template checkbox only — too easy to ignore; needs a visible contributor doc.
  • Strict lint/rule — overkill; convention + review culture is enough for OSS.
Priority

Important for v0.4.0 docs polish — low implementation cost, high leverage as the roadmap adds competitive features (#316, #317).

Code of Conduct
  • I have searched for existing issues and this is not a duplicate.
Dominant language
Java
Stars
35
Forks
7
Avg merge
9h 32m
Merged PRs (30d)
144

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from devops-thiago/ThrillhouseBot

All issues in devops-thiago/ThrillhouseBot

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.