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

ConfigKeyContextResolver misses config keys defined in ordinarily-named files

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

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Domain
devtools

Research direction

Start in ConfigKeyContextResolver, where the candidate set is built from application* resources and files whose stem ends in config/settings/properties/env with a limited extension list. Read the table of misses (main.go, main.py, main.rs, Main.java, app-config.service.ts, Program.cs) and see how the candidate filter rejects them. Done when the resolver also selects files that contain environment reads, and the config-doc gate in FindingVerifierPrompts and #641 still agree.

Written by the indexing model from the issue text.

Description

enhancement

ConfigKeyContextResolver cannot reach config keys in most non-Java repositories, so the "Config key
definitions from the repository" evidence section is usually empty.

What it matches

Candidates are application* resources plus source files whose stem ends in
config/settings/properties/env, with a java/kt/py/ts/js/go/rb/rs extension.

What that misses

Found while fixing #638. Across two corpus rounds, every PR that defines its config keys in an
ordinarily-named file produced no section at all:

PR file that defines the keys why it does not match
go #40 main.go stem is main
python #39 main.py stem is main
rust #42 main.rs stem is main
java #43 Main.java stem is main
angular #49 app-config.service.ts stem ends service, not config
csharp #47 Program.cs .cs is not among the supported extensions

A service that reads its environment in main.go or Program.cs is entirely ordinary, so this is
the common case rather than an edge.

Why it mattered

The review prompt's config-doc dimension was gated on that section being present, so for all of the
above it was told, in effect, to say nothing. #641 fixes the gate by accepting the diff's own parsing
line (strings.Split(raw, ","), .split(','), Duration.ofMillis) as the definition — which is
what the dimension's own self-check already permitted, so the prompt was internally inconsistent.

That makes this issue no longer a correctness blocker: the dimension works without the section. But
the section exists to give the model the definition rather than making it infer one from a parsing
call, so an empty section is still lost evidence quality on the majority of repositories.

Suggested direction
  • Broaden the candidate set: .cs and other common extensions; entry-point files (main.*,
    Program.cs, app.*, index.*); and files that merely contain environment reads rather than
    matching on filename stem.
  • Consider selecting by content — a file that calls os.Getenv, System.getenv,
    Environment.GetEnvironmentVariable, process.env, std::env::var is a config-definition site
    regardless of its name.
  • Any change here should be read together with FindingVerifierPrompts's config-doc clause and the
    gate #641 relaxed, so the three do not disagree again.
Note on dimension numbering

PrReviewPrompts numbers these dimensions 7 (config/IaC) and 10 (config-key documentation). The
dogfood corpus briefs and answer keys number the same two 6 and 9. Issues #638 and others use the
corpus numbering. Worth keeping in mind when cross-referencing.

Dominant language
Java
Stars
35
Forks
7
Avg merge
9h 23m
Merged PRs (30d)
154

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.