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.mdRepresentative 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: