You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* docs: add Phase 2.5 (Protocol Foundation) roadmap and strategic reframe
Igor is a protocol, not a platform. The competitive moat is agent
sovereignty (identity + lineage + portability), not durable execution.
Reprioritize roadmap: ship checkpoint format spec, standalone verifier,
and effects library before self-migration and compute provider integration.
Adoption comes bottom-up through verification, like JWT.
- Add Product Phase 2.5: Protocol Foundation (effects library, checkpoint
format spec, standalone verifier, browser WASM verifier)
- Document known tech debt (budget negativity, layering violation,
stringly-typed retry, unchecked type assertion, stale comments)
- Add "Igor as Protocol" section to vision doc
- Update competitive positioning, open questions, long-term vision
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: fix Phase 2 status and lab binary name in roadmap
Address PR review comments:
- Clarify Phase 2 is still in progress (self-migration deferred to
after Phase 2.5), not complete
- Fix lab binary name: igord-lab, not igor-lab (rename only applies
to the main binary)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
| CI: TinyGo before tests | Fixed |`.github/workflows/ci.yml` — WASM integration tests now run in CI |
222
222
| CI: test coverage reporting | Added |`.github/workflows/ci.yml` — `go test -coverprofile` + summary |
223
+
224
+
## Known Issues / Tech Debt
225
+
226
+
Discovered during project review (2026-03-27). None are blockers for current functionality; all should be addressed during Phase 2.5 or as standalone fixes.
227
+
228
+
| Issue | Severity | Location | Description |
229
+
|-------|----------|----------|-------------|
230
+
| Budget can go negative (RE-3 violation) | Medium |`internal/agent/instance.go``Tick()`| Tick cost deduction `i.Budget -= costMicrocents` does not clamp to zero. A long tick can create budget debt before the next pre-tick check catches it. Fix: clamp `costMicrocents` to remaining budget before deduction. |
231
+
|`ParseCheckpointHeader` layering violation | Low |`internal/agent/instance.go`| Checkpoint header parsing (~80 lines of `encoding/binary`) lives in the agent package alongside WASM compilation and tick execution. Should be extracted to `pkg/checkpoint` so standalone tools (`igor-verify`) can parse headers without importing the full runtime. Phase 2.5 prerequisite. |
232
+
| Stringly-typed retry classification | Low |`internal/migration/retry.go`| Fatal error detection uses `strings.Contains` on error messages. If anyone rewords an error message, retry/fatal/ambiguous classification silently changes. Should use sentinel errors or typed error values. |
233
+
| Unchecked lease type assertion | Low |`internal/runner/research/research.go`|`instance.Lease.(*authority.Lease)` uses blank identifier for ok value. Wrong interface type silently produces nil, triggering "lease disabled" behavior instead of surfacing the mismatch. |
234
+
| Stale timeout comments | Low | Multiple files | Comments reference old 100ms tick timeout. Actual timeout is 15s (`internal/config/config.go``TickTimeout`), changed to accommodate HTTP hostcalls. |
Copy file name to clipboardExpand all lines: docs/governance/ROADMAP.md
+57-13Lines changed: 57 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# Igor Roadmap
2
2
3
-
## Current Status: Product Phase 1 Complete
3
+
## Current Status: Product Phase 2.5 Next
4
4
5
-
Igor has completed its research foundation (**Phases 2–5**) and pivoted to product development. The runtime now supports **portable, infrastructure-independent agents** with DID identity, cryptographic lineage verification, and clean CLI workflows (`igord run`, `resume`, `verify`).
5
+
Igor has completed its research foundation (**Phases 2–5**) and Product Phase 1. The runtime supports **portable, infrastructure-independent agents** with DID identity, cryptographic lineage verification, effect-safe side effects, HTTP/payment hostcalls, and clean CLI workflows (`igord run`, `resume`, `verify`).
6
6
7
-
**Product Phase 1 (Portable Sovereign Agent)** is complete. **Product Phase 2 (Agent Self-Provisioning)** is next.
7
+
**Product Phase 1 (Portable Sovereign Agent)** is complete. **Phase 2 (Agent Self-Provisioning)** is in progress — HTTP, effects, payments, and deployer demos are delivered; self-migration is deferred to after Phase 2.5. **Product Phase 2.5 (Protocol Foundation)** is next — making the checkpoint format, verifier, and effect primitives independently adoptable.
8
8
9
9
---
10
10
@@ -231,6 +231,31 @@ Igor's research foundation (Phases 2–5) proved that agents can checkpoint, mig
231
231
232
232
---
233
233
234
+
## Product Phase 2.5: Protocol Foundation
235
+
236
+
**Goal:** Make Igor's checkpoint format, verification tools, and effect primitives independently adoptable — before building more runtime features.
237
+
238
+
**Status:** Not started.
239
+
240
+
**Strategic context:** Igor is a protocol, not a platform. The competitive moat is agent sovereignty (identity + lineage + portability), not durable execution. Durable execution platforms (Golem, Temporal, Restate) are potential deployment targets for Igor agents, not competitors. Adoption comes bottom-up through verification — publish the spec, ship the verifier, let verification pull developers toward the runtime. The analogy: the checkpoint format spec is JWT (RFC 7519), the standalone verifier is jwt.io, the Igor runtime is Auth0.
241
+
242
+
**Scope:**
243
+
-**Effects library extraction** (`igor.dev/effects`) — extract `sdk/igor/effects.go` + `encoding.go` as standalone Go module with zero Igor-specific dependencies. Blog post: "Crash-safe side effects in 200 lines." Tests bottom-up adoption thesis with minimal risk. (~1 day)
244
+
-**Checkpoint format spec** — formal one-page spec in `docs/runtime/CHECKPOINT_FORMAT.md`: byte-level offset table, signing domain construction, chain rule, DID encoding, version dispatch, reserved epoch fields, CID compatibility note. Language-agnostic — enables third-party implementations without reading Go code. (~1-2 days)
245
+
-**Standalone verifier** (`igor-verify`) — extract `ParseCheckpointHeader` from `internal/agent/instance.go` into `pkg/checkpoint` (fixes existing layering violation). Build zero-dependency binary: no wazero, no libp2p, no hostcalls (~5MB vs ~30MB). Bundle sample liquidation watcher history for zero-to-verification in 30 seconds. (~1-2 days)
246
+
-**Browser WASM verifier** — compile the verify path (`pkg/lineage/`, `pkg/identity/`, `pkg/checkpoint/`) to WASM via `GOOS=js GOARCH=wasm` (pure stdlib, no TinyGo needed). Embeddable in protocol dashboards: "agent lineage: verified, 847 checkpoints, no gaps." (~2-3 days)
**Design principle:** No configurability, no extension points, no generalization. Five operations and one rule. A fixed offset table. Green or red. "I understand this completely in 5 minutes."
254
+
255
+
**Outcome:** The checkpoint spec is an adoptable protocol artifact. The standalone verifier is the on-ramp. The effects library generates Go ecosystem mindshare. All three are independently valuable and create the conditions for runtime adoption — without requiring anyone to run a WASM agent first.
256
+
257
+
---
258
+
234
259
## Product Phase 3: Permanent Memory
235
260
236
261
**Goal:** Agents have tamper-evident, publicly verifiable life histories.
@@ -343,6 +368,14 @@ None. v0 is experimental. Things may be:
343
368
- ✅ Agent deploys itself to compute provider (mock)
344
369
- Agent decides when to migrate
345
370
371
+
### Product Phase 2.5 Goals
372
+
373
+
- Checkpoint format has a formal one-page spec (`docs/runtime/CHECKPOINT_FORMAT.md`)
374
+
- Effects library published as standalone Go module (`igor.dev/effects`)
375
+
-`igor-verify` binary verifies lineage chains with zero runtime dependencies
376
+
- Browser WASM verifier can parse and verify checkpoints
377
+
- Binary rename: `igord` → `igor`
378
+
346
379
---
347
380
348
381
## Timeline
@@ -354,7 +387,7 @@ Igor development follows "done when it's done" philosophy:
354
387
- Correctness over features
355
388
- Learning over shipping
356
389
357
-
Research phases (2–5) complete. Product Phase 2 in progress.
390
+
Research phases (2–5) complete. Product Phase 2 feature work complete. Phase 2.5 (Protocol Foundation) is next.
358
391
359
392
---
360
393
@@ -373,7 +406,7 @@ Igor v0 is experimental research software.
373
406
- Performance optimizations (premature)
374
407
- Production deployments (not ready)
375
408
376
-
Focus: Complete Product Phase 2 before expanding scope.
409
+
Focus: Complete Product Phase 2.5 (Protocol Foundation) before expanding scope.
Agents will pick their own infrastructure. Igor makes them portable enough to do so.
383
416
384
417
-**Now:** Agents are portable digital objects with identity and verifiable history
385
-
-**Next:** Agents pay for their own compute and self-provision infrastructure
418
+
-**Next:** Checkpoint format spec, standalone verifier, and effects library enable verification-first adoption
419
+
-**Then:** Agents pay for their own compute; Golem/Temporal/Restate become deployment targets, not competitors
386
420
-**Later:** Agents have permanent, publicly verifiable memory on Arweave
387
-
-**Eventually:** A multi-language ecosystem of sovereign, immortal agents
421
+
-**Eventually:** A multi-language ecosystem of sovereignagents built on the Igor protocol
388
422
389
423
---
390
424
@@ -414,22 +448,32 @@ Igor builds on ideas from:
414
448
415
449
Igor is **not novel**. It combines existing ideas in a specific way to explore autonomous agent survival.
416
450
451
+
**Competitive positioning:** Golem Cloud, Temporal, and Restate provide durable execution platforms. Igor's differentiator is agent-owned identity, cryptographic lineage, and true portability — the agent is a protocol-level entity, not a platform deployment. These platforms are potential deployment targets for Igor agents, not competitors. Igor answers "who IS the agent?" while they answer "where does the agent run?"
2.**Is the checkpoint format efficient enough for large agent state?** (MB+ state sizes)
423
-
3.**Will developers adopt the Igor SDK over simpler alternatives?** (DX matters)
457
+
1.**Can the checkpoint format spec gain adoption independently of the runtime?** (The JWT analogy test — does verification pull people toward the protocol?)
458
+
2.**Is the checkpoint format efficient enough for large agent state?** (MB+ state sizes; content-addressed external storage pointers as escape hatch)
459
+
3.**Will DeFi teams adopt igor-verify for agent lineage proofs before the full runtime?** (Bottom-up adoption test)
424
460
4.**Is WASM overhead acceptable for latency-sensitive agents?** (not for HFT, but for long-running?)
425
461
5.**Can two-tier storage (local + Arweave) work without slowing the critical path?**
426
462
6.**What hostcalls do agents actually need?** (HTTP, storage, payments — what else?)
463
+
7.**Should Golem/Temporal/Restate be treated as deployment targets rather than competitors?** (Protocol-not-platform thesis)
427
464
428
465
---
429
466
430
467
## Next Immediate Steps
431
468
432
-
Product Phase 2 in progress. HTTP hostcall, effect model, wallet_pay, x402buyer, and deployer demos delivered. Next:
469
+
Product Phase 2 feature work complete. Protocol foundation is next — verification-first adoption.
470
+
471
+
1.**Effects library extraction** — standalone Go module at `igor.dev/effects` (~1 day)
472
+
2.**Checkpoint format spec** — formal spec in `docs/runtime/CHECKPOINT_FORMAT.md` (~1-2 days)
Copy file name to clipboardExpand all lines: docs/philosophy/VISION.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,6 +90,16 @@ Igor is an experiment in providing capabilities that autonomous software increas
90
90
91
91
The development philosophy is minimal and iterative. Igor v0 implements only what is necessary to demonstrate survival and migration. It fails loudly when invariants are violated rather than attempting graceful degradation. It prioritizes correctness over performance, clarity over optimization.
92
92
93
+
## Igor as Protocol
94
+
95
+
Igor is a protocol, not a platform. Durable execution platforms — Golem Cloud, Temporal, Restate — answer "where does the agent run?" Igor answers a different question: "who IS the agent?" The competitive moat is agent sovereignty: agent-owned identity (DID), cryptographic lineage (signed checkpoint chain), and true portability (the checkpoint file IS the agent). These platforms are potential deployment targets for Igor agents, not competitors. An Igor agent could run on Golem today, Akash tomorrow, and bare metal next week, with the same DID and unbroken lineage across all three.
96
+
97
+
The adoption model follows verification, not runtime adoption. Trust primitives spread bottom-up — people verify before they run. The checkpoint format spec is the adoptable artifact (like JWT's RFC 7519). The standalone verifier is the on-ramp (like jwt.io — paste a token, see it decoded). The Igor runtime is one implementation of the protocol (like Auth0 is one implementation of JWT-based auth). Publish the spec, ship the verifier, let verification pull developers toward the runtime.
98
+
99
+
The initial audience is DeFi. This community already thinks in DIDs, signed proofs, and "don't trust the platform." Provable agent uptime and integrity — "agent lineage: verified, 847 checkpoints, no gaps" — solves a problem DeFi has today and currently addresses with trust-me-bro operator reputation. Agent-owned identity and cryptographic lineage are table stakes in this context, not novel features.
100
+
101
+
---
102
+
93
103
Igor exists because the gap between what software can do (execute autonomously) and what software can survive (infrastructure failure) has become untenable for emerging autonomous systems. The technologies needed to solve this have matured to the point where exploration becomes feasible.
94
104
95
105
Whether autonomous software survival matters in practice can only be answered through building systems that embody these capabilities and observing what emerges.
0 commit comments