Skip to content

Keep catalog submissions source-only and default recommendations safely - #32

Merged
Salil Das (sadlilas) merged 10 commits into
mainfrom
sadlilas/catalog-recommendations-and-domains
Oct 12, 2026
Merged

Salil Das (sadlilas) merged 10 commits into
mainfrom
sadlilas/catalog-recommendations-and-domains

Conversation

@sadlilas

@sadlilas Salil Das (sadlilas) commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

What changed

  • Make the Smart Tools skill's Add to the catalog path build/check the tool, add only tools/<slug>/source.json with optional ref/path, and submit a PR. Submissions are source-only and category-agnostic: creators do not select or create categories or recommendations. Catalog maintainers assign classification from the approved registry; taxonomy changes require separate maintainer review and approval.
  • Make optional recommended default to false in a normalized copy only. A supplied flag must be a strict boolean; false or omission prohibits reviewed_source, and true still requires the full selected source identity. Loading/rendering never writes defaults back to editorial files.
  • Render tools without listing metadata under the searchable/filterable Other fallback, including tools awaiting snapshots. Other is not a registry category and appears only when real unclassified entries exist. Keep discovery preference, selected-source binding, and readiness reporting separate.
  • Update canonical metadata/rendering tests and guidance without changing CSS, JavaScript, layout, or existing recommendation/card behavior. The full catalog introduction, stable shared filter bar, Name/Category sorting, and context-specific badges remain: two featured recommendation shortcuts also appear in All tools, intentionally yielding 24 cards for 22 unique tools.

Why

Adding a tool should require its source pointer, not editorial decisions or knowledge of category definitions. Maintainer-owned classification and recommendation must remain separate. Ordinary metadata should not need a redundant false flag, and tools awaiting classification must remain easy to find under a neutral Other fallback.

How to verify

Recorded pre-publication checks passed on Python 3.12.14: 155 site/renderer tests, 53 catalog tests, 13 JavaScript filter tests, catalog metadata CLI validation, and website builds for the actual catalog and an isolated source-only fixture. Ten targeted real Google Chrome assertions passed for the unchanged actual inventory and for Other entries with and without snapshots, search, category filtering, global Name sorting, desktop/phone bounds, and no-JavaScript readability. The two fake source-only entries were isolated fixtures and are not added to the production catalog. These are catalog behavior checks, not Smart Tool runtime evaluation, installation, certification, or readiness evidence.

Using the Python 3.12+ environments documented in each repository's site/README.md, reproduce:

# Specification repository
PYTHONDONTWRITEBYTECODE=1 python3 -m pytest site/tests/ -q
node --test site/tests/test_filters.cjs

# Catalog repository
PYTHONDONTWRITEBYTECODE=1 python3 scripts/validate_catalog.py
PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -v
PYTHONDONTWRITEBYTECODE=1 python3 site/theme/build.py

Check that category-only metadata normalizes to false without changing input or disk bytes; strings, integers, and null flags fail validation; false or omission with reviewed_source fails closed; and unknown category IDs are rejected. In an isolated fixture, source-only entries should be readable under Other with and without snapshots or JavaScript, searchable by Other/name, filterable by Other, and sortable by Name. The actual catalog should retain 22 unique tools, nine populated category groups, two recommendations, and 24 intentional card instances; it should have no empty Other option/group.

Published raw readback verified all 37 changed paths against the exact commits below, all nine canonical/vendored theme files byte-for-byte, and all 76 protected catalog files unchanged. Local results do not imply hosted CI success; inspect checks at these exact SHAs.

Merge order and pinned source

Merge spec PR #32 first, then catalog PR #21, through the normal review and merge gates.

Canonical spec/theme commit: 8d88679c2e6d8cacf7a4178ed234639e5543857a. Catalog commit: 5d31c0e281944a01a6ca3bcc8012ca0d8495672e. The shared build.py and catalog_metadata.py changes are canonical in the spec repository and synchronized into the catalog; all nine theme files match. No approvals, CLA actions, signing, merge, deployment, or settings changes are included.

Breaking changes and compatibility

No Smart Tool manifest or source-pointer format change. Explicit recommended: false remains valid; omission now means false. Consumers reading the category-only ordinary listings must use the updated canonical metadata helper, which is why the spec PR merges first. A true designation still requires the selected source identity, and source drift still removes recommendation preference without renewing or deleting a designation. Other replaces the previous unclassified display label; it is a built-in fallback, not a new registry category.

The registry, all 22 source pointers/manifests/provenance records, CSS, JavaScript, public upstream URLs, and both selected recommendation listings are unchanged by this update. Digital Twin Universe remains selected for Test environments at a4915ad2ce0846ea4221fb264e2557aa2463d1ed; Smart Tool Creator remains selected for Smart Tool development at a101e6f17ef86135393d105919d00522fcf59c55. Those selections are maintainer-curated preferences, not claims of completed conformance or representative-task evaluation. The existing category additions and assignments remain proposals for maintainer review; this update does not claim that approval occurred.

Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@sadlilas Salil Das (sadlilas) changed the title Add domain-aware recommendations to Smart Tools discovery and theme Add category browsing and clearer Recommended guidance Oct 9, 2026
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@sadlilas Salil Das (sadlilas) changed the title Add category browsing and clearer Recommended guidance Make recommendations and category browsing visible Oct 9, 2026
Salil Das (sadlilas) and others added 2 commits October 9, 2026 15:44
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@sadlilas Salil Das (sadlilas) changed the title Make recommendations and category browsing visible feat: add category and name sorting for catalog tools Oct 12, 2026
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@sadlilas Salil Das (sadlilas) changed the title feat: add category and name sorting for catalog tools Use one control bar for catalog browsing Oct 12, 2026
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@sadlilas Salil Das (sadlilas) changed the title Use one control bar for catalog browsing Restore the catalog introduction and simplify recommendation labels Oct 12, 2026
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@sadlilas Salil Das (sadlilas) changed the title Restore the catalog introduction and simplify recommendation labels Feature recommended tools without removing category listings Oct 12, 2026
Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@sadlilas Salil Das (sadlilas) changed the title Feature recommended tools without removing category listings Keep catalog submissions source-only and default recommendations safely Oct 12, 2026
@sadlilas
Salil Das (sadlilas) merged commit daeb285 into main Oct 12, 2026
4 checks passed
@sadlilas
Salil Das (sadlilas) deleted the sadlilas/catalog-recommendations-and-domains branch October 12, 2026 23:47
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.

2 participants