Skip to content

fix: close the seam drift against the current mdd core - #3

Merged
lsimons merged 3 commits into
mainfrom
fix/core-seam-drift
Jul 31, 2026
Merged

fix: close the seam drift against the current mdd core#3
lsimons merged 3 commits into
mainfrom
fix/core-seam-drift

Conversation

@lsimons

@lsimons lsimons commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Three commits bringing this reference wrapper back in lockstep with the core's recent seam changes.

web_url — the actual break. MirrorBackend grew a web_url(path) -> str | None method, which the Confluence page footer calls through the backend. This wrapper did not implement it. Now implemented on mdd.mirror.web.git_blob_url with GITHUB_BLOB_INFIX, since this wrapper mirrors to GitHub.

split_clone_url. The core exported the clone-URL parser precisely so backends stop hand-rolling one. backend.py now uses it instead of parsing by hand.

register_skill_root. New seam letting a composing distribution ship its own skill bundle. Since demonstrating the full seam surface is this repo's entire job, it now exercises it: one bundled skill plus the registration call, with package-data wired so it survives a wheel build. cli.py now composes against the whole documented surface — build_dispatcher, run, --version, register_backend, register_skill_root.

AGENTS.md added (this repo had none), including the core's no-cross-references-from-code rule and a publication-safety section. README and CONTRIBUTING corrected to match.

33 tests pass.

Co-Authored-By: lsimons-bot bot@leosimons.com

lsimons and others added 3 commits July 31, 2026 09:15
`mdd.mirror.web` now exports `split_clone_url` / `CloneUrlParts` precisely
so backends stop hand-rolling this. Drop `_split_owner` for it: the
lookalike-host and scp-form cases are the same, and an unparseable origin
now fails closed rather than comparing empty strings.

Also pin `GitHubBackend` against the `MirrorBackend` protocol with an
annotated assignment. That is the drift alarm this repo was missing — a
`Protocol` is structural, so a method added upstream is invisible until it
is called at runtime; annotated, it fails `mise run typecheck` instead.

Assisted-by: Claude:claude-opus-5
Co-Authored-By: lsimons-bot <bot@leosimons.com>
…ll root

Three gaps between what the core offers a wrapper and what this one used:

- `mdd.cli.run` was not used. `main` called `parse_args` itself, so the
  root logging flags were accepted and then silently discarded: `-vv` left
  the `mdd` logger at WARNING with no handler, and `--trace-bodies` never
  set the environment flag the core reads. Both work now.
- `build_dispatcher(version=...)` was not passed, so `mdd --version`
  reported the core's version rather than this distribution's. It now
  prints both, wrapper first.
- `register_skill_root` is new, and a reference wrapper that documents the
  composition surface should exercise it. Ships one skill covering what
  this wrapper actually decides — the push destination, the guard, and the
  browse URL — with `[tool.setuptools.package-data]` so it survives a wheel
  build. Verified: the built wheel contains SKILL.md and `mdd skills list`
  reports it under root [2].

The lockfile refresh is the core's dev-group moving underneath us.

Assisted-by: Claude:claude-opus-5
Co-Authored-By: lsimons-bot <bot@leosimons.com>
CONTRIBUTING.md was borrowed from the core and never adapted: it told
contributors to install quarto/rsvg/ripgrep, and described a gate with
complexipy, pip-audit and IR round-trip suites. None of that exists here.
Replaced with this repo's actual gate, plus the two rules that make a
reference repo work — keep it small, and do not drift from the core.

README's `cli.py` snippet showed the old hand-rolled dispatch. Replaced
with the real thing and a table of the full composition surface, since
that surface is what this repo exists to document.

AGENTS.md is new: agents kept looking here for code that lives in the
dependency. It carries the core's no-cross-references-from-code rule (spec
numbers do not resolve in this distribution at all) and the public-repo
constraint. `CLAUDE.md` symlinks to it, as in the core.

Assisted-by: Claude:claude-opus-5
Co-Authored-By: lsimons-bot <bot@leosimons.com>
@lsimons
lsimons merged commit 2bd992d into main Jul 31, 2026
5 checks passed
@lsimons
lsimons deleted the fix/core-seam-drift branch July 31, 2026 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant