Skip to content

Documentation IOP Compliance — Show Framework Syntax #13

Description

@Pakrohk

Problem

Many documentation pages bypass EVOID's framework syntax. They show plain Python patterns (module imports, class-based services, type hint extraction) instead of how the IOP pipeline actually works.

The core issue: docs teach "how to do X in Python" instead of "how to do X with EVOID's IOP runtime."

What "Bypassing Syntax" Means

  1. DI doc (fixed): Showed "Python's module system" as DI solution instead of pipeline injection
  2. Handler signatures: @route handlers show async def get_user(user_id: int) — params extracted automatically, but doesn't show the IOP mechanism (Intent → metadata → handler)
  3. Missing pipeline context: Handlers don't show ctx parameter, so users don't know about ctx.deps and ctx.state

What IOP Compliance Means in Docs

IOP is NOT anti-OOP. IOP = data carries intent. The docs should show:

  1. How data declares intent — Intent with metadata, levels, pipeline
  2. How the pipeline routes — processors run in order, each reads/writes context
  3. How handlers consume — handler receives Intent + Context, reads from both

@route and @controller are convenience syntax that AUTO-CREATE Intents underneath. The docs should explain this, not hide it.

Fix Strategy

  1. Every tutorial page: Show what the framework does under the hood (Intent creation, pipeline composition)
  2. Handler signatures: Always show ctx parameter in examples
  3. DI patterns: Lead with pipeline injection, show Python patterns as simple alternatives
  4. No hiding the mechanism: "EVOID automatically parses path params" → "EVOID creates Intent with metadata, handler reads from intent.metadata"

Priority

  • tutorial/dependency-injection.md — DONE (fixed)
  • learn/intent.md — Shows @controller as equal to native (fine, but explain what happens underneath)
  • learn/processors.md — Mentions @controller alongside on() (fine)
  • Tutorial pages with @controller sections — Keep them, they're valid IOP patterns

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions