mcpField
G
gcc

gcc

github.com/faugustdevAgent workflows6583 installsUpdated 14w ago
Repository

About gcc

GCC is a git-backed context index for coding agents, storing commit hashes, intent, and optional decision notes, then reconstructing history from Git when needed. It supports git worktree workflows and a standalone mode for projects without Git.

Key features

  1. 01Record context in a lean index
  2. 02Reconstruct history from Git commits
  3. 03Manage isolated worktrees and branches
  4. 04Commit milestones with intent
  5. 05Optionally sync to aiyoucli memory

Use cases

  1. 01Recover project context between sessions
  2. 02Record the reasoning behind commits
  3. 03Isolate experiments and merge results
  4. 04Clean up expired worktrees and index entries

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/faugustdev/git-context-controller --skill gcc

After installing, type/gccin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
CONTRIBUTING.md
README.md
LICENSE
examples/
sample_session.md
references/
file_formats.md
scripts/
gcc_commit.sh
gcc_context.sh
gcc_cleanup.sh
gcc_bridge.sh
gcc_init.sh

Details

From the project README

Git Context Controller (GCC) v2

Overview

GCC transforms agent memory from verbose markdown into a lean, git-backed index. Instead of duplicating what git already knows, GCC stores only hash + intent + optional decision notes (~50 tokens vs ~500 per entry). Full context is reconstructed on demand via git show.

Two modes:

  • git mode: Real commits, lean index.yaml, worktree isolation, aiyoucli bridge
  • standalone mode: Markdown fallback for projects without git (v1 compatible)

Initialization

On first use, check if .GCC/ exists. If not, run the init script:

scripts/gcc_init.sh          # auto-detects git/standalone
scripts/gcc_init.sh --upgrade # migrate v1 → v2
Git mode structure
.GCC/
├── index.yaml       # Single source of truth (timeline, worktrees, decisions)
├── branches/        # Branch-specific notes (only when needed)
├── worktrees/       # Worktree tracking
└── .bridge-log      # Tracks what's been synced to aiyoucli
Standalone mode structure
.GCC/
├── index.yaml       # Timeline in standalone mode
├── main.md          # Global roadmap (v1 compat)
├── log.md           # OTA execution log (v1 compat)
└── branches/

index.yaml Format

version: 2
mode: git              # or "standalone"
created: "2026-03-28T00:00:00Z"
config:
  proactive_commits: true
  worktree_ttl: 24h
  bridge_to_aiyoucli: auto   # auto | off | manual

current_branch: main

timeline:
  - id: C001
    hash: 85c8539
    intent: "release prep"
    branch: main
    date: "2026-02-25T21:40:00Z"

  - id: C002
    hash: a3f1b22
    intent: "auth middleware rewrite"
    note: "descartamos passport.js — too opinionated for our use case"
    branch: main
    date: "2026-02-26T10:00:00Z"

worktrees:
  - name: refactor-auth
    path: ../gcc-wt-refactor-auth
    branch: refactor-auth
    created: "2026-03-28T10:00:00Z"
    ttl: 24h
    status: active

decisions: []

Key principle: hash is the pointer to git truth. intent is why. note is only for decisions git can't capture (rejected alternatives, trade-offs).

Scripts

gcc_init.sh

Initialize GCC v2. Auto-detects git repo.

scripts/gcc_init.sh              # new project
scripts/gcc_init.sh --upgrade    # migrate v1 → v2 (backs up old files)
gcc_commit.sh

Execute a real git commit and append lean entry to index.

scripts/gcc_commit.sh "implement retry logic"
scripts/gcc_commit.sh "release prep" "descartamos semantic-release por overhead"
scripts/gcc_commit.sh --staged "hotfix: null check"   # only staged files
gcc_context.sh

Reconstruct context from index hashes.

scripts/gcc_context.sh                    # last 5 entries with git details
scripts/gcc_context.sh --last 10          # last 10
scripts/gcc_context.sh --hash abc123      # full details for specific commit
scripts/gcc_context.sh --summary          # one-line per entry (cheap, no git calls)
scripts/gcc_context.sh --decisions        # only entries with notes
scripts/gcc_context.sh --full             # everything
gcc_bridge.sh

Feed commit data to aiyoucli vector memory. Silent no-op if aiyoucli unavailable.

scripts/gcc_bridge.sh --status            # check bridge connectivity
scripts/gcc_bridge.sh --sync              # sync all unsynced entries
# Called automatically by gcc_commit.sh when bridge_to_aiyoucli: auto
gcc_cleanup.sh

TTL-based worktree cleanup and index pruning.

scripts/gcc_cleanup.sh                    # interactive cleanup
scripts/gcc_cleanup.sh --dry-run          # show what would be cleaned
scripts/gcc_cleanup.sh --force            # clean without asking
scripts/gcc_cleanup.sh --prune-index 50   # keep last 50 timeline entries

Commands

COMMIT

Persist a milestone. In git mode, executes a real commit.

Triggers: /gcc commit <summary>, "commit this progress", "checkpoint"

Procedure (git mode):

  1. Run scripts/gcc_commit.sh "<intent>" ["<note>"]
  2. This stages changes, commits, captures hash, appends to index.yaml
  3. If bridge_to_aiyoucli: auto, feeds to aiyoucli memory

Procedure (standalone mode):

  1. Run scripts/gcc_commit.sh "<intent>"
  2. Appends OTA entry to log.md

Proactive behavior: When proactive_commits: true, suggest a commit after:

  • Completing a function, module, or coherent unit of work
  • Fixing a bug and verifying the fix
  • Finishing a research/exploration phase with conclusions
BRANCH

Create an isolated workspace. In git mode, uses real git worktrees.

Triggers: /gcc branch <name>, "try a different approach", "experiment with..."

Procedure (git mode):

  1. git worktree add ../gcc-wt-<name> -b <name>
  2. Register in index.yaml under worktrees: with TTL
  3. Agent works in worktree directory

Procedure (standalone mode):

  1. Create .GCC/branches/<name>/ with summary.md, log.md
  2. Register in index.yaml timeline
MERGE

Integrate a branch back. In git mode, real git merge.

Triggers: /gcc merge <branch>, "integrate the experiment", "branch X is done"

Procedure (git mode):

  1. cd to main worktree
  2. git merge <branch>
  3. Append synthesis entry to timeline with intent + learnings as note
  4. git worktree remove ../gcc-wt-<name>
  5. Update worktree status to merged

Procedure (standalone mode):

  1. Read branch summary and commits
  2. Append synthesis to main timeline
  3. Update branch status
CONTEXT

Retrieve historical memory. Reconstructed from git, not stored verbatim.

Triggers: /gcc context, "where were we?", "what's the status?"

Flags:

  • --summary — One-line per entry. Cheapest option (~0 extra tokens). Use for quick orientation.
  • --last N — Last N entries with full git reconstruction. Default for session recovery.
  • --hash <hash> — Deep dive into specific commit (diff, message, files).
  • --decisions — Only entries with notes (rejected alternatives, trade-offs).
  • --full — Everything. Use sparingly.
CLEANUP

Maintain the index and worktrees.

Triggers: /gcc cleanup, "clean up old worktrees"

Procedure:

  1. Run scripts/gcc_cleanup.sh to handle expired worktrees
  2. Run scripts/gcc_cleanup.sh --prune-index 50 to trim old entries

Cross-Session Recovery

When starting a new session on a project with .GCC/:

  1. Run scripts/gcc_context.sh --summary for quick orientation
  2. If more detail needed, run scripts/gcc_context.sh --last 5
  3. Check scripts/gcc_cleanup.sh --dry-run for expired worktrees
  4. Resume work with full context reconstructed from git

Cost: ~50 tokens for summary vs ~2500 tokens loading all v1 markdowns.

aiyoucli Integration

When bridge_to_aiyoucli: auto in config:

  • Every commit is automatically fed to aiyoucli vector memory via gcc_bridge.sh
  • Stored with namespace gcc, tagged by branch
  • Enables semantic search across commits: "when did I do something similar?"
  • If aiyoucli is not installed, bridge is silently skipped

Manual sync: scripts/gcc_bridge.sh --sync

Natural Language Mapping

User saysCommand
"save/checkpoint/persist this"COMMIT
"try a different approach"BRANCH
"that experiment worked, integrate it"MERGE
"where were we?" / "what's the status?"CONTEXT --summary
"show recent activity"CONTEXT --last 10
"what did we decide about X?"CONTEXT --decisions
"deep dive into commit abc"CONTEXT --hash abc
"clean up old stuff"CLEANUP
"sync to memory"bridge --sync

Comments

Markdown supported