Scan packet example

A scan packet is a snapshot of static evidence.

This representative packet shows how TraceMap records coverage, deterministic facts, and human-readable summaries without storing raw source snippets by default.

Manifest

The manifest names the repository state, scan scope, and gaps.

{
  "scanId": "scan-orders-api-sample-5e7fe17",
  "repoName": "orders-api-sample",
  "remoteUrl": null,
  "branch": "main",
  "commitSha": "5e7fe17",
  "scannerVersion": "tracemap-dotnet/0.1.0",
  "scannedAt": "2026-06-14T00:00:00+00:00",
  "analysisLevel": "Level1SemanticAnalysisReduced",
  "buildStatus": "FailedOrPartial",
  "solutions": [
    "Orders.Api.sln"
  ],
  "projects": [
    "src/Orders.Api/Orders.Api.csproj"
  ],
  "targetFrameworks": [
    "net8.0"
  ],
  "knownGaps": [
    "MSBuildWorkspace project load or Roslyn compilation reported gaps; syntax fallback still ran."
  ]
}

Facts

Each fact carries a rule and evidence tier.

{"factId":"fact-route-orders-get","scanId":"scan-orders-api-sample-5e7fe17","repo":"orders-api-sample","commitSha":"5e7fe17","projectPath":"src/Orders.Api/Orders.Api.csproj","factType":"HttpRouteBinding","ruleId":"csharp.syntax.aspnetroute.v1","evidenceTier":"Tier3SyntaxOrTextual","sourceSymbol":"Orders.Api.OrdersController","targetSymbol":"Orders.Api.OrdersController.Get","contractElement":"GET /api/orders/{id}","evidence":{"filePath":"src/Orders.Api/OrdersController.cs","startLine":42,"endLine":42,"snippetHash":"sha256:route-example","extractorId":"CSharpSyntaxExtractor","extractorVersion":"tracemap-dotnet/0.1.0"},"properties":{"httpMethod":"GET","routeTemplate":"/api/orders/{id}"}}
{"factId":"fact-property-order-status","scanId":"scan-orders-api-sample-5e7fe17","repo":"orders-api-sample","commitSha":"5e7fe17","projectPath":"src/Orders.Api/Orders.Api.csproj","factType":"PropertyAccessed","ruleId":"csharp.semantic.propertyaccess.v1","evidenceTier":"Tier1Semantic","sourceSymbol":"Orders.Api.OrderMapper.Map","targetSymbol":"Orders.Contracts.OrderDto.Status","contractElement":"Status","evidence":{"filePath":"src/Orders.Api/OrderMapper.cs","startLine":77,"endLine":77,"snippetHash":"sha256:property-example","extractorId":"CSharpSemanticExtractor","extractorVersion":"tracemap-dotnet/0.1.0"},"properties":{"propertyName":"Status"}}
{"factId":"fact-gap-workspace","scanId":"scan-orders-api-sample-5e7fe17","repo":"orders-api-sample","commitSha":"5e7fe17","projectPath":"src/Orders.Api/Orders.Api.csproj","factType":"AnalysisGap","ruleId":"csharp.semantic.workspace.v1","evidenceTier":"Tier4Unknown","sourceSymbol":null,"targetSymbol":null,"contractElement":null,"evidence":{"filePath":"src/Orders.Api/Orders.Api.csproj","startLine":1,"endLine":1,"snippetHash":null,"extractorId":"CSharpSemanticExtractor","extractorVersion":"tracemap-dotnet/0.1.0"},"properties":{"message":"MSBuildWorkspace project load reported gaps; syntax fallback continued."}}

Report excerpt

The Markdown report is for review, not proof of runtime behavior.

## Coverage

- Analysis level: Level1SemanticAnalysisReduced
- Build status: FailedOrPartial
- Coverage note: reduced semantic coverage; syntax fallback still ran.

## Known Gaps

- csharp.semantic.workspace.v1
  - Project load failed, syntax fallback continued.

## Dependency Surfaces

- HTTP route: GET /api/orders/{id}
  - Rule: csharp.syntax.aspnetroute.v1
  - Tier: Tier3SyntaxOrTextual
  - File: src/Orders.Api/OrdersController.cs:42

Reduced coverage changes the conclusion.

A reduced scan can still route useful review work. It cannot prove that no matching evidence exists across the whole repository.