class_docstr: Handles CRUD operations at the database level for Skills
docstr: Deletes a skill by name.
  
  Parameters:
      skill_name (str): The name of the skill to delete
      project_name (str): The name of the containing project
  
  Raises:
      ValueError: If `project_name` does not exist or skill doesn't exist
docstr_tok: ["Deletes","a","skill","by","name",".","Parameters",":","skill_name","(","str",")",":","The","name","of","the","skill","to","delete","project_name","(","str",")",":","The","name","of","the","containing","project","Raises",":","ValueError",":","If","`","project_name","`","does","not","exist","or","skill","does","n't","exist"]
code: def delete_skill(
      self, skill_name: str, project_name: str = "mindsdb"
  ):
      """
      Deletes a skill by name.
  
      Parameters:
          skill_name (str): The name of the skill to delete
          project_name (str): The name of the containing project
  
      Raises:
          ValueError: If `project_name` does not exist or skill doesn't exist
      """
  
      skill = self.get_skill(skill_name, project_name)
      if skill is None:
          raise ValueError(
              f"Skill with name doesn't exist: {skill_name}"
          )
      db.session.delete(skill)
  
      db.session.commit()
  
file_path: mindsdb/mindsdb/interfaces/skills/skills_controller.py
imports: from typing import Dict, List
  from mindsdb.interfaces.storage import db
  from mindsdb.interfaces.database.projects import ProjectController
  from sqlalchemy.orm.attributes import flag_modified
label_desc: Use image node_id 6 for calling the SkillsController obj's underlying member method code with example usage: obj.delete_skill(skill_name, project_name) without return types