Logo
NeoArc Studio

Audit Trail and Non-Repudiation

Every architectural change is tracked through git with semantic diff analysis that classifies changes as structural or cosmetic. Resource history, identity attribution, and command transparency provide a complete audit trail.

Governance without an audit trail is governance on trust. NeoArc's architecture is stored as files in git, which means every change, by every person, at every point in time, is recorded in version history. But NeoArc goes beyond raw git logs by adding a semantic diff engine that understands architectural file formats, classifies changes by their impact, and presents history in architectural terms rather than line-level text diffs.

Semantic Diff Engine

When you compare two versions of a NeoArc file (whether between commits, branches, or baselines), the semantic diff engine parses both versions into domain models, matches resources by UUID, and classifies every change.

Structural vs Cosmetic Classification

The distinction between structural and cosmetic changes determines whether a change requires governance review. The classification is specific to each resource type.

Resource TypeStructural PropertiesCosmetic Properties
Graph Node (Entity)Label, colour, properties, tags, constraintsX/Y position, isPinned
Graph EdgeSource, target, cardinality, labelWaypoints, colour
SchemaType, extends, fieldsName, description
Schema FieldName, type, required, validationDescription, deprecated flag
REST EndpointMethod, path, parameters, request/response bodySummary, description
Diagram ShapeShape type, text, metadataX/Y, width/height, colours
Diagram ConnectionSource/target shape IDs, labelsWaypoints, stroke styles
PageTitle, isPublishedAuthors, published date
ADRStatus, decision, typeContext, consequences

Resource History

Every file in the workspace has a per-resource timeline showing its complete change history. The timeline is presented as a vertical list with commit SHA, message, author, and relative time for each entry. Clicking an entry expands it to show the semantic diff for that specific commit, lazy-loaded and cached for performance.

This means you can answer questions like "who last changed this schema and what did they change?" or "when was this entity deprecated and by whom?" directly from the editor, without switching to a git client.

Command Transparency

Every git operation NeoArc performs is logged with the equivalent CLI command, duration, and timestamp. The UI can display what commands ran behind the scenes, so architects who are comfortable with git can verify exactly what happened.

Identity Attribution

NeoArc uses the git identity (name and email from git config) to attribute every action. This identity is used for:

Commit Attribution
Every checkpoint (commit) records the author's name and email. Combined with signed commits, this provides non-repudiation: the author cannot deny making the change.
Task Board Comments
Comments on impact cards and task board entries are attributed to the git identity, creating an audit trail of who said what during migration planning.
Baseline Creation
Each baseline records who created it (createdBy field), providing accountability for who approved a specific architectural state.
Activity Logs
Task board activity entries (card moves, flag changes, priority updates) record the author, creating a detailed audit trail of governance workflow.

Comparison Views

The audit trail supports three levels of comparison, all using the semantic diff engine and rendered by the same Change Summary component.

ComparisonUse Case
Track comparison (branch vs branch)See what architectural changes exist on a feature branch before merging
Baseline comparison (baseline vs baseline)See how the architecture evolved between two approved states
Resource history (commit vs previous commit)See the full change history of a specific file over time

Conflict Resolution

When merge conflicts occur (after sync, pull, or merge operations), NeoArc presents them as architectural choices rather than raw JSON text. The semantic conflict view partitions changes into independent changes (auto-resolvable, only one side modified a resource) and competing changes (both sides modified the same resource, requiring an architect's decision). This means conflicts are resolved at the resource level with "Accept Yours" or "Accept Theirs" per entity, not at the text line level.

Change Feed and Timeline Browser

The change feed provides a chronological list of all checkpoints with architectural analysis. Each entry shows a colour-coded category badge, commit message, author, and date, with expandable details showing change counts by resource type. The timeline browser presents this as a visual horizontal timeline with checkpoints as circles and baselines as diamonds, providing a scrubber-style view of the project's architectural evolution.