# Project plan — storefront

Evidence date: 2026-10-02.

Source repository: `git@bitbucket.org:overdrive/storefront.git`.

Inspected revision: `main` at `1f3fb2c` (2025-02-06, Wessels, "Update gitignore file"). That commit is `origin/HEAD`. The remote has no other branches and no tags.

The scan-host path `~/projects/sonar_scan/repos/storefront` was not on this machine. The tree below was read from that git revision.

This plan describes what the repository contains. It does not decide what the product should become.

No `silicon_ark/storefront/` directory existed before this file. A search of Silicon Ark Markdown for `storefront` found no earlier mention of this slug.

## Product

There is no application, README, or product statement in git. The only tracked file is `.gitignore`.

History has two commits, both by `wessels@overdrive.co.za`:

| Commit | Date | Author name on the commit | What it did |
|---|---|---|---|
| `d1ecaaf` | 2025-02-04 | Wessels de Wet | Initial commit. Added a 50-line `.gitignore` whose header says the patterns are examples to customize and links to Atlassian's gitignore tutorial |
| `1f3fb2c` | 2025-02-06 | Wessels | Replaced that file with a 141-line ignore list. Message: `Update gitignore file` |

The replacement file uses the section layout of the CodeIgniter 4 framework `.gitignore` (compared with the file published at tag `v4.0.0-rc.3`) and adds paths that also appear in `wca_dms`. See [Relationship to wca_dms](#relationship-to-wca_dms). It does not contain application code, so it is not a storefront, a shop, or an order system.

The names in evidence are the Bitbucket slug `storefront` and the scan-host directory of the same name. A slug is not a requirements statement.

What the product is, who it is for, and whether any code was meant to be pushed later are **Unknown / Requires Confirmation**.

## Branch reality

| Line | Tip | Date | What it is |
|---|---|---|---|
| `main` (default; `origin/HEAD`) | `1f3fb2c` | 2025-02-06 | Only branch. Two commits |

`git rev-list --all --count` is 2. `git tag -l` printed nothing. `git ls-tree -r HEAD` lists `.gitignore` only.

The onboarding issue (OVER-292, captured 2026-09-28) recorded the same tip: `1f3fb2c`, 2025-02-06, "Update gitignore file", branch `main`. This clone agrees.

## Objectives

No project plan, issue list, or README exists in the repository. No objective can be inferred from application code, because there is no application code.

The second commit shows that someone replaced the starter ignore list with a longer, framework-shaped list. That is a repository-hygiene change. It is not a written objective.

**Unknown / Requires Confirmation** whether this repository was created as a placeholder for a future storefront, as a copy of an ignore file from another project, or as a repository that was never filled in.

## Scope

### In scope of `main`

1. A Git repository on Bitbucket whose only tracked file is `.gitignore`.
2. The ignore patterns in that file at `1f3fb2c`. They name CodeIgniter `writable/` paths, Composer `vendor/`, PHPUnit output, IDE files, and three paths that are not in the upstream CodeIgniter 4.0.0-rc.3 list: `writable/temp_export/`, `writable/company_orders_xml/`, and `writable/company_invoices_xml/`. A trailing comment labels `uploads/`, `public/log.txt`, and `public/errorLogs/` as project-specific. Those paths are not present in the tree. See `technical-documentation.md`.

### Out of scope / not in this repository

- A storefront, catalogue, cart, checkout, account, or order application.
- Any file other than `.gitignore`.
- The CodeIgniter application that the ignore patterns anticipate (`app/`, `public/`, `spark`, `composer.json`). None of those paths are in git.
- The behaviour of `wca_dms` (Admin Overdrive). That repository is separate. Its order and invoice rules are not rules of this slug. See [Relationship to wca_dms](#relationship-to-wca_dms).
- The contents of `sonar-project.properties` and `sonarqube_scan.bat`. Those names were reported by the 2026-09-28 scan. They are not in git, `.gitignore` does not match those names, and the scan-host path could not be opened here.

## System shape

No system is implemented.

```text
bitbucket.org/overdrive/storefront
└── .gitignore    (141 lines at 1f3fb2c; was the 50-line starter list at d1ecaaf)
```

There is no frontend, backend, database, API, worker, or deployment manifest in the remote.

## Major components

None. **Implemented** application-component count is zero.

The tracked `.gitignore` is repository metadata, not a product component.

## Milestones visible in git

| When | Commit | What landed |
|---|---|---|
| 2025-02-04 | `d1ecaaf` | Initial commit: Bitbucket example `.gitignore` only |
| 2025-02-06 | `1f3fb2c` | Replaced `.gitignore` with the CodeIgniter-shaped list |

No later milestone exists in git. The tip is unchanged from the date OVER-292 recorded.

## Implementation plan

There is no forward plan in the repository. Current status: **two commits, ignore file only, no application**.

Whether anyone intends to push code here is **Unknown / Requires Confirmation**.

## Known dependencies

None declared. There is no `composer.json`, `package.json`, `requirements.txt`, `Dockerfile`, `bitbucket-pipelines.yml`, or lockfile.

`.gitignore` names `vendor/` and `composer.lock`. Those paths are not in the tree. Listing them in an ignore file is not a dependency declaration. CodeIgniter, PHP, and Composer are **not installed** by this repository.

## Relationship to wca_dms

On 2026-10-02 the `.gitignore` at `wca_dms` `main` `9f51c26` was fetched and diffed against storefront `1f3fb2c`. The files match except for one pattern that exists only in `wca_dms`:

```text
writable/reports/*
```

Provenance of the diff: **Implemented** as a file comparison on that date.

`silicon_ark/wca_dms/` documents a CodeIgniter 4 application branded Admin Overdrive. That application writes order XML under `writable/company_orders_xml/`. The same directory name is an ignore pattern in this repository. Storefront does not contain the controllers, models, or views that perform that write.

Chronology blocks one reading of the copy. Storefront's ignore file was committed on 2025-02-06. The `wca_dms` history documented in Silicon Ark starts on 2025-09-01 (`57b2fe8`, "Initial commit"). This file cannot have been copied from the `wca_dms` Git repository after that repository's first commit, because this commit is earlier. A shared older working tree remains possible. `wca_dms` project notes already record that its own history looks like a "Core checkout" of a larger Admin Overdrive codebase. Whether storefront's ignore file came from that older tree is **Inferred** from the near-match, and **Unknown / Requires Confirmation**.

The shared author string is weak. Storefront commits use `wessels@overdrive.co.za`. `wca_dms` comments mention a person named Wessels as an alert recipient. That is not the same evidence as a shared commit author, and it does not make the products one system.

## Discrepancy with the onboarding scan

OVER-292 lists this top-level structure for the scan-host path:

```text
sonar-project.properties
sonarqube_scan.bat
```

Those paths are not in the Bitbucket repository at `1f3fb2c`, and they are not in either commit's diff. `.gitignore` does not ignore those filenames, so Git would have shown them if they had been tracked. The same two filenames appear in the onboarding notes for other repositories whose git trees do not contain them (for example `wiki`, `website`, and `tournaments.footprintapp.net`). Whether they are untracked SonarQube wrapper files added on the scan host, rather than project source, is **Inferred** from that repeated pattern. It is **Unknown / Requires Confirmation** until someone opens the scan-host directory and reads the files.

The scan also did not list `.gitignore`, which is the only file in git.

## Human confirmation

- Is this repository supposed to hold a product, or should it stay as the February 2025 ignore-file commits?
- If a product was intended, what is its purpose, and where does the code live if not here?
- Was the 2025-02-06 `.gitignore` taken from the Admin Overdrive tree that later became `wca_dms`, from another copy of that template, or written for this slug?
- Should `writable/company_orders_xml/`, `writable/company_invoices_xml/`, and `writable/temp_export/` be treated as intended future paths, or as leftover patterns from the copied file?
- Why `wca_dms` ignores `writable/reports/*` and this file does not.
- Whether the two Sonar filenames on the scan host are project files, and what they contain.
