Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Mova Contract Writer

v1.0.0

Translate a pre-contract (output of mova-intent-calibration) into a complete, valid MOVA contract — envelope, data schema references, instruction profile, an...

0· 107·0 current·0 all-time
bySergii Miasoiedov@mova-compact

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for mova-compact/mova-contract-writer.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Mova Contract Writer" (mova-compact/mova-contract-writer) from ClawHub.
Skill page: https://clawhub.ai/mova-compact/mova-contract-writer
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install mova-contract-writer

ClawHub CLI

Package manager switcher

npx clawhub@latest install mova-contract-writer
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The SKILL.md describes translating a pre-contract into a MOVA contract and the instructions align with that purpose (parsing pre-contract, mapping fields, drafting envelope/instruction profile, human review). However, the doc requires access to a local MOVA spec at /home/mova/.openclaw/workspace/mova-spec/ which is not declared in the skill's required config paths or environment; this is an unexplained mismatch.
!
Instruction Scope
Runtime instructions ask the agent to validate against a MOVA spec located at a specific local filesystem path (/home/mova/...), which implies the agent must read files from the host filesystem. The skill metadata declared no required config paths or files, so the instructions reference system state that wasn't disclosed. Apart from that, the instructions solicit the pre-contract from the user (paste), present drafts for human approval, and do not instruct network exfiltration or other broad data collection in the visible portion.
Install Mechanism
Instruction-only skill with no install spec and no code files — nothing will be written to disk by an installer. This is the lowest-risk install model.
Credentials
The skill requests no environment variables or credentials (metadata shows none), which is proportionate to its stated function. However, it does implicitly require filesystem access to a specific MOVA spec path; that required config path should have been declared in the metadata but was not.
Persistence & Privilege
The skill is not always-enabled and is user-invocable; it does not request persistent or elevated privileges in the metadata. The instructions do not indicate modifying other skills or global agent settings.
What to consider before installing
This skill appears to perform the advertised translation work, but the SKILL.md explicitly expects a local MOVA spec at /home/mova/.openclaw/workspace/mova-spec/ for validation while the published metadata lists no required config paths. Before installing or using the skill: (1) confirm where the MOVA spec is expected to live and whether the agent will be allowed to read that path; (2) if you don't want the agent to access host files, ask the author to make schema validation optional or allow providing the spec as an uploaded artifact; (3) avoid pasting any sensitive secrets into the pre-contract you provide, and inspect the remainder of SKILL.md (it was truncated here) to ensure it doesn't later instruct network submissions or other file reads; (4) request that the author update the metadata to declare the required config path (or remove the hardcoded path) so the skill's declared requirements match its runtime behavior. Providing the full SKILL.md or clarification from the author would raise confidence and could change this assessment to benign.

Like a lobster shell, security has layers — review code before you run it.

latestvk976w0paewg5n9ajxewzqgf9mx83x22e
107downloads
0stars
1versions
Updated 4w ago
v1.0.0
MIT-0

MOVA Contract Writer

Transform a fully calibrated pre-contract into a complete MOVA contract — structured JSON with envelope, instruction profile, and episode frame — ready for execution by any MOVA-compliant runtime.

What this skill does

  1. Parses the pre-contract — reads all sections produced by mova-intent-calibration
  2. Maps to MOVA constructs — translates each pre-contract section into the correct MOVA artifact
  3. Drafts each artifact — envelope (env.*), data schema references (ds.*), instruction profile, episode frame
  4. Human review gate — each artifact is shown to the user for approval before the final contract is assembled
  5. Outputs the complete MOVA contract — a single JSON document ready for submission to a MOVA runtime

Requirements

  • A completed pre-contract with Status: VALID from mova-intent-calibration
  • MOVA spec available at /home/mova/.openclaw/workspace/mova-spec/ for schema validation

Pre-contract → MOVA mapping

