Architecture report
ArchQ Explorer

shop-architecture-fixture

9ea2c09aeab8dbee6fb74e31cfe379516a43d683 · 15 observed files · 9 whole-contract components

FAIL

21 declared-rule violation(s) found; report records violations without gating (exit code stays 0). Run archkeel validate --baseline architecture-baseline.json with an existing baseline (see onboarding). FAIL rules: APP-TYPES-NOT-DICT, ASSIGNMENT-COMPLETE, COMPONENT-NO-CYCLES (+17 more).

Rule assessments · whole run

PASS

14 rules

Required evaluator evidence is complete; decided positions have no violations.

FAIL

20 rules

A rule violation was found. Undecided evidence can coexist with that failure.

UNKNOWN

0 rules

Available evidence does not establish the result. Missing scope proof is not a pass.

NOT CHECKED

Status definition

A check was not performed or could not be completed. Read its scope and explanation. This status definition does not itself say which occurred.

Source observation: PASS · Symbol inventory: partial

Component dependencies

How to read this report

Components are declared responsibility and ownership boundaries, not classes or files. Packages here are namespace groups; they do not prove a directory or __init__.py. Modules represent source units: in Python, normally a .py file, including __init__.py. Details shows recorded file paths and separates the view group from the code container. Component roles describe architecture responsibilities; an interface node describes a language interface, such as a Python Protocol.

Gold and the component glyph mark architecture boundaries. Blue document glyphs mark modules; grey folder glyphs mark namespace groups. Classes use purple compartments, interfaces use teal circles, enumerations use pink compartments. Functions use ƒ and methods use (). Visibility: + public, − private, # protected, ~ package, ? unknown. These conventions do not claim Python access enforcement. Border verdicts and edge styles are separate from element types. Mixins appear as their own classifier and use a directed edge distinct from inheritance. Use the relationship legend to filter edges.

As-Is uses observed source facts with declared boundaries for navigation. Target uses independent declarations; missing file paths remain undeclared. Diff uses recorded Core assessments. Select for details; double-click, press Enter or Open selected to explore one level. Breadcrumbs include the kind. Drag the background to pan; use Zoom or Fit overview to change scale. Arrows run from source to target. Allowed component imports are permissions, not proof of a call or import.

Worth a look

Legend
Review question · components larger than their level · 1 candidate

1 components hold more modules than the contract has components, or more edges among their modules than it has component edges. Comparison basis at the top level: 5 components and 8 observed cross-component edges. Naming a size is evidence; giving one of them a level of its own is a decision (AD-20, AD-33). These are review questions, not violations or proof that a component should split.

ComponentModules Edges inside
store75
Snapshot and audit

Source digest 9a222a2f5b70d0144f8975ba18e1c5c0a71c9203b3412797a99d08ceaeff67ee · Dirty True.

Scope: shop/**/*.py

Contract architecture-contract.json · 600ecec7f78da6962a769d96598fe0f44d4d112319cb5c4935d0001e4ba1dd55

Complete architecture JSON and recorded evidence