The living roadmap of kamp.us: the founder-voice source of direction. GitHub milestones are its operational projection. Agents ground in this file the way they ground in an ADR — it says what we build next, and why, in order. Conversation-authored (ADR-0075 idiom); revised at arc boundaries or when the founder calls it. Not a pipeline surface — this is product direction (ADR 0078).
kamp.us, reborn. A small, earnest community built around three products — sözlük (the community of definitions), pano (the shared board of links and posts), and mecmua (long-form publishing) — bound by künye, earned-authorship identity: you arrive a çaylak and become a yazar by vouch (kefil), not by signup. Quality over growth; the founders are the first users; nothing seeded. An autonomous software factory builds it.
Direction flows top-down: vision → arcs → milestones → epics → features. An arc is a themed chapter of work, projected onto a GitHub milestone. Exactly one arc is active at a time — it defines "now," and priority is relative to it (p1 = current arc). The intake pipeline stays deliberately direction-blind; this roadmap is the layer that gives it direction. When an arc flips active, stale priorities re-price against the new active arc.
Generated top-down view of the roadmap: every arc and campaign is a node styled by its lifecycle state (active / queued / done); edges are the real cross-item dependencies declared in the ## Dependencies section below. GitHub renders this natively on the repo page. It is generated from the tables — never hand-edit it; regenerate with pipeline-cli roadmap diagram.
%% GENERATED by `pipeline-cli roadmap diagram` — do not hand-edit; regenerate.
%% Nodes = every ## Arcs / ## Campaigns row (styled by state); edges = ## Dependencies rows (#3870).
flowchart TD
subgraph arcs["Arcs"]
arc_four_pillars["Four Pillars"]:::done
arc_ge_it["Geçit"]:::active
arc_mecmua_v2["Mecmua v2"]:::queued
arc_at_lye["Atölye"]:::done
end
subgraph campaigns["Campaigns"]
camp_mentor_audit["Mentor Audit"]:::active
camp_crew_mcp_finish_replace_the_tmux_relay_with_crew_mcp["Crew-MCP Finish — replace the tmux relay with crew-mcp"]:::done
camp_deterministic_crew_mechanics["Deterministic Crew Mechanics"]:::active
camp_di_taxis_docs_pipeline_crew_mcp["Diátaxis docs — pipeline-crew & -mcp"]:::done
camp_merge_gate_reliability["Merge-Gate Reliability"]:::active
camp_worktree_isolation_integrity["Worktree-Isolation Integrity"]:::active
camp_cp_verdict_integrity["§CP Verdict Integrity"]:::active
camp_flag_graduation["Flag Graduation"]:::active
camp_pipeline_cli_glue_consolidation["pipeline-cli Glue Consolidation"]:::active
camp_lint_gate_adoption["Lint-Gate Adoption"]:::active
camp_taste_skill_library["Taste-Skill Library"]:::active
camp_pipeline_anywhere["Pipeline Anywhere"]:::active
camp_pipeline_cli_effect_platform_migration["pipeline-cli @effect/platform migration"]:::active
camp_agentic_design_system_coverage["Agentic design-system coverage"]:::done
camp_flag_retirement_adr_0136["Flag Retirement (ADR 0136)"]:::active
camp_writing_craft_import["Writing-Craft Import"]:::done
camp_fabrika_kampus_pipeline_v2["fabrika — kampus-pipeline v2"]:::active
end
ext_3642["#3642"]:::external
ext_3833["#3833"]:::external
ext_adr_0202["ADR 0202"]:::external
ext_triage_rubric["Triage rubric"]:::external
ext_3642 --> camp_flag_graduation
ext_3833 --> camp_pipeline_anywhere
ext_adr_0202 --> ext_triage_rubric
classDef active fill:#1a7f37,stroke:#116329,color:#ffffff;
classDef queued fill:#9a6700,stroke:#7d4e00,color:#ffffff;
classDef done fill:#57606a,stroke:#424a53,color:#ffffff;
classDef external fill:#ddf4ff,stroke:#54aeff,color:#0550ae,stroke-dasharray:5 5;
| Arc | Milestone | State |
|---|---|---|
| Four Pillars | #17 | done |
| Geçit | #24 | active |
| Mecmua v2 | #25 | queued |
| Atölye | #26 | done |
Four Pillars — done. Frontend polish and the encoded design system: the four pillars — Performance, Cohesiveness, Usability, Accessibility — made real and enforced (ADR 0162, the design-system manifest). The surface of kamp.us becomes excellent and self-consistent. The nav-IA discipline landed here.
Geçit — active. The passage. The membrane of the community: onboarding, künye (the reputation DO), and moderation. How a stranger becomes a çaylak, a çaylak becomes a yazar by vouch, and how the community governs itself. The çaylak→yazar journey — undefined today — gets designed here. (The earlier künye milestone folded in.)
Mecmua v2 — The next chapter of long-form publishing: the Thinking-Machines 3-zone reading layout, and the reading/authoring experience maturing past v1.
Atölye — the workshop. The in-product museum of craft: curated exhibits, live and playable, where kamp.us shows how it is made.
Campaigns are bounded, milestone-backed pushes that run concurrently with the active product arc, drained through the platform lane (ADR 0072 semantics; ADR 0078 engineering-led).
| Campaign | Milestone | State |
|---|---|---|
| Mentor Audit | #27 | active |
| Crew-MCP Finish — replace the tmux relay with crew-mcp | #28 | done |
| Deterministic Crew Mechanics | #29 | active |
| Diátaxis docs — pipeline-crew & -mcp | #31 | done |
| Merge-Gate Reliability | #36 | active |
| Worktree-Isolation Integrity | #37 | active |
| §CP Verdict Integrity | #38 | active |
| Flag Graduation | #39 | active |
| pipeline-cli Glue Consolidation | #40 | active |
| Lint-Gate Adoption | #41 | active |
| Taste-Skill Library | #42 | active |
| Pipeline Anywhere | #35 | active |
| pipeline-cli @effect/platform migration | #32 | active |
| Agentic design-system coverage | #33 | done |
| Flag Retirement (ADR 0136) | #34 | active |
| Writing-Craft Import | #30 | done |
| fabrika — kampus-pipeline v2 | #44 | active |
The table is a parsed contract. It is the single source the campaign skill (which appends a row and flips its state) and the lifecycle guard (which reads it) both bind to, so the grammar is pinned here rather than re-derived at either end:
- Columns are
Campaign | Milestone | State, in that order.Campaignis the founder-voice name;Milestonepins the campaign to its GitHub milestone by number (#N) — the same row→milestone-by-number binding the roadmap-guard already enforces on## Arcs, and that number is the one link to the operational projection.Stateis the lifecycle cell. State ∈ {active, done}— the symmetric two-state lifecycle. A campaign isactivewhile its milestone is draining, and flips todoneonce that milestone is fully drained (its GitHub milestone closed). There is noqueuedstate: unlike an arc, a campaign is not sequenced ahead — it opensactivewhen the founder starts it and endsdone, running concurrently with whichever arc is active.
Mentor Audit — a security & architecture audit wave (the staff-mentor findings: the karma double-bump race, per-actor rate limiting, ops runbooks, SECURITY.md, …). To be solved ASAP; drains via the platform lane alongside Geçit.
The explicit cross-item dependency declaration that drives the diagram at the top of this file. Each row is one directed edge Blocker → Blocks: the Blocker must land before the Blocks node can proceed. An endpoint is either an arc/campaign name from the tables above (which binds the edge to that state-styled node) or an external reference — an issue #N, an ADR NNNN, or a not-yet-tabled arc — which renders as a dashed external node. This section is additive and is not the pinned Campaigns-table contract; it lives in its own section so the Campaigns grammar (Campaign | Milestone | State) is untouched.
Campaign→arc concurrency (a campaign draining alongside the active arc via the platform lane) is contextual, not a dependency — it is deliberately not an edge here.
| Blocker | Blocks | Why |
|---|---|---|
| #3642 | Flag Graduation | anka-ops cutover must land before the Flag Graduation (#39) drain can complete |
| #3833 | Pipeline Anywhere | publish-isolation guard precedes the Pipeline Anywhere external arcs |
| ADR 0202 | Triage rubric | the CrewOps declarative-state doctrine precedes the triage-rubric change |
Regenerate the diagram after editing any table with pipeline-cli roadmap diagram; the follow-up roadmap-guard extension fails CI closed when the committed block drifts from the tables + this declaration (#3870).
Not everything is an arc. Pipeline & reliability hardening is continuous, milestone-less work carried on the axis:pipeline-hardening label — the factory maintaining itself. It runs always, in the platform lane, and is never a product arc.