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.
This commit is contained in:
@@ -199,7 +199,7 @@ Vocabulary note: legacy JOURNAL entries (pre-2026-05-09) use
|
||||
"iter" / "family"; new entries use "iteration" / "milestone".
|
||||
Existing entries are not retroactively renamed.
|
||||
|
||||
## Roles of `docs/JOURNAL.md`, `docs/DESIGN.md`, `docs/specs/`, `docs/plans/`
|
||||
## Roles of `docs/DESIGN.md`, `docs/JOURNAL.md`, `docs/roadmap.md`, `docs/specs/`, `docs/plans/`
|
||||
|
||||
- **`docs/DESIGN.md`** is the canonical specification. It describes
|
||||
what AILang *is*: schema, semantics, invariants, runtime contracts.
|
||||
@@ -211,10 +211,18 @@ Existing entries are not retroactively renamed.
|
||||
|
||||
- **`docs/JOURNAL.md`** is the decisions log. It records *why* the
|
||||
project moved the way it did — alternatives considered and
|
||||
rejected, lessons from past iterations, queued options for future
|
||||
work, and the rationale behind choices that does not belong in
|
||||
`docs/DESIGN.md` (rationale is about the choice, not about the
|
||||
language).
|
||||
rejected, lessons from past iterations, and the rationale behind
|
||||
choices that does not belong in `docs/DESIGN.md` (rationale is
|
||||
about the choice, not about the language). It is chronological
|
||||
and append-only; it does not carry the forward queue.
|
||||
|
||||
- **`docs/roadmap.md`** (since 2026-05-10): the priority-ordered
|
||||
forward queue — milestones, features, todos, and ideas. The
|
||||
orchestrator owns this file and is responsible for keeping it
|
||||
current: adding new entries, reprioritising, removing items
|
||||
that are done or dropped. Entries are checkbox lines; finished
|
||||
items get checked off, then removed (with a one-line mirror in
|
||||
JOURNAL) once they stop being interesting context.
|
||||
|
||||
- **`docs/specs/<milestone>.md`** (since 2026-05-09): per-milestone
|
||||
design spec produced by `skills/brainstorm`. Hard-gate before any
|
||||
@@ -224,6 +232,6 @@ Existing entries are not retroactively renamed.
|
||||
bite-sized executable plan produced by `skills/plan`, consumed
|
||||
by `skills/implement`.
|
||||
|
||||
Together these answer two questions: "what is the language right
|
||||
now?" (DESIGN) and "how did we get here, and what's next?" (JOURNAL,
|
||||
specs, plans).
|
||||
Together these answer three questions: "what is the language right
|
||||
now?" (DESIGN), "how did we get here?" (JOURNAL, specs, plans),
|
||||
and "what's next?" (roadmap).
|
||||
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
# AILang Roadmap
|
||||
|
||||
Priority-ordered list of upcoming work — milestones, features, todos,
|
||||
and ideas. The orchestrator maintains this file. The user can request
|
||||
additions; the orchestrator chooses what to remove or reprioritise as
|
||||
work progresses.
|
||||
|
||||
## Conventions
|
||||
|
||||
- One checkbox per entry. `- [ ]` is open; `- [~]` is in progress
|
||||
(work has started — a plan exists, a branch is open, or commits are
|
||||
landing); `- [x]` is done. A finished entry may stay briefly for
|
||||
context, then is removed (with a one-line mirror in
|
||||
`docs/JOURNAL.md`).
|
||||
- Each entry is tagged by **kind** and lives under a **priority**
|
||||
bucket:
|
||||
- **\[milestone\]** — big chunk that will get a `docs/specs/<milestone>.md`.
|
||||
- **\[feature\]** — smaller addition inside a milestone, no full
|
||||
spec.
|
||||
- **\[todo\]** — concrete task that can run without a brainstorm
|
||||
(cleanup, doc fix, mechanical refactor, test backfill).
|
||||
- **\[idea\]** — not yet decision-ready, no commitment.
|
||||
- Optional `depends on:` line names another entry that has to land
|
||||
first.
|
||||
- Optional `context:` line points to the JOURNAL entry where the
|
||||
rationale lives. The roadmap is intentionally terse; rationale
|
||||
stays in JOURNAL.
|
||||
- Priority buckets:
|
||||
- **P0** — in flight. Spec or plan already exists.
|
||||
- **P1** — next up. Decision made; not yet started.
|
||||
- **P2** — medium-term. Decided in principle, scheduled later.
|
||||
- **P3** — ideas. No commitment; may be cut.
|
||||
|
||||
## P0 — In flight
|
||||
|
||||
- [~] **\[milestone\]** design-md-consolidation — `docs/DESIGN.md`
|
||||
becomes a state-only specification across four thematic sweeps
|
||||
(history anchors out, migration plans out, schema-SoT inversion +
|
||||
data-model hardening, workflow / cross-reference cleanup).
|
||||
- context: `docs/specs/2026-05-10-design-md-consolidation.md`
|
||||
- sub-entries:
|
||||
- [~] Sweep 1 — remove history anchors
|
||||
(`docs/plans/2026-05-10-design-md-consolidation-1-history-anchors.md`;
|
||||
tasks 1-3 of 6 landed)
|
||||
- [ ] Sweep 2 — REVERTED + migration plans out
|
||||
- [ ] Sweep 3 — schema SoT inversion + data-model hardening
|
||||
- [ ] Sweep 4 — workflow / cross-reference cleanup
|
||||
|
||||
## P1 — Next
|
||||
|
||||
- [ ] **\[milestone\]** Post-22 Prelude — ship `Show` / `Eq` / `Ord`
|
||||
with the four primitive instances (Int, Bool, Str, Float); rewire
|
||||
`print` through `Show.show`. Originally queued as 22b.4 in the
|
||||
typeclass milestone, kept on hold pending demand.
|
||||
- context: JOURNAL 2026-05-09 ("JOURNAL queue")
|
||||
- depends on: design-md-consolidation (touches DESIGN.md schema
|
||||
sections that the consolidation will reshape)
|
||||
|
||||
## P2 — Medium-term
|
||||
|
||||
- [ ] **\[feature\]** Operator routing through `Eq` / `Ord` — `==`,
|
||||
`<` etc. resolved via the typeclass instead of the built-in
|
||||
primitive comparators. No commitment; gated on bench re-baselining
|
||||
to make sure the indirection doesn't tank latency.
|
||||
- context: JOURNAL 2026-05-09
|
||||
- depends on: Post-22 Prelude
|
||||
- [ ] **\[todo\]** `types` / `ctor_index` overlay shape question —
|
||||
decide whether the env's two parallel ctor maps should collapse
|
||||
into one overlay, or stay split. Surfaced during the
|
||||
env-construction unify audit.
|
||||
- context: JOURNAL 2026-05-10 ("Audit close: env-construction unify")
|
||||
- [ ] **\[feature\]** 22c — typeclass corpus expansion. User-defined
|
||||
classes beyond the prelude four; multi-parameter classes; superclass
|
||||
chains; richer instance bodies. Deferred from milestone 22.
|
||||
- context: JOURNAL 2026-05-09
|
||||
- [ ] **\[todo\]** Boehm full retirement — remove the transitional
|
||||
Boehm GC path now that RC + uniqueness is the canonical memory
|
||||
story.
|
||||
- context: JOURNAL pre-22, "Boehm transitional"
|
||||
- [ ] **\[feature\]** Closure-pair slab / pool — codegen tweak to
|
||||
pool the env+code closure pairs instead of one-shot heap allocs.
|
||||
Bench-gated.
|
||||
- [ ] **\[todo\]** `FnDef::synthetic` flag — formalise the
|
||||
monomorphiser-emitted FnDefs so downstream passes can tell
|
||||
user-authored from synthesised at a glance. Currently inferred from
|
||||
symbol naming.
|
||||
- [ ] **\[todo\]** 21'h iteration — final 21' carry-over (latency
|
||||
methodology pass). Numbering kept for continuity with the 21' arc.
|
||||
|
||||
## P3 — Ideas
|
||||
|
||||
- [ ] **\[idea\]** Latency methodology rework — switch from per-run
|
||||
timing to a histogram-based approach so tail-latency regressions
|
||||
are visible without re-running. Queued from 21'g.
|
||||
- [ ] **\[idea\]** Parser-test backfill for 22b.4a-era duplicate-clause
|
||||
sites (class × 3, class method × 2, instance × 3, instance method
|
||||
× 1). No regression pin today; only worth it if a 22b.4a-era
|
||||
diagnostic needs to change.
|
||||
- context: JOURNAL 2026-05-10 ("Iteration 22-tidy.7")
|
||||
- [ ] **\[idea\]** `write_type` `Type::Forall` arm in
|
||||
`crates/ailang-prose/src/lib.rs` silently drops constraints in
|
||||
inline-type rendering. Dormant — surface forms today only carry
|
||||
forall at fn-signature top level. Fix only if a future feature
|
||||
carries forall + constraints inline.
|
||||
- context: JOURNAL 2026-05-10 ("Iteration 22-tidy.6")
|
||||
- [ ] **\[idea\]** Richer integration paths between RC and
|
||||
uniqueness — deferred from the 21' arc; revisit once the
|
||||
uniqueness inference covers more program shapes.
|
||||
Reference in New Issue
Block a user