This document is the deeper reference for agents and maintainers. The root entry docs such as AGENTS.md, CLAUDE.md, and .qwen/QWEN.md are intentionally kept lighter and should stay focused on durable project facts, hard constraints, and navigation. For the full repository knowledge map, start at docs/DESIGN.md.
Use the instruction stack in this order:
CLAUDE.mdAGENTS.md.qwen/QWEN.md.cursor/rules/scholaraio.mdc.clinerules.windsurfrules.github/copilot-instructions.md.claude/skills/<name>/SKILL.mdPractical rule:
ScholarAIO treats repository-local Markdown as the system of record for agent
context. AGENTS.md is the map injected early in agent sessions; it should not
become the encyclopedia.
Key indexes:
docs/DESIGN.md: repository knowledge map and directory rolesdocs/design-docs/index.md: architecture and runtime design authoritiesdocs/generated/index.md: generated reference rulesdocs/product-specs/index.md: product behavior spec rulesInternal plans, validation records, and audits are intentionally excluded from the published documentation site.
The canonical project skill source is:
.claude/skills/<skill-name>/SKILL.mdCross-agent discovery wrappers expose the same skill set through:
.agents/skills/.qwen/skills/skills/For reuse from another project, prefer the automated registration command:
scholaraio setup agent
scholaraio setup agent --apply
scholaraio setup agent check
It previews and applies shell runtime wiring, Codex/OpenClaw global skill discovery, project-local wrappers for supported hosts, and Claude Code plugin instructions where automation is not possible.
Project-local wrappers are local machine integration blocks. They may contain absolute paths to the active ScholarAIO checkout and config, so review them before committing target-project files.
Project guidance for maintaining skills:
SKILL.md focused on entry instructions and decision rulesSKILL.mdShared skills route by the task’s required capability and output contract, not by the host or Agent brand:
| Route | Use it when |
|---|---|
| Current-session native capability | The capability is actually exposed in this session and can complete the one-off reading, reasoning, writing, browsing, or visual task |
| ScholarAIO core CLI | The task needs library access, provenance, persistent notes, reproducible IR, deterministic Office files, or another tested project contract |
| Optional sidecar or external extension | The user explicitly requests it, or the native/core route cannot meet a specialized rendering or benchmark contract |
Never infer tool availability from an Agent name. Check the capabilities that are actually available, select the smallest route that satisfies the output, and state any verification boundary. This keeps the canonical skills portable while still allowing host-specific setup commands in dedicated integration documentation.
Representative skills:
search, show, ingest, workspace, audit, translateacademic-writing, nature-workflow, literature-review, paper-guided-reading, paper-writing, citation-check, writing-polish, review-response, research-gap, poster, technical-reportdraw, document, publish, scientific-runtime, scientific-tool-onboardingScholarAIO’s canonical implementation namespaces are:
scholaraio/core/scholaraio/providers/scholaraio/stores/scholaraio/projects/scholaraio/services/scholaraio/interfaces/cli/High-signal mental model:
core/: config, logging, runtime foundationsproviders/: external APIs, parsing backends, transport adaptersstores/: persistent storage helpers and durable library rootsprojects/: workspace and project-level structuresservices/: business logic and orchestrationinterfaces/cli/: parser, startup, and user-facing command handlersThe breaking cleanup generation removed legacy public facades such as
scholaraio.index, scholaraio.workspace, scholaraio.translate, and
scholaraio.ingest.pipeline.
Current import rules:
scholaraio.cli is only the published entrypointscholaraio.interfaces.cli.compatFresh-layout runtime:
data/libraries/data/spool/data/state/workspace/published/Breaking cleanup behavior:
data/papers/, data/explore/, data/proceedings/, and data/inbox* are no longer opened implicitlyscholaraio migrate upgrade --migration-id <id> --confirmWorkspace rules:
workspace/<name>/ is a free-form user project tree, not a rigid scaffoldrefs/papers.jsonworkspace.yaml is additive metadata onlyworkspace/_system/Migration rules:
.scholaraio-control/scholaraio migrate upgrade --migration-id <id> --confirm for the normal one-command upgrade pathscholaraio migrate plan|verify|run|cleanup|finalize only when inspecting or repairing individual migration stepscitation_styles, toolref, explore, proceedings, spool, and papersmigrate finalize --confirm is the hardened one-click post-migration cleanup flow for real user rootsScholarAIO is meant to be used through an agent, not only through direct shell scripting.
Agents should:
workspace/When analysis should persist across sessions, use paper-level notes.md.
Conventions:
<papers_dir>/<Author-Year-Title>/notes.md## YYYY-MM-DD | <source> | <analysis type>scholaraio show "<paper-id>" --append-notes "..." is the user-facing append pathUseful mental model:
notes.mdUse the smallest doc that answers the question:
docs/index.mddocs/DESIGN.mddocs/getting-started/agent-setup.mddocs/getting-started/installation.mddocs/getting-started/configuration.mddocs/guide/cli-reference.mddocs/guide/writing.mddocs/design-docs/directory-structure-spec.mddocs/design-docs/directory-migration-sequence.mddocs/design-docs/migration-mechanism-spec.mdThe maintenance rule for this repo is simple: