Skip to content

Codec Markdown + Unified Inventory (.md with YAML frontmatter) #1

Description

@JonathLima

What to build

Replace the dual JSON+Markdown inventory format with a single .md\ file using YAML frontmatter (camelCase, typed fields) + readable Markdown body. This is a clean break — no backward compatibility with legacy JSON states.

Scope

  • \Cargo.toml: swap \serde_yaml\ for \yaml_serde 0.10\ via package rename (zero import changes, maintained fork by YAML org)
  • \inventory.rs: rewrite \write_inventory_at\ to emit .md\ with frontmatter;
    ead_inventory_at\ to parse frontmatter; \inventory_path\ returns .orquestra/skills_inventory.md; remove \inventory_md_path\
  • YAML 1.1 protection: #[serde(deserialize_with)]\ on \SkillInventory\ string fields — reject ambiguous YAML booleans (
    ame: yes) with an error asking for quotes (no silent coercion)
  • No legacy JSON fallback — pre-publication clean break
  • \lib.rs: remove \inventory_md_path\ from exports, keep \scan_one_skill\ export
  • Update tests: YAML round-trip, YAML 1.1 rejection, write/read cycle

Acceptance criteria

  • \cargo test -p orquestra-skills\ passes
  • \cargo test --workspace\ passes (no new regressions)
  • \write_inventory_at\ produces .orquestra/skills_inventory.md\ with valid YAML frontmatter + Markdown body

  • ead_inventory_at\ parses the file back correctly

  • ame: yes\ in YAML frontmatter raises an error (not silently coerced to boolean)
  • No .orquestra/skills_inventory.json\ is written anymore

Blocked by

None — can start immediately.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions