skills/cli-scripting/python/3.14/SKILL.md
Python 3.14 version agent. Key features: template strings (t'...' returning Template objects for safe interpolation), deferred annotation evaluation (PEP 749, annotations stored as strings and evaluated lazily).
npx skillsauth add chrishuffman5/domain-expert cli-python-3.14Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Unlike f-strings which produce str, t-strings produce a Template object. This allows frameworks to process interpolated parts safely (SQL injection prevention, HTML escaping, structured logging).
# t-strings return Template, not str
greeting = t"Hello, {name}!"
# greeting.strings = ("Hello, ", "!")
# greeting.interpolations = [Interpolation(name, "name", None, "")]
# Safe HTML rendering
def safe_html(template) -> str:
import html
parts = []
for item in template:
if isinstance(item, str):
parts.append(item)
else:
parts.append(html.escape(str(item.value)))
return "".join(parts)
user_input = "<script>alert('xss')</script>"
output = safe_html(t"<p>Hello, {user_input}!</p>")
# "<p>Hello, <script>alert('xss')</script>!</p>"
# SQL safety pattern
def sql_query(template) -> tuple[str, list]:
query_parts, params = [], []
for item in template:
if isinstance(item, str):
query_parts.append(item)
else:
query_parts.append("?")
params.append(item.value)
return "".join(query_parts), params
name = "Alice"
query, params = sql_query(t"SELECT * FROM users WHERE name = {name}")
# query = "SELECT * FROM users WHERE name = ?"
# params = ["Alice"]
Annotations are stored as strings by default in 3.14 and evaluated lazily only when inspect.get_annotations() is called. This replaces the from __future__ import annotations approach.
class Config:
host: str # stored as string "str", not evaluated at class creation
port: int
tags: list[str]
import inspect
hints = inspect.get_annotations(Config, eval_str=True)
# {"host": str, "port": int, "tags": list[str]}
Benefits:
__future__ importtools
kubectl command-line usage and scripting: kubeconfig and context management, output formats (jsonpath, custom-columns, go-template), all major verbs (get, describe, apply, delete, exec, logs, port-forward, rollout, scale, drain), workload resources, config/storage, networking, RBAC, node management, debugging (CrashLoopBackOff, ImagePullBackOff, OOMKilled), and scripting patterns (dry-run, diff, wait, jq, kustomize). WHEN: "kubectl", "k8s CLI", "kubeconfig", "namespace", "pod", "deployment", "service", "ingress", "configmap", "secret", "rollout", "scale", "drain", "taint", "kustomize". Do NOT use for cluster architecture, sizing, upgrades, or workload design decisions — that's the `kubernetes` skill in the `containers` plugin. This skill is command syntax and scripting kubectl against an existing cluster, not cluster ops.
tools
Bash 5.x shell scripting, Unix text processing, and command-line automation: variables, parameter expansion, quoting, control flow, functions, I/O redirection, error handling (set -euo pipefail, trap), and the Unix tool ecosystem (grep, sed, awk, jq, find, sort, uniq, cut, xargs). Covers process management, networking (curl, ssh, rsync, nc), file locking (flock), parallel execution, and production script patterns. WHEN: "Bash", "bash", "shell", "sh", ".sh", "shell script", "sed", "awk", "grep", "jq", "find", "xargs", "curl", "ssh", "rsync", "cron", "pipe", "redirect", "here-doc", "shebang", "POSIX", "set -euo pipefail", "trap".
tools
Azure CLI (az) command syntax and scripting: authentication (interactive, service principal, managed identity, SSO), output formats and JMESPath queries, resource groups, VMs, storage accounts/blobs, networking (VNets, NSGs, load balancers, DNS), Entra ID, AKS, App Service, Functions, databases (SQL, Cosmos DB, MySQL, PostgreSQL), Key Vault, Monitor/alerting, and infrastructure scripting patterns. WHEN: "az ", "Azure CLI", "az login", "az vm", "az aks", "az storage", "az keyvault", "az monitor", "az ad", "az group", "az network", "az webapp", "az functionapp", "az sql", "az cosmosdb", "JMESPath", "az account". Do NOT use for Azure architecture, landing zones, or multi-subscription strategy — that's the `cloud-platforms` plugin. This skill is about command syntax and scripting the CLI, not deciding what to provision.
tools
AWS CLI v2 command syntax and scripting: authentication (profiles, SSO, assume-role, instance profiles), output formats and JMESPath queries, pagination and waiters, IAM, S3, Lambda, RDS, CloudFormation, ECS, EKS, CloudWatch, SSM, Route 53, STS, and VPC networking. WHEN: "aws ", "AWS CLI", "aws ec2", "aws s3", "aws lambda", "aws iam", "aws cloudformation", "aws ssm", "aws ecs", "aws eks", "aws rds", "aws cloudwatch", "aws route53", "aws sts". Do NOT use for AWS architecture, service selection, multi-account strategy, or FinOps — that's the `cloud-platforms` plugin. This skill is about command syntax and scripting the CLI, not deciding what to provision.