Skip to content

chore(repo): sandcastle-hub → ctrlshft-hub (tooling, templates, ADR) - #341

Merged
arndvs merged 9 commits into
mainfrom
dev
Sep 1, 2026
Merged

chore(repo): sandcastle-hub → ctrlshft-hub (tooling, templates, ADR)#341
arndvs merged 9 commits into
mainfrom
dev

Conversation

@arndvs

@arndvs arndvs commented Sep 1, 2026

Copy link
Copy Markdown
Owner

The hub repo is now arndvs/ctrlshft-hub. Update the producer:

  • workflow templates (15) + .github/workflows
  • bin tooling (init bootstrap, preflight, sync-hub path, update deprecation)
  • AGENTS/CONTEXT/README/CHANGELOG, docs/ARCHITECTURE
  • ADR-008 renamed → ADR-008-ctrlshft-hub.md (title + refs)

Archive docs left as historical records. Consumer scan verified.

@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ctrlshft Ready Ready Preview Sep 1, 2026 8:57pm UTC

Request Review

Update lastPinnedSha from be7eae4 to c129783 to clear SHA drift.

Note: pre-commit smoke-coverage test is stale against the hub model
(pre-existing failure, unrelated to this pin change).
…ling merge

Five-slice plan (S1-S5) for the gaps discovered while syncing the
smoke-coverage fix:

S1: rebuild hub templates/workflows as thin hub stubs (11/12 still vendored)
S2: add hub QA gate (test/hub-smoke-coverage.sh)
S3: mirror hub templates to producer shft/templates
S4: 3-way merge bin/ctrl, preflight-sandcastle.sh, bootstrap.sh (public +
    dotfiles diverged)
S5: bidirectional hub sync tooling

Also fixes the promotion-relevant note: main PRs must come from dev directly
(validate-main-pr-source.sh requires head == dev).
Resolves the cross-repo divergence between public and dotfiles for the three
shared tooling files, and adds the hub<->producer template sync tool:

- bin/ctrl: keep public's newer infra (working/runtime paths, bridge
  single-worker lock, skills-lock provenance, worktree command); merge in
  dotfiles' hub-model update-sandcastle deprecation routing + help text.
- bin/preflight-sandcastle.sh: adopt dotfiles' hub-model version (checks
  .sandcastle/hub-version.json, hub reachability, hub SHA drift instead of
  vendored engine typecheck/test); includes the permissions-block regex fix
  (top-level OR job-level).
- bin/bootstrap.sh: public version was already authoritative (runtime paths,
  _local skills, ADR-001 _vendor message); no change needed here.
- bin/sync-hub-templates.sh: new — copies hub templates/workflows to producer
  shft/templates for the 14 shared names; --check parity gate exits non-zero
  on drift. Wired into ctrl as sync-hub-templates.
- plans/hub-model-cleanup-plan.md: fix .sandcastle/engine typo.

All producer sandcastle suites green: smoke-coverage 35, init 26,
report-smoke 15, ownership 5, canary 5. Hub parity: 14/14 in sync.
Six-slice plan (S1-S6) turning the TAC-1 prime draft into a working
multi-root task-priming system:

S1: publish canonical WORKSPACE_INVARIANTS.md (resolve CONTESTED rows)
S2: ship seams/ docs (public-pullback, vendor-sandcastle, ownership-test)
S3: build bin/prime.sh + ctrl prime command
S4: per-root AGENTS.md (public, hub, copilot, dotfiles)
S5: workspace-prime skill wrapper
S6: prime smoke test + regression gate

Built on existing guards (check-public-drift, validate-remotes,
validate-public-promotion) rather than re-implementing them.
Four-slice plan (SYNC-1..4) for the residual drift between public and
dotfiles after the hub migration:

SYNC-1: delete dead engine trees from dotfiles (shft/engine,
        .sandcastle/engine, .sandcastle/scripts) — hub owns the engine now
SYNC-2: pullback real product drift (hook tests + extended test-helpers,
        check-workflow-enabled.sh, pipeline-label-data label map)
SYNC-3: update the check-public-drift allowlist to drop removed engine
        paths (stale entries cause permanent phantom drift red)
SYNC-4: end-to-end gate — sync-hub-templates parity, smoke suites, prime,
        init-sandcastle on a tree with no vendored engine

Built on the public-pullback seam (Direction A + scratch branch) and the
existing drift guard — no guard reimplementation.
Executes the public-docs-cleanup plan (DOCS-1..TRIM-5):

DOCS-1: archive 5 completed plans (sandcastle-hub, sandcastle-hub-dogfood,
        hub-model-cleanup, workspace-prime, drift-remediation) to
        plans/archive/ with an 'Archived — implemented' banner.
CLEAN-2: move working/saas-starter-lift-plan.md + working/active/
        sandcastle-loose-ends.md to plans/archive/ (both implemented);
        working/ lanes now clean.
FIX-3: correct factual docs — CONTEXT.md no longer claims the repo
        'intentionally vendors' the engine (hub model now); ARCHITECTURE.md
        ADR index extended to ADR-008; shft/README.md rewritten from the
        vendored-engine model to the hub stub + SHA-lock model.
DEAD-4: delete docs/qa/dogfood-baseline.md stub; archive superseded
        sandcastle-hub-architecture.md, research/sandcastle-extraction.md,
        audits/readme-site-deep-audit.md to docs/archive/.
TRIM-5: remove the 4th duplicate fork+clone+bootstrap block from README
        top; README now has a single quick-start pointer + 3 setup variants.

Public is canonical; dotfiles pulls back after.
Update lastPinnedSha to the current hub main SHA to resolve the dev->main
promotion conflict (main had pinned c129783, dev had ab343c4).
GitHub Copilot no longer supports claude-opus-4-6. Updated sandcastle.config.json
and init-sandcastle.sh to use claude-opus-4-7 (available on GitHub Copilot and
OpenRouter).

This config is inherited by all consumer repos, which is why the overnight batch
of 21 workflow failures were all using the unsupported model.

Pairs with sandcastle-hub fix that updated the engine default model.
The hub repo is now arndvs/ctrlshft-hub. Update the producer:
- workflow templates (15) + .github/workflows
- bin tooling (init-sandcastle bootstrap action, preflight hub checks,
  sync-hub-templates HUB path, update-sandcastle deprecation copy)
- AGENTS/CONTEXT/README/CHANGELOG + docs/ARCHITECTURE
- ADR-008 renamed ADR-008-sandcastle-hub.md → ADR-008-ctrlshft-hub.md
  (title + all filename refs in active docs)
- Archive docs (sandcastle-hub-dogfood-plan etc.) left as historical
  records with names preserved.

Consumer scan verified: ctrlshft-hub classified hub, consumers hub-model.
@arndvs
arndvs merged commit d9d89a7 into main Sep 1, 2026
8 checks passed
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