|
4 | 4 |
|
5 | 5 | **The architectural intelligence layer for AI coding agents. Structural graph, architecture governance, multi-agent orchestration, vulnerability mapping, runtime analysis -- one CLI, zero API keys.** |
6 | 6 |
|
7 | | -*139 commands · 101 MCP tools · 27 languages · 100% local* |
| 7 | +*140 commands · 102 MCP tools · 27 languages · 100% local* |
8 | 8 |
|
9 | 9 | [](https://pypi.org/project/roam-code/) |
10 | 10 | [](https://github.com/Cranot/roam-code/stargazers) |
@@ -64,14 +64,19 @@ $ roam diff # blast radius of uncommitted changes |
64 | 64 |
|
65 | 65 | ## What's New in v11 |
66 | 66 |
|
| 67 | +### v11.2 -- AST Clone Detection + Debug Artifact Rules |
| 68 | +- **`roam clones`**: New AST structural clone detection via subtree hashing. Finds Type-2 clones (identical control flow, different identifiers/literals) with Jaccard similarity scoring, Union-Find clustering, and automated refactoring suggestions. More precise than the metric-based `duplicates` command. |
| 69 | +- **9 debug artifact rules** (COR-560 through COR-568): Detect leftover `print()`, `breakpoint()`, `pdb.set_trace()`, `console.log()`, `debugger`, and `System.out.println()` in Python, JavaScript, TypeScript, and Java code. All use `ast_match` type with test file exemptions. |
| 70 | +- **140 commands, 102 MCP tools**. |
| 71 | + |
67 | 72 | ### v11.1.2 -- SQL + Scala Tier 1, 27 Languages |
68 | 73 | - **SQL DDL promoted to Tier 1** with dedicated `SqlExtractor` -- tables, columns, views, functions, triggers, schemas, types (enums), sequences, ALTER TABLE ADD COLUMN. Foreign keys produce graph edges; views and triggers reference source tables. Database-schema projects now work with `roam health`, `roam layers`, `roam impact`, `roam coupling` and all graph commands. |
69 | 74 | - **Scala promoted to Tier 1** with dedicated `ScalaExtractor` -- classes, traits, objects, case classes, sealed hierarchies, val/var properties, type aliases, imports, and inheritance. Full `extends` + `with` trait mixin resolution. |
70 | 75 | - **27 languages** with 16 dedicated Tier 1 extractors. |
71 | 76 | - `server.json` for official MCP Registry submission. |
72 | 77 |
|
73 | 78 | ### v11.1.1 -- Command Quality Audit |
74 | | -- **Full command audit**: all 139 commands reviewed for usefulness, duplicates, and test coverage. ~20 bugs fixed, 21 new test files (700+ tests), every command docstring updated with cross-references to related commands. |
| 79 | +- **Full command audit**: all 140 commands reviewed for usefulness, duplicates, and test coverage. ~20 bugs fixed, 21 new test files (700+ tests), every command docstring updated with cross-references to related commands. |
75 | 80 | - **Kotlin promoted to Tier 1** via new YAML-based declarative extractor architecture. Classes, interfaces, enums, objects, functions, methods, properties, and inheritance fully extracted. |
76 | 81 | - **7 new commands**: `roam congestion`, `roam adrs`, `roam flag-dead`, `roam test-scaffold`, `roam sbom`, `roam triage`, `roam ci-setup`. |
77 | 82 | - **CI templates**: `roam ci-setup` generates pipelines for GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, and Bitbucket. |
@@ -226,7 +231,7 @@ roam health |
226 | 231 |
|
227 | 232 | ## Commands |
228 | 233 |
|
229 | | -The [5 core commands](#core-commands) shown above cover ~80% of agent workflows. All 139 commands are organized into 7 categories. |
| 234 | +The [5 core commands](#core-commands) shown above cover ~80% of agent workflows. All 140 commands are organized into 7 categories. |
230 | 235 |
|
231 | 236 | <details> |
232 | 237 | <summary><strong>Full command reference</strong></summary> |
@@ -484,6 +489,7 @@ The sentinel pair `<!-- roam:minimap -->` / `<!-- /roam:minimap -->` is replaced |
484 | 489 | | `roam safe-zones` | Graph-based containment boundaries | |
485 | 490 | | `roam coverage-gaps` | Unprotected entry points with no path to gate symbols | |
486 | 491 | | `roam duplicates [--threshold T] [--min-lines N]` | Semantic duplicate detector: functionally equivalent code clusters with divergent edge-case handling | |
| 492 | +| `roam clones [--threshold T] [--min-lines N] [--scope P]` | AST structural clone detection: Type-2 clones via subtree hashing (more precise than `duplicates`) | |
487 | 493 |
|
488 | 494 | ### Exploration |
489 | 495 |
|
@@ -822,7 +828,7 @@ pip install "roam-code[mcp]" |
822 | 828 | roam mcp |
823 | 829 | ``` |
824 | 830 |
|
825 | | -101 tools, 10 resources, and 5 prompts are available in the full preset. Most tools are read-only index queries; side-effect tools are explicitly annotated. |
| 831 | +102 tools, 10 resources, and 5 prompts are available in the full preset. Most tools are read-only index queries; side-effect tools are explicitly annotated. |
826 | 832 |
|
827 | 833 | **MCP v2 highlights (v11):** |
828 | 834 | - In-process MCP execution (no subprocess shell-out per call) |
@@ -889,6 +895,7 @@ Core preset tools: `roam_affected_tests`, `roam_batch_get`, `roam_batch_search`, |
889 | 895 | | `roam_bisect_blame` | Architectural git bisect | |
890 | 896 | | `roam_doc_intent` | Doc-to-code linking | |
891 | 897 | | `roam_cut_analysis` | Minimum graph cut analysis | |
| 898 | +| `roam_clones` | AST structural clone detection (Type-2 clones) | |
892 | 899 | | `roam_annotate_symbol` | Attach persistent notes to symbols | |
893 | 900 | | `roam_get_annotations` | View stored annotations | |
894 | 901 | | `roam_relate` | Show relationship between two symbols | |
@@ -1465,8 +1472,8 @@ roam-code/ |
1465 | 1472 | ├── action.yml # Reusable GitHub Action |
1466 | 1473 | ├── src/roam/ |
1467 | 1474 | │ ├── __init__.py # Version (from pyproject.toml) |
1468 | | -│ ├── cli.py # Click CLI (139 commands) |
1469 | | -│ ├── mcp_server.py # MCP server (101 tools, 10 resources, 5 prompts) |
| 1475 | +│ ├── cli.py # Click CLI (140 commands) |
| 1476 | +│ ├── mcp_server.py # MCP server (102 tools, 10 resources, 5 prompts) |
1470 | 1477 | │ ├── db/ |
1471 | 1478 | │ │ ├── connection.py # SQLite (WAL, pragmas, batched IN) |
1472 | 1479 | │ │ ├── schema.py # Tables, indexes, migrations |
@@ -1560,7 +1567,7 @@ Optional: Local semantic ONNX stack (`numpy`, `onnxruntime`, `tokenizers`) via ` |
1560 | 1567 | ### Shipped |
1561 | 1568 |
|
1562 | 1569 | - [x] MCP v2 agent surface: in-process execution, compound operations, presets, schemas, annotations, and compatibility profiles. |
1563 | | -- [x] Full command and MCP inventory parity in docs: 139 CLI commands and 101 MCP tools. |
| 1570 | +- [x] Full command and MCP inventory parity in docs: 140 CLI commands and 102 MCP tools. |
1564 | 1571 | - [x] CI hardening: composite action, changed-only mode, trend-aware gates, sticky PR updater, and SARIF guardrails. |
1565 | 1572 | - [x] Performance foundation: FTS5/BM25 search, O(changed) incremental indexing, DB/index optimizations. |
1566 | 1573 | - [x] Agent governance suite: `vibe-check`, `ai-readiness`, `verify`, `ai-ratio`, `duplicates`, advanced `algo` scoring/SARIF. |
|
0 commit comments