@intentsolutionsio/contributing-clanker 0.1.1 → 0.1.4
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.
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "contributing-clanker",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Local-only OSS contribution command center with 41 deterministic gates against AI-slop failure modes",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Jeremy Longshore",
|
|
7
|
+
"email": "jeremy@intentsolutions.io",
|
|
8
|
+
"url": "https://github.com/jeremylongshore"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/jeremylongshore/contributing-clanker",
|
|
11
|
+
"repository": "https://github.com/jeremylongshore/contributing-clanker",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"oss",
|
|
15
|
+
"contributions",
|
|
16
|
+
"github",
|
|
17
|
+
"ai-slop-prevention",
|
|
18
|
+
"code-review",
|
|
19
|
+
"open-source"
|
|
20
|
+
]
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentsolutionsio/contributing-clanker",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Local-only OSS contribution command center with 41 deterministic gates against AI-slop failure modes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"oss",
|
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
"ai-slop-prevention",
|
|
10
10
|
"code-review",
|
|
11
11
|
"open-source",
|
|
12
|
-
"gates",
|
|
13
|
-
"deterministic",
|
|
14
12
|
"claude-code",
|
|
15
13
|
"claude-plugin",
|
|
16
14
|
"tonsofskills"
|
|
@@ -33,6 +31,7 @@
|
|
|
33
31
|
},
|
|
34
32
|
"files": [
|
|
35
33
|
"README.md",
|
|
34
|
+
".claude-plugin",
|
|
36
35
|
"skills",
|
|
37
36
|
"hooks"
|
|
38
37
|
],
|
|
@@ -83,6 +83,7 @@ After write:
|
|
|
83
83
|
`last_refreshed:`, `default_branch:`).
|
|
84
84
|
- Note the path to the user.
|
|
85
85
|
- Append a build event to `~/.contribute-system/log.jsonl`:
|
|
86
|
+
|
|
86
87
|
```bash
|
|
87
88
|
jq -nc --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg repo "$REPO" --arg dossier "$DOSSIER" \
|
|
88
89
|
'{ts: $ts, event: "researcher_build", details: {repo: $repo, dossier: $dossier}}' \
|
|
@@ -94,11 +95,12 @@ After write:
|
|
|
94
95
|
Refresh replaces auto-generated content but preserves the manual sections.
|
|
95
96
|
|
|
96
97
|
1. **Snapshot manual sections** from the existing dossier:
|
|
97
|
-
- `## Pet peeves & known triggers` (everything until the next
|
|
98
|
-
- `## Failure log` (everything until next
|
|
99
|
-
- `## Notes` (everything until next
|
|
98
|
+
- `## Pet peeves & known triggers` (everything until the next `##` header)
|
|
99
|
+
- `## Failure log` (everything until next `##`)
|
|
100
|
+
- `## Notes` (everything until next `##` or EOF)
|
|
100
101
|
|
|
101
102
|
2. **Run the builder** to a tempfile:
|
|
103
|
+
|
|
102
104
|
```bash
|
|
103
105
|
TMP="${DOSSIER}.tmp.$$"
|
|
104
106
|
~/.contribute-system/bin/researcher-build.sh <owner>/<repo> > "$TMP"
|
|
@@ -109,11 +111,13 @@ Refresh replaces auto-generated content but preserves the manual sections.
|
|
|
109
111
|
placeholders with the snapshotted content.
|
|
110
112
|
|
|
111
113
|
4. **Atomic rename** to commit the refresh:
|
|
114
|
+
|
|
112
115
|
```bash
|
|
113
116
|
mv "$TMP" "$DOSSIER"
|
|
114
117
|
```
|
|
115
118
|
|
|
116
119
|
5. **Log the refresh**:
|
|
120
|
+
|
|
117
121
|
```bash
|
|
118
122
|
jq -nc --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg repo "$REPO" --arg dossier "$DOSSIER" \
|
|
119
123
|
'{ts: $ts, event: "researcher_refresh", details: {repo: $repo, dossier: $dossier}}' \
|
|
@@ -48,6 +48,7 @@ a different tier in ad-hoc mode).
|
|
|
48
48
|
|
|
49
49
|
Read `~/.claude/agent-memory/scout/MEMORY.md` if it exists. It contains
|
|
50
50
|
patterns you've learned over time:
|
|
51
|
+
|
|
51
52
|
- Orgs that reject AI-flagged PRs (lower their score)
|
|
52
53
|
- Tiers that historically don't convert to merges for this user
|
|
53
54
|
- CLA-required repos to avoid for first-pass
|
|
@@ -91,6 +92,7 @@ Common causes: gh not authenticated, rate limit, invalid tier name.
|
|
|
91
92
|
```
|
|
92
93
|
|
|
93
94
|
The scorer reads profile.md itself and applies weights:
|
|
95
|
+
|
|
94
96
|
- `star_tier` ∈ `target_star_tiers` (×0.30)
|
|
95
97
|
- `competing_prs == 0` (×0.25)
|
|
96
98
|
- repo updated within last 30d (×0.20)
|
|
@@ -122,6 +124,7 @@ For **Ad-hoc mode**: do NOT write to candidates/ unless the user says
|
|
|
122
124
|
Walks every candidate file, re-fetches metadata via gh, updates
|
|
123
125
|
frontmatter (star_count, competing_prs, last_refreshed, momentum,
|
|
124
126
|
growth_velocity_pct), drops candidates where:
|
|
127
|
+
|
|
125
128
|
- repo archived
|
|
126
129
|
- maintainer silent >60d
|
|
127
130
|
- issue closed
|
|
@@ -135,6 +138,7 @@ The scripts append events to `~/.contribute-system/log.jsonl`
|
|
|
135
138
|
automatically. You don't need to do this manually.
|
|
136
139
|
|
|
137
140
|
Return ONLY this to the parent conversation:
|
|
141
|
+
|
|
138
142
|
- Mode you ran
|
|
139
143
|
- Counts: candidates by tier (baseline) / refreshed+dropped (refresh) /
|
|
140
144
|
top 5 picks (ad-hoc)
|
|
@@ -124,7 +124,7 @@ status: submitted
|
|
|
124
124
|
pr_number: 137
|
|
125
125
|
pr_url: https://github.com/example-org/example-repo/pull/137
|
|
126
126
|
branch: fix/42-null-deref
|
|
127
|
-
research_path:
|
|
127
|
+
research_path:
|
|
128
128
|
last_refreshed: 2026-04-20T14:30:00Z
|
|
129
129
|
---
|
|
130
130
|
|
|
@@ -177,9 +177,11 @@ Closes #42.
|
|
|
177
177
|
## Test results
|
|
178
178
|
|
|
179
179
|
```
|
|
180
|
-
|
|
180
|
+
|
|
181
|
+
PASS src/**tests**/format.test.ts (2 added)
|
|
181
182
|
Tests: 78 passed, 78 total
|
|
182
183
|
Duration: 1.2s
|
|
184
|
+
|
|
183
185
|
```
|
|
184
186
|
```
|
|
185
187
|
|