wtf-p 0.1.0 → 0.2.0

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,278 @@
1
+ ---
2
+ name: wtfp:contribute
3
+ description: Guide through contributing code to WTF-P via Pull Request
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - AskUserQuestion
12
+ ---
13
+
14
+ <objective>
15
+ Guide the user through the complete process of contributing code to WTF-P, from fork to Pull Request.
16
+ </objective>
17
+
18
+ <context>
19
+ @~/.claude/write-the-f-paper/references/github-contrib.md
20
+ @~/.claude/CONTRIBUTING.md
21
+ </context>
22
+
23
+ <process>
24
+
25
+ ## Step 1: Verify Prerequisites
26
+
27
+ Check tools are available:
28
+ ```bash
29
+ gh auth status 2>&1
30
+ git --version
31
+ node --version
32
+ ```
33
+
34
+ If `gh` not authenticated:
35
+ > Run `gh auth login` to authenticate with GitHub.
36
+
37
+ ## Step 2: Understand Contribution Type
38
+
39
+ Use AskUserQuestion:
40
+
41
+ **Question 1: What are you contributing?**
42
+ - Header: "Type"
43
+ - Options:
44
+ - "New command" - Add a /wtfp:* slash command
45
+ - "Bug fix" - Fix an existing issue
46
+ - "Workflow improvement" - Enhance a writing workflow
47
+ - "Documentation" - Improve docs or add examples
48
+ - "Other" - Something else
49
+
50
+ **Question 2: Do you have an existing issue?**
51
+ - Header: "Issue"
52
+ - Options:
53
+ - "Yes, issue #___" - Link to existing issue
54
+ - "No, creating fresh" - New contribution without issue
55
+ - "I'll create one first" - Redirect to /wtfp:request-feature
56
+
57
+ ## Step 3: Setup Repository
58
+
59
+ Check current state:
60
+ ```bash
61
+ git remote -v
62
+ ```
63
+
64
+ **If in wtf-p repo (maintainer):**
65
+ ```bash
66
+ git checkout main
67
+ git pull origin main
68
+ git checkout -b [BRANCH_TYPE]/[SHORT_NAME]
69
+ ```
70
+
71
+ **If not in wtf-p repo (external contributor):**
72
+ ```bash
73
+ # Fork and clone
74
+ gh repo fork akougkas/wtf-p --clone
75
+ cd wtf-p
76
+
77
+ # Create branch
78
+ git checkout -b [BRANCH_TYPE]/[SHORT_NAME]
79
+ ```
80
+
81
+ Branch naming:
82
+ - `feat/add-citation-check` for features
83
+ - `fix/install-path-spaces` for bugs
84
+ - `docs/improve-readme` for documentation
85
+
86
+ ## Step 4: Guide Implementation
87
+
88
+ Based on contribution type:
89
+
90
+ ### For New Command
91
+
92
+ 1. Show command template:
93
+ ```markdown
94
+ ---
95
+ name: wtfp:command-name
96
+ description: Brief description
97
+ allowed-tools:
98
+ - Read
99
+ - Write
100
+ - AskUserQuestion
101
+ ---
102
+
103
+ <objective>
104
+ What this command accomplishes.
105
+ </objective>
106
+
107
+ <context>
108
+ @~/.claude/write-the-f-paper/references/[relevant].md
109
+ </context>
110
+
111
+ <process>
112
+ ## Step 1: ...
113
+ ## Step 2: ...
114
+ </process>
115
+ ```
116
+
117
+ 2. Create file in `commands/wtfp/[name].md`
118
+
119
+ 3. Follow naming conventions:
120
+ - `new-*` for creation
121
+ - `create-*` for generation
122
+ - `plan-*` for planning
123
+ - `write-*` for execution
124
+ - `review-*` for review
125
+ - `check-*` for validation
126
+ - `export-*` for output
127
+
128
+ ### For Bug Fix
129
+
130
+ 1. Identify the file(s) to modify
131
+ 2. Make minimal, focused changes
132
+ 3. Add test coverage if applicable
133
+
134
+ ### For Workflow Improvement
135
+
136
+ 1. Edit file in `write-the-f-paper/workflows/`
137
+ 2. If WCN version exists, update both `.md` and `.wcn.md`
138
+
139
+ ## Step 5: Test Changes
140
+
141
+ ```bash
142
+ # Run existing tests
143
+ npm test
144
+
145
+ # Install locally for manual testing
146
+ node bin/install.js --local --force
147
+
148
+ # Test in Claude Code
149
+ # /wtfp:your-new-command
150
+ ```
151
+
152
+ Ask user to verify:
153
+ - Does the feature work as expected?
154
+ - Any edge cases to handle?
155
+ - Error messages clear?
156
+
157
+ ## Step 6: Commit Changes
158
+
159
+ Stage files:
160
+ ```bash
161
+ git add [FILES]
162
+ git status
163
+ ```
164
+
165
+ Commit with conventional message:
166
+ ```bash
167
+ git commit -m "[TYPE]([SCOPE]): [DESCRIPTION]
168
+
169
+ [Optional body explaining why]
170
+
171
+ [Closes #XX if applicable]"
172
+ ```
173
+
174
+ Examples:
175
+ - `feat(commands): add citation-check command`
176
+ - `fix(cli): handle paths with spaces`
177
+ - `docs(readme): clarify installation steps`
178
+
179
+ ## Step 7: Push and Create PR
180
+
181
+ Push branch:
182
+ ```bash
183
+ git push -u origin [BRANCH_NAME]
184
+ ```
185
+
186
+ Create PR:
187
+ ```bash
188
+ gh pr create \
189
+ --repo akougkas/wtf-p \
190
+ --title "[TYPE]([SCOPE]): [DESCRIPTION]" \
191
+ --body "$(cat <<'EOF'
192
+ ## Summary
193
+ [What this PR does]
194
+
195
+ ## Changes
196
+ - [Change 1]
197
+ - [Change 2]
198
+
199
+ ## Testing
200
+ - [ ] `npm test` passes
201
+ - [ ] Manually tested in Claude Code
202
+ - [ ] [Specific test scenario]
203
+
204
+ ## Related Issues
205
+ [Closes #XX or References #XX]
206
+ EOF
207
+ )"
208
+ ```
209
+
210
+ ## Step 8: Post-PR Guidance
211
+
212
+ After PR is created:
213
+
214
+ 1. **Show PR URL** to user
215
+ 2. **Explain review process:**
216
+ - Maintainer will review within a few days
217
+ - May request changes or ask questions
218
+ - Once approved, will be merged to main
219
+
220
+ 3. **Next steps:**
221
+ - Watch for review comments
222
+ - Respond to feedback
223
+ - Update PR if changes requested
224
+
225
+ </process>
226
+
227
+ <templates>
228
+
229
+ ## PR Title Format
230
+ ```
231
+ <type>(<scope>): <description>
232
+ ```
233
+
234
+ Types: feat, fix, docs, refactor, test, chore
235
+ Scopes: commands, workflows, cli, templates
236
+
237
+ ## PR Body Template
238
+ ```markdown
239
+ ## Summary
240
+ Brief description of what this PR accomplishes.
241
+
242
+ ## Changes
243
+ - Added/Modified/Removed X
244
+ - Updated Y to do Z
245
+
246
+ ## Testing
247
+ How to verify this works:
248
+ 1. Install locally: `node bin/install.js --local`
249
+ 2. Run: `/wtfp:command`
250
+ 3. Expected: [outcome]
251
+
252
+ ## Screenshots (if UI changes)
253
+ [Paste screenshots here]
254
+
255
+ ## Related Issues
256
+ Closes #XX
257
+ ```
258
+
259
+ </templates>
260
+
261
+ <error-handling>
262
+
263
+ **Fork already exists:** Use existing fork
264
+ ```bash
265
+ gh repo sync [USERNAME]/wtf-p
266
+ ```
267
+
268
+ **Branch already exists:**
269
+ ```bash
270
+ git checkout [BRANCH]
271
+ git pull origin main
272
+ ```
273
+
274
+ **Push rejected:** Need to pull first or force push (with caution)
275
+
276
+ **PR creation fails:** Check if branch was pushed, verify gh auth
277
+
278
+ </error-handling>
@@ -333,10 +333,35 @@ Claude adapts its role per section:
333
333
  /wtfp:respond-reviews # Generate response doc
