Skip to content

refactor: align adventure YAML schema with challenges repo format#77

Merged
sinduri-g merged 1 commit into
mainfrom
refactor/yaml-schema-alignment
May 29, 2026
Merged

refactor: align adventure YAML schema with challenges repo format#77
sinduri-g merged 1 commit into
mainfrom
refactor/yaml-schema-alignment

Conversation

@sinduri-g
Copy link
Copy Markdown
Contributor

Renames and restructures all adventure YAML fields to match the challenges repo conventions, so the automation that creates PRs from new challenges can write valid YAML with minimal transformation:

  • id -> slug, title -> name, tags -> technologies (YAML only; generator still outputs id/title/tags to TypeScript)
  • context: {title, body} -> overview: string[]; section heading hardcoded as "Overview" in AdventureDetail
  • Deadlines converted from human-readable strings to ISO 8601 across all 12 levels and adventure-level rewards
  • All how_to_play step fields renamed body -> content; helpful_links item field label -> title with optional description
  • All multi-word YAML fields are now snake_case: how_to_play, helpful_links, devcontainer_path, discussion_url, architecture_diagram, diagram_alt, meta_description, solved_count, top_players, upcoming_levels, ranking_note, ranking_rules_url
  • services field added to every level; generator auto-inserts "Explore the UIs" walkthrough step from service list
  • icon field added at adventure level (Lucide icon name); rendered after the title in AdventureDetail header
  • architecture_ascii added as optional fallback; ArchitectureSection now renders SVG > ASCII > text in priority order
  • isDeadlinePast simplified to native ISO parsing; new formatDeadline formats ISO strings for display
  • All tests, fixtures, and styleguide.md updated to match new field names

Renames and restructures all adventure YAML fields to match the
challenges repo conventions, so the automation that creates PRs from
new challenges can write valid YAML with minimal transformation:

- `id` -> `slug`, `title` -> `name`, `tags` -> `technologies` (YAML only; generator still outputs `id`/`title`/`tags` to TypeScript)
- `context: {title, body}` -> `overview: string[]`; section heading hardcoded as "Overview" in AdventureDetail
- Deadlines converted from human-readable strings to ISO 8601 across all 12 levels and adventure-level rewards
- All `how_to_play` step fields renamed `body` -> `content`; `helpful_links` item field `label` -> `title` with optional `description`
- All multi-word YAML fields are now snake_case: `how_to_play`, `helpful_links`, `devcontainer_path`, `discussion_url`, `architecture_diagram`, `diagram_alt`, `meta_description`, `solved_count`, `top_players`, `upcoming_levels`, `ranking_note`, `ranking_rules_url`
- `services` field added to every level; generator auto-inserts "Explore the UIs" walkthrough step from service list
- `icon` field added at adventure level (Lucide icon name); rendered after the title in AdventureDetail header
- `architecture_ascii` added as optional fallback; ArchitectureSection now renders SVG > ASCII > text in priority order
- `isDeadlinePast` simplified to native ISO parsing; new `formatDeadline` formats ISO strings for display
- All tests, fixtures, and styleguide.md updated to match new field names

Signed-off-by: Sinduri Guntupalli <sinduri.g@gmail.com>
Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-05-29 11:51 UTC

@sinduri-g sinduri-g merged commit 9b5ffe8 into main May 29, 2026
3 checks passed
@sinduri-g sinduri-g deleted the refactor/yaml-schema-alignment branch May 29, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant