Skip to content

v2 catalogs: implement official catalog discovery baseline #228

Description

@shpoont

Parent: #214
Project record: #209 and docs/internal/project/v2-reset-execution-record.md

Status

Recontracted on 2026-06-30 after Project Owner review of the normal list / discovery surface.

This replaces the previous #228 scope that mixed built-in/default-source wording with local catalog discovery. Draft PR #255 implemented the older local-catalog scope and is superseded for #228 acceptance purposes.

Purpose

Implement the safe official-catalog app/tool discovery baseline for v2.

A new user should be able to run read-only discovery commands, see real apps/tools supported by the preconfigured dotfiles-manager official catalog, understand what an app can manage, and see useful official-catalog state such as version and updated time. The user should not have to learn the recipe noun or see internal/generated pseudo-app targets or unavailable catalog lifecycle commands in the normal path, and the catalog should not be presented as included or baked into the app.

Risk tier

Tier 1.

This is public CLI UX and product vocabulary. It is read-only discovery behavior and must not introduce live-settings writes, stored-settings writes, network fetching, official-catalog updates, additional remote catalog management, or remote recipe write authority.

Scope

  • Official-catalog app/tool support discovery from current official catalog metadata.
  • catalog list identifies the official catalog as dotfiles-manager/official, defines catalogs as app/tool support sources rather than settings storage, and shows concise catalog state: version and updated time.
  • Normal app-first commands:
    • dotfiles-manager list
    • dotfiles-manager search <query>
    • dotfiles-manager explain <app>
  • Compact catalog name in explain <app>; catalog state details are reserved for catalog list or future verbose output.
  • dotfiles-manager catalog list showing dotfiles-manager/official, version, and last-updated time.
  • No public/mock dotfiles-manager catalog update or dotfiles-manager catalog add output in v2 catalogs: implement official catalog discovery baseline #228; catalog lifecycle behavior is omitted until implemented by v2 catalogs: implement official and remote catalog management with write gates #229.
  • Tests and temp-home/fixture command evidence for deterministic official catalog metadata behavior.

Non-goals

Design evidence / pre-implementation model

Use and keep consistent with:

  • docs/internal/ux/v2-catalog-discovery-storyboard.md
  • docs/internal/ux/mocks/v2-catalog-discovery/README.md
  • docs/internal/ux/mocks/v2-catalog-discovery/run-demo.sh --check

The runnable mock is design evidence only. It does not prove the runtime implementation works.

Acceptance criteria

  • The implementation starts from current main after this recontract and a fresh implementation-start gate.
  • Official-catalog discovery is deterministic in the accepted fixture/mock evidence, and catalog list shows version and updated time.
  • list and search show real supported apps/tools from the current official catalog metadata only; internal/generated pseudo-app targets are not shown as normal apps/tools.
  • Normal output uses official / official catalog wording, not user-facing built-in source wording.
  • explain <official-app> explains what can be managed, what is intentionally excluded, and shows only the compact catalog name without printing live setting values; catalog state details belong in catalog list or future verbose output.
  • Unsupported-app output points to future catalog capabilities without exposing unavailable update/add commands or promoting local catalog workarounds.
  • catalog list shows dotfiles-manager/official, catalog version, and catalog updated time; catalog update and catalog add are omitted from v2 catalogs: implement official catalog discovery baseline #228 public/mock output until implemented by v2 catalogs: implement official and remote catalog management with write gates #229.
  • Local catalog lifecycle is not implemented or promoted by v2 catalogs: implement official catalog discovery baseline #228.
  • Real-result verification includes targeted tests, go test ./... where practical, and temp-home/fixture CLI transcripts for the accepted commands.
  • Validation distinguishes design evidence, implementation verification, Project Owner acceptance, and closure.

Change rule

After this issue is frozen for implementation, changes to public commands, output shape, supported surfaces, evidence requirements, risk tier, or acceptance criteria are managed changes and must be recorded before implementation continues.

Acceptance / closure rule

Acceptor: Project Owner.

This issue may close only after implementation verification is available, validation is recorded against the recontracted criteria above, and the Project Owner explicitly accepts #228 closure or a predeclared auto-accept rule is added before validation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions