6.7 KiB
Yurii's Gitea CLI Workflow
Tool: tea — Gitea command line interface
Installed: /usr/local/bin/tea
Gitea Server: https://git.clavitor.ai
Repository Structure: Monorepo (johan/clavitor) — all issues go here, not sub-repos
⚠️ Important: Monorepo Pattern
Clavitor uses a monorepo — one repository contains all subprojects:
clavis-vault/→ Issues injohan/clavitorclavis-telemetry/→ Issues injohan/clavitorclavitor.ai/→ Issues injohan/clavitor
Never create issues in johan/clavis-* repos — those are mirrors only.
Always use: --repo johan/clavitor
Setup (One-time)
# 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)
# 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)
# ⚠️ IMPORTANT: Use --repo johan/clavitor (monorepo)
# NOT --repo johan/clavis-telemetry (that repo has no issues enabled)
# Issue #1: Missing error codes
tea issues create --repo johan/clavitor \
--title "Yurii: Missing unique error codes (Cardinal Rule #1)" \
--description "$(cat <<'EOF'
## Violation
File: clavis/clavis-telemetry/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
)" \
--assignees 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
# List all issues created by Yurii
tea issues list --repo johan/clavis-telemetry --assignee hans
# Check status
tea issues view <issue-number>
Step 4: Review Engineer PRs (After Hans Fixes)
# List open PRs
tea pulls list --repo johan/clavis-telemetry
# Review a specific PR
tea pulls view <pr-number>
# Comment on PR (requesting changes)
tea pulls comment <pr-number> --message "✓ Fixes Issue #2. ✗ Missing test coverage. Add test before merge."
# Approve PR (when ready)
tea pulls comment <pr-number> --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.
Known CLI Limitations & Workarounds
1. Labels Don't Show in List View (Bug)
Problem: tea issues list shows empty LABELS column even when labels exist.
Workaround: View individual issue to see labels:
tea issues view <number> # Shows labels properly
Status: Gitea CLI bug — labels ARE saved, just not displayed in list.
2. User Discovery is Hard
Problem: Can't find valid usernames for --assignees.
Workaround: Use these known agent usernames:
sarah, charles, maria, james, xiao, emma, arthur, victoria,
luna, thomas, hugo, hans, george, shakib, yurii
Or check web UI: https://git.clavitor.ai/johan/clavitor/settings/collaboration
3. "No gitea login detected" Noise
Problem: Every command shows: NOTE: no gitea login detected, falling back to login 'clavitor'
Workaround: Ignore it — it's just noise, commands still work.
4. --assignees Flag (Plural, Not --assignee)
Correct: --assignees hans
Incorrect: --assignee hans (this fails silently)
Quick Reference
# Create issue (use --assignees, not --assignee)
tea issues create --repo johan/clavitor \
--title "Title" \
--description "Body" \
--assignees hans # ← plural!
# List issues (labels won't show — use view for details)
tea issues list --repo johan/clavitor
# View specific (shows labels correctly)
tea issues view <number>
# List PRs
tea pulls list --repo johan/clavitor
# Comment
tea issues comment <number> --message "text"
tea pulls comment <number> --message "text"
# List labels (if you need to check)
curl -s https://git.clavitor.ai/api/v1/repos/johan/clavitor/labels | grep name
# Help
tea --help
tea issues --help
tea pulls --help
Example: Complete Yurii Session
# 1. Audit
cd /home/johan/dev/clavitor/clavis/clavis-telemetry
grep -n "return nil" clavis/clavis-telemetry/main.go
# Found: line 187 silent error
# 2. Create issue (NOTE: use johan/clavitor, NOT clavis-telemetry)
tea issues create --repo johan/clavitor \
--title "CRITICAL: Silent error in telemetry at main.go:187" \
--description "$(cat <<'EOF'
## Violation
File: clavis/clavis-telemetry/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
EOF
)" \
--assignees hans
# 3. Done. Hans gets notification, creates fix PR.
# 4. Later: Review Hans' PR
tea pulls list --repo johan/clavitor
tea pulls view 5
tea pulls comment 5 --message "✓ Fixes Issue #2. Approved."
---
**Yurii's output:** Issues in Gitea
**Hans' input:** Issues assigned to him
**Result:** Clean separation of audit and implementation