feat(sync): Phase 1 porter workflow + enriched icon/color maps - #67
feat(sync): Phase 1 porter workflow + enriched icon/color maps#67IgorShevchik wants to merge 2 commits into
Conversation
- .github/workflows/sync-porter.yml: manual (workflow_dispatch) porter that ports ONE nuxt/ui commit via Claude, with SHA validation, untrusted-diff isolation, a src/-only scope guard, a v-html security gate, no-op detection, the full ci gate chain, and PR creation. Experimental; needs ANTHROPIC_API_KEY; does not advance the cursor. - icon-map.json: grounded literal lucide -> b24-icons map (verified against src/runtime/dictionary/icons.ts). - color-map.json: nuxt tokens -> air-* (verified against src/theme). - PORTING.md: document that the semantic icons.<key> interface is shared, so most icon references port 1:1 and the map is only for hardcoded literals.
Switch the porter's Claude auth from anthropic_api_key to claude_code_oauth_token (Pro/Max subscription, via `claude setup-token`), and add a max_turns workflow input so trial runs can be capped lower.
|
Closing: the sync is manual by decision, so Recording what is in this branch that the workflow file is not, so it is not lost:
Items 1 and 2 are not carried over yet. Those values were written in June against an older The branch stays, so nothing here is unrecoverable. Generated by Claude Code |
Summary
Phase 1 of the nuxt/ui → b24ui sync pipeline (see
.sync/PLAN.md). Adds the manual porter workflow plus the maps it relies on. Nothing runs automatically — the workflow isworkflow_dispatchonly and does not advance the ledger cursor.What's included
.github/workflows/sync-porter.yml— ports ONE upstream commit:^[0-9a-f]{40}$).sync/nuxt-<short>offmain(deletes any abandoned branch first).anthropics/claude-code-action@v1) — it reads.sync/PORTING.md(rules) and the untrusted diff file, and reproduces the change undersrc/only. Tools limited toRead,Edit,Write,Grep,Glob(no Bash → it can't run git/secrets).src//test//.sync/log/changed.v-html/innerHTML→security-review-requiredlabel..sync/log/<sha>.mdinstead.ci.ymlorder:dev:prepare → lint → typecheck → test run -u → test run → build.Upstream: nuxt/ui@<sha>trailer) and open a PR labellednuxt-syncwith an<!-- upstream-sha -->footer.Maps (now grounded, not stubs):
icon-map.json— 33 literali-lucide-*→b24-iconsentries, verified againstsrc/runtime/dictionary/icons.ts.color-map.json— nuxt tokens →air-*, verified againstsrc/theme/*.ts.PORTING.md— documents the key insight: b24ui shares nuxt/ui's semantic icon keys (icons.chevronDown, …), so most icon references port 1:1; the map is only the fallback for hardcoded literals.Before this can actually run (blockers)
ANTHROPIC_API_KEYsecret to the repo.PORTING.mdfrom the results. The workflow is intentionally experimental until then.permissions:).Out of scope
https://claude.ai/code/session_01Qz7EXMncvEGiCj4WbmYgJo
Generated by Claude Code