Shared Package Candidates
This section separates packages that are already real shared assets from patterns that look ready to become them.
Already Shared and Real
These should be treated as canonical shared packages now:
@howells/lint- pinned Oxlint/Oxfmt, Biome, Ultracite, and React Doctor presets
@howells/typescript-config- explicit thin tsconfig presets
@howells/stacksheet- the preferred abstraction for stacked sheet flows
@howells/envelope- strict structured IO wrapper for CLI-model workflows
@howells/ai- shared AI SDK/provider baseline for AI-capable apps and agent packages
@howells/motif-sdk- shared fal.ai image-generation, editing, utility media, model registry, and cost-estimation surface
@howells/motif-cli- agent-friendly image-generation CLI with dry runs, structured output, local history, and series workflows
@howells/motif-mcp- MCP tools and resources for image generation, editing, utility media actions, model metadata, and history
@howells/envy- typed env parsing, lint helpers, and deployment env preflight checks
@howells/stow-server- the reusable server integration surface when a repo needs to talk to the house media storage platform directly
@howells/stow-next- the reusable Next.js-facing media storage integration
@howells/srcfull- shared source-fetching layer for browser/page-source ingestion workflows
Keep Standardizing: AI Provider Baseline
@howells/ai is already common enough to be the default provider baseline for AI-capable repos.
Recommendation:
- keep provider selection, model defaults, and shared AI SDK wiring in
@howells/ai - keep product-specific prompts, tools, and workflows in repo-local
packages/aiorpackages/agents - do not publish repo-specific agent packages just because several repos use Mastra
Mastra and MCP should standardize as architecture choices before becoming more shared package surface.
Keep Standardizing: Image Generation Surface
howells/motif should be the default surface for fal.ai image generation, image editing, upscaling, background removal, image-to-video, model metadata, dry runs, cost estimates, structured CLI output, and MCP image tools.
Recommendation:
- use
@howells/motif-sdkfor product or package code - use
@howells/motif-clifor scriptable local and agent workflows - use
@howells/motif-mcpwhen other agents need image-generation tools through MCP - keep durable media storage separate through the house media storage platform
- do not write raw fal.ai clients in app routes unless Motif cannot cover the endpoint yet
Strong Candidate: Motion Tokens Package
This is the clearest next shared package candidate.
Why:
motionis one of the highest-frequency UI dependencies- the bundled UI baseline includes a small motion package snapshot
- both repos are solving the same problem: durations, easings, springs, presets
Recommendation:
- converge on one shared motion token package instead of letting every major UI repo carry its own copy
This package should be small and boring:
- durations
- easings
- springs
- a few named presets
It should not become a second animation library.
Strong Candidate: Transition Primitives
The bundled transition snapshot suggests another promising shared layer.
Why:
- transitions and overlay enter/exit behavior are recurring
- the same interaction patterns reappear across UI repos
- keeping transition primitives separate from raw components is cleaner than burying them inside each app
Recommendation:
- stabilize transition primitives inside repos that need them
- only publish them separately if they prove reusable outside one product family
Medium Candidate: Shared Drawer and Sidepanel Layer
You have repeated vaul wrappers across several active UI repos.
That is a signal.
Recommendation:
- do not publish a generic drawer package yet
- first collapse the repeated wrappers into the scaffold UI baseline or a repo-local shared UI package
- publish only if that API becomes stable and broadly useful outside your repos
For now:
- keep simple drawers in shared UI packages
- use
@howells/stacksheetwhen the flow becomes stack-oriented
Not a Good Shared Package Candidate Yet
These are useful patterns, but they should stay repo-local for now:
- repo-local env packages
- project-local domain packages
- repo-specific auth wrappers
- repo-specific TRPC wrappers
They encode app boundaries, not cross-project standards.
The env exception is implementation, not ownership: keep a repo-local packages/env boundary, but build it on @howells/envy instead of publishing another env package per app.
Product Recommendation vs Package Recommendation
There is an important distinction here:
- the house media storage platform is the product recommendation
@howells/stow-serveris the package recommendation
For new projects, the default decision should be:
- if the repo needs image, vector, or media storage, start by asking whether it should use the house media storage platform
- if the repo needs typed server-side integration, reach for
@howells/stow-server - if package code needs portable object/blob operations, put
files-sdkinside the storage/upload package rather than calling S3, R2, GCS, Azure Blob, Vercel Blob, or similar provider clients directly from apps
Practical Standardization Order
If you want to reduce duplicated package work across the portfolio, the best order is:
- prefer
@howells/lintand@howells/typescript-configeverywhere - use
@howells/envyfor repo-local env boundaries instead of creating more package-specific env tooling - keep
@howells/aias the shared AI/provider baseline instead of scattering raw provider clients - use
howells/motiffor image generation and media utility workflows instead of scattering raw fal.ai clients - standardize
@howells/stacksheetas the default stacked-panel abstraction - unify motion tokens into one shared package
- stabilize the bundled UI baseline through real consuming repos before publishing more UI internals
That order reduces duplication without locking in the wrong abstractions too early.
Bundled UI Baseline
This directory vendors the deleted UI-system files recovered from the old `~/Sites/patternmode` history at commit `1ffeb6ddb9d5d449a3618f3b73f79b93590cd463^`.
Agent Workflow
This is the baseline for repos that will be worked on with coding assistants, Arc, and reusable specialist skills. Claude Code is served natively by the skill directory, Codex through a platform wrapper, and a Cursor surface is deferred future work.