n8n/scripts
Arvin Ansari 30b4d7946c
feat(core): Add the activity-awareness skill and its A/B eval arms (no-changelog)
Three pieces so the surfaces built earlier can actually be judged.

The `instance-awareness` skill teaches the ladder rather than the tools: ask
about intent, look up state; read cheapest-first and stop at the first rung that
answers the question; treat an absence in the node-usage histogram as evidence
rather than as a gap. It also says where each surface stops — the log records
that a save happened and the node count changed, never which nodes, so anything
about contents is a workflow read.

Four eval cases on a new `activity` tier, which also carries `memory` so they
run under both. Two are authored from real reviewed traces rather than invented:
lang-tracer observation 3870 and its siblings, where the agent restarted work it
had just finished and re-elicited requirements it already had. Their A/B
discriminator is a probe-anchored context assertion — with the feed off nothing
carries the prior workflow into the turn, so it can only arrive via a tool call,
which is turn-end and not probe. That distinction is the measurement.

Every case is scored on behaviour, never on narration. A probe that asks the
agent to describe its own context manufactures its own evidence, which is the
restatement confound recorded on this branch. So the checks ask whether it
re-elicited a known requirement, whether it named the broken workflow, whether
it picked the house node — not whether it can recite the block.

The fourth case is the negative control, and the one that should stop a rollout:
loud recent activity plus an unrelated request. It deliberately does not assert
that the recent workflow is absent from context — it will be there, the feed put
it there. What is scored is whether the agent acted on it. Having a fact and
using it are different, and that difference is the whole point.

scripts/ab-activity-eval.sh drives both arms. They differ by a flag on the
instance under test, not by a runner argument, so each arm needs its own start —
the flag is read once when the relay registers. The script says what to read and
in what order, with context-ignored first.

Also opens the activity preamble up. It forbade narrating the feed but never
granted permission to act on it, which left the agent with a list of work it was
implicitly told to ignore. It now says this is work you can pick up, that a
vague opener usually means the most recent thing, and points at the skill.

Two honest limits recorded in the README. `node-usage` is not gated by the flag,
so the preference case measures a capability both arms have and a difference
there is noise. And that case has no historical precedent: a sweep of 16,262
traces found no conversation where a user stated a node preference their own
workflows already showed.
2026-08-26 16:32:51 +02:00
..
backend-module refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
dev-metrics chore: Add opt-in dev-tooling usage metrics (no-changelog) (#33620) 2026-07-15 10:54:41 +00:00
instance-seeding feat(core): Make the seed's API tokens optional (no-changelog) 2026-08-26 15:37:03 +02:00
licenses build: Re-pin mailsplit license election to 5.4.15 (no-changelog) (#36491) 2026-08-18 10:39:29 +00:00
mutation-health chore: Remove remaining Jest references (no-changelog) (#33412) 2026-07-09 09:29:24 +03:00
ab-activity-eval.sh feat(core): Add the activity-awareness skill and its A/B eval arms (no-changelog) 2026-08-26 16:32:51 +02:00
agent-setup.mjs build: Add pnpm agent:setup for fresh-checkout install + build + test (#31756) 2026-06-04 16:44:24 +00:00
block-npm-install.js ci: Block execution of npm install (no-changelog) (#4662) 2022-11-21 12:53:11 +01:00
build-n8n.mjs fix: Keep Kafka patch in Docker image build (no-changelog) (#36569) 2026-08-19 07:41:55 +00:00
check-boundaries.mjs ci: Exempt node-test-harness imports from the boundaries ratchet (no-changelog) (#34294) 2026-07-16 08:13:06 +00:00
check-workspace-deps.mjs chore: Fix lefthook config for windows (#22676) 2025-12-08 07:53:13 +02:00
check-workspace-private-deps.mjs test(core): Guard against private packages in the published runtime graph (#34889) 2026-07-27 07:01:43 +00:00
cloud-session.mjs chore: Update skills marketplace name to n8n-agent-skills (#36535) 2026-08-19 06:01:13 +00:00
codespace-env.mjs fix: Resolve the codespace box name from disk and fix the dev-loop guidance (no-changelog) (#36254) 2026-08-14 08:49:50 +00:00
codespace-env.test.mjs fix: Resolve the codespace box name from disk and fix the dev-loop guidance (no-changelog) (#36254) 2026-08-14 08:49:50 +00:00
dev-command-removed-notice.mjs chore(core): Fix memory-intensive dev commands in root package.json (#35521) 2026-08-04 14:41:56 +00:00
dev-up.mjs fix: Resolve the codespace box name from disk and fix the dev-loop guidance (no-changelog) (#36254) 2026-08-14 08:49:50 +00:00
dockerize-n8n.mjs feat: Bump base images to Node 24.16.0 and slim n8n-base apk layer (no-changelog) (#32217) 2026-06-12 12:17:05 +00:00
ensure-zx.mjs build: Add reset script (#10627) 2024-09-03 15:35:13 +03:00
format.mjs test: Remove cypress infrastracture (#21173) 2025-10-28 11:00:04 +01:00
generate-emoji-data.mjs feat(editor): Rewrite icon picker with search, full Lucide set, emoji sections, and color/skin tone pickers (#25649) 2026-06-16 08:55:15 +00:00
generate-lucide-icon-data.mjs feat(editor): Rewrite icon picker with search, full Lucide set, emoji sections, and color/skin tone pickers (#25649) 2026-06-16 08:55:15 +00:00
grind.mjs chore: Remove remaining Jest references (no-changelog) (#33412) 2026-07-09 09:29:24 +03:00
inspect-activity-log.mjs feat(core): Add a one-page viewer for the activity log (no-changelog) 2026-08-26 15:32:36 +02:00
nathan.mjs docs: Warn when pnpm nathan combines enterprise and AI features (no-changelog) (#34716) 2026-07-22 13:58:23 +00:00
os-normalize.mjs test: Add Playwright smoke spec for Vite dev-server boot (#29539) 2026-05-06 08:49:25 +00:00
prepare.mjs chore: Add opt-in dev-tooling usage metrics (no-changelog) (#33620) 2026-07-15 10:54:41 +00:00
reset.mjs chore: Create a lightweight version of pnpm reset (#32125) 2026-06-11 12:24:46 +00:00
scan-n8n-image.mjs ci: Refine Trivy scans, centralizes security config (#26384) 2026-03-02 07:43:29 +00:00
smoke-n8n-image.mjs fix(core): Fix AI Agent not seeing tools connected through HITL tools (#34271) 2026-07-17 09:53:50 +00:00
sync-agent-skill-links.mjs chore: Add guardrails and table output to human-like-code-review (#32943) 2026-06-24 14:01:36 +00:00
turbo-critical-path.mjs ci: Report the turbo critical path in build job summaries (#35092) 2026-08-11 07:21:51 +00:00