Commit Graph

150 Commits

Author SHA1 Message Date
Brummel 41c834008f roadmap: drop per-task progress count from Sweep 1 entry
The "tasks 1-3 of 6 landed" snapshot ages out with every
sub-commit; the plan's own checkboxes are the live source.
Roadmap entry now just carries `[~]` + a pointer to the plan.
2026-05-10 11:51:48 +02:00
Brummel ecc00fed8a roadmap: introduce docs/roadmap.md as forward queue
Adds a priority-ordered, checkbox-format roadmap that the
orchestrator maintains. Three states (`[ ]` open / `[~]` in
progress / `[x]` done), four kinds (milestone / feature / todo /
idea), four priorities (P0..P3). Initial population lifts the
queued items from the JOURNAL tail.

JOURNAL's role narrows: chronological decisions log only, no
forward queue. CLAUDE.md "Roles of ..." section updated to
reflect the split.
2026-05-10 11:49:44 +02:00
Brummel 18fc014377 design-md-consolidation 1.3 fixup: repair two date-strip quality issues 2026-05-10 11:48:39 +02:00
Brummel 4b10ee4a5f design-md-consolidation 1.3: drop date anchors from DESIGN.md 2026-05-10 11:46:14 +02:00
Brummel ef8c983720 design-md-consolidation 1.2 fixup: trim trailing whitespace on DESIGN.md:33 2026-05-10 11:43:41 +02:00
Brummel e6821d873d design-md-consolidation 1.2: drop Family-N tags from DESIGN.md 2026-05-10 11:42:07 +02:00
Brummel f2c4b400a8 design-md-consolidation 1.1: drop **Status:** markers from DESIGN.md 2026-05-10 11:40:03 +02:00
Brummel b2a0b05215 plan: design-md-consolidation 1 (history anchors) 2026-05-10 11:38:12 +02:00
Brummel aa02ea1d2b spec: design-md-consolidation — state-only DESIGN.md, four sweeps 2026-05-10 11:33:19 +02:00
Brummel 5676a99bfa iter 22-tidy.7: journal entry 2026-05-10 05:18:46 +02:00
Brummel bf8ac31d63 plan: 22-tidy.7 strict-clause helper consolidation 2026-05-10 05:11:24 +02:00
Brummel 14b3dc4a63 iter 22-tidy.6: journal entry, milestone-22 carried debt empty 2026-05-10 05:01:39 +02:00
Brummel e7af79183d plan: 22-tidy.6 Form-B prose printer arms for ClassDef + InstanceDef 2026-05-10 04:43:38 +02:00
Brummel 204c702fcf iter 22-tidy.5: journal entry 2026-05-10 04:38:51 +02:00
Brummel 2506180023 plan: 22-tidy.5 strict duplicate-clause detection 2026-05-10 04:25:11 +02:00
Brummel e37d099edb iter 22-tidy.4: journal entry 2026-05-10 04:21:18 +02:00
Brummel 0fbc1f72f1 plan: 22-tidy.4 primitive-name-set consolidation 2026-05-10 04:09:57 +02:00
Brummel c3fd1c08a3 iter env-unify.audit: tidy stale Env docs, pin-test docstring; queue types/ctor_index shape 2026-05-10 02:36:27 +02:00
Brummel e414144d48 iter env-unify: journal entry, milestone close 2026-05-10 02:30:34 +02:00
Brummel 08abfdf791 plan: env-construction unify 2026-05-10 02:00:41 +02:00
Brummel 1d4a6b4231 spec: env-construction unify — single source of truth for Env shape 2026-05-10 01:47:56 +02:00
Brummel 9db47d2f4e journal: audit — lib.rs gap sites defensive, env.imports gap was the fifth 2026-05-10 01:24:18 +02:00
Brummel ca8ffe8dc3 journal: bug fix — mono pass env.globals seeding 2026-05-10 01:12:11 +02:00
Brummel 4cacfcbdac bench: mono-vs-vdisp micro-benchmark + revised Decision 11 rationale
Hypothesis-driven measurement of "did monomorphisation actually
buy us performance?" on a 100M-iter LCG hot loop, AILang mono'd
code vs. four C reference variants (direct-inlinable, direct-
noinline, indirect-monomorphic, indirect-polymorphic). Zen 3,
clang -O2, median-of-15.

Headline: H1 supported, but the mechanism is inlining, not
dispatch shape. AILang mono = hand-C direct (1.000x). Indirect-
monomorphic = direct-noinline (1.000x) — saturating branch
predictor makes the indirect-call cost vanish on this hardware.
Inlining is the actual 3.31x win; polymorphic indirect adds
another 21% predictor-miss penalty.

DESIGN.md Decision 11 gains a rationale paragraph reframing mono
as inlining-enabler rather than indirect-call-eliminator, with
explicit pointer to the bench. JOURNAL entry records the full
methodology, ratios, limitations, and the side-effect mono-pass
env.globals-seeding bug surfaced while building the AILang fixture
(separate RED-first debug iter to follow).
2026-05-10 01:03:21 +02:00
Brummel 105ad3fe80 iter 22-tidy: journal entry — milestone 22 closed 2026-05-09 22:52:49 +02:00
Brummel cc3f28c053 iter 22-tidy.2: spec — components table reflects 22b.4a/b split + 22c shipped 2026-05-09 22:51:49 +02:00
Brummel e6fe2dfd81 iter 22-tidy.1: DESIGN.md — reconcile Decision 11 with milestone-22 outcome (no Prelude, '__' separator) 2026-05-09 22:51:17 +02:00
Brummel a98da81e32 plan: 22-tidy DESIGN.md and spec drift after milestone-22 close 2026-05-09 22:50:25 +02:00
Brummel ea30b6815d iter 22c: journal entry — milestone-22 acceptance fixture + mono pass user-ADT fix 2026-05-09 22:45:02 +02:00
Brummel f3c94e554c plan: 22c user-class e2e fixture 2026-05-09 22:37:26 +02:00
Brummel 2102dadb3d spec: 22 — drop Prelude-for-primitives, tighten 22c to existing vocabulary 2026-05-09 22:34:30 +02:00
Brummel 692899867b iter 22b.4a: journal entry 2026-05-09 22:30:17 +02:00
Brummel 0709e319ab iter 22b.4a.6: spec + DESIGN amendments — 22b.4 split, terminology fix, '__' separator, forall-constraints gap 2026-05-09 22:28:17 +02:00
Brummel 5852833241 plan: 22b.4a fix — ail render has no --form flag 2026-05-09 22:19:32 +02:00
Brummel eb06f3bfcc plan: 22b.4a fix — int literals are bare tokens, not (lit (int N)) 2026-05-09 22:00:55 +02:00
Brummel fdf0de5de7 plan: 22b.4a form-a parser+printer arms for ClassDef/InstanceDef 2026-05-09 21:55:25 +02:00
Brummel eef5197f75 iter 22b.3: JOURNAL — monomorphisation pass shipped, e2e gate green 2026-05-09 21:37:51 +02:00
Brummel f7791e6cbd plan: 22b.3 monomorphisation pass 2026-05-09 20:08:01 +02:00
Brummel b1ae865e9d iter 22b.2: typecheck arms — 8 diagnostics shipped + skill-system post-mortem 2026-05-09 19:21:38 +02:00
Brummel 7045b2f4d2 plan: 22b.2 typecheck arms 2026-05-09 16:46:29 +02:00
Brummel 71dea8eab6 spec: 22 milestone — typeclasses retrospective 2026-05-09 16:27:50 +02:00
Brummel a5bfb76c7b iter 22c.live: skill system shipped, JOURNAL entry 2026-05-09 14:25:30 +02:00
Brummel b0b44c144b plan: skill system build-out — 11 tasks, spec→plan→implement→migrate→audit 2026-05-09 14:15:07 +02:00
Brummel be88e0fc14 spec: skill system — rename family/iter, add core-rules section, docwriter to audit
User feedback after first draft:
- family/iter not standard terms — milestone/iteration adopted
- ailang-docwriter folded into audit/ rather than left orphan
- explicit "Core rules adopted from Superpowers" section so each
  inherited Iron Law is named at the spec level, not just implied
2026-05-09 14:10:32 +02:00
Brummel 3615751e42 spec: skill system — formalise the existing iter workflow
Five-skill pipeline (brainstorm, plan, implement, audit, debug) under
skills/, emitting durable artefacts to docs/specs/ and docs/plans/.
Codifies discipline currently spread across CLAUDE.md (TDD-for-bugs,
mandatory tidy-iter, bench-regression rules, feature acceptance) into
trigger-bound skills. Existing per-iter workflow preserved; the layer
formalises the pre-iter design step and the iter handoff contract.

Bootstrap spec — defines the system that future specs will pass through.
2026-05-09 13:59:10 +02:00
Brummel 24a5c8b884 tidy: drop docs/superpowers/ — writing-plans skill experiment artifact 2026-05-09 13:13:31 +02:00
Brummel 4abb195fc8 iter 22b.1.4: JOURNAL entry — 22b.1 closed, 22b.2 next
Records the iter close: AST schema floor (Def::Class/Instance) +
workspace registry with three coherence checks (Orphan, Duplicate,
MissingMethod), seven new tests (288 → 295), all three bench gates
green at close. JOURNAL queue updated: 22b.1 closed, 22b.2 next
(typecheck arms + FnDef.type.constraints + class-schema validation).
2026-05-09 12:42:23 +02:00
Brummel 522500a6f6 plan: 22b.1 typeclass schema floor + registry (writing-plans skill experiment) 2026-05-09 12:24:48 +02:00
Brummel f6cb900082 design: 22a — Decision 11 typeclasses (Haskell-lite, monomorphised, coherent) 2026-05-09 12:16:48 +02:00
Brummel 338a4cd3fe docs: codify feature-acceptance criterion (LLM-author utility)
Adds DESIGN.md "Feature-acceptance criterion" as a top-level section:
a feature ships only if (1) an LLM author naturally produces code
that uses it, and (2) it measurably improves correctness or removes
redundancy. Aesthetic appeal and human ergonomics do not count.

Mirrored in CLAUDE.md as "Feature acceptance: LLM utility", paired
with the existing "Design rationale != implementation effort". The
two together narrow valid feature rationales to one thing: what the
LLM author gets out of the feature.

Trigger: the typeclass-design conversation around 22a. Rule was
implicit in many past decisions (Decision 1's JSON-over-text choice,
Decision 10's "what LLMs are good at" reasoning) but never stated
as a feature-gate. Codifying it now means future feature proposals
get evaluated against an articulated criterion instead of being
re-derived each time.

Documentation-only; no Rust, schema, or bench changes. Test state
288/0/3 unchanged.
2026-05-09 10:59:28 +02:00