▲ Keyboard Studio Trailmap

A leaflet for the trail ahead

Keyboard Studio
Trailmap

Where the project has been, where it is stuck, and where the trail goes next — in plain language, with every stop linked to its GitHub original.

What Keyboard Studio is: a browser-based studio that lets language experts create production-ready Keyman keyboards through a plain-language survey and show-by-example galleries — no hand-written .kmn. Open the live studio → · Repository →
985 PRs merged 1,261 issues closed 104 specs (002–105) 5 packages 22 open issues 0 open PRs at snapshot Started 2 Jun 2026 Studio in production

Snapshot: 22 October 2026. Counts verified live from GitHub on that date.

The trail at a glance

Solid line = ground covered. Dotted line = trail ahead. Tap a numbered camp to jump to its card. The project sits at several camps at once — and revisits some.

SUMMITFirst keyboard through upstream review

01 Trailhead · 02 Authoring Walk · 03 Decisions · 04 Marks & Touch · 05 Mobile · 06 Road Home · 07 Privacy · 08 Rough Ground · 09 Trail Ahead · 10 Working Together

The summit — current marker, not a version promise

🏁 First keyboard through upstream review

The destination flag for this stretch of trail: the first studio-authored keyboard carried through a complete keymanapp/keyboards review cycle. No studio keyboard has completed an upstream review cycle yet (#1006). Hybrid shepherding is ruled — a named human shepherd now (still to be named), the studio round-trip later, after one real cycle is observed. Keyman maintainer conversations start November 2026.

Orientation

How to read this map

Camps are stops along one trail, not phases. The project is at several camps at once, and some camps get revisited as the ground shifts. Each camp card shows its own progress, what is done, and what is still on the ground in front of it.

Status badges
ShippedDone, merged, and in the studio or the record. BuildingActively being built right now. PlannedAgreed and queued — not yet started. Known issueOpen problem, honestly marked. OngoingContinuous work with no finish line.

Finished entries are tucked behind a “Show N finished” toggle on each camp so the open work stays visible first. Field notes are the short version of a ruling, a constraint, or a lesson — the GitHub link is always the full record.

Overview

At a glance

AreaStatusWhere it lives
Contracts & constitutionShippedspec.md, packages/contracts, docs/criteria.md
Authoring walkShipped Ongoing i18nLive studio · specs 080 / 102
Decision architectureShipped Building spec 105specs 088–093, 105
Marks & touchShipped Buildingspec 104 · PRs #2298, #2303, #2312
MobileShippedEpic #1853 · docs/mobile-adaptation.md
CI & triageShipped Ongoingdev → nightly soak → main · muse-triage
PrivacyShipped Ongoingspecs 095–101 · PR #2100
Known issues22 open issuesCamp 08 — Rough Ground
Upstream deliveryPlanned#1006 — the summit
01

Base camp · 0 km — where every route starts

The Trailhead

The contract before the climb.

5 of 5 done · 0 to goShipped

The work here

02

The main path · the walk most travellers take

The Authoring Walk

The whole journey, end to end — from a starting keyboard to a deliverable package.

8 of 9 done · 1 to goCore walk shipped

The work here

  • Ongoing Internationalisation via Crowdinen / fr live; further locales follow the same pipeline as translations land.
03

High ground · specs 088–093, revisited by 105

Decisions, Not Documents

The decision architecture — the studio remembers decisions, and derives everything else.

Revisited
7 of 8 done · 1 to goArchitecture shipped · migration building

The work here

  • Building Spec 105 — finish the migrationWorking copy becomes purely derived (envelope v3, ghost tests removed). Phase 0 landed in PR #2292; phases P1–P9 ahead. Spec: specs/105-*.
04

Tricky footing · three axes that look like one

Marks & Touch

Diacritics, composition, backspace, placement — and what a touch key really is.

Revisited
6 of 7 done · 1 to goWalk-validated 32 / 32

The work here

  • Building Marks guard follow-ons#2285 — guard defaults and edge cases following the round-3 walk.
05

A narrower trail · same destination

Mobile

The studio in your pocket.

6 of 6 done · 0 to goEpic #1853 shipped

The work here

    06

    The return leg · how work gets back safely

    The Road Home

    CI, promotion, and review — the route every change travels home.

    7 of 8 done · 1 ongoingFlow shipped · vigilance ongoing

    The work here

    • Ongoing “Resolve CI” means all lanes greenIncluding the non-blocking e2e lanes. A red non-blocking lane is not resolved CI.
    07

    A quiet camp · specs 095–101

    Privacy Camp

    Trust is part of the route.

    4 of 6 done · 2 restingProgramme merged · exercises pending

    The work here

    • Planned DSAR dry-run + breach tabletopThe subject-access and breach-response procedures still need to be exercised end to end.
    • Ongoing SIL controller acceptanceSIL Global is named as controller in the published notice; SIL’s acceptance of that role is not yet evidenced. Resting here until it is.
    08

    Loose scree · watch your footing

    Rough Ground

    Known issues, honestly marked — all open at snapshot, drawn from the 22 open issues.

    0 of 8 done · 8 to goOpen ground — cluster actively burning down

    The work here

    • Known issue Copy-track output cluster — #2305–#2308#2305 welcome-folder non-image files carried as images · #2306 welcome-image keyboards get no generated layout charts · #2307 stylesheets shipped under the base’s old release path · #2308 base font / stylesheet dropped from the .kps. Font and welcome-image fixes already landed 22 Oct 2026 (PRs #2324 / #2325) — this cluster is actively burning down.
    • Known issue Corpus evaluation — #2278#2278 — the strategy recognizer reads 86 deadkey-Latin keyboards as the wrong strategy.
    • Known issue Keyboard-wide fallback policy — #2178#2178 — a single fallback policy for undefined keys, still to replace per-carve overrides. (KevinPNG; the issue’s engine half is unblocked.)
    • Known issue Spec-drift flag on spec 105 — #2318#2318 — drift flagged between the spec 105 programme text and the ground as surveyed.
    • Known issue Invisible-characters pane scope — #2283#2283 — small studio item: what the invisible-characters pane should cover.
    • Known issue Copyright-holder choice — #2281#2281 — small studio item: letting the author choose the copyright holder.
    • Known issue Workspace cleanup archives — #2106#2106 — deciding what to keep from workspace cleanup archives.
    • Known issue Design record kept open — #2297#2297 (output composition) remains open even though its feature shipped — the record stays open for follow-ons. See the field note.

    Around the campfire

    Being worked on right now

    What is actually on the fire at snapshot — from live GitHub activity, not from a plan document.

    • Building Spec 105 — derived working copy programme. Phase 0 landed (PR #2292); phases P1–P9 ahead, ending in envelope v3 with ghost tests removed. See Camp 03.
    • Building Copy-track output cluster burn-down (#2305–#2308). Fixes landing today — font and welcome-image fixes already in via PRs #2324 / #2325 on 22 Oct 2026. See Camp 08.
    • Building Marks guard defaults — #2285. Follow-ons from the round-3 validation walk. See Camp 04.
    • Ongoing Spec-104 corpus gate residue. The touch-key resolver’s corpus gate is nightly-class in the dev soak, not per-PR — residue items are worked through the soak, not the PR lane.
    • Ongoing Triage, as ever. The server /km-triage service and Muse’s 15-minute muse-triage sweep keep walking open PRs — approve-and-park, request changes, or escalate. See Camp 06 for the full (corrected) history.

    Field journal

    What we finished, week by week

    From merged PRs. Most recent week in full; earlier weeks in one line each.

    19–22 October 2026 — the marks & copy week

    • Shipped Backspace as its own axisPR #2312 — backspace restored as its own headed question, proposed from composition, overridable.
    • Shipped Output composition questionPR #2298 — composition asked in its own terms, one keyboard-wide NFC / NFD policy.
    • Shipped Weighted placement rationalePR #2303 — occupancy ledger, weighted rationale, demotion banner.
    • Shipped Guard fixesPRs #2320 / #2323 — walk-1 empty-context guard probe and follow-on fixes; PR CI all lanes green on #2320.
    • Shipped Walk records, round 3 — 32 / 32 PASSPR #2321 — all 32 axis combinations re-walked through Output, each keyboard .zip saved as evidence.
    • Shipped Copy-track font + welcome imagesPRs #2324 / #2325 (22 Oct) — first fixes into the #2305–#2308 cluster.
    • Shipped Dev → main promotionsPRs #2317 / #2301 / #2296 — the promotion rhythm from Camp 06, exercised three times in one week.

    Earlier in October — the privacy programme (specs 095–101, PR #2100) and the mobile epic (#1853) landed; Constitution v2 + Architecture v2 were ratified on 14 Oct; Muse’s muse-triage identity went live on 10 Oct, joining the server triage service that had run since June.

    Late September – October — the decision architecture, specs 088–093, was built stacked in dependency order: DecisionSet, pure apply, gallery modules, derived steps, live extraction, derived keyboard.

    09

    Dotted line from here · the trail ahead

    The Trail Ahead

    What is to come — next first, then planned, then the last mile to the summit.

    0 of 9 done · 9 to goAll ahead of us

    The work here

    • Building Spec 105, phases P1–P9Finish the derived-working-copy migration (Camp 03). Phase 0 landed; the programme is the current main effort.
    • Building Spec 103 — first-class if() guardsCorpus-led: a joint engine + content session on real if() usage decides the shape before any build.
    • Planned Hybrid authoring epic — #367 (P1 priority)#367 — the hybrid authoring epic, top planned priority.
    • Planned Rule behaviours + rule editor#1812 rule behaviours, with #1432 de-obfuscating the rule editor.
    • Planned Copy-track welcome / help authoring — #2155#2155 — a copy author writes their own welcome / help prose (a copy never inherits identity prose — Camp 02).
    • Planned Icon editor — #1550#1550.
    • Planned Track-2 source-upload entry — #497#497.
    • Planned First-time user tutorial — #552#552.
    • Planned Andika preview font + script coverage — #1782#1782 — Andika as preview font, plus coverage for scripts Noto misses.
    10

    The last camp · how this crew works

    Working Together

    Principles, where things live, and how help is most useful.

    6 of 6 practices live · 0 to goOngoing by nature

    Principles

    Rule once, in the open

    Product rulings are recorded on the issue or spec and carried verbatim through spec, code, and tests.

    Defaults are proposals

    Every step proposes and asks; nothing applies silently, and nothing is silently dropped.

    Verify before claiming

    A red check is A/B-proven against a pristine base before it is blamed on a change; CI is only “resolved” when every lane is green.

    Draft-first on ruling-carrying posts

    Posts that carry a ruling are drafted and checked before they are posted.

    Push, don’t hold

    Finished, verified work gets pushed and flagged — not held locally.

    “Over and out!”

    The sign-off posted on the GitHub issue when work is feature-complete and PRed.