This walkthrough demonstrates a typical GCC v2 session in git mode building a REST API.
The agent starts working on a new project. GCC auto-detects the git repo:
$ bash scripts/gcc_init.sh
GCC v2 initialized at .GCC/
Mode: git
Index: .GCC/index.yaml
Branch: main
Last commit: a1b2c3dAfter implementing the Express server and todo model:
$ bash scripts/gcc_commit.sh "implement Express server with Todo model"
[C001] e4f5a6b — implement Express server with Todo modelThe entry in index.yaml is lean:
- id: C001
hash: e4f5a6b
intent: "implement Express server with Todo model"
branch: main
date: "2026-03-28T10:15:00Z"Full details live in git, reconstructed on demand via git show e4f5a6b.
The agent evaluates database options and picks SQLite:
$ bash scripts/gcc_commit.sh "add SQLite integration" "descartamos PostgreSQL — overkill para single-user todo app"
[C002] 7c8d9e0 — add SQLite integration
Note: descartamos PostgreSQL — overkill para single-user todo app - id: C002
hash: 7c8d9e0
intent: "add SQLite integration"
note: "descartamos PostgreSQL — overkill para single-user todo app"
branch: main
date: "2026-03-28T10:30:00Z"The note captures what git can't: why an alternative was rejected.
$ bash scripts/gcc_context.sh --summary
# GCC Timeline (summary)
Mode: git
---
2026-03-28T10:00:00Z INIT a1b2c3d gcc initialized
2026-03-28T10:15:00Z C001 e4f5a6b implement Express server with Todo model
2026-03-28T10:30:00Z C002 7c8d9e0 add SQLite integrationCost: ~50 tokens. No git calls needed.
$ bash scripts/gcc_context.sh --decisions
# GCC Decisions
---
2026-03-28T10:30:00Z [C002] 7c8d9e0 — add SQLite integration
-> descartamos PostgreSQL — overkill para single-user todo appOnly entries with notes appear. Perfect for understanding past trade-offs.
New session. Agent recovers context:
$ bash scripts/gcc_context.sh --last 3
# GCC Context (last 3)
Mode: git
---
## [INIT]
Hash: a1b2c3d
Author: Dev
Date: Sat Mar 28 10:00:00 2026 -0400
Message: initial commit
package.json | 15 +++++++++++++++
1 file changed, 15 insertions(+)
Intent: gcc initialized
Branch: main
## [C001]
Hash: e4f5a6b
Author: Dev
Date: Sat Mar 28 10:15:00 2026 -0400
Message: implement Express server with Todo model
server.js | 45 +++++++++++++++++++++++++++
models/todo.js | 32 +++++++++++++++++++
2 files changed, 77 insertions(+)
Intent: implement Express server with Todo model
Branch: main
## [C002]
Hash: 7c8d9e0
Author: Dev
Date: Sat Mar 28 10:30:00 2026 -0400
Message: add SQLite integration
db/sqlite.js | 38 +++++++++++++++++++++++
migrations/001.sql | 12 +++++++
3 files changed, 50 insertions(+)
Intent: add SQLite integration
Note: descartamos PostgreSQL — overkill para single-user todo app
Branch: mainFull context reconstructed from git. The agent knows what was done, why, and what was rejected.
$ bash scripts/gcc_bridge.sh --status
# GCC Bridge Status
aiyoucli: available
Timeline entries: 3
Synced to memory: 3
Pending: 0All entries synced to vector memory. Enables semantic search across commits in the future.
After weeks of work:
$ bash scripts/gcc_cleanup.sh --prune-index 20
Pruning index to last 20 entries...
Removing 5 oldest entries (keeping 20).
Done. Pruned 5 entries.| Operation | v1 (verbose markdown) | v2 (lean index) |
|---|---|---|
| 3 commits stored | ~1,500 tokens | ~150 tokens |
| Quick orientation | Read main.md (~800 tokens) | --summary (~50 tokens) |
| Full recovery | Read all files (~2,500 tokens) | --last 5 (~1,000 tokens) |
| Check decisions | Scan all commits manually | --decisions (~100 tokens) |
.GCC/
├── index.yaml # 3 timeline entries (~150 tokens total)
├── .bridge-log # 3 hashes synced to aiyoucli
├── branches/ # (empty — no branches used in this session)
└── worktrees/ # (empty — no worktrees used)
Compare to v1: 6 files totaling ~5,000 tokens. v2: 1 file at ~150 tokens.