55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
# GoCalGoo — Implementation Status
|
|
|
|
## Current Phase: Phase 1 — Foundation
|
|
|
|
**Started:** 2026-04-01
|
|
**Agent:** Claude Code (via OpenClaw ACP)
|
|
**Go Skill:** Loaded from AMCS (`go-skill` — cobra, viper, zap, chi, testify)
|
|
|
|
---
|
|
|
|
## Phase 1 Progress
|
|
|
|
| Task | Status | Notes |
|
|
|------|--------|-------|
|
|
| Repo scaffold (`go.mod`, `Makefile`, `.gitignore`) | ✅ Done | Agent running |
|
|
| `internal/config/` — layered config with viper | ✅ Done | |
|
|
| `internal/store/` — token store (JSON, 0600) | ✅ Done | |
|
|
| `internal/auth/` — OAuth2 + PKCE | ✅ Done | Fixed-port, random-port, manual modes |
|
|
| `cmd/gocalgoo/` — cobra root + auth commands | ✅ Done | |
|
|
| `gocalgoo config validate` command | ✅ Done | |
|
|
| `configs/config.yaml` example | ✅ Done | |
|
|
| `go build ./...` passes | ⏳ Pending | |
|
|
| Committed and pushed to Gitea | ⏳ Pending | |
|
|
|
|
---
|
|
|
|
## Phase History
|
|
|
|
### Phase 1 — Foundation
|
|
- **Goal:** Repo scaffold, config system, logging, token store, OAuth2 CLI
|
|
- **Started:** 2026-04-01 ~20:55 SAST
|
|
- **Completed:** 2026-04-01
|
|
|
|
---
|
|
|
|
## Upcoming Phases
|
|
|
|
| Phase | Description |
|
|
|-------|-------------|
|
|
| 2 | Google API integrations: calendars list, events CRUD, contacts list/add |
|
|
| 3 | CLI polish: output formats (table/json/yaml), validation, error handling |
|
|
| 4 | HTTP API: chi router, auth middleware, REST endpoints, API key management |
|
|
| 5 | MCP server: stdio transport, HTTP transport, tools, resources, session handling |
|
|
| 6 | Hardening: audit log, retry/backoff, quota awareness, test matrix, release packaging |
|
|
|
|
---
|
|
|
|
## Notes
|
|
|
|
- Module path: `git.warky.dev/wdevs/gocalgoo`
|
|
- Gitea remote: `http://10.23.89.1:3000/wdevs/GoCalGoo`
|
|
- AMCS Go skill used: `go-skill` (id: `ea7f18c8-639b-4166-9272-f98f4a2e53c7`)
|
|
- Config precedence: CLI flags > env vars > profile config > base config > defaults
|
|
- No CLI→API internal calling — all surfaces share the service layer directly
|