bregctl: explain and check report structural paths with no file or line to go with them
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by comparing the current bregctl check --format json findings and bregctl explain output, then trace how structural paths are represented across projects assembled from several files. Define the chosen output shape and how it distinguishes authored configuration, module values, and engine defaults; done means every addressable construct has usable provenance or the opt-in locations map is available.
Written by the indexing model from the issue text.
Description
Problem
Both bregctl check --format json findings and bregctl explain output identify configuration by structural path, for example entities[2].fields[5].constraints[0]. Neither says which file the construct came from, nor where in that file it sits.
For a single-file project a human can resolve this by reading. For a project assembled from several files, or one that a tool wants to link back to source, the structural path is not enough. Every consumer has to re-parse the project files itself and re-implement the mapping from structural path to file position, which means re-implementing assumptions about how the loader merges files.
Request
Either of:
- Source provenance inline: add
fileandrange(start and end line/column) next topathin explain output and in check findings. - A separate map:
bregctl explain locations --format jsonreturningstructuralPath -> { file, range }for every addressable construct.
Option 2 is cheaper to add without disturbing existing payload shapes, and it lets consumers opt in.
Provenance should also distinguish authored configuration from values that came from a module or from an engine default, since "this field is not in your file because the engine supplied it" is a different answer from "this is at line 40".
Why it matters
Any tool that shows a project's configuration and wants to let a reader jump to where a rule is written needs this. Without it, the tool is guessing.
- Dominant language
- Rust
- Stars
- 2
- Forks
- 0
- Avg merge
- 8h 25m
- Merged PRs (30d)
- 266
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from registrystack/registry-stack
-
area:release bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
registrystack/registry-stack#1874 ·
Maintainers usually reply within 1 day
-
area:breg bug criticality:p3
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
registrystack/registry-stack#1851 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
registrystack/registry-stack#1753 ·
Maintainers usually reply within 1 day
-
area:casework bug criticality:p3 triage:needs-implementation
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
registrystack/registry-stack#1729 ·
Maintainers usually reply within 1 day
-
area:breg bug criticality:p3 triage:needs-implementation
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
registrystack/registry-stack#1682 ·
Maintainers usually reply within 1 day
All issues in registrystack/registry-stack
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
joshstevens19/rindexer#483 ·
Maintainers usually reply within 1 day
-
VX_PRINT_DROPS prints each drop point twice on the default code generator, the second time at line 0Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
CommunityToolkit/Aspire#2231 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100