idef0

Create and review IDEF0 functional models in the IDEFy .idef0 DSL.

Updated Nov 21, 2025
One-click install
npx skills add https://github.com/alatyshau/duet --skill idef0-alatyshau
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: idef0
Source: https://github.com/alatyshau/duet/tree/main/packages/skills/coding/idef0
Command: npx skills add https://github.com/alatyshau/duet --skill idef0-alatyshau

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing valid IDEF0 models in the IDEFy .idef0 DSL is error-prone: LLMs routinely confuse Control with Mechanism arrows, break parent-child interface contracts, and produce syntax the parser rejects (stray semicolons, misplaced comments, invalid IDs). This Skill encodes the full DSL grammar, arrow-role semantics, and project layout rules so models come out valid on the first pass. ## Core Features & Use Cases - Correct arrow semantics: Decision tests and contrast tables for distinguishing Input vs Control and Control vs Mechanism, the most common modeling mistakes. - Multi-level decomposition: Rules for when a block gets its own .idef0 file, how child boundary arrows must mirror the parent declaration, and how tunnels carry cross-sheet context. - Project layout enforcement: Canonical src/idef0/<domain>/<model>/ structure, file naming (A1.Validate-request.idef0), and ID rules ([1-9A-Z]+ suffixes, no B0/C0). - Use Case: Ask the AI to model a business process like order intake; it produces a complete, self-contained file tree under src/idef0/ with consistent interfaces between every decomposition level. ## Quick Start Ask the AI to create an IDEF0 model of your process, for example: "Model the customer onboarding process as an IDEF0 project under src/idef0 with decomposition of the verification step."

Frequently Asked Questions about idef0

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write an IDEF0 model in the IDEFy .idef0 DSL?

Create one .idef0 file per decomposition sheet under src/idef0/<domain>/<model>/, starting with A-0.idef0 (context with tunnels) and A0.idef0 (root activity). Declare boundary arrows (I/O/C/M) first, then functional blocks in the form A1 "Name" : consumed -> produced.

What is the difference between Control and Mechanism arrows in IDEF0?

A Control (C) is a rule, standard, recipe, or document that governs the activity without being consumed, while a Mechanism (M) is a person, role, tool, or system that performs it. Test: if it is a document or specification it is C; if it is an actor or running system it is M.

When should an IDEF0 block be decomposed into its own file?

Decompose a block when it contains more than about five sub-steps, is handed to a different actor (different M), or runs on a different rhythm such as batch versus real-time. Otherwise keep it atomic as a row in the parent's decomposition section.

Why does my .idef0 file fail to parse?

Common causes are semicolons after declarations (the DSL has no terminator), # comments inside a declaration body, text after the closing brace, boundary arrows placed after the first A* block, or activity IDs containing 0 such as A10.

How do parent and child IDEF0 files stay consistent?

The child file's boundary arrows must exactly match what the parent declares for that block: every I/C/M the parent feeds it, plus an O for each parent output it reaches via X*[O*]. Copy the parent's block declaration and derive the boundary from it rather than inventing arrows.

What are tunnels in IDEF0 and when should I use them?

Tunnels (T*) carry context that crosses sheets without becoming a parent output, such as regulations or ambient state. Declare each tunnel once in the A-0 context file, use it somewhere in the project, and never produce and consume the same tunnel on one sheet.