Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

## [0.4.1] - 2026-05-04

This is a minor release focused on strengthening `git-story-teller` with complete-read grounding rules, optional subagent delegation, evidence-based language validation, and enhanced deterministic output artifacts. The skill now enforces that agents read full context and target stories as primary sources, supports delegation of independent target contexts to subagents, and provides tooling to detect and prevent unmeasured frequency or behavior claims without source evidence.
This is a minor release focused on strengthening `git-story-teller` with complete-read grounding rules, optional subagent delegation, evidence-based language validation, and enhanced deterministic output artifacts, plus clarifying `git-visual-squash-summary` emoji-first output conventions with explicit lowercase-start guidance. The `git-story-teller` skill now enforces that agents read full context and target stories as primary sources, supports delegation of independent target contexts to subagents, and provides tooling to detect and prevent unmeasured frequency or behavior claims without source evidence. The `git-visual-squash-summary` skill clarifies its emoji-first output rule to start descriptions lowercase after the emoji unless a leading technical identifier requires original casing.

### Added

Expand All @@ -18,21 +18,26 @@ This is a minor release focused on strengthening `git-story-teller` with complet
- Public API summary generation in `story.cs` to help agents orient around consumer-facing types, inheritance chains, and key members before reading raw source,
- Engineering signal map in `story.cs` highlighting source-backed validation guards, lifecycle callbacks, factories, hosting styles, and test evidence for narrative-driven explanations instead of mechanical API lists,
- Conservative test ownership mapping in `story.cs` preferring dedicated test projects with matching names over downstream package tests, only using direct references as fallback, and leaving Test path undiscovered when no unambiguous match exists,
- Chunked context navigation in `story.cs` with `*.context.index.md` and ordered `*.context.chunks/*.md` files alongside full contexts for robust reading even when tools cap single-file output.
- Chunked context navigation in `story.cs` with `*.context.index.md` and ordered `*.context.chunks/*.md` files alongside full contexts for robust reading even when tools cap single-file output,
- Explicit lowercase-start guidance in `git-visual-squash-summary` for emoji-first output, clarifying that descriptions should start lowercase unless a leading technical identifier requires original casing,
- Eval test coverage for `git-visual-squash-summary` lowercase-start rule including preservation of case-sensitive identifiers and distinction from conventional-commit prefixes.

### Changed

- Refined `git-story-teller` SKILL.md with explicit complete-read contract, mandatory target-story sourcing for overview phase, subagent orchestration patterns, and conservative test mapping rules,
- Enhanced `story.cs` to emit complete context files, public API summaries, engineering signal maps, conservative test ownership logic, context indexes, and ordered chunk files for improved agent navigation and grounding,
- Updated README description and "Why git-story-teller?" section to document full output artifacts, public-API-first orientation, engineering signals, conservative test mapping, chunked navigation, and complete-read grounding,
- Updated README description and "Why git-visual-squash-summary?" section to clarify lowercase-start rule and technical identifier preservation in emoji-first output,
- Expanded `git-visual-squash-summary` SKILL.md formatting rules and good/bad characteristics sections with explicit lowercase-start guidance and case-sensitive identifier handling,
- Expanded AGENTS.md with four-way skill sync guidance including Gemini Antigravity install location and folder-name requirements,
- Refined eval contracts for complete-read patterns, subagent coordination, evidence-based prose, target-story-sourced overview synthesis, and conservative test ownership mapping.
- Refined eval contracts for complete-read patterns, subagent coordination, evidence-based prose, target-story-sourced overview synthesis, conservative test ownership mapping, and emoji-first lowercase output conventions.

### Fixed

- Clarified validator and documentation alignment to enforce complete-read requirements, evidence-based language rules, and target-story sourcing for overview workflows,
- 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.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 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.


