SEIF Docs

Assisted migration

SEIF Migration turns one existing application into a new, file-native SEIF Context Project. It starts with a local, read-only inventory and a reviewed plan. It does not run the application, install packages, execute hooks, copy source code, copy credentials, or alter the original application.

Journey

  1. Discover one user-authorized application folder. The scanner follows no symlinks and skips .git, .seif, node_modules, generated output, sensitive filenames, special files, binary files, over-large files, and credential-bearing text.
  2. Clarify the first capability, its user or actor, permitted context, tenant and audience boundary, context tests, and integration owner.
  3. Plan a deterministic seif.migration-plan.v1 proposal. Its digest binds the sanitized input inventory and selected HTTP/MCP path.
  4. Review the exclusions, risks, unanswered questions, generated SEIF files, and destination. A plan does not create any files.
  5. Apply only to a new empty folder outside the source application, with the reviewed digest and explicit approval. The source application is never changed.
  6. Integrate manually in the legacy repository after its own code review and test process. The generated project includes an integration review, not an automatic source patch.
# metadata-only, local scan
seif migration scan /path/to/application

# read-only proposal
seif migration plan /path/to/application --integration recommend

# only after reviewing the exact plan digest
seif migration apply /path/to/application \
  --target /path/to/new-seif-project \
  --plan sha256:... --approved

The dedicated local MCP server is separate from the Context MCP server:

seif migration mcp

It exposes migration_scan, migration_plan, migration_render, and migration_apply. The apply tool requires approved: true, the exact planDigest, a new empty destination, and source/destination paths that do not overlap. Migration tools are intentionally absent from hosted project MCP endpoints.

HTTP or MCP

PathAppropriate whenWhat SEIF observesWhat it cannot prove
HTTPThe legacy application owns a request/turn gateway and can call seif.http-turn.v1Server-issued turn, delivered context, gateway completion or reported failureModel comprehension, arbitrary tool execution, generated final output, or user receipt
MCPThe application or agent runtime can register a profile-bound context server and manage caller tokensContext-tool calls recorded by the SEIF MCP serverWork outside those calls, model reasoning, output delivery, or token use by another runtime
Neither yetThe capability boundary, authorized content, or runtime owner is not readyNo runtime telemetryAnything about production behavior

The migration plan recommends HTTP only when it sees an HTTP server or route definition. A user can select MCP or HTTP anyway, but the plan records an integration-fit warning when the corresponding surface was not detected.

What a generated project contains

The generated folder has seif.yaml, one empty consumer/profile, a safe objective, a metadata-only inventory, migration questions, an integration review, and the immutable reviewed plan under migration/. It deliberately starts with no copied business facts. Add only owner-reviewed, authorized materials and then define Context Tests.

The generated AGENTS.md is a provider-neutral pointer. It names the plan and migration MCP workflow, but never authorizes an agent to access the old repository, customer data, tenant data, secrets, or production systems.

Boundaries and evidence

A migration plan is canonical structured evidence for that conversion. It records source digest, scan policy, skipped entries, risks, selected integration path, proposed generated artifacts, and explicit unanswered questions. The optional vector index is derived retrieval only. It is not an authorization record, source of truth, or substitute for reviewing the plan.

Plans expire naturally when the sanitized source inventory changes. Apply recomputes the plan and rejects a stale digest. A non-empty destination, source/destination overlap, malformed plan, or missing approval is refused without modifying the source application.

Optional documentation index

docs/migration.md is canonical migration documentation. The searchable corpus, however, is the whole docs/ tree: seif migration docs (and the diagnostic panel in the web Contexto screen) searches every Markdown file under docs/, so a question about the Compass, profiles, the suite or going live finds the right page, not only the migration guide. Searching works lexically without network access; a separately configured Qdrant index speeds semantic retrieval when an embedding endpoint is available.

VariableMeaning
SEIF_MIGRATION_QDRANT_URLQdrant base URL. Localhost HTTP is allowed; remote endpoints must use HTTPS.
SEIF_MIGRATION_QDRANT_COLLECTIONOptional collection name. Default: seif-migration-docs.
SEIF_MIGRATION_QDRANT_API_KEYOptional Qdrant key. Read only from the environment and never written or displayed.
SEIF_MIGRATION_EMBEDDINGS_URLOpenAI-compatible /v1/embeddings endpoint.
SEIF_MIGRATION_EMBEDDINGS_MODELEmbedding model name.
SEIF_MIGRATION_EMBEDDINGS_API_KEYOptional embedding service key. Read only from the environment.
SEIF_MIGRATION_ALLOW_HTTPSet only to 1 for a trusted private embeddings endpoint such as an operator-managed tailnet Ollama. Public endpoints still should use HTTPS.

Use seif migration docs status to inspect configuration and reachability. seif migration docs index --approved is explicit and idempotent: it creates the named collection only when absent, then upserts content-hashed chunks of every doc. It never deletes a collection or its points. The index is derived: when the docs change, re-run index --approved to refresh semantic retrieval (the manifest digest changes); lexical search reflects the change at once. Qdrant search needs both Qdrant and an embedding endpoint; if either is absent or unavailable, search returns canonical lexical results with a typed remote status.

Never place API keys in project files, migration plans, pointer documents, command arguments, logs, or screenshots.