From 3e9b82af4d62322c552bc3c075ded017acafc4e8 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 9 Apr 2026 00:44:14 -0400 Subject: [PATCH] Add Yurii's Gitea CLI workflow documentation - tea CLI installed (/usr/local/bin/tea) - Login with admin token - Issue creation commands for audits - Review workflow for engineer PRs - Explicit can/cannot do rules - Complete example session --- docs/YURII-GITEA-CLI.md | 194 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 docs/YURII-GITEA-CLI.md diff --git a/docs/YURII-GITEA-CLI.md b/docs/YURII-GITEA-CLI.md new file mode 100644 index 0000000..8352207 --- /dev/null +++ b/docs/YURII-GITEA-CLI.md @@ -0,0 +1,194 @@ +# Yurii's Gitea CLI Workflow + +**Tool:** `tea` — Gitea command line interface +**Installed:** `/usr/local/bin/tea` +**Gitea Server:** https://git.clavitor.ai + +--- + +## Setup (One-time) + +```bash +# Login to Gitea server +tea login add --name clavitor --url https://git.clavitor.ai --token 775a12730a65cbaf1673da048b7d01859b8b58e0 + +# Verify +tea whoami +# Should show: johan (admin) +``` + +--- + +## Yurii's Daily Workflow + +### Step 1: Audit Code (Read-only) + +```bash +# Clone repo for analysis (local copy, no changes) +cd /tmp +tea repos clone johan/clavis-telemetry + +# Or analyze existing checkout +cd /home/johan/dev/clavitor/clavis/clavis-telemetry + +# Run audit per CLAVITOR-AGENT-HANDBOOK.md Section II +grep -rn "return nil" --include="*.go" | head -20 +grep -rn "catch.*{" --include="*.js" | head -10 +``` + +### Step 2: Create Issues (Never Code) + +```bash +# Issue #1: Missing error codes +tea issues create --repo johan/clavis-telemetry \ + --title "Yurii: Missing unique error codes (Cardinal Rule #1)" \ + --description "$(cat <<'EOF' +## Violation +File: main.go:45 +Current: Generic error without ERR-XXXXX code + +## Required +Per Section II: All errors must have unique codes + +## Assignment +- Fix by: Hans +- Priority: Medium +EOF +)" \ + --assignee hans \ + --label "security,violation" + +# Issue #2: Silent DB errors (CRITICAL) +tea issues create --repo johan/clavis-telemetry \ + --title "CRITICAL: Silent database error in updateSpan()" \ + --description "$(cat <<'EOF' +## Violation +File: main.go:187 +Current: `if err != nil { return nil }` — silent failure + +## Threat +Operational blindness during incidents. No forensic trail. + +## Required +Per Cardinal Rule #1: Return explicit error with ERR-50004 + +## Assignment +- Fix by: Hans +- Priority: Critical +- Review by: Yurii (after fix) +EOF +)" \ + --assignee hans \ + --label "security,critical,cardinal-rule-1" + +# Issue #3: Kuma silent failure (CRITICAL) +tea issues create --repo johan/clavis-telemetry \ + --title "CRITICAL: Silent failure in Kuma push" \ + --description "Violates Cardinal Rule #1. See kuma.go line 34." \ + --assignee hans \ + --label "security,critical" + +# Issue #4: Tarpit flush error +tea issues create --repo johan/clavis-telemetry \ + --title "Yurii: Unchecked flush error in tarpit" \ + --description "main.go unchecked error. Add handling or explicit ignore with comment." \ + --assignee hans \ + --label "violation" +``` + +### Step 3: Track Issues + +```bash +# List all issues created by Yurii +tea issues list --repo johan/clavis-telemetry --assignee hans + +# Check status +tea issues view +``` + +### Step 4: Review Engineer PRs (After Hans Fixes) + +```bash +# List open PRs +tea pulls list --repo johan/clavis-telemetry + +# Review a specific PR +tea pulls view + +# Comment on PR (requesting changes) +tea pulls comment --message "✓ Fixes Issue #2. ✗ Missing test coverage. Add test before merge." + +# Approve PR (when ready) +tea pulls comment --message "✓ All issues addressed. Approved." +``` + +--- + +## Yurii's Rules (From Handbook) + +| Can Do | Cannot Do | +|--------|-----------| +| `tea issues create` | `tea pulls create` (no code) | +| `tea pulls comment` | `tea pushes` (no commits) | +| `tea repos clone` (read) | `tea merges` (no merging) | +| `grep, audit, analyze` | SSH to prod to fix | + +**Violation = Process Failure:** If Yurii pushes code instead of creating Issue → restart, assign to engineer. + +--- + +## Quick Reference + +```bash +# Create issue +tea issues create --repo owner/repo --title "Title" --description "Body" --assignee username + +# List issues +tea issues list --repo owner/repo + +# List PRs +tea pulls list --repo owner/repo + +# View specific +tea issues view +tea pulls view + +# Comment +tea issues comment --message "text" +tea pulls comment --message "text" + +# Help +tea --help +tea issues --help +tea pulls --help +``` + +--- + +## Example: Complete Yurii Session + +```bash +# 1. Audit +cd /home/johan/dev/clavitor/clavis/clavis-telemetry +grep -n "return nil" main.go +# Found: line 187 silent error + +# 2. Create issue +tea issues create --repo johan/clavis-telemetry \ + --title "CRITICAL: Silent error at main.go:187" \ + --description "Violates Cardinal Rule #1. Must return ERR-50004." \ + --assignee hans + +# 3. Done. Hans gets notification, creates fix PR. + +# 4. Later: Review Hans' PR +tea pulls list --repo johan/clavis-telemetry +tea pulls view 5 +tea pulls comment 5 --message "Approved. Fixes issue." +``` + +--- + +**Yurii's output:** Issues in Gitea +**Hans' input:** Issues assigned to him +**Result:** Clean separation of audit and implementation