334
334
  ```
335
335
 
336
+ ## Contributing to WTF-P
337
+
338
+ Found a bug or want a new feature? Use these commands:
339
+
340
+ **`/wtfp:report-bug`**
341
+ Report a bug via GitHub issue.
342
+ - Guides you through describing the problem
343
+ - Collects environment info automatically
344
+ - Creates well-formatted issue with `gh` CLI
345
+
346
+ **`/wtfp:request-feature`**
347
+ Request a new feature via GitHub issue.
348
+ - Helps articulate what you need and why
349
+ - Checks for duplicate requests
350
+ - Can lead into implementation if desired
351
+
352
+ **`/wtfp:contribute`**
353
+ Guide through contributing code via Pull Request.
354
+ - Fork → Branch → Implement → Test → PR workflow
355
+ - Works for new commands, bug fixes, docs
356
+ - Follows project conventions automatically
357
+
336
358
  ## Getting Help
337
359
 
338
360
  - Read `.planning/PROJECT.md` for paper vision
339
361
  - Read `.planning/STATE.md` for current context
340
362
  - Check `.planning/ROADMAP.md` for section status
341
363
  - Run `/wtfp:progress` to check where you're at
364
+ - Report bugs: `/wtfp:report-bug`
365
+ - Request features: `/wtfp:request-feature`
366
+ - GitHub: https://github.com/akougkas/wtf-p
342
367
  </reference>
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: wtfp:report-bug
3
+ description: Report a bug in WTF-P via GitHub issue
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - AskUserQuestion
8
+ ---
9
+
10
+ <objective>
11
+ Help the user report a bug in WTF-P by creating a well-formatted GitHub issue.
12
+ </objective>
13
+
14
+ <context>
15
+ @~/.claude/write-the-f-paper/references/github-contrib.md
16
+ </context>
17
+
18
+ <process>
19
+
20
+ ## Step 1: Verify GitHub CLI
21
+
22
+ Check if `gh` is authenticated:
23
+
24
+ ```bash
25
+ gh auth status 2>&1
26
+ ```
27
+
28
+ If not authenticated, inform the user:
29
+ > To create GitHub issues, you need to authenticate the GitHub CLI.
30
+ > Run: `gh auth login`
31
+ > Then try this command again.
32
+
33
+ ## Step 2: Gather Bug Information
34
+
35
+ Use AskUserQuestion to collect bug details:
36
+
37
+ **Question 1: Bug Category**
38
+ - Header: "Bug Type"
39
+ - Options:
40
+ - "Command fails" - A /wtfp:* command doesn't work as expected
41
+ - "Installation issue" - Problems with npx wtf-p install/uninstall
42
+ - "Workflow error" - Writing workflow produces wrong output
43
+ - "Documentation gap" - Docs are missing or incorrect
44
+
45
+ **Question 2: Bug Description**
46
+ - Header: "Description"
47
+ - Options:
48
+ - "Let me describe it" - User provides description
49
+ - "Help me articulate" - Claude helps user describe the bug
50
+
51
+ If user needs help articulating, ask follow-up questions:
52
+ - What were you trying to do?
53
+ - What happened instead?
54
+ - What did you expect to happen?
55
+
56
+ ## Step 3: Gather Environment Info
57
+
58
+ Automatically collect:
59
+ ```bash
60
+ npx wtf-p --version 2>/dev/null || echo "Not installed via npx"
61
+ node --version
62
+ uname -s 2>/dev/null || echo "Unknown OS"
63
+ ```
64
+
65
+ ## Step 4: Collect Reproduction Steps
66
+
67
+ Ask user:
68
+ - What command or action triggered the bug?
69
+ - Can you reproduce it consistently?
70
+ - Any error messages? (ask to paste them)
71
+
72
+ ## Step 5: Draft the Issue
73
+
74
+ Create a draft and show it to the user:
75
+
76
+ ```markdown
77
+ ## Bug Description
78
+ [From user input]
79
+
80
+ ## Steps to Reproduce
81
+ 1. [Step 1]
82
+ 2. [Step 2]
83
+ 3. [What happened vs expected]
84
+
85
+ ## Environment
86
+ - WTF-P version: [collected]
87
+ - Node.js version: [collected]
88
+ - OS: [collected]
89
+
90
+ ## Additional Context
91
+ [Error messages, logs, screenshots mentioned]
92
+ ```
93
+
94
+ ## Step 6: Confirm and Create
95
+
96
+ Ask user to confirm:
97
+ - "Create this issue?" with options: Yes / Edit first / Cancel
98
+
99
+ If confirmed, create the issue:
100
+
101
+ ```bash
102
+ gh issue create \
103
+ --repo akougkas/wtf-p \
104
+ --title "bug: [SHORT_TITLE]" \
105
+ --body "$(cat <<'EOF'
106
+ [FULL_BODY_HERE]
107
+ EOF
108
+ )" \
109
+ --label "bug"
110
+ ```
111
+
112
+ ## Step 7: Report Success
113
+
114
+ Show the user:
115
+ - Issue URL (from gh output)
116
+ - Issue number
117
+ - What happens next (maintainer will review)
118
+
119
+ </process>
120
+
121
+ <error-handling>
122
+
123
+ **gh not installed**: Direct user to https://cli.github.com/
124
+
125
+ **gh not authenticated**: Guide through `gh auth login`
126
+
127
+ **Network error**: Save draft locally, retry later
128
+
129
+ **Permission denied**: User may need to fork first for external contributors
130
+
131
+ </error-handling>
@@ -0,0 +1,160 @@
1
+ ---
2
+ name: wtfp:request-feature
3
+ description: Request a new feature for WTF-P via GitHub issue
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - AskUserQuestion
8
+ ---
9
+
10
+ <objective>
11
+ Help the user request a new feature for WTF-P by creating a well-formatted GitHub issue.
12
+ </objective>
13
+
14
+ <context>
15
+ @~/.claude/write-the-f-paper/references/github-contrib.md
16
+ </context>
17
+
18
+ <process>
19
+
20
+ ## Step 1: Verify GitHub CLI
21
+
22
+ Check if `gh` is authenticated:
23
+
24
+ ```bash
25
+ gh auth status 2>&1
26
+ ```
27
+
28
+ If not authenticated, inform the user:
29
+ > To create GitHub issues, you need to authenticate the GitHub CLI.
30
+ > Run: `gh auth login`
31
+ > Then try this command again.
32
+
33
+ ## Step 2: Understand the Feature Request
34
+
35
+ Use AskUserQuestion to understand what the user wants:
36
+
37
+ **Question 1: Feature Category**
38
+ - Header: "Category"
39
+ - Options:
40
+ - "New command" - A new /wtfp:* slash command
41
+ - "Workflow enhancement" - Improve existing writing workflow
42
+ - "Installation/CLI" - Improve npx wtf-p experience
43
+ - "Template/Format" - New venue template or output format
44
+ - "Integration" - Connect with other tools (Zotero, Overleaf, etc.)
45
+
46
+ **Question 2: Complexity**
47
+ - Header: "Scope"
48
+ - Options:
49
+ - "Small tweak" - Minor change to existing behavior
50
+ - "New capability" - Add something that doesn't exist
51
+ - "Major feature" - Significant new functionality
52
+
53
+ ## Step 3: Gather Feature Details
54
+
55
+ Based on category, ask targeted questions:
56
+
57
+ **For new command:**
58
+ - What should `/wtfp:new-command` do?
59
+ - When would you use it in your writing workflow?
60
+ - What inputs does it need? What outputs?
61
+
62
+ **For workflow enhancement:**
63
+ - Which workflow needs improvement?
64
+ - What's missing or frustrating?
65
+ - How should it work differently?
66
+
67
+ **For templates/formats:**
68
+ - Which venue or format?
69
+ - Do you have example requirements?
70
+
71
+ ## Step 4: Explore Use Case
72
+
73
+ Ask user:
74
+ - What problem does this solve for you?
75
+ - How often would you use this?
76
+ - Have you tried any workarounds?
77
+
78
+ ## Step 5: Check for Duplicates
79
+
80
+ Search existing issues:
81
+ ```bash
82
+ gh issue list --repo akougkas/wtf-p --search "[KEYWORDS]" --limit 5
83
+ ```
84
+
85
+ If similar issues exist, show them to the user and ask:
86
+ - "These similar issues exist. Should we add to one of these, or create a new issue?"
87
+
88
+ ## Step 6: Draft the Feature Request
89
+
90
+ Create a draft:
91
+
92
+ ```markdown
93
+ ## Feature Description
94
+ [Clear description of the feature]
95
+
96
+ ## Use Case
97
+ [Why this is needed, what problem it solves]
98
+
99
+ ## Proposed Solution
100
+ [How it should work, with examples]
101
+
102
+ ### Example Usage
103
+ ```
104
+ /wtfp:new-command
105
+ > [Expected interaction]
106
+ ```
107
+
108
+ ## Alternatives Considered
109
+ [Other approaches, if discussed]
110
+
111
+ ## Additional Context
112
+ [Related features, prior art, mockups]
113
+ ```
114
+
115
+ ## Step 7: Offer Implementation Path
116
+
117
+ Ask user:
118
+ - Header: "Next Step"
119
+ - Options:
120
+ - "Create issue only" - Submit as feature request for maintainers
121
+ - "I'll implement it" - Create issue + guide through PR process
122
+ - "Help me implement" - Claude assists with implementation
123
+
124
+ If user wants to implement, transition to `/wtfp:contribute` workflow.
125
+
126
+ ## Step 8: Create the Issue
127
+
128
+ If confirmed:
129
+
130
+ ```bash
131
+ gh issue create \
132
+ --repo akougkas/wtf-p \
133
+ --title "feat: [SHORT_TITLE]" \
134
+ --body "$(cat <<'EOF'
135
+ [FULL_BODY_HERE]
136
+ EOF
137
+ )" \
138
+ --label "enhancement"
139
+ ```
140
+
141
+ ## Step 9: Report Success
142
+
143
+ Show the user:
144
+ - Issue URL
145
+ - Issue number
146
+ - Encourage voting/commenting to show interest
147
+ - If they want to implement: next steps
148
+
149
+ </process>
150
+
151
+ <tips>
152
+
153
+ **Good feature requests include:**
154
+ - Specific use case (not just "it would be nice")
155
+ - Example of how it would work
156
+ - Explanation of why existing features don't solve this
157
+
158
+ **Signal boost:** Encourage users to share the issue link with others who might want the feature. More reactions = higher priority.
159
+
160
+ </tips>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wtf-p",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "The G.O.A.T. meta-prompting system for 10x researchers who need to submit papers and projects and proposals YESTERDAY.",
5
5
  "bin": {
6
6
  "wtfp": "bin/install.js",
@@ -8,7 +8,9 @@
8
8
  "wtf-p-uninstall": "bin/uninstall.js"
9
9
  },
10
10
  "scripts": {
11
- "test": "node test/sanity.js",
11
+ "test": "node test/sanity.js && node test/paths.js",
12
+ "test:integration": "node test/integration.js",
13
+ "test:all": "npm test && npm run test:integration",
12
14
  "preflight": "node scripts/preflight.js",
13
15
  "release": "node scripts/release.js"
14
16
  },