Skip to content

Methodology

A recording of today's work.
A Skill agents can run.

Freeze a redacted recording of the source app, map every step to an MCP tool already included in your project, and publish a governed Skill pack. Steps execute through those tools, not by replaying browser clicks.

Constructed reference

Create a sample category

2/2 operations bound. Typed values are redacted. You choose the tool for each step — the model does not.

Binds

binds.json

  1. Open the new category form.list_categories · GET /categories · operator-explicit
  2. Enter the category name. | Submit the new category.create_category · POST /categories · operator-explicit

Limits

What this sample shows

This is a constructed reference, not a production run. Steps call the mapped MCP tools. They do not replay the source UI or invent new REST tools.

SKILL.md

create-a-sample-category

---
name: create-a-sample-category
description: "Document how an operator creates an inventory category."
metadata:
  derived_from: workflow_capture
  source_id: "sample-category"
  project_id: "constructed-reference"
  dataset_hash: "sha256:4d0bb3d7ce4b40388740e973df3a9cc080a6b3b928e4a07192b6161a96f27bc6"
  compiler_version: "1.0.0"
---

## Summary

Document how an operator creates an inventory category.

## Trigger Conditions

Use this skill when the operator needs this outcome:

The source system shows the new sample category.

## Inputs Required

- Category name

## Outputs

The source system shows the new sample category.

## Tool Sequence

1. Open the new category form. — call `list_categories`
2. Enter the category name. | Submit the new category. — call `create_category`

## Honesty

Engagement observed. Recalibrates with your data.

binds.json

[
  {
    "operationId": "workflow_fixture:op_1",
    "mappingId": "map-list-categories",
    "mcpToolName": "list_categories",
    "restPath": "/categories",
    "restMethod": "GET",
    "bindBasis": "operator-explicit",
    "acceptedAt": "2026-08-16T18:05:00.000Z",
    "acceptedByActorId": "constructed-reference"
  },
  {
    "operationId": "workflow_fixture:op_2",
    "mappingId": "map-create-category",
    "mcpToolName": "create_category",
    "restPath": "/categories",
    "restMethod": "POST",
    "bindBasis": "operator-explicit",
    "acceptedAt": "2026-08-16T18:05:00.000Z",
    "acceptedByActorId": "constructed-reference"
  }
]

dataset.json

Schema migrateforce.workflow-dataset.v1. Input values are [REDACTED].

{
  "schema": "migrateforce.workflow-dataset.v1",
  "exportedAt": "2026-08-16T18:00:00.000Z",
  "generator": {
    "name": "MigrateForce",
    "version": "0.1.0"
  },
  "sessions": [
    {
      "id": "workflow_fixture",
      "schemaVersion": "1",
      "createdAt": "2026-08-16T18:00:00.000Z",
      "updatedAt": "2026-08-16T18:00:00.000Z",
      "reviewedAt": "2026-08-16T18:00:00.000Z",
      "operator": {
        "displayName": "Migration analyst",
        "locale": "en-US"
      },
      "permission": {
        "basis": "organization-owned",
        "attestedAt": "2026-08-16T18:00:00.000Z",
        "statementVersion": "1",
        "accepted": true
      },
      "source": {
        "origin": "https://legacy.example",
        "applicationName": "Legacy inventory"
      },
      "task": {
        "title": "Create a sample category",
        "goal": "Document how an operator creates an inventory category.",
        "expectedOutcome": "The source system shows the new sample category.",
        "tags": [
          "inventory"
        ]
      },
      "capture": {
        "startedAt": "2026-08-16T18:00:00.000Z",
        "endedAt": "2026-08-16T18:00:00.000Z",
        "timezone": "UTC"
      },
      "steps": [
        {
          "id": "step_nav",
          "index": 1,
          "timestamp": "2026-08-16T18:00:00.000Z",
          "elapsedMs": 0,
          "eventType": "navigation",
          "page": {
            "url": "https://legacy.example/categories",
            "title": "Categories"
          },
          "annotation": {
            "intent": ""
          },
          "redactions": []
        },
        {
          "id": "step_open",
          "index": 2,
          "timestamp": "2026-08-16T18:00:00.000Z",
          "elapsedMs": 400,
          "eventType": "click",
          "page": {
            "url": "https://legacy.example/categories",
            "title": "Categories"
          },
          "target": {
            "tag": "button",
            "role": "button",
            "label": "New category"
          },
          "annotation": {
            "intent": "Open the new category form."
          },
          "redactions": []
        },
        {
          "id": "step_nav_form",
          "index": 3,
          "timestamp": "2026-08-16T18:00:00.000Z",
          "elapsedMs": 800,
          "eventType": "navigation",
          "page": {
            "url": "https://legacy.example/categories/new",
            "title": "New category"
          },
          "annotation": {
            "intent": ""
          },
          "redactions": []
        },
        {
          "id": "step_input",
          "index": 4,
          "timestamp": "2026-08-16T18:00:00.000Z",
          "elapsedMs": 1000,
          "eventType": "input",
          "page": {
            "url": "https://legacy.example/categories/new"
          },
          "target": {
            "tag": "input",
            "role": "textbox",
            "label": "Category name",
            "inputType": "text"
          },
          "data": {
            "value": "[REDACTED]"
          },
          "annotation": {
            "intent": "Enter the category name."
          },
          "redactions": [
            "input-value"
          ]
        },
        {
          "id": "step_submit",
          "index": 6,
          "timestamp": "2026-08-16T18:00:00.000Z",
          "elapsedMs": 2000,
          "eventType": "submit",
          "page": {
            "url": "https://legacy.example/categories/new"
          },
          "target": {
            "tag": "form",
            "role": "form",
            "label": "Create category"
          },
          "annotation": {
            "intent": "Submit the new category."
          },
          "redactions": [
            "form-values"
          ]
        }
      ],
      "outcome": {
        "status": "success",
        "summary": "The source system showed the new sample category."
      },
      "quality": {
        "score": 100,
        "issues": [],
        "assessedAt": "2026-08-16T18:00:00.000Z"
      }
    }
  ]
}