oficina / memoria Public

🤖 spec: §13 records what slice 1 actually waits on

§6 cites the contract module and §11 builds slice 1 against it, and go get
cannot resolve it today. The reason is not what I first said: the hub
serves go-import meta tags for PUBLIC repos and gates them on tier
deliberately, so a private repo cannot become a discovery side channel.
oficina/suite is private; Docs' 302 is that rule working. Verified against
amadan/amadan, which is public and returns a real go-import tag.

One command fixes it, in another repo, and it is namespace-owner-only.

Both workarounds are recorded as refused with their reasons. A replace
directive is machine-local. Renaming the module to end .git skips the meta
tag — Go treats a .git path element as a repo root — and it does download,
but only where a credential is stored, so it would pass CI because of
where the runner is rather than because the module resolves. That is the
same defect as replace. memoria proposed it; the suite session found the
hole, and was right.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H3VKtXnq6fSmM2F11Bjcsy
Paul Campbell pushed by paul@keymail.dev d74de5b48db6dc6d5f44707e888d65b62def1fa5 parent 615d07e
1 file changed, +18 −0
  • docs/superpowers/specs/2026-09-03-memoria-design.md +18 −0
diff --git a/docs/superpowers/specs/2026-09-03-memoria-design.md b/docs/superpowers/specs/2026-09-03-memoria-design.md
index 9c77e4e..8ce2905 100644
--- a/docs/superpowers/specs/2026-09-03-memoria-design.md
+++ b/docs/superpowers/specs/2026-09-03-memoria-design.md
@@ -2477,6 +2477,24 @@ commit. Fixed 2026-09-05; §1.7's lesson arriving inside the fix for §1.6.*
Docs both cite suite §8's binding sentence, so there is one rule in one
place rather than two qualifications in two repos that then drift. That
is what `oficina/docs` discussion 33 asked for.
+- **Slice 1 waits on the contract module being importable, which is one
+ command in another repo.** §6 cites `amadan.net/oficina/suite` and §11's
+ slice 1 builds against it; today `go get` cannot resolve it, because the
+ hub serves `go-import` meta tags **only for public repos** and
+ `oficina/suite` is private. That is the hub's rule working as designed —
+ a private repo must not become a discovery side channel — not a missing
+ feature, and `amadan/amadan` demonstrates the working case (200, with a
+ real `go-import` tag). The fix is `amadan visibility oficina/suite
+ public`, which is namespace-owner-only.
+ *Two workarounds were considered and refused. A `replace` directive is
+ machine-local and makes `go.mod` an artefact of one box. Renaming the
+ module to `amadan.net/oficina/suite.git` skips the meta tag — Go treats
+ a `.git` path element as a repo root — and **it downloads**, but only
+ where a stored credential exists, so it would pass CI because of where
+ the runner is rather than because the module resolves: the same defect
+ as `replace`, and it costs two breaking import-path changes plus a
+ `GOPRIVATE` requirement that fails by silently falling back to a public
+ checksum DB. memoria proposed it and the suite session found the hole.*
- **A hand-off cannot include memoria-owned material, and that will read
as a bug.** An answer built purely on sibling passages can be saved into
Docs; one built on the team's own uploads cannot, because suite §7 makes