Commit Graph

318 Commits

Author SHA1 Message Date
Brummel cdc9d64169 plan: floats iter 1 — schema layer (Literal::Float + canonical hex serde + primitive registration) 2026-05-10 14:26:17 +02:00
Brummel e37366f8dd spec: floats LLVM-IR fixes — fcmp une for !=, synth.rs sites, container-slot precision
Three classes of fix from the LLVM-IR audit:

1. != on Float: fcmp une, NOT fcmp one. one is 'ordered and not
   equal' (false for nan!=nan, breaks IEEE / user-fixed constraint).
   une is 'unordered or not equal' (true for nan!=nan, matches IEEE
   and Rust f64::ne).

2. crates/ailang-codegen/src/synth.rs touches the Float primitive at
   five sites the original spec missed: llvm_type, builtin_ail_type,
   builtin_effect_op_ret, type_descriptor (descriptor 'Fl' to avoid
   collision with ADT-name F-prefix), builtin_binop (becomes a
   transitional artefact, replaced by type-dispatched helper).

3. Float literals lower as LLVM hex-float syntax (double 0x4014...);
   nan/inf/neg_inf as direct SSA double constants at use site (NOT
   via the __unreachable__ analogue, which is a terminator
   instruction not a value); container slot layout precision
   (monomorphisation vs bitcast).
2026-05-10 14:14:54 +02:00
Brummel f7e2c3ee7a spec: floats — operators polymorphic over {Int, Float} + NaN/Inf constants + is_nan
Mainstream-aligns the Float surface: + - * / < <= > >= become
forall-quantified with codegen-dispatch on Int|Float (parallel to
today's == path), instead of the original draft's wort-style
fadd/flt/etc. Adds nan/inf/neg_inf as builtin constants and
is_nan : (Float) -> Bool. % stays Int-only (no fmod yet).

Iteration plan now flags iter 3 and iter 4 as widening passes
that must hold the no-Int-regression line.
2026-05-10 14:08:35 +02:00
Brummel 406bde0efc spec: floats milestone — Float as IEEE-754 binary64 primitive 2026-05-10 13:54:55 +02:00
Brummel b523ceb18d design-md-consolidation: audit close — JOURNAL entry + 3 follow-up items in roadmap (rustdoc sweep, architect-iron-law extension, drift-test fidelity widening) 2026-05-10 13:21:43 +02:00
Brummel 63df0c085c design-md-consolidation audit-tidy: close 3 architect drift items (Def kinds class/instance + Type::Forall constraints + letrec correction) 2026-05-10 13:20:40 +02:00
Brummel c6e433321e design-md-consolidation 4: journal entry + milestone close + roadmap mark done 2026-05-10 13:14:51 +02:00
Brummel e68d927e5a design-md-consolidation 4.4 fixup: drop 'Sharpened later the same day' temporal anchor + supplementary 'see closure conversion in JOURNAL' pointer 2026-05-10 13:10:45 +02:00
Brummel 49fc6738ba design-md-consolidation 4.4: cross-ref audit — JOURNAL queue → roadmap.md; bench pointers retained as binding-evidence anchors 2026-05-10 13:09:16 +02:00
Brummel 1605be75cb design-md-consolidation 4.3: drop 'Recently lifted gates' history paragraph from §What-is-not-yet-supported 2026-05-10 13:07:38 +02:00
Brummel 127a34a21b design-md-consolidation 4.2: strip ailang-docwriter agent workflow detail from Verification section; rule survives 2026-05-10 13:06:10 +02:00
Brummel 96270ced35 design-md-consolidation 4.1: fix Project-ecosystem stale agents/ path; expand Docs bullet to name roadmap.md + specs/ + plans/ 2026-05-10 13:04:03 +02:00
Brummel 9185014022 plan: design-md-consolidation 4 (workflow / cross-reference cleanup — final sweep) 2026-05-10 13:03:01 +02:00
Brummel af2064af6e design-md-consolidation 3: journal entry + roadmap sweep-3 closed 2026-05-10 12:58:54 +02:00
Brummel e21f264b93 design-md-consolidation 3.4 nit: drop task-ref doc-comment prefix + align def-kind list with lowercase tags 2026-05-10 12:57:11 +02:00
Brummel 934a6e18e6 design-md-consolidation 3.4 fixup: align DESIGN.md ClassDef/InstanceDef JSON tags with ast.rs lowercase serde rename 2026-05-10 12:53:36 +02:00
Brummel 4651fed5b7 design-md-consolidation 3.4: add design_schema_drift.rs — exhaustive-match drift test for ast.rs vs DESIGN.md §Data-model 2026-05-10 12:51:39 +02:00
Brummel e5d1c1e33b design-md-consolidation 3.3: ast.rs doc-comment names DESIGN.md §Data-model as canonical schema, drift test as enforcement 2026-05-10 12:48:21 +02:00
Brummel ac16100319 design-md-consolidation 3.2: invert §Data-model SoT — DESIGN.md canonical, ast.rs projection, drift test enforces 2026-05-10 12:46:15 +02:00
Brummel a100389c2f design-md-consolidation 3.1: remove 2 Rust code blocks from Decision 10 (Type::Fn + Suppress) — schema lives in §Data-model 2026-05-10 12:43:49 +02:00
Brummel 500aafb307 plan: design-md-consolidation 3 (schema SoT inversion + data-model hardening + drift test) 2026-05-10 12:42:35 +02:00
Brummel a5a101a010 design-md-consolidation 2: journal entry + roadmap sweep-2 closed 2026-05-10 12:37:21 +02:00
Brummel 4f47dbfeb1 design-md-consolidation 2.5: future-iter speculations — remove aspirations, tighten binding prohibitions 2026-05-10 12:34:21 +02:00
Brummel 774886bb37 design-md-consolidation 2.4: condense Decision 11 mono-vs-vdisp correction history to state-only rationale 2026-05-10 12:31:37 +02:00
Brummel 38d357d58a design-md-consolidation 2.3: delete Decision 10 §Migration plan (7-point completed-iter list) 2026-05-10 12:29:54 +02:00
Brummel 2539b0e728 design-md-consolidation 2.2: condense Decision 9 narrative-of-changes opener + drop pre-Decision-9 history paragraphs 2026-05-10 12:27:51 +02:00
Brummel 86fd5dec0b design-md-consolidation 2.1 fixup: replace orphaned Decision 7 cross-reference at DESIGN.md:1141-1144 2026-05-10 12:25:26 +02:00
Brummel a3406394c2 design-md-consolidation 2.1: delete Decision 7 (Term::If REVERTED block) 2026-05-10 12:23:49 +02:00
Brummel c352de8117 plan: design-md-consolidation 2 (REVERTED + migration + correction-history + future speculations) 2026-05-10 12:22:30 +02:00
Brummel 7863f73b84 design-md-consolidation 1: journal entry + roadmap sweep-1 closed 2026-05-10 12:17:35 +02:00
Brummel 172b974c9a design-md-consolidation 1.5 fixup: untangle line 863 run-on, deduplicate JOURNAL attribution, idiomatic 'larger still' 2026-05-10 12:14:56 +02:00
Brummel 44fe4384fc design-md-consolidation 1.5: condense historical bench data-points in DESIGN.md 2026-05-10 12:11:40 +02:00
Brummel 152e4efa28 design-md-consolidation 1.4 nit: deduplicate 'fixture' word in user-class parenthetical 2026-05-10 12:09:36 +02:00
Brummel 613d4d8c0f design-md-consolidation 1.4 fixup: strip bare iter-id references (~16 sites) 2026-05-10 12:07:22 +02:00
Brummel 008b7924e3 design-md-consolidation 1.4 fixup: strip non-Iter-N iter anchors (14b sketch, pre-19b, pre-22a) 2026-05-10 12:00:03 +02:00
Brummel ba94d7240f design-md-consolidation 1.4: drop Iter-N tags from DESIGN.md 2026-05-10 11:58:22 +02:00
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 8a09d52e8f Fix typo in CLAUDE.md: "Source is" -> "Source of truth is" 2026-05-10 11:14:18 +02:00
Brummel 7e373a8eab CLAUDE.md: refocus opening on the design goal, drop skill-system duplication
Replace the original "Invent your own programming language" prompt
(the very first text in the repo) with a focused statement of the
language's design goal: AILang is for LLM authors, contrary to
conventional compiler design. Lead with the four design priorities
(machine readability, local reasoning, provability, hallucination
robustness) and the cut/keep asymmetry from DESIGN.md's
feature-acceptance criterion.

Compress three sections that now duplicate skill content:

- Skill-system bullet list -> 1-line pointer to skills/README.md.
- Bug-fixes TDD headline -> 1-line pointer to skills/debug/, as
  required by skills/debug/SKILL.md ("CLAUDE.md keeps a one-line
  pointer").
- Milestone-cycle pipeline diagram + tidy mandate -> short pointer
  to skills/README.md and skills/audit/SKILL.md, retaining only the
  iter/family vocabulary note that lives nowhere else.

Also fix the Code-layout skills row to match the current repo
(fieldtest had been missing).

Discipline sections that govern behaviour *between* skills (orchestrator
role, when-not-to-delegate, design-rationale-vs-effort, direction
freedom, notifications) and substantive always-on rules (LLM-utility
feature gate) stay verbatim — they are not skill-replaceable.

247 -> 229 lines.
2026-05-10 11:12:49 +02:00
Brummel 64b0841c5a skills: deduplicate single-agent SKILL.md files (debug, fieldtest)
The four-phase debug process and the five-phase fieldtest process
each lived twice — once in SKILL.md (orchestrator-facing) and once
in the dispatched agent's file (subagent-facing). The orchestrator
does not execute these phases; the subagent does. Duplicating them
in SKILL.md just bloated the orchestrator's main context with bytes
that only the subagent ever needs.

SKILL.md now carries only what the orchestrator must consult at
dispatch time: trigger gating, Iron Law as headline, the carrier
contract, the produced handoff, and cross-references. Iron Law in
operational form, full process, Common Rationalisations, Red Flags,
and (for fieldtest) the spec template now live solely in the agent
file. Net −160 LOC across the skills tree.

CLAUDE.md pointer for 'Bug fixes — TDD, always' updated to reflect
that the substantive discipline lives in the agent file, not the
skill file.
2026-05-10 10:53:53 +02:00
Brummel bb6b52e7c3 skills: harmonise fieldtest example paths to examples/fieldtest/
Mixed Underscore/Subdir notation in two files; harmonised on the
Subdir form so the dispatched agent and the skill spec agree on
where examples land.
2026-05-10 10:41:11 +02:00
Brummel 7cc9613810 skills: add fieldtest — LLM-usability gate after audit
New skill that runs after a clean audit at milestone close. Picks
2-4 real-world programming tasks within the milestone's scope,
implements each in the AIL Surface form (.ailx), runs the binaries,
and writes a friction-and-bug spec to docs/specs/<date>-fieldtest-
<milestone>.md.

The dispatched agent (ailang-fieldtester) is restricted to DESIGN.md
plus the public examples/ corpus — crates/, runtime/, bench/ are
forbidden reads. This simulates a downstream LLM author who has only
the specification, which is the empirical complement to brainstorm's
prospective application of the LLM-utility criterion.

Findings classify as bug / friction / spec_gap / working, each with
a one-line downstream recommendation (debug / plan / ratify /
carry-on). The orchestrator dispatches the follow-ups; fieldtest
does not self-resolve.

Files:
- skills/fieldtest/SKILL.md
- skills/fieldtest/agents/ailang-fieldtester.md
- .claude/skills/fieldtest, .claude/agents/fieldtest (discovery
  symlinks)
- skills/README.md updated (skill table → 6, pipeline ASCII,
  agent roster, discovery list)
2026-05-10 10:39:47 +02:00