Skill-Based Architecture
Restructure oversized single-file Skills or scattered project rules into a well-organized Skill directory. Builds on the official minimal Agent Skill contract (name + description) and kicks in when a single small SKILL.md is no longer enough.
When to Use
- A single SKILL.md exceeds ~150 lines, mixing rules, workflows, and background material
- Project rules are scattered across
AGENTS.md, CLAUDE.md, CODEX.md, .cursor/rules/, .claude/, etc.
- User explicitly requests Skill-based architecture or rule consolidation
When NOT to Use
- Temporary repos with no durable instruction or task-routing need
- Teams with a working documentation system that do not want to migrate
- Do not force structured folders onto a small project; an explicit SBA request
may still materialize a complete direct
SKILL.md carrier
Progressive Rigor
Grow only under pressure. The materializer derives Single-file,
Folder-light, or Full/broad internally from target evidence; users do
not select a tier, profile, capability pack, or install mode. routing.yaml,
Task Execution, Task Closure, maintenance checks, and each harness surface need
their own routing/loading/ownership pressure. Split by abstraction (骨架/肉)
when content tangles invariant design theory with current-code facts: abstract
theory → architecture/, code maps → references/, house style →
conventions/, per-module landmines → gotchas/ (methodology stays in
rules/). Downgrade when content shrinks. Details:
references/progressive-rigor.md.
Evidence-Selected Structure
# direct
skills/<name>/SKILL.md
# folder-light or broad: only admitted owners/directories
skills/<name>/{SKILL.md,rules/,workflows/,references/,scripts/}
# routing.yaml appears only when route data has an independent owner
# root/tool entry and registration surfaces appear only for proven readers
Existing root entries are preserved. Emitted routed entries use a generated
routing.yaml bootstrap; direct entries point to the sole SKILL.md procedure.
Cursor registration exists only when Cursor is detected, declared, currently
used, or explicitly requested. See REFERENCE.md for sources.
Core Principles
- Single concise entry —
SKILL.md keeps a dual budget: description ≤ 25 lines (trigger phrases + activation) + body ≤ 90 lines (navigation). It navigates, not exhausts. ✓ Check: smoke-test reports both separately; over either → split intent clusters / move detail to sub-files.
- One skill folder when a folder is admitted — folder-light and broad results keep formal docs under
skills/<name>/; a direct result may remain a complete single SKILL.md carrier. ✓ Check: no emitted root entry becomes a second rule/workflow owner.
- Rules ≠ Flows —
rules/ for constraints, workflows/ for procedures. ✓ Check: any numbered steps in rules/? Any "always/never" in workflows/? Either = mixing.
- Routing.yaml as source when admitted — a direct carrier owns its sole
route in
SKILL.md; multiple/shared routes live only in routing.yaml, with
routed shells generated from it. ✓ Check: is there an independent selector
or consumer that justifies the manifest, and does its fitted sync check pass?
- Harness surfaces follow readers — create/merge only entries and
registrations supported by existing files/config, the current harness,
repository/team declaration, or an explicit request. ✓ Check: can every
emitted surface name its reader, and was every existing entry preserved?
- Progressive Rigor — three carriers (Single-file / Folder-light / Full)
grow only under pressure and are not user package choices. ✓ Check: can you
name the independent responsibility that forced every generated file?
- Description = coarse activation — domain boundary + real user trigger phrases; never enumerate workflow keywords nor summarize a workflow's steps — a step-summary becomes a shortcut the agent runs instead of reading the body (ref). ✓ Check: (a) can
routing.yaml task routes change without rewriting the description? (b) does the description or any route label carry HOW an agent could act on without opening the body/workflow? "no" to (a) or "yes" to (b) → fix.
- Gotchas are highest-value — maintain costly pitfalls actively; keep them discoverable. ✓ Check: is each high-cost gotcha activated by the admitted route owner (
SKILL.md or routing.yaml), not only buried in references/?
- Progressive disclosure — every loaded file needs an independent task-time reason; conditional content leaves the startup read set, and files every real caller co-loads should merge unless ownership/generation requires separate storage. ✓ Check: for each route read, can you name a request that needs it now and a next action it changes? No → conditionally route, merge, or remove it.
- Task Execution + Closure — after route selection, only one clear read-only or fixed-contract maintenance action/check with no new desired behavior executes directly. Any request that adds or changes user-visible behavior, a business flow/state, or an external contract follows
requirement-ready -> Task Anchor -> implementation-ready -> Native Plan -> mutation: an incomplete Requirement returns understanding, real risk/conflict, and the minimum normative question; a clear one needs no ceremonial confirmation; code owner and Current -> Target are proven before implementation steps. The Requirement is the target, the Anchor is its Goal/Done When/Boundaries projection, and the Plan is only its revisable implementation means. Present alignment proportionally, do not repeat visible native steps, and run a compact Anchor Checkpoint before every main step. Enter the applicable completion owner: a simple workflow may inline fitted verification/AAR/completion, while an independent Task Closure owner is materialized only when its own lifecycle pressure is admitted (ref). Workflow remains the domain procedure; Native Plan is only this Session's runtime step owner, with no planning-file persistence. ✓ Check: immediately before mutation, can you name the governing Requirement, Task Anchor projection, proven Current -> Target binding, active Plan step, and applicable completion proof without letting the Plan redefine its target?
- Durable-record rule — generic records generalize across projects; business global models stay project-specific but must survive implementation replacement (ref). ✓ Check: use the destination's test—cross-project pattern or cross-implementation business truth—without mixing code details into either.
- Self-maintenance — line counts signal evaluation, not automatic action. Split only for independently selected tasks; merge files universally co-loaded/co-changed unless ownership or generation explains the boundary. ✓ Check: can the before/after load matrix prove less irrelevant reading without losing definitions, conditions, boundaries, or reasons?
- Activation over storage — content in
references/ alone is not "captured"; it must be on the task path and change what the agent does when read. Reached-but-inert (correct, on-route, yet the agent would have proceeded identically without it) is a distinct failure from absent or unreachable — and no structural gate (orphan / route-reachability / smoke-test) can see it, only judgment can. ✓ Check: (a) trace the normal route — Agent hits the entry without hunting? (b) does hitting it change the next action — a file it now reads, a check it now runs, a step it now skips? "no" to either → stored, not activated.
- Token efficiency — Always Read defaults to empty; every addition needs proof that all real tasks require it before workflow selection. Domain and lifecycle knowledge loads only when evidence or a phase boundary can change the next action. ✓ Check: can any startup read be delayed without changing the first workflow decision? If yes, move it to that workflow checkpoint.
- Rationalizations Table — captures verbatim excuses from real pressure-test failures, organic or proven by a baseline run before shipping (ref, Phase 9). ✓ Check: every row traces to a real failure — no failure observed and unwilling to baseline it → imagined-pain, drop it.
- Response discipline — output short, precise, direct answers; avoid process narration, self-congratulation, gratuitous confirmations, and requirement restatement. Correct objective errors neutrally; do not infer user stance. ✓ Check: does each sentence serve the explicit request? No → delete it.
- Proof claims stay separated — fitted structural checks, source-disposition
migration evidence, and live Agent behavior prove different things. Green
structure cannot be promoted into semantic or behavioral correctness.
✓ Check: does the final claim name the exact layer actually run, and report
unavailable live evidence as no verdict?
Common Pitfalls
- Missing admitted harness surface — A project proves a Cursor/Claude/etc.
reader but its fitted registration/entry is absent → that harness never
discovers the formal owner. The opposite error is emitting every harness
without evidence and imposing permanent maintenance cost.
- Wrong routing carrier — A routed shell says only "go read SKILL.md"
without the generated
routing.yaml bootstrap, or a direct project gains an
empty manifest merely for uniformity → either recovery breaks or false
machinery appears.
- Vague / wrong-scope description — Description is passive, wrong-language, too narrow ("fix bug" only), or bloated with every workflow keyword → skill misses natural requests or over-fires; keep description domain-level and route tasks in SKILL.md
- Stored but not activated — or activated but inert — Costly pitfall recorded in
references/ but not surfaced in an owning workflow checkpoint or canonical route when task selection changes → future agents still miss it. Subtler form: it is on the route and gets read, but it's "correct but inert" — written as a background fact, not as a next action — so the agent reads it and proceeds unchanged. Reachable ≠ useful; the entry must change what the agent does, not merely be present and correct
- Completion responsibility lost during materialization — Agent considers
itself "done" after main work even though the admitted workflow/Closure owner
requires fitted verification or AAR. A simple workflow may own that behavior
inline; an independent
task-closure.md is not required merely for form.
Pure Q&A/read-only tasks remain exempt.
- Project-specific records — Lessons written as project narratives ("in our product module, we found…") instead of reusable knowledge → useless outside current context; apply generalization rule before recording
- No SessionStart hook on long sessions —
/clear or /compact silently drops SKILL.md from context; agent loses all routing and protocol awareness without the user noticing → install SessionStart hook if your harness supports it (see references/thin-shells.md § SessionStart Hook)
- Route skipping in multi-task sessions — Agent reads SKILL.md for the first task, then skips re-reading for subsequent tasks in the same session ("I already know the rules"). New tasks may match different routes; context may have been compressed. Result: agent works from partial/stale memory, misses critical rules, debugs in wrong direction for hours → SKILL.md template ships a tiered Session Discipline (re-match the route every task; re-read files only on route-change or compaction — cheap re-match catches different routes without re-reading everything); all shells carry the trigger
- Missing or performative Task Anchor / long-task drift — Agent starts a non-Simple task without a stable Goal/Done When, invents them only at the end, or dumps a fixed labeled block that duplicates the native Plan → use
templates/skill/workflows/task-execution.md; keep the Anchor as runtime state, present only useful alignment, and run reboot-check.md before final validation/commit if the original constraints are no longer fresh
- Imagined-pain engineering — Agent 提议加任何机制(规则/脚本/文件结构/模板章节)前没反问"这解决的是真痛点还是脑补":为未发生的失败加保险、为想象用户预建脚手架、为不存在的协议加 marker / 监控、给假设的"agent 偏差"立规矩。✓ Check:能给一个具体场景(file+line / commit / session)证明这事真发生过吗?给不出 → 不上。Historic: 5 ghost scripts (砍 2026-05-19), dossier schema (砍 2026-05-19), reflection-first mode shift (弃 2026-05-20), observations 日志 (拒上 2026-05-20)
Content Classification
| Content type — tier by abstraction: 骨架 (architecture/workflows/rules = invariant theory) vs 肉 (conventions/gotchas/references = current-code facts) · split playbook |
Target |
Kind |
| Abstract design theory — layering/contract/orchestration/transaction principles, the "why" (NOT the module map) |
architecture/ |
骨架 |
| Code maps + background — module tree, dir layout, source index, build/env notes |
references/ |
肉 |
| House style — naming, paths, commands, formats, must/never conventions |
conventions/ |
肉 |
| Code-coupled landmines (symptom → cause → fix), split only by independently routed module |
gotchas/ (selecting gotchas/index.md only after multi-file pressure) |
肉 |
| Step-by-step task procedures (process theory) |
workflows/ |
骨架 |
| Prompts/reports/docs · editor config (thin shells) |
docs/ · .cursor/ .claude/ |
— |
Multi-Skill & Composition
Multi-skill repos — see references/multi-skill-routing.md (operating + fission + coexistence). For invoking other skills from your workflows (embedded / serial / subagent delegation), see references/skill-composition.md + starter templates/skill/workflows/invoke-skill.md.example.
Resources
- WORKFLOW.md — Migration procedure (Quick Start + 9 phases + Downstream Upgrade)
- REFERENCE.md + references/ — Templates, decision guides, anti-patterns, troubleshooting, self-hosting routing source
- TEMPLATES-GUIDE.md — Starter templates + meta-workflow templates
- EXAMPLES.md + examples/ — behavior failures + before/after scenarios
1---2name: skill-based-architecture3description: This skill should be used when the user asks to "organize the project rules", "clean up scattered documentation", "把规则迁移到 skills 目录", "优化 skill 路由", "提高 description 命中率", or "减少薄壳重复维护". Activate when a SKILL.md is too large, rules are duplicated across agent entry files, task routing or trigger_examples miss natural user language, or templates / thin shells / validation scripts need drift-resistant maintenance.4---56# Skill-Based Architecture78Restructure oversized single-file Skills or scattered project rules into a well-organized Skill directory. Builds on the official minimal Agent Skill contract (`name` + `description`) and kicks in when a single small `SKILL.md` is no longer enough.910## When to Use1112- A single SKILL.md exceeds ~150 lines, mixing rules, workflows, and background material13- Project rules are scattered across `AGENTS.md`, `CLAUDE.md`, `CODEX.md`, `.cursor/rules/`, `.claude/`, etc.14- User explicitly requests Skill-based architecture or rule consolidation1516## When NOT to Use1718- Temporary repos with no durable instruction or task-routing need19- Teams with a working documentation system that do not want to migrate20- Do not force structured folders onto a small project; an explicit SBA request21 may still materialize a complete direct `SKILL.md` carrier2223## Progressive Rigor2425Grow only under pressure. The materializer derives **Single-file**,26**Folder-light**, or **Full/broad** internally from target evidence; users do27not select a tier, profile, capability pack, or install mode. `routing.yaml`,28Task Execution, Task Closure, maintenance checks, and each harness surface need29their own routing/loading/ownership pressure. **Split by abstraction (骨架/肉)**30when content tangles invariant design theory with current-code facts: abstract31theory → `architecture/`, code maps → `references/`, house style →32`conventions/`, per-module landmines → `gotchas/` (methodology stays in33`rules/`). Downgrade when content shrinks. Details:34[references/progressive-rigor.md](references/progressive-rigor.md).3536## Evidence-Selected Structure3738```text39# direct40skills/<name>/SKILL.md4142# folder-light or broad: only admitted owners/directories43skills/<name>/{SKILL.md,rules/,workflows/,references/,scripts/}44# routing.yaml appears only when route data has an independent owner45# root/tool entry and registration surfaces appear only for proven readers46```4748Existing root entries are preserved. Emitted routed entries use a generated49`routing.yaml` bootstrap; direct entries point to the sole `SKILL.md` procedure.50Cursor registration exists only when Cursor is detected, declared, currently51used, or explicitly requested. See [REFERENCE.md](REFERENCE.md) for sources.5253## Core Principles54551. **Single concise entry** — `SKILL.md` keeps a dual budget: description ≤ 25 lines (trigger phrases + activation) + body ≤ 90 lines (navigation). It navigates, not exhausts. ✓ Check: smoke-test reports both separately; over either → split intent clusters / move detail to sub-files.562. **One skill folder when a folder is admitted** — folder-light and broad results keep formal docs under `skills/<name>/`; a direct result may remain a complete single `SKILL.md` carrier. ✓ Check: no emitted root entry becomes a second rule/workflow owner.573. **Rules ≠ Flows** — `rules/` for constraints, `workflows/` for procedures. ✓ Check: any numbered steps in `rules/`? Any "always/never" in `workflows/`? Either = mixing.584. **Routing.yaml as source when admitted** — a direct carrier owns its sole59 route in `SKILL.md`; multiple/shared routes live only in `routing.yaml`, with60 routed shells generated from it. ✓ Check: is there an independent selector61 or consumer that justifies the manifest, and does its fitted sync check pass?625. **Harness surfaces follow readers** — create/merge only entries and63 registrations supported by existing files/config, the current harness,64 repository/team declaration, or an explicit request. ✓ Check: can every65 emitted surface name its reader, and was every existing entry preserved?666. **Progressive Rigor** — three carriers (Single-file / Folder-light / Full)67 grow only under pressure and are not user package choices. ✓ Check: can you68 name the independent responsibility that forced every generated file?697. **Description = coarse activation** — domain boundary + real user trigger phrases; never enumerate workflow keywords nor summarize a workflow's steps — a step-summary becomes a shortcut the agent runs instead of reading the body ([ref](references/layout.md#description-as-trigger-condition)). ✓ Check: (a) can `routing.yaml` task routes change without rewriting the description? (b) does the description or any route label carry HOW an agent could act on without opening the body/workflow? "no" to (a) or "yes" to (b) → fix.708. **Gotchas are highest-value** — maintain costly pitfalls actively; keep them discoverable. ✓ Check: is each high-cost gotcha activated by the admitted route owner (`SKILL.md` or `routing.yaml`), not only buried in `references/`?719. **Progressive disclosure** — every loaded file needs an independent task-time reason; conditional content leaves the startup read set, and files every real caller co-loads should merge unless ownership/generation requires separate storage. ✓ Check: for each route read, can you name a request that needs it now and a next action it changes? No → conditionally route, merge, or remove it.7210. **Task Execution + Closure** — after route selection, only one clear read-only or fixed-contract maintenance action/check with no new desired behavior executes directly. Any request that adds or changes user-visible behavior, a business flow/state, or an external contract follows `requirement-ready -> Task Anchor -> implementation-ready -> Native Plan -> mutation`: an incomplete Requirement returns understanding, real risk/conflict, and the minimum normative question; a clear one needs no ceremonial confirmation; code owner and Current -> Target are proven before implementation steps. The Requirement is the target, the Anchor is its Goal/Done When/Boundaries projection, and the Plan is only its revisable implementation means. Present alignment proportionally, do not repeat visible native steps, and run a compact Anchor Checkpoint before every main step. Enter the applicable completion owner: a simple workflow may inline fitted verification/AAR/completion, while an independent Task Closure owner is materialized only when its own lifecycle pressure is admitted ([ref](references/protocols.md#task-execution-protocol)). Workflow remains the domain procedure; Native Plan is only this Session's runtime step owner, with no planning-file persistence. ✓ Check: immediately before mutation, can you name the governing Requirement, Task Anchor projection, proven Current -> Target binding, active Plan step, and applicable completion proof without letting the Plan redefine its target?7311. **Durable-record rule** — generic records generalize across projects; business global models stay project-specific but must survive implementation replacement ([ref](references/protocols.md#generalization-rule)). ✓ Check: use the destination's test—cross-project pattern or cross-implementation business truth—without mixing code details into either.7412. **Self-maintenance** — line counts signal evaluation, not automatic action. Split only for independently selected tasks; merge files universally co-loaded/co-changed unless ownership or generation explains the boundary. ✓ Check: can the before/after load matrix prove less irrelevant reading without losing definitions, conditions, boundaries, or reasons?7513. **Activation over storage** — content in `references/` alone is not "captured"; it must be on the task path **and change what the agent does when read**. Reached-but-inert (correct, on-route, yet the agent would have proceeded identically without it) is a distinct failure from absent or unreachable — and no structural gate (orphan / route-reachability / smoke-test) can see it, only judgment can. ✓ Check: (a) trace the normal route — Agent hits the entry without hunting? (b) does hitting it change the next action — a file it now reads, a check it now runs, a step it now skips? "no" to either → stored, not activated.7614. **Token efficiency** — Always Read defaults to empty; every addition needs proof that all real tasks require it before workflow selection. Domain and lifecycle knowledge loads only when evidence or a phase boundary can change the next action. ✓ Check: can any startup read be delayed without changing the first workflow decision? If yes, move it to that workflow checkpoint.7715. **Rationalizations Table** — captures verbatim excuses from real pressure-test failures, organic or proven by a [baseline run](references/scenario-testing.md) before shipping ([ref](templates/skill/workflows/task-closure.md#rationalizations-to-reject), [Phase 9](workflows/full-migration.md#phase-9-pressure-test-the-skill)). ✓ Check: every row traces to a real failure — no failure observed and unwilling to baseline it → imagined-pain, drop it.7816. **Response discipline** — output short, precise, direct answers; avoid process narration, self-congratulation, gratuitous confirmations, and requirement restatement. Correct objective errors neutrally; do not infer user stance. ✓ Check: does each sentence serve the explicit request? No → delete it.7917. **Proof claims stay separated** — fitted structural checks, source-disposition80 migration evidence, and live Agent behavior prove different things. Green81 structure cannot be promoted into semantic or behavioral correctness.82 ✓ Check: does the final claim name the exact layer actually run, and report83 unavailable live evidence as no verdict?8485## Common Pitfalls86871. **Missing admitted harness surface** — A project proves a Cursor/Claude/etc.88 reader but its fitted registration/entry is absent → that harness never89 discovers the formal owner. The opposite error is emitting every harness90 without evidence and imposing permanent maintenance cost.912. **Wrong routing carrier** — A routed shell says only "go read SKILL.md"92 without the generated `routing.yaml` bootstrap, or a direct project gains an93 empty manifest merely for uniformity → either recovery breaks or false94 machinery appears.953. **Vague / wrong-scope description** — Description is passive, wrong-language, too narrow ("fix bug" only), or bloated with every workflow keyword → skill misses natural requests or over-fires; keep description domain-level and route tasks in SKILL.md964. **Stored but not activated — or activated but inert** — Costly pitfall recorded in `references/` but not surfaced in an owning workflow checkpoint or canonical route when task selection changes → future agents still miss it. Subtler form: it *is* on the route and gets read, but it's "correct but inert" — written as a background fact, not as a next action — so the agent reads it and proceeds unchanged. Reachable ≠ useful; the entry must change what the agent does, not merely be present and correct975. **Completion responsibility lost during materialization** — Agent considers98 itself "done" after main work even though the admitted workflow/Closure owner99 requires fitted verification or AAR. A simple workflow may own that behavior100 inline; an independent `task-closure.md` is not required merely for form.101 Pure Q&A/read-only tasks remain exempt.1026. **Project-specific records** — Lessons written as project narratives ("in our product module, we found…") instead of reusable knowledge → useless outside current context; apply generalization rule before recording1037. **No SessionStart hook on long sessions** — `/clear` or `/compact` silently drops SKILL.md from context; agent loses all routing and protocol awareness without the user noticing → install SessionStart hook if your harness supports it (see [references/thin-shells.md § SessionStart Hook](references/thin-shells.md#sessionstart-hook-optional))1048. **Route skipping in multi-task sessions** — Agent reads SKILL.md for the first task, then skips re-reading for subsequent tasks in the same session ("I already know the rules"). New tasks may match different routes; context may have been compressed. Result: agent works from partial/stale memory, misses critical rules, debugs in wrong direction for hours → SKILL.md template ships a tiered Session Discipline (re-match the route every task; re-read files only on route-change or compaction — cheap re-match catches different routes without re-reading everything); all shells carry the trigger1059. **Missing or performative Task Anchor / long-task drift** — Agent starts a non-Simple task without a stable Goal/Done When, invents them only at the end, or dumps a fixed labeled block that duplicates the native Plan → use `templates/skill/workflows/task-execution.md`; keep the Anchor as runtime state, present only useful alignment, and run `reboot-check.md` before final validation/commit if the original constraints are no longer fresh10610. **Imagined-pain engineering** — Agent 提议加任何机制(规则/脚本/文件结构/模板章节)前没反问"这解决的是真痛点还是脑补":为未发生的失败加保险、为想象用户预建脚手架、为不存在的协议加 marker / 监控、给假设的"agent 偏差"立规矩。✓ Check:能给一个具体场景(file+line / commit / session)证明这事真发生过吗?给不出 → 不上。Historic: 5 ghost scripts (砍 2026-05-19), dossier schema (砍 2026-05-19), reflection-first mode shift (弃 2026-05-20), observations 日志 (拒上 2026-05-20)107108## Content Classification109110| Content type — tier by **abstraction**: 骨架 (architecture/workflows/rules = invariant theory) vs 肉 (conventions/gotchas/references = current-code facts) · [split playbook](references/skeleton-flesh-split.md) | Target | Kind |111|---|---|---|112| Abstract design theory — layering/contract/orchestration/transaction **principles**, the "why" (**NOT** the module map) | `architecture/` | 骨架 |113| Code maps + background — module tree, dir layout, source index, build/env notes | `references/` | 肉 |114| House style — naming, paths, commands, formats, must/never conventions | `conventions/` | 肉 |115| Code-coupled landmines (symptom → cause → fix), split only by independently routed module | `gotchas/` (selecting `gotchas/index.md` only after multi-file pressure) | 肉 |116| Step-by-step task procedures (process theory) | `workflows/` | 骨架 |117| Prompts/reports/docs · editor config (thin shells) | `docs/` · `.cursor/` `.claude/` | — |118119## Multi-Skill & Composition120121**Multi-skill repos** — see [references/multi-skill-routing.md](references/multi-skill-routing.md) (operating + fission + coexistence). For **invoking other skills** from your workflows (embedded / serial / subagent delegation), see [references/skill-composition.md](references/skill-composition.md) + starter [templates/skill/workflows/invoke-skill.md.example](templates/skill/workflows/invoke-skill.md.example).122123## Resources124125- [WORKFLOW.md](WORKFLOW.md) — Migration procedure (Quick Start + 9 phases + Downstream Upgrade)126- [REFERENCE.md](REFERENCE.md) + [references/](references/) — Templates, decision guides, anti-patterns, troubleshooting, self-hosting routing source127- [TEMPLATES-GUIDE.md](TEMPLATES-GUIDE.md) — Starter templates + meta-workflow templates128- [EXAMPLES.md](EXAMPLES.md) + [examples/](examples/) — behavior failures + before/after scenarios