124 Commits

Author SHA1 Message Date
Brummel 45dca692dd fieldtest: canonical-type-names — 5 examples, 9 findings 2026-05-11 12:14:15 +02:00
Brummel c680c91f5b spec: plan-recon subagent for planner 2026-05-11 12:12:17 +02:00
Brummel 61ed6d47c8 skill: rename plan to planner
Anthropic now reserves /plan as a UI command, so the Skill tool refuses to
dispatch it. Rename the project's plan skill to planner, update the symlink
under .claude/skills/, and adjust references in CLAUDE.md, DESIGN.md,
skills/README.md, and the cross-references between brainstorm / implement /
audit / fieldtest / fieldtester. Plan files themselves (docs/plans/*.md)
keep their name — only the skill ID changes.
2026-05-11 11:05:36 +02:00
Brummel adcea02e85 spec: implement-orchestrator-agent
Three coupled changes to /implement:
- Boss-context offload via single subagent dispatch (target ~100x reduction)
- Iter isolation via branches (eliminates parallel-implementer conflicts)
- Per-iter journals under docs/journals/ replacing the JOURNAL.md monolith

JOURNAL.md becomes docs/journal-archive.md at acceptance time. Workers
stay at Opus 4.7; saving comes from token-volume relocation only.
2026-05-11 10:56:24 +02:00
Brummel 949785c3aa spec: canonical type names — step-7 cleanup (header, migration disambig, drop stale history note) 2026-05-11 00:39:42 +02:00
Brummel 33932cb6e6 spec: canonical type names — name MethodNameCollision as the workaround it is 2026-05-11 00:33:57 +02:00
Brummel b840c340d4 spec: canonical type names — class-names out-of-scope rationale 2026-05-11 00:28:39 +02:00
Brummel 4d614a053f spec: revise canonical type names — module-scoped, bare=local 2026-05-11 00:22:28 +02:00
Brummel 72d719010c spec: revise canonical type names — AST is context-free 2026-05-11 00:11:39 +02:00
Brummel b6a84041eb spec: canonical type names — internal qualification 2026-05-10 23:55:05 +02:00
Brummel 9c3d29084c spec: 23 status → Approved 2026-05-10 21:04:06 +02:00
Brummel 03b6d15db4 spec: 23 — Eq/Ord Prelude (Show + heap-Str ABI deferred to next milestone) 2026-05-10 20:35:06 +02:00
Brummel 2052f4dfcc fieldtest: floats — 4 examples, 6 findings (1 bug, 1 friction, 1 spec_gap, 3 working) 2026-05-10 16:57:38 +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 aa02ea1d2b spec: design-md-consolidation — state-only DESIGN.md, four sweeps 2026-05-10 11:33:19 +02:00
Brummel 1d4a6b4231 spec: env-construction unify — single source of truth for Env shape 2026-05-10 01:47:56 +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 2102dadb3d spec: 22 — drop Prelude-for-primitives, tighten 22c to existing vocabulary 2026-05-09 22:34:30 +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 71dea8eab6 spec: 22 milestone — typeclasses retrospective 2026-05-09 16:27:50 +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