Curva GitHub practice — ABSOLUTE

Consolidation of all Curva-specific rules. Apply on every Curva operation.

1. Account

  • GitHub: eduson510 (verbatim user instruction)
  • Commit author: eduson510 <277812962+eduson510@users.noreply.github.com>
  • Origin: https://github.com/COCONRobotics-Corp/Curva.git (HTTPS via gh credential helper)
  • SSH alias github-curva exists for deploy keys but pushes go via HTTPS+token

2. Branch naming

Format: user/corone-CRV-XX-Task-name

  • Prefix: user/ (always)
  • Owner tag: corone-
  • Jira ID: CRV-XX (must exist in Jira before branching — create one if missing)
  • Slug: kebab-case English, 3–7 words

Example: user/corone-CRV-35-design-system-v2

3. Branch from develop

  • ALWAYS branch from develop, never from main or another feature branch
  • Never edit directly on develop

4. PR allowed, MERGE forbidden

  • ✅ Create PR via gh pr create (open is fine, no auto-merge)
  • ❌ NEVER gh pr merge without explicit user approval
  • ❌ NEVER git push --force to develop / main
  • After PR ready: notify user, wait for explicit “merge it” / “approved”

5. Jira workflow integration

  • Branch name must contain CRV-XX
  • Commit message starts with [CRV-XX]
  • PR title contains CRV-XX
  • After push: mcp__jira__jira_add_comment on CRV-XX with summary + workspace attribution
  • Memory save with same overview, tag curva + CRV-XX

6. Workspace attribution in Jira comment

  • corone.monster workspace → “Requested by Ryo
  • kebahagiaan.corone.monster workspace → “Requested by Julian

7. Working clones

  • Live preview: /var/www/curva.cocon-lab.comhttps://curva.cocon-lab.com
  • Working copy: /tmp/Curva (used for push-from-VPS)
  • Production: AWS EB → https://line-curva.com

8. CI awareness

Curva CI must all pass: basic-checks, quick-checks, full-tests browser, full-tests unit-feature.

Known infrastructure traps:

  • Ondrej PHP PPA dual-key signing (2026-05-01 incident) — Dockerfile must fetch BOTH keys: 71DAEAAB4AD4CAB6 + 4F4EA0AAE5267A6C
  • Tailwind 4 /alpha modifiers silently drop on CSS-var oklch colors → use color-mix wrap in tailwind.config.js

9. Push-from-VPS recipe (using time7676 PAT for org access)

cd /tmp/Curva
git checkout user/corone-CRV-XX-name
TOKEN=$(gh auth token -u time7676 -h github.com)
echo "https://oauth2:$TOKEN@github.com" > /tmp/git-cred
git -c credential.helper="store --file=/tmp/git-cred" push
rm -f /tmp/git-cred

Note: token transport is via time7676 (org access), but commit author stays eduson510 (per Curva account rule).

Cross-refs