# Forgejo Repository Analysis
**Date:** 2026-02-02

## Summary

Analyzed **42 repositories** across 4 organizations: Cloonar, Paraclub, infrastructure, renovate, and dominik.polakovics.

### Repository Type Breakdown
| Type | Count | Examples |
|------|-------|----------|
| TYPO3 Projects | 7 | ai-image-alt, diabetes-austria, dialog-relations-website, gbv-aktuell, lena-schilling-website, wohnservice-wien-typo3 (×2) |
| Laravel (PHP) | 1 | amz-api |
| Go Projects | 7 | code, eidas.monitor, fit, phishguard, support-invoiced, updns, soundscape-sync |
| Node/Frontend | 3 | amz-frontend, phishguard-frontend, korean-skin.care |
| Hugo Sites | 4 | cloonar-technologies-website, mehr-leistbaren-wohnraum-schaffen, korean-skin.care, website |
| Nix/Config | 2 | nixos, cloonar-assistant |
| Empty/Archived | 9 | bookmap, ghetto-nixos, gitapi, rantem-api, etc. |

---

## Configuration Status Matrix

### Active Repositories (with content)

| Repository | CI | Claude/Agents | Renovate | Tests | Docs |
|------------|:--:|:-------------:|:--------:|:-----:|:----:|
| **TYPO3 Projects** |
| ai-image-alt | ❌ | CLAUDE ✅ | ❌ | ✅ phpunit, Tests/ | ✅ |
| diabetes-austria | drone (loose) | ❌ | ❌ | tests/ | ❌ |
| dialog-relations-website | .gitea | ❌ | ✅ | ❌ | ❌ |
| gbv-aktuell | drone + .gitea | CLAUDE ✅ | ✅ | tests/ | ❌ |
| lena-schilling-website | .gitea | ❌ | ✅ | ❌ | ❌ |
| wohnservice-wien-typo3 | drone + .gitea | CLAUDE + AGENTS ✅ | ✅ | ❌ | ❌ |
| wohnservice-wien-typo3-old | drone | ❌ | ✅ | Tests/ | ❌ |
| **Laravel/PHP** |
| amz-api | drone + .gitea | CLAUDE ✅ | ✅ | ✅ phpunit, tests/ | ❌ |
| ldap2vcard | .gitea | ❌ | ❌ | ❌ | ❌ |
| **Go Projects** |
| code | ❌ | CLAUDE ✅ | ❌ | ❌ | ✅ |
| eidas.monitor | ❌ | AGENTS ✅ | ❌ | ❌ | ✅ |
| fit | .gitea | CLAUDE + AGENTS ✅ | ❌ | ❌ | ✅ |
| phishguard | ❌ | ❌ | ❌ | ❌ | ✅ |
| soundscape-sync | .gitea | ❌ | ❌ | ❌ | ❌ |
| support-invoiced | ❌ | ❌ | ❌ | ❌ | ❌ |
| updns | .github | ❌ | ❌ | ❌ | ❌ |
| ai-mailer | ❌ | CLAUDE ✅ | ❌ | ❌ | ❌ |
| **Frontend/Node** |
| amz-frontend | drone + .gitea | CLAUDE ✅ | ❌ | ❌ | ✅ |
| phishguard-frontend | ❌ | ❌ | ❌ | ❌ | ✅ |
| **Hugo/Static Sites** |
| cloonar-technologies-website | drone + .gitea | ❌ | ❌ | ❌ | ❌ |
| korean-skin.care | .github | ❌ | ❌ | ❌ | ❌ |
| mehr-leistbaren-wohnraum-schaffen | drone | ❌ | ❌ | ❌ | ❌ |
| website | .gitea + .github | CLAUDE + AGENTS ✅ | ❌ | ❌ | ❌ |
| **Infrastructure** |
| nixos | ❌ | CLAUDE + AGENTS ✅ | ❌ | ❌ | ❌ |
| cloonar-assistant | ❌ | ❌ | ❌ | ❌ | ❌ |
| renovate-config | drone + .gitea | ❌ | N/A | ❌ | ❌ |

