feat(skills): add setup-override-upstream — promote local override into framework PR#43
Merged
Conversation
…to framework PR New framework skill that walks an adopter through promoting a local `.apache-steward-overrides/<skill>.md` file into a PR against `apache/airflow-steward`. Closes the loop on the override mechanism: overrides start out as adopter-local modifications (per apache#38 + apache#39), and when one stops being project-specific and starts looking like a missing feature, this skill is the path to upstream it. Walkthrough Step 0 — Pre-flight (adopter has overrides + snapshot is current + framework clone available) Step 1 — Pick the override (auto-pick when only one; prompt when multiple) Step 2 — Read the override + the framework skill it modifies Step 3 — Decide if upstreamable. Four buckets: - project-specific → STOP (keep as override) - missing feature → continue - better default → continue - refactor a step → continue Step 4 — Design the framework-level abstraction. Four possible shapes (config knob / change default / new optional step / refactor existing step) Step 5 — Implement in user's apache-steward clone, run framework pre-commit Step 6 — Confirm + open PR (assistant proposes, user fires) Step 7 — Surface post-merge cleanup pointer (after merge + /setup-steward upgrade, delete the override file) Golden rules 1. Not every override should be upstreamed. 2. Write to the framework clone, never to the gitignored snapshot. 3. Assistant proposes, user fires (clone, branch, commit, push, PR — every state-changing action confirmed first). 4. Decouple PR open from override deletion (the cleanup happens AFTER the PR merges, not preemptively). Includes the standard pre-flight blocks per the framework's conventions: - ## Adopter overrides — consults .apache-steward-overrides/setup-override-upstream.md (per apache#39). - ## Snapshot drift — compares local lock vs committed lock (per apache#41), with a doubly-important note: the skill designs against the snapshot's framework code, so stale snapshot leads to wrong abstraction design. Generated-by: Claude Code (Claude Opus 4.7)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New framework skill that walks an adopter through promoting a local
.apache-steward-overrides/<skill>.mdfile into a PR againstapache/airflow-steward. Closes the loop on the override mechanism: overrides start out as adopter-local modifications (per #38, #39), and when one stops being project-specific and starts looking like a missing feature, this skill is the path to upstream it.What the skill does
apache/airflow-stewardclone, run framework pre-commit/setup-steward upgradelands, delete the override file in the adopter repoGolden rules
.apache-steward/is a build artefact and stays untouched.gh pr create) is proposed first and only happens on explicit confirmation./setup-steward upgrade. The skill prints the cleanup pointer at the end; it does not delete preemptively.Standard pre-flight blocks
The skill includes both standard pre-flight sections per the framework's conventions:
## Adopter overrides(per feat(skills): hook every framework skill into override-consultation protocol #39) — consults.apache-steward-overrides/setup-override-upstream.mdif it exists, applies any agent-readable instructions.## Snapshot drift(per feat(skills): wire drift check into every framework skill's pre-flight #41) — compares local lock vs committed lock; doubly important here, because this skill designs the framework-level abstraction against the snapshot's current state. Stale snapshot → wrong abstraction. The block calls this out explicitly.Test plan
prek run --all-fileshooks pass (markdownlint, typos, doctoc, check-placeholders)setup-steward/overrides.md,setup-steward/upgrade.md,docs/setup/agentic-overrides.mdresolve🤖 Generated with Claude Code