@codemation/agent-skills 0.4.0 → 0.5.2

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