Skip to content

Commit 083894b

Browse files
alban bertoliniclaude
andcommitted
feat(workflow-executor): finalize scaffold — clean CLAUDE.md, remove premature deps, add smoke test
- Rewrite CLAUDE.md with project overview and architecture principles, remove changelog - Remove unused dependencies (ai-proxy, sequelize, zod) per YAGNI - Add smoke test so CI passes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2b91757 commit 083894b

3 files changed

Lines changed: 18 additions & 22 deletions

File tree

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
11
# @forestadmin/workflow-executor
22

3-
Bibliothèque TypeScript framework-agnostic qui exécute des steps de workflow côté client (infra du client, à côté de l'agent Forest Admin).
3+
> **Note to Claude**: Keep this file up to date. When adding a new feature, module, architectural pattern, or dependency, update the relevant section below.
44
5-
## Architecture
5+
## Overview
66

7-
- **Pull-based** — L'executor poll `WorkflowPort`. `triggerPoll(runId)` pour accélérer un run spécifique
8-
- **Atomic** — Chaque step exécutée en isolation. `RunStore` assure la continuité entre steps
9-
- **Privacy** — Zéro donnée client dans l'orchestrateur. Données dans `RunStore`
10-
- **Ports** — Toute IO passe par une interface injectée
11-
- **AI intégré** — Utilise `@forestadmin/ai-proxy` (Router) pour créer les modèles et charger les remote tools
7+
TypeScript library (framework-agnostic) that executes workflow steps on the client's infrastructure, alongside the Forest Admin agent. The orchestrator never sees client data — it only sends step definitions; this package fetches them and runs them locally.
8+
9+
## Architecture Principles
10+
11+
- **Pull-based** — The executor polls for pending steps via `WorkflowPort`. `triggerPoll(runId)` fast-tracks a specific run.
12+
- **Atomic** — Each step is executed in isolation. `RunStore` maintains continuity between steps.
13+
- **Privacy** — Zero client data leaves the client's infrastructure. All data lives in `RunStore`.
14+
- **Ports (IO injection)** — Every external IO goes through an injected port interface, making the core pure and testable.
15+
- **AI integration** — Uses `@forestadmin/ai-proxy` (Router) to create models and load remote tools.
1216

1317
## Commands
1418

1519
```bash
1620
yarn workspace @forestadmin/workflow-executor build # Build
17-
yarn workspace @forestadmin/workflow-executor test # Run tests
18-
yarn workspace @forestadmin/workflow-executor lint # Lint
21+
yarn workspace @forestadmin/workflow-executor test # Run tests
22+
yarn workspace @forestadmin/workflow-executor lint # Lint
1923
```
2024

2125
## Testing
@@ -24,11 +28,3 @@ yarn workspace @forestadmin/workflow-executor lint # Lint
2428
- Use AAA pattern (Arrange, Act, Assert)
2529
- Test behavior, not implementation
2630
- Strong assertions: verify exact arguments, not just that a function was called
27-
28-
## Changelog
29-
30-
> **IMPORTANT**: When a new feature, fix, or change is implemented, add an entry below summarizing what was done.
31-
32-
| Date | Type | Summary |
33-
|------------|---------|---------|
34-
| 2026-03-16 | setup | Initial package scaffolding (package.json, tsconfig, jest, CI integration) |

packages/workflow-executor/package.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,6 @@
1111
"url": "git+https://github.com/ForestAdmin/agent-nodejs.git",
1212
"directory": "packages/workflow-executor"
1313
},
14-
"dependencies": {
15-
"@forestadmin/ai-proxy": "1.5.0",
16-
"sequelize": "^6.37.5",
17-
"zod": "^4.3.5"
18-
},
1914
"files": [
2015
"dist/**/*.js",
2116
"dist/**/*.d.ts"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
describe('workflow-executor', () => {
2+
it('should be importable', () => {
3+
expect(require('../src/index')).toBeDefined();
4+
});
5+
});

0 commit comments

Comments
 (0)