Skip to content

[Feat] extend architecture-paths defaults to cover SAM / Helm / Serverless Framework IaC #25

@atlas-apex

Description

@atlas-apex

Context

The current architecture-paths defaults in `require-agdr-for-arch-changes.sh` catch Terraform (`*.tf`), Docker Compose, Dockerfiles, and GitHub Actions workflows. Rex's review of PR #24 flagged that several other common IaC shapes are missing from the defaults:

  • Serverless Framework — `serverless.yml` / `serverless.yaml`
  • Helm charts — `Chart.yaml`, `values.yaml`
  • AWS SAM — `template.yaml` / `template.yml`

The question is purely about which patterns are universally common enough to justify being in the framework's defaults (low false-positive risk across any fork), vs which should stay as project-config overrides.

Decision criteria (framework-agnostic)

Pattern Industry prevalence Ambiguity risk Default candidate?
`(^ /)serverless\.ya?ml$` Common (Serverless Framework) Very low — "serverless" as a filename has no non-IaC meaning
`(^ /)Chart\.ya?ml$` Common (Helm) Low — `Chart.yaml` is Helm-specific naming
`(^ /)template\.ya?ml$` Common (SAM, CFN) High — Jekyll, Hugo, Rails generators, many frameworks use `template.yaml` for unrelated things
K8s manifests (`*-deployment.yaml`, etc.) Common (Kubernetes) High — too many naming patterns, no single regex is safe No — project override

Acceptance Criteria

  • Add `(^|/)serverless\.ya?ml$` to default architecture paths (unambiguous)
  • Add `(^|/)Chart\.ya?ml$` to default architecture paths (unambiguous)
  • Do NOT add `template.yaml` or K8s manifests to defaults (too ambiguous). Document as project-config overrides in the hooks README.
  • Update `.claude/hooks/README.md` known-gap callout to list SAM `template.yaml` and K8s manifests as examples of project-config overrides
  • Amend AgDR-0001 post-ship section with the new patterns and rationale
  • Smoke test new patterns against fixtures

Non-goals

  • No consumer-project-specific changes. This is a framework-level decision based on industry prevalence and false-positive rates, not on any specific project's stack.
  • Projects that use SAM `template.yaml` should add `(^|/)template\.ya?ml$` to their own `.architecture_paths` in project-config.json.

Links

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High — material gap or user-impacting

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions