Skip to content

docs(ogar): askama IS the output — drop TS codegen path from the kit (+anti-pattern #8)#81

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/ogar-northstar-plan-no-ts
Jun 19, 2026
Merged

docs(ogar): askama IS the output — drop TS codegen path from the kit (+anti-pattern #8)#81
AdaWorldAPI merged 1 commit into
mainfrom
claude/ogar-northstar-plan-no-ts

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

Calcifies the architectural correction from this thread: askama is the rendering layer, not a codegen-to-TypeScript path.

"I don't want typescript at all I want askama."

PR #80 (TsInterface emitter) was closed for misreading the architecture. The Northstar plan + crate docs now reflect the WoA-rs pattern correctly: askama renders HTML the human reads directly (via askama_axum), no TS frontend transcompilation step.

Two flavours in the kit (no TS)

Flavour What T-series
Codegen Emit .rs / .surql source for downstream compilers / DB engines T1 RustStruct ✅, T5 SurrealqlTable
Render Emit HTML the user reads directly via askama_axum T2 HtmlListView, T3 HtmlDetailView, T4 HtmlForm

NodeGuidRoutingArm moves from the bootstrap kit to the roadmap.

Anti-pattern #8 added

"Generate TypeScript source from askama" — wrong layer; askama is the output, not a producer of other languages. PR #80 is the case study. Annotated with rationale + reference to closed PR.

Code changes (doc-only on the production path)

  • spec.rs::ArtifactKind — variant docs annotated:
    • RustStruct / SurrealqlTable: codegen flavour, downstream compiler/DB consumes.
    • TsInterface / OpenapiSchema: Deprecated, to be removed when T2 lands. Dispatcher still stubs them so call sites compile through one merge cycle.
    • NodeGuidRoutingArm: roadmap-only note.
  • lib.rs crate doc — rewritten to describe two flavours + anti-pattern Sprint 7 muscle-memory: three-way alignment (Kanban/ractor/SurrealQL) + std::sync correction round-trip #8 reference.
  • Plan §0, §3, §4, §7 — all updated. §3 table replaces the TS-side targets with HTML render targets.

Tests

cargo test -p ogar-render-askama 7/7 (no production-code changes, doc-only). Workspace check green.

Follow-up sequence

  1. T2 — HtmlListView (the right T2): askama HTML template, mass-mail in the WoA list_view.html shape, consumes &Class + rows. Replaces the deprecated TsInterface variant; dispatcher's stub fallback removed for TsInterface/OpenapiSchema simultaneously.
  2. T3 — HtmlDetailView / T4 — HtmlForm: same shape, different artifact.
  3. T5 — SurrealqlTable: codegen flavour, mirrors T1.

…en path

User steer: "I don't want typescript at all I want askama." Closing #80
(TsInterface emitter) and revising the Northstar plan + crate docs to
reflect the correct architecture.

Askama is the **rendering layer** in the WoA-rs pattern, not a
codegen-to-other-language pipeline. The consumer reads askama-rendered
HTML directly via askama_axum or equivalent; there is no separate TS
frontend in the canonical pattern.

The +5 kit is now split into two flavours:

CODEGEN — emit source files for downstream compilers/engines:
  T1 RustStruct      ✅ (PR #78 ships proof-of-shape)
  T5 SurrealqlTable     DB DDL

RENDER — emit HTML the human reads, via askama_axum:
  T2 HtmlListView       tabular HTML (WoA list_view shape)
  T3 HtmlDetailView     definition-list HTML for one instance
  T4 HtmlForm           create/edit form with typed inputs

NO TypeScript codegen. TsInterface + OpenapiSchema variants marked
`Deprecated` in spec.rs; they'll be removed when T2 lands. The dispatcher
still stubs them so existing call sites compile through one merge cycle.

Plan changes:
- §0 picture: redrawn as one crate, two flavours; no .ts in the layering.
- §3 +5 table: replaces TsInterface/OpenapiSchema/NodeGuidRoutingArm with
  HtmlListView/HtmlDetailView/HtmlForm/SurrealqlTable. NodeGuid moves to
  roadmap.
- §4 anti-pattern #8 ADDED: "Generate TypeScript source from askama" —
  with the why-wrong + reference to closed PR #80.
- §7 roadmap T6 tightened: A2UI is *demand-driven*, only if a non-WoA
  consumer asks. Default canonical UI is server-rendered HTML via T2–T4.

ogar-render-askama:
- lib.rs doc rewritten to describe two flavours, anti-pattern #8 mention.
- spec.rs ArtifactKind variant docs: RustStruct/SurrealqlTable annotated
  as codegen flavour; TsInterface/OpenapiSchema annotated **Deprecated**
  with rationale; NodeGuidRoutingArm noted as roadmap-only.

cargo test 7/7 (no code changes, doc-only); workspace check green.
@AdaWorldAPI AdaWorldAPI merged commit 9fa77b0 into main Jun 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants