# Business rules — email_campaigner

Evidence date: 2026-10-15. Source: `git@bitbucket.org:overdrive/email_campaigner.git`, `main` at `1f31d32`.

Provenance labels: **Documented**, **Implemented**, **Inferred**, **Planned**, **Unknown**.

No business-rules document existed in the repository or in `silicon_ark/email_campaigner/` before this file.

## Rules found in the repository

None that govern a product. The only tracked file is `.gitignore`. An ignore list does not enforce validation, consent, frequency caps, permissions, or send gates.

No rule below is inferred from the repository name. A name is not a domain rule.

## Identity and access

No login, role, or permission check exists in the tree.

The commit metadata records one email, `jaco@overdrive.co.za`, on the only commit (2026-04-15). The display name is Jaco Brits. Author and committer are the same. That is history, not an access-control rule.

**Unknown / Requires Confirmation** who is allowed to push to the Bitbucket repository. Hosting permissions were not inspected. The Bitbucket API client returned HTTP 401, so project settings were not read. A clone of `main` succeeded on 2026-10-15.

## Domain behaviour

No domain object is defined. There is no campaign, audience, template, message, subscriber, suppression, bounce, or unsubscribe entity in this repository.

Rules written for email features in other repositories are not rules of this one. A search of this remote found no reference to another project, and a search of Silicon Ark Markdown found no earlier reference to slug `email_campaigner`.

## Validation

No validator, schema, form rule, or argument parser exists in this repository.

`.gitignore` causes Git to skip matching untracked paths. That is a version-control filter. The patterns are listed in `technical-documentation.md`. They are not input validation for a product.

The file's own header says the patterns are examples and should be customized. Provenance: **Documented** in `.gitignore`. That sentence is an instruction to the reader of the template. It is not a product validation rule, and the file was not customized after the initial commit.

## Workflows

No status machine, approval step, retry, schedule, or send job is defined.

## Explicit non-rules

The following were not adopted, because the evidence does not support them:

- "The product sends email campaigns." Only the slug says email_campaigner. **Not a rule.**
- "Recipients must opt in, or a campaign has a schedule, cap, or template." No subscriber, consent, or template field exists. **Not a rule.**
- "The stack is Node, Java, Python, or Maven." Those names appear as example ignore groups in one starter file. **Not a rule.**
- "SonarQube quality gates apply." A filename was reported on a scan host and was not read. **Not a rule.**
- Any threshold, fee, eligibility check, or permission matrix. **Not present.**

## Human confirmation

- Whether any business rule for this slug is kept outside the repository.
- Whether the example ignore list was left unchanged on purpose.
