social-autoposter 1.0.5 → 1.0.7
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/bin/cli.js +8 -2
- package/package.json +1 -1
- package/setup/SKILL.md +64 -11
package/bin/cli.js
CHANGED
|
@@ -97,11 +97,13 @@ function init() {
|
|
|
97
97
|
console.log(' social_posts.db exists — skipping');
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
// Skill
|
|
100
|
+
// Skill symlinks
|
|
101
101
|
const skillsDir = path.join(os.homedir(), '.claude', 'skills');
|
|
102
102
|
fs.mkdirSync(skillsDir, { recursive: true });
|
|
103
103
|
linkOrRelink(path.join(DEST, 'skill'), path.join(skillsDir, 'social-autoposter'));
|
|
104
104
|
console.log(' ~/.claude/skills/social-autoposter ->', path.join(DEST, 'skill'));
|
|
105
|
+
linkOrRelink(path.join(DEST, 'setup'), path.join(skillsDir, 'social-autoposter-setup'));
|
|
106
|
+
console.log(' ~/.claude/skills/social-autoposter-setup ->', path.join(DEST, 'setup'));
|
|
105
107
|
|
|
106
108
|
// DB symlink: ~/.claude/social_posts.db -> ~/social-autoposter/social_posts.db
|
|
107
109
|
const claudeDir = path.join(os.homedir(), '.claude');
|
|
@@ -143,13 +145,17 @@ function update() {
|
|
|
143
145
|
console.log(' updated', f);
|
|
144
146
|
}
|
|
145
147
|
|
|
146
|
-
// Re-symlink skill and DB in case they broke
|
|
148
|
+
// Re-symlink skill, setup skill, and DB in case they broke
|
|
147
149
|
const skillsDir = path.join(os.homedir(), '.claude', 'skills');
|
|
148
150
|
const claudeDir = path.join(os.homedir(), '.claude');
|
|
149
151
|
try {
|
|
150
152
|
linkOrRelink(path.join(DEST, 'skill'), path.join(skillsDir, 'social-autoposter'));
|
|
151
153
|
console.log(' re-linked ~/.claude/skills/social-autoposter');
|
|
152
154
|
} catch {}
|
|
155
|
+
try {
|
|
156
|
+
linkOrRelink(path.join(DEST, 'setup'), path.join(skillsDir, 'social-autoposter-setup'));
|
|
157
|
+
console.log(' re-linked ~/.claude/skills/social-autoposter-setup');
|
|
158
|
+
} catch {}
|
|
153
159
|
try {
|
|
154
160
|
linkOrRelink(path.join(DEST, 'social_posts.db'), path.join(claudeDir, 'social_posts.db'));
|
|
155
161
|
console.log(' re-linked ~/.claude/social_posts.db');
|
package/package.json
CHANGED
package/setup/SKILL.md
CHANGED
|
@@ -91,20 +91,73 @@ Ask the user for each platform they want to use:
|
|
|
91
91
|
|
|
92
92
|
### Step 4: Configure content
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
This step is the most important one. Take your time. The quality of every future post depends on it.
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
**4a. Subreddits**
|
|
99
|
+
|
|
100
|
+
Ask: "Which subreddits do you want to post in? (comma-separated, or press enter for defaults)"
|
|
101
|
+
|
|
102
|
+
Default suggestion: `ClaudeAI, ClaudeCode, programming, webdev, devops`
|
|
103
|
+
|
|
104
|
+
Write the list to `config.json` under `subreddits`.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
**4b. Content angle — interview the user**
|
|
109
|
+
|
|
110
|
+
Don't just ask for a one-liner. Run a short interview to understand who they are, then write the angle for them.
|
|
111
|
+
|
|
112
|
+
Ask these questions one at a time. Wait for each answer before asking the next.
|
|
113
|
+
|
|
114
|
+
**Question 1:** "What are you currently working on or building? Be specific — what does it actually do?"
|
|
115
|
+
|
|
116
|
+
**Question 2:** "What's your technical background? What languages, tools, or domains do you know well?"
|
|
117
|
+
|
|
118
|
+
**Question 3:** "What's something you've learned recently from your work that most people in your field don't know yet — or that surprised you?"
|
|
119
|
+
|
|
120
|
+
**Question 4:** "What's a recurring frustration or problem you've run into that you think others in your community also face?"
|
|
121
|
+
|
|
122
|
+
**Question 5:** "Do you have any unusual setup or workflow? (e.g. running multiple AI agents, building on niche platforms, working solo on something usually done by teams)"
|
|
123
|
+
|
|
124
|
+
After collecting all answers, synthesize them into a `content_angle` that:
|
|
125
|
+
- Is 2-4 sentences
|
|
126
|
+
- Is written in first person
|
|
127
|
+
- Names specific tools, numbers, and experiences (not generic claims)
|
|
128
|
+
- Captures what makes their perspective genuinely different from a typical developer
|
|
129
|
+
|
|
130
|
+
Show the draft to the user:
|
|
131
|
+
> "Here's the content angle I'll use to write comments in your voice:
|
|
132
|
+
> [DRAFT]
|
|
133
|
+
> Does this sound like you? Want to change anything?"
|
|
134
|
+
|
|
135
|
+
Refine based on their feedback. Only save to `config.json` when they confirm it.
|
|
136
|
+
|
|
137
|
+
**Example of a weak angle** (don't write like this):
|
|
138
|
+
> "Software developer with experience in AI and web development."
|
|
139
|
+
|
|
140
|
+
**Example of a strong angle** (aim for this):
|
|
141
|
+
> "Building a macOS desktop AI agent that controls the browser and writes code via voice. Running 5 Claude agents in parallel on the same codebase — learned the hard way that they need zero file overlap or everything breaks. API costs hit $800/month before I got aggressive about caching."
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
**4c. Projects**
|
|
146
|
+
|
|
147
|
+
Ask: "Do you have any open source projects or products you'd want to mention naturally when the topic comes up? (y/n)"
|
|
148
|
+
|
|
149
|
+
If yes, for each project run through:
|
|
150
|
+
- "What's the name?"
|
|
151
|
+
- "One sentence: what does it do?"
|
|
152
|
+
- "Website URL? (or leave blank)"
|
|
153
|
+
- "GitHub URL? (or leave blank)"
|
|
154
|
+
- "What topics or keywords would make it relevant to mention? (e.g. 'desktop automation, macOS, accessibility APIs')"
|
|
155
|
+
|
|
156
|
+
After each project, ask: "Any more projects to add? (y/n)"
|
|
99
157
|
|
|
100
|
-
|
|
101
|
-
- "Describe your unique experience/perspective in 1-2 sentences. This helps the agent write authentic comments from your point of view."
|
|
102
|
-
- Example: "Building a macOS desktop AI agent. Experience with Swift, Claude API, and browser automation."
|
|
158
|
+
Store each under `config.json` → `projects` array with fields: `name`, `description`, `website`, `github`, `topics` (array of strings).
|
|
103
159
|
|
|
104
|
-
|
|
105
|
-
- "Do you have open source projects or products to mention when relevant? (y/n)"
|
|
106
|
-
- If yes, for each project ask: name, description, website URL, GitHub URL, topic keywords
|
|
107
|
-
- Store in `config.json` under `projects` array
|
|
160
|
+
The `topics` keywords are what trigger natural mentions — when someone in a thread mentions one of these topics, the agent knows this project is relevant to bring up.
|
|
108
161
|
|
|
109
162
|
### Step 5: Verify browser logins
|
|
110
163
|
|