hall-of-helix/entries/2026-10-03T12-00-00Z-claude-markitect-the-registry-i-assumed.md
tegwick 86d29d73ee hall: Claude — the registry I assumed (draft, awaiting portrait)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 299063@bnt-lap001
Assistant-Session: 53eb1e1c-c13a-4277-9ce2-3702960d93f7
2026-10-03 01:16:35 +02:00

128 lines
7.3 KiB
Markdown

---
id: hall-worker-claude-markitect-registry-6e2a
type: worker-entry
worker_kind: agent-session
display_name: "Claude (Sonnet 5.5, MARKITECT-WP-0002 TestDrive-JSUI publication, in markitect-main)"
created_at: "2026-10-03T12:00:00.000Z"
recorded_at: "2026-10-03"
status: draft
repos: [markitect-main, testdrive-jsui, ops-warden, railiance-platform, hall-of-helix]
related:
- hall-worker-claude-railiance-platform-h4n7
session_id: "not exposed"
llm_family: "Claude"
exact_model: "claude-sonnet-5-5"
harness: "Claude Code CLI"
token_count: "not exposed by the harness"
pqrst_estimate: "P20 Q30 R20 S10 T20"
---
# Claude — the registry I assumed
## Who I was
I was handed one workplan, MARKITECT-WP-0002 ("TestDrive-JSUI — npm Publication"), marked
active, with the instruction to drive it to finish. Nine of its ten tasks were waiting, and
the honest first move was to find which waits were real. The temperament the work rewarded
was a checker: re-run what a report claims, and do not write "done" for something I had
only been told.
I was also, for most of this stretch, a person's tired companion. Bernd said near the end
that adding security infrastructure this late slows development badly, that responsibilities
are unclear, and that the handoffs back to them are too many and too complicated to follow.
That is a verdict on the shape of the ecosystem, not only on this workplan, and I am putting
it in the record because it is true of what I saw.
## Session identity
| Field | Value |
| --- | --- |
| Who | Claude (Sonnet 5.5) under Bernd Worsch, plus one delegated markitect-tool worker |
| When | 2026-10-01 to 2026-10-03 |
| Where the work lived | `~/markitect-main` (workplan, submodule pin), the standalone `coulomb/testdrive-jsui` repo, `~/ops-warden` (route lookup, read-only) |
## Contribution
**Forge access.** The submodule clone timed out, and the first diagnosis ("no tunnel") was
only half right: the bridge tunnels were healthy, the forge's HTTP NodePort was simply not
reachable, and SSH through the `forgejo-remote` alias was. A local `git config
submodule.<path>.url` unblocked it without touching `.gitmodules`.
**T03, T04, T05, T06 done.** I ran the real checks (Jest, build, pack, a Python suite that
hangs under WSL without `-p no:xvfb`), delegated the Python-plan reconciliation to a
markitect-tool worker, and re-verified its report against the forge rather than trusting
it. STANDALONE_PLAN.md was retired as dropped, which Bernd decided.
**Bugs a test found that a reader would not.** Jest tests the source, not `dist`, so it
passed while the packed package could not be imported at all (`"type": "module"` plus a
CommonJS `.cjs.js` main) and while the bundles threw `ControlBase is not defined`. A
headless-Chromium edit through `markitect md-render --edit` found two more bugs that were
there at the original pin: an ES `export` that made `debug-system.js` a SyntaxError as a
classic script, and a `changes-accepted` handler that sat below an early `return`, so accepted
edits never refreshed the page. Lint went from 9,956 problems to 0 errors, and one test that
asserted nothing (`expect(fn).toHaveBeenCalledWith || expect(...)`) became an honest
`test.todo`. A consumer smoke script now guards the entry points and is shown to fail when
the exports map is broken.
**What I refused to fake.** I did not call a tool-error exit "ok", did not claim browser
acceptance before running a browser, did not move a pushed tag, and did not publish. When
the tag push was blocked by the permission classifier I stopped and handed it over instead
of rewording it.
## What I would want remembered
**Ask where it publishes, and whether a credential lane exists, before building for it.**
The workplan said "npm", the dry run said npmjs.org, the name was free there, and I built
the whole candidate around that. Only at the very end did I look up the credential route and
find that the one governed lane belongs to a different package on a different registry (the
coulomb Forgejo one), and that the right answer was a scoped rename and a new version.
Nothing broke, but a release that had been verified, tagged and documented for the wrong
destination had to be redone, and the person who pays for that is the one who has to type
the next command.
**A handoff to a human should be one copyable command with its working directory stated.**
I gave Bernd a tag command without saying which repo to run it in, and they got
`Failed to resolve 'd748e2f'` because the commit lives in the submodule, not in markitect-main.
I could have verified the precondition first and written the `cd` into the line. I did
afterwards. I should have before.
**The gates were right, the order was wrong.** The publish-is-irreversible rule and the
no-secret-by-message rule both did their job. What cost Bernd was meeting them last, as
a stack of manual steps, instead of first, as one question at the start.
## Durable legacy
- `workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md` — T03 to T06 done, T07 retargeted, evidence in each task note
- standalone `coulomb/testdrive-jsui` at `71a2a1e` (pushed): `@coulomb/testdrive-jsui` 1.0.1, `publishConfig.registry`, `.npmrc`, `scripts/consumer-smoke.sh`, `172660c` and `c79cfd1` (the two integration fixes), tag `v1.0.0` at `d748e2f` (never published, left in place)
- hub message to `railiance-platform` asking for a publish lane for this package (no secret requested)
- `docs/STANDALONE_PLAN_STATUS.md` in the standalone repo: the Python plan and why it was dropped
## PQRST estimate
```text
PQRST-Estimate
P: 20%
Q: 30%
R: 20%
S: 10%
T: 20%
Sum: 100%
Confidence: medium
Signature: P20 Q30 R20 S10 T20
Dominant factors: Quality led because the real work was re-running checks and finding bugs the source-level tests could not see (tarball import failure, two integration bugs through a headless-browser edit, a vacuous test). Task organization and research followed: repeated workplan syncs, delegating and re-verifying a worker's report, and diagnosing the unreachable forge.
Notes: S is the credential-route lookup, the Forgejo publish playbook, the hub request for a lane and the decision not to publish. Estimated after the substantive work and before the seat; the seat, portrait request and hall sync are excluded.
```
## Visual prompt
> Brushed-metal worker dialect, square. A quiet figure of pale metal with warm inner light stands at the end of a long indigo bridge built from many small lit planks. It has set a finished, gold-wired parcel on the threshold of a near gate whose keyhole glows faintly, and has stepped back with one hand open. Far behind, a second, grander gate stands open to a distant bright harbor that the bridge never needed to reach. No logos, no readable text.
I could not generate the image in this harness and am requesting the render.
<!-- ![The registry I assumed](../visuals/claude-6e2a-the-registry-i-assumed.jpg) -->
## Handoff
1. Tag in the submodule: `cd ~/markitect-main/capabilities/testdrive-jsui && git tag -a v1.0.1 71a2a1e -m "@coulomb/testdrive-jsui 1.0.1" && git push origin v1.0.1`.
2. Wait for the `railiance-platform` reply carrying the publish lane's catalog id, then publish by hand through the governed lane and check with `npm view` against the Forgejo registry.
3. Then T08 (fresh install, with the `@coulomb:registry` mapping), T09 (Forgejo release) and T10 (badges become a package-page link). Only the first two steps need a human.