/icpg
Intent-Augmented Code Property Graph — tracks WHY code exists via ReasonNodes with formal contracts, 6-dimension drift detection, and 3 canonical pre-task queries for autonomous development
$ npx -y skills add alinaqi/claude-bootstrap --skill icpg --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/icpg
Context preview
The summary Claude sees to decide when to auto-load this skill.
Intent-Augmented Code Property Graph — tracks WHY code exists via ReasonNodes with formal contracts, 6-dimension drift detection, and 3 canonical pre-task queries for autonomous development
SKILL.md
icpg.SKILL.mdname: icpg
description: Intent-Augmented Code Property Graph — tracks WHY code exists via ReasonNodes with formal contracts, 6-dimension drift detection, and 3 canonical pre-task queries for autonomous development
when-to-use: "Before any code change — query the reason graph for intent, constraints, and risk"
user-invocable: false
effort: high
iCPG Skill (Intent-Augmented Code Property Graph)
**Purpose:** Add a Reason Graph layer on top of code structure so every function, class, and module is traceable to the goal that created it, the agent or human that owns it, and whether it's still doing what it was supposed to do.
┌────────────────────────────────────────────────────────────────┐
│ iCPG = AST + CFG + PDG + RG (Reason Graph) │
│ ─────────────────────────────────────────────────────────────│
│ AST = Abstract Syntax Tree (structure) ← existing │
│ CFG = Control Flow Graph (execution paths) ← existing │
│ PDG = Program Dependency Graph ← existing │
│ RG = Reason Graph (WHY layer) ← THIS SKILL │
│ │
│ The RG stores ReasonNodes (goals/tasks), links them to code │
│ symbols via typed edges, enforces contracts (DbC), and │
│ detects when code drifts from its original purpose. │
│ │
│ Storage: .icpg/reason.db (SQLite, per-project, gitignored) │
│ CLI: icpg init | create | record | query | drift | bootstrap │
└────────────────────────────────────────────────────────────────┘
---
Core Principle
**Intent first, code second.** Before writing or modifying code, query the reason graph to understand WHY existing code was written, WHAT constraints it must preserve, and WHETHER your change duplicates prior work.
---
The 3 Canonical Pre-Task Queries
**Every agent MUST run these before writing code:**
| # | Query | Command | What It Answers | |---|-------|---------|-----------------| | 1 | **search_prior_work** | `icpg query prior "<goal>"` | Has this been attempted before? Prevents duplication. | | 2 | **get_constraints** | `icpg query constraints <file>` | What invariants apply to files I'll touch? Prevents breakage. | | 3 | **get_risk_profile** | `icpg query risk <symbol>` | Is this symbol fragile? Drift history, ownership changes. |
---
ReasonNode — The Core Primitive
Each ReasonNode captures a stated purpose with a formal contract:
id UUID
goal Natural language: what is this trying to achieve
decision_type business_goal | arch_decision | task | workaround | constraint | patch
scope Files/modules expected to be touched
owner Human or agent accountable
status proposed | executing | fulfilled | drifted | abandoned
source manual | commit | inferred | agent-session
FORMAL CONTRACT (Design by Contract):
preconditions What must be true before this intent executes
postconditions What must be true when fulfilled
invariants What must remain true throughout and after
**Drift = predicate failure.** A symbol has drifted when its current behavior no longer satisfies the postconditions of the ReasonNode that created it, or when an invariant is violated.
---
Six Edge Types
CREATES Reason → Symbol (this intent created this function)
MODIFIES Reason → Symbol (this intent changed this function)
REQUIRES Reason → Reason (B depends on A being done first)
DUPLICATES Reason → Reason (these two goals overlap)
VALIDATED_BY Reason → Test (this test proves the intent was satisfied)
DRIFTS_FROM Symbol → Reason (this symbol no longer does what it was made for)
---
6-Dimension Drift Model
| Dimension | What It Means | Detection | |-----------|--------------|-----------| | **Spec drift** | Symbol checksum changed without a MODIFIES edge | Compare stored vs current checksum | | **Decision drift** | Postconditions no longer hold | Evaluate predicates against codebase | | **Ownership drift** | >3 different owners without coherent oversight | Count unique owners on edges | | **Test drift** | VALIDATED_BY tests missing or failing | Check test file existence + run | | **Usage drift** | Symbol used outside original scope | Grep for imports beyond scope | | **Dependency drift** | Downstream REQUIRES reasons have drifted | Traverse REQUIRES edges |
Run `icpg drift check` to scan all dimensions. Each produces a 0-1 severity score.
---
CLI Reference
Setup
icpg init # Create .icpg/ and database
icpg bootstrap --days 90 # Infer ReasonNodes from git history
icpg bootstrap --days 90 --no-llm # Without LLM (commit-message only)
Create & Record
icpg create "Add JWT auth" --scope src/auth/ --owner feature-auth --type task
icpg record --reason <id> --base main # Record symbols from git diff
icpg record --reason <id> --edge-type MODIFIES # Record as modifications
Query (the 3 canonical queries)
icpg query prior "user authentication" # 1. Duplicate detection
icpg query constraints src/auth/service.ts # 2. Invariants for file
icpg query risk validateToken # 3. Symbol risk profile
icpg query context src/auth/service.ts # All intents for a file
icpg query blast <reason-id> # Full blast radius
Drift
icpg drift check # Full scan across all dimensions
icpg drift resolve <id> # Mark drift event resolved
Status
icpg status # Stats: reasons, symbols, edges, drift
---
Storage
Per-project, gitignored, zero infrastructure:
.icpg/
reason.db SQLite database (4 tables: reasons, symbols, edges, drift_events)
.gitignore Contains: *
chroma/ ChromaDB vectors (if chromadb installed)
tfidf_cache.json TF-IDF fallback cach
Read more
name: icpg description: Intent-Augmented Code Property Graph — tracks WHY code exists via ReasonNodes with formal contracts, 6-dimension drift detection, and 3 canonical pre-task queries for autonomous development when-to-use: "Before any code change — query the reason graph for intent, constraints, and risk" user-invocable: false effort: high
iCPG Skill (Intent-Augmented Code Property Graph)
**Purpose:** Add a Reason Graph layer on top of code structure so every function, class, and module is traceable to the goal that created it, the agent or human that owns it, and whether it's still doing what it was supposed to do.
┌────────────────────────────────────────────────────────────────┐ │ iCPG = AST + CFG + PDG + RG (Reason Graph) │ │ ─────────────────────────────────────────────────────────────│ │ AST = Abstract Syntax Tree (structure) ← existing │ │ CFG = Control Flow Graph (execution paths) ← existing │ │ PDG = Program Dependency Graph ← existing │ │ RG = Reason Graph (WHY layer) ← THIS SKILL │ │ │ │ The RG stores ReasonNodes (goals/tasks), links them to code │ │ symbols via typed edges, enforces contracts (DbC), and │ │ detects when code drifts from its original purpose. │ │ │ │ Storage: .icpg/reason.db (SQLite, per-project, gitignored) │ │ CLI: icpg init | create | record | query | drift | bootstrap │ └────────────────────────────────────────────────────────────────┘
---
Core Principle
**Intent first, code second.** Before writing or modifying code, query the reason graph to understand WHY existing code was written, WHAT constraints it must preserve, and WHETHER your change duplicates prior work.
---
The 3 Canonical Pre-Task Queries
**Every agent MUST run these before writing code:**
| # | Query | Command | What It Answers | |---|-------|---------|-----------------| | 1 | **search_prior_work** | `icpg query prior "<goal>"` | Has this been attempted before? Prevents duplication. | | 2 | **get_constraints** | `icpg query constraints <file>` | What invariants apply to files I'll touch? Prevents breakage. | | 3 | **get_risk_profile** | `icpg query risk <symbol>` | Is this symbol fragile? Drift history, ownership changes. |
---
ReasonNode — The Core Primitive
Each ReasonNode captures a stated purpose with a formal contract:
id UUID goal Natural language: what is this trying to achieve decision_type business_goal | arch_decision | task | workaround | constraint | patch scope Files/modules expected to be touched owner Human or agent accountable status proposed | executing | fulfilled | drifted | abandoned source manual | commit | inferred | agent-session FORMAL CONTRACT (Design by Contract): preconditions What must be true before this intent executes postconditions What must be true when fulfilled invariants What must remain true throughout and after
**Drift = predicate failure.** A symbol has drifted when its current behavior no longer satisfies the postconditions of the ReasonNode that created it, or when an invariant is violated.
---
Six Edge Types
CREATES Reason → Symbol (this intent created this function) MODIFIES Reason → Symbol (this intent changed this function) REQUIRES Reason → Reason (B depends on A being done first) DUPLICATES Reason → Reason (these two goals overlap) VALIDATED_BY Reason → Test (this test proves the intent was satisfied) DRIFTS_FROM Symbol → Reason (this symbol no longer does what it was made for)
---
6-Dimension Drift Model
| Dimension | What It Means | Detection | |-----------|--------------|-----------| | **Spec drift** | Symbol checksum changed without a MODIFIES edge | Compare stored vs current checksum | | **Decision drift** | Postconditions no longer hold | Evaluate predicates against codebase | | **Ownership drift** | >3 different owners without coherent oversight | Count unique owners on edges | | **Test drift** | VALIDATED_BY tests missing or failing | Check test file existence + run | | **Usage drift** | Symbol used outside original scope | Grep for imports beyond scope | | **Dependency drift** | Downstream REQUIRES reasons have drifted | Traverse REQUIRES edges |
Run `icpg drift check` to scan all dimensions. Each produces a 0-1 severity score.
---
CLI Reference
Setup
icpg init # Create .icpg/ and database icpg bootstrap --days 90 # Infer ReasonNodes from git history icpg bootstrap --days 90 --no-llm # Without LLM (commit-message only)
Create & Record
icpg create "Add JWT auth" --scope src/auth/ --owner feature-auth --type task icpg record --reason <id> --base main # Record symbols from git diff icpg record --reason <id> --edge-type MODIFIES # Record as modifications
Query (the 3 canonical queries)
icpg query prior "user authentication" # 1. Duplicate detection icpg query constraints src/auth/service.ts # 2. Invariants for file icpg query risk validateToken # 3. Symbol risk profile icpg query context src/auth/service.ts # All intents for a file icpg query blast <reason-id> # Full blast radius
Drift
icpg drift check # Full scan across all dimensions icpg drift resolve <id> # Mark drift event resolved
Status
icpg status # Stats: reasons, symbols, edges, drift
---
Storage
Per-project, gitignored, zero infrastructure:
.icpg/ reason.db SQLite database (4 tables: reasons, symbols, edges, drift_events) .gitignore Contains: * chroma/ ChromaDB vectors (if chromadb installed) tfidf_cache.json TF-IDF fallback cach
Turn Claude Code into a self-reviewing, test-enforced engineering system that remembers context across sessions — then route work across 13 models from a single dashboard.
Repo: alinaqi/claude-bootstrap
Other skills on maggy.
- /aeo-optimization
AI Engine Optimization - semantic triples, page templates, content clusters for AI citations
Open skill - /agent-teams
Claude Code Agent Teams - default team-based development with strict TDD pipeline enforcement
Open skill - /agentic-development
Build AI agents with Pydantic AI (Python) and Claude SDK (Node.js)
Open skill - /ai-models
Latest AI models reference - Claude, OpenAI, Gemini, Eleven Labs, Replicate
Open skill - /android-java
Android Java development with MVVM, ViewBinding, and Espresso testing
Open skill - /android-kotlin
Android Kotlin development with Coroutines, Jetpack Compose, Hilt, and MockK testing
Open skill

