|
| 1 | +# Documentation changelog |
| 2 | + |
| 3 | +Trigger this skill when documentation changes are significant enough to be |
| 4 | +user-facing. This means: new pages, new sections, new functions or SQL |
| 5 | +keywords, restructured content, updated examples, or corrected technical |
| 6 | +instructions. |
| 7 | + |
| 8 | +Do NOT trigger for: typo fixes, whitespace/formatting, alphabetical |
| 9 | +reordering, sidebar-only changes, internal link updates, CI/build config, |
| 10 | +or README updates. |
| 11 | + |
| 12 | +## When to update the changelog |
| 13 | + |
| 14 | +After completing a documentation task, evaluate whether the changes are |
| 15 | +changelog-worthy. If yes, update `documentation/changelog.mdx` as part of the |
| 16 | +same work, before reporting the task as done. |
| 17 | + |
| 18 | +## How to generate a changelog entry |
| 19 | + |
| 20 | +### Step 1: Determine the date range |
| 21 | + |
| 22 | +1. Read `documentation/changelog.mdx` and find the most recent month header |
| 23 | + (format: `## Month YYYY`). |
| 24 | +2. If the changelog does not exist or has no date, use 1 month ago. No |
| 25 | + exceptions. |
| 26 | +3. Store this as `SINCE_DATE`. |
| 27 | +4. Never go further back than the calculated date without user confirmation. |
| 28 | + |
| 29 | +### Step 2: Get commits since that date |
| 30 | + |
| 31 | +```bash |
| 32 | +git log --since="$SINCE_DATE" --pretty=format:"%H|%ad|%s" --date=short --no-merges -- documentation/ |
| 33 | +``` |
| 34 | + |
| 35 | +### Step 3: Get QuestDB releases for the period |
| 36 | + |
| 37 | +```bash |
| 38 | +gh api repos/questdb/questdb/releases --jq '.[] | "\(.tag_name)|\(.published_at)"' |
| 39 | +``` |
| 40 | + |
| 41 | +Filter to releases within the period. Format: |
| 42 | + |
| 43 | +```markdown |
| 44 | +### Releases |
| 45 | + |
| 46 | +- [9.3.2](https://questdb.com/release-notes/) - Released January 28, 2026 |
| 47 | +- [9.3.1](https://questdb.com/release-notes/) - Released January 14, 2026 |
| 48 | +``` |
| 49 | + |
| 50 | +Rules: |
| 51 | +- One line per release, descending order (newest first) |
| 52 | +- Link text is the version number |
| 53 | +- All links point to `https://questdb.com/release-notes/` |
| 54 | +- Date format: "Released Month DD, YYYY" |
| 55 | +- Place "Releases" FIRST in each month (before New, Updated, etc.) |
| 56 | +- Omit if no releases that month |
| 57 | + |
| 58 | +### Step 4: Analyze each commit |
| 59 | + |
| 60 | +For each commit hash, check the diff: |
| 61 | + |
| 62 | +```bash |
| 63 | +git show <hash> --stat --no-color -- '*.md' '*.mdx' |
| 64 | +``` |
| 65 | + |
| 66 | +Read the full diff when the stat is ambiguous: |
| 67 | + |
| 68 | +```bash |
| 69 | +git diff <hash>^..<hash> -- '*.md' '*.mdx' |
| 70 | +``` |
| 71 | + |
| 72 | +**SKIP (cosmetic/internal):** |
| 73 | +- Typo fixes (fewer than 5 words changed) |
| 74 | +- Whitespace/formatting only |
| 75 | +- Navigation/sidebar changes only |
| 76 | +- Internal link updates |
| 77 | +- CI/build config changes |
| 78 | +- README updates (unless user-facing) |
| 79 | +- Alphabetical reordering of existing content |
| 80 | + |
| 81 | +**INCLUDE (user-facing):** |
| 82 | +- New documentation pages |
| 83 | +- New sections in existing pages |
| 84 | +- Updated code examples |
| 85 | +- API reference changes |
| 86 | +- New SQL function docs |
| 87 | +- Configuration option docs |
| 88 | +- Tutorial additions/updates |
| 89 | +- Corrected technical instructions |
| 90 | + |
| 91 | +### Step 5: Categorize changes |
| 92 | + |
| 93 | +Group into: |
| 94 | +- **Releases** - QuestDB releases in the period (from Step 3) |
| 95 | +- **New** - Brand new pages or major new sections (content that did not exist before) |
| 96 | +- **Updated** - Significant updates to existing content (restructured pages, rewritten sections, new examples) |
| 97 | +- **Reference** - Individual functions, parameters, config properties, or syntax additions to existing reference pages |
| 98 | +- **Guides** - Tutorials, how-tos, walkthroughs |
| 99 | + |
| 100 | +### Step 6: Generate the entry |
| 101 | + |
| 102 | +Format as Docusaurus-compatible MDX, one `## Month YYYY` header per month: |
| 103 | + |
| 104 | +```mdx |
| 105 | +## February 2026 |
| 106 | + |
| 107 | +### Releases |
| 108 | + |
| 109 | +- [9.4.0](https://questdb.com/release-notes/) - Released February 15, 2026 |
| 110 | + |
| 111 | +### New |
| 112 | + |
| 113 | +- [TICK Syntax](/docs/query/operators/tick/) - New DSL for expressing complex time intervals |
| 114 | +- [Database Views](/docs/concepts/views/) - Virtual tables for query composition |
| 115 | + |
| 116 | +### Updated |
| 117 | + |
| 118 | +- [Materialized Views](/docs/concepts/materialized-views/) - Added `REFRESH PERIOD` compact syntax |
| 119 | + |
| 120 | +### Reference |
| 121 | + |
| 122 | +- Added `weighted_avg()`, `weighted_stddev_rel()`, `weighted_stddev_freq()` functions |
| 123 | +``` |
| 124 | + |
| 125 | +### Step 7: Validate links BEFORE writing |
| 126 | + |
| 127 | +Before generating any internal link, verify the target file exists: |
| 128 | + |
| 129 | +```bash |
| 130 | +ls documentation/path/to/page.md 2>/dev/null || echo "NOT FOUND" |
| 131 | +``` |
| 132 | + |
| 133 | +If a file does not exist, describe the change without a link: |
| 134 | +- "Added TICK syntax documentation for time intervals" |
| 135 | + |
| 136 | +Never generate a markdown link to a path you have not confirmed exists. |
| 137 | + |
| 138 | +Do NOT run `yarn build` to validate links during iteration. Check the |
| 139 | +filesystem directly. Only run a build check once at the end if needed. |
| 140 | + |
| 141 | +### Step 8: Update the changelog file |
| 142 | + |
| 143 | +Prepend the new entry after the frontmatter and intro paragraph but before |
| 144 | +existing month entries. |
| 145 | + |
| 146 | +The changelog file is `documentation/changelog.mdx` (NOT |
| 147 | +`documentation/docs/changelog.mdx`). |
| 148 | + |
| 149 | +## Writing style |
| 150 | + |
| 151 | +- Focus on what users can now learn or do, not which file was modified. |
| 152 | +- One line per change, concise. |
| 153 | +- Link to the page when the link is verified; otherwise describe without linking. |
| 154 | +- Use sentence case for descriptions. |
0 commit comments