/skills/mfm-factory
Use for MadeForMachine Factory projects, including development of the Factory itself: maintain hosted specs, logical data models and architecture variants, then construct an executable mock and separately initiate verified implementation through MCP-recorded work. Use for construction feedback and resuming these projects.
Public skill artifact for humans to inspect and agents to install.
https://mfm.dev/skills/mfm-factory$ manifest
slugmfm-factorynamemfm-factoryversion1.3.2latest_version1.3.2statusalphaconnectormfmlicenseMIT$ requires — MCP tools
mfm_spec_projectRead the authoritative project meta before authoring: head_rev, spec_format, active rule-set version, tool profile, agent guidance, typed constraints, and policy_rev. Prompts are bootstrap only; this response is the source of truth.
mfm_spec_readPull a projection of your tenant project's spec. Start with view=map to see the whole tree (ids, kinds, parents, edges — no bodies) and to get the `rev`; then view=node or view=subtree to read content. The returned `rev` is your `base_rev` for mutation/write — always mutate against what you just read.
mfm_spec_validateDry-run a fine-grained mutation batch. The server applies the operations to `base_rev`, parses the full resulting graph, and returns lint/op errors without committing anything.
mfm_spec_mutateCommit a fine-grained mutation batch against `base_rev`. Use this as the normal authoring primitive after reading the map and validating one coherent graph change. `change_note` explains its overall meaning, rationale, and remaining review focus.
mfm_spec_renameRename a node — THE way to change a node's id. An id is the node's identity, so this is not an in-place edit: the server deterministically recreates the node under `new_id` (content unchanged), repoints every live referrer (children, dependents, touching features), and supersedes the old id (`status: superseded`, `superseded_by: [new_id]`) so provenance stays in the graph. Read view=referrers first to see the blast radius. Never hand-compose a rename from create/delete ops — that loses provenance.
mfm_spec_mergeMerge nodes into one successor — THE way to fold responsibilities together. You author the successor (`into`: a create payload, or an existing node's id to absorb into); the server does only the deterministic wiring: repoints every live referrer to the successor and supersedes each merged node (`superseded_by` -> successor), so the record of what absorbed what stays queryable in the graph. Read view=referrers on each node first. Never hand-compose a merge ending in delete_node — that destroys provenance.
mfm_spec_splitSplit one node into two or more successors — THE way to divide a responsibility. You author the successors (`into` payloads) and decide `reassign`: which successor each live referrer now needs — read view=referrers first; the split is rejected listing any referrer you left unassigned, because that division is design judgment the server refuses to guess. The wiring is deterministic: referrers are repointed per `reassign` and the split node is superseded by all successors.
mfm_spec_retireRetire a node whose responsibility is GONE, not relocated (if it moved, use merge/rename instead). The node is superseded with no successor — kept in the graph as provenance, never hard-deleted. Refused while live nodes still reference it (the refusal lists them): repoint or edit those first, guided by view=referrers.
mfm_spec_historyList recent immutable revisions with source, change note, and touched node ids.
mfm_spec_importImport a lossless open-format dump. This is the explicit project bootstrap path.
mfm_spec_exportExport the hosted spec as the lossless open-format envelope.
mfm_factory_schemaRead the canonical command schemas and constraints before authoring commands.
mfm_factory_projectRead design variants and current pull-construction state at one checkpoint.
mfm_factory_graphRead a bounded graph page at an exact design/run. Use returned checkpoint for subsequent pages.
mfm_factory_readRead an exact Factory record, its version and recorded provenance.
mfm_factory_mutateSubmit one typed Factory command. Inspect mfm_factory_schema for command variants. Preserve the key and exact payload when retrying a lost response. New decisions need new keys. Agents remain caller-run; no Factory command launches an agent.
mfm_factory_historyPage immutable ledger or audit. Follow checkpoint while has_more; preserve through as as_of.
mfm_factory_changesObserve committed domain changes without claiming work or acknowledging for other observers.
$ install
Give this prompt to an agent that can read URLs and write local files:
Install the MFM skill 'mfm-factory' for this agent. Use the skill page as the source of truth: https://mfm.dev/skills/mfm-factory Read https://mfm.dev/skills.json, download the complete versioned archive, and verify its SHA-256 before extraction. This version: https://mfm.dev/downloads/skills/mfm-factory/1.3.2.tar.gz (SHA-256 08c821d90890e01a25ac474ee22df6c44157190a3d84285edfb6e97d7f789817). Install the full folder in this harness's skill directory. Preserve any locally customized installation before replacing it. Check latest_version at the start of relevant work. Also configure the 'mfm' MCP server at https://mcp.mfm.dev/mcp, complete OAuth, and verify these tools are visible before claiming setup is done: mfm_spec_project, mfm_spec_read, mfm_spec_validate, mfm_spec_mutate, mfm_spec_rename, mfm_spec_merge, mfm_spec_split, mfm_spec_retire, mfm_spec_history, mfm_spec_import, mfm_spec_export, mfm_factory_schema, mfm_factory_project, mfm_factory_graph, mfm_factory_read, mfm_factory_mutate, mfm_factory_history, mfm_factory_changes. After installation, start a fresh agent session or reload the tool/skill registry if this harness requires it.
Manual fallback by harness:
general1. Download https://mfm.dev/downloads/skills/mfm-factory/1.3.2.tar.gz and verify SHA-256 08c821d90890e01a25ac474ee22df6c44157190a3d84285edfb6e97d7f789817. 2. Extract the complete 'mfm-factory/' folder into your agent's skills directory. 3. Configure the 'mfm' MCP server at https://mcp.mfm.dev/mcp. 4. Complete OAuth and confirm the required tools are visible.
Claude Code(set -eu
test ! -e ~/.claude/skills/mfm-factory || { echo "Back up or move the existing skill before installing" >&2; exit 1; }
skill_tmp="$(mktemp -d)"
curl --fail --location 'https://mfm.dev/downloads/skills/mfm-factory/1.3.2.tar.gz' -o "$skill_tmp/skill.tar.gz"
printf '%s %s\n' '08c821d90890e01a25ac474ee22df6c44157190a3d84285edfb6e97d7f789817' "$skill_tmp/skill.tar.gz" | shasum -a 256 -c -
mkdir -p ~/.claude/skills
tar -xzf "$skill_tmp/skill.tar.gz" -C ~/.claude/skills
rm -rf "$skill_tmp"
)
claude mcp add --transport http mfm https://mcp.mfm.dev/mcp
claude mcp login mfmCodex(set -eu
test ! -e ~/.agents/skills/mfm-factory || { echo "Back up or move the existing skill before installing" >&2; exit 1; }
skill_tmp="$(mktemp -d)"
curl --fail --location 'https://mfm.dev/downloads/skills/mfm-factory/1.3.2.tar.gz' -o "$skill_tmp/skill.tar.gz"
printf '%s %s\n' '08c821d90890e01a25ac474ee22df6c44157190a3d84285edfb6e97d7f789817' "$skill_tmp/skill.tar.gz" | shasum -a 256 -c -
mkdir -p ~/.agents/skills
tar -xzf "$skill_tmp/skill.tar.gz" -C ~/.agents/skills
rm -rf "$skill_tmp"
)
codex mcp add mfm --url https://mcp.mfm.dev/mcp
codex mcp login mfmCursor(set -eu
test ! -e ~/.agents/skills/mfm-factory || { echo "Back up or move the existing skill before installing" >&2; exit 1; }
skill_tmp="$(mktemp -d)"
curl --fail --location 'https://mfm.dev/downloads/skills/mfm-factory/1.3.2.tar.gz' -o "$skill_tmp/skill.tar.gz"
printf '%s %s\n' '08c821d90890e01a25ac474ee22df6c44157190a3d84285edfb6e97d7f789817' "$skill_tmp/skill.tar.gz" | shasum -a 256 -c -
mkdir -p ~/.agents/skills
tar -xzf "$skill_tmp/skill.tar.gz" -C ~/.agents/skills
rm -rf "$skill_tmp"
)
// Add this to ~/.cursor/mcp.json for global setup,
// or .cursor/mcp.json for project setup:
{
"mcpServers": {
"mfm": {
"url": "https://mcp.mfm.dev/mcp"
}
}
}
Then open Cursor MCP settings and authenticate the mfm server.install paths .claude/skills/mfm-factory/ # project-local Claude Code fallback .agents/skills/mfm-factory/ # project-local Codex & Cursor fallback
Raw manifest: /skills.json · source & manual fallback: https://mfm.dev/skills/mfm-factory
$ artifact — SKILL.md body
Guide the user's own agent through **Specification → Data Model → Architecture → Construction**, returning upstream when implementation exposes missing or incorrect design. MFM stores and validates records; it does not run an inference service or launch construction agents. These design responsibilities can belong to one agent. Do not introduce extra sessions, approval handoffs or delegation automatically. Use the [glossary](references/glossary.md) when a term or role boundary is ambiguous. All reusable schemas, conventions, examples and agent instructions belong in this canonical skills/ directory in the madeformachine repository; project-specific intent and artifacts belong to the project. ## Start or resume through MCP Read the project's binding and discover the actual tool capabilities. A service-backed spec may run in local Docker; do not assume it belongs to the public MFM deployment. Use MCP records as the working source of truth for design and construction. Repository exports are mirrors; do not edit them as a substitute for hosted mutations. This skill is self-contained, including hosted specification authoring. Do not load the local spec or local model skills for this workflow. A service running in local Docker is still hosted authority; “local” in MFM Spec Local means file authority. Use the customer's ordinary development tools for code, fixtures and tests, and record their exact inputs, work and evidence through MCP. This workflow also applies when the project being constructed is the Factory itself. Read [MCP operations and deployment boundaries](mcp.md) before making a tool call. If required tools or commands are absent, report the specific missing capability. Continue independent supported work, but do not simulate success, edit the database, call HTTP endpoints instead of MCP, or silently use a local design as authority. This skill's selected formats and workflow do not imply that a deployment supports them. For an existing project, read project policy, the current spec map and Factory project/run records. Resume recorded tasks and exact inputs before creating work. For a new project, bootstrap its hosted spec using `mfm_spec_import`; native deployments create its Factory project and primary variant together. Create further named variants inside that project as described in [MCP operations](mcp.md). Check deployment capabilities first; do not invent a command if support is missing. An explicitly authorized first spec import is a bootstrap, never an overwrite of an existing hosted project. Read its policy and HEAD before subsequent authoring. When the user explicitly authorizes reconciling local authoring into an existing service project, compare the complete local and service versions, preserve service-only work unless its removal is explicitly intended, validate the result and write against the current service revision. Read back/export and verify the result before treating repository files as mirrors. This transition is not ongoing bidirectional authoring. ## Develop variants and designs A project has named **spec variants**. Each owns exactly one unnamed **Data Model** once modeling has begun and any number of named **architecture variants**. A model can be absent before construction. Explore different logical meanings in separate spec variants. Preserve stable IDs across name changes. Content revisions start at 1; empty layers display “No version yet”. A change creates a revision; review alone does not. There is no separate draft choice, and completeness is visible independently. Use the existing MFM Spec format for intent, responsibilities, features and criteria. Read [hosted spec authoring](references/spec-authoring.md) when working on that layer. The authoritative project policy and actual mutation schema govern how to edit it. On native deployments, select the project and spec variant explicitly; validated edits return directly pinnable Factory revisions with no separate synchronization step. Read the map, then the affected nodes; validate one coherent mutation batch before committing it with the read revision and a meaningful change note. Re-read conflicts. Use dedicated rename/merge/split/retire operations after reading referrers, preserving prior identities rather than composing delete-and-create replacements. For modeling or architecture work, read [starting formats](references/formats.md). Data Model defines meaning; Architecture defines a component/interface graph, concrete representations and scenario expectations. Preserve the distinction between the containment tree, runtime interactions and construction work scheduling. After a spec change, inspect the existing model and affected architectures. After a model change, inspect affected architectures. Change only necessary content; record the assessment and explain retained choices. Identify alternatives not reassessed. Do not bump downstream revisions solely to change provenance, and do not create a semantic-validity certificate or imply a schema check proves compatibility. ## Construct and learn Before starting construction, establish the user's selected spec variant and architecture variant. An unambiguous earlier instruction is sufficient; ask only when the choice is missing or ambiguous. A browser default is not that instruction. Read the selected spec, its model and architecture. Check their consistency, completeness and known logical faults; surface gaps and decide how to proceed within the user's authority. Preserve the exact tuple actually chosen for the run. Read [construction and feedback](references/construction.md). Build an **executable mock product first**, using coherent agent-generated scenario data to exercise the agreed complete product flows through actual declared interfaces. Use the discovered current pull protocol, one fresh invocation per system claim, aggregate direct-child feedback and explicit user resolution of design pauses. Accept the mock separately. Actual-product construction is a separately initiated run adopting an accepted mock; it replaces mocked behavior component by component and repeats relevant scenarios. Mock acceptance does not mean the product is production-complete. When a finding changes intent, data meaning or architecture, correct the responsible hosted design through MCP within existing authority. Ask the user about unresolved product decisions, not routine implementation details already authorized. Assess downstream impact and explicitly adopt changed inputs into successor work; preserve old runs and evidence. Components can be introduced, split, replaced or retired. Their code, data, callers and ownership need explicit migration/removal work. Conclude with the actual hosted revisions, construction state, evidence and remaining gaps. Distinguish records that were persisted from proposed work and local artifacts. ## API evolution Use one current Factory API and MCP toolset. Do not select older protocols or add compatibility shims. Breaking changes update callers and this skill together. Historical record identities preserve evidence, not executable older workflows. ## Distribution and updates Install the complete skill folder from https://mfm.dev/skills/mfm-factory. At the start of relevant work, compare this version with https://mfm.dev/skills.json. Use the catalog artifact URL and SHA-256 to verify an authorized update; preserve local customizations and reload the skill registry when required by the agent harness.