# Plans, disable and offboarding

Studio shows the current eligibility and usage decision for your project.
Preview availability does not grant permission to link, rebuild or enable publishing.
Use the displayed quota, period and refusal reason rather than inferring a limit
from a language count or an older pricing page.

Usage can be observed without being billed. A usage estimate is not an invoice;
final and corrected records are labeled separately. These docs do not announce
new SDK prices or per-language charges.

## When eligibility lapses

Doctorine-side actions follow the displayed billing restriction. Already-emitted
workflows live in your repository and can keep running there. During the configured
lapse window, Doctorine continues accepting and journaling in-flight receipts;
receiving one does not restore eligibility.

During days 0–30, eligible receipts continue through lapse processing; day 30 also
schedules the final notice. From day 31, Doctorine requests publishing be disabled.
The repository change may remain pending until GitHub access and the write succeed.
A payment wall may request that change earlier. Read the current banner for your
workspace's state. Disable and unlink remain available under a billing restriction.

## Disable or unlink

For npm/PyPI uploads, disabling the preference affects subsequent publish jobs
after convergence. It does not retract a run already in progress, remove a
published package, or stop release PR/tag creation.

Go is tag-served: disabling this preference does not prevent new module-version
tags. Stop the relevant GitHub release workflow or merges if that is your intent;
review any in-flight run separately.

Unlink to disconnect a repository from the target. Review the cleanup instructions
and any cleanup PR. If the App has lost access, the UI lists manual cleanup instead
of claiming it completed. Confirm only the work you performed.

## Finish the provider cleanup

Review each item at the provider, especially when the App has already been removed:

- Remove the package's trusted publisher from npm or PyPI.
- Delete `NPM_TOKEN` and any other dedicated registry secrets from GitHub; revoke
  the corresponding credential at the registry too.
- Review the dedicated publishing environment and `DOCTORINE_PUBLISHING` variable.
- Disable or remove remaining Doctorine workflows according to the cleanup PR.
- Review remaining Doctorine branches, tags and releases. Preserve anything your
  consumers need; deleting a tag can break downstream installations.
- Remove the App installation or selected-repository access when no other docs or
  SDK connection needs it.

Your existing generated source and registry releases remain customer-owned.
Deleting those outputs is a separate destructive choice; cancellation, lapse or
unlink is not a request to erase them.

## Related pages

- [Doctorine SDK documentation](../index.md)
- [Publish SDKs to registries](./publish-sdks.md)
- [Set up a registry publisher](./registry-setup.md)
- [Doctorine App permissions](./app-permissions.md)
- [Keep custom code during regeneration](./custom-code.md)
- [Troubleshoot an SDK release](./troubleshooting.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
