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
Update contributing guidlines with data architecture (#67)
* Enhance CONTRIBUTING.md with YAML frontmatter guidelines and key concepts
* Revise contributing guidelines to clarify content contribution methods and provide detailed examples for adding learning materials and creating new topics
* Add guidelines for contributing to archetypes and updating skill progression frontmatter
* Update CONTRIBUTING.md to clarify frontmatter requirements for topics and archetypes
* Add validation guidelines and common errors to CONTRIBUTING.md
* Revise table of contents in CONTRIBUTING.md to enhance clarity on contributing content and validation processes
* Revise contribution guidelines to clarify content overlap checks and topic scope requirements
*[Forking the Repository](#forking-the-repository)
20
23
*[Creating a Branch](#creating-a-branch)
24
+
*[Validating Your Changes](#validating-your-changes)
21
25
*[Committing Your Changes](#committing-your-changes)
22
26
*[Writing Good Commit Messages](#writing-good-commit-messages)
23
27
*[Submitting a Pull Request](#submitting-a-pull-request)
@@ -37,6 +41,17 @@ Please report unacceptable behaviour to the SWEX leadership team.
37
41
38
42
## How Can I Contribute?
39
43
44
+
### Understanding the Data Structure
45
+
46
+
Topics and archetypes use **YAML frontmatter** for structured data (learning resources, skill progressions, metadata). The frontmatter sits at the top of each markdown file and is validated against JSON schemas during build.
47
+
48
+
**Key concepts:**
49
+
***Frontmatter**: YAML block at file top containing structured data
50
+
***Schemas**: Define valid structure (see `schemas/` directory)
51
+
***Validation**: Build fails if frontmatter doesn't match schema
52
+
53
+
For full details, see [Data Architecture](docs/data-architecture.md) and [ADR-0001](docs/ADRs/ADR-0001.md).
54
+
40
55
### Reporting Bugs or Suggesting Enhancements
41
56
42
57
If you find a bug in the website or have an idea for an enhancement (including new content areas), please check the [issue tracker](https://github.com/Zuehlke/archetypes/issues) to see if it has already been reported.
@@ -53,21 +68,157 @@ When suggesting an enhancement:
53
68
* Describe your proposed solution.
54
69
* Explain the benefits this enhancement would bring to users.
55
70
56
-
### Contributing Content (Learning Materials)
71
+
### Contributing Content
72
+
We are excited to receive contributions of learning materials, new topics, and archetypes from the community!
73
+
There are three main ways you can contribute content:
Before starting to write new content, it's a good idea to:
66
-
1.**Check existing content:** Ensure your proposed topic isn't already well-covered.
67
-
2.**Check the issue tracker:** Someone might have already suggested or started working on a similar topic.
68
-
3.**Open an issue (optional but recommended):** Propose your content idea by opening an issue.
69
-
This allows for discussion with maintainers and other contributors, preventing duplicated effort and ensuring your idea aligns with the project's goals.
70
-
Tag it as `content proposal` or similar.
189
+
**Required fields:**`type`, `title`, `url`
190
+
191
+
Place new topics in `src/topics/your-topic-name.md`.
192
+
193
+
#### Contributing to Archetypes
194
+
195
+
Archetypes define career pathways by organizing topics into skill progression stages based on the Dreyfus model.
196
+
197
+
**To add a topic to an existing archetype**, edit the archetype's frontmatter:
198
+
199
+
```yaml
200
+
---
201
+
title: Core Software Engineer
202
+
description: Foundation of technical excellence at Zühlke
WARNING - Doc file contains a link to 'topics/non-existent.md', but target not found
267
+
```
268
+
Fix: Create the referenced topic or remove the broken reference
269
+
99
270
This will format your code and rebuild the static website to ensure everything is up-to-date.
100
271
101
272
You can also run the local development server to visually inspect your changes:
@@ -149,8 +320,13 @@ To ensure consistency and quality, please adhere to the following guidelines whe
149
320
150
321
### Formatting
151
322
152
-
***File Format:** Content should typically be submitted in Markdown (`.md`) format.
153
-
***File Naming:** Use lowercase, hyphenated file names (e.g., `my-new-skill-tutorial.md`).
323
+
***File Format:** Content should be submitted in Markdown (`.md`) format with YAML frontmatter.
324
+
***Frontmatter Requirements:**
325
+
* Topics require at minimum a `title` field
326
+
* Archetypes require `title`, `description`, and `skill_stages`
327
+
* See examples in [Creating a New Topic](#creating-a-new-topic) and [Contributing to Archetypes](#contributing-to-archetypes)
328
+
* Frontmatter is validated against JSON schemas in `schemas/` directory
329
+
***File Naming:** Use kebab-case file names (e.g., `test-driven-development.md`).
154
330
***Directory Structure:** Place new content files in the appropriate directory (e.g., `src/topics/your-topic.md`). Check existing structure or ask if unsure.
155
331
***Images/Assets:** If your content includes images or other assets:
156
332
* Place them in a relevant assets folder (e.g., `assets/your-topic/your-image.png`).
0 commit comments