Skip to content

T-TL3I-harness-import-bootstrap

Status: closed/done · Impact: high · Complexity: medium

Bootstrapping the canonical model must not require hand-transcribing 37 skills. A one-time importer reads an existing Claude surface (skills, conventions, and settings hooks/MCP/permissions) into the canonical model, so the model is seeded faithfully and the Claude surface stops being the source of truth.

LocationRole today
plugin/lib/services/harness/derive.tsReads skills + conventions + manifest only; frames Claude as the source of truth.

An importClaude(pluginRoot) that produces the canonical model — capabilities from skills/commands, documents from conventions, and hooks/mcpServers/permissions parsed from .claude/settings*.json / .mcp.json. Framed as a migration aid, not the ongoing truth.

  1. Rename/reframe derive.tsimport/claude.ts returning the canonical model.
  2. Parse settings hooks, permissions, and MCP servers into the host-neutral shapes.
  3. Keep round-trip parity (import → export claude → import is identity).
LocationKindChange
plugin/lib/services/harness/import/claude.tsnewCanonical importer.
plugin/lib/services/harness/derive.tsdeleteSuperseded by the importer.
plugin/lib/services/harness/tests/import-claude.test.tsnewImport + round-trip tests.
  • Importer captures capabilities, documents, hooks, mcpServers, permissions.
  • import → export claude → import round-trips on the real surface.
  • tsc + tests green.

Importers for other hosts; only Claude is the bootstrap source.


← Back to Tasks