Skip to content

roadmap: monorepo & devantler.tech site strategy (June 2026)Β #1813

Description

@devantler

πŸ€– Generated by the Daily AI Assistant

Problem

The monorepo (the aggregation repo + the devantler.tech Astro Starlight site in docs/) is the one core product with no roadmap of record β€” it has a single open issue (#1702) and no roadmap-labelled epic, so its direction is implicit. This is the first strategy review for it: an anchor that captures where the product is versus where it should be, decomposed into a few independently-shippable themes. Children get filed/triaged off this epic over the coming cadence.

Labeling: filed without the roadmap label for now. This repo runs sync-labels.yaml, which deletes any label not in the canonical set, and roadmap is not canonical until actions#253 lands + the weekly sync runs. Apply roadmap once #253 is merged (same deferral as skills#32).

Where the product is

The repo and site are healthy and actively maintained β€” recent work synced the site's Active Projects, Actions/Reusable-Workflows lists, and Templates section to the live repos, and auto-derived the homepage blog list. The themes below are about removing recurring friction and making healthy state self-sustaining, not fixing breakage.

Themes (problem β†’ direction β†’ rough size)

1. Harden the AI Engineer's own GitHub-ops toolchain β€” anchor: #1702

Problem. Every GitHub write/branch op runs through the gh CLI under coarse Bash permission rules, and the auto-mode classifier fail-closes nondeterministically on them. This is the single biggest operational drag on the engineer. It is not limited to PR merges (the long-tracked #1702 self-merge denial) β€” it now reproduces across the whole op surface. A single recent run hit five independent denials: two own-PR gh pr merge (full gating evidence emitted), one golangci-lint run on the engineer's own verified-trusted branch (author evidence emitted), one gh run rerun --failed, and one empty-commit re-trigger push β€” each on a PR whose devantler authorship was already shown in-transcript. The denials force everything to "maintainer one-click," which defeats the autonomy the routine is designed for.
Direction. Pursue #1702's token-backed / non-Bash GitHub-ops path (a non-interactive PAT-backed GitHub MCP), and broaden its scope beyond merge to the operations that now also fail-close: PR merge, CI re-run, and branch pushes/empty-commit re-triggers. Structured, per-tool-permissioned MCP calls sidestep the Bash-prefix classifier entirely. Keep it an evaluation first (per #1702) β€” non-interactive auth is the gating blocker.
Size: M (gated on a headless-auth GitHub MCP being available; evaluate before committing).

2. Make site content self-sustaining (anti-drift)

Problem. A steady stream of PRs exists purely to re-sync hand-maintained site content that duplicates queryable source-of-truth data: the homepage blog list (#1811), the Active Projects list (#1801, #1748, #1750), the Actions/Reusable-Workflows lists (#1798, #1800), and factual template-page details (#1812). Each is a "the hand-list drifted from reality" fix. #1811 proved the durable pattern β€” derive the list from the collection instead of hand-maintaining it.
Direction. Systematically apply the derive-or-drift-check pattern to the remaining hand-maintained lists/tables, and/or add a lightweight CI drift check that fails when a site list diverges from its live source (the submodule set, the actions/reusable-workflows inventories, template README ownership tables). Goal: site content cannot silently go stale between maintenance runs.
Size: M (incremental β€” one list/check at a time).

3. Investigate & document submodule worktree-isolation inconsistency

Problem. Per-session git-worktree isolation is inconsistent across the submodules: some (e.g. applications/ksail) support an isolated worktree add, while several others resolve a git worktree add into the shared .git/modules/<name> gitdir (stray core.worktree + extensions.worktreeConfig), forcing every task there into a throwaway /tmp clone or GitHub-API-only mode. This slows submodule work and is a recurring papercut for both the autonomous engineer and the maintainer's parallel interactive sessions.
Direction. Investigate the root-cause config divergence, document a repeatable fix (move the stray core.worktree out of the shared .git/modules/<name>/config, or set extensions.worktreeConfig + a per-worktree config.worktree correctly), and verify worktree isolation works uniformly across all submodules. Investigation-first; no big-bang config rewrite.
Size: S–M (diagnose first, then a small, verified config fix per affected submodule).

Out of scope / non-goals

  • No version-controlled status board (retired); the roadmap of record stays GitHub Issues.
  • Site visual redesign β€” not driven by evidence; excluded unless a concrete need appears.

Filed as the first monorepo/site strategy anchor. Decompose into shippable children over the coming cadence; convert to a roadmap-labelled epic once actions#253 makes the label canonical.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions