Skip to content

chore: add three development skills (re-targeted from #119)#120

Merged
richardwooding merged 1 commit intomainfrom
feat/development-skills-on-main
Apr 27, 2026
Merged

chore: add three development skills (re-targeted from #119)#120
richardwooding merged 1 commit intomainfrom
feat/development-skills-on-main

Conversation

@richardwooding
Copy link
Copy Markdown
Contributor

Summary

Re-targets #119 onto main. The original PR was stacked on feat/add-skill-authoring-skill (which became #118), and after #118 was squash-merged into main, GitHub merged #119's content into the now-stale branch instead of into main. Net result: skill-authoring/ is on main, but add-sql-dialect/, add-cel-feature/, and release-cel2sql/ are not.

This PR cherry-picks the three-skills commit onto a fresh branch off main. Content is identical to #119.

What lands

  • .claude/skills/add-sql-dialect/ — SKILL.md + dialect-method matrix + touchpoints checklist + check_testcase_coverage.py + gen_expected_sql.go.tmpl.
  • .claude/skills/add-cel-feature/ — SKILL.md + converter-file-map + dialect-method-checklist.
  • .claude/skills/release-cel2sql/ — SKILL.md + semver-decision + prepare_release.py.

Verification

$ python .claude/skills/skill-authoring/scripts/lint_skill.py .claude/skills/add-sql-dialect
0 error(s), 0 warning(s)
$ python .claude/skills/skill-authoring/scripts/lint_skill.py .claude/skills/add-cel-feature
0 error(s), 0 warning(s)
$ python .claude/skills/skill-authoring/scripts/lint_skill.py .claude/skills/release-cel2sql
0 error(s), 0 warning(s)

🤖 Generated with Claude Code

…, release-cel2sql)

The Spark dialect work (#117), the v3.7.0/v3.7.1 release flow, and the 5+
CEL feature PRs in the recent history are all heavily procedural,
multi-file, and easy to mess up in subtle ways. Captures each pattern
as a Claude Code skill following the discipline established by
skill-authoring (#118):

- add-sql-dialect (~25 file touches in lockstep): SKILL.md +
  dialect-method matrix across the 6 existing dialects, exhaustive
  touchpoints checklist, check_testcase_coverage.py script (verifies
  every WantSQL has the new dialect or a SkipDialect reason), and a
  gen_expected_sql.go.tmpl build-tagged template that prints actual
  SQL for every shared test case.

- add-cel-feature (5+ recent PRs): SKILL.md + converter-file-map
  (which file owns which CEL surface area) + dialect-method-checklist
  (steps when adding a method to dialect.Dialect, with a worked
  WriteEpochExtract example). Reuses check_testcase_coverage.py.

- release-cel2sql (every release): SKILL.md + semver-decision tree
  with the SIV /v4 caveat + prepare_release.py script that splits
  [Unreleased] into a versioned section dated today and prints the
  branch/commit/tag commands. Errors out cleanly when [Unreleased]
  is empty (the v3.6.0 → v3.7.0 backfill footgun is now caught).

All three pass `python .claude/skills/skill-authoring/scripts/lint_skill.py`
with 0 errors / 0 warnings. check_testcase_coverage.py self-tests
correctly across all six existing dialects (spark, duckdb, postgresql,
bigquery: full coverage; mysql, sqlite: real gaps in array/comprehension
tests). prepare_release.py self-tests against a synthetic CHANGELOG.md.

Branched off feat/add-skill-authoring-skill (#118) so the linter is
locally available; the skill-authoring content is unchanged from #118
so this branch needs no rebase touch-ups beyond the standard merge
once #118 lands.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@richardwooding richardwooding merged commit 93843bf into main Apr 27, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant