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 planned — specledger/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
- 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.
- Regenerate
test/testdata/sample-origin/index.json via skillrig index (and re-assert TestQuickstart_IndexMatchesCommitted).
- 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.
Problem
The fixture origin
test/testdata/sample-origin/skills/(and the realskillrig-origin) contain only one skill (terraform-plan-review). Sosearch/--topic/ordering are exercised end-to-end against a single skill, andindexgeneration is only run over one skill.The query/topic/ordering logic is covered — but via a synthetic in-memory catalog (
searchCatalog()intest/searchindex_quickstart_test.gohand-builds a 4-skillcatalogFile), not via the realfile://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 planned —
specledger/003-search-remote/plan.mdstep 6 ("Seed the origin with more skills … vianpx skills add") — but the step was omitted from the/specledger.implement-workflowpipeline and never executed. The FR-023 origin migration only migrated the one existing skill. (Surfaced post-merge-prep; 003 PR #8.)To do
test/testdata/sample-origin/skills/(and optionallyskillrig-origin/skills/) so the catalog carries multiple skills with variedtopics/version.npx skills add <owner/repo> --skill <name> --copy -y(run from the origin dir). NOTsl skill add(requires a SpecLedger project; installs to.claude/skills/).hashicorp/agent-skills@terraform-test,hashicorp/agent-skills@terraform-stacks,vercel-labs/agent-skills@creating-pr.npx skills addfans out ~25 agent-specific copies (.claude/,.windsurf/, …) — keep onlyskills/<name>/, delete/gitignore the rest.SKILL.mdcarries standard frontmatter only — add themetadata.x-skillrig.*block (namespace,version,convention-version,topics, optionalrequires) orskillrig indexemits notopics/versionand--topichas nothing to filter.test/testdata/sample-origin/index.jsonviaskillrig index(and re-assertTestQuickstart_IndexMatchesCommitted).file://fetch path (not just the synthetic catalog): a remotesearch QUERYreturning a subset,search --topic Xreturning only the X-topic skills, and a deterministic multi-result ordering.Acceptance
file://)search/--topicintegration test filters a multi-skill catalog and asserts the subset + order — not via the synthetic in-memory catalog.skillrig indexover the multi-skill fixture is deterministic and matches the committedindex.json.