@opendirectory.dev/skills 0.1.39 → 0.1.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/registry.json +16 -0
- package/skills/product-update-logger/.env.example +4 -0
- package/skills/product-update-logger/README.md +197 -0
- package/skills/product-update-logger/SKILL.md +462 -0
- package/skills/product-update-logger/evals/evals.json +119 -0
- package/skills/product-update-logger/references/changelog-format.md +96 -0
- package/skills/product-update-logger/references/content-rules.md +154 -0
- package/skills/product-update-logger/references/noise-filter.md +86 -0
- package/skills/product-update-logger/scripts/gather.py +364 -0
- package/skills/vc-curated-match/README.md +42 -0
- package/skills/vc-curated-match/SKILL.md +59 -0
- package/skills/vc-curated-match/data/vc_funds.json +277 -0
- package/skills/vc-curated-match/evals/ai-b2b-saas-seed.md +141 -0
- package/skills/vc-curated-match/evals/devtool-oss-seed.md +141 -0
- package/skills/vc-curated-match/evals/evals.json +43 -0
- package/skills/vc-curated-match/evals/fintech-india-preseed.md +142 -0
- package/skills/vc-curated-match/evals/varnan-seed.md +141 -0
- package/skills/vc-curated-match/scripts/fetch_product_context.py +80 -0
- package/skills/vc-curated-match/scripts/generate_report.py +111 -0
- package/skills/vc-curated-match/scripts/match_vcs.py +127 -0
- package/skills/vc-curated-match/scripts/run.py +82 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "eval_001",
|
|
4
|
+
"name": "Free text only -- happy path",
|
|
5
|
+
"description": "User provides 3 items as free text. Expects all categories populated, clean content output.",
|
|
6
|
+
"input": {
|
|
7
|
+
"items": "Added dark mode|Fixed CSV export bug|Improved API speed by 40%",
|
|
8
|
+
"since": 7,
|
|
9
|
+
"repo": ""
|
|
10
|
+
},
|
|
11
|
+
"expected": {
|
|
12
|
+
"changelog_entry_has_categories": ["new", "improved", "fixed"],
|
|
13
|
+
"tweet_thread_count_min": 3,
|
|
14
|
+
"tweet_thread_count_max": 5,
|
|
15
|
+
"all_tweets_under_280_chars": true,
|
|
16
|
+
"linkedin_no_hashtags": true,
|
|
17
|
+
"linkedin_no_markdown": true,
|
|
18
|
+
"no_em_dashes": true,
|
|
19
|
+
"no_banned_words": true,
|
|
20
|
+
"no_invented_metrics": true,
|
|
21
|
+
"one_liner_under_20_words": true
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "eval_002",
|
|
26
|
+
"name": "Git commits only -- noise filtered",
|
|
27
|
+
"description": "No free text. Git log has 4 commits: 2 real, 2 noise (merge + version bump). Expects noise filtered.",
|
|
28
|
+
"input": {
|
|
29
|
+
"items": "",
|
|
30
|
+
"since": 7,
|
|
31
|
+
"repo": ""
|
|
32
|
+
},
|
|
33
|
+
"git_log_mock": [
|
|
34
|
+
"abc1234|Add user avatar upload|Users can now upload a profile picture|2026-04-21",
|
|
35
|
+
"def4567|Merge pull request #45 from user/feature||2026-04-21",
|
|
36
|
+
"ghi7890|bump version to 1.3.2||2026-04-20",
|
|
37
|
+
"jkl0123|Fix timezone bug in scheduler|Events were firing 1 hour early in non-UTC timezones|2026-04-19"
|
|
38
|
+
],
|
|
39
|
+
"expected": {
|
|
40
|
+
"noise_filtered_count": 2,
|
|
41
|
+
"items_remaining": 2,
|
|
42
|
+
"changelog_has_new": true,
|
|
43
|
+
"changelog_has_fixed": true,
|
|
44
|
+
"merge_commit_not_in_output": true,
|
|
45
|
+
"version_bump_not_in_output": true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "eval_003",
|
|
50
|
+
"name": "GitHub PRs as source",
|
|
51
|
+
"description": "GITHUB_TOKEN set, repo provided. Expects PRs to be fetched and used as source. PR body used for context.",
|
|
52
|
+
"input": {
|
|
53
|
+
"items": "",
|
|
54
|
+
"since": 7,
|
|
55
|
+
"repo": "acme/dashboard"
|
|
56
|
+
},
|
|
57
|
+
"mock_prs": [
|
|
58
|
+
{
|
|
59
|
+
"number": 47,
|
|
60
|
+
"title": "Fix CSV export dropping last row",
|
|
61
|
+
"body": "Regression from v1.3.1. Off-by-one error in row iterator. Fixes #102.",
|
|
62
|
+
"merged_at": "2026-04-22T10:30:00Z",
|
|
63
|
+
"labels": ["bug"]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"number": 48,
|
|
67
|
+
"title": "Add bulk delete to contacts list",
|
|
68
|
+
"body": "Users can now select multiple contacts and delete them at once.",
|
|
69
|
+
"merged_at": "2026-04-21T09:00:00Z",
|
|
70
|
+
"labels": []
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"expected": {
|
|
74
|
+
"github_available": true,
|
|
75
|
+
"pr_titles_used_as_source": true,
|
|
76
|
+
"pr_body_used_for_context": true,
|
|
77
|
+
"changelog_has_new": true,
|
|
78
|
+
"changelog_has_fixed": true,
|
|
79
|
+
"regression_context_preserved": true
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "eval_004",
|
|
84
|
+
"name": "Single item -- minimal input",
|
|
85
|
+
"description": "User provides one item. Expects no invented features, concise thread, one-liner under 20 words.",
|
|
86
|
+
"input": {
|
|
87
|
+
"items": "Fixed the login page loading slowly on mobile",
|
|
88
|
+
"since": 7,
|
|
89
|
+
"repo": ""
|
|
90
|
+
},
|
|
91
|
+
"expected": {
|
|
92
|
+
"changelog_entry_has_fixed": true,
|
|
93
|
+
"changelog_entry_has_new": false,
|
|
94
|
+
"tweet_thread_count_min": 2,
|
|
95
|
+
"tweet_thread_count_max": 3,
|
|
96
|
+
"one_liner_under_20_words": true,
|
|
97
|
+
"no_invented_additional_features": true,
|
|
98
|
+
"linkedin_mentions_mobile": true
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "eval_005",
|
|
103
|
+
"name": "Existing changelog -- correct prepend",
|
|
104
|
+
"description": "docs/changelog.md already exists with a prior entry. New run should prepend, not append. Old entry preserved.",
|
|
105
|
+
"input": {
|
|
106
|
+
"items": "Launched API v2|Deprecated old auth endpoint",
|
|
107
|
+
"since": 7,
|
|
108
|
+
"repo": ""
|
|
109
|
+
},
|
|
110
|
+
"existing_changelog": "# Changelog\n\n## Week of April 14, 2026\n\n### New\n- **Dashboard** -- New analytics dashboard with weekly summaries.\n\n---\n",
|
|
111
|
+
"expected": {
|
|
112
|
+
"new_entry_is_prepended_not_appended": true,
|
|
113
|
+
"existing_entry_still_present": true,
|
|
114
|
+
"new_label_not_equal_to_april_14": true,
|
|
115
|
+
"changelog_heading_preserved": true,
|
|
116
|
+
"api_v2_in_new_section": true
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
]
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Changelog Format Reference
|
|
2
|
+
|
|
3
|
+
## Entry Structure
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
## Week of April 23, 2026
|
|
7
|
+
|
|
8
|
+
### New
|
|
9
|
+
- **Feature name** -- One sentence describing what users can now do.
|
|
10
|
+
|
|
11
|
+
### Improved
|
|
12
|
+
- **Feature name** -- One sentence describing how the experience changed.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- **Feature name** -- One sentence describing what was broken and now works.
|
|
16
|
+
|
|
17
|
+
### Under the hood
|
|
18
|
+
- **Component** -- One sentence for developer-relevant changes only.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The `---` separator goes at the bottom of each entry. Entries are prepended, so the most recent is always at the top of the file.
|
|
24
|
+
|
|
25
|
+
## Category Decision Rules
|
|
26
|
+
|
|
27
|
+
**New**: Use when the change adds net-new capability a user could not do before.
|
|
28
|
+
- New page, new API endpoint, new integration, new toggle, new export format
|
|
29
|
+
- If in doubt: can users do something they couldn't do yesterday? -> New
|
|
30
|
+
|
|
31
|
+
**Improved**: Use when an existing feature is made faster, easier, more reliable, or more capable.
|
|
32
|
+
- "Now 40% faster", "Works on mobile", "Added bulk actions to existing list view"
|
|
33
|
+
- Performance improvements that users will notice -> Improved
|
|
34
|
+
- Security patches the user doesn't see -> Under the hood
|
|
35
|
+
|
|
36
|
+
**Fixed**: Something was broken and now works. Bug reports, regression fixes, crash fixes.
|
|
37
|
+
- Prefer specificity: "Fixed: CSV exports no longer drop the last row"
|
|
38
|
+
- If the user never knew it was broken, it can be Improved or omitted
|
|
39
|
+
|
|
40
|
+
**Under the hood**: Infrastructure, dependency updates, refactoring, build changes.
|
|
41
|
+
- Include only if developer-relevant: API changes, breaking changes, new environment requirements
|
|
42
|
+
- Omit if the user wouldn't care
|
|
43
|
+
- Never pad this section -- empty is fine
|
|
44
|
+
|
|
45
|
+
## Version Label Rules
|
|
46
|
+
|
|
47
|
+
**Default (date-based):**
|
|
48
|
+
- `Week of [Month Day, Year]` -- e.g., "Week of April 23, 2026"
|
|
49
|
+
- Use when no semver is detected in existing changelog and user didn't specify
|
|
50
|
+
|
|
51
|
+
**Semver (auto-detected):**
|
|
52
|
+
- If existing changelog headings match `v1.2.3` or `1.2.3` format -> use semver
|
|
53
|
+
- Patch bump (x.x.+1): only if all changes are Fixed
|
|
54
|
+
- Minor bump (x.+1.0): if any New feature is included
|
|
55
|
+
- Show the bumped version: `v1.4.0`
|
|
56
|
+
|
|
57
|
+
**Custom override:**
|
|
58
|
+
- If user says "call it 'The Speed Update'" or "v2.1.0" -> use exactly that
|
|
59
|
+
- Do not auto-format custom labels
|
|
60
|
+
|
|
61
|
+
## Transformation Examples
|
|
62
|
+
|
|
63
|
+
| Raw (commit/PR) | User-facing (changelog) |
|
|
64
|
+
|---|---|
|
|
65
|
+
| `Fix memory leak in worker process` | **Worker stability** -- The app no longer slows down after extended use |
|
|
66
|
+
| `Add CSV export to reports page` | **Export reports** -- Download any report as a CSV from the Reports page |
|
|
67
|
+
| `Improve query performance with index` | **Faster search** -- Search results now load in under half a second |
|
|
68
|
+
| `Add dark mode toggle in Settings` | **Dark mode** -- Toggle it in Settings > Appearance. Works across all views |
|
|
69
|
+
| `Fix timezone bug in scheduler` | **Scheduler** -- Events no longer fire an hour early in non-UTC timezones |
|
|
70
|
+
| `Update dependencies to latest` | (omit -- not user-relevant) |
|
|
71
|
+
| `Refactor auth middleware` | (omit unless breaking change) |
|
|
72
|
+
| `Add rate limiting to API` | **API rate limits** -- Documented in the API reference. 1000 req/min per key |
|
|
73
|
+
| `Fix login page slow on mobile` | **Mobile login** -- The login page now loads instantly on mobile devices |
|
|
74
|
+
| `Migrate to Postgres 16` | **Database upgrade** -- Postgres 16 with improved connection pooling |
|
|
75
|
+
|
|
76
|
+
## What to Omit
|
|
77
|
+
|
|
78
|
+
- Test file changes
|
|
79
|
+
- CI/CD pipeline changes
|
|
80
|
+
- Dependency bumps (unless security-relevant)
|
|
81
|
+
- Documentation-only commits
|
|
82
|
+
- Version bump commits
|
|
83
|
+
- Merge commits
|
|
84
|
+
- Commit messages under 8 characters
|
|
85
|
+
|
|
86
|
+
## Item Format
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
**[Feature name]** -- [one sentence benefit, no jargon]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
- Feature name: 1-3 words, title case, no verbs ("Dark mode" not "Added dark mode")
|
|
93
|
+
- Benefit: past tense ("Added", "Fixed", "Improved")
|
|
94
|
+
- No period at end
|
|
95
|
+
- No nested bullets
|
|
96
|
+
- No links (links belong in the full changelog page, not the entry)
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Content Rules Reference
|
|
2
|
+
|
|
3
|
+
## One-liner
|
|
4
|
+
|
|
5
|
+
- Max 20 words
|
|
6
|
+
- Cover the 1-2 biggest items
|
|
7
|
+
- Plain language -- no jargon, no product name unless ambiguous
|
|
8
|
+
- No period required
|
|
9
|
+
- Not a tagline -- just a summary of what shipped
|
|
10
|
+
|
|
11
|
+
**Good:**
|
|
12
|
+
- "Dark mode, faster API, and a fix for the export bug."
|
|
13
|
+
- "CSV export is live and the login bug is gone."
|
|
14
|
+
- "Redesigned onboarding with two new integrations."
|
|
15
|
+
|
|
16
|
+
**Bad:**
|
|
17
|
+
- "Exciting new features have been released this week." (vague)
|
|
18
|
+
- "We are pleased to announce several improvements to our platform." (corporate)
|
|
19
|
+
- "Dark mode toggle in Settings > Appearance with full cross-view support plus 40% API response time improvement and off-by-one iterator fix." (too long)
|
|
20
|
+
|
|
21
|
+
## Tweet Thread Rules
|
|
22
|
+
|
|
23
|
+
**Structure (3-5 tweets):**
|
|
24
|
+
- Tweet 1: Hook. "We shipped [N] things this week." OR lead with the biggest feature.
|
|
25
|
+
- Tweets 2-N: One item per tweet, 1-2 sentences max. Specific, concrete.
|
|
26
|
+
- Last tweet: Optional CTA -- "Changelog: [link]" or "More next week." Keep it light.
|
|
27
|
+
|
|
28
|
+
**Hard rules:**
|
|
29
|
+
- Each tweet strictly under 280 characters (count spaces and punctuation)
|
|
30
|
+
- No hashtags -- ever
|
|
31
|
+
- No em dashes (use hyphen or rewrite)
|
|
32
|
+
- Active voice: "Dark mode is live" not "Dark mode has been added"
|
|
33
|
+
- No promotional language ("game-changing", "revolutionize", "excited to share")
|
|
34
|
+
- No markdown formatting
|
|
35
|
+
- Thread numbering: 1/4, 2/4 style is optional -- skip if it feels forced
|
|
36
|
+
|
|
37
|
+
**Good tweet:**
|
|
38
|
+
"Dark mode is live. Toggle it in Settings > Appearance. Works everywhere."
|
|
39
|
+
|
|
40
|
+
**Bad tweet:**
|
|
41
|
+
"We're thrilled to announce that dark mode -- a highly requested feature -- has been added to the settings panel and is now available across all views! #darkmode #productupdate"
|
|
42
|
+
|
|
43
|
+
## LinkedIn Post Rules
|
|
44
|
+
|
|
45
|
+
**Format:**
|
|
46
|
+
- No markdown. No asterisks (**bold** renders as **bold** on LinkedIn). No underscores.
|
|
47
|
+
- No hashtags -- ever
|
|
48
|
+
- Short paragraphs: 1-2 sentences, then blank line
|
|
49
|
+
- Total: 150-400 words
|
|
50
|
+
|
|
51
|
+
**Voice:**
|
|
52
|
+
- Founder voice: "We shipped", "We fixed", "We added"
|
|
53
|
+
- Not corporate: never "We are excited to announce", "We are pleased to share", "We are thrilled"
|
|
54
|
+
- Direct: state the fact, then the benefit
|
|
55
|
+
- Close with a question or observation, not a CTA ("What are you waiting for?" is a CTA -- avoid)
|
|
56
|
+
|
|
57
|
+
**Hook (first line):**
|
|
58
|
+
- Under 150 characters (LinkedIn truncates after ~210 chars before "see more")
|
|
59
|
+
- "We shipped [N] updates this week." or lead with the biggest item
|
|
60
|
+
- Formula options:
|
|
61
|
+
1. "We shipped [N] things this week."
|
|
62
|
+
2. "[Biggest feature] is live."
|
|
63
|
+
3. "This week: [feature], [fix], and [improvement]."
|
|
64
|
+
|
|
65
|
+
**Body:**
|
|
66
|
+
- One paragraph per major item (2-3 sentences max per paragraph)
|
|
67
|
+
- Start with what it does, then why it matters
|
|
68
|
+
- Skip Under the hood items -- users don't care
|
|
69
|
+
- Blank line between paragraphs
|
|
70
|
+
|
|
71
|
+
**Close:**
|
|
72
|
+
- One line
|
|
73
|
+
- A question that invites response: "What have you been waiting for us to ship next?"
|
|
74
|
+
- Or an observation: "Smaller releases, shipped more often -- that's the goal."
|
|
75
|
+
- Not: "Check out the full changelog at [link]" (that's a CTA)
|
|
76
|
+
|
|
77
|
+
**Good opening:**
|
|
78
|
+
```
|
|
79
|
+
We shipped 3 updates this week.
|
|
80
|
+
|
|
81
|
+
Dark mode is live. Toggle it in Settings under Appearance.
|
|
82
|
+
|
|
83
|
+
API response time is down 40%. The dashboard now loads in under a second.
|
|
84
|
+
|
|
85
|
+
We also fixed a bug where CSV exports were silently dropping the last row.
|
|
86
|
+
|
|
87
|
+
What feature have you been waiting for?
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Email Snippet Rules
|
|
91
|
+
|
|
92
|
+
**Subject line formula:**
|
|
93
|
+
"What shipped this week: [biggest item] + [1 more]"
|
|
94
|
+
|
|
95
|
+
Examples:
|
|
96
|
+
- "What shipped this week: dark mode + faster API"
|
|
97
|
+
- "What shipped this week: CSV export + 3 bug fixes"
|
|
98
|
+
- "What shipped this week: onboarding redesign"
|
|
99
|
+
|
|
100
|
+
**Body:**
|
|
101
|
+
- 50-100 words
|
|
102
|
+
- Casual, direct. Open with "Here's what we shipped this week:"
|
|
103
|
+
- Bullet list of top 3-4 items with one-line descriptions
|
|
104
|
+
- No marketing language
|
|
105
|
+
- Appropriate for a product newsletter or drip sequence
|
|
106
|
+
|
|
107
|
+
**Good:**
|
|
108
|
+
```
|
|
109
|
+
Subject: What shipped this week: dark mode + faster API
|
|
110
|
+
|
|
111
|
+
Here's what we shipped this week:
|
|
112
|
+
|
|
113
|
+
- Dark mode: toggle in Settings > Appearance
|
|
114
|
+
- API response time: 40% faster, dashboard loads under 1 second
|
|
115
|
+
- Fixed: CSV exports no longer drop the last row
|
|
116
|
+
|
|
117
|
+
Full changelog below.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Banned Words
|
|
121
|
+
|
|
122
|
+
Never use these in any content piece:
|
|
123
|
+
|
|
124
|
+
- powerful
|
|
125
|
+
- robust
|
|
126
|
+
- seamless
|
|
127
|
+
- innovative
|
|
128
|
+
- game-changing
|
|
129
|
+
- streamline / streamlined
|
|
130
|
+
- leverage
|
|
131
|
+
- transform / transformative
|
|
132
|
+
- revolutionize / revolutionary
|
|
133
|
+
- excited to announce
|
|
134
|
+
- pleased to announce
|
|
135
|
+
- we are thrilled
|
|
136
|
+
- cutting-edge
|
|
137
|
+
- best-in-class
|
|
138
|
+
- world-class
|
|
139
|
+
- next-level
|
|
140
|
+
- unlock
|
|
141
|
+
- delightful
|
|
142
|
+
|
|
143
|
+
## Anti-Patterns
|
|
144
|
+
|
|
145
|
+
| Pattern | Why it's wrong |
|
|
146
|
+
|---|---|
|
|
147
|
+
| "We are excited to announce..." | Corporate speak. Say "We shipped." |
|
|
148
|
+
| Hashtags in LinkedIn | This skill never uses hashtags |
|
|
149
|
+
| **bold** in LinkedIn | Renders as literal asterisks |
|
|
150
|
+
| Em dashes (--) in tweets | Use hyphen or rewrite the sentence |
|
|
151
|
+
| Inventing numbers ("3x faster") | Only include metrics present in the source data |
|
|
152
|
+
| Vague superlatives ("major update") | Be specific about what shipped |
|
|
153
|
+
| Padding with filler items | If there's one real item, write about one item |
|
|
154
|
+
| Thread recap tweet ("That's a wrap!") | Wastes a tweet -- skip it |
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Noise Filter Reference
|
|
2
|
+
|
|
3
|
+
## Commit Patterns to Skip
|
|
4
|
+
|
|
5
|
+
These regex patterns match commits that should be excluded from the changelog:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
^Merge (pull request|branch)\b -- merge commits
|
|
9
|
+
^(bump|update) version\b -- version bumps
|
|
10
|
+
^chore[\s:(] -- chore commits (chore: ..., chore(...):)
|
|
11
|
+
^ci[\s:(] -- CI/CD commits
|
|
12
|
+
^build[\s:(] -- build system commits
|
|
13
|
+
^test[\s:(] -- test-only commits
|
|
14
|
+
^docs[\s:(] -- documentation-only commits
|
|
15
|
+
^style[\s:(] -- formatting/style commits
|
|
16
|
+
^fix typo\b -- typo fixes
|
|
17
|
+
^\s*typo\b -- typo commits
|
|
18
|
+
^wip\b -- work in progress
|
|
19
|
+
^revert\b -- reverts (usually indicate something broken)
|
|
20
|
+
^Initial commit$ -- first commit
|
|
21
|
+
^init$ -- init commits
|
|
22
|
+
single-word subject under 8 chars -- too vague to be useful
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Examples: Skip
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Merge pull request #45 from user/feature-branch -> skip (merge commit)
|
|
29
|
+
Merge branch 'main' into feature -> skip (merge commit)
|
|
30
|
+
bump version to 1.3.2 -> skip (version bump)
|
|
31
|
+
Update version: 2.0.1 -> skip (version bump)
|
|
32
|
+
chore: update dependencies -> skip (chore)
|
|
33
|
+
chore(deps): bump lodash to 4.17.21 -> skip (chore)
|
|
34
|
+
ci: fix GitHub Actions workflow -> skip (CI)
|
|
35
|
+
build: update webpack config -> skip (build)
|
|
36
|
+
test: add unit tests for auth module -> skip (test-only)
|
|
37
|
+
docs: update README -> skip (docs-only)
|
|
38
|
+
style: fix linting errors -> skip (style)
|
|
39
|
+
fix typo in error message -> skip (typo)
|
|
40
|
+
wip: experimenting with new approach -> skip (WIP)
|
|
41
|
+
revert "Add experimental feature" -> skip (revert)
|
|
42
|
+
Initial commit -> skip
|
|
43
|
+
Update -> skip (single word, under 8 chars)
|
|
44
|
+
Fix -> skip (single word, under 8 chars)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Examples: Keep
|
|
48
|
+
|
|
49
|
+
Even vague commits that don't match noise patterns should be kept and passed to the AI for judgment:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Update dashboard layout -> keep (AI will decide if useful)
|
|
53
|
+
Improve error messages for API validation -> keep
|
|
54
|
+
Add dark mode toggle in Settings -> keep
|
|
55
|
+
Fix timezone bug in scheduler -> keep
|
|
56
|
+
Refactor authentication flow -> keep (even though technical)
|
|
57
|
+
Increase connection pool size -> keep (performance-relevant)
|
|
58
|
+
Add rate limiting to public API endpoints -> keep (developer-relevant)
|
|
59
|
+
Fix off-by-one error in CSV row iterator -> keep (specific bug)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## PR Labels to Skip
|
|
63
|
+
|
|
64
|
+
These GitHub PR labels indicate noise:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
documentation
|
|
68
|
+
chore
|
|
69
|
+
dependencies
|
|
70
|
+
ci
|
|
71
|
+
test
|
|
72
|
+
tests
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## What the AI Does With Kept Items
|
|
76
|
+
|
|
77
|
+
The AI (in Step 4 of the skill) has final discretion over:
|
|
78
|
+
- Vague commits like "Update dashboard layout" -- may omit if unclear
|
|
79
|
+
- "Under the hood" items -- only includes if developer-relevant
|
|
80
|
+
- Categorization -- assigns each item to New, Improved, Fixed, or Under the hood
|
|
81
|
+
|
|
82
|
+
The noise filter's job is to remove obvious non-user-facing commits before they reach the AI. The AI handles the judgment calls.
|
|
83
|
+
|
|
84
|
+
## The Rule of Thumb
|
|
85
|
+
|
|
86
|
+
If removing the commit from the list wouldn't confuse a user reading the changelog -- filter it out. If it might represent a real user-visible change (even if described technically) -- keep it and let the AI decide.
|