You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Convert packages/scope42-data from a YAML-whole-file parser into a format-agnostic frontmatter extractor driven by a workspace config.
Tasks
Write FORMAT.md spec: frontmatter fields per type, workspace config schema, extension agnosticism, wikilink semantics. See app/example for reference.
Define Zod schema for scope42.yaml (item types → paths + idPattern + optional description; global extensions list)
Trim item Zod schemas in packages/scope42-data/src/model/ to frontmatter fields only (drop description, context, drivers, options, outcome, deciders, comments from the schema)
Replace YAML-whole-file parser in packages/scope42-data/src/io/workspace.ts with a frontmatter extractor that works on any text file (e.g. gray-matter); do not hard-code Markdown
Workspace loader reads scope42.yaml, enumerates configured paths, filters by configured extensions, parses frontmatter, infers type from the source path
Expose parsed items as { id, type, frontmatter, body, filePath } — body is returned as raw text, unparsed
Drop the current .yml-only assumption; ID derives from filename without extension
Migrate all app/example into a new directory example with the new format
Update @scope42/data README (see examples/data-processing for reference)
Part of #430.
Convert
packages/scope42-datafrom a YAML-whole-file parser into a format-agnostic frontmatter extractor driven by a workspace config.Tasks
FORMAT.mdspec: frontmatter fields per type, workspace config schema, extension agnosticism, wikilink semantics. Seeapp/examplefor reference.scope42.yaml(item types → paths +idPattern+ optional description; globalextensionslist)packages/scope42-data/src/model/to frontmatter fields only (dropdescription,context,drivers,options,outcome,deciders,commentsfrom the schema)packages/scope42-data/src/io/workspace.tswith a frontmatter extractor that works on any text file (e.g.gray-matter); do not hard-code Markdownscope42.yaml, enumerates configured paths, filters by configured extensions, parses frontmatter, inferstypefrom the source path{ id, type, frontmatter, body, filePath }—bodyis returned as raw text, unparsed.yml-only assumption; ID derives from filename without extensionapp/exampleinto a new directoryexamplewith the new format@scope42/dataREADME (seeexamples/data-processingfor reference)