@codemation/agent-skills 0.4.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.
- package/CHANGELOG.md +165 -0
- package/dist/metadata.json +358 -48
- package/package.json +3 -1
- package/skills/builder/ai-agent/SKILL.md +314 -0
- package/skills/builder/ai-agent/references/anti-patterns.md +24 -0
- package/skills/{codemation-cli → builder/cli}/SKILL.md +1 -8
- package/skills/builder/connect-external-systems/SKILL.md +191 -0
- package/skills/builder/credential-development/SKILL.md +86 -0
- package/skills/{codemation-credential-development → builder/credential-development}/references/credential-patterns.md +3 -3
- package/skills/builder/custom-node-development/SKILL.md +61 -0
- package/skills/builder/custom-node-development/references/credential-aware-nodes.md +52 -0
- package/skills/builder/custom-node-development/references/define-batch-node.md +54 -0
- package/skills/{codemation-custom-node-development → builder/custom-node-development}/references/define-node-per-item.md +14 -14
- package/skills/{codemation-custom-node-development → builder/custom-node-development}/references/node-patterns.md +33 -49
- package/skills/builder/document-ai/SKILL.md +167 -0
- package/skills/builder/execution-context/SKILL.md +436 -0
- package/skills/{codemation-framework-concepts → builder/framework-concepts}/SKILL.md +10 -18
- package/skills/builder/gmail/SKILL.md +327 -0
- package/skills/builder/human-in-the-loop/SKILL.md +82 -0
- package/skills/{codemation-mcp-capabilities → builder/mcp-capabilities}/SKILL.md +4 -11
- package/skills/{codemation-mcp-capabilities → builder/mcp-capabilities}/references/agent-with-mcp.ts +1 -1
- package/skills/builder/msgraph/SKILL.md +338 -0
- package/skills/builder/odoo/SKILL.md +498 -0
- package/skills/{codemation-plugin-development → builder/plugin-development}/SKILL.md +4 -7
- package/skills/{codemation-plugin-development → builder/plugin-development}/references/plugin-anatomy.md +36 -15
- package/skills/{codemation-plugin-development → builder/plugin-development}/references/plugin-structure.md +2 -2
- package/skills/builder/rest-node/SKILL.md +148 -0
- package/skills/builder/testing/SKILL.md +142 -0
- package/skills/builder/workflow-dsl/SKILL.md +493 -0
- package/skills/builder/workspace-files/SKILL.md +191 -0
- package/skills/concierge/credentials/SKILL.md +91 -0
- package/skills/concierge/intake-automation-playbook/SKILL.md +78 -0
- package/skills/concierge/scenario-invoice-to-accounting/SKILL.md +48 -0
- package/skills/concierge/scenario-procurement-intake/SKILL.md +58 -0
- package/skills/codemation-ai-agent-node/SKILL.md +0 -66
- package/skills/codemation-ai-agent-node/references/anti-patterns.md +0 -11
- package/skills/codemation-credential-development/SKILL.md +0 -57
- package/skills/codemation-custom-node-development/SKILL.md +0 -61
- package/skills/codemation-custom-node-development/references/credential-aware-nodes.md +0 -38
- package/skills/codemation-custom-node-development/references/define-batch-node.md +0 -38
- package/skills/codemation-document-scanner/SKILL.md +0 -136
- package/skills/codemation-workflow-dsl/SKILL.md +0 -78
- package/skills/codemation-workflow-dsl/references/builder-patterns.md +0 -120
- package/skills/codemation-workflow-dsl/references/complete-example.md +0 -263
- package/skills/codemation-workflow-dsl/references/workflow-testing.md +0 -194
- package/skills/codemation-workspace-files/SKILL.md +0 -142
- /package/skills/{codemation-cli → builder/cli}/references/command-map.md +0 -0
- /package/skills/{codemation-framework-concepts → builder/framework-concepts}/references/architecture-map.md +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,170 @@
|
|
|
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
|
+
|
|
3
168
|
## 0.4.0
|
|
4
169
|
|
|
5
170
|
### Minor Changes
|