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
- DI doc (fixed): Showed "Python's module system" as DI solution instead of pipeline injection
- 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)
- 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:
- How data declares intent — Intent with metadata, levels, pipeline
- How the pipeline routes — processors run in order, each reads/writes context
- 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
- Every tutorial page: Show what the framework does under the hood (Intent creation, pipeline composition)
- Handler signatures: Always show
ctx parameter in examples
- DI patterns: Lead with pipeline injection, show Python patterns as simple alternatives
- 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
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
@routehandlers showasync def get_user(user_id: int)— params extracted automatically, but doesn't show the IOP mechanism (Intent → metadata → handler)ctxparameter, so users don't know aboutctx.depsandctx.stateWhat IOP Compliance Means in Docs
IOP is NOT anti-OOP. IOP = data carries intent. The docs should show:
@route and @controller are convenience syntax that AUTO-CREATE Intents underneath. The docs should explain this, not hide it.
Fix Strategy
ctxparameter in examplesPriority
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)