The Claude Code setup becomes a thin layer over the shared user-level set (#1037) #1038
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/global-tooling-wrappers"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Do not merge yet. It depends on the global set in Rhoving/iac-repo#586 being merged and synced to the machine a session runs on, and nothing here has run in a real session. It should stay open until
/qb-verifyhas run end to end through the wrappers.What changes
CLAUDE.mdgains a## Project profile(the last section): the test recipes that were inqb-test, the Quest Board preflight items, release and version-sync facts, the dev deploy facts, thecontractandfrontendreview dimensions, security invariants and UI settings. Each value names the file it came from.qb-test→run-tests,qb-ci-log→ci-log,qb-preflight→preflight,qb-deploy-dev→dev-server(with a four-item Quest Board addendum).qb-renderkeeps the app-specific recipes (prototype pages in headless Edge, the journeys stack) and forks to the globalrender-checkagent.qb-test-runner,qb-ci-triage,qb-preflight,qb-render-check.qb-implementerandqb-frontendstay.qb-verify→verify;qb-review→review-branchplus the two Quest Board dimensions;qb-build-slice→build-slicewithqb-implementer,qb-frontendfor frontend tasks, and the same two dimensions.changelog.d/fragment, asCLAUDE.mdalready required.docker-test;ai-dev-serverwas the old alias for the same machine.Behaviour that differs from before
qb-build-sliceno longer checks out the branch: the caller must already be on it.maxFixRoundsis fixed at 1 (the old default) and a different value is logged as ignored.SUITE <name>: PASS|FAIL|ENV, up to 15 lines of the first failure). The runner no longer tries to fix the environment; it reportsENV.qb-verifyruns the profile'sdefault suites(lint, checks, backend, bot, frontend), which is what it ran before.Checked
scripts/changelog.py checkpasses with the new fragment.Not checked: no recipe in the profile was executed; they were transcribed from the old skill and compared with
ci.ymland theMakefile.Open questions in the profile (
TODO(ask))mainprotected?python -m evals.synthetic_session verifycount as a generated-artifact check?CHANGELOG.md?quest-board; unconfirmed on the host).Closes #1037 when merged.
🤖 Generated with Claude Code
Exercised through the wrappers on 2026-10-02 (from
claude-dev, suites ondocker-test)Both conditions in the description are now met: Rhoving/iac-repo#586 is merged and the global set is synced on
claude-dev, and/qb-verifyhas run end to end through the wrappers. Four defects turned up and are fixed on the branch (commits96ee8069,483f397d,ed8e91fc, then a merge of main).What was wrong
qb-verify.jsandqb-build-slice.jsdid not parse.whenToUsewas a single-quoted string containing "the profile's default suites", so the apostrophe ended it. Neither workflow could start. All six workflow scripts (three wrappers, three global) now pass a syntax check.Deploy.healthcould never answer.curl http://localhost:8000/readyon the dev host returns nothing: the backend's port 8000 is not published there (only the frontend is, on 18081). Carried over from the oldqb-deploy-devskill. It now runs the compose healthcheck's own probe inside the backend container, which printed{"status":"ok"}.Deploy.compose projectwas a TODO, and the globaldev-serverskill stops when that key is missing, so/qb-deploy-devwould have stopped at once. It isquest-board(fromdocker compose lson the host).frontendrecipe did not mount the backend's sheet files. The lane 11 sheet tests readwebapp/backend/app/sheetsby the repository layout (/backend/app/sheetsfrom/app); the recipe mounted onlywebapp/frontend, so about 130 of them failed with a missing file. This is true of theqb-testskill on main today as well. The recipe now mounts the sheets read-only.What was added
local-dockerin PowerShell, andclaude-devhas no Docker, so every suite would have beenENVthere. The profile now says how the same commands run ondocker-testfrom a work directory.node_modulesvolume. I removed both by name; nothing from these runs is left on the host.Results
/qb-verify(default suites + preflight), first full runfrontendrecipe run alone by hand with the sheets mount/qb-verifywith{suites: ["frontend"], preflight: false}after the fix and the merge of main/qb-ci-log 1034A single
/qb-verifyrun with every default suite green at once has not been seen: the full run had frontend red, and only frontend was re-run after the fix.Not exercised
/qb-reviewand/qb-build-slice: read and syntax-checked only. Their arguments match what the globalreview-branchandbuild-sliceaccept, and neither global workflow callsworkflow()itself, so the one-level nesting limit is not hit. Neither was run./qb-deploy-dev: not run (it changes the dev stack). Its profile values were checked read-only against the host: dev path, compose project, health, version probe (prints 4.4.1)./qb-render: not run.frontendrecipe (--name, the second-v) are untested there.Still open in the profile
The remaining
TODO(ask)lines are the owner's to answer: required checks (the branch protection API refusesclaude-bot), how a prerelease is recorded in the changelog, whether production ever pulls images, a version endpoint, the generated-artifact question, and the UI questions (dev URL, tablet viewport, key routes).The red CI job on the earlier head
Not this PR:
Preview.test.jsxis a flaky test (#1039, fixed in PR #1041). It may turn this push's run red too until #1041 is on main.WIP: the Claude Code setup becomes a thin layer over the shared user-level set (#1037)to The Claude Code setup becomes a thin layer over the shared user-level set (#1037)