{
  "version": "act 1.0.17",
  "url": "https://act101.ai/docs/porting",
  "operations": [
    {
      "name": "port_contract",
      "anchor": "op-port-contract",
      "description": "Extract behavioral contracts (signatures, error paths, guard clauses, side effects, purity, complexity) from a source file. Use before porting to understand what the target must replicate. Params: file (string) [, symbol (string)]",
      "params": "file (string) [, symbol (string)]"
    },
    {
      "name": "port_inventory",
      "anchor": "op-port-inventory",
      "description": "Compute porting inventory from the manifest \u2014 overall progress, available symbols (ported/stubbed), per-file status, and target verification. Params: none [, status (string)]",
      "params": "none [, status (string)]"
    },
    {
      "name": "port_manifest_add",
      "anchor": "op-port-manifest-add",
      "description": "Add a file mapping to the port manifest. Tracks which source file maps to which target file. Params: source (string) [, target (string), status (string), notes (string)]",
      "params": "source (string) [, target (string), status (string), notes (string)]"
    },
    {
      "name": "port_manifest_init",
      "anchor": "op-port-manifest-init",
      "description": "Initialize a new port manifest. Creates .act/port-manifest.json to track a cross-language porting project. Params: source_root (string), source_lang (string), target_root (string), target_lang (string)",
      "params": "source_root (string), source_lang (string), target_root (string), target_lang (string)"
    },
    {
      "name": "port_manifest_note",
      "anchor": "op-port-manifest-note",
      "description": "Set a top-level note on the port manifest \u2014 use for project-wide context, decisions, or conventions. Params: text (string)",
      "params": "text (string)"
    },
    {
      "name": "port_manifest_remove",
      "anchor": "op-port-manifest-remove",
      "description": "Remove a file mapping from the port manifest. Params: source (string)",
      "params": "source (string)"
    },
    {
      "name": "port_manifest_update",
      "anchor": "op-port-manifest-update",
      "description": "Update a mapping in the port manifest \u2014 change status or record ported/stubbed/skipped symbols. Params: source (string) [, status (string), ported (string[]), stubbed (string[]), skipped (string[]), notes (string)]",
      "params": "source (string) [, status (string), ported (string[]), stubbed (string[]), skipped (string[]), notes (string)]"
    },
    {
      "name": "port_order",
      "anchor": "op-port-order",
      "description": "Compute the optimal porting order \u2014 ranks remaining files by dependency depth, blocking count, and readiness. Use to decide what to port next. Params: none [, top (u32)]",
      "params": "none [, top (u32)]"
    }
  ]
}