skills/liatrio-dns/SKILL.md
Provision DNS records for liatr.io subdomains in the liatrio/liatrio-external-dns repository. Use when adding, modifying, or removing DNS CNAME records, A records, or other Route53 records for liatr.io or k8s-ignite.com domains. Triggers on requests like 'add a domain', 'create a subdomain', 'point X.liatr.io to Y', or 'set up DNS for a new site'.
npx skillsauth add liatrio-labs/ai-prompts liatrio-dnsInstall 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.
Provision DNS records for liatr.io subdomains in the liatrio/liatrio-external-dns Terraform/Terragrunt repository.
Clone URL: [email protected]:liatrio/liatrio-external-dns.git
If the repo is not already cloned locally, clone it to the user's working directory before proceeding.
liatrio-external-dns/
├── dns/
│ ├── liatr_io_records.tf # All liatr.io DNS records (primary file to edit)
│ ├── k8s_ignite_com_records.tf # k8s-ignite.com DNS records
│ ├── zones.tf # Route53 hosted zones
│ ├── certificates.tf # ACM wildcard certificates
│ ├── redirects.tf # CloudFront redirect modules
│ ├── domains.tf # Registered domain imports
│ └── terragrunt.hcl # Terragrunt config
├── modules/
│ ├── cloudfront-redirect/ # Module for HTTP redirects via CloudFront
│ └── wildcard-acm-cert/ # Module for wildcard ACM certs with DNS validation
├── insights-liatrio-com/ # S3 + CloudFront for insights.liatrio.com
├── root.hcl # Shared Terragrunt config (S3 backend, provider)
└── shared.tfvars # Shared variables (region: us-east-1)
For sites hosted on GitHub Pages under the liatrio org:
# <description>.liatr.io
resource "aws_route53_record" "<name>_liatr_io" {
zone_id = aws_route53_zone.liatr_io.zone_id
name = "<name>.liatr.io"
type = "CNAME"
ttl = 300
records = ["liatrio.github.io"]
}
_liatr_ioliatrio-labs org, use liatrio-labs.github.io insteadliatrio-clients org, use liatrio-clients.github.io insteadFor domains pointing to Vercel, Azure, or other external services:
resource "aws_route53_record" "<name>_liatr_io" {
zone_id = aws_route53_zone.liatr_io.zone_id
name = "<name>.liatr.io"
type = "CNAME"
ttl = 300
records = ["<target-domain>"]
}
For apex domains or GitHub Pages A records:
resource "aws_route53_record" "<name>_liatr_io" {
zone_id = aws_route53_zone.liatr_io.zone_id
name = "<name>.liatr.io"
type = "A"
ttl = 300
records = local.github_pages_ips
}
The local.github_pages_ips variable is defined at the top of liatr_io_records.tf.
To redirect a subdomain to another URL, add a module in dns/redirects.tf and A/AAAA alias records in dns/liatr_io_records.tf:
# In redirects.tf:
module "<name>_liatr_io_redirect" {
source = "../modules/cloudfront-redirect"
name = "<name>-liatr-io-redirect"
destination_url = "<target-url>"
origin_domain = "<name>.liatr.io"
certificate_arn = module.liatr_io_wildcard_cert.certificate_arn
tags = var.tags
}
# In liatr_io_records.tf:
resource "aws_route53_record" "<name>_liatr_io_redirect" {
zone_id = aws_route53_zone.liatr_io.zone_id
name = "<name>.liatr.io"
type = "A"
alias {
name = module.<name>_liatr_io_redirect.domain_name
zone_id = module.<name>_liatr_io_redirect.hosted_zone_id
evaluate_target_health = false
}
}
resource "aws_route53_record" "<name>_liatr_io_redirect_ipv6" {
zone_id = aws_route53_zone.liatr_io.zone_id
name = "<name>.liatr.io"
type = "AAAA"
alias {
name = module.<name>_liatr_io_redirect.domain_name
zone_id = module.<name>_liatr_io_redirect.hosted_zone_id
evaluate_target_health = false
}
}
To delegate a subdomain to another DNS provider or AWS account:
resource "aws_route53_record" "<name>_liatr_io_ns" {
zone_id = aws_route53_zone.liatr_io.zone_id
name = "<name>.liatr.io"
type = "NS"
ttl = 300
records = ["ns1.example.com", "ns2.example.com", "ns3.example.com", "ns4.example.com"]
}
add-<name>-liatr-io-cname (or similar descriptive name)dns/liatr_io_records.tf (or appropriate file)chore: add CNAME for <name>.liatr.iopr.yaml workflow will run terragrunt plan and comment the changes on the PRapply.yaml workflow runs terragrunt apply automaticallyCNAME file or custom domain configured in Settings > Pagesaws_route53_zone.liatr_io.zone_id for liatr.io subdomainsaws_route53_zone.k8s_ignite_com.zone_id for k8s-ignite.com subdomainsplatform.liatr.io subdomain has its own zone: aws_route53_zone.platform_liatr_io.zone_idliatr.io and k8s-ignite.com (in certificates.tf)tofu fmt on changed files before committing — CI checks formattingdevelopment
Use when you need lightweight browser QA for a web page, local HTML file, or app: inspect console errors, broken assets, keyboard/focus behavior, viewport readability, and publish evidence-backed findings JSON through a local HTML report viewer.
development
Provides concise guidance for using uv (Python package manager), including project workflows, pip-compatible commands, Python version management, and PEP 723 inline script dependencies. Use when users mention uv, uv run, inline dependencies, PEP 723, or Python dependency/project management.
development
Manage local development environments with Tilt. Use when working with projects that run services via Tilt (indicated by presence of Tiltfile), including checking service status, viewing logs, troubleshooting connectivity issues, or managing the Tilt stack. Essential for projects using Tiltfile with local_resource for orchestrating backend, frontend, and other services.
tools
Interact with Mastra development server API for debugging agents, viewing conversation threads, listing/inspecting tools and workflows, accessing observability data, and managing Mastra resources. Use when working with Mastra agents and need to inspect runtime state, debug agent errors, view thread history, see available tools/workflows, or access API endpoints at localhost:4111/api or similar ports.