SIN-Code-IBD-Tool — Intent-Based Diffing — semantic code-diff that reports structural changes (function added, parameter removed, class renamed) instead of raw line deltas.
Parses Python source into ASTs, walks them recursively, and emits stable change-type strings (e.g. function_added, parameter_removed). Single-language by design (Python only). Main entry point: src/ibd/cli.py (Typer, single diff subcommand). Consumed by code-review agents and sin code ibd.
| Service | Port | Purpose |
|---|---|---|
| CLI | N/A | ibd diff — semantic AST diff |
pip install -e .
ibd --help
ibd diff tests/fixtures/before.py tests/fixtures/after.pyibd diff— compute semantic diff between two Python files
- All Python source files in
src/ibd/MUST have a.doc.mdcompanion. - Run
sin codocs checkto validate. Output MUST beOK: 2 filesto pass. - CoDocs companion for THIS file: none (AGENTS.md is itself a doc).
pytest tests/ -v
pytest tests/test_agents_md.py -vExpected: 6 tests pass (5 existing + 1 from issue #40).
- sin-code HubTool:
sin code ibd diff— called by code-review agents. - MCP server:
ibdexposes MCP via thesin-code serveadapter; the tool prefix in MCP namespace isibd__*(e.g.ibd__diff). - Cross-repo: consumed by code-review agents and the
sin code ibdHubTool.
This project is indexed by GitNexus as SIN-Code-IBD-Tool (138 symbols, 171 relationships, 4 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
If any GitNexus tool warns the index is stale, run
npx gitnexus analyzein terminal first.
- MUST run impact analysis before editing any symbol. Before modifying a function, class, or method, run
gitnexus_impact({target: "symbolName", direction: "upstream"})and report the blast radius (direct callers, affected processes, risk level) to the user. - MUST run
gitnexus_detect_changes()before committing to verify your changes only affect expected symbols and execution flows. - MUST warn the user if impact analysis returns HIGH or CRITICAL risk before proceeding with edits.
- When exploring unfamiliar code, use
gitnexus_query({query: "concept"})to find execution flows instead of grepping. It returns process-grouped results ranked by relevance. - When you need full context on a specific symbol — callers, callees, which execution flows it participates in — use
gitnexus_context({name: "symbolName"}).
- NEVER edit a function, class, or method without first running
gitnexus_impacton it. - NEVER ignore HIGH or CRITICAL risk warnings from impact analysis.
- NEVER rename symbols with find-and-replace — use
gitnexus_renamewhich understands the call graph. - NEVER commit changes without running
gitnexus_detect_changes()to check affected scope.
| Resource | Use for |
|---|---|
gitnexus://repo/SIN-Code-IBD-Tool/context |
Codebase overview, check index freshness |
gitnexus://repo/SIN-Code-IBD-Tool/clusters |
All functional areas |
gitnexus://repo/SIN-Code-IBD-Tool/processes |
All execution flows |
gitnexus://repo/SIN-Code-IBD-Tool/process/{name} |
Step-by-step execution trace |
| Task | Read this skill file |
|---|---|
| Understand architecture / "How does X work?" | .claude/skills/gitnexus/gitnexus-exploring/SKILL.md |
| Blast radius / "What breaks if I change X?" | .claude/skills/gitnexus/gitnexus-impact-analysis/SKILL.md |
| Trace bugs / "Why is X failing?" | .claude/skills/gitnexus/gitnexus-debugging/SKILL.md |
| Rename / extract / split / refactor | .claude/skills/gitnexus/gitnexus-refactoring/SKILL.md |
| Tools, resources, schema reference | .claude/skills/gitnexus/gitnexus-guide/SKILL.md |
| Index, status, clean, wiki CLI commands | .claude/skills/gitnexus/gitnexus-cli/SKILL.md |