19 Commits
Author SHA1 Message Date
glm-5.3-flash 6fc924be29 chore(publish): close the plan at the release of alkgen 0.1.0
Manifest sanity verified, the full verification set green (including
the wasm release build), the dry-run clean at the publish commit, the
freeze inventory one-way from here. Tagged alkgen-v0.1.0.
2026-11-07 06:08:08 +00:00
glm-5.3-flash 93ffcb96e8 chore(tasks): decompose wave 3 into implementation tasks 2026-11-07 06:06:10 +00:00
glm-5.3-flash a4ec8be3e8 chore(tasks): decompose wave 2 into implementation tasks
- w2-ssr-proof and w2-code-proof: the two consumer-shaped proofs,
  parallel by construction (own test binaries, own fixture modules
  per the wave-1 convention)
- w2-conformance-battery: the standing verification set, ordered
  after the proofs so it consolidates over the final wave-2 tree and
  absorbs any stop-and-book findings; folds the wave-1 gate's
  reminder (b) (wasm build standing, not ad-hoc)
- review-wave-2: the wave gate, depends on all three
- decomposition record added to docs/plans/implementation.md with
  the logistic-ordering rationale; wave-2 status flipped to
  decomposed

Verification: taskgraph validate (18 tasks valid); em-dash grep
clean on all changed files
2026-11-06 20:16:11 +00:00
glm-5.3-flash 04e961d689 docs(plans): add wave-based implementation plan
Adopts the sibling wave pattern (alkssh/alkgit) over
decompose-everything-upfront: decompose a wave, implement it, review
gate, decompose the next wave.

Scope authority: v0.1.0 publishes the shared text-generation core
(ADR-001) proven fit for ssr-html via consumer-shaped fixtures through
the public API (ADR-008 machinery equality). Engine-owned template
sets stay out (all three queued targets are OQ-gated); alktype leaves
the dep tree until the bast-codegen set activates.

Waves: 1 core foundations, 2 consumer-shaped proofs + conformance
battery, 3 validation & release (pure-review gate then publish).

Verification: taskgraph validate (14 tasks), em-dash grep clean
2026-11-06 18:27:26 +00:00
glm-5.3-flash 9d57d1612e docs(architecture): review pass: flip specs to reviewed; fix review findings
- Define the fragment-rendering convention: render targets are
  registered templates composing partials; partials are composition
  units (core.md, emit.md posture B)
- Define template kind; trim/restage inline rationale with ADR
  citations (core.md)
- Amend ADR-008: wgsl set ownership resolved engine-owned via OQ-05's
  2026-11-06 resolution
- Add OQ-09: consolidate the untracked bast-rust-codecs detailed-spec
  residue (projection, error shape, writer survey) with paired tracker
  task
- Fix oq-05 tracker name to match the corrected unblocking condition
- Add reviewed-transition rule: deferred OQs with tracker tasks do not
  block reviewed; flip six spec docs draft -> reviewed

Verification: taskgraph validate (8 tasks valid), em-dash grep zero
hits, cargo doc --no-deps clean
2026-11-06 10:33:43 +00:00
glm-5.3-flash 077e52c003 docs(architecture): re-triage OQs to per-target emit policy; fix OQ-05 circular framing
- OQ-01/02/03 re-triaged from open to deferred(scope): partitioning,
  regeneration, and validation strategies are per-target decisions
  owned by each target's emit layer and consumer, not core or
  posture-A-wide policy; session analysis preserved in OQ texts
- OQ-05 ownership decided by applying ADR-008 (engine-owned, ships in
  alkgen, feature-gated, posture C); blocked-on reframed to alkjs
  GPU-layer work so the sequencing is non-circular (alkjs builds on
  the core, never the reverse)
- OQ-06 sequencing clarified; stale far-timeline language dropped
- activation queue recorded (ssr-html, wgsl-jit, then codec sets) in
  targets.md and overview.md, with downstream dev-utility composition
  noted at the overview level
- Preact vs handlebars SSR research outcome recorded in README
- tracker tasks added for oq-01, oq-02, oq-03; oq-05 task updated

Verification: taskgraph validate (7 tasks pass); em-dash grep clean on
touched files; docs-only change, no code touched
2026-11-06 10:06:54 +00:00
glm-5.3-flash a91ea2ec89 docs(architecture): phase 1 base: text-generation core specs, ADRs 001-010, OQ tracker
- overview.md, core.md, emit.md, targets.md: modular spec set for the
  generalized engine (contexts + templates + partials -> text), with
  the three targets (ssr-html, bast-rust-codecs, call-handlers,
  wgsl-jit) as template sets plus emit postures
- ADRs 001-010: one core/template-set split, handlebars 6.4 strict
  substrate, sync/wasm/deterministic posture, typed contexts with
  builders, per-registry escaper, SSR library posture, typed direct
  codecs output contract, template-set ownership, feature gating,
  library-only v1
- open-questions.md: OQ-01..OQ-08 centralized tracker carrying phase-0
  residue (GN-01/02/07/09) with three deferred(scope) entries plus a
  resolved disposition for phase-0 OQ-GN-04
- tasks/architecture/: external-trigger tracker tasks paired with the
  deferred OQs (taskgraph validate passes)
- phase-0.md checklist dispositioned for OQ-GN-04; AGENTS.md lifecycle
  updated to phase 1

Verification: taskgraph validate (4 tasks OK), cargo fmt --check,
cargo test, em-dash grep clean; architecture-reviewer pass returned
zero critical issues
2026-11-06 08:18:43 +00:00
glm-5.3-flash 93d70253d7 docs(phase0): correct the core framing: text generation, not two target classes
Second steer from the 2026-11-06 discussion: the document-vs-code
split carries a false distinction. The core is contexts + templates +
partials to text; HTML, Rust, and WGSL are three data points of the
same shape (handlebars native case, reader POC, alkminer kernel
builder). Per-target residue is only the template set, context shape,
emit posture, and validity pinning. WGSL recorded as confirmed coming
(JS runtime needs codegen generating WGSL); AGENTS.md lifecycle
phrasing aligned.
2026-11-06 07:55:34 +00:00
glm-5.3-flash bbd7d8164b docs(phase0): core generalization steer: one core, three targets
Principal steer: generalize the shared core across HTML generation
(branch 0), Rust codecs (branch 1), and WGSL/wasm-JIT (branch 3
territory); dev-tool emit demoted from the crate's definition to one
projection. Records the core/per-target split and the render-purity
requirement the wasm JIT fixes for Phase 1; refines OQ-GN-09.
2026-11-06 07:51:12 +00:00
glm-5.3-flash 5e5c54a869 docs(phase0): record 2026-11-06 unpause for alkforge SSR; adopt no-em-dash convention
- AGENTS.md: adopt alkssh conventions (conventional commits, small
  focused commits, taskgraph section, lifecycle status, verification
  grep gate); add convention 12 (no em dashes in prose, U+2014)
- README.md: note the unpaused status and the alkforge SSR consumer
- phase-0.md: alkforge SSR enters as branch 0 (in-library HTML
  rendering, two target classes bound the core generality), new
  OQ-GN-09 for the SSR library posture, unpause context section,
  alktype 0.4.0 revalidation notes
- reader-poc-summary.md: re-validation note for alktype 0.4.0
  (parity + bench unchanged); em dashes restructured repo-wide
2026-11-06 06:05:15 +00:00
glm-5.3-flash 4a5aee2d0a docs(agents): adopt alkssh-evolved SDD process and agent specs
Adopt the evolved process docs from alkssh (their Phase 0 is the family
reference for SDD practice; adapted here for alkgen):

- sdd_process.md: POC placement two modes (branch mode vs standalone
  scratch project), closed frontmatter enum variants (taskgraph 0.1.3)
  with the three gotchas, impact table, POC specialist finding-first
  deliverables
- agent specs: architect/taskgraph rules for OQ blocker trackers,
  implementation-specialist conventions remapped to alkgen (no async,
  wasm-clean, preserve_order, strict mode), coordinator spawn constraints
  remapped, code-reviewer checks swapped for template/determinism rules,
  poc-specialist two-mode workflow
- all adopted/edited files are em-dash-free (AGENTS.md convention 12)
2026-11-06 06:05:15 +00:00
glm-5.3-flash 5dee37260c docs: typed output validated — 291-322ns, zero deps, parity clean
- (b) direct codecs resolved AND validated: generated types+codecs,
  ReadResult<Packet>, no serde/serde_json/alktype in output
