|
| 1 | +--- |
| 2 | +title: "TEMPLATE: Concept Title" |
| 3 | +description: "What [concept] is and why it matters in OCM." |
| 4 | +weight: 999 |
| 5 | +toc: true |
| 6 | +hasMermaid: true |
| 7 | +--- |
| 8 | + |
| 9 | +## What is [Concept]? |
| 10 | + |
| 11 | +Write 2–4 sentences answering: *What is this? What problem does it solve? Where does it fit in OCM?* |
| 12 | + |
| 13 | +Avoid "how to configure" or step-by-step instructions here. This section builds the mental model. |
| 14 | + |
| 15 | +> **Example:** A resolver maps component name patterns to OCM repositories. When OCM encounters a component reference during recursive resolution, it consults the configured resolvers to locate the right repository — without requiring the caller to know where each component lives. |
| 16 | +
|
| 17 | +## Why does it exist? |
| 18 | + |
| 19 | +Explain the design rationale. What would be harder or impossible without this concept? |
| 20 | + |
| 21 | +Use 1–3 short paragraphs or a brief list of motivations. |
| 22 | + |
| 23 | +- **Motivation 1:** Why this was needed |
| 24 | +- **Motivation 2:** What alternative it replaces or improves |
| 25 | +- **Motivation 3:** What constraint or use case it addresses |
| 26 | + |
| 27 | +## How it works |
| 28 | + |
| 29 | +Explain the underlying mechanics — not how to *use* it, but how it *works internally*. |
| 30 | +Use a diagram to build a clear mental model: |
| 31 | + |
| 32 | +```mermaid |
| 33 | +flowchart LR |
| 34 | + A[Input] --> B[Concept mechanism] |
| 35 | + B --> C[Output / Effect] |
| 36 | +``` |
| 37 | + |
| 38 | +Describe the diagram in 2–4 sentences. Walk through the key parts and their relationships. |
| 39 | + |
| 40 | +### [Sub-concept or aspect A] |
| 41 | + |
| 42 | +Explain one distinct aspect of the concept in depth. Use subsections to separate orthogonal concerns. |
| 43 | + |
| 44 | +### [Sub-concept or aspect B] |
| 45 | + |
| 46 | +Continue with the next aspect. |
| 47 | + |
| 48 | +{{< callout type="note" >}} |
| 49 | +Highlight any non-obvious behavior, edge cases, or important constraints that affect how this concept works. |
| 50 | +{{< /callout >}} |
| 51 | + |
| 52 | +## Key properties |
| 53 | + |
| 54 | +Summarize the defining characteristics that readers should remember. |
| 55 | + |
| 56 | +| Property | Description | |
| 57 | +|----------|-------------| |
| 58 | +| **[Property 1]** | What it means and why it matters | |
| 59 | +| **[Property 2]** | What it means and why it matters | |
| 60 | +| **[Property 3]** | What it means and why it matters | |
| 61 | + |
| 62 | +## Relationship to other concepts |
| 63 | + |
| 64 | +Explain how this concept connects to, extends, or depends on other OCM concepts. |
| 65 | +Keep this conceptual — link to the other concept docs instead of repeating their content. |
| 66 | + |
| 67 | +- **[Related Concept A]({{< relref "docs/concepts/<file>.md" >}})** — How they relate (e.g., "Resolvers depend on OCM Repositories as their resolution targets") |
| 68 | +- **[Related Concept B]({{< relref "docs/concepts/<file>.md" >}})** — How they relate |
| 69 | + |
| 70 | +## When to use it |
| 71 | + |
| 72 | +Describe the scenarios in which this concept is relevant. Help readers recognize *when* they are dealing with this concept. |
| 73 | + |
| 74 | +- Use **[Concept]** when you need to… |
| 75 | +- It becomes important when… |
| 76 | +- You can ignore it if… |
| 77 | + |
| 78 | +{{< callout type="tip" >}} |
| 79 | +If this concept has common misconceptions, address them here briefly. |
| 80 | +{{< /callout >}} |
| 81 | + |
| 82 | +## Next steps |
| 83 | + |
| 84 | +- [How-to: <name>]({{< relref "docs/how-to/<file>.md" >}}) |
| 85 | + |
| 86 | +## Related documentation |
| 87 | + |
| 88 | +- [Concept: <name>]({{< relref "docs/concepts/<file>.md" >}}) |
| 89 | +- [Tutorial: <name>]({{< relref "docs/tutorials/<file>.md" >}}) |
| 90 | +- [Reference: <command>]({{< relref "docs/reference/<file>.md" >}}) |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +## ✓ Before publishing |
| 95 | + |
| 96 | +Make sure to comply with our [CONTRIBUTING guide](../CONTRIBUTING.md), |
| 97 | +check the [Concept Writing Checklist](../CONTRIBUTING.md#concept-checklist), |
| 98 | +and ensure the following: |
| 99 | + |
| 100 | +- [ ] Title is a noun or noun phrase — not a verb or task (e.g., "Resolvers", not "How to use resolvers") |
| 101 | +- [ ] Description answers "what is it and why does it matter" |
| 102 | +- [ ] No step-by-step instructions — link to How-tos or Tutorials instead |
| 103 | +- [ ] Explains *why* the concept exists, not just *what* it is |
| 104 | +- [ ] Uses a diagram to build a mental model (Mermaid preferred) |
| 105 | +- [ ] Subsections address distinct orthogonal aspects |
| 106 | +- [ ] "Relationship to other concepts" section with relref links |
| 107 | +- [ ] "When to use it" section helps readers self-identify relevance |
| 108 | +- [ ] No CLI commands that constitute a workflow (short illustrative snippets are OK) |
| 109 | +- [ ] Working `relref` links throughout |
0 commit comments