Files
tickets/ISSUES.md
Arcline Dev 28e38916f2 Replace Python CLI with Gitea issue tracker setup
Switch from a custom CLI ticketing tool to Gitea-native issue tracking.
Add issue templates (bug, feature, task) and a curated initial backlog
of 20 tickets covering project foundation, testing, security, docs,
features, and community maintenance.
2026-07-03 21:38:36 -05:00

311 lines
7.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Initial Ticket Backlog
Curated list of tickets to file in Gitea Issues. Copy each block into a new issue using the matching template.
---
## 🏗️ Project Foundation
### 1. Repository bootstrapping
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P0
**Title:** `[P0] [Task] Bootstrap repo structure and tooling`
- [ ] Add `.gitignore`, `.editorconfig`, `CONTRIBUTING.md`
- [ ] Set up branch protection on `main`
- [ ] Configure CI linting (shellcheck, markdownlint, yamllint)
- [ ] Add pre-commit hooks
---
### 2. README & onboarding docs
> **Template:** 📋 Task / Epic
> **Labels:** `documentation`
> **Priority:** P0
**Title:** `[P0] [Task] Write project README and onboarding guide`
- [ ] High-level architecture overview
- [ ] Local development setup instructions
- [ ] Contribution workflow (branching, commits, reviews)
- [ ] Link to this tickets repo
---
### 3. CI pipeline
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P0
**Title:** `[P0] [Task] Set up CI pipeline`
- [ ] Build step (compile / install deps)
- [ ] Lint step (static analysis)
- [ ] Test step (unit + integration)
- [ ] Status badge in README
---
## 🧪 Testing
### 4. Unit-test scaffolding
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P1
**Title:** `[P1] [Task] Scaffold unit-test framework`
- [ ] Choose and wire up a test runner
- [ ] Add a single passing smoke test
- [ ] Document how to run tests locally
---
### 5. Integration tests
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P1
**Title:** `[P1] [Task] Add integration / end-to-end test harness`
- [ ] Spin up a local environment for tests
- [ ] Write 2-3 critical-path integration tests
- [ ] Wire into CI
---
### 6. Test coverage reporting
> **Template:** ✨ Feature Request
> **Labels:** `enhancement`
> **Priority:** P2
**Title:** `[P2] [Feature] Add test coverage reporting`
> **Problem:** No visibility into what code paths have tests.
> **Solution:** Generate coverage reports in CI and block merges below a threshold (e.g. 80%).
---
## 🔒 Security & Quality
### 7. Dependency scanning
> **Template:** ✨ Feature Request
> **Labels:** `enhancement`
> **Priority:** P1
**Title:** `[P1] [Feature] Automated dependency vulnerability scanning`
> **Problem:** Outdated or vulnerable dependencies slip through.
> **Solution:** Add [Dependabot](https://github.com/dependabot) (or Renovate) + a SAST scanner in CI.
---
### 8. Secrets management
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P0
**Title:** `[P0] [Task] Audit and secure secrets management`
- [ ] Verify no secrets are committed to the repo
- [ ] Set up `.env` conventions
- [ ] Document how to inject secrets in dev and prod
---
### 9. Linting & formatting
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P1
**Title:** `[P1] [Task] Enforce consistent linting and formatting`
- [ ] Choose and configure formatters / linters for each language in the stack
- [ ] Add pre-commit hook (or CI check) that blocks violations
- [ ] Format the existing codebase
---
## 📖 Documentation
### 10. API / interface docs
> **Template:** 📋 Task / Epic
> **Labels:** `documentation`
> **Priority:** P1
**Title:** `[P1] [Task] Generate and publish API documentation`
- [ ] Select a doc generator (e.g. OpenAPI, Sphinx, JSDoc)
- [ ] Add docstrings / annotations to public interfaces
- [ ] Publish to a static site or docs host
---
### 11. Architecture Decision Records
> **Template:** ✨ Feature Request
> **Labels:** `enhancement`, `documentation`
> **Priority:** P2
**Title:** `[P2] [Feature] Adopt Architecture Decision Records (ADRs)`
> **Problem:** Design decisions are made in chat and forgotten.
> **Solution:** Maintain a `docs/adr/` directory with lightweight decision records.
---
## 🐛 Placeholder Bugs (for testing the flow)
### 12. Template: Bug Report
> **Template:** 🐛 Bug Report
> **Labels:** `bug`
> **Priority:** P2
**Title:** `[P2] [Bug] Example bug — page title wraps on small viewports`
| Field | Value |
|---|---|
| **Steps** | Resize browser to 320px wide, open the landing page. |
| **Expected** | Title stays on one line or truncates gracefully. |
| **Actual** | Title wraps and overlaps the nav bar. |
---
### 13. Template: Bug Report
> **Template:** 🐛 Bug Report
> **Labels:** `bug`
> **Priority:** P3
**Title:** `[P3] [Bug] Example bug — console warns about missing key prop`
| Field | Value |
|---|---|
| **Steps** | Open dev tools, navigate to the dashboard. |
| **Expected** | No React key warnings. |
| **Actual** | `Warning: Each child in a list should have a unique "key" prop.` |
---
## 🚀 Features
### 14. Health-check endpoint
> **Template:** ✨ Feature Request
> **Labels:** `enhancement`
> **Priority:** P1
**Title:** `[P1] [Feature] Add health-check endpoint`
> **Problem:** No way for load balancers or monitoring to know if the service is alive.
> **Solution:** Expose `GET /health` returning `{"status":"ok"}` and a quick DB ping.
---
### 15. Structured logging
> **Template:** ✨ Feature Request
> **Labels:** `enhancement`
> **Priority:** P1
**Title:** `[P1] [Feature] Switch to structured (JSON) logging`
> **Problem:** Logs are plain-text and hard to query.
> **Solution:** Emit JSON log lines with consistent keys (`level`, `message`, `timestamp`, `trace_id`).
---
### 16. Feature flags
> **Template:** ✨ Feature Request
> **Labels:** `enhancement`
> **Priority:** P2
**Title:** `[P2] [Feature] Introduce feature-flag system`
> **Problem:** Can't safely ship partial or experimental features.
> **Solution:** Use a simple flag provider (env vars initially) to gate features.
---
### 17. Observability / metrics
> **Template:** ✨ Feature Request
> **Labels:** `enhancement`
> **Priority:** P2
**Title:** `[P2] [Feature] Export app metrics for monitoring`
> **Problem:** Can't answer "is the system healthy?" without looking at logs.
> **Solution:** Export request duration, error rate, and DB query metrics.
---
## 🤝 Community & Maintenance
### 18. CONTRIBUTING guide
> **Template:** 📋 Task / Epic
> **Labels:** `documentation`, `good first issue`
> **Priority:** P1
**Title:** `[P1] [Task] Write CONTRIBUTING.md`
- [ ] Code style and conventions
- [ ] PR template and review expectations
- [ ] Local development quick-start
---
### 19. Issue triage process
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P2
**Title:** `[P2] [Task] Define and document the issue triage process`
- [ ] Weekly triage meeting cadence
- [ ] SLA for first response on new issues
- [ ] How issues move from `triage``accepted`
---
### 20. Release checklist
> **Template:** 📋 Task / Epic
> **Labels:** `task`
> **Priority:** P2
**Title:** `[P2] [Task] Create a release checklist**
- [ ] Version bump convention
- [ ] CHANGELOG update step
- [ ] Tagging and release notes
- [ ] Post-deploy smoke-test commands
---
## Filing Instructions
1. Open the **Issues** tab in this repo.
2. Pick the template that matches the ticket above.
3. Copy-paste the title, description, labels, and priority.
4. Submit.
Repeat until the entire backlog has been filed. Triage and assign each ticket in a follow-up pass.