@getrefino/onboarding
v0.1.0
Published
The engine behind `npx @getrefino/cli init`: deterministic repository inspection, copy discovery, migration planning, agent instructions and verification for adding Refino to an existing React site. Development tooling only; never part of a site's runtime
Maintainers
Readme
@getrefino/onboarding
The engine behind npx @getrefino/cli init: deterministic repository
inspection, copy discovery, migration planning, agent-instruction generation,
safe setup and verification for installing Refino into an existing React
site.
Development tooling only — nothing here runs inside a site. Most people want the CLI instead:
npx @getrefino/cli initimport { inspectRepository, planMigration, applyPlan, renderAgentInstructions, verifyIntegration } from "@getrefino/onboarding";
const inspection = inspectRepository("/path/to/site");
const plan = planMigration(inspection, { routes: ["/"] });
applyPlan(appDirectory(inspection), plan, { dryRun: true });
const markdown = renderAgentInstructions(plan);
const result = verifyIntegration("/path/to/site");verifyIntegration is entirely local: it proves that the files in the
repository agree with each other, including which Refino site they name. It
cannot prove that site still exists, because it makes no network calls and
holds no credential — the deployed site's /edit flow is what checks that, and
says so when the id is stale.
All results are plain JSON. No network calls, no model calls. It never rewrites
JSX, and it never overwrites a file the customer owns: the copy file,
package.json and .env.example are merged, never replaced.
Files Refino itself generates are different, because upgrading them is the
point. applyPlan refreshes one only when it can prove the bytes on disk are
still the ones Refino wrote — the sha256 recorded in .refino/generated.json,
or the byte-exact output of a released template for sites installed before that
file existed. A generated file with local changes is never overwritten: it is
returned in ApplyResult.generated with status review, needsReview is
true, and the current template is written beside it as <file>.refino-new.
verifyIntegration reports the same three states without changing anything.
