Skip to content

Independent design prototype repository

Status: Current | Last reviewed: 2026-10-06

Deloitte-US/agent-studio-design is a private, independently versioned repository embedded at studio/design as a Git submodule. The framework tracks its URL and a commit ID, not a second copy of its files. Designers can clone that repo alone and use its root npm install / npm run dev commands (port 3100).

The production source remains apps/ai-manager. The submodule contains the standalone export, including the same live UI components, mock APIs, shared package tarballs and designer coaching in its own root CLAUDE.md. No running production service or Docker build depends on checking it out.

The 2026-09-10 refresh resolves the initial Build draft / Open draft mock gap. All four types can build and open local sample drafts, labelled as simulated. Proposed responsibilities are not compiled and Performance records are not saved or executed. The designer repository's apps/ai-manager/docs/prototype-design-decisions.md records this contract and its limits. Eight prototype browser tests, the default 30-second browser test, typecheck, changed-source lint and two timing unit tests pass. ESLint excludes .next-prototype/ build output so npm run lint remains scoped to source after the standalone dev server has run. Full source lint at initialization reported four react-hooks/refs errors in the existing Pipeline/Workflow Yjs bridges; the designer README records those separately from the submodule workflow checks.

October 2026 branch consolidation

The local integration/vanguard-design-20261006 branch combines refreshed main, Lynn's work, Lisa's prototype updates and the older expanded-mock branch. The framework-sync baseline is already common ancestry. The production import favors designer layout and interaction choices, adapting real API contracts and retaining the legacy Performance page only by direct URL per the product decision. See the integration record for conflict resolutions, backend additions and preserved controls. This focused import does not export unrelated in-progress Vanguard work into the prototype. The local design main and framework submodule reference now point to 6c4bc3b; the consolidated history has not been pushed to the remote designer repository.

Designer autonomy and commit-time handoff

The prototype's root CLAUDE.md and AGENTS.md authorize the designer's requested visual and behavioral changes. Existing capabilities, required inputs and copied technical invariants are implementation references, not design vetoes. Agents may implement proposed interactions with local mocks without engineering signoff.

When preparing a commit, the agent updates apps/ai-manager/docs/design-change-log.md in the designer repository with the change, potential production impact, engineering follow-up and checks performed. Include the file with the commit. Unknown impact, missing backend work and failing checks are recorded, not used to block prototype work or commits. Detailed contracts can link to prototype-design-decisions.md; small visual changes need only a short note. No blocking pre-commit hook is installed.

Update the framework's prototype/designer-claude.md and the AGENTS.md text in prototype/scripts/export-repo.sh when changing policy, as well as the current standalone guides. This keeps future exports from restoring stricter instructions. The normal production validation and documentation requirements apply when importing the changes into apps/ai-manager.

Set up or update the checkout

From the framework root:

git submodule update --init studio/design
git -C studio/design switch main

The first command checks out the revision pinned by the framework, initially with a detached HEAD. Switch to a branch before making prototype changes. Access to the private prototype repo is required separately from framework access. A normal framework clone does not need --recurse-submodules.

To take the latest published designer work and update the framework's pointer:

git -C studio/design switch main
git -C studio/design pull --ff-only
git add studio/design

Review and commit that pointer in the framework as part of the relevant change. Ordinary git pull of the framework does not merge or publish designer work.

Two histories and two commits

main in the prototype repo carries designer changes. framework-sync is the last plain framework export; do not author design changes directly on it.

git -C studio/design status
git -C studio/design add <changed-files>
git -C studio/design commit -m "Describe the design change"
git -C studio/design push origin main
git add studio/design

Push the prototype commit before committing/pushing its new pointer in the framework. Do not commit the nested files as ordinary framework files. The framework records .gitmodules and the 160000 gitlink at studio/design.

Merge another designer branch

Fetch the nested repository's remote and inspect the intended branch before merging. Preserve local work in a checkpoint commit (with its change-log entry) or a named stash, then merge using Git's shared history:

git -C studio/design fetch origin --prune
git -C studio/design log --oneline main..origin/feature/lynn-wip
git -C studio/design merge --no-ff --no-commit origin/feature/lynn-wip

Reconcile overlapping design edits, record any capability/contract changes in the local log and run checks appropriate to the merged result before completing the merge commit. Record known failures rather than requiring a designer waiver. Do not replace the checkout with a fresh export or discard local work. A local merge does not push either repository or update production source automatically.

Bring core-app updates into the prototype

Commit/preserve designer work and pull its latest main first. Then run:

bash apps/ai-manager/prototype/scripts/sync-design-repo.sh
bash apps/ai-manager/prototype/scripts/sync-design-repo.sh --apply

The first command previews the current working-tree export delta. --apply commits it locally on framework-sync, then merges it into the prototype's main. This is a three-way Git merge against the previous export, preserving independent designer edits and surfacing genuine conflicts. It never mirrors the export directly over the designer checkout and never pushes either repo.

The helper requires a clean submodule on main, refreshes remote refs and refuses to proceed when newer designer commits or a prior sync merge remain unintegrated. It uses git, Node.js, tar and rsync. Temporary worktrees are removed after the operation. Resolve any merge conflicts inside studio/design and commit, or use git -C studio/design merge --abort to return to the prior main. The new framework-sync commit remains available to merge later.

After reviewing and testing:

git -C studio/design push origin main framework-sync
git add studio/design

Record the published pointer in the core change. The source snapshot includes uncommitted framework app changes, just like the ZIP exporter; review what belongs in a designer handoff before publishing it.

Bring designer changes into the real application

Review the prototype changes against its latest merged export baseline:

git -C studio/design diff framework-sync...main -- apps/ai-manager

Review shared UI, prototype mocks/fixtures and the handoff decision document separately, but retain all relevant parts. Port changes onto the current apps/ai-manager source with normal conflict/validation checks; a pointer update alone does not change the production app. Never blindly copy the submodule's package.json, startup adaptations or mock handlers into production behavior. The source paths match, making focused patches straightforward to apply.

Lynn's layout, styling and visual hierarchy take precedence when reconciling shared UI changes. Preserve working configuration, navigation and persistence behind that presentation. If her implementation introduces a functional regression, correct the behavior while retaining her visual design; for example, keep the toolbar-based Agent Canvas heading position when panels resize. Update layout assertions to match intentional design changes and retain checks for the underlying interactions. See experience alignment for the imported editor behavior.

ZIP exports

The repository-aligned ZIP, agent-studio-prototype-export.zip in the framework root, can be packaged from a clean standalone clone of the updated design repository. Include its .git directory and local framework-sync branch so designers retain the baseline and independent history after extracting it. Use git clone --no-local when cloning the embedded checkout for packaging; the archive must not depend on the framework's .git/modules or object store. Exclude installed dependencies, generated output and local environment files. Verify the clone's HEAD matches the published prototype revision before sharing.

export-repo.sh still creates agent-studio-prototype-export.zip in the root from the current framework app. That is a separate disposable snapshot, not an archive of unmerged designer changes. It refuses submodules, clones, dirty exports and non-disposable output directories. Never pass --out studio/design; use the sync helper above.

To distribute the designer repo's committed state directly, use its repository checkout or GitHub ZIP. GitHub ZIPs omit .git; use a clone when designers need to return commits. See prototype mode for runtime limitations and the handoff guide for documenting proposed APIs and backend work.

The September 28 reconciliation merges design main into feature/lynn-wip and fast-forwards design main to the tested result. The app import includes the conversation-count endpoint, version navigation in Activity, and disconnected save-state handling; see experience alignment.