Darkwood · PHP · agents · workflows

The Laptop Is
the Last Bottleneck

From coding agents to
shared, observable workflows

Agent
→
Workflow
→
Shared runtime
@matyo91

The original pain

One coding agent was manageable.

Ask
→
Diff
→
Tests you remember
→
Ship

The invisible checklist still fits in one head.

01 | one agent @matyo91

The breaking point

Several agents. One human checklist.

API agent
Docs agent
Security agent
You = scheduler

Did this run include static analysis?
What did yesterday’s failure teach?

Agents need not be incapable — the process is still personal.

02 | human orchestrator @matyo91

Not a hardware complaint

The laptop is a silo.

Identity

Credentials · access

Memory

Prompts · history · lessons

Conventions

Scripts · skills · habits

Runtime
+
Knowledge silo

When the laptop leaves, the process leaves.

03 | laptop @matyo91

The missing layer

Not a smarter agent — an explicit workflow.

Implicit

habit in one head
“I always run tests…”

Explicit

validate
↓
tests
↓
security
↓
review

Named steps · inputs/outputs · failure modes · trace

04 | explicit workflow @matyo91

Runtime layer

Framework X: async HTTP

HttpServerRunner

Long-lived ReactPHP CLI

SapiRunner

Same app behind FPM

Handlers

Response · Promise · Generator · Fiber

Exposes

Workflows over HTTP

Not a scheduler · queue · sandbox · agent platform

05 | framework-x @matyo91

Orchestration layer

Darkwood Flow: jobs over Ips

Job
→
Ip
→
Driver
→
await()

FlowFactory

Define the chain

MaxIpStrategy

Ip-level concurrency

errorJob

Failure hooks

Framework X receives the request. Darkwood Flow coordinates the work.

06 | flow @matyo91

framework-x-flow prototype

Request → workflow → trace

flowchart TD
  A[HTTP request] --> B[Framework X route]
  B --> C[Flow workflow]
  C --> D[Steps]
  D --> E[Trace + retrospective]
  E --> F[JSON + var/runs]

validate → analyse → quality → docs → review → retrospective

07 | prototype @matyo91

Async experiment

Sequential vs concurrent Ips

MaxIpStrategy(1)

One in flight → serial delays

~3× delay budget

MaxIpStrategy(N)

N in flight → overlapping delays

~1× delay budget

Local timings only — illustrative, not a benchmark.
Blocking PHP still stalls the loop.

08 | concurrency @matyo91

Learning without mutation

Propose ≠ rewrite

Retrospective outputs

slow steps · failures · lessons · suggestions

Does not

silently edit workflow code

{
  "proposal": "Add a dependency audit step before final review."
}

Reviewable self-improvement beats uncontrolled self-modification.

09 | retrospective @matyo91

Honesty slide

What this prototype does not prove

No secure cloud sandbox
No distributed scheduler
No credential broker
No multi-tenant isolation
No autonomous self-rewrite
Local ≠ team workflow

Cloud agent execution is a separate infrastructure problem.

10 | limits @matyo91

Durable layer

The workflow remains.

Model
changes
Agent
changes
Workflow

The useful artifact is no longer the private prompt.
It is the process you can run, inspect, and improve.

@matyo91