# Claude Skill: Airflow → Temporal Migration Assistant (Python)
## Summary
A semi-automated migration skill that converts an Apache Airflow DAG (Python) into a **Temporal Python SDK** workflow + activities **safely**, producing:
- a migration plan
- generated scaffolding code (workflow/activity stubs + typed interfaces)
- test skeletons (replay/golden)
- a checklist for determinism, retries, idempotency, and schedulingLeveraging Gemini CLI + LangGraph + Terraform + GitHub PR automation is a solid pattern that can scale across many developer productivity use cases. Here's how you can apply this architecture to other scenarios, broken down by common workflows, efficiency gains, and tailored examples:
- Input intent (natural language) →
- Agent interprets and formulates prompt →
- Gemini CLI modifies code/config →
- PR created with reasoning trace →
To use a browser with Google Agent Developer Kit (ADK) to scrape a Tableau report, you’ll typically need to combine:
- Google ADK (to receive and interpret the natural language intent),
- A headless browser (like Puppeteer or Playwright),
- And possibly an MCP server or tool plugin to expose scraping functionality to the agent.
Hello World
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
| from sklearn.datasets import make_blobs | |
| import matplotlib.pyplot as plt | |
| from sklearn.cluster import KMeans | |
| import numpy as np | |
| from matplotlib import cm | |
| from sklearn.metrics import silhouette_samples | |
| import pandas as pd | |
| from scipy.spatial.distance import pdist, squareform | |
| from scipy.cluster.hierarchy import linkage | |
| from scipy.cluster.hierarchy import dendrogram |
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
| import pandas as pd | |
| import numpy as np | |
| from matplotlib import pyplot as plt | |
| import utils | |
| from sklearn.tree import DecisionTreeClassifier | |
| from sklearn import tree | |
| np.random.seed(0) |
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
| import numpy as np | |
| from matplotlib import pyplot | |
| # Some functions to plot our points and draw the lines | |
| def plot_points(features, labels, fix_margins=True): | |
| X = np.array(features) | |
| y = np.array(labels) | |
| spam = X[np.argwhere(y==1)] | |
| ham = X[np.argwhere(y==0)] | |
| if fix_margins: |
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
| description: Change BigQuery table permission | |
| group: cli_gcp_qb | |
| cmd: gsutil [table_name] [service_account] |
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
| import pandas as pd | |
| import numpy as np | |
| from matplotlib import pyplot | |
| # Some functions to plot our points and draw the lines | |
| def plot_points(features, labels): | |
| X = np.array(features) | |
| y = np.array(labels) | |
| spam = X[np.argwhere(y==1)] | |
| ham = X[np.argwhere(y==0)] |
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
| # Loading the one_circle dataset | |
| # ploy_svm.csv: https://gist.github.com/sithu/1a3c2dfbca74540fb2ee5a1aca1c4a0f | |
| circular_data = pd.read_csv('poly_svm.csv') | |
| features = np.array(circular_data[['x_1', 'x_2']]) | |
| labels = np.array(circular_data['y']) | |
| utils.plot_points(features, labels) | |
| # TODO: Degree = 2 vs Degree = 4 | |
| # Which one gives better accuracy? | |
| svm_degree_2 = SVC(kernel='poly', degree=2) |
NewerOlder