- README: replace zesticai-non-prod vault name and bigbox hostname with
generic placeholders; replace hardcoded Tailscale IP with descriptive text
- deploy-to-bigbox.sh: make BIGBOX and TAILSCALE_IP configurable via env
vars (auto-detect via tailscale ip -4); replace op_zesticai_non_prod.sh
with op_credentials.sh
- Caddyfile: remove bigbox hostname from comment
- RESEARCH doc: remove hardcoded S3 access key and secret key values from
the secrets table; replace with generic op:// reference format
- docker-compose_kitchen_sink.yml: replace hardcoded S3 credentials with
CHANGE_ME placeholders
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove sync-to-gitea.yml and mirror-check.yml GitHub Actions workflows
- Set up Gitea as pull mirror from GitHub (1h interval, via POST /repos/migrate)
- Rewrite MIRRORING-GUIDE.md with pull mirror setup and gotchas
- Update HANDOVER.md and lessons-learned.md with new approach
Gitea now automatically pulls from GitHub. No Actions, no dual-push,
no billing dependency. Push to GitHub only; Gitea syncs within 1 hour.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Session 2 additions: two comparison articles written, repo published to
both GitHub and Gitea, GitHub Actions billing issue documented.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Two complementary articles:
- ARTICLE-agent-task-management.md: CTO voice, ~2800 words, narrative style
- ARTICLE-agent-task-consolidation.md: Technical reference, ~6000 words, full configs
Both cover: beads (Go) vs br (Rust) vs Agent Mail vs Gitea with 12 labels,
1Password integration, SeaweedFS S3 storage, Docker Compose deployment,
and the three API gotchas (label swap, assignees, dependencies).
All commands verified against live Gitea 1.22.6.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update HANDOVER.md with AI agent skill section, API gotchas, session log
- Add lessons-learned.md with Gitea API findings and debugging insights
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add test-gitea-skill.sh with 10 tests (26 assertions) against live Gitea
- Fix: API POST /labels only appends, does not enforce scoped exclusivity
- Fix: Use PUT with label swap pattern to atomically replace workflow labels
- Fix: Use PATCH /issues/{index} for assignees (POST /assignees not in 1.22.6)
- All 26 assertions pass against live Gitea 1.22.6
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrites SKILL.md with patterns verified against live Gitea 1.22.6:
- Milestones as project containers (project board API does not exist)
- Scoped workflow labels with mutual exclusivity
- Issue dependencies using IssueMeta format
- 1Password token retrieval via op read
- Default repo terraphim/agent-tasks with env var overrides
Adds setup-labels.sh for idempotent repo and label creation.
Includes research and design documents from disciplined development.
Adds pre-commit config adapted for infrastructure project.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This skill enables AI agents to interact with the Gitea instance at
git.terraphim.cloud for administrative and automation tasks.
Features:
- User management via admin CLI and API
- Organization CRUD operations
- Repository creation, deletion, and management
- Issue tracking: create, update, close, add labels/comments
- Pull request operations: list, get, merge
- Project board management
- Label and release management
Usage:
- REST API for most operations (preferred for automation)
- Admin CLI for user creation (requires container access)
- Includes helper bash functions for common operations
The skill follows the same structure as other opencode skills and
can be loaded using the skill tool for gitea-related tasks.
- Change MINIO_ENDPOINT from IP to Docker hostname (s3storage)
- Add ROOT_URL and DOMAIN settings for proper Gitea configuration
- Give anonymous users Admin permission for bucket creation
- Document SeaweedFS bucket creation process