- benchmark: ~10x faster than Value-shaped generated, ~15-20x faster
  than interpreter, ~4x off raw no-alloc baseline (String/Vec allocs)
- F-6: names come from the BAST doc (plan erases $defs names);
  OQ-GN-02 refined: plan for semantics, BAST for names
- V{key} variant naming for numeric discriminator keys
2026-09-09 07:40:56 +00:00
glm-5.3-flash a52c8a6b37 docs: typed-output direction set — russh-sftp shape, (a) vs (b) fork
- branch 1 output contract targets typed Rust structs (no Value
  materialization): the kernel-fusion move, alkminer precedent
- russh-sftp protocol-type shape as target (plain structs, field
  order = decode order, shared cursor codec core)
- fork: (a) serde-derive + generic Deserializer (interop) vs
  (b) generated direct codecs (zero overhead, the 72ns shape)
- follow-up #1 sharpened: typed-output POC renders Packet both ways,
  benchmarks against the raw-decode baseline
2026-09-09 07:23:56 +00:00
glm-5.3-flash b86dadcf77 docs: reader POC complete — OQ-GN-05/06/08 resolved with evidence
- reader-poc-summary.md: plan-driven handlebars codegen validated
  end-to-end (parity-exact vs interpreter, ~1.9x faster, 7 tests)
- OQ-GN-05 resolved: self-contained generated code (a), uniform
  cursor addressing (F-1); OQ-GN-06: serde_json-only dependency
- decomposition finding: 20x-vs-hand-rolled gap is Value allocation,
  not dispatch; output-contract ADR is the big Phase 1 decision
- F-1..F-5 findings; Phase 1 follow-up list
2026-09-09 07:12:01 +00:00
glm-5.3-flash 79c2794a99 docs: phase-0 — OQ-GN-01 resolved: dev tool, static files, module output
- clarification: alkcall is a library others build on; alkgen branches
  1+2 are a dev tool generating static files into downstream projects
  (protocol crates alktty/alktunnels/sftp, cloud integrations vast.ai/
  runpod) from provided schemas (BAST or jsonschema/openapi)
- OQ-GN-01 resolved: module-level output for v1; fragments out
  (defeats dev-tool purpose), crate generation out for v1 (composed
  from modules later if asked). Residue: file partitioning policy
- OQ-GN-06 reframed: generated files land in projects that don't
  depend on alktype today, so dependency footprint is consumer's
  choice, not wire-shaped; leaning self-contained, POC decides
- branch 2 reframed: static counterpart of alkhttp from_* adapters
2026-09-08 08:58:50 +00:00
glm-5.3-flash 0e9bdf65ab docs: phase-0 — OQ-GN-02 direction set: plan-driven contexts
- plans for offsets/sizes (already computed+validated by the engine,
  free at generation time since alktype is already a dep), BAST for
  descriptive metadata; drift risk inverts into ordinary
  dependency-upgrade tracking of alktype's plan API
- residue: exact plan->context projection is the Phase 1 context-
  builder spec task
2026-09-08 08:46:57 +00:00
glm-5.3-flash ea1ef10bc3 docs: phase-0 — resolve OQ-GN-03 posture, calibrate OQ-GN-08 POC
- OQ-GN-03 resolved as posture: interpreter/compiler duplication is
  the point (dynamic vs static deployment profiles); alktype near
  schema-method floor, ~20x off hand-rolled; alkgen's value prop is
  recovering most of that gap. Drift stays the standing risk.
- OQ-GN-08 POC 1 calibration: three-way benchmark (plan-walk vs
  generated vs hand-rolled) doubles as drift check + perf validation;
  OQ-GN-05 boundary reframed as performance trade
2026-09-08 08:44:52 +00:00
glm-5.3-flash 105d553353 docs: phase-0 findings — prior art survey + OQ-GN-01..08
- settled: stack shape, wasm-clean validated, handlebars 6.4 pin,
  strict-mode posture, template-is-code, determinism
- prior art: typebox-rs codegen, alkminer-v1 ShaderBuilder, alktype
  plans as implied spec, alkhttp adapters
- OQs: output unit, context source (BAST vs plans), interpreter/
  compiler duplication cut, delegation boundary, validation strategy,
  POC scope
2026-09-08 08:27:48 +00:00
glm-5.3-flash a73f197786 init 2026-09-08 07:55:53 +00:00