docs/skill/SKILL.md
Markdown-based form system for structured data collection by AI agents and humans. Inspect, fill, validate, and export .form.md files with typed fields and role-based workflows. Use when working with .form.md files, filling forms, validating fields, exporting data, or when the user mentions markform, forms, form filling, structured data, or field validation.
npx skillsauth add jlevy/markform markformInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Markform is structured Markdown for forms. Files combine YAML frontmatter with HTML comment tags to define typed, validated fields. Forms render cleanly on GitHub since structure is hidden in comments.
There are three ways to help a user get started with Markform:
markform examples copies bundled forms, then
markform run <form> fills one end-to-end with an LLM. Quickest demo.markform examples --list to pick an example, then --name <id> to copy it.examples/markform-demo-playbook.md to
design a research form from scratch, fill it with real data, validate, export, and
browse. The most thorough tour of all Markform features.Automated filling (markform fill --model, markform run) requires an LLM API key.
Set one of these environment variables (or add to .env):
OPENAI_API_KEY — for OpenAI models (e.g., openai/gpt-4o)ANTHROPIC_API_KEY — for Anthropic models (e.g.,
anthropic/claude-sonnet-4-5-20250929)Run markform models to see available providers and configured keys.
| Example | Type | Description |
| --- | --- | --- |
| movie-research-demo | research | Quick movie ratings lookup (IMDB, Rotten Tomatoes) |
| simple | fill | Interactive demo of all field types |
| twitter-thread | fill | Multi-stage content-to-Twitter-thread transformation |
| movie-deep-research | research | Comprehensive movie analysis with multiple sources |
| startup-deep-research | research | Startup intelligence: funding, team, market, press |
markform examples --list # See all examples
markform examples --list --format=json # Structured output for agents
markform examples --name <id> --forms-dir ./ # Copy a specific example
role="user") and AI agents
(role="agent")| Command | Purpose |
| --- | --- |
| markform inspect <form> | Show form structure, progress, and issues |
| markform validate <form> | Check for constraint violations and errors |
| markform set <form> <field> "value" | Set a field value (auto-coerced) |
| markform set <form> --values '{"k":"v"}' | Batch set multiple fields |
| markform next <form> | Recommend the next field to fill |
| markform fill <form> --interactive | Interactive prompts for user fields |
| markform fill <form> --model <model> | AI agent fills form fields |
| markform export <form> --format=json | Export values as JSON |
| markform export <form> --format=yaml | Export values as YAML |
| markform export <form> --format=markdown | Full rendered markdown (includes instructions) |
| markform report <form> | Clean report markdown (values only, no instructions) |
| markform schema <form> | Export JSON Schema for form structure |
| markform dump <form> | Quick dump of current field values |
| markform status <form> | Show fill progress per role |
| markform docs | Show Markform syntax reference |
| markform examples | Copy built-in example forms |
| markform serve <form> | Web UI for browsing and editing |
When working with markform files:
markform inspect form.md to understand the form structure, see
which fields exist, their types, constraints, and current fill progressmarkform next form.md to see which field should be filled
next (respects priority, order, and role)markform set form.md field_id "value" to fill fields one at a time,
or use --values for batch updatesmarkform validate form.md to check all constraints are metmarkform export form.md --format=json to extract filled dataThe set command is the primary way to fill fields.
It auto-coerces values to the correct type:
# String fields
markform set form.md name "Alice Smith"
# Number fields (auto-coerced from string)
markform set form.md age 30
# Single select (by option ID)
markform set form.md rating high
# Multi select (JSON array of option IDs)
markform set form.md categories '["frontend","backend"]'
# Checkboxes (JSON object of {itemId: value})
markform set form.md tasks '{"research":"done","testing":"done"}'
# Table (append rows as JSON)
markform set form.md team --append '[{"name": "Alice", "title": "Engineer"}]'
# Batch set multiple fields
markform set form.md --values '{"name": "Alice", "age": 30, "rating": "high"}'
# Special operations
markform set form.md field_id --clear # Clear a field value
markform set form.md field_id --skip # Skip (mark as skipped)
markform set form.md field_id --abort # Abort (mark as aborted)
All commands support:
| Option | Description |
| --- | --- |
| --format <fmt> | Output format: console, json, yaml, plaintext, markform, markdown |
| --verbose | Enable verbose/debug output |
| --quiet | Suppress non-essential output |
| --dry-run | Show what would be done without changes |
| --overwrite | Overwrite existing field values |
| Extension | Purpose |
| --- | --- |
| .form.md | Markform source and filled forms |
| .fill.json | Execution metadata (sidecar, auto-generated) |
| .report.md | Filtered human-readable output |
| .schema.json | JSON Schema export |
markform docsmarkform specmarkform apismarkform examplesexamples/markform-demo-playbook.mddevelopment
Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven planning for AI agents. Drop-in replacement for bd/Beads with simpler architecture. Use for: tracking issues/beads with dependencies, creating bugs/features/tasks, planning specs, implementing features from specs, code reviews, committing code, creating PRs, loading coding guidelines (TypeScript, Python, TDD, golden testing, Convex, monorepo patterns), code cleanup, research briefs, architecture docs, agent handoffs, and checking out third-party library source code. Invoke when user mentions: tbd, beads, bd, shortcuts, issues, bugs, tasks, features, epics, todo, tracking, specs, planning, implementation, validation, guidelines, templates, commit, PR, pull request, code review, testing, TDD, test-driven, golden testing, snapshot testing, TypeScript, Python, Convex, monorepo, cleanup, dead code, refactor, handoff, research, architecture, labels, search, checkout library, source code review, or any workflow shortcut.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".