@eventmodelers/cli 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/package.json +1 -1
  2. package/shared/skills/connect/SKILL.md +2 -0
  3. package/shared/skills/learn-eventmodelers-api/SKILL.md +2 -0
  4. package/stacks/modeling-kit/templates/.claude/skills/add-next-slice/SKILL.md +1 -1
  5. package/stacks/modeling-kit/templates/.claude/skills/analyze-existing-model/SKILL.md +1 -1
  6. package/stacks/modeling-kit/templates/.claude/skills/attributes/SKILL.md +1 -1
  7. package/stacks/modeling-kit/templates/.claude/skills/discover-storyboard/SKILL.md +3 -21
  8. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-applying-conways-law/SKILL.md +1 -1
  9. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-brainstorming-events/SKILL.md +1 -1
  10. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-checking-completeness/SKILL.md +1 -1
  11. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-designing-event-models/SKILL.md +1 -1
  12. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-elaborating-scenarios/SKILL.md +1 -1
  13. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-inputs/SKILL.md +1 -1
  14. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-outputs/SKILL.md +1 -1
  15. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-integrating-legacy-systems/SKILL.md +1 -1
  16. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-orchestrating-event-modeling/SKILL.md +1 -1
  17. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-plotting-events/SKILL.md +1 -1
  18. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-slicing-event-models/SKILL.md +1 -1
  19. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-storyboarding-events/SKILL.md +1 -1
  20. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-translating-external-events/SKILL.md +1 -1
  21. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-validating-event-models/SKILL.md +1 -1
  22. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-validating-event-models-checklist/SKILL.md +1 -1
  23. package/stacks/modeling-kit/templates/.claude/skills/examples/SKILL.md +1 -1
  24. package/stacks/modeling-kit/templates/.claude/skills/handle-comment/SKILL.md +1 -1
  25. package/stacks/modeling-kit/templates/.claude/skills/html-screen/SKILL.md +4 -23
  26. package/stacks/modeling-kit/templates/.claude/skills/place-element/SKILL.md +1 -1
  27. package/stacks/modeling-kit/templates/.claude/skills/storyboard/SKILL.md +6 -27
  28. package/stacks/modeling-kit/templates/.claude/skills/storyboard-screen/SKILL.md +4 -23
  29. package/stacks/modeling-kit/templates/.claude/skills/timeline/SKILL.md +1 -1
  30. package/stacks/modeling-kit/templates/.claude/skills/update-prompt-status/SKILL.md +1 -1
  31. package/stacks/modeling-kit/templates/.claude/skills/wdyt/SKILL.md +1 -1
  32. package/stacks/modeling-kit/templates/kit/CLAUDE.md +5 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eventmodelers/cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Eventmodelers CLI — real-time Claude agent + skills for Claude Code, for any stack (Node, Supabase, Axon, Cratis, or modeling-only)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -7,6 +7,8 @@ description: Resolve eventmodelers connection config (token, boardId, baseUrl) f
7
7
 
8
8
  **Every other skill invokes this skill first** before making any API calls. Do not proceed past this skill until all four values (`TOKEN`, `BOARD_ID`, `ORG_ID`, `BASE_URL`) are resolved.
9
9
 
10
+ **This should happen once per session, not once per skill.** If `TOKEN`/`BOARD_ID`/`ORG_ID`/`BASE_URL` are already resolved and verified from earlier in the current session — including earlier in the *same turn*, e.g. one skill internally invoking a second skill (`add-next-slice` → `html-screen`) — every subsequent "invoke `connect`" instruction is satisfied immediately by reusing those values. Do not re-run Steps 0–4 below. Only re-run this skill from scratch when a value actually needs to change: a fresh `401`/`403`/access-denied response from some other call, a different `board_id` on this turn, or a new inline param that overrides what's already resolved.
11
+
10
12
  This skill also registers the **eventmodelers MCP server** for the project (Step 3.5) so other skills can call MCP tools (`mcp__eventmodelers__*`) instead of raw curl. MCP is the preferred transport; curl remains a fallback for hosts without MCP support, or for the one or two endpoints (documented in `learn-eventmodelers-api`) the MCP server doesn't expose.
11
13
 
12
14
  ---
@@ -7,6 +7,8 @@ description: Teaches an agent everything about the eventmodelers platform API
7
7
 
8
8
  You now have complete knowledge of the eventmodelers platform API. This is a reference for *how a skill talks to the platform once you're already executing one* — it is not a license to call the API directly instead of invoking the skill that matches the user's intent (see the Skill Selection table in `CLAUDE.md`). If a prompt matches a row in that table, invoke that skill first and let it decide which endpoint/tool to call; only reach for this reference directly when no skill matches the intent at all, or when you're implementing/debugging a skill itself.
9
9
 
10
+ **Load this once per session, on demand — not as a mandatory preamble.** Every other skill already documents the exact API calls it needs inline; none of them require this full reference to be loaded before they can run. Reach for this skill only when you hit a specific endpoint, field, or element type that a skill's own instructions don't cover, and don't reload it again later in the same session once you have.
11
+
10
12
  **Two transports exist for board operations: MCP tools (preferred) and raw REST/curl (fallback).** The `connect` skill registers the MCP server in `.mcp.json`. Once `mcp__eventmodelers__*` tools are visible in your tool list, use them — they need no `x-token`/`x-board-id`/`x-user-id` headers (auth and org resolution happen server-side from the registered token) and return the same data as the REST endpoints below. Fall back to the numbered REST sections only when MCP tools aren't connected yet, or for the handful of endpoints (prompts lifecycle, snapshots, user management, board/extension CRUD) the MCP server intentionally doesn't expose — it only covers board-content operations (nodes, timelines, slices, comments, screens). This preference is about *which transport a skill's own instructions should use*, never about whether to invoke the skill in the first place.
11
13
 
12
14
  ---
@@ -5,7 +5,7 @@ description: Decide on and create a genuinely new slice from scratch when there'
5
5
 
6
6
  # Add Next Slice
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference (in particular the **Slices** section). Do not proceed until both skills have been loaded.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Every API call this skill needs (`create_slice`, `get_nodes`/`get_node`) is already given in full below do not additionally load `learn-eventmodelers-api`; only reach for it if you hit an error this file doesn't cover.
9
9
 
10
10
  **Purpose**: Given a timeline where every existing COMMAND/READMODEL/AUTOMATION already has a slice (or there's no model content at all yet), decide on a plausible next capability and create it as a brand-new slice — screen, command/read model, and event all at once.
11
11
 
@@ -5,7 +5,7 @@ description: Analyze the existing event model on a board — summarizes contexts
5
5
 
6
6
  # Analyze Existing Model
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
@@ -5,7 +5,7 @@ description: Add a new attribute or rename an existing attribute across a chain
5
5
 
6
6
  # Attributes
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
@@ -49,7 +49,7 @@ Do NOT invoke `connect`. Do NOT proceed to Step 1.
49
49
 
50
50
  ## Step 1 — Connect
51
51
 
52
- Invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until all four are available.
52
+ Invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until all four are available.
53
53
 
54
54
  > Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below (Steps 5–7, the eventmodelers board-API calls) are the fallback for sessions without MCP connected. This is unrelated to the browser automation MCP checked in Step 0, which stays as-is.
55
55
 
@@ -351,24 +351,7 @@ curl -s -X POST "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/image-nodes/$SCREEN_
351
351
 
352
352
  Response: `204` on success. Log failures in the final report but continue to the next screen — do not stop the entire run.
353
353
 
354
- ### 7d — Verify the screen
355
-
356
- Confirm the node and its uploaded screenshot both actually exist.
357
-
358
- **Prefer MCP:**
359
- ```
360
- mcp__eventmodelers__verify_screen { "boardId": "<BOARD_ID>", "nodeId": "<SCREEN_NODE_ID>" }
361
- ```
362
-
363
- **Fallback (no MCP):**
364
- ```bash
365
- curl -s "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/screens/$SCREEN_NODE_ID/verify" \
366
- -H "x-token: $TOKEN"
367
- ```
368
-
369
- If `valid` is `false`, read the `error` field. If `imageExists` is `false`, the screenshot upload in 7b failed silently — retry it once. Log any screen that still fails verification in the final report and continue to the next screen.
370
-
371
- ### 7e — Report per-screen progress
354
+ ### 7d — Report per-screen progress
372
355
 
373
356
  After each screen: print one line, e.g.:
374
357
  ```
@@ -387,8 +370,7 @@ Discover Storyboard complete.
387
370
  Flows created (N total):
388
371
  • "Login & Authentication" — chapter <id> — 3 screens
389
372
  • "Product Browsing" — chapter <id> — 5 screens
390
-
391
- Screens uploaded: N of M (list any failures, including screens that failed 7d verification)
373
+ Screens uploaded: N of M (list any failures)
392
374
 
393
375
  Next steps:
394
376
  - Open the board to review the storyboard timelines
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Applying Conway's Law
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  ## Interview Phase (Optional)
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Brainstorming Events
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
15
15
 
@@ -8,7 +8,7 @@ allowed-tools:
8
8
 
9
9
  # Checking Completeness
10
10
 
11
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
11
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
12
12
 
13
13
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
14
14
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Designing Event Models
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  ## Interview Phase (Optional)
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Elaborating Scenarios
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Identifying Inputs
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Identifying Outputs
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Integrating Legacy Systems
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  ## Interview Phase (Critical - Not Optional)
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Orchestrating Event Modeling
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
15
15
 
@@ -8,7 +8,7 @@ allowed-tools:
8
8
 
9
9
  # Plotting Events
10
10
 
11
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
11
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
12
12
 
13
13
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
14
14
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Slicing Event Models
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference (in particular the **Slices** section). Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` (in particular the **Slices** section) only if you need to look up a specific endpoint or field this file doesn't cover — don't load it eagerly.
13
13
 
14
14
  > Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Storyboarding Events
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
15
15
 
@@ -9,7 +9,7 @@ allowed-tools:
9
9
 
10
10
  # Translating External Events
11
11
 
12
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
12
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
13
13
 
14
14
  ## Interview Phase (Optional)
15
15
 
@@ -8,7 +8,7 @@ allowed-tools:
8
8
 
9
9
  # Validating Event Models
10
10
 
11
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
11
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
12
12
 
13
13
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
14
14
 
@@ -8,7 +8,7 @@ allowed-tools:
8
8
 
9
9
  # Event Model Validation Checklist Skill
10
10
 
11
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
11
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
12
12
 
13
13
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
14
14
 
@@ -5,7 +5,7 @@ description: Find an element on an eventmodelers board by ID, name, or cell name
5
5
 
6
6
  # Examples
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
@@ -5,7 +5,7 @@ description: Place, resolve, or delete a comment on an eventmodelers board node.
5
5
 
6
6
  # Handle Comment
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
@@ -5,13 +5,13 @@ description: Design and render a single real HTML/CSS screen (one or more pages)
5
5
 
6
6
  # HTML Screen Designer
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, `ORG_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
12
12
  > **DEFAULT SCREEN SKILL**: Reach for this skill on any ordinary "design a screen" / "storyboard this" request — it is the default, rendering a real HTML/CSS mockup onto an HTML_SCREEN node. Use `storyboard-screen` (a low-fidelity wireframe sketch onto a plain SCREEN node) **only** when the user explicitly asks for a "sketch", a "wireframe", a "low-fidelity mockup", or names the SCREEN node type directly.
13
13
 
14
- > **MANDATORY RENDER + VERIFY**: The render call in Step 4 and the verification in Step 5 are **not optional**. This skill exists solely to produce rendered pages. An HTML_SCREEN node with no non-empty page is an empty placeholder that adds no value to the model. If the render call is skipped or fails, or verification reports `valid: false`, the task is incomplete — retry or report the error.
14
+ > **MANDATORY RENDER**: The render call in Step 4 is **not optional**. This skill exists solely to produce rendered pages. An HTML_SCREEN node with no non-empty page is an empty placeholder that adds no value to the model. If the render call is skipped or fails, the task is incomplete — retry or report the error.
15
15
 
16
16
  Design one or more HTML/CSS pages and render them onto an HTML_SCREEN node — creating the node if it doesn't exist yet, or updating it in place if it does. Use this to build a realistic, styled mockup (forms, tables, real page layout) rather than a wireframe sketch. Each page is a separate, standalone piece of markup — e.g. a multi-step form is one page per step, not one blob with hidden sections.
17
17
 
@@ -120,29 +120,10 @@ curl -s -X POST "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/html-screen-nodes/$N
120
120
 
121
121
  Expect `204 No Content` on success from either curl call.
122
122
 
123
- ## Step 5 — Verify the screen
124
-
125
- Confirm the node exists, is type HTML_SCREEN, and has at least one non-empty page.
126
-
127
- **Prefer MCP:**
128
-
129
- ```
130
- mcp__eventmodelers__verify_screen { "boardId": "<BOARD_ID>", "nodeId": "<NODE_ID>" }
131
- ```
132
-
133
- **Fallback (no MCP):**
134
-
135
- ```bash
136
- curl -s "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/html-screens/$NODE_ID/verify" \
137
- -H "x-token: $TOKEN"
138
- ```
139
-
140
- If `valid` is `false`, read the `error` field and retry the failing step once before reporting failure.
141
-
142
- ## Step 6 — Report back
123
+ ## Step 5 — Report back
143
124
 
144
125
  Tell the user:
145
126
  - The node ID that was created or updated
146
127
  - How many pages the screen now has
147
- - Whether the render succeeded (HTTP 204) and verification passed (`valid: true`)
128
+ - Whether the render succeeded (HTTP 204)
148
129
  - Any errors
@@ -5,7 +5,7 @@ description: Place a COMMAND, READMODEL, EVENT, SCREEN, AUTOMATION, or SCENARIO
5
5
 
6
6
  # Place Element
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
@@ -5,7 +5,7 @@ description: Build a complete visual storyboard with AI-generated screens from a
5
5
 
6
6
  # Storyboard Builder
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
@@ -152,9 +152,9 @@ Build an **empty-column queue**: for each column (in order), compute `actorCellI
152
152
 
153
153
  ---
154
154
 
155
- ## SCREEN LOOP — repeat Steps 5a–5d once per screen (N iterations total)
155
+ ## SCREEN LOOP — repeat Steps 5a–5c once per screen (N iterations total)
156
156
 
157
- Process screens **one at a time**. Do not start the next screen until the current one is fully complete (node created + sketch rendered + verified).
157
+ Process screens **one at a time**. Do not start the next screen until the current one is fully complete (node created + sketch rendered).
158
158
 
159
159
  **You have ONE chapter (`CHAPTER_ID`). All screens go into this same chapter. Do NOT call the chapter creation endpoint again inside this loop.**
160
160
 
@@ -257,30 +257,9 @@ curl -s -X POST "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/image-nodes/$SCREEN_
257
257
 
258
258
  Pass the already-computed `actorCellId` directly as `cellId` in either path. Expect success (MCP: `created: true`; curl: `204`). On failure, read the validation error, fix the payload, and retry once before reporting failure.
259
259
 
260
- ### Step 5c — Verify the screen
260
+ ### Step 5c — Mark the task complete
261
261
 
262
- Confirm the node and its rendered image both actually exist before moving on.
263
-
264
- **Prefer MCP:**
265
-
266
- ```
267
- mcp__eventmodelers__verify_screen { "boardId": "<BOARD_ID>", "nodeId": "<SCREEN_NODE_ID>" }
268
- ```
269
-
270
- **Fallback (no MCP):**
271
-
272
- ```bash
273
- curl -s "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/screens/$SCREEN_NODE_ID/verify" \
274
- -H "x-token: $TOKEN"
275
- ```
276
-
277
- Check the `valid` field in the response:
278
- - **`valid: true`** — proceed to marking the task complete.
279
- - **`valid: false`** — read the `error` field and retry Step 5b once. If it fails verification again, log the error for this screen in the final report and move on to the next screen — do not get stuck retrying indefinitely.
280
-
281
- ### Step 5d — Mark the task complete
282
-
283
- After the node, sketch, and verification all succeed, mark the task for this screen as completed using TaskUpdate.
262
+ After the node and sketch succeed, mark the task for this screen as completed using TaskUpdate.
284
263
 
285
264
  ---
286
265
 
@@ -289,4 +268,4 @@ After the node, sketch, and verification all succeed, mark the task for this scr
289
268
  After all screens are done, summarise:
290
269
  - Chapter ID
291
270
  - Numbered list: screen title
292
- - Any errors (with status codes), including screens that failed the Step 5c verification
271
+ - Any errors (with status codes)
@@ -5,13 +5,13 @@ description: Design and render a single AI-generated wireframe sketch screen ont
5
5
 
6
6
  # Storyboard Screen Designer
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
12
12
  > **EXPLICIT USE ONLY**: Do not reach for this skill on an ordinary "design a screen" / "storyboard this" request — the default is `html-screen`, which renders a real HTML/CSS mockup onto an HTML_SCREEN node. Use this skill **only** when the user explicitly asks for a "sketch", a "wireframe", a "low-fidelity mockup", or names the SCREEN node type directly.
13
13
 
14
- > **MANDATORY RENDER + VERIFY**: The sketch API call in Step 4 and the verification in Step 5 are **not optional**. This skill exists solely to produce a rendered wireframe. A SCREEN node without a rendered sketch is an empty placeholder that adds no value to the model. If the sketch API call is skipped or fails, or verification reports `valid: false`, the task is incomplete — retry or report the error.
14
+ > **MANDATORY RENDER**: The sketch API call in Step 4 is **not optional**. This skill exists solely to produce a rendered wireframe. A SCREEN node without a rendered sketch is an empty placeholder that adds no value to the model. If the sketch API call is skipped or fails, the task is incomplete — retry or report the error.
15
15
 
16
16
  Design a single wireframe screen and render it onto an existing SCREEN node. Use this to redesign a screen, add detail to a placeholder, or update a screen after a flow changes.
17
17
 
@@ -129,28 +129,9 @@ curl -s -X POST "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/images/$NODE_ID/sket
129
129
 
130
130
  Expect `204 No Content` on success.
131
131
 
132
- ## Step 5 — Verify the screen
133
-
134
- Confirm the node and its rendered image both actually exist.
135
-
136
- **Prefer MCP:**
137
-
138
- ```
139
- mcp__eventmodelers__verify_screen { "boardId": "<BOARD_ID>", "nodeId": "<NODE_ID>" }
140
- ```
141
-
142
- **Fallback (no MCP):**
143
-
144
- ```bash
145
- curl -s "$BASE_URL/api/org/$ORG_ID/boards/$BOARD_ID/screens/$NODE_ID/verify" \
146
- -H "x-token: $TOKEN"
147
- ```
148
-
149
- If `valid` is `false`, read the `error` field and retry the failing step (Step 4 if `imageExists` is `false`) once before reporting failure.
150
-
151
- ## Step 6 — Report back
132
+ ## Step 5 — Report back
152
133
 
153
134
  Tell the user:
154
135
  - The node ID that was updated
155
- - Whether the render succeeded (HTTP 204) and verification passed (`valid: true`)
136
+ - Whether the render succeeded (HTTP 204)
156
137
  - Any errors
@@ -5,7 +5,7 @@ description: Live event storming facilitator — asks questions about any busine
5
5
 
6
6
  # Timeline Builder — Live Mode
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Then invoke the `learn-eventmodelers-api` skill to load the full API reference. Do not proceed until both skills have been loaded.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until it has completed. Consult `learn-eventmodelers-api` only if you need to look up a specific endpoint or field this file doesn't cover don't load it eagerly.
9
9
 
10
10
  > Prefer `mcp__eventmodelers__*` tools when available (registered by the `connect` skill) — the curl blocks below are the fallback for sessions without MCP connected.
11
11
 
@@ -5,7 +5,7 @@ description: Update the lifecycle status (and optionally a progress comment) of
5
5
 
6
6
  # Update Prompt Status
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `ORG_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `ORG_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  Prefer `mcp__eventmodelers__update_prompt_status` when available (registered by the `connect` skill) — the curl block below is the fallback for sessions without MCP connected. This is the one prompt-queue operation MCP does expose (submission, claiming, and deletion remain curl-only — the MCP server otherwise doesn't own this lifecycle).
11
11
 
@@ -5,7 +5,7 @@ description: Business analyst exploration of an event model board. Reads all sli
5
5
 
6
6
  # WDYT — What Do You Think?
7
7
 
8
- > **Before doing anything else**, invoke the `connect` skill to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
8
+ > **Before doing anything else**, invoke the `connect` skill — if not already connected — to resolve `TOKEN`, `BOARD_ID`, and `BASE_URL`. Do not proceed until the connect skill has completed.
9
9
 
10
10
  You are a **sharp business analyst** reviewing an event model. You don't know the domain yet — you're seeing it fresh. Your job is to read the model, understand the intended flows, and ask the hard questions that developers and domain experts tend to overlook because they're too close to the problem.
11
11
 
@@ -30,6 +30,10 @@ At the start of every session, read `.agent-modeling-kit/AGENTS.md` if it exists
30
30
  - if the last API call returned `401`/`403`.
31
31
 
32
32
  Otherwise skip straight to executing the prompt — re-running `/connect` every turn defeats the point of a modeling session.
33
+
34
+ This also applies **inside** a turn: when the skill you invoke in step 5 internally calls a second skill (e.g. `/add-next-slice` calling `/html-screen` to fill in the new screen), that second skill's own "invoke `connect` first" preamble is already satisfied by the connect you ran this turn — don't run it again just because the sub-skill's instructions say to.
35
+
36
+ The same "don't reload what's already loaded" logic applies to `/learn-eventmodelers-api`: it's a lookup reference, not a mandatory preamble. Every skill already documents the exact API calls it needs inline — only invoke `/learn-eventmodelers-api` on demand, for a specific endpoint/field/type a skill's own instructions don't cover, and only once per session even then.
33
37
  3. **Resolve `BOARD_ID`** from this turn's `board_id` field; if absent, fall back to `boardId` in `.eventmodelers/config.json`.
34
38
  **Resolve `TIMELINE_ID`** from this turn's `context.timelineId`, if present and non-null; otherwise use this turn's `timeline_id` field. `context.timelineId` reflects the chapter the user was actually pointing at on the canvas (a selected cell or node) when they issued the prompt, which can differ from `timeline_id` — the chapter the voice/prompt session happened to be scoped to — so it wins whenever both are present.
35
39
  **Resolve `NODE_ID`** from the first entry of this turn's `context.selectedNodes`, if that array is present and non-empty; otherwise use this turn's `node_id` field. `context.selectedNodes` reflects what was actually selected on the canvas when the prompt was issued, which can differ from `node_id` — set only when the prompt originated from a specific node/comment — so it wins whenever both are present.
@@ -58,7 +62,7 @@ At the start of every session, read `.agent-modeling-kit/AGENTS.md` if it exists
58
62
  | Design or update a single wireframe/sketch screen (explicit request only) | `/storyboard-screen` |
59
63
  | Business analysis, gap spotting, posting questions | `/wdyt` |
60
64
  | Analyse the existing model structure, slice coverage, element counts | `/analyze-existing-model` |
61
- | Look up any API endpoint or element type | `/learn-eventmodelers-api` |
65
+ | Look up any API endpoint or element type not already covered by the skill you're executing | `/learn-eventmodelers-api` |
62
66
  | Add or rename an attribute across a chain of elements | `/attributes` |
63
67
  | Add or improve example data on element fields | `/examples` |
64
68
  | Make an existing timeline element's (COMMAND/READMODEL/AUTOMATION) slice explicit | `/eventmodeling-slicing-event-models` |