Class: RailsAiBridge::Registry::FrontmatterParser

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/registry/frontmatter_parser.rb

Overview

Internal utility for extracting YAML frontmatter from skill markdown files.

Used by the resolver when a SkillEntry carries no +description+ in +tile.json+ and a richer description must be sourced from the file itself.

Examples:

 = FrontmatterParser.parse(File.read('skills/code_review.md'))
.description #=> "Review Ruby code for correctness and style."

Defined Under Namespace

Classes: ParseError, SkillMetadata

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#descriptionString (readonly)

Returns:

  • (String)


25
# File 'lib/rails_ai_bridge/registry/frontmatter_parser.rb', line 25

SkillMetadata = Data.define(:name, :version, :description)

#nameString (readonly)

Returns:

  • (String)


25
# File 'lib/rails_ai_bridge/registry/frontmatter_parser.rb', line 25

SkillMetadata = Data.define(:name, :version, :description)

#versionString (readonly)

Returns:

  • (String)


25
# File 'lib/rails_ai_bridge/registry/frontmatter_parser.rb', line 25

SkillMetadata = Data.define(:name, :version, :description)

Class Method Details

.parse(content) ⇒ SkillMetadata

Parses YAML frontmatter from markdown content.

Parameters:

  • content (String)

    full markdown file content

Returns:

Raises:

  • (ParseError)

    if delimiters are missing or required fields are absent



32
33
34
35
36
37
# File 'lib/rails_ai_bridge/registry/frontmatter_parser.rb', line 32

def self.parse(content)
  lines = extract_frontmatter_lines(content)
  data  = parse_yaml(lines)
  validate_fields!(data)
  SkillMetadata.new(name: data['name'], version: data['version'], description: data['description'])
end