V0.4.1/git squash fix#13
Conversation
Added explicit lowercase-start guidance for emoji-first output, clarifying that descriptions should start lowercase unless a leading technical identifier requires original casing. Preserved case-sensitive identifiers such as ValidateSkillTemplates, Directory.Packages.props, API names, and paths when they appear first. Added eval test coverage for the lowercase-start rule including preservation of technical identifiers and distinction from conventional-commit prefixes. Updated README descriptions to reflect the refined output conventions.
Updated the 0.4.1 release entry to document both git-story-teller enhancements (complete-read grounding, subagent delegation, evidence-based validation) and git-visual-squash-summary refinements (emoji-first output rules, lowercase-start guidance, eval coverage). Expanded Added, Changed, and Fixed sections with comprehensive details of the release scope and impact.
Greptile SummaryThis PR clarifies and enforces the lowercase-start convention for emoji-first summary lines in The rule additions are internally consistent and the examples in the existing Confidence Score: 4/5Safe to merge; only P2 findings around documentation accuracy and an incomplete eval expectation. All findings are P2: a misleading CHANGELOG Fixed entry and a missing inverse-case expectation in eval 12. No logic errors or runtime regressions are introduced; the skill documentation and eval coverage are meaningfully improved. CHANGELOG.md (misleading Fixed entry about references/commit-language.md) and evals/evals.json (eval 12 missing the leading-identifier exception expectation). Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Emoji selected] --> B{First word after emoji}
B -->|Normal verb e.g. add, update| C[Lowercase start\ne.g. '✨ add feature']
B -->|Case-sensitive technical identifier\ne.g. ValidateSkillTemplates| D[Preserve original casing\ne.g. '🧪 ValidateSkillTemplates coverage']
C --> E[Output line ≤72 chars]
D --> E
E --> F{Conventional prefix\nexplicitly requested?}
F -->|No| G[emoji + description only]
F -->|Yes| H[emoji + prefix + description]
Prompt To Fix All With AIFix the following 2 code review issues. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 2
CHANGELOG.md:40
**Changelog claims a file was changed that has no diff**
The Fixed entry states guidance was "Standardized ... across SKILL.md, `references/commit-language.md`, and eval contracts," but `references/commit-language.md` does not appear anywhere in this PR's diff. Changelog readers will expect that file to have been modified. The file's examples were already lowercase-compliant before this PR, so either the entry should be rephrased to reflect verification (not standardization), or the file should have been explicitly updated with the new casing guidance text.
### Issue 2 of 2
skills/git-visual-squash-summary/evals/evals.json:136-141
**New eval 12 missing explicit expectation for the identifier-first exception**
The `expected_output` prose for eval 12 correctly describes the exception ("preserving case-sensitive technical identifiers when they appear"), but none of the four expectations in the array covers the inverse case — that a line starting with `ValidateSkillTemplates` should *not* be forced to lowercase. Evals 2 and 9 include this explicit guard; without it in eval 12, the grader can pass a model that lowercases all identifiers without penalisation.
```suggestion
"expectations": [
"Starts normal description text lowercase after each emoji",
"Does not lowercase leading technical identifiers that require original casing",
"Preserves case-sensitive technical identifiers such as ValidateSkillTemplates exactly",
"Does not add conventional prefixes unless explicitly requested",
"Returns grouped summary lines only without explaining the casing rule"
]
```
Reviews (1): Last reviewed commit: "💬 document 0.4.1 release highlights" | Re-trigger Greptile |
| - Refined conservative test project matching to use exact suffix matching instead of stripping, preventing false positives when project names contain partial test-suffix overlap, | ||
| - Updated eval 11 expectations to clarify handling of dedicated test projects with explicit "Tests" suffix patterns. | ||
| - Updated eval 11 expectations to clarify handling of dedicated test projects with explicit "Tests" suffix patterns, | ||
| - Standardized `git-visual-squash-summary` output guidance across SKILL.md, references/commit-language.md, and eval contracts to enforce consistent lowercase-start and technical-identifier preservation rules. |
There was a problem hiding this comment.
Changelog claims a file was changed that has no diff
The Fixed entry states guidance was "Standardized ... across SKILL.md, references/commit-language.md, and eval contracts," but references/commit-language.md does not appear anywhere in this PR's diff. Changelog readers will expect that file to have been modified. The file's examples were already lowercase-compliant before this PR, so either the entry should be rephrased to reflect verification (not standardization), or the file should have been explicitly updated with the new casing guidance text.
Prompt To Fix With AI
This is a comment left during a code review.
Path: CHANGELOG.md
Line: 40
Comment:
**Changelog claims a file was changed that has no diff**
The Fixed entry states guidance was "Standardized ... across SKILL.md, `references/commit-language.md`, and eval contracts," but `references/commit-language.md` does not appear anywhere in this PR's diff. Changelog readers will expect that file to have been modified. The file's examples were already lowercase-compliant before this PR, so either the entry should be rephrased to reflect verification (not standardization), or the file should have been explicitly updated with the new casing guidance text.
How can I resolve this? If you propose a fix, please make it concise.| "expectations": [ | ||
| "Starts normal description text lowercase after each emoji", | ||
| "Preserves case-sensitive technical identifiers such as ValidateSkillTemplates exactly", | ||
| "Does not add conventional prefixes unless explicitly requested", | ||
| "Returns grouped summary lines only without explaining the casing rule" | ||
| ] |
There was a problem hiding this comment.
New eval 12 missing explicit expectation for the identifier-first exception
The expected_output prose for eval 12 correctly describes the exception ("preserving case-sensitive technical identifiers when they appear"), but none of the four expectations in the array covers the inverse case — that a line starting with ValidateSkillTemplates should not be forced to lowercase. Evals 2 and 9 include this explicit guard; without it in eval 12, the grader can pass a model that lowercases all identifiers without penalisation.
| "expectations": [ | |
| "Starts normal description text lowercase after each emoji", | |
| "Preserves case-sensitive technical identifiers such as ValidateSkillTemplates exactly", | |
| "Does not add conventional prefixes unless explicitly requested", | |
| "Returns grouped summary lines only without explaining the casing rule" | |
| ] | |
| "expectations": [ | |
| "Starts normal description text lowercase after each emoji", | |
| "Does not lowercase leading technical identifiers that require original casing", | |
| "Preserves case-sensitive technical identifiers such as ValidateSkillTemplates exactly", | |
| "Does not add conventional prefixes unless explicitly requested", | |
| "Returns grouped summary lines only without explaining the casing rule" | |
| ] |
Prompt To Fix With AI
This is a comment left during a code review.
Path: skills/git-visual-squash-summary/evals/evals.json
Line: 136-141
Comment:
**New eval 12 missing explicit expectation for the identifier-first exception**
The `expected_output` prose for eval 12 correctly describes the exception ("preserving case-sensitive technical identifiers when they appear"), but none of the four expectations in the array covers the inverse case — that a line starting with `ValidateSkillTemplates` should *not* be forced to lowercase. Evals 2 and 9 include this explicit guard; without it in eval 12, the grader can pass a model that lowercases all identifiers without penalisation.
```suggestion
"expectations": [
"Starts normal description text lowercase after each emoji",
"Does not lowercase leading technical identifiers that require original casing",
"Preserves case-sensitive technical identifiers such as ValidateSkillTemplates exactly",
"Does not add conventional prefixes unless explicitly requested",
"Returns grouped summary lines only without explaining the casing rule"
]
```
How can I resolve this? If you propose a fix, please make it concise.
This pull request clarifies and enforces the lowercase-start convention for emoji-first summary lines in the
git-visual-squash-summaryskill. It updates documentation, changelogs, user-facing descriptions, formatting rules, and evaluation tests to ensure that grouped summary lines start with a lowercase word after the emoji—unless a technical identifier requiring original casing appears first. The changes also expand guidance on preserving technical identifiers and update related evaluation criteria.Documentation and User Guidance Updates:
Updated
README.mdandskills/git-visual-squash-summary/SKILL.mdto clarify that grouped summary lines should start lowercase after the emoji, except when a leading technical identifier requires original casing. Expanded formatting rules and examples to illustrate this behavior, and emphasized preservation of case-sensitive identifiers. [1] [2] [3] [4] [5] [6] [7]Updated the
CHANGELOG.mdto document the lowercase-start rule, technical identifier preservation, and related evaluation coverage forgit-visual-squash-summary. [1] [2]Evaluation and Testing Improvements:
skills/git-visual-squash-summary/evals/evals.jsonwith new and refined test cases to check for lowercase-start compliance, technical identifier preservation, and correct output style. [1] [2] [3]