## [0.4.0] - 2026-05-03

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ npx skills add https://github.com/codebeltnet/agentic --skill dotnet-new-lib-sln
| [git-keep-a-changelog](skills/git-keep-a-changelog/SKILL.md) | Git-aware Keep a Changelog companion that creates or updates `CHANGELOG.md` from the current branch by default. Reads full commit subjects and bodies plus the net diff, infers a release heading from a branch version hint like `v0.3.0/...` when available, must ask a mandatory `Yes / No / Custom` confirmation question before including pending staged, unstaged, or untracked worktree changes in a concrete release draft, now backed by `FORMS.md` so compatible hosts can render a native choice UI while preserving the same text fallback, creates a compliant changelog if the file does not exist yet, writes a required SemVer-aware release highlight, maintains or inserts the Keep a Changelog compare-link footer on both create and update paths, preserves natural prose wrapping, and curates `Added` / `Changed` / `Fixed` style sections instead of dumping raw commit logs. |
| [git-nuget-release-notes](skills/git-nuget-release-notes/SKILL.md) | Git-aware NuGet release-notes companion for .NET repos that keep cumulative `.nuget/{ProjectName}/PackageReleaseNotes.txt` files. Discovers packable `src/` projects, resolves concrete package version and availability, creates missing files when needed, and writes per-package `ALM` / `Breaking Changes` / `New Features` / `Improvements` / `Bug Fixes` style notes from full commit context plus the net diff instead of dumping commit subjects. |
| [git-nuget-readme](skills/git-nuget-readme/SKILL.md) | Git-aware NuGet README companion for .NET repos that advertise a package from `src/`. Resolves the real packable project the README should sell, combines git history with actual package metadata, source capabilities, and relevant tests when feasible, preserves honest badge/docs/contributing sections, and writes a forthcoming, adoption-friendly `README.md` with repo-derived branding, clear value, install, framework-support, and quick-start guidance. |
| [git-visual-squash-summary](skills/git-visual-squash-summary/SKILL.md) | Non-mutating grouped-summary companion to `git-visual-commits`. Turns the full current feature branch into a curated set of compact summary lines for PR or squash-and-merge contexts by default, preserving technical identifiers, merging overlap, dropping low-signal noise, highlighting distinct meaningful efforts, and avoiding changelog-style wording, unsupported claims, needless commit-range questions, or commit-selection UI for ordinary branch-level squash requests. |
| [git-visual-squash-summary](skills/git-visual-squash-summary/SKILL.md) | Non-mutating grouped-summary companion to `git-visual-commits`. Turns the full current feature branch into a curated set of compact lowercase-start summary lines for PR or squash-and-merge contexts by default, preserving technical identifiers, merging overlap, dropping low-signal noise, highlighting distinct meaningful efforts, and avoiding changelog-style wording, unsupported claims, needless commit-range questions, or commit-selection UI for ordinary branch-level squash requests. |
| [skill-creator-agnostic](skills/skill-creator-agnostic/SKILL.md) | Runner-agnostic overlay for Anthropic `skill-creator`. Adds repo and environment guardrails for skill authoring and benchmarking: temp-workspace isolation, `iteration-N/eval-name/{config}/run-N/` benchmark layout, valid `grading.json` summaries, generated `benchmark.json`, honest `MEASURED` vs `SIMULATED` labeling, and sync/README discipline for repo-managed skills. |
| [markdown-illustrator](skills/markdown-illustrator/SKILL.md) | Reads a markdown file and answers directly in chat with one document-wide Visual Brief plus one compiled prompt. Infers a compact visual strategy by default, keeps follow-up questions near zero, and only branches when the user explicitly asks for added specificity. |
| [git-story-teller](skills/git-story-teller/SKILL.md) | Turns any full repository URL into a deterministic story workspace using the bundled .NET file-based runner `scripts/story.cs`. Requires explicit `--repo-url` and `--output-root`, derives `{repo-id}`, fixes `result/`, packs context with local Repomix when available, the public Repomix web API for GitHub URLs when Node/npm is unavailable, or a lower-fidelity built-in .NET fallback as the last resort, writes full contexts plus public API summaries, engineering signals, conservative package-owned test paths, context indexes, and ordered chunk files, then guides the agent to fully read the current phase's required context before writing target stories and `result/Index.md`, optionally using one subagent per independent target context and using completed package stories as the primary source for the package-facing `## Package selection` overview. |
Expand Down Expand Up @@ -207,7 +207,7 @@ Commit messages are the most-read documentation in any codebase — yet they're

Sometimes the history is already written and the only thing you need is the final grouped summary. A long branch with fixups, rename follow-ups, review nits, and repeated attempts often contains a few real change themes buried inside a messy chronological story. That is where **git-visual-squash-summary** fits: it reads the real history and diff, then compresses them into a small set of truthful grouped lines.

- **Same visual language** — reuses the same emoji-first wording rules as `git-visual-commits`
- **Same visual language** — reuses the same emoji-first wording rules as `git-visual-commits`, including lowercase descriptions after the emoji unless a leading technical identifier requires original casing
- **Grouped-lines only** — returns compact grouped lines only, not a title or body
- **Non-mutating by design** — drafts the wording only and does not touch git state
- **Whole-branch by default** — for squash-and-merge requests, uses the full current feature branch from merge-base to `HEAD` instead of asking which branch commits to include
Expand Down
12 changes: 9 additions & 3 deletions skills/git-visual-squash-summary/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ This skill has one job: produce a ready-to-paste squash-and-merge summary for th
- Drop low-signal noise such as typo-only, fixup-only, and trivial follow-up commits unless they materially change a retained group.
- Prefer strong concrete verbs and concise phrasing.
- Favor readable GitHub and terminal output over cleverness.
- Start the description after the emoji with a lowercase word unless the first word is a case-sensitive technical identifier.
- Avoid vague filler such as "various improvements".
- Do not treat the result as a changelog entry or a dump of commit subjects.
- Do not invent unsupported changes.
Expand Down Expand Up @@ -96,9 +97,9 @@ Ask yourself: "If I had to explain the real work in 2-5 compact lines, what are
Use this exact output shape:

