@codemation/agent-skills 0.3.0 → 0.5.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 (46) hide show
  1. package/CHANGELOG.md +182 -0
  2. package/dist/metadata.json +383 -36
  3. package/package.json +3 -1
  4. package/skills/builder/ai-agent/SKILL.md +314 -0
  5. package/skills/builder/ai-agent/references/anti-patterns.md +24 -0
  6. package/skills/{codemation-cli → builder/cli}/SKILL.md +1 -8
  7. package/skills/builder/connect-external-systems/SKILL.md +191 -0
  8. package/skills/builder/credential-development/SKILL.md +86 -0
  9. package/skills/{codemation-credential-development → builder/credential-development}/references/credential-patterns.md +3 -3
  10. package/skills/builder/custom-node-development/SKILL.md +61 -0
  11. package/skills/builder/custom-node-development/references/credential-aware-nodes.md +52 -0
  12. package/skills/builder/custom-node-development/references/define-batch-node.md +54 -0
  13. package/skills/{codemation-custom-node-development → builder/custom-node-development}/references/define-node-per-item.md +14 -14
  14. package/skills/{codemation-custom-node-development → builder/custom-node-development}/references/node-patterns.md +33 -49
  15. package/skills/builder/document-ai/SKILL.md +167 -0
  16. package/skills/builder/execution-context/SKILL.md +436 -0
  17. package/skills/{codemation-framework-concepts → builder/framework-concepts}/SKILL.md +10 -18
  18. package/skills/builder/gmail/SKILL.md +327 -0
  19. package/skills/builder/human-in-the-loop/SKILL.md +82 -0
  20. package/skills/{codemation-mcp-capabilities → builder/mcp-capabilities}/SKILL.md +4 -11
  21. package/skills/{codemation-mcp-capabilities → builder/mcp-capabilities}/references/agent-with-mcp.ts +1 -1
  22. package/skills/builder/msgraph/SKILL.md +338 -0
  23. package/skills/builder/odoo/SKILL.md +498 -0
  24. package/skills/{codemation-plugin-development → builder/plugin-development}/SKILL.md +4 -7
  25. package/skills/{codemation-plugin-development → builder/plugin-development}/references/plugin-anatomy.md +36 -15
  26. package/skills/{codemation-plugin-development → builder/plugin-development}/references/plugin-structure.md +2 -2
  27. package/skills/builder/rest-node/SKILL.md +148 -0
  28. package/skills/builder/testing/SKILL.md +142 -0
  29. package/skills/builder/workflow-dsl/SKILL.md +493 -0
  30. package/skills/builder/workspace-files/SKILL.md +191 -0
  31. package/skills/concierge/credentials/SKILL.md +91 -0
  32. package/skills/concierge/intake-automation-playbook/SKILL.md +78 -0
  33. package/skills/concierge/scenario-invoice-to-accounting/SKILL.md +48 -0
  34. package/skills/concierge/scenario-procurement-intake/SKILL.md +58 -0
  35. package/skills/codemation-ai-agent-node/SKILL.md +0 -66
  36. package/skills/codemation-ai-agent-node/references/anti-patterns.md +0 -11
  37. package/skills/codemation-credential-development/SKILL.md +0 -57
  38. package/skills/codemation-custom-node-development/SKILL.md +0 -61
  39. package/skills/codemation-custom-node-development/references/credential-aware-nodes.md +0 -38
  40. package/skills/codemation-custom-node-development/references/define-batch-node.md +0 -38
  41. package/skills/codemation-workflow-dsl/SKILL.md +0 -78
  42. package/skills/codemation-workflow-dsl/references/builder-patterns.md +0 -120
  43. package/skills/codemation-workflow-dsl/references/complete-example.md +0 -263
  44. package/skills/codemation-workflow-dsl/references/workflow-testing.md +0 -194
  45. /package/skills/{codemation-cli → builder/cli}/references/command-map.md +0 -0
  46. /package/skills/{codemation-framework-concepts → builder/framework-concepts}/references/architecture-map.md +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,187 @@
1
1
  # @codemation/agent-skills
2
2
 
3
+ ## 0.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#241](https://github.com/MadeRelevant/codemation/pull/241) [`0dc4aa5`](https://github.com/MadeRelevant/codemation/commit/0dc4aa5fae5e76735d063102a8e6fc761c1774dc) Thanks [@cblokland90](https://github.com/cblokland90)! - ai-agent skill: make the binary→agent passdown prescriptive. The builder was hand-rolling a "base64 encode" node (which fails at runtime: "No binary attachment found on item") instead of relying on the native `item.binary` passdown. The skill now spells out DON'T (no encode/base64 node, no stringifying bytes into a prompt) vs DO (feed `item.binary` straight in; for an HTTP download set `responseFormat: "binary"`; for a non-adjacent source forward with the agent's `binaries` option).
8
+
9
+ ## 0.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#226](https://github.com/MadeRelevant/codemation/pull/226) [`6720268`](https://github.com/MadeRelevant/codemation/commit/672026861d15bfd8f64ea3e405e506a7184a2e77) Thanks [@cblokland90](https://github.com/cblokland90)! - feat(agent-skills): add the intake-automation-playbook concierge planning skill
14
+
15
+ Adds `codemation-intake-automation-playbook`, a plain-language planning playbook for the
16
+ Concierge to load when a user wants to automate handling of incoming things (emails,
17
+ messages, orders, leads, form submissions, documents). It teaches the Concierge to
18
+ recognise the abstract intake pattern and proactively surface the nine dimensions a
19
+ non-technical owner forgets to ask for — especially traceability, duplicate-handling,
20
+ human-review, match→link→report, and testing on real data.
21
+
22
+ Tagged `audience:concierge` (a reserved-tag convention) so it loads only in the Concierge's
23
+ `find_skills` and is excluded from the builder/coder skill index — node/DSL skills and this
24
+ planning skill never cross audiences.
25
+
26
+ - [#227](https://github.com/MadeRelevant/codemation/pull/227) [`2130eab`](https://github.com/MadeRelevant/codemation/commit/2130eab49bcba708eca898f45fc400913470b11f) Thanks [@cblokland90](https://github.com/cblokland90)! - feat(core-nodes): replace managed model-id with complexity token
27
+
28
+ `CodemationChatModelConfig` now takes a `complexity: ManagedComplexity` token
29
+ (`"low" | "medium" | "high" | "xhigh"`) instead of a free model-id string.
30
+ The managed LLM broker maps the token to a concrete provider model and thinking
31
+ effort server-side — the framework never references concrete model ids.
32
+
33
+ Breaking changes:
34
+ - `CodemationChatModelConfig(name, model)` → `CodemationChatModelConfig(name, complexity)`
35
+ where `complexity` is one of `"low" | "medium" | "high" | "xhigh"`.
36
+ - `temperature` option removed from `CodemationChatModelConfig` — Anthropic rejects
37
+ temperature when thinking is engaged; the broker injects thinking for medium/high.
38
+ - `ManagedModelDto`, `CodemationManagedModel` types removed.
39
+ - `ManagedModelFetcher` class removed — the `/api/llm/managed-models` discovery
40
+ endpoint is no longer part of the complexity-token contract.
41
+
42
+ Factory change: `CodemationChatModelFactory` now uses `@ai-sdk/anthropic` +
43
+ `createAnthropic` (Anthropic-native route) instead of `@ai-sdk/openai` +
44
+ `createOpenAI` (OpenAI-compat route). This is required so the broker's injected
45
+ `thinking` / `output_config.effort` fields survive the round-trip — they are
46
+ stripped by the OpenAI-compat route.
47
+
48
+ Examples and agent-skills updated to use complexity tokens throughout.
49
+
50
+ - [#234](https://github.com/MadeRelevant/codemation/pull/234) [`13f9f11`](https://github.com/MadeRelevant/codemation/commit/13f9f11454855f44cd0849ea7e8f0c60f4a28964) Thanks [@cblokland90](https://github.com/cblokland90)! - feat(core): make `description` a first-class config option every authorable node accepts directly
51
+
52
+ A node's plain-language `description` (the non-technical "what does this step do" line rendered in
53
+ the node properties sidebar) is now a normal option passed inline alongside `id`, exactly like any
54
+ other config field — no wrapper or clone helper:
55
+
56
+ ```ts
57
+ new Callback("Tag order as received", markReceived, { id: "mark", description: "Tags the order." });
58
+ new If("High value?", (i) => i.json.total > 1000, { id: "gate", description: "Routes big orders." });
59
+ new CronTrigger("Nightly", { schedule: "0 2 * * *" }, { id: "nightly", description: "Runs nightly." });
60
+ ```
61
+
62
+ - `NodeConfigBase` gains `readonly description?: string` (mirrors `icon`), and the
63
+ `WorkflowSnapshotCodec` carries it into the persisted snapshot config the host / canvas mappers
64
+ read — so the sidebar renders it. (`description` was added to the codec's non-serializable
65
+ fallback whitelist for parity with `icon`.)
66
+ - Every authorable built-in node threads `description` into its config: options-object nodes
67
+ (`Callback`, `MapData`, `Assertion`, `HttpRequest`, `AIAgent`, `TestTrigger`) accept it in their
68
+ options; bare-id nodes (`If`, `Split`, `Filter`, `Aggregate`, `Wait`, `Switch`, `SubWorkflow`,
69
+ `Merge`, `NoOp`, `IsTestRun`, `CronTrigger`, `WebhookTrigger`, `ManualTrigger`) now take a final
70
+ `string | { id?: string; description?: string }` argument — a bare `"id"` string still works
71
+ (back-compat).
72
+ - The `define*` factory helpers carry it too: `defineNode`, `defineBatchNode`,
73
+ `definePollingTrigger` (and everything layered on `defineNode` — `defineRestNode`,
74
+ `defineHumanApprovalNode`/`inboxApproval`, and the collection CRUD nodes) now accept
75
+ `{ id?, description? }` in the trailing `create(config, name, idOrOptions)` slot, so a per-instance
76
+ `description` survives into the persisted snapshot. A bare string id still works (back-compat).
77
+ - The `workflow-dsl` skill teaches business-action node titles and a one-line `description` set
78
+ directly in each node's options.
79
+
80
+ This supersedes the rejected `present(node, { description })` clone-helper approach (PR [#232](https://github.com/MadeRelevant/codemation/issues/232)/[#233](https://github.com/MadeRelevant/codemation/issues/233)):
81
+ `description` is a normal inline option, not a prototype clone.
82
+
83
+ - [#226](https://github.com/MadeRelevant/codemation/pull/226) [`6720268`](https://github.com/MadeRelevant/codemation/commit/672026861d15bfd8f64ea3e405e506a7184a2e77) Thanks [@cblokland90](https://github.com/cblokland90)! - feat(agent-skills): reorganise skills into builder/ + concierge/ audience sub-trees, add drift-gate
84
+
85
+ All 22 legacy `codemation-*` flat skills are replaced by two audience-scoped sub-trees:
86
+ - `skills/builder/*` — 18 skills covering workflow DSL, nodes, credentials, custom-node development,
87
+ execution-context (`getOutputItem` cross-step access pattern), document AI, Gmail, HITL, MCP
88
+ capabilities, REST, testing, workspace files, Odoo, MS Graph, CLI, framework concepts,
89
+ plugin development, and connect-external-systems.
90
+ - `skills/concierge/*` — 4 skills: credentials binding, intake-automation-playbook, and the two
91
+ vertical guidance scenarios (procurement-intake, invoice-to-accounting).
92
+
93
+ A **skill drift-gate** (`scripts/verify-skill-code.mjs`, wired as the package `typecheck` / `verify-skills`
94
+ target, and enforced in CI) extracts every checked ` ```typescript ` block from every skill and
95
+ typechecks it against the live `@codemation/*` framework source. Blocks that are genuinely illustrative
96
+ pseudo-code use ` ```ts no-check ` or ` ```text ` so the gate skips them.
97
+
98
+ The `PackageMetadataExtractor` skill-discovery walk is updated to recurse through audience-grouping
99
+ directories so the nested layout is transparent to the catalog. `AGENTS.md` now documents the
100
+ drift-gate as a hard requirement alongside node-surface changes.
101
+
102
+ Example workflows previously served as standalone catalog entries are now embedded inside skill
103
+ ` ```typescript ` blocks, making the skill itself the canonical reference. The `packages/examples`
104
+ barrel no longer re-exports builder examples (`export {}` only); goldens in `src/goldens/` remain
105
+ for the builder eval.
106
+
107
+ - [#226](https://github.com/MadeRelevant/codemation/pull/226) [`6720268`](https://github.com/MadeRelevant/codemation/commit/672026861d15bfd8f64ea3e405e506a7184a2e77) Thanks [@cblokland90](https://github.com/cblokland90)! - Wire the unified-artifacts L2 layer (Phase 2): tag the 5 topic skills that become a parent's L2
108
+ overview (`parent` + `overview: true` on ai-agent-node, document-scanner, credential-development,
109
+ workspace-files, custom-node-development), mark plugin-development a child of `extending`, and add 7
110
+ short authored topic overviews (flow-control, triggers, http-and-apis, human-in-the-loop, testing,
111
+ data-shaping, gmail). Every topic parent now resolves to an L2 overview + its example children.
112
+
113
+ ### Patch Changes
114
+
115
+ - [#230](https://github.com/MadeRelevant/codemation/pull/230) [`67b11fe`](https://github.com/MadeRelevant/codemation/commit/67b11fef992bbb91ce772bee7a602e0e3b4ac966) Thanks [@cblokland90](https://github.com/cblokland90)! - docs(workflow-dsl): add a "Filter vs If — choose up front" decision rule
116
+
117
+ The builder would draft "keep only real orders" as an `If` + `.when` (the skill's leading branching
118
+ example), then realise a `Filter` is the right shape and **rewrite the whole workflow** — the single
119
+ biggest source of slow procurement builds (a full rewrite is minutes of regeneration). The
120
+ `workflow-dsl` skill now states the rule before the `If` example: to KEEP ONLY items matching a
121
+ condition and drop the rest, use a `Filter` (one node, single trunk); reach for `If` + `.when` ONLY
122
+ when the two branches do DIFFERENT downstream work. The first draft now uses `Filter` and is the one
123
+ the model keeps.
124
+
125
+ - [#226](https://github.com/MadeRelevant/codemation/pull/226) [`6720268`](https://github.com/MadeRelevant/codemation/commit/672026861d15bfd8f64ea3e405e506a7184a2e77) Thanks [@cblokland90](https://github.com/cblokland90)! - docs(agent-skills): make the six framework-extending skills honest and concise
126
+
127
+ Tightens the rarely-read "extending the framework" skills — `codemation-custom-node-development`,
128
+ `codemation-credential-development`, `codemation-plugin-development`, `codemation-framework-concepts`,
129
+ `codemation-cli`, and `codemation-mcp-capabilities` — so every checked `typescript` block compiles
130
+ against the live framework and the prose matches the gold skill style.
131
+
132
+ Each drifted example was either fixed to compile against the real API (`defineNode` per-item
133
+ `execute(args, ctx)` shape; `credentials.<slot>()` accessors; `args.ctx.binary` for attachments;
134
+ `defineBatchNode` without `inputSchema`; `McpServerDeclaration` from `@codemation/core` with
135
+ `transport: "http"`) or converted to a `text` fence when it was a genuinely illustrative
136
+ fragment. Frontmatter was trimmed to a third-person what+when description with the
137
+ parent/overview menu framing removed. The skill drift-gate now passes for all six.
138
+
139
+ - [#226](https://github.com/MadeRelevant/codemation/pull/226) [`6720268`](https://github.com/MadeRelevant/codemation/commit/672026861d15bfd8f64ea3e405e506a7184a2e77) Thanks [@cblokland90](https://github.com/cblokland90)! - feat(core-nodes-odoo): inline the Odoo plugin into the framework monorepo so the skills drift-gate resolves it
140
+
141
+ Moves `@codemation/core-nodes-odoo` from the parent monorepo (`plugins/codemation-nodes-odoo`)
142
+ into `packages/core-nodes-odoo` as a first-class framework package. The drift-gate
143
+ (`tsconfig.skillcheck.json`) path mappings are updated to point to the inlined source,
144
+ resolving the CI failure where the builder/odoo and builder/execution-context skill blocks
145
+ could not resolve `@codemation/core-nodes-odoo` outside the parent monorepo context.
146
+
147
+ - [#226](https://github.com/MadeRelevant/codemation/pull/226) [`6720268`](https://github.com/MadeRelevant/codemation/commit/672026861d15bfd8f64ea3e405e506a7184a2e77) Thanks [@cblokland90](https://github.com/cblokland90)! - test(core-nodes): regression tests for explicit id acceptance on Assertion and TestTrigger
148
+
149
+ Adds three regression tests that prove `Assertion` and `TestTrigger` accept an explicit `id`
150
+ in their options object and that the id survives into `WorkflowDefinition.nodes[].id` through
151
+ `WorkflowBuilder.add()`. A build-eval run had tripped on inconsistent id acceptance; this
152
+ establishes a permanent guard.
153
+
154
+ Also updates the `testing` skill's full example to set explicit ids on the `Assertion` and
155
+ `IsTestRun` nodes, consistent with the `workflow-dsl` gotcha ("Set an explicit `id` on every
156
+ node"). The `TestTrigger` in that example already carried an id.
157
+
158
+ - [#235](https://github.com/MadeRelevant/codemation/pull/235) [`666ff05`](https://github.com/MadeRelevant/codemation/commit/666ff05121f19413d7b6c97161f01028920889e9) Thanks [@cblokland90](https://github.com/cblokland90)! - Strengthen the builder skills to set a plain-language `description` on **every** node. The
159
+ `workflow-dsl` skill now makes "every node, no exceptions" a hard rule — naming the easily-forgotten
160
+ node types (trigger / test-trigger, OCR / PDF-scan, AI-agent, notify / test-notification) and adding a
161
+ pre-finish self-check ("re-read the whole workflow, confirm every node has a title AND a description").
162
+ The `document-ai` skill's scan example now authors the scanner with `{ id, description }` (and gives
163
+ its webhook trigger one too) so the OCR step is never left bare.
164
+
165
+ Measured on the builder `non_tech_friendly` eval (BUILD1-procurement): descriptions 0.73 → 0.92 and
166
+ titles 0.82 → 1.00 (overall 0.77 → 0.96) from the skill changes alone.
167
+
168
+ ## 0.4.0
169
+
170
+ ### Minor Changes
171
+
172
+ - [#185](https://github.com/MadeRelevant/codemation/pull/185) [`be520d2`](https://github.com/MadeRelevant/codemation/commit/be520d2755144a3709ecc109019b84e2c502337e) Thanks [@cblokland90](https://github.com/cblokland90)! - feat(workspace-files): examples + skill (story 04)
173
+
174
+ Two CI-verified examples for workspace file nodes:
175
+ - node-workspace-files-read.example.ts — read a workspace CSV by filename (latest-wins) + parse
176
+ - concierge-digest-to-workflow.example.ts — concierge digests PDF → workflow reads derived JSON
177
+
178
+ New codemation-workspace-files skill documenting: read-by-filename vs pinned fileId, binary slot
179
+ handoff, read-only boundary, and the raw-upload → concierge-digests → workflow-reads pattern.
180
+
181
+ ### Patch Changes
182
+
183
+ - [#184](https://github.com/MadeRelevant/codemation/pull/184) [`8c5b213`](https://github.com/MadeRelevant/codemation/commit/8c5b213092501bb48aa0c575b0489bbd36b46c79) Thanks [@cblokland90](https://github.com/cblokland90)! - Add `codemation-document-scanner` skill entry covering analyzerType routing table, confidence opt-in (LD6), output shape, and when to choose the managed node vs standalone OCR nodes.
184
+
3
185
  ## 0.3.0
4
186
 
5
187
  ### Minor Changes