Skip to content

Sync infrastructure: adopt effect-app/shared content#51

Open
patroza wants to merge 4 commits into
mainfrom
r/sync
Open

Sync infrastructure: adopt effect-app/shared content#51
patroza wants to merge 4 commits into
mainfrom
r/sync

Conversation

@patroza
Copy link
Copy Markdown
Member

@patroza patroza commented May 23, 2026

Summary

  • Adopt centrally-synced architecture docs, e2e helpers, and ts-plugin via new effect-app/shared repo + effa sync CLI.
  • Replace ts-plugin-sort-import-suggestions (patched npm dep) with workspace-managed ts-plugin-prefer-namespace-import (synced from shared).
  • Add .shared.json lockfile pinning shared@6dad66fab8c3.

Contents

  • docs/architecture/ (14 docs) — templatized, project-agnostic.
  • docs/how-we-build.md — PM/eng workflow framework.
  • docs/shared-sync.md — usage guide for effa sync family.
  • e2e/helpers/command(rsc) factory, act settle helpers, etc.
    • adapter.ts (project-local) wires intl source for command.ts.
  • scripts/ts-plugins/prefer-namespace-import/ — namespace-import discipline.
  • tsconfig.plugins.json — switched to new plugin.
  • pnpm-workspace.yaml — includes scripts/ts-plugins/*.
  • MIGRATION-AUDIT.md — process record.

See docs/shared-sync.md for ongoing sync workflow.

Test plan

  • pnpm install succeeds with new workspace plugin
  • pnpm check clean
  • effa sync-diff reports "In sync. No diff."
  • TS language service picks up the new plugin (open a file, verify import suggestions ordering)
  • Manual review of templatized arch docs

🤖 Generated with Claude Code

patroza and others added 4 commits May 23, 2026 10:05
Initial sync pinned at effect-app/shared@fb07fcb062e4. Adds:

- docs/architecture/ (14 docs: import rules, resource layout, e2e patterns,
  query shapes, vue conventions, etc.)
- docs/how-we-build.md
- e2e/helpers (act, clientFix, loggedInUsers, setupPort, triggerServerReload,
  seed/README; upgrades existing fillInputs/runtime/shared)
- scripts/ts-plugins/prefer-namespace-import
- .shared.json lockfile (excludes command.ts pending adapter pattern)

Process + audit details in MIGRATION-AUDIT.md. Files marked
TODO(shared) still contain project-specific examples; generalize on next
touch. Future syncs via `effa sync`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ions)

- tsconfig.plugins.json: switch to ts-plugin-prefer-namespace-import w/
  sortImports, destructureNamespace, forbiddenBarrels, crossWorkflowNamespace
  config. forbiddenBarrelBasenames is empty (project-specific; populate w/
  workflow-root filenames if applicable).
- @effect/language-service plugin entry refreshed to scanner's diagnostic set.
- pnpm-workspace.yaml: include scripts/ts-plugins/* so the synced plugin
  resolves as workspace:*.
- Root package.json: replace ts-plugin-sort-import-suggestions dep + patch
  w/ workspace dep on ts-plugin-prefer-namespace-import. Drop obsolete patch.
- Bump .shared.json ref to cea84b77a49f (adds templates/ in shared repo
  documenting reference-only configs like tsconfig.plugins.json).

Run pnpm install to pick up the workspace plugin.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Re-sync from effect-app/shared@a3e1806f7b7e: 7 architecture/how-we-build
  docs lose their TODO(shared) markers and project-specific examples
  (Mako/Empasa/EasyLife/Bauhaus/etc).
- New e2e/helpers/command.ts: synced; imports from ./adapter.js for intl.
- New e2e/helpers/adapter.ts: project-local stub. Re-export real intl source
  once the api package exposes one.
- New docs/shared-sync.md: usage guide for `effa sync`/`sync-diff`/`sync-push`.
- clientFix.ts / seed/README.md: marker line removed in upstream.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Re-sync from effect-app/shared@6dad66fab8c3. The 8 architecture docs not
previously cleaned (import-rules, e2e-state-pattern, e2e-toast-wait-audit,
vue-conventions, query-shape-list-vs-get, database-query-guidelines,
streams-and-progress, e2e) now use abstract `<workflow>`/Domain examples
instead of Mako/Empasa/EasyLife/Bauhaus/MultiPick names.

resource-and-controller-layout: dropped scanner-path link and
GetMarkisenLabelPreview example. act.ts: Bauhaus example -> WorkflowA.

Repo-wide grep for project-specific names: clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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