---

## Key Findings

### 🔴 Critical Issues

1. **TYPO3 Projects Inconsistent CI Setup**
   - gbv-aktuell, wohnservice-wien-typo3: Both drone AND .gitea workflows (redundant?)
   - ai-image-alt: No CI at all despite being a production extension with tests
   - diabetes-austria: Has `drone.yml` in root (should be `.drone.yml`)

2. **Missing Tests in Key Projects**
   - wohnservice-wien-typo3: Main production system has NO tests
   - dialog-relations-website: No tests
   - lena-schilling-website: No tests
   - All Go projects except none have test coverage configured

3. **Renovate Adoption Partial**
   - Only 6/27 active repos have renovate.json
   - Missing on: ai-image-alt, amz-frontend, all Go projects, Hugo sites

### 🟡 Inconsistencies

1. **CI Strategy Mixed**
   - Some repos: Drone only
   - Some repos: Gitea Actions only  
   - Some repos: GitHub Actions (for upstream forks?)
   - Some repos: Both Drone + Gitea (why?)

2. **CLAUDE.md vs AGENTS.md**
   - 11 repos have CLAUDE.md
   - 5 repos have AGENTS.md
   - 3 repos have both (fit, nixos, website, wohnservice-wien-typo3)
   - No standard template observed

3. **Documentation Gaps**
   - Many repos have README.md but no docs/ folder
   - TYPO3 projects especially lack developer documentation

---

## Top 5 Actionable Recommendations

### 1. **Standardize CI for TYPO3 Projects** (High Impact)
Create a shared `.gitea/workflows/typo3-ci.yml` template with:
- PHP linting
- PHPStan static analysis
- PHPUnit tests (if exist)
- TYPO3 extension validation

**Quick win:** Fix diabetes-austria's `drone.yml` → `.drone.yml`

### 2. **Add Renovate to All Active Repos** (Medium Effort, High Value)
Create organization-wide renovate preset in `renovate/renovate-config`:
```json
{
  "extends": ["local>renovate/renovate-config"]
}
```
Then add minimal `renovate.json` to:
- ai-image-alt, amz-frontend, code, eidas.monitor, fit, phishguard, all Hugo sites

### 3. **Add Tests to wohnservice-wien-typo3** (High Priority)
This is a production multi-site system with no tests. Start with:
- Functional tests for critical form handlers
- Unit tests for any custom service classes
- At minimum, smoke tests that pages render

### 4. **Consolidate CI Strategy** (Cleanup)
Pick ONE CI system and standardize:
- **Recommendation:** Gitea Actions (native, no external dependency)
- Migrate all Drone configs to `.gitea/workflows/`
- Remove dual-CI setups

### 5. **Create CLAUDE.md Template** (Developer Experience)
Standardize AI-assisted development across repos:
```markdown
# Project: {name}
## Tech Stack
## Key Files
## Testing
## Common Tasks
```
Prioritize for: eidas.monitor, phishguard, soundscape-sync

---

## Quick Wins (< 30 min each)

| Task | Repo | Effort |
|------|------|--------|
| Rename `drone.yml` → `.drone.yml` | diabetes-austria | 2 min |
| Add `renovate.json` with org preset | ai-image-alt | 5 min |
| Add basic `CLAUDE.md` | eidas.monitor (has AGENTS.md) | 15 min |
| Enable Gitea Actions | ai-image-alt | 10 min |
| Add `renovate.json` | amz-frontend | 5 min |

---

## Empty/Archived Repos (consider cleanup)

These repos have no content or appear abandoned:
- ai.nvim, bookmap, cloonar-assistant-customers, ghetto-nixos
- gitapi, gitea-runner, imperfect-perfect.com, lego-hetzner-bridge
- mail-autoconfig, rantem-api

**Recommendation:** Archive or delete to reduce clutter.

---

## Next Steps

1. Create `.gitea/workflows/` templates in a shared repo
2. Draft organization-wide renovate config
3. Prioritize wohnservice-wien-typo3 test coverage
4. Schedule cleanup of empty repos