```text
<emoji> <short summary line>
<emoji> <short summary line>
<emoji> <short summary line>
<emoji> <lowercase short summary line>
<emoji> <lowercase short summary line>
<emoji> <lowercase short summary line>
```

Formatting rules:
Expand All @@ -107,6 +108,9 @@ Formatting rules:
- Use one line per retained high-signal group.
- Keep every line at or below 72 characters.
- Default to emoji plus description only. Use `<emoji> <prefix>: ...` only when the user explicitly asked to mirror conventional-commit prefixes.
- Start each description lowercase after the emoji, usually with a lowercase imperative verb such as `add`, `update`, `refresh`, `preserve`, `split`, or `remove`.
- Preserve case-sensitive identifiers such as `ValidateSkillTemplates`, `Directory.Packages.props`, API names, type names, command names, and paths when they must appear first.
- Do not convert normal verbs to sentence case. Prefer `🧪 add ValidateSkillTemplates coverage`, not `🧪 Add ValidateSkillTemplates coverage`.
- Use the shared prefix and emoji guidance in `references/commit-language.md`.
- If a retained line is primarily dependency or version-alignment work, prefer the dependency emoji from the shared reference such as `⬆️`, `⬇️`, `➕`, `➖`, or `📌` rather than a generic config or refactor emoji.
- If a retained line is mainly changelog, community-health, or release-status communication, prefer `💬` from the shared reference rather than a generic docs emoji.
Expand All @@ -124,6 +128,7 @@ Output the finished grouped summary lines and stop. Do not run `git commit`, `gi
- Reads like a curated grouped summary, not a stitched list of commits.
- Reads like a curated, human-written condensed history.
- Uses the same emoji-first language as `git-visual-commits`, with prefixes only on explicit request.
- Starts descriptions lowercase after the emoji unless preserving a leading technical identifier requires original casing.
- Keeps distinct meaningful efforts on separate lines.
- Drops noisy fixups and typo-only churn instead of preserving them.
- Fits naturally beneath a PR title or in compact GitHub and terminal views.
Expand All @@ -142,6 +147,7 @@ Output the finished grouped summary lines and stop. Do not run `git commit`, `gi
- Presenting commit-selection widgets or multiple-choice prompts for ordinary branch-level squash requests.
- Collapsing several unique top-level efforts into one stitched sentence.
- Collapsing dependency updates into the same line as build-system configuration or refactor work when the diff shows separate intents.
- Starting normal descriptions with uppercase verbs such as `Add`, `Update`, `Refresh`, or `Preserve`.
- Filler such as "misc cleanup", "various improvements", or "updates".
- Losing or renaming important technical identifiers unnecessarily.
- Inventing refactors, fixes, or docs changes not supported by the diff.
Expand Down
13 changes: 13 additions & 0 deletions skills/git-visual-squash-summary/evals/evals.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"expected_output": "A polished grouped summary that keeps important technical identifiers intact and uses the shared git-visual wording style.",
"expectations": [
"Preserves technical identifiers exactly where possible",
"Starts descriptions lowercase after the emoji unless a leading technical identifier requires original casing",
"Uses the same emoji-first language as git-visual-commits and defaults to no prefix unless explicitly requested",
"Reads like a curated human-written condensed history rather than a dump of commit subjects",
"Keeps distinct meaningful efforts on separate lines",
Expand Down Expand Up @@ -101,6 +102,7 @@
"expected_output": "A grouped squash summary that uses emoji-first, prefixless lines by default and only switches to prefixed lines when the user explicitly requests that combo.",
"expectations": [
"Defaults to emoji plus description lines without adding conventional prefixes",
"Starts each prefixless description lowercase after the emoji",
"Uses the shared commit-language reference as the source of truth for that prefixless default",
"Keeps the output in grouped summary line form rather than explaining the rule at length"
]
Expand All @@ -126,6 +128,17 @@
"Keeps the build-system or refactor effort on its own retained line when the diff shows a separate intent",
"Returns grouped summary lines only"
]
},
{
"id": 12,
"prompt": "Draft the normal git-visual squash summary for this branch. Make it paste-ready for GitHub, keep identifiers like ValidateSkillTemplates intact, and keep the repo's emoji-first style.",
"expected_output": "A paste-ready grouped squash summary whose normal descriptions start lowercase after the emoji while still preserving case-sensitive technical identifiers when they appear.",
"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"
]
Comment on lines +136 to +141
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 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.

Suggested change
"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.

}
]
}
Loading