The shared layer owns dependable behaviour. The experience layer decides how a person encounters it. A family can support several brands; a brand can support several useful entry experiences.
01
Bases compartidas
Primitives, accessibility and design tokens.
Consistent mechanics
02
Canonical tasks
Evidence, documents, rules and review.
A dependable core
03
Brand composition
Audience, vocabulary, sequence and density.
A useful difference
04
Product surfaces
The app and its marketing preview.
A recognisable experience
The ecosystem architecture
In the target architecture, BrainOS supplies context and intelligence, ContractSpec defines and builds, and Patio supplies shared infrastructure and data. LSSM OS composes these inputs, then runs and operates their environments. Explore these relationships ↗
Current source → direct component reuse
The inspected Tafio repository implements shared career records and multiple product presenters. It explicitly remains standalone. Bringing these boundaries into a shared monorepo with the wider LSSM ecosystem is the next architecture direction, not an integration established by this review.
02 / FOUR COMPOSITIONS
A different task deserves a different surface.
Switch between the proposed public identities to see the source-kit tokens, working object and task sequence. The new names come from the brand handoff; the source kits retain their current repository names.
Source kit: mosaique.ts. The visual reproduces its real landing component; the public name follows the brand handoff.
These previews reproduce the original landing markup, component layouts, tokens, fonts and assets available in source. They use local sample state. Every replica records its source and a TODO to replace it with the real component import after the monorepo merge.
03 / ONE REGISTRY, SEVERAL READINGS
Different front doors. Coherent relationships.
Keep areas, groups, capabilities, audiences, operating models, families and projects as linked records. Each website chooses the relationships that help its own visitor.
Family membership does not establish legal company ownership. Component reuse does not grant permission to share customer records between products.
04 / REUSE THE PRODUCT’S OWN VISUALS
Let the product explain itself.
A small, relevant view of the actual working interface can say more than a generic feature tile. Choose the reuse mode deliberately and keep its provenance visible in the implementation.
WHEN THE BOUNDARY IS READY
Live display component
Render a product-owned display module with a reviewed synthetic fixture and a read-only adapter. Share theme tokens and layout rules. Keep authentication, data access and mutation handlers outside the preview bundle.
Best for: reusable, isolated presenters.
WHEN RUNTIME REUSE IS UNSUITABLE
Static product capture
Generate an image from a known build and sample state. Record the product, source revision, viewport and capture date, with accessible alternative text.
Best for: complex or coupled screens.
USED IN THIS REVIEW
Source component replica
Port the actual product component into this static review: its structure, theme, typography, assets and useful sample interactions. Keep the originating repository, revision and component beside the code.
TODO after merge: replace the replica with the original component import.
05 / THE IMPLEMENTATION SEAM
A registry to connect. An adapter to display.
This proposed TypeScript contract separates portfolio identity from preview execution. The adapter accepts a synthetic fixture; it receives no authenticated workspace, account authority or operation runner.
REFERENCE DESIGN / TYPESCRIPT
type AreaId = string;
type GroupId = string;
type CapabilityId = string;
type AudienceId = string;
type OperatingModeId = string;
type SurfaceId = "landing" | "app";
type AreaGroup = {
id: GroupId;
areaId: AreaId;
brandIds: readonly string[];
};
type SourcePreview = {
surface: SurfaceId;
repository: string;
revision: string;
componentPath: string;
mode: "source-replica" | "component-import";
fixtureId?: string;
};
type BrandRecord = {
id: string;
familyId?: string;
areaIds: readonly AreaId[];
groupIds: readonly GroupId[];
capabilityIds: readonly CapabilityId[];
roleIds: readonly AudienceId[];
operatingModeIds: readonly OperatingModeId[];
destinations: readonly string[];
previews: readonly SourcePreview[];
};
// One identity, several area/group and capability/audience memberships.
// A source-evidenced capability differs from a requested direction.
// Record capability coverage and evidence per project.
// SOURCE: tafio-poc-openai-dev-day/apps/web/experiences/landings/*
// TODO(monorepo): import the original landing or app presenter here.
// Preserve its theme, layout, assets and read-only synthetic fixture.
// The portfolio supplies placement/context; the product owns its design.
export interface ProductPreviewAdapter<Fixture, View> {
render(input: {
brand: BrandRecord;
surface: SurfaceId;
fixture: Readonly<Fixture>;
mode: "read-only";
}): View;
}
Keep the mapping explicit.
Track the brand, its many area/group memberships, capabilities, audiences, operating models, family and source surfaces independently. A brand can show several landing and app components. Keep domain ownership, name acceptance and product availability in separate fields in the production registry.
Integrate at a proven seam.
Start with the presentation definitions and a read-only presenter. Extract shared packages only when a second real use establishes the boundary. Keep task rules in their canonical owner.
Preserve the useful difference.
Let brands change navigation, density, voice and task sequence. Verify that the first useful action improves for the intended situation before standardising the composition.
06 / SOURCE & EVIDENCE
Concrete seams in the current source.
ContractSpec Studio adds the product-owner and product-manager workflow, including its own marketing and planning views. The Tafio paths establish the composition model. The per-brand index then identifies the exact components from Tafio, Fairelio, Taketide, ContractSpec, ContractSpec Studio, Tellshift and the retained hCircle source.
Every entry names the source revision and the component to import after the merge. Marketing specimens stay identified as marketing specimens; an app excerpt uses its own source component.
TODO after monorepo merge Import the extracted production MarketingHero / ProductPreview display components when this repository is merged; preserve the generated tokens from libraries/tokens/v3.json.
TODO after monorepo merge Replace with WorkingTableLanding from apps/mission-studio/features/landing/working-table.tsx and its reviewed fictional BriefInput fixture, using the canonical Fairelio brand definition after monorepo integration. Preserve the pinned Pactena source as provenance. The former founder-intelligence product is Tendframe and the separate creator platform is Taketide.
TODO after monorepo merge Import TempoLanding from apps/web/experiences/landings/tempo/view, its style.css and the tempo presentation definition; replace textual rebrand with the canonical jobrally brand definition after monorepo merge.
TODO after monorepo merge Import MosaiqueLanding from apps/web/experiences/landings/mosaique/view, its style.css and the mosaique presentation definition; replace textual rebrand with the canonical crossrole brand definition after monorepo merge.
TODO after monorepo merge Import AtelierLanding from apps/web/experiences/landings/atelier/view, its style.css and the atelier presentation definition; replace textual rebrand with the canonical lettercase brand definition after monorepo merge.
TODO after monorepo merge Import CanopeeLanding from apps/web/experiences/landings/canopee/view, its style.css and the canopee presentation definition; replace textual rebrand with the canonical dunbonpas brand definition after monorepo merge.
TODO after monorepo merge TODO(monorepo): replace this display-only HTML port with @lssm-tech/bundle.marketing/components/companyos-assistant; keep a synthetic fixture and remove live accounts, transport and analytics from the embedded adapter.
TODO after monorepo merge TODO(monorepo): replace this display-only HTML port with @lssm-tech/bundle.marketing/components/companyos-campaign; keep a synthetic fixture and remove live accounts, transport and analytics from the embedded adapter.
TODO after monorepo merge TODO(monorepo): replace this display-only HTML port with @lssm-tech/bundle.marketing/components/companyos-campaign; keep a synthetic fixture and remove live accounts, transport and analytics from the embedded adapter.
TODO after monorepo merge TODO(monorepo): replace this display-only HTML port with @lssm-tech/lib.design-system (MarketingContractLandingPage); keep a synthetic fixture and remove live accounts, transport and analytics from the embedded adapter.
TODO after monorepo merge TODO(monorepo): replace this display-only HTML port with @lssm-tech/lib.design-system (MarketingContractLandingPage); keep a synthetic fixture and remove live accounts, transport and analytics from the embedded adapter.
TODO after monorepo merge TODO(monorepo): replace this display-only HTML port with FounderHero / IntelligenceField display exports from the merged founder-suite package; keep a synthetic fixture and remove live accounts, transport and analytics from the embedded adapter.
TODO after monorepo merge TODO(monorepo): replace this display-only HTML port with HeroV2 and pure WeeklyPulse display adapters from the merged hCircle web package; keep a synthetic fixture and remove live accounts, transport and analytics from the embedded adapter.
TODO after monorepo merge @pactena/marketing/web PublicStudio, a display-only CreatorHomeEditorial adapter, and @pactena/ui/web display components after monorepo integration, using fixture-only portfolio props and the canonical Taketide brand definition. Preserve the pinned Pactena source/package names as provenance; do not couple this creator product to the separate Fairelio mission studio.
TODO after monorepo merge Import EditorialPageHero + CompactProofRow with getHomeHeroCopy(en), and @contractspec/bundle.studio-presentation PmBoard/PmPortfolioFiltersPanel with getPmCopy(en), after their packages are merged. Preserve the marketing/app theme boundaries and display-only fixture adapters.
TODO after monorepo merge TODO(monorepo): replace this portfolio port with @lssm-tech/bundle.osint OsintCommandCenterScreenV1 and the console display shell; retain source theme, fixture props and evidence boundaries.
TODO after monorepo merge TODO(monorepo): replace this portfolio port with Canonical provider-web-access support matrix from its owning package; retain source theme, fixture props and evidence boundaries.
TODO after monorepo merge TODO(monorepo): replace this portfolio port with @lssm-tech/module.billing-os/ui BillingLandingWorkspace and QuoteCard with the France-SME example fixture; retain source theme, fixture props and evidence boundaries.
TODO after monorepo merge TODO(monorepo): replace this portfolio port with Finance Ops CashAgingScreen/WorkflowWorkspace fixture adapter and FinanceOS canonical contract source; retain source theme, fixture props and evidence boundaries.
TODO after monorepo merge TODO(monorepo): replace this portfolio port with Canonical metering/economic-usage-ledger contract and company-metrics read model documentation; retain source theme, fixture props and evidence boundaries.
TODO after monorepo merge Import CommunicationInbox, HcircleMarketingHome, HcircleMarketingHeader from their exact owning source paths; retain source theme and a reviewed display-only fixture adapter.
TODO after monorepo merge Import PersonalOsShell, PersonalRoutePage, PlanningSummary, SummaryCard from their exact owning source paths; retain source theme and a reviewed display-only fixture adapter.
TODO after monorepo merge Import PlanningSummary, OutcomeSummary, PersonalOsShell from their exact owning source paths; retain source theme and a reviewed display-only fixture adapter.
TODO after monorepo merge Import HealthSummary, WellbeingGoalSummary, PersonalOsShell from their exact owning source paths; retain source theme and a reviewed display-only fixture adapter.
TODO after monorepo merge Import Home/CorrespondencePlate and CorrespondenceExample from packages/mailpatio-website with the original Postal Modernism theme and locale copy. Keep the display-only fixture; do not bind live mail or intake in portfolio previews.
TODO after monorepo merge Import the original HomeHero/MeetingPoster/PairPosterArt and OpportunityPreview/PairFrame from career-agent, with its source tokens, synthetic copy and canonical Sarla brand definition after monorepo integration. Preserve the pinned Pactena source as provenance and retain the career-agent stable ID.
The source contains distinct product presenters and scoped task evidence. Their presence does not establish that every proposed brand is launched or that the broader acceptance campaign is complete. This website does not execute the original application runtime.