Skip to content

feat: bundle UI design catalog and shared project routing - #102

Merged
GQAdonis merged 4 commits into
mainfrom
codex/ui-ux-team-routing
Sep 26, 2026
Merged

GQAdonis merged 4 commits into
mainfrom
codex/ui-ux-team-routing

Conversation

@GQAdonis

@GQAdonis GQAdonis commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

UI tasks now share a context-first protocol and selectively load design, craft and platform guidance. Existing project teams become the default for code work through real manifests and native definitions.

  • Bundle a pinned 41-entry UI catalog with licenses, assets, compatibility records and adaptations. Forty entries form the portable mini subset; native Impeccable execution requires an explicitly configured preinstalled engine.
  • Add TypeScript 7/Node UI/UX Pro Max search, reasoning, design-system and persistence helpers, plus shared safe bootstrap/injector routing and creator install-project.
  • Preserve design authority, native permissions, proposal-only export and user-only skill restrictions. Publish the deferred Impeccable engine-port design as a separate document.
  • Refresh Claude/Codex distributions and reconcile current main.

Validation: full legacy/v4 bootstrap and injector passed; 50 pinned Pro Max comparisons and 19 persistence/package checks passed across both packs. All 41 UI skills passed strict validation (0 errors, 75 upstream-description warnings). Generated distribution check passes after merging main. Independent source and skill-contract review evidence is recorded.

Acceptance gaps: native Windows and full live-harness/installed-app coverage remain unverified. The deep-research review/export pipeline is not claimed complete. See docs/research/ui-ux-routing/DELIVERY.md and the open OpenSpec change for evidence and limitations.

Coordinate with the companion mini and The Boss PRs; this full-pack PR can merge independently.

Companion PRs: mini #3 and The Boss #4.

Add pinned UI skills, portable TypeScript helpers, full-only Impeccable engine integration, bootstrap routing and automatic project team adoption. Preserve native configurations and document deferred ports and acceptance gaps.

Assisted-by: Codex:GPT-6 [Node.js, Git, research tools]
Assisted-by: Codex:GPT-6 [Git]
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-26T05:49:44.882604Z 3ea2a87 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3ea2a87495

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -0,0 +1,55 @@
import fs from 'node:fs';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Commit bundled skill scripts as executable

The newly bundled runtime scripts, including this CLI and the Pro Max helpers, are committed with mode 100644, so installations do not preserve the repository-required executable script contract. Commit the files under skills/*/scripts/ with executable mode so packaged consumers can invoke them consistently.

AGENTS.md reference: AGENTS.md:L257-L262

Useful? React with 👍 / 👎.

Comment on lines +86 to +89
const id=crypto.createHash('sha256').update(changed.map(w=>w.file+w.content.toString('base64')).join('\n')).digest('hex').slice(0,16);
const backup=safeTarget(root,path.join(root,'.prometheus/recovery/uiux-'+id+'.json'));
fs.mkdirSync(path.dirname(backup),{recursive:true});
if(!fs.existsSync(backup))fs.writeFileSync(backup,JSON.stringify({schemaVersion:1,files:changed.map(w=>({path:path.relative(root,w.file),before:w.before?.toString('base64')??null,encoding:'base64'}))},null,2)+'\n');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include prior contents in recovery receipt identity

When the same catalog version is reinstalled after a user edits an installed skill, this ID is unchanged because it hashes only target paths and desired contents. Since an existing receipt is then retained, its before bytes may describe an earlier installation—often null—rather than the files being overwritten now, making the advertised recovery data destructive or unusable. Include each write's current before bytes in the receipt identity, as the team installer already does.

Useful? React with 👍 / 👎.

Comment on lines +90 to +94
for(const w of changed){
fs.mkdirSync(path.dirname(w.file),{recursive:true});
const temp=w.file+'.prometheus-'+crypto.randomBytes(6).toString('hex');
fs.writeFileSync(temp,w.content,{flag:'wx'}); fs.renameSync(temp,w.file);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Roll back earlier files when installation fails

If a later one of the hundreds of writes fails—for example because a destination becomes unwritable or storage is exhausted—the loop propagates the error without restoring files already renamed. This can leave the routing pointer installed while only part of its skill catalog exists, and the recovery receipt is not applied automatically. Track completed writes and restore their recorded before values in a catch path.

Useful? React with 👍 / 👎.

Comment on lines +40 to +42
uiux_args=(install --project "$project_path" --target "$target")
[[ "$dry_run" == "1" ]] && uiux_args+=(--dry-run)
exec node "$uiux_runtime" "${uiux_args[@]}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve refresh behavior for the UI routing pack

When --pack uiux-routing --refresh is requested, this early exec bypasses the refresh block below and never forwards the parsed refresh flag to the canonical installer. The command therefore exits successfully without probing sources or updating the UI roster dates, silently breaking the documented refresh operation for exactly this pack.

Useful? React with 👍 / 👎.

Preserve verbatim license evidence with a packaging preface and regenerate pinned catalog assets and portable distribution.

Assisted-by: Codex:GPT-6 [Node.js, Git]
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