# PRD — email_campaigner

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

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

No formal PRD existed in the repository or in `silicon_ark/email_campaigner/` before this file. The only tracked file is `.gitignore`. The statements below record that absence. They are not a product decision.

## Product purpose

**Unknown / Requires Confirmation.**

The repository slug is `email_campaigner`. No README, page title, route, or comment defines a purpose. The `.gitignore` describes paths Git should skip. It does not describe a campaign, audience, template, send, bounce, or unsubscribe workflow.

**Implemented:** a Bitbucket Git repository with one commit. `1f31d32` (2026-04-15, Jaco Brits, "Initial commit") adds a 50-line example `.gitignore`. The tip tree is that file only. The commit object has no parent.

What a future product should do is out of scope for this document.

## Users and roles

No user, role, permission, or account model is present.

| Role | Evidence | Provenance |
|---|---|---|
| Repository author | The only commit uses `jaco@overdrive.co.za`. The name on the commit is Jaco Brits. Author and committer match | **Implemented** as git metadata, not an application role |
| Application user | No source file names a person, role, or login | **Unknown** |
| Campaign operator, recipient, or administrator | Not named | **Unknown** |

Who would use a product in this repository, if one is added later, is **Unknown / Requires Confirmation**.

## Major workflows

No application workflow is implemented. There is no trigger, input, validation, output, or error path in product code.

The only observed repository operation, besides reading the tree, is the initial commit:

1. Trigger: initial commit on 2026-04-15.
   - Input: `.gitignore` (50 lines). The header says the patterns are examples and links to `https://www.atlassian.com/git/tutorials/saving-changes/gitignore`.
   - Behaviour: the file is the entire tree. No other path is added.
   - Output: `main` at `1f31d32`, which is also `origin/HEAD`.
   - Provenance: **Implemented** as git history. This is repository state, not application behaviour.

A clone of `https://bitbucket.org/overdrive/email_campaigner.git` on 2026-10-15 checked out `main` and matched that tip. `git status -sb` reported `## main...origin/main`. `git fetch --unshallow` did not add commits. Provenance: **Implemented** as remote state on that date.

## Integrations

No integration is declared or called from this repository.

| System | Evidence | Provenance |
|---|---|---|
| Bitbucket Git hosting | Remote URL on `origin`; one commit on `main` | **Implemented** |
| SonarQube | Filename `sonar-project.properties` listed by OVER-108 for the scan-host path. File not in git and not read. That name is not an ignore pattern | **Unknown** |
| Node, Java, Python, Maven | Their artifact paths appear together in the example ignore list. No manifest or source file | **Inferred** as a starter template, not a chosen stack. Not an integration |
| Any mail provider, list host, queue, or storage service | Not present. The ignore file does not name SMTP, IMAP, or a campaign API | **Unknown** |

Other Silicon Ark projects document email as a feature of those products (for example contact-form mail, login codes, or scan-report mail). None of those documents name slug `email_campaigner`. They are not integrations of this repository.

## Constraints

- This PRD must not treat the repository name as a specification of an email campaign product.
- Ignore patterns must not be read as implemented features. A pattern such as `node_modules/` means Git would skip that directory. It does not mean the directory exists or that a Node application is built.
- Requirements cannot be tested against this repository until code or a written spec exists.
- The scan-host working tree was not available. The filename reported there is not a confirmed file content.

## Requirements discovered from the implementation

No functional requirements were discovered. There is no command, controller, route, screen, schema, test, or application config to cite.

| ID | Statement | Provenance |
|---|---|---|
| — | No requirement text exists in the repository | **Unknown** |

Nothing is marked **Planned**. A plan would need a document or an issue inside the repository, and there is neither.

## Data the repository manages

None. There is no schema, fixture, subscriber list, template, or sample message.

## Out of scope for this document

- Defining campaign, audience, template, scheduling, or delivery behaviour because the slug contains "email_campaigner".
- Importing email behaviour from other Silicon Ark projects as requirements of this slug.
- Contents of the Sonar filename on the scan host.

## Human confirmation

- Product purpose, users, and workflows, if this repository is meant to hold a product.
- Whether any requirement lives in another system (tracker, wiki, or another repo) that was not linked from this remote.
- Whether the example ignore patterns were left as the Bitbucket starter, or were meant to hint at a stack.
