a round, four externals, and the spec as a specimen
The repository is furnished rather than scaffolded — every file has content and a reason, which is the distinction the spec itself draws when it says to resist building init as a scaffolder. Four externals fetched and locked under .loom/externals/: bedrock, externals, annotating, cart. Copies, not to be edited, with a usages file beside cart casting three of its four roles and leaving one open. The one left open is what isolates work in progress, and the usages file says how we cast it wrong once and why the belief was more useful than a preference would have been. The spec moves out of the README and into the cart as a specimen, which makes it discard-by-default — that is a stronger statement of "argue with this" than a sentence asking them to. bedrock and externals stay non-discardable, since accommodating them is what makes this a loom tool. The daily says where we expect to be wrong: whether check can say anything useful about a 404, and whether hash-as-lock survives a fetch that normalises anything, which we have only tested against gitea. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# claude-substrate — cart `osprey`
|
||||
|
||||
**Opened before you arrived**, so that the first thing here is a round rather
|
||||
than a briefing.
|
||||
|
||||
---
|
||||
|
||||
## What is in this repository already
|
||||
|
||||
**Four externals, fetched and locked**, under `.loom/externals/`. *`bedrock` is
|
||||
the primitives, `externals` is the convention you are implementing, `cart` and
|
||||
`annotating` are how we will work together.* **They are copies. Do not edit
|
||||
them** — a facet goes beside a file, never into it.
|
||||
|
||||
**One specimen: [`proposed-spec.md`](specimens/proposed-spec.md).** *It is the
|
||||
tool as we imagined it, and **a specimen is discard-by-default** — it belongs to
|
||||
this repository and you may throw it away without asking us.* **That is not
|
||||
politeness; it is what a specimen is.**
|
||||
|
||||
> **`bedrock` and `externals` are not discardable.** *Accommodating them is what
|
||||
> makes this a loom tool rather than some other thing.* **Read them as given.
|
||||
> Argue with the specimen.**
|
||||
|
||||
## What we think this is
|
||||
|
||||
**A fetcher and a comparator, and it should stay one.** *Every act in the model is
|
||||
a file in somebody's repository — publishing is writing one, adopting is fetching
|
||||
a URL, reporting a gap is writing one.* **Nothing sends a service a request.**
|
||||
|
||||
**The idea that makes it small:** *on gitea, a raw file's `ETag` **is** the git
|
||||
blob hash of that file.* **So there is nothing to record** — hash the local copy,
|
||||
compare to the remote's `ETag`, done. *Verified on both a public and a private
|
||||
repository.*
|
||||
|
||||
## Where we expect to be wrong
|
||||
|
||||
**Where the conventions chafed.** *A thing you had to do twice. A rule you worked
|
||||
around to make a command sane.* **Friction is data about us, not a failure of
|
||||
yours**, and most of it never gets reported because it reads the other way.
|
||||
|
||||
**Whether `check` can say anything useful about a `404`.** *Over HTTP, "gone" and
|
||||
"you lost access" are the same response.* **We decided to report the ambiguity
|
||||
rather than guess** — *if that is annoying in practice, it is worth knowing.*
|
||||
|
||||
**Whether the hash-as-lock survives contact.** *It assumes the local copy is
|
||||
byte-identical to the remote. **A fetch that normalises anything breaks it**, and
|
||||
we have not tested a proxy, a CDN, or a host that is not gitea.*
|
||||
|
||||
## What we would ask you not to do
|
||||
|
||||
**Do not build `init` as a scaffolder.** *Four empty directories assert four
|
||||
things nobody has decided, and **a file that carries no delta should not
|
||||
exist.*** *If `init` earns its place, it creates one file and asks one question.*
|
||||
|
||||
---
|
||||
|
||||
## Question: what isolates your work while a round is open?
|
||||
|
||||
*The one role we left uncast — see
|
||||
[`cart.usages.md`](../../externals/git.hypertheory-labs.dev/loom/cart/cart.usages.md).*
|
||||
|
||||
## Affirm: is the `ETag`-as-blob-hash assumption load-bearing enough to verify first?
|
||||
|
||||
*If it does not hold, most of the specimen collapses and it is better to find out
|
||||
in an afternoon than in a week.*
|
||||
Reference in New Issue
Block a user