Files
diagrams-drawio/references/agents365-capability-coverage.md
T
oleg-lukasonokandClaude Code 6584df0666 Fix review findings: importer DoS, sync data loss, views/profile rendering, docs
Source importers: lstat before open so FIFOs no longer hang the directory
walk; replace the quadratic Rust macro regex with a linear scan.
Three-way sync: report page add/add and delete-vs-modify as conflicts
instead of silently overwriting or resurrecting; canonical comparison so
key order is not a change; the sync action withholds output and fails on
conflicts unless --force. Story publishing escapes <, >, & and U+2028/9
inside the embedded JSON.
Views: drop parentId of unselected containers, re-layout instead of
manual geometry, validate before serialising; flatten() merges identical
nodes repeated across pages so C4 output works with every analysis
action. Dark theme edge labels get a background; tube-map corridors sit
above the stations; C4 containers keep the swimlane style and orphan
relationships land on the matching page; router keeps container header
bands as obstacles; sequence self-messages loop on one side.
Docs: SKILL.md lists all 23 CLI actions and how each capability family
is invoked, task wrappers for query/test/what-if/doctor, capability
tables and --page scope corrected, maintenance snippet uses the real
synchronous action signature, duplicated rule bullets moved to the rule
references, coverage matrix wording made verifiable.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-06 17:01:50 +03:00

17 KiB

Agents365 capability coverage

Evidence basis: internal comparison against a 42-entry peer-tool feature list (tool names as listed in the matrix; no version or commit was recorded, so the comparison is not independently verifiable). Peer source and bundled assets were not copied. The "Native evidence" column points to files in this repository and is verifiable; the "Remaining gap" column reflects the internal feature list only.

Reading the classifications

  • Implemented — full mapped peer acceptance contract is available.
  • Partial — useful native behavior is implemented, but some peer options, adapters, or Command-Line Interface (CLI) exposure remain.
  • Optional deferred — environment-heavy capability remains outside the mandatory offline core.
  • Rejected — capability was deliberately excluded from this phase.

These are strict peer-parity labels. A partial row can still contain substantial production-ready native functionality.

Aggregate

Classification Count
Implemented 0
Partial 29
Optional deferred 11
Rejected 2
Total 42

Capability matrix

