Skip to content

Marketplace architecture split: ystacks (public) + ystacks-internal (private)#3

Merged
lx-0 merged 1 commit into
mainfrom
claude/marketplace-split-supersede
Apr 25, 2026
Merged

Marketplace architecture split: ystacks (public) + ystacks-internal (private)#3
lx-0 merged 1 commit into
mainfrom
claude/marketplace-split-supersede

Conversation

@lx-0

@lx-0 lx-0 commented Apr 25, 2026

Copy link
Copy Markdown
Member

Summary

Append-only DECISIONS entry documenting the marketplace architecture split that landed in the parallel repos this same afternoon (2026-04-25). Supersedes the earlier 2026-04-25 "Marketplace consolidates on Yesterday-AI/ystacks (monorepo + catalog hybrid)" entry that lived for ~6 hours before user review identified the visibility-leak problem.

Why

Earlier today (PR #2 in this repo) we locked the plugin landscape as a single private Yesterday-AI/ystacks monorepo + catalog. User reviewed and identified two issues:

  1. Mixed-visibility marketplace listing leaks plugin names + descriptions of internal plugins to externals if catalog goes public; staying private locks externals out of public-tauglich plugins entirely.
  2. Per-plugin DECISIONS history is load-bearing -- bundle plugins and skill collections can live as subdirs, but plugins with real architectural surface deserve own repos.

The fix executed this afternoon (in the actual marketplace + plugin repos, not in this ytstack repo): rename + new-create operation creating two marketplaces split by visibility, plus per-plugin own repos for architectural surface.

What's in this PR

.ytstack/DECISIONS.md -- new append-only entry "Marketplace architecture split into ystacks (public) + ystacks-internal (private), per-plugin own repos for plugins with architectural surface":

  • Context: visibility-leak problem + per-plugin DECISIONS need
  • Options A (status quo) / B (split) considered
  • Chose: B
  • How to apply: details of the rename + scaffold operations executed in the marketplace + plugin repos
  • Supersedes: explicit pointer to the prior 2026-04-25 "monorepo + catalog hybrid" entry

Final architecture

PUBLIC: Yesterday-AI/ystacks                       (NEW, scaffolded today)
  plugins/ydstack/                                  transplanted from old ystacks
  Listings via github source: yastack, yopstack, (ytstack when public)

PRIVATE: Yesterday-AI/ystacks-internal             (RENAMED from ystacks)
  allowCrossMarketplaceDependenciesOn: ["ystacks"]
  plugins/yastack-internal/                         cross-mp dep yastack@ystacks
  plugins/yopstack-internal/                        cross-mp dep yopstack@ystacks (NEW)
  Listings: ytstack(cross-listed while private), service-plugins(when ready)

OWN repos:
  Yesterday-AI/ytstack       (this repo, private vorerst)
  Yesterday-AI/yastack       (public, opentofu removed -> moved to yopstack)
  Yesterday-AI/yopstack      (NEW public, scaffolded today)

Reviewer notes

  • This PR is documentation-only -- the actual repo operations (rename, new-create, subdir transplant, scope-flip) happened in the parallel marketplace + plugin repos this afternoon, not here. This DECISIONS entry locks the rationale + supersedes the prior hybrid choice.
  • The earlier "Lifecycle-phase as the curation heuristic" entry remains valid -- only the marketplace topology changed, the heuristic still applies.
  • Concept §3.5 needs a follow-up update (currently describes the hybrid model). Defer to a subsequent PR or land alongside next M010/M011 architecture work.
  • STATE.md "Session 2026-04-25 (afternoon)" block could grow another entry summarizing the split; deferred to next STATE refresh.

Test plan

  • Read the new DECISIONS entry; confirm it accurately summarizes the architecture and the supersede chain
  • Confirm the prior "monorepo + catalog hybrid" entry remains in place (append-only -- not rewritten)
  • Cross-check: Yesterday-AI/ystacks (public catalog) + Yesterday-AI/ystacks-internal (private, renamed) + Yesterday-AI/yastack (public, opentofu out) + Yesterday-AI/yopstack (new public, lokal scaffolded ready to push) all consistent with this entry's "How to apply" section

🤖 Generated with Claude Code

Earlier 2026-04-25 'Marketplace consolidates on Yesterday-AI/ystacks
(monorepo + catalog hybrid)' was reviewed same day and superseded by a
two-marketplace split:

  PUBLIC  Yesterday-AI/ystacks            (NEW catalog, scaffolded)
            plugins/ydstack/              (transplanted from old ystacks)
            listings: ytstack(when public), yastack, yopstack

  PRIVATE Yesterday-AI/ystacks-internal   (RENAMED from ystacks)
            plugins/yastack-internal/     (cross-mp dep yastack@ystacks)
            plugins/yopstack-internal/    (NEW, cross-mp dep yopstack@ystacks)
            listings: ytstack(cross-listed while private), service-plugins(when ready)
            allowCrossMarketplaceDependenciesOn: ['ystacks']

Plus per-plugin own repos for plugins with architectural surface:
  Yesterday-AI/ytstack       (existing, this repo, private vorerst)
  Yesterday-AI/yastack       (existing, public; opentofu moved out)
  Yesterday-AI/yopstack      (NEW public, scaffolded)

Bundle plugins (yastack-internal, yopstack-internal) and skill collections
(ydstack) stay as subdirs because their DECISIONS surface is captured at
the catalog level.

DECISIONS.md gets one new append-only entry documenting the split, with
explicit Supersedes pointer to the prior 'monorepo + catalog hybrid' entry.

Concept §3.5 + STATE + ROADMAP follow-up will land separately or in next PR.
@lx-0 lx-0 merged commit 43e3289 into main Apr 25, 2026
@lx-0 lx-0 deleted the claude/marketplace-split-supersede branch May 31, 2026 09:36
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