Agent Identity & GitHub User Plan

1. GitHub Per-Agent Accounts: Free Tier Analysis

Recommendation: Each agent should have its own GitHub user account.

Public Repos

ConstraintImpact
CollaboratorsUnlimited on free org plans — no cost per agent
API rate limits5,000 req/hr per authenticated user — separate accounts = isolated limits
Actions minutes2,000 min/month pooled at org level (shared, not per-user)
Packages storage500 MB shared at org level
GitHub ToSMachine/bot accounts are allowed if clearly labeled

Verdict: No meaningful limits. Separate accounts are actually beneficial for rate-limit isolation and clear audit trails.

Private Repos

ConstraintImpact
Collaborators (Free org)Unlimited — GitHub removed the 3-collaborator limit on free private repos in Jan 2024
Collaborators (Teams plan, $4/user/month)Each agent account = an additional paid seat
Collaborators (Enterprise, $21/user/month)Each agent account = an additional paid seat
VisibilityEach agent must be explicitly invited to private repos or added as an org member
Actions minutes (private repos)Consume from the same org pool; macOS runners cost 10x, Windows 2x
Secrets & environmentsEach agent can be scoped to specific environments and secrets via org/repo settings
Fine-grained PATsRecommended — scope each agent’s token to only the repos they need
Branch protectionAgent accounts interact with branch protection rules like any user — can be required reviewers, can be excluded from force-push, etc.

Verdict for private repos: On GitHub Free org plans, there is no per-seat cost — agent accounts are free for both public and private repos. On Teams/Enterprise plans, each agent account adds a seat (21/month). If seat cost is a concern on paid plans, an alternative is using a single shared bot account with fine-grained PATs per agent (sacrificing individual audit trails).

Decision: Individual Accounts (Confirmed)

CascadeGuard is on GitHub Free — no seat cost for either public or private repos. Plan of record:

  1. Create individual GitHub accounts per agent — zero cost, full rate-limit isolation, clear audit trails.
  2. Use fine-grained personal access tokens (not classic PATs) scoped to the specific repos each agent needs. This limits blast radius if a token leaks.
  3. Add each agent as an org collaborator (or invite to specific private repos) so they have push access.
  4. Note: The workspace-root repo lives under craigedmunds (personal), not the cascadeguard org. Agent accounts will need explicit collaborator invites for private repos under the personal namespace.

2. Agent Identity Structure

Each agent gets an identity file at /workspace/.ai/agents/cascadeguard/<agent-urlKey>/identity.yaml:

name: "<full name>"
nickname: "<casual name>"
role: "<official role>"
agent_url_key: "<paperclip agent urlKey>"
 
personality:
  traits: ["detail-oriented", "pragmatic", ...]
  communication_style: "<description>"
  interests: ["distributed systems", "rock climbing", ...]
  quirks: ["always references RFC numbers", ...]
 
github:
  username: "<github-username>"
  display_name: "<GitHub display name>"
 
commit_style: "<how they write commit messages>"
pr_style: "<how they write PR descriptions>"
review_style: "<how they approach code reviews>"

3. Current Agent Identities

AgentNameNicknameGitHub UsernamePersonality Vibe
CEOMarcus ChenMarcmarcus-cascadeguardVisionary, decisive, warm strategist
CTOPriya RaghavanPriyapriya-cascadeguardSystems thinker, pragmatic perfectionist
Full-Stack EngineerTomás RiveraTomtomas-cascadeguardCreative, user-empathy driven, fast iterator
Lead Platform EngineerKai NakamuraKaikai-cascadeguardMethodical, reliability-obsessed, docs-first
Product OwnerSana OkaforSanasana-cascadeguardOrganized, user-advocate, diplomatically persistent
DevSecOps EngineerJordan AsanteJjordan-cascadeguardVigilant, analytical, teach-by-showing

Full identity files are in .ai/agents/cascadeguard/<agent-urlKey>/identity.yaml.

4. Identity Creation Skill for Hiring

Create a Paperclip skill agent-identity-creator that:

  1. Triggers during agent hiring flow
  2. Generates a personality profile based on the agent’s role, capabilities, and team dynamics
  3. Writes the identity.yaml to the correct path
  4. Optionally outputs GitHub machine user setup instructions

5. Implementation Steps

  • Step 1: Create /workspace/.ai/agents/cascadeguard/ directory structure
  • Step 2: Design and write identity profiles for all 6 current agents
  • Step 3: Write this plan covering both public and private repo implications
  • Step 4: Create an AGENTS-IDENTITY.md guide documenting the identity schema
  • Step 5: Create the agent-identity-creator Paperclip skill
  • Step 6: Document GitHub machine user setup process (account creation, PAT scoping, org invitation)
  • Step 7: Update agent instructions to reference identity files for communication style

6. Resolved & Remaining Questions

Resolved

  • Plan type: GitHub Free — no seat costs. ✅
  • Repo ownership: workspace-root is under craigedmunds personal account, CascadeGuard repos under cascadeguard org.

Still Open

  1. Should we create actual GitHub accounts now, or just define identities and create accounts when needed?
  2. How distinct should personalities be? (Subtle professional differences vs. very distinct characters?)
  3. Do we want a shared email pattern (e.g., agent-cto@cascadeguard.com) or use GitHub’s noreply addresses?