Skip to content

Latest commit

 

History

History
98 lines (65 loc) · 5.51 KB

File metadata and controls

98 lines (65 loc) · 5.51 KB

sysmledgraph – model examination

Examined: requirements-sysmledgraph.sysml, deploy-sysmledgraph.sysml, behaviour-sysmledgraph.sysml, project-sysmledgraph.sysml. Design: GITNEXUS_FEATURES.md.


1. Requirements ↔ deployment and parts

Req Requirement Deployment satisfy Part-level satisfy
R1 ReqPathOnlyInput Indexer
R2 ReqSysMLGrouping GraphStore
R3 ReqSameStorageAsGitNexus GraphStore
R4 ReqListAndClean Cli
R5 ReqMCPTools McpServer
R6 ReqOneGraph GraphStore
R7 ReqLoadOrder Indexer
R8 ReqErrorReporting Indexer, Cli, McpServer (and all actions that report errors)

Verdict: All R1–R8 satisfied at deployment; R1–R7 at part level; R8 at part level (Indexer, Cli, McpServer) and at action level (all eight actions). No gaps.


2. Actions ↔ requirements

Action satisfy in model
IndexDbGraph ReqPathOnlyInput, ReqOneGraph, ReqLoadOrder
Query, Context, Impact, Rename, Cypher ReqMCPTools
ListIndexed, CleanIndex ReqListAndClean

Verdict: Action–requirement traceability is explicit in the model. Consistent.


3. Ports and connection items

Port definitions (4): PathPort, GraphWritePort, GraphReadPort, RegistryPort. All have doc.

Connection definitions (5): PathToIndexerLink (pathSource, pathSink), IndexerToGraphWriteLink (writer, graphWrite), McpServerToGraphReadLink (reader, graphRead), CliToRegistryLink (client, registry), McpServerToRegistryLink (client, registry). Each end is typed by a port def. All have doc.

Part ports:

Part Ports Used in connection usages
Indexer pathIn (PathPort), graphWriteOut (GraphWritePort) pathIn: pathFromCli.pathSink, pathFromMcp.pathSink; graphWriteOut: indexerToGraph.writer
GraphStore graphWriteIn, graphReadIn, registry graphWriteIn: indexerToGraph.graphWrite; graphReadIn: mcpToGraphRead.graphRead; registry: cliToRegistry.registry, mcpToRegistry.registry
McpServer pathOut, graphReadOut, registryOut pathOut: pathFromMcp.pathSource; graphReadOut: mcpToGraphRead.reader; registryOut: mcpToRegistry.client
Cli pathOut, registryOut pathOut: pathFromCli.pathSource; registryOut: cliToRegistry.client

Connection usages (6): pathFromCli, pathFromMcp, indexerToGraph, mcpToGraphRead, cliToRegistry, mcpToRegistry. Each end is bound via ::> to a part.port. Port types match connection-def end types.

Note: indexer.pathIn is the sink for two connections (pathFromCli and pathFromMcp); both Cli and McpServer can trigger index. graphStore.registry is the registry end for two connections (cliToRegistry, mcpToRegistry). Intentional.

Verdict: Port and connection definitions are consistent. All part ports participate in connection usages. No dangling ports; no connection end left unbound. BDD/IBD generate successfully.


4. Behaviour (state machine)

SysmledgraphIndexStates: idle → indexing (StartIndex) → ready (IndexComplete); ready → indexing (StartIndex) or cleaning (StartClean); cleaning → idle (CleanComplete). Entry state: idle.

Events: StartIndex, IndexComplete, StartClean, CleanComplete. All used in transitions.

Consistency with structure: Idle aligns with “no index” (list empty). Indexing aligns with Indexer performing IndexDbGraph (path in via PathPort, write via GraphWritePort). Ready aligns with GraphStore having content (read via GraphReadPort, registry via RegistryPort). Cleaning aligns with CleanIndex (registry). No conflict.

Verdict: State machine is complete and consistent with ports and actions.


5. Package and file layout

File Package Imports Contents
requirements-sysmledgraph.sysml SysmledgraphRequirements ScalarValues R1–R8
deploy-sysmledgraph.sysml Sysmledgraph ScalarValues, SysmledgraphRequirements Actions (8), port defs (4), connection defs (5), part defs (4), SysmledgraphDeployment
behaviour-sysmledgraph.sysml SysmledgraphBehaviour Sysmledgraph, SysmledgraphRequirements Events (4), SysmledgraphIndexStates
project-sysmledgraph.sysml ProjectSysmledgraph SysmledgraphRequirements, Sysmledgraph, SysmledgraphBehaviour Grouping only

config.yaml model_files order: Base, ScalarValues, requirements, deploy, behaviour, project. Correct (requirements and deploy before behaviour; project last).

Verdict: Load order and package dependencies are correct.


6. Summary

Check Status
R1–R8 satisfied at deployment; R1–R7 at part level; R8 at part level (Indexer, Cli, McpServer) and all actions
Actions have explicit satisfy to requirements
Port defs and connection defs consistent; all ends typed by port def
Part ports match connection usage bindings; no dangling ports
State machine complete; consistent with flow and actions
Package layout and config load order correct
visualize.py bdd + ibd succeed

Conclusion: Model is consistent and complete. Requirements, structure (parts, ports, connection items), and behaviour (actions, state machine) align. No changes required for consistency.