Skip to content

Savaity/search skill experiment#48655

Draft
samvaity wants to merge 29 commits intoAzure:mainfrom
samvaity:savaity/search-skill-experiment
Draft

Savaity/search skill experiment#48655
samvaity wants to merge 29 commits intoAzure:mainfrom
samvaity:savaity/search-skill-experiment

Conversation

@samvaity
Copy link
Copy Markdown
Member

No description provided.

- Add find-package-skill registry at .github/skills/ (matches JS/Python/.NET pattern)
- Fix search SKILL.md: add breaking change detection (Phase 3.6), import cleanup (Phase 3.7), test recording guidance (Phase 4), structured changelog format (Phase 5)
- Fix search SKILL.md: rename to search-documents, improve trigger phrases
- Fix search SKILL.md: add error categorization guidance (generated vs hand-written files)
- Remove .NET comparison section from customizations.md (cross-language pollution)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

API Change Check

APIView identified API level changes in this PR and created the following API reviews

com.azure:azure-search-documents

samvaity and others added 6 commits March 31, 2026 13:37
- Phase 3.5: Add dedup guard for includeOldApiVersions() — prevents duplicate enum constants when generator produces a version that was previously only in the customization list
- Phase 3: Add accept-header type renumbering guidance (CreateOrUpdateRequestAccept* types change numbers between spec versions)
- Customizations.md: Update includeOldApiVersions() code example with existence check and .toUpperCase() fix

Eval: mock_search_2026-05-01-preview produced 18 build errors. These fixes address 2 of the 3 root causes found.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Root cause analysis showed the import errors are NOT from type renumbering —
they're from hideWithResponseBinaryDataApis() customization creating cross-package
references. Updated Phase 3 guidance to point agent to SearchCustomizations.java
instead of suggesting manual import edits on generated files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Skill fixes based on eval where with-skill agent performed worse on 2 of 3 errors:

1. SKILL.md: Add 'Common Pitfalls' section (Maor's one-pager pattern) calling out
   the 5 most dangerous mistakes upfront
2. SKILL.md Phase 3: Add error categorization table with 3 categories and explicit
   'check SearchCustomizations.java FIRST' directive
3. SKILL.md Phase 3.5: Reframe from 'add versions' to 'verify and remove duplicates'
4. architecture.md: Add @generated annotation guidance — explains that generated files
   contain both @generated (auto-updated) and non-@generated (hand-written, needs
   manual update) methods
5. SKILL.md description: Use semicolons for trigger phrases (Maor's YAML convention)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…lly lint

vally lint requires directory name to match skill name in frontmatter.
Before: Azure.Search.Documents/ with name: search-documents → name-directory-mismatch
After: search-documents/ → 3/3 checks passed (spec-compliance, valid-refs, orphan-files)

Also updated find-package-skill registry path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Stdlib-only Python script that extracts code references (file paths, method
names, class names) from skill markdown and verifies they still exist in the
codebase. Catches the most common staleness pattern: code renamed/deleted
but skill still references old names.

Tested against search-documents skill: 51 anchors passed, 0 false positives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Interactive wizard (modeled after repo-bootstrap from ai-first-dev-starter-pack)
that walks service teams through creating a package-specific skill:

Phase 0: Scan package — detect architecture, customizations, key files
Phase 1: Scaffold SKILL.md — generate with pitfalls, architecture, workflow
Phase 2: Generate references — architecture.md and customizations.md
Phase 3: Validate — vally lint + anchor checker
Phase 4: Register — add to find-package-skill table

Includes references for:
- Skill template with required sections and structural rules
- Validation tools guide (vally lint + validate_skill_anchors.py + CI workflow)
- Cross-language examples with eval data (1/3 → 3/3 improvement)

Key design decisions based on eval evidence:
- Common Pitfalls MUST be first section (biggest eval impact)
- Error categorization tables over prose
- 'Check X FIRST' directives change agent behavior
- Scaffold stubs, not finished products

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
samvaity and others added 3 commits April 15, 2026 13:23
Make explicit that package skills complement (not replace) the Azure SDK MCP
tools and shared skills like generate-sdk-locally. Added:
- 'Relationship to existing SDK tools' guardrail in SKILL.md
- MCP tool references in Phase 1 scaffold (azsdk_package_generate_code, etc.)
- 'Reference existing tools, don't redefine them' directive

This prevents service teams from creating skills that duplicate or conflict
with the deterministic SDK generation pipeline.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The generate-sdk-locally shared skill (synced via PR Azure#48773) and Azure SDK MCP
tools already handle generation, build, test, changelog, and versioning. The
search package skill was re-documenting these steps, creating overlap.

Refactored to:
- Defer generation/build/test to generate-sdk-locally skill and MCP tools
- Keep ONLY search-specific content: error categorization table, customization
  patterns, ServiceVersion management, breaking change detection, import cleanup
- Add explicit 'use generate-sdk-locally for generation/build/test' directive

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1. Skill name = Maven artifactId (azure-search-documents, not search-documents)
2. No versioning in skills -- keep content static (design, patterns, not release state)
3. TypeSpec-first customization guardrail -- prefer @@clientName/@@access over Java AST
4. Note azsdk_customized_code_update MCP tool overlap with post-regen checklist
5. Breaking change detection context (eval found 29 removed types not caught)
6. Removed duplicated generation workflow steps (shared skill handles those)
7. Content principles: static, TypeSpec-first, don't re-doc MCP, focus on convenience layer

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.

3 participants