Peer tool Classification Native evidence Remaining gap
aiicons.py optional-deferred scripts/src/services/shape-catalog/shape-catalog.ts
scripts/src/services/shape-catalog/shape-catalog.test.ts
Only an eight-entry generic offline shape catalog exists; there is no AI/LLM brand manifest, variant selection, embedding adapter, URL allowlist, or CLI action.
autolayout.py partial scripts/src/services/layout/layout-engine.ts
scripts/src/services/layout/layout-engine.test.ts
scripts/src/actions/build/action.ts
Deterministic native layouts exist, but there is no peer-compatible graph-JSON adapter, group-tree contract, monochrome mode, or objective TB/LR tuning action.
buildup.py partial scripts/src/services/profiles/buildup.ts
scripts/src/services/profiles/buildup.test.ts
The service computes deterministic cumulative IR frames, but it does not parse Draw.io through a buildup action, render PNG frames, publish the player HTML, encode GIF, or expose CLI availability semantics.
c4.py partial scripts/src/services/profiles/c4.ts
scripts/src/services/profiles/c4.test.ts
scripts/src/services/profiles/index.ts
The service validates hierarchy and creates linked C4 pages, but no C4 CLI/action or input-file adapter is registered, and canonical peer style/direction options are not fully exposed.
ciimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
The service imports a bounded generic jobs/needs object, but lacks CLI registration, repository workflow discovery, triggers, runners, matrices, reusable workflows, GitLab stages, and inferred stage dependencies.
composeimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
Services, depends_on, and simple named volumes are covered through a service API; links, volumes_from, long-form mounts, network grouping, conventional-file discovery, and CLI exposure remain absent.
compress.py partial scripts/src/services/profiles/compression.ts
scripts/src/services/profiles/compression.test.ts
A deterministic BFS clustering service emits summary and full IR pages, but there is no Draw.io-facing action, exact loss-aware detail-file workflow, label-propagation parity, or member-cell drill-down target contract.
dbxicons.py optional-deferred scripts/src/services/shape-catalog/shape-catalog.ts
internal peer feature-list comparison (not independently verifiable)
No licensed Databricks manifest, aliases, variants, pinned-ref embedding, refresh operation, host allowlist, or CLI action was delivered.
diagram_ir.py partial scripts/src/model/diagram-ir.ts
scripts/src/services/semantic-lifecycle/import-drawio.ts
scripts/src/services/semantic-lifecycle/analysis.ts
scripts/src/services/semantic-lifecycle/sync.ts
scripts/src/services/semantic-lifecycle/publishing.ts
Versioned IR, loss-aware import, views, query, policies, failure impact, sync, and story publishing exist, but articulation analysis, a unified architecture-review contract, contrast analysis, multilingual labeling, and explicit peer-IR-v1 compatibility are incomplete.
diagramctl.py partial scripts/src/cli/commands.ts
scripts/src/cli/semantic-lifecycle.test.ts
scripts/src/actions/doctor/action.ts
scripts/src/actions/sync/action.ts
Lifecycle actions are registered in the existing --action CLI, but integrated importer, profile, transform, and reverse-export services are not registered. There is no uniform peer-equivalent result envelope.
diagramctl_mcp.py optional-deferred scripts/src/cli/commands.ts
internal peer feature-list comparison (not independently verifiable)
No optional MCP package, JSON-RPC initialization, tools/list, tools/call bridge, closed schemas, timeout handling, or MCP entrypoint exists.
dockerimports.py optional-deferred scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
The importer registry has Docker Compose but no Docker inspect snapshot kind, container/network/volume instance normalization, redaction contract, stdin parity, or action.
drawio2mermaid.py partial scripts/src/services/transforms/reverse.ts
scripts/src/services/transforms/reverse.test.ts
scripts/src/services/semantic-lifecycle/import-drawio.ts
A deterministic IR-to-Mermaid service exists, but there is no Draw.io-to-Mermaid CLI/action, shape-form mapping, direction/fence controls, or lossy-conversion report.
drawio2pptx.py optional-deferred scripts/src/cli/commands.ts
internal peer feature-list comparison (not independently verifiable)
No optional Draw.io renderer adapter, per-page raster loop, PPTX writer, slide sizing, scale option, or structured unavailable result exists.
drawiodiff.py partial scripts/src/services/transforms/semantic-diff.ts
scripts/src/services/transforms/semantic-diff.test.ts
scripts/src/services/semantic-lifecycle/import-drawio.ts
The IR service classifies added, removed, changed, moved, and rerouted entities, but no CLI/action composes Draw.io import with diffing, no by-label ambiguity mode exists, and no color-coded graph output or summary diagram is emitted.
drawiohtml.py optional-deferred scripts/src/services/semantic-lifecycle/publishing.ts
scripts/src/actions/story/action.ts
Story HTML is a different semantic publisher; there is no page-to-SVG export adapter, SVG sanitizer, tabbed viewer, pan/zoom/search UI, drill-down link rewrite, or publish-viewer action.
edgeports.py rejected scripts/src/services/authoring-router/orthogonal-router.ts
scripts/src/services/authoring-router/orthogonal-router.test.ts
internal peer feature-list comparison (not independently verifiable)
Only routing during authoring exists. The post-import boundary-port editor, pinned-port preservation, dry-run, idempotence, and transactional Draw.io write path were not selected for this post-phase implementation.
encode_drawio_url.py optional-deferred scripts/src/cli/commands.ts
scripts/package.json
Compression primitives are available transitively, but there is no byte-compatible URL encoder, viewer/edit modes, size policy, privacy warning, or CLI action.
explain.py partial scripts/src/services/transforms/reverse.ts
scripts/src/services/transforms/reverse.test.ts
Structured Markdown for IR pages, nodes, and flows exists as a service, but no Draw.io-facing explain action, tier/type inference, C4 context, unknown-section reporting, or output-file contract is exposed.
goimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
Bounded Go import extraction exists, but it emits imported paths as library nodes rather than resolving only intra-module packages; module discovery, grouping, transitive reduction, and CLI exposure are absent.
heatmap.py partial scripts/src/services/transforms/heatmap.ts
scripts/src/services/transforms/heatmap.test.ts
The IR service validates bounded metrics and applies deterministic accessible colors with legend metadata, but it lacks CSV/JSON loading, label matching, geometry scaling, a rendered legend node, Draw.io transactional output, and CLI exposure.
jsimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
A bounded scanner handles static import/export and require while avoiding tested comments and strings, but dynamic string imports, project module resolution, external exclusion, directory grouping, transitive reduction, and CLI exposure remain incomplete.
k8simports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
Local object/YAML parsing, namespace-qualified identity, Service selectors, Secret references, and Secret payload redaction are tested. Ingress, ConfigMap, PVC, HPA, list-wrapper normalization, ambiguity diagnostics, icon suppression/grouping, stdin action parity, and CLI registration remain absent.
openapiimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
OpenAPI operations and local component-schema references are imported through a service API, but Swagger 2 definitions, nested schema-to-schema edges, method styling, tag groups, no-schema projection, version diagnostics, and CLI exposure are missing.
prdiff.py optional-deferred scripts/src/services/transforms/semantic-diff.ts
scripts/src/cli/commands.ts
Semantic IR diff alone does not provide scoped git revision discovery, A/M/D classification, safe extraction, Draw.io rendering, artifact naming, Markdown reporting, or unavailable-render handling.
pyclasses.py rejected scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
The Python importer extracts imports only. Class declarations, inheritance resolution, multiple inheritance, nested module grouping, ambiguity diagnostics, and transitive reduction were not implemented or registered.
pyimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
Bounded import/from extraction and dynamic-import diagnostics exist, but relative and absolute intra-project resolution, stdlib/third-party exclusion, package grouping, transitive reduction, syntax-error diagnostics, and CLI exposure are absent.
raster2drawio.py partial scripts/src/actions/build/action.ts
scripts/src/authoring/ir-to-drawio.ts
scripts/src/services/layout/layout-engine.ts
scripts/src/model/diagram-ir.ts
Generic IR build supports explicit geometry, styles, edges, and automatic layout, but there is no raster-extracted graph compatibility schema/action, x/y/w/h shorthand conversion, partial-coordinate policy, confidence/provenance convention, or extraction-warning envelope.
relabel.py partial scripts/src/services/transforms/relabel.ts
scripts/src/services/transforms/relabel.test.ts
A strict complete-map IR relabel service preserves non-label structure, but there is no extraction mode, page-name handling, UserObject traversal contract, partial-map/unmatched reporting, Draw.io transactional write, or CLI action.
repair_png.py optional-deferred scripts/src/cli/commands.ts
internal peer feature-list comparison (not independently verifiable)
No PNG chunk validator, signature-specific repair, atomic in-place replacement, idempotence gate, version gate, or optional action exists.
restyle.py partial scripts/src/services/themes/theme-service.ts
scripts/src/services/themes/theme-service.test.ts
Five validated built-in themes and immutable IR application exist, but the peer-style palette-slot schema, user preset loader, hue/neutral color remapping, global extras, versioned JSON schema, Draw.io transactional action, and CLI exposure are incomplete.
runbook.py partial scripts/src/services/profiles/runbook.ts
scripts/src/services/profiles/runbook.test.ts
The service emits escaped self-contained interactive HTML from an explicit RunbookGraph, but it does not parse Draw.io, infer node types/start nodes/choices, report fallback selection, or expose a publish-runbook action.
rustimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
A bounded subset recognizes mod and simple use roots and diagnoses macros, but crate/self/super resolution, module-file discovery, complete brace expansion, external-crate exclusion, grouping, reduction, and CLI exposure are absent.
seqlayout.py partial scripts/src/services/profiles/sequence.ts
scripts/src/services/profiles/sequence.test.ts
Participants, ordered messages, lifelines, activations, return validation, and editable geometry are implemented as a service, but notes are unsupported and no sequence schema file, input action, direction/options contract, or CLI registration exists.
shapesearch.py partial scripts/src/services/shape-catalog/shape-catalog.ts
scripts/src/services/shape-catalog/shape-catalog.test.ts
Deterministic exact/alias/fuzzy search exists for eight hand-curated generic shapes, not the licensed 10k+ palette index; compound/tag/Soundex ranking, dimensions, gzip integrity controls, expected ecosystem queries, and CLI output are missing.
sqlerd.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
A narrow line-oriented subset finds simple tables and REFERENCES edges, but columns/types, PK/FK markers, quoted/schema identifiers, composite keys, schema grouping, crow's-foot styles, unsupported-syntax diagnostics, and CLI exposure are missing.
svgflow.py optional-deferred scripts/src/cli/commands.ts
internal peer feature-list comparison (not independently verifiable)
No optional Draw.io SVG export adapter, SVG parser/sanitizer, connector detection, animation injection, reduced-motion handling, or export-flow-svg action exists.
tfimports.py partial scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
A bounded line-oriented resource/reference subset exists, but modules, multiline/nested HCL handling, comments/string false-positive guarantees, diagnostics for dynamic expressions, cloud styles, grouping, transitive reduction, no-icons mode, and CLI exposure are incomplete.
tfstate.py optional-deferred scripts/src/services/source-importers/index.ts
scripts/src/services/source-importers/index.test.ts
No Terraform show-JSON snapshot source kind, nested module traversal, count/for_each instance expansion, sensitive-value redaction, state relationship extraction, stdin parity, or optional action exists.
timelapse.py partial scripts/src/services/profiles/timelapse.ts
scripts/src/services/profiles/timelapse.test.ts
The service classifies changes across caller-supplied IR snapshots, but it has no scoped git history/archive adapter, deterministic commit sampling, importer allowlist, Draw.io frame rendering, HTML player, resource limits, or CLI action.
tubemap.py partial scripts/src/services/profiles/tube-map.ts
scripts/src/services/profiles/tube-map.test.ts
The native service provides deterministic grid-aligned octilinear routes, interchange semantics, validation, and tested obstacle avoidance, but no versioned input schema, build-tubemap action, file adapter, or CLI exposure exists.
validate.py partial scripts/src/actions/validate/action.ts
scripts/src/actions/quality/action.ts
scripts/src/actions/page-connectors-validation/action.ts
scripts/src/actions/page-shape-bbox-validation/action.ts
scripts/src/actions/page-orphans/action.ts
Structural compilation and several specialized quality checks exist, but findings remain fragmented rather than one stable code/severity/subject/fix schema; duplicate/reserved ID, parent, off-grid, strict-warning, JSON projection, and comparable readability-score acceptance coverage is incomplete.

Architectural boundary

The retained implementation stays in the existing TypeScript/Node.js stack with pnpm, Taskfile, @maxgraph/core, and the established action-based CLI. Python, Graphviz, Eclipse Layout Kernel (ELK), Model Context Protocol (MCP), browser services, network icon retrieval, and Draw.io Desktop are not mandatory dependencies. Optional adapters must report availability honestly.