Skip to content

Vendor more skills into the fixture origin (multi-skill search/topic end-to-end coverage) #9

@so0k

Description

@so0k

Problem

The fixture origin test/testdata/sample-origin/skills/ (and the real skillrig-origin) contain only one skill (terraform-plan-review). So search/--topic/ordering are exercised end-to-end against a single skill, and index generation is only run over one skill.

The query/topic/ordering logic is covered — but via a synthetic in-memory catalog (searchCatalog() in test/searchindex_quickstart_test.go hand-builds a 4-skill catalogFile), not via the real file:// fetch path. Filtering "to only aws-topic skills" or asserting a relevance-then-name ordering is not meaningfully validated end-to-end with a single-skill fixture.

What happened

This was plannedspecledger/003-search-remote/plan.md step 6 ("Seed the origin with more skills … via npx skills add") — but the step was omitted from the /specledger.implement-workflow pipeline and never executed. The FR-023 origin migration only migrated the one existing skill. (Surfaced post-merge-prep; 003 PR #8.)

To do

  1. Vendor several real public skills into test/testdata/sample-origin/skills/ (and optionally skillrig-origin/skills/) so the catalog carries multiple skills with varied topics/version.
    • Tool: npx skills add <owner/repo> --skill <name> --copy -y (run from the origin dir). NOT sl skill add (requires a SpecLedger project; installs to .claude/skills/).
    • Candidates: hashicorp/agent-skills@terraform-test, hashicorp/agent-skills@terraform-stacks, vercel-labs/agent-skills@creating-pr.
    • Cleanup: npx skills add fans out ~25 agent-specific copies (.claude/, .windsurf/, …) — keep only skills/<name>/, delete/gitignore the rest.
    • Enrich: each vendored SKILL.md carries standard frontmatter only — add the metadata.x-skillrig.* block (namespace, version, convention-version, topics, optional requires) or skillrig index emits no topics/version and --topic has nothing to filter.
  2. Regenerate test/testdata/sample-origin/index.json via skillrig index (and re-assert TestQuickstart_IndexMatchesCommitted).
  3. Add end-to-end multi-skill assertions over the real file:// fetch path (not just the synthetic catalog): a remote search QUERY returning a subset, search --topic X returning only the X-topic skills, and a deterministic multi-result ordering.

Acceptance

  • Fixture origin has ≥3 skills with distinct topics.
  • A remote (file://) search/--topic integration test filters a multi-skill catalog and asserts the subset + order — not via the synthetic in-memory catalog.
  • skillrig index over the multi-skill fixture is deterministic and matches the committed index.json.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions