Skip to main content

Methodology and Git

Wits World organises work in sprints, with an issue backlog, regular coordination, review of the delivered work, and a retrospective. Git branches and pull requests connect that planning to reviewed changes.

Why this approach​

The semester has a short delivery window and several parallel workstreams: interface, API, database, and quality. Small increments let the team integrate these streams early and adjust priorities after feedback. Delivering a complete player journey also reveals problems that isolated components miss.

The working records​

  • Product backlog: Gitea issues for features, defects, research, and release work, ordered by priority.
  • Sprint backlog: The issues selected for a sprint, their owners, and the plan for achieving its goal.
  • Increment: The integrated improvement that meets the agreed acceptance criteria and completion rules.

From planning to delivery​

Each sprint turns selected issues into a checked improvement. Feedback and process lessons shape the next plan.

Issues record progress, blockers, and agreed scope changes throughout the sprint. Contributors integrate their work and check the complete journey. Unfinished work and remaining acceptance checks carry forward into the next plan.

Responsibilities and cadence​

The team shares planning, delivery, and process improvement. Issue owners take responsibility for individual changes; reviewers assess them independently; stakeholders provide product feedback.

Coordination roleLeadResponsibility and handoff
Frontend and player/Author UXKevin EbrahimAccessible workflows, authoritative-state presentation and browser/participant checks.
Backend and securityTyron Van TonderAuthentication/authorization, HTTP/realtime services, deadlines, retries and service integration.
Database and cross-stack supportUzair MahomedPersistence, migrations, spatial/rating/trade integrity, contracts and targeted frontend/backend support.
Quality, content and delivery supportCaleb PerumalsamyContent review, test/release evidence, operational checks and extra integration work.

These roles guide coordination across the team. Individual issue ownership and peer review are recorded on the work item and PR. Contributors work together on integration and changes that span multiple areas.

The team reviews progress and dependencies weekly, with shorter coordination as needed during the week. These check-ins identify blockers, agree the next actions, and arrange handoffs. Planning, review, and retrospective provide the larger checkpoints around each sprint.

The delivery roadmap shows how successive sprint goals moved from foundations to gameplay, Advanced features, and final polish.

Git workflow​

Changes reach main through a focused branch, automated checks, and peer review. The issue describes the intended outcome; commits record the changes; the pull request brings the implementation and verification together.

CI and peer review must both support the latest revision before it is merged. The steps below explain what to do at each stage.

1. Agree the work and create a branch​

Read the issue's scope, comments, dependencies, and acceptance criteria before starting. Confirm who owns the change and which decisions need input from another contributor. Record the working branch and verification approach on the issue so the rest of the team can follow progress.

Create a short-lived branch from the latest main. Use a name that identifies the purpose, such as feat/campus-map, fix/geolocation-denied-state, or docs/player-guide. Keep development on that branch and bring in changes from main when needed to resolve integration problems.

2. Implement and check the change locally​

Keep the change within the agreed scope. Update relevant tests, contracts, documentation, and operating instructions with the implementation. A new problem outside that scope becomes a linked follow-up issue.

The shared local checks run from the repository root:

npm run format:check
npm run lint
npm run type-check
npm test
npm run build

Formatting, linting, and type checks catch different classes of mistakes; tests exercise behaviour, and builds check that the applications can be packaged. Database and browser changes also need the relevant integration or journey checks from Test suites. The normal npm test command does not enable every database or browser suite.

Inspect the diff before committing. Stage the intended files, check the staged diff, and leave unrelated changes out of the commit. Credentials, private configuration, and participant data stay outside version control.

3. Write clear commits​

A commit should represent one coherent change. Its subject starts with an approved prefix and a concrete description:

PrefixUseExample
[feat]Add capability.[feat] add event eligibility display
[fix]Correct a defect.[fix] handle denied geolocation permission
[test]Add or improve verification.[test] cover stale location recovery
[docs]Update documentation.[docs] explain the player journey
[perf]Improve performance.[perf] reduce Battles landing requests
[ci]Update CI or release workflows.[ci] enforce API-first Battles releases
[refactor]Restructure code while preserving behaviour.[refactor] isolate event status presentation
[chore]Maintain tooling or project configuration.[chore] configure frontend quality checks

Use a specific verb and name the affected behaviour. A subject such as [fix] preserve the deck draft after a failed save is easier to understand later than [fix] updates. Add a body when the reason, tradeoff, or operational impact needs explanation. Issue references connect the change to its work item.

Every commit containing AI-generated code includes an accurate Assisted-by trailer naming each tool and model that materially contributed. For example:

[fix] preserve the deck draft after a failed save

Keep the edited lineup available so the player can retry the save.
Relates to #<issue>

Assisted-by: <tool>[<model>]

Replace the placeholders with the actual issue, tool, and model. The AI-use guide explains document and PR disclosure alongside commit attribution.

4. Open a pull request to main​

Push the branch and open a PR targeting main. Complete the repository template with the problem, approach, linked issue, verification results, and relevant accessibility, documentation, API, database, and AI impacts. Include responsive screenshots for interface changes and identify manual checks still required.

Use Closes #<issue> when the PR satisfies the whole issue. Partial work uses Relates to #<issue> or Partially implements #<issue> and leaves the remaining criteria visible. Keep the PR focused enough for a teammate to understand and review the entire change.

5. Check the CI results​

Gitea Actions runs the pull-request validation workflow for PRs targeting main. It checks five categories:

CategoryWhat it checks
Static analysisPrettier formatting, ESLint, and TypeScript checks.
Tests and coverageWeb, API including PostGIS paths, documentation, and shared-package tests and coverage.
Database validationMigrations, persistence, and PostgreSQL/Redis gameplay coordination on isolated services.
Browser validationThe Basic journey and selected Explore, Author, and Account regressions.
BuildsProduction Web, API, and documentation builds.

The final Repository and application validation job succeeds only when all five categories succeed. Failed, cancelled, or skipped categories cannot produce a successful aggregate result.

Check the results for the latest PR revision. If a job fails, inspect its logs, correct the problem, rerun the relevant local checks, and push the correction. New commits need their own successful validation. Selected browser gates do not cover every journey; additional checks follow the change's scope. The CI guide records the full selections.

6. Obtain peer review​

A teammate reviews the change against the issue's acceptance criteria and the PR diff. Review covers behaviour, failure handling, test usefulness, maintainability, accessibility, security, and any contract or schema effects. For interface changes, the reviewer also considers the supplied interaction and responsive evidence.

The author addresses requested changes on the same branch and records the correction and verification. Unclear feedback is discussed before approval. Reviewers check the updated diff and CI results before approving the latest revision. Recorded branch-protection settings require one approval and dismiss stale approvals after new changes; CI status checks still need explicit review because the recorded setup does not enforce them at the merge button.

7. Check readiness and merge to main​

Before merging, the reviewer or authorised merger confirms:

  • the PR targets main and has no unresolved merge conflicts;
  • the PR's agreed scope and acceptance criteria are satisfied, and any unmet criteria for the wider issue remain explicitly tracked;
  • all five CI categories and the aggregate validation job passed for the latest revision;
  • peer approval covers that revision and requested changes are resolved; and
  • documentation, contract, schema, operational, and AI disclosures are complete.

If integration with a newer main changes the branch, repeat the affected checks and obtain review of the updated result. Contributors do not merge their own pull requests under the agreed workflow.

Merge through Gitea using the repository's merge-commit workflow. This retains the branch's commits and its PR relationship in main history. Afterward, confirm the merge is present on main, reconcile the issue and board state, and keep any remaining acceptance work linked. The completed branch can then be removed.

The main workflow validates the merged revision and deploys affected applications. Documentation has its own publishing workflow. Check the relevant main-branch results and deployment health checks before reporting the change as released. Deployment jobs verify that their revision is still current main before changing production, so an older run may be superseded. The CI guide explains that release sequence.

Quality and completion​

Work is complete when its acceptance criteria, relevant checks, review, documentation, and required manual evidence are satisfied and the change is merged. If a PR completes only part of an issue, the remaining criteria stay visible in the tracker. Work and bug tracking explains that handoff.

Sprint records​

The sprint reports record planning, coordination, delivered work, reviews, and improvements across the project. They link the workflow to issues, pull requests, and verification results.

The issue #9 and PR #28 example shows the workflow in screenshots: assigned work, implementation checks, requested correction, approval, and merge.

AI declaration: Prepared and edited with assistance from Codex[GPT-5], ChatGPT-Web[GPT-5.6 Sol], Codex-CLI[GPT-6], and Codex[GPT-6]. The latest revision used Codex[GPT-6] for rubric comparison, source review, prose editing, and workflow diagrams.