Pre-contract sectionMOVA artifactNotes
ACTOR (actor, owner, reason_now)env.*.roles[]actor = sender/initiator, owner = recipient/accountable
CHANGE DEFINITION (change_target, change_type, after_state)verb_id in envelopechange_type maps to verb: action→create/update, state→route/record, result→analyze/publish
OBJECT (object_description, selection_rule)ds.* schema reference + input_data_refs[]describes what is being acted on
GOAL (goal_statement, verification_method, confirmation_owner)Episode result contractdefines expected result_status and confirmation criteria
CONSTRAINTS (forbidden_action, invariant, unacceptable_consequence)ds.instruction_profile_core_v1 ruleseach constraint → a deny or transform rule in instruction profile
SUCCESS/FAILURE statesEpisode result_status allowed valuessuccess → completed; failure → failed/cancelled/partial
DECISION POINTS (deterministic)Inline in episode frame or envelope verbdeterministic rules go into policy; human decisions go to human gates
HUMAN GATESds.instruction_profile_core_v1 HITL rulestrigger_condition maps to policy rule; pause execution and wait for human input
INPUTS (name, available, source)input_data_refs[] + input_envelopes[] in episodeunavailable inputs → blocking dependency in instruction profile
DEPENDENCIES (name, type, blocking)Instruction profile: required_resources[] or blocking rulesblocking deps → must be resolved before execution starts
ASSUMPTIONSEpisode context notes + instruction profile on_violationblocking assumptions → deny rule; safe assumptions → warn rule
TIME LIMITS (deadline, max_attempts, stop_condition)Instruction profile limits or episode finished_at constraintencode as policy constraints
AMBIGUITIESAnnotation in meta.ext of the envelopedocumented but not executable until resolved
LINEARITY CHECKValidates that the episode frame has no hidden branchesnon-linear → decision points must appear as explicit HITL gates

Verb selection guide

Change type from pre-contractVerbUse when
Creating something newcreateafter_state is a new record or artifact
Modifying existing dataupdateafter_state is a changed version of an existing record
Making a routing/selection decisionroutethe task is choosing between options
Recording a fact or observationrecordthe task produces an audit entry or episode
Publishing to a registrypublishthe task distributes a catalog or configuration
Analyzing dataanalyzethe task produces findings, scores, or risk bands
Planning a sequence of stepsplanthe task produces a plan or strategy
Explaining a decisionexplainthe task produces a human-readable justification
Summarizing contentsummarizethe task condenses input into a shorter form

Step-by-step process

Step 1 — Receive and validate the pre-contract

Ask: "Paste the pre-contract document (output of mova-intent-calibration)."

Check:

  • Status must be VALID — if BLOCKED, stop here and tell the user to resolve the blocking items first
  • All required sections must be present
  • No unresolved blocking ambiguities

Step 2 — Identify the core MOVA constructs

From the pre-contract, determine:

  1. Verb — use the Verb selection guide above
  2. Envelope ID — format: env.[domain]_[operation]_v1 (e.g. env.procurement_po_review_v1)
  3. Primary data schema — format: ds.[domain]_[object]_v1 (e.g. ds.procurement_po_v1)
  4. Roles — map actor → initiator, owner → accountable, confirmation_owner → approver
  5. Instruction profile ID — format: [domain]_policy_v1 (e.g. procurement_po_policy_v1)

Show the user this mapping and ask for confirmation before continuing.

Step 3 — Draft the envelope

{
  "envelope_id": "env.[domain]_[operation]_v1",
  "verb": "[verb from step 2]",
  "roles": {
    "initiator": "[actor from pre-contract]",
    "accountable": "[owner from pre-contract]",
    "approver": "[confirmation_owner from pre-contract]"
  },
  "payload": {
    "object_ref": {
      "data_type": "ds.[domain]_[object]_v1",
      "description": "[object_description from pre-contract]"
    }
  },
  "policy_profile_id": "[instruction profile ID]",
  "meta": {
    "reason": "[reason_now from pre-contract]",
    "goal": "[goal_statement from pre-contract]"
  }
}

Show to user. Ask to approve or edit.

Step 4 — Draft the instruction profile

{
  "schema_id": "ds.instruction_profile_core_v1",
  "profile_id": "[instruction profile ID]",
  "security_model_version": "mova_security_default_v1",
  "rules": [
    // One rule per CONSTRAINT from pre-contract
    {
      "rule_id": "constraint_[n]",
      "description": "[constraint statement]",
      "target": {
        "kind": "action",
        "verb_id": "[verb]"
      },
      "effect": "deny",   // deny for forbidden_action/unacceptable_consequence; warn for safe assumptions
      "condition": "[when this rule fires]",
      "rationale": "[why this constraint exists]"
    }
  ],
  "hitl_gates": [
    // One entry per HUMAN GATE from pre-contract
    {
      "gate_id": "gate_[n]",
      "trigger_condition": "[trigger_condition from pre-contract]",
      "question_for_human": "[question_for_human from pre-contract]",
      "valid_resolution_criteria": "[valid_resolution_criteria from pre-contract]",
      "on_no_response": "block"
    }
  ],
  "on_violation": "block"
}

Show to user. Ask to approve or edit.

Step 5 — Draft the episode frame

{
  "schema_id": "ds.mova_episode_core_v1",
  "episode_type": "execution/[domain]_[operation]",
  "mova_version": "6.0.0",
  "verb_id": "[verb from step 2]",
  "tool_id": 0,
  "executor": {
    "role": "ai_agent",
    "skill_id": "mova-contract-writer"
  },
  "input_envelopes": [
    { "envelope_type": "env.[domain]_[operation]_v1" }
  ],
  "input_data_refs": [
    // One entry per INPUTS REQUIRED that is available
    { "data_type": "ds.[domain]_[object]_v1", "data_id": "[from pre-contract inputs]" }
  ],
  "result_contract": {
    "success_statuses": ["completed"],
    "failure_statuses": ["failed", "cancelled"],
    "partial_allowed": [true/false from pre-contract partial_success_allowed],
    "verification_method": "[verification_method from pre-contract]",
    "confirmed_by": "[confirmation_owner from pre-contract]"
  },
  "context": {
    "assumptions": "[assumptions from pre-contract]",
    "ambiguities": "[any remaining ambiguities from pre-contract]"
  }
}

Show to user. Ask to approve or edit.

Step 6 — Assemble and output the complete MOVA contract

When all three artifacts are approved, output the final contract:

MOVA CONTRACT  —  [task title from pre-contract]
Generated: [date]
Spec version: MOVA 6.0.0
Pre-contract: VALID

━━━ ENVELOPE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[envelope JSON]

━━━ INSTRUCTION PROFILE ━━━━━━━━━━━━━━━━━━━━━━
[instruction profile JSON]

━━━ EPISODE FRAME ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[episode frame JSON]

━━━ CONTRACT SUMMARY ━━━━━━━━━━━━━━━━━━━━━━━━━
Verb:             [verb]
Envelope:         [envelope_id]
Policy profile:   [profile_id]
HITL gates:       [count]
Constraint rules: [count]
Open ambiguities: [count from pre-contract]
Status:           READY FOR EXECUTION / PENDING AMBIGUITY RESOLUTION

Spec reference

All schema structures are validated against:

  • /home/mova/.openclaw/workspace/mova-spec/schemas/ds.mova_episode_core_v1.schema.json
  • /home/mova/.openclaw/workspace/mova-spec/schemas/ds.instruction_profile_core_v1.schema.json
  • /home/mova/.openclaw/workspace/mova-spec/docs/mova_core.md
  • /home/mova/.openclaw/workspace/mova-spec/docs/mova_security_layer.md

Use mova-spec-guide skill to look up any concept while drafting.

Rules

  • NEVER accept a pre-contract with status BLOCKED — stop and tell the user what to resolve first
  • NEVER invent verb IDs, schema IDs, or policy values outside the MOVA verb catalog — read from spec
  • NEVER skip the human review step for each artifact — the user must approve envelope, profile, and episode frame individually
  • NEVER produce a contract with unresolved blocking ambiguities — mark it PENDING AMBIGUITY RESOLUTION
  • If the pre-contract has optional sections marked not_required — omit the corresponding MOVA fields
  • Generated IDs (envelope_id, profile_id, episode_type) follow MOVA naming conventions: lowercase, underscores, versioned with _v1
  • tool_id = 0 unless the pre-contract specifies an external tool channel

Comments

Loading comments...