VeryGoodOpenSource / VeryGoodOpenSource/vgv-ai-flutter-plugin

fix: green-gate parses lcov for uncovered lines the MCP result can now supply

Open Beginner friendly
#146 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
162
Forks
23
Avg merge
2d 22h
Merged PRs (30d)
4

Description

Description

green-gate routes every coverage diagnosis through a Bash parse of coverage/lcov.info.
That was the only option when the skill was written, but the uncovered-line data is now
reachable from the MCP test result itself, so the skill sends agents to the filesystem for
something the tool it just called can hand back directly.

Core Standards (skills/green-gate/SKILL.md, line 54 on main) currently says:

Bash is reserved for parsing coverage/lcov.info — nothing else.

and the Coverage Gate section builds on it:

The MCP min_coverage result is authoritative for pass/fail. The coverage/lcov.info
parse is advisory — it supplies the displayed percentage and per-file fix targets.

The "per-file fix targets" half of that is now obtainable from the tool result. With
show_uncovered enabled, the MCP test result reads:

Expected coverage >= 100.00% but actual is 33.33%.
Lines not covered:
	- lib/vgvtest.dart: 4, 5

That is exactly the information step 6 of the loop ("Prioritize files by uncovered
lines…", line 244) goes to lcov for — at file and line granularity, in a result the agent
already has in context.

The skill never mentions show_uncovered, so an agent following it will not think to enable
it, and will parse lcov even when the answer is sitting in the previous tool result.

Expected Behavior
  1. Core Standards gains a bullet telling the agent to ensure show_uncovered is on — today
    via a very_good.yaml at the package or monorepo root:

    test:
      show_uncovered: true
    
    dart:
      test:
        show_uncovered: true
    

    Both sections are required, since very_good test reads the top-level test: block and
    very_good dart test reads dart: test:.

  2. The Coverage Gate section prefers Lines not covered: from the MCP result when present,
    and treats the lcov parse as the fallback for when it is absent.

  3. The Bash is reserved for parsing coverage/lcov.info — nothing else line is softened to
    reflect that the lcov parse is now the fallback path rather than the default one.

If VeryGoodOpenSource/very_good_cli#1675-style schema work lands for show_uncovered
(filed separately against very_good_cli), step 1 becomes "pass show_uncovered: true in
the tool call" and the config file stops being necessary — but the skill change is worth
making now, because the config route already works against 1.4.0.

Additional Context

Worth noting the cost of the status quo beyond an extra Bash call: references/coverage.md
carries a decision tree for the three lcov-absence causes and for stale-lcov handling, all of
which is reasoning the agent has to do because it is reading a file on disk that may not
correspond to the run it just performed. The tool result has no staleness problem — it is
produced by the run being diagnosed.

Verified against very_good_cli 1.4.0 and plugin 0.0.5 (skills/green-gate/SKILL.md on
main still has the carve-out and no show_uncovered mention as of this writing).

Contributor guide

Open the contributing guide

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.

Research direction

Update skills/green-gate/SKILL.md and review references/coverage.md, starting with the Core Standards and Coverage Gate sections described in the issue. Document enabling show_uncovered in very_good.yaml, prefer Lines not covered: from the MCP test result, and retain lcov parsing as the fallback. Done means the guidance covers both config locations and no longer presents lcov as the default path.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash, dart, yaml
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
82/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.