GCS skill loaders ignore a skill.md manifest that the local and zip loaders accept

Ouverte Adaptée aux débutants
#7,842 2 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 4 jours

@surajksharma07 y travaille déjà.

Depuis le 30/10/2026.

  • #7843 par @adityasingh2400 — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
84/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
google-cloud, python
Domaine
backend

Piste de recherche

Commencez dans skills/_utils.py avec _list_skills_in_gcs_dir et _load_skill_from_gcs_dir, puis comparez la façon dont _parse_skill_md, _list_skills_in_dir et le chargeur ZIP acceptent les deux variantes du nom de fichier du manifeste. Trouvez les tests GCS existants pour les skills qui utilisent un client de stockage simulé et ajoutez une couverture pour un manifeste skill.md lors de l’énumération et du chargement. Le travail est terminé lorsque les chargeurs GCS et leurs wrappers asynchrones gèrent skill.md comme les chargeurs locaux et ZIP.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

tools

🔴 Required Information

Describe the Bug:
A skill whose manifest is named skill.md loads from a local directory or a zip archive but is invisible when stored in GCS. _parse_skill_md, _list_skills_in_dir and the zip loader in skills/_utils.py all accept SKILL.md or skill.md. _list_skills_in_gcs_dir and _load_skill_from_gcs_dir only look for SKILL.md. Moving a skill that works locally into a bucket therefore makes it disappear from the listing, and loading it raises FileNotFoundError. The async wrappers call the same functions and behave the same way.

Steps to Reproduce:

  1. Upload a skill directory with gs://my-bucket/skills/my-skill/skill.md (valid frontmatter, name: my-skill).
  2. _list_skills_in_gcs_dir("my-bucket", "skills/").
  3. _load_skill_from_gcs_dir("my-bucket", "my-skill", skills_base_path="skills/").

Expected Behavior:
The skill is listed and loads, as it does from a local directory.

Observed Behavior:
The listing is {}, and loading raises FileNotFoundError: SKILL.md not found at gs://my-bucket/skills/my-skill/SKILL.md.

Environment Details:

  • ADK Library Version (pip show google-adk): 2.13.0 (also on main at 75fb788)
  • Desktop OS: macOS
  • Python Version (python -V): 3.11.16

Model Information:

  • Are you using LiteLLM: No
  • Which model is being used: N/A (skill loading)

🟡 Optional Information

Additional Context:
I verified this with the mocked google.cloud.storage client the existing GCS skill tests use; I don't have a bucket for a live run.

How often has this issue occurred?:

  • Always (100%), for GCS skills whose manifest is skill.md
Langage dominant
Python
Étoiles
22.1k
Forks
4.3k
Merge moyen
1 j 10 h
PR mergées (30 j)
5

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de google/adk-python

Toutes les issues de google/adk-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.