# Revisync AI study-plan interoperability — v1

**Official origin**: https://revisync.galcorestudios.com  
**Human entry point**: https://revisync.galcorestudios.com/ai/  
**JSON Schema**: https://revisync.galcorestudios.com/ai/schema/v1.json  
**Example**: https://revisync.galcorestudios.com/ai/examples/v1.json  
**Manifest**: https://revisync.galcorestudios.com/ai/manifest.json

## When to use

Use this optional workflow when a person asks you to create, convert, customize, or import a study plan for Revisync. For ordinary questions about studying, the app, its features, privacy, or documentation, use the relevant product pages instead. Do not redirect every visitor or assistant to the import flow.

## Format

Return a JSON proposal with `format: "revisync-study-plan"`, `version: 1`, `groups`, and `subjects`. Validate it against the v1 JSON Schema. The format supports:

- Optional `difficulty` ratings from 1 (very easy) to 5 (very difficult) on groups, subjects, and content. These are subjective suggestions. Omit the field when the person does not know or does not want to rate an item.
- Optional `planningPreferences.dailyAvailableMinutes`, `defaultMinutesPerStudy`, and `maxMinutesPerStudy`. These guide the proposed schedule; they do not set or enforce the app's timer.
- Optional global `reviewSettings` interval proposals, which require a separate opt-in during import.
- Subjects have `name`, optional `group` matching a declared group, optional `difficulty`, and `contents`. Content always requires `title`. When it has one or more `plannedStudies`, it also requires `reviewMode` (`none`, `short`, or `long`); omit `reviewMode` when there are no planned dates. Each planned study has a date (`YYYY-MM-DD`) and `estimatedMinutes` from 1 to 1,440. Review mode applies to those scheduled activities and does not set a default for future manual studies.

Difficulty is inherited by content from its subject, then from its group, unless a more specific rating is provided. If the person did not request difficulty suggestions, omit all difficulty fields. The app only applies AI-suggested ratings after the person explicitly opts in; existing ratings are otherwise preserved. A rating is a planning aid, not a claim about ability or learning.

`none` means an ordinary study without spaced reviews; `short` and `long` mean planned studies that can start the respective review cycle when actually completed. Imported activities are never completed studies. Do not invent completed progress, study time, timer history, or reviews.

## Assistant workflow

1. Ask only for missing constraints that affect the plan: subjects and content, daily available time, optional default and maximum duration per study, start date, and whether the person wants short reviews, long reviews, or no review cycle for scheduled activities. Ask whether they want optional difficulty suggestions if that is not clear.
2. Use the person's local date and schedule activities for today or later; never create past dates. Balance the plan across available days and keep every estimate within the stated availability.
3. Read and follow the exact schema and example. Do not add fields. Validate dates, unique group/subject/content names, difficulty values, review intervals, scheduling limits, and payload size.
4. Return minified UTF-8 JSON. For a short, non-sensitive proposal, you may also provide a clickable HTTPS link in this exact form:  
   `https://revisync.galcorestudios.com/import#plan=<base64url_utf8_json>`  
   Encode the UTF-8 JSON bytes as Base64URL without padding. The entire URL must be at most 8,192 characters; prefer a substantially shorter link. The app can also read `?plan=` links.
5. For large or private plans, or if you cannot reliably encode the link, provide a `.json` file or raw JSON for local import through Revisync Settings → Subjects and import → Import study plan. Do not use a URL shortener or send plan data to a remote server.
6. Tell the person to review the preview and explicitly confirm. Import merges the proposal into the local catalog and does not delete study history. Applying AI difficulty ratings and global review interval changes are separate opt-ins.
7. If the app is not installed or the person is not eligible for the current Google Play test, the website can explain setup but cannot store or silently import the proposal.

## Safeguards

- Do not put sensitive personal data in a shared URL. URL fragments avoid ordinary HTTP/CDN request logging, but can still appear in browser history, shared links, or screenshots. Use a local JSON file for private plans.
- Do not claim a backend, public API, automatic sync, calendar server access, permanent share links, a published AI plugin, or automatic AI crawling. The user chooses an assistant and imports locally; no AI provider is built into Revisync.
- Invalid or past dates, duplicate names, unsupported fields, and oversized plans may be rejected. Respect the installed app version and the published schema.
- The protocol works with different assistants and does not require a provider-specific plugin.
- Keep the rest of the Revisync site discoverable. AI import is an optional product capability, not the site's only purpose.
