Skip to content

Add port-from-upstream agent skill#13

Merged
richardwooding merged 1 commit intomainfrom
skill-port-from-upstream
Apr 28, 2026
Merged

Add port-from-upstream agent skill#13
richardwooding merged 1 commit intomainfrom
skill-port-from-upstream

Conversation

@richardwooding
Copy link
Copy Markdown
Contributor

Summary

Third of four maintenance skills. Captures the workflow for syncing features and bug fixes from upstream cel2sql Go (the canonical source) and cross-referencing cel2sql4j Java into pycel2sql. The recent v3.7.0/v3.7.1 sync (PR #8) followed this exact shape.

Mirrors cel2sql4j's same skill (cel2sql4j PR #11) — pycel2sql is more relevant than cel2sql Go for this skill, since pycel2sql tracks two upstreams and benefits from cel2sql4j as a cross-reference.

Layout

  • `SKILL.md` (~120 lines) — quick start, two-upstream model, pre-port verification ("grep first" — many fixes are already done), out-of-scope concerns mirrored from cel2sql4j, per-commit workflow, when-to-split-PRs trade-off.
  • `references/go-to-python-idioms.md` — Go → Python mapping table distilled from the actual edits in PR Add Apache Spark dialect, observe-fork options, and BigQuery COALESCE fix #8 (closures, errors, ABC, generics, strings, maps).
  • `references/java-to-python-cross-refs.md` — places where cel2sql4j's Java solution is a closer template than the Go original (per-dialect `writeFormat`, `ConvertOptions` shape, single-functional-interface lambdas, dual-message exception base).
  • `scripts/list_upstream_changes.sh` — lists upstream cel2sql commits + cel2sql4j commits in the same time window. Auto-detects since-sha from the most recent "Port"/"backport" commit on pycel2sql main. Falls clearly when either sibling repo is missing.

Lint

```
$ python .claude/skills/skill-authoring/scripts/lint_skill.py .claude/skills/port-from-upstream/
0 error(s), 0 warning(s)
```

Test plan

  • Lint passes
  • From a fresh Claude Code session, prompt "sync the latest cel2sql upstream changes" and confirm the skill activates
  • Run `bash .claude/skills/port-from-upstream/scripts/list_upstream_changes.sh` and confirm it lists upstream tags + commits and (if cel2sql4j is checked out) cross-references it

🤖 Generated with Claude Code

Captures the workflow for syncing features and bug fixes from upstream
cel2sql Go (the canonical source) and cross-referencing cel2sql4j Java.
The recent v3.7.0/v3.7.1 sync (PR #8: Spark dialect + observe-fork
options + BigQuery COALESCE fix) followed this exact shape.

Layout under .claude/skills/port-from-upstream/:
- SKILL.md (~120 lines) — quick start, two-upstream model, pre-port
  verification (grep first), out-of-scope concerns mirrored from
  cel2sql4j's same decisions, per-commit workflow, when-to-split-PRs
  trade-off, verification.
- references/go-to-python-idioms.md — Go-to-Python mapping table
  (closures, errors, struct-and-interface → ABC + dataclass, generics,
  strings, maps, time/duration, reflection). Distilled from the actual
  edits in PR #8.
- references/java-to-python-cross-refs.md — places where cel2sql4j's
  Java solution was a closer template than the Go original (per-dialect
  writeFormat, ConvertOptions shape, single-functional-interface lambda
  vs Go closure, dual-message exception base, shared skipped concerns).
- scripts/list_upstream_changes.sh — lists upstream cel2sql commits and
  tags, plus cel2sql4j commits in the same time window. Auto-detects
  since-sha from the most recent "Port" / "backport" commit on pycel2sql
  main. Falls clearly when either sibling repo isn't checked out.

Lints clean against .claude/skills/skill-authoring/scripts/lint_skill.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@richardwooding richardwooding merged commit 768fa45 into main Apr 28, 2026
7 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