Dependency direction
Infrastructure and product surfaces depend inward. Core does not reach outward to hosts, providers, renderers, or AI SDKs.
Architecture
Nexus Scholar Core is shaped as a strict research workflow kernel. Apps, renderers, AI assistants, providers, and storage can make the system useful, but they must not become scientific authority by accident.
Core owns reconstructable scientific records; applications own experience, orchestration, persistence, and integrations. The dependency direction points inward, and the authority direction is explicit: suggestions and projections can support decisions, but they do not replace approved protocol content, evidence records, human decisions, or provenance.
The working product rule is: strict inside, simple outside, AI-assisted everywhere, human-authorized science.
The repository is organized around a domain kernel with carefully separated supporting layers. The Core modules should not depend on UI frameworks, ASP.NET Core, EF Core, provider SDKs, storage SDKs, or concrete model clients. Those belong outside the domain boundary.
Infrastructure and product surfaces depend inward. Core does not reach outward to hosts, providers, renderers, or AI SDKs.
Core remains UI-free. UiContracts gives renderers a shared block language without giving UI code authority over scientific records.
The architecture is easiest to understand as a pipeline of records. Each stage has a bounded job and a clear non-claim. Search observes. Deduplication structures duplicate evidence. Screening records human decisions. Full Text binds artifact bytes. Reporting derives checkable outputs. Bundles export verifiable packages. Provenance ties the history together.
The modules are arranged so later stages cite earlier evidence instead of overwriting it.
The architecture exists to preserve distinctions that normal app workflows often blur.
AI belongs in the architecture as assistance, not authority. A model can explain warnings, draft rationales, compare candidate records, suggest workflow blocks, or propose a command. A trusted application layer must validate that proposal, show its evidence, and require a human action when the action changes scientific state.
AI can summarize why two records look similar. The merge decision remains a human gate over preserved evidence.
AI may draft a rationale from evidence refs. A final screening decision still needs an identified human actor and criteria digest.
These are the first public architecture use cases the project should make easy to understand. They are written as flows because architecture is only useful if it explains how real research work moves through the system.
A researcher imports RIS, BibTeX, or Scopus CSV exports. Core records the exact source-file digest, parser metadata, imported records, skipped rows, parser warnings, source-specific identifiers, and no-id candidates. The UI can show a warning block, but it cannot pretend warnings are resolved.
Deduplication clusters exact stable identifier overlaps automatically, but fuzzy title or no-id matches become review-required candidates. An app can show side-by-side comparison blocks and AI explanations, while the final merge/reject/unresolved action remains human-authorized.
Screening consumes a locked candidate set, applies criteria with a canonical digest, and records include, exclude, or needs-review decisions from identified human actors. AI suggestions may be cited, but they are not final decisions.
The Full Text contract starts with no-network, user-supplied or deterministic artifact evidence. The artifact identity is exact accepted bytes plus raw-artifact-bytes digest. Local paths, URLs, app rows, and download routes remain projections unless transformed into accepted Core records.
A review bundle gathers governed records, artifact entries, manifests, and digest bindings for transport or replay. The bundle verifier reports structured findings before anything is trusted or overwritten.
NexusScholar.UiContracts stays renderer-neutral and has no Avalonia, web, mobile, CLI-renderer, provider, or AI SDK dependency.NexusScholar.Avalonia.Blocks may render WorkspacePlan data, but it must not depend on Core domain projects.