Review: DNS: SPF/DKIM/DMARC records for landscaping-assistant.app
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type (Feature)
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Feature Flag (none)
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
All sections present. Template structurally complete.
Traceability
- [x] story:custom-domain label — "As platform admin, I want each app to send from its own domain so emails look professional and build domain reputation"
- [x] story note verified — found in project-stalwart-email user-stories section
- [x] arch:dns label — DNS component
- [ ] arch note MISSING — [SCOPE] Create architecture note arch-dns for component dns
- [x] Forgejo issue — ldraney/pal-e-services#165, open
File Targets
- [ ] "GoDaddy DNS configuration (manual or via Terraform GoDaddy provider if available)" — ISSUE: Vague. The actual target is
pal-e-platform/terraform/dns.tf. The GoDaddy provider (ldraney/godaddy v0.1.0) IS available and already manages A records for this domain. Should specify the exact file path.
Repo Placement
MISMATCH. Issue specifies
### Repo: ldraney/pal-e-services and is filed on that repo. However:- DNS records are managed in
pal-e-platform/terraform/dns.tf - The GoDaddy provider is configured in
pal-e-platform/terraform/providers.tf - The existing A record for landscaping-assistant.app already lives in
pal-e-platform/terraform/dns.tf(line 12-18) pal-e-serviceshas NO GoDaddy provider and no DNS management capability
The work must be done in
ldraney/pal-e-platform. Either the issue should be moved or the body should acknowledge cross-repo work.Dependencies
- Documented: "Depends on: Stalwart domain/account setup (needs DKIM public key)" = pal-e-services#164 (board item #1736)
- Transitive: #164 depends on pal-e-platform#498 (Stalwart install, board item #1733)
- Chain: #1733 (Stalwart install) → #1736 (domain/account setup) → #1737 (this item)
- Both upstream items in backlog — this item is blocked until DKIM public key is generated
Acceptance Criteria
5 criteria, all verifiable programmatically:
- A record: verifiable via
dig A mail.landscaping-assistant.app - SPF: verifiable via
dig TXT landscaping-assistant.app - DKIM: verifiable via
dig TXT default._domainkey.landscaping-assistant.app - DMARC: verifiable via
dig TXT _dmarc.landscaping-assistant.app - mxtoolbox validation: verifiable via web check (24-48h propagation caveat)
Criteria are clear and testable. Note: DKIM criterion cannot be verified until Stalwart generates the key (dependency).
Blast Radius
- Sibling domain: Issue #166 (board item #1738) is the identical pattern for westsidekingsandqueens.com
- Third domain: palinks.app has an A record in dns.tf (line 4-9) but no SPF/DKIM/DMARC — may need the same treatment
- Single SPF constraint: Issue correctly notes "Only ONE SPF record per domain" — if palinks.app already has an SPF record elsewhere, adding one via Terraform could conflict
Decomposition Assessment
1 file to modify (dns.tf), 4 DNS resources to add, 5 acceptance criteria. Estimated agent work: under 5 minutes once DKIM key is available. No decomposition needed.
Recommendation
[BODY]Fix repo reference:### Reposhould beldraney/pal-e-platform(notpal-e-services)[BODY]Fix file targets: replace vague "GoDaddy DNS configuration" withterraform/dns.tf(append SPF/DKIM/DMARC resources after existing landscaping_assistant_a resource at line 18)[SCOPE]Decide issue placement: move issue to pal-e-platform repo, or document in body that this is cross-repo work targeting pal-e-platform[SCOPE]Create architecture note arch-dns for the DNS component