Skip to content

feat(writ): repo add takes a repository URL — clone-and-register, one grammar - #353

Merged
David-Noble-at-work merged 1 commit into
developfrom
feat/writ-repo-remote
Aug 9, 2026
Merged

David-Noble-at-work merged 1 commit into
developfrom
feat/writ-repo-remote

Conversation

@David-Noble-at-work

Copy link
Copy Markdown
Contributor

Ruled 2026-08-09: writ repo add <layer> <working-tree-root>|<repository-url> [<working-tree-root>] — the URL form clones first (git-clone's own grammar and detection rules, --branch as the one flag), defaulting to the writ-owned home XDG_DATA_HOME/devlore/writ/repos/<layer>; a positional destination serves the edit-daily personal layer. After placement the repository is entirely the user's — no hidden git operations. The local form validates git-working-tree-ness at add time. The guide's VCS-agnostic fiction (false since snapshot pinning; carried unexamined through #352) is replaced by the honest git basis. Verified: suite green including real offline file:// clone tests, scenario green, board zero both GOOS. Plan: docs/plans/writ-repo-remote.md.

… grammar

The location operand is polymorphic (ruled 2026-08-09): a local
working-tree-root, or a repository URL that clones first — git-clone's
own grammar, with the optional trailing working-tree-root as the
destination and --branch as the one flag. URL detection is git's own
rule (schemes, scp-like, single-letter-is-a-drive). Without a
destination the clone lands in the writ-owned home
(XDG_DATA_HOME/devlore/writ/repos/<layer>); after placement the
repository is entirely the user's — no hidden git operations, ever.
The local form now validates git-working-tree-ness at add (deploy's
pin refuses non-repos anyway; failing early is kinder). The guide's
VCS-agnostic claim — false since pinning landed, and carried
unexamined through the #352 rewrite — is replaced by the honest git
basis. Tests: the URL-detection table, every malformed combination,
and real offline file:// clones into both destinations, with remove
proven to leave the clone untouched.
@David-Noble-at-work David-Noble-at-work self-assigned this Aug 9, 2026
@David-Noble-at-work
David-Noble-at-work merged commit 966aa5c into develop Aug 9, 2026
5 checks passed
@David-Noble-at-work
David-Noble-at-work deleted the feat/writ-repo-remote branch August 9, 2026 06:36
David-Noble-at-work added a commit that referenced this pull request Aug 9, 2026
…Rs (#355)

A plan committed inside its own PR predates the merge by construction,
so no completed plan recorded where it landed. Each of the five now
ends with the PR it landed as and the squash date:
implicit-common-project and git-crypt-pinning (#354), writ-repo-remote
(#353), writ-repo-command (#352), archive-root-confinement (#345).

Co-authored-by: David Noble <[email protected]>
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