Freewrite

A technically dense day focused on two threads: the Django/NextJS project moving into multi-agent execution, and a parallel learning arc on Git workflows and DevOps tooling. The zai-quota-monitor script also surfaced a couple of environment issues that got cleanly resolved. A lot of foundational work clicking into place.

Big Things Today

  • Paste Lead agent prompt into Claude Code to kick off User Management Phase 4 (T068–T088)
  • Continue Git/PR learning series — start with PR size best practices

Conversations

Claude Code & DevOps Tooling

Automating Claude with GitHub Actions

Three-layer CLAUDE.md structure created for the monorepo: root (shared contract: Docker hostnames, API format, JWT flow, git rules), backend/CLAUDE.md (Django expertise, TDD patterns, pytest), frontend/CLAUDE.md (TypeScript strict, React Query, httpOnly cookies). Claude reads all three on every job run. → See efforts/on/vuexy-nextjs-frontend

Creating an agent team prompt

Architected a full Lead + sub-agent spawn prompt for User Management phases 4–6 (T068–T125). Three agents: django-agent (TDD backend), nextjs-agent (frontend, waits on API contract), qa-agent (phase gate enforcer). Coordination via progress.md. API-First rule strictly enforced. → See reference/claude-code-multiagent-team | efforts/on/vuexy-nextjs-frontend

Configuring settings.json within workspace

Covered Claude Code workspace restriction via permissions.deny + sandboxing. Reference note already exists from yesterday. → See reference/claude-code-workspace-restriction

Jenkins alternatives comparison

Comprehensive 2026 breakdown: GitHub Actions (best overall), GitLab CI/CD (all-in-one), CircleCI (speed), TeamCity (self-hosted), Harness (enterprise/AI). Reference note already exists. → See reference/jenkins-cicd-alternatives


Git & GitHub Workflow Learning

Pull requests vs user stories in scrum

Compared GitHub Projects vs Jira for solo developer. Decision: GitHub Projects wins — native GitHub integration, zero context switching, free, fits spec.md + Claude workflow. → See efforts/on/git-pr-learning

Understanding pull requests in Git

Mapped 8 PR topics to learn in sequence: PR size best practices, code review workflow, draft PRs, stacked PRs, feature flags, trunk-based development, CI/CD with PRs, merge strategies. → See efforts/on/git-pr-learning


Developer Tooling & Environment

Pordee: Thai language token optimization for Claude

Discovered Pordee plugin for Claude Code — reduces Thai token consumption 60–75%. Two modes: Lite (removes filler) and Full (maximum compression). Install: claude plugin marketplace add kerlos/pordee. → See reference/pordee-thai-token-optimization

Python script for LLM news summarization

Covered rsync alternatives for file sync: resync (Rust, 4–56× faster), restic (backups with dedup+encryption), rclone (70+ cloud backends). rsync still best for raw server-to-server sync. → See reference/rsync-file-sync-tools

Zsh home button not working

Resolved Python package not found error: packages installed in uv venv but script run with system Python. Fix: uv run python script.py. → See reference/uv-python-venv

Cron job scheduling issue

Fixed state file owned by root preventing user cron write. Fix: sudo rm /tmp/zai-quota-monitor.state. Covered in reference/uv-python-venv under Gotchas.


Cowork & Integrations

Cowork and Microsoft To Do desktop integration

Cowork’s official M365 connector covers SharePoint, Outlook, and Teams but not Microsoft To Do. Two paths: self-hosted MCP server via MS Graph API, or Composio remote MCP connector.


Open Tasks Surfaced

  • Paste Lead agent prompt into Claude Code — kick off User Management Phase 4
  • Confirm progress.md marks T001–T067 complete before running
  • Continue PR learning series: start with PR size best practices
  • Try Pordee plugin on next heavy Thai Claude Code session
  • Evaluate Composio for Microsoft To Do → Cowork connection

Insights Worth Developing


Evening Update (PKM run 2)

Hermes Agent — MCP & Capabilities Deep Dive

Hermes integration with GitHub and GitLab

Wired GitHub and GitLab MCP servers into Hermes via ~/.hermes/config.yaml. Critical gotcha: Hermes does NOT pass shell environment to MCP subprocesses — API tokens must be declared explicitly in the config env: block, not just exported in shell. First npx run downloads the package; pre-install to avoid handshake timeouts. Verify with hermes mcp list. → See reference/hermes-mcp-github-gitlab | efforts/on/hermes-agent-orchestration

Hermes benefits and capabilities

Mapped Hermes’s full capability surface: productivity (auto-format notes, tasks, summaries), personal (MEMORY.md grows into second brain over sessions), work/dev (orchestrate Claude Code sub-agents for multi-phase tasks), life (decision support and planning with accumulated context). Core advantage: persistent + customizable — gets smarter with use. → See efforts/on/hermes-agent-orchestration


Terminal & Dev Environment

Understanding zsh directory and main syntax (Starship prompt)

Covered Starship prompt: written in Rust (fast, no lag), cross-shell (same starship.toml works in Zsh/Bash/Fish), single config at ~/.config/starship.toml. Auto-detects Git branch/status, language versions (Python, Node, Go), Kubernetes context, AWS profile. For Git learning: prompt shows branch, dirty state, and ahead/behind at a glance without running git status. → See reference/starship-prompt-zsh


Claude Tooling Clarification

Claude skills for software development

Disambiguated Claude’s tool ecosystem: Claude Code (CLI, npm install -g @anthropic-ai/claude-code), Claude in Chrome (extension), Claude in Excel/PowerPoint (add-ins). MCP servers extend Claude Code via npm packages. Skill .md files in Claude.ai projects guide behaviour for specific tasks — they are not downloadable standalone tools.

Open Tasks Surfaced (Evening)

  • Configure GitHub MCP in ~/.hermes/config.yaml with PAT
  • Configure GitLab MCP in ~/.hermes/config.yaml with PAT
  • Install Starship prompt: curl -sS https://starship.rs/install.sh | sh