wtf-p 0.1.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.
- package/LICENSE +21 -0
- package/README.md +338 -0
- package/bin/install.js +358 -0
- package/bin/uninstall.js +485 -0
- package/commands/wtfp/analyze-bib.md +326 -0
- package/commands/wtfp/check-refs.md +205 -0
- package/commands/wtfp/create-outline.md +275 -0
- package/commands/wtfp/discuss-section.md +71 -0
- package/commands/wtfp/export-latex.md +216 -0
- package/commands/wtfp/help.md +342 -0
- package/commands/wtfp/insert-section.md +130 -0
- package/commands/wtfp/list-assumptions.md +109 -0
- package/commands/wtfp/map-project.md +197 -0
- package/commands/wtfp/new-paper.md +443 -0
- package/commands/wtfp/pause-writing.md +145 -0
- package/commands/wtfp/plan-revision.md +180 -0
- package/commands/wtfp/plan-section.md +247 -0
- package/commands/wtfp/polish-prose.md +177 -0
- package/commands/wtfp/progress.md +325 -0
- package/commands/wtfp/remove-section.md +147 -0
- package/commands/wtfp/research-gap.md +235 -0
- package/commands/wtfp/resume-writing.md +142 -0
- package/commands/wtfp/review-section.md +409 -0
- package/commands/wtfp/submit-milestone.md +211 -0
- package/commands/wtfp/write-section.md +273 -0
- package/package.json +40 -0
- package/write-the-f-paper/references/checkpoints.md +213 -0
- package/write-the-f-paper/references/continuation-format.md +223 -0
- package/write-the-f-paper/references/git-integration.md +241 -0
- package/write-the-f-paper/references/imrad-structure.md +212 -0
- package/write-the-f-paper/references/length-estimation.md +148 -0
- package/write-the-f-paper/references/plan-format.md +361 -0
- package/write-the-f-paper/references/principles.md +158 -0
- package/write-the-f-paper/references/questioning.md +132 -0
- package/write-the-f-paper/references/research-pitfalls.md +208 -0
- package/write-the-f-paper/templates/config.json +30 -0
- package/write-the-f-paper/templates/context.md +179 -0
- package/write-the-f-paper/templates/continue-here.md +142 -0
- package/write-the-f-paper/templates/data-inventory.md +142 -0
- package/write-the-f-paper/templates/discovery.md +146 -0
- package/write-the-f-paper/templates/issues.md +59 -0
- package/write-the-f-paper/templates/manuscript.md +253 -0
- package/write-the-f-paper/templates/narrative-arc.md +227 -0
- package/write-the-f-paper/templates/outline.md +274 -0
- package/write-the-f-paper/templates/phase-prompt.md +348 -0
- package/write-the-f-paper/templates/prior-drafts.md +204 -0
- package/write-the-f-paper/templates/project-context/argument-structure.md +267 -0
- package/write-the-f-paper/templates/project-context/bibliography.md +152 -0
- package/write-the-f-paper/templates/project-context/gaps.md +122 -0
- package/write-the-f-paper/templates/project-context/imrad.md +140 -0
- package/write-the-f-paper/templates/project-context/peer-review.md +152 -0
- package/write-the-f-paper/templates/project-context/style-guide.md +198 -0
- package/write-the-f-paper/templates/project-context/tools.md +170 -0
- package/write-the-f-paper/templates/project.md +185 -0
- package/write-the-f-paper/templates/research.md +384 -0
- package/write-the-f-paper/templates/review-comments.md +253 -0
- package/write-the-f-paper/templates/revision-issues.md +169 -0
- package/write-the-f-paper/templates/roadmap.md +187 -0
- package/write-the-f-paper/templates/section-archive.md +178 -0
- package/write-the-f-paper/templates/section-context.md +114 -0
- package/write-the-f-paper/templates/section.md +128 -0
- package/write-the-f-paper/templates/state.md +244 -0
- package/write-the-f-paper/templates/summary.md +277 -0
- package/write-the-f-paper/venues/acm-cs.yaml +102 -0
- package/write-the-f-paper/venues/arxiv-ml.yaml +103 -0
- package/write-the-f-paper/venues/ieee-cs.yaml +100 -0
- package/write-the-f-paper/venues/nature.yaml +81 -0
- package/write-the-f-paper/venues/thesis-chapter.yaml +101 -0
- package/write-the-f-paper/workflows/create-outline.md +462 -0
- package/write-the-f-paper/workflows/create-outline.wcn.md +194 -0
- package/write-the-f-paper/workflows/discuss-section.md +249 -0
- package/write-the-f-paper/workflows/discuss-section.wcn.md +63 -0
- package/write-the-f-paper/workflows/execute-section.md +704 -0
- package/write-the-f-paper/workflows/execute-section.wcn.md +219 -0
- package/write-the-f-paper/workflows/list-assumptions.md +183 -0
- package/write-the-f-paper/workflows/list-assumptions.wcn.md +42 -0
- package/write-the-f-paper/workflows/lit-review-phase.md +281 -0
- package/write-the-f-paper/workflows/lit-review-phase.wcn.md +92 -0
- package/write-the-f-paper/workflows/map-project.md +359 -0
- package/write-the-f-paper/workflows/map-project.wcn.md +73 -0
- package/write-the-f-paper/workflows/plan-section.md +409 -0
- package/write-the-f-paper/workflows/plan-section.wcn.md +236 -0
- package/write-the-f-paper/workflows/research-gap.md +469 -0
- package/write-the-f-paper/workflows/research-gap.wcn.md +119 -0
- package/write-the-f-paper/workflows/resume-paper.md +274 -0
- package/write-the-f-paper/workflows/resume-paper.wcn.md +93 -0
- package/write-the-f-paper/workflows/review-section.md +329 -0
- package/write-the-f-paper/workflows/review-section.wcn.md +91 -0
- package/write-the-f-paper/workflows/submit-draft.md +368 -0
- package/write-the-f-paper/workflows/submit-draft.wcn.md +69 -0
- package/write-the-f-paper/workflows/transition.md +375 -0
- package/write-the-f-paper/workflows/transition.wcn.md +113 -0
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Define the sections of the document. Each section is a coherent chunk of writing
|
|
3
|
+
that delivers part of the argument. The outline provides structure, not detailed prose.
|
|
4
|
+
</purpose>
|
|
5
|
+
|
|
6
|
+
<required_reading>
|
|
7
|
+
**Read these files NOW:**
|
|
8
|
+
|
|
9
|
+
1. ~/.claude/write-the-f-paper/templates/roadmap.md
|
|
10
|
+
2. ~/.claude/write-the-f-paper/templates/state.md
|
|
11
|
+
3. Read `.planning/PROJECT.md` if it exists
|
|
12
|
+
</required_reading>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
|
|
16
|
+
<step name="check_brief">
|
|
17
|
+
```bash
|
|
18
|
+
cat .planning/PROJECT.md 2>/dev/null || echo "No brief found"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**If no brief exists:**
|
|
22
|
+
Ask: "No project brief found. Want to create one first, or proceed with outline?"
|
|
23
|
+
|
|
24
|
+
If proceeding without brief, gather quick context:
|
|
25
|
+
|
|
26
|
+
- What type of document? (journal paper, conference paper, grant proposal)
|
|
27
|
+
- What's the core argument/thesis?
|
|
28
|
+
- Target venue and constraints (page limit, format)?
|
|
29
|
+
</step>
|
|
30
|
+
|
|
31
|
+
<step name="detect_document_type">
|
|
32
|
+
Infer document type from the brief/user request:
|
|
33
|
+
|
|
34
|
+
| Keywords | Document Type | Section Template |
|
|
35
|
+
| -------- | ------------- | ---------------- |
|
|
36
|
+
| "journal", "paper", "article", "manuscript" | IMRaD Paper | intro, methods, results, discussion |
|
|
37
|
+
| "conference", "short paper", "workshop" | Conference Paper | intro, background, approach, evaluation, conclusion |
|
|
38
|
+
| "grant", "proposal", "NSF", "NIH", "funding" | Grant Proposal | aims, significance, innovation, approach, timeline |
|
|
39
|
+
| "thesis", "dissertation", "chapter" | Thesis Chapter | varies by field |
|
|
40
|
+
| "review", "survey", "literature review" | Review Paper | intro, methodology, findings, synthesis |
|
|
41
|
+
|
|
42
|
+
**Present detection:**
|
|
43
|
+
```
|
|
44
|
+
Detected: [document type] → [section template]
|
|
45
|
+
Use this structure? (Y / customize / show options)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**If multiple types apply:**
|
|
49
|
+
```
|
|
50
|
+
Detected multiple possible types:
|
|
51
|
+
- IMRaD Paper (research focus)
|
|
52
|
+
- Conference Paper (shorter format)
|
|
53
|
+
|
|
54
|
+
Select type (or describe):
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Store selected template** for section generation.
|
|
58
|
+
</step>
|
|
59
|
+
|
|
60
|
+
<step name="identify_sections">
|
|
61
|
+
Derive sections from the document type and content needs.
|
|
62
|
+
|
|
63
|
+
**Check depth setting:**
|
|
64
|
+
```bash
|
|
65
|
+
cat .planning/config.json 2>/dev/null | grep depth
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
<depth_guidance>
|
|
69
|
+
**Depth controls granularity, not artificial inflation.**
|
|
70
|
+
|
|
71
|
+
| Depth | Typical Sections | Typical Plans/Section | Writing Tasks/Plan |
|
|
72
|
+
|-------|-----------------|----------------------|-------------------|
|
|
73
|
+
| Quick | 4-6 | 1-2 | 2-3 |
|
|
74
|
+
| Standard | 6-10 | 2-4 | 2-3 |
|
|
75
|
+
| Comprehensive | 8-15 | 3-6 | 2-3 |
|
|
76
|
+
|
|
77
|
+
**Key principle:** Derive sections from document requirements. Depth determines how you break down complex sections, not a target to hit.
|
|
78
|
+
|
|
79
|
+
- Comprehensive Methods section = 4 plans (because methods genuinely has 4 subsections)
|
|
80
|
+
- Comprehensive Abstract = 1 plan (because that's all it is)
|
|
81
|
+
|
|
82
|
+
For comprehensive depth:
|
|
83
|
+
- Don't compress multiple arguments into single sections
|
|
84
|
+
- Each major contribution gets proper space
|
|
85
|
+
- Let small sections stay small—don't pad to hit a number
|
|
86
|
+
|
|
87
|
+
For quick depth:
|
|
88
|
+
- Combine related content aggressively
|
|
89
|
+
- Focus on critical argument path
|
|
90
|
+
- Defer nice-to-haves to revision phases
|
|
91
|
+
</depth_guidance>
|
|
92
|
+
|
|
93
|
+
**Section Numbering System:**
|
|
94
|
+
|
|
95
|
+
Use integer sections (1, 2, 3) for planned document structure.
|
|
96
|
+
|
|
97
|
+
Use decimal sections (2.1, 2.2) for urgent insertions:
|
|
98
|
+
- Decimal sections inserted between integers
|
|
99
|
+
- Mark with "(INSERTED)" in section title
|
|
100
|
+
- Created when critical content discovered after planning
|
|
101
|
+
- Examples: addressing reviewer comments, adding missing analysis
|
|
102
|
+
|
|
103
|
+
**Deriving sections:**
|
|
104
|
+
|
|
105
|
+
1. List all required sections for document type
|
|
106
|
+
2. Group related arguments into coherent sections
|
|
107
|
+
3. Each section should deliver ONE complete part of the argument
|
|
108
|
+
4. If a section covers unrelated points: split it
|
|
109
|
+
5. If a section can't stand alone as a unit: merge it
|
|
110
|
+
6. Order by logical flow (setup → method → findings → meaning)
|
|
111
|
+
|
|
112
|
+
Good sections are:
|
|
113
|
+
- **Coherent**: Each delivers one complete argumentative unit
|
|
114
|
+
- **Sequential**: Later sections build on earlier
|
|
115
|
+
- **Self-contained**: Can be verified and understood on its own
|
|
116
|
+
|
|
117
|
+
Common section patterns by document type:
|
|
118
|
+
|
|
119
|
+
**IMRaD Paper:**
|
|
120
|
+
- Abstract → Introduction → Methods → Results → Discussion → Conclusion
|
|
121
|
+
|
|
122
|
+
**Conference Paper:**
|
|
123
|
+
- Abstract → Introduction → Background → Approach → Evaluation → Discussion → Conclusion
|
|
124
|
+
|
|
125
|
+
**Grant Proposal:**
|
|
126
|
+
- Specific Aims → Significance → Innovation → Approach → Timeline → Budget
|
|
127
|
+
</step>
|
|
128
|
+
|
|
129
|
+
<step name="detect_research_needs">
|
|
130
|
+
**For each section, determine if literature research is likely needed.**
|
|
131
|
+
|
|
132
|
+
Scan the brief and section descriptions for research triggers:
|
|
133
|
+
|
|
134
|
+
<research_triggers>
|
|
135
|
+
**Likely (flag the section):**
|
|
136
|
+
|
|
137
|
+
| Trigger Pattern | Why Research Needed |
|
|
138
|
+
| --------------- | ------------------- |
|
|
139
|
+
| "literature review", "related work", "background" | Core purpose is citing prior work |
|
|
140
|
+
| "compare to", "differs from", "unlike" | Need to accurately represent prior work |
|
|
141
|
+
| "builds on", "extends", "improves" | Need to understand what's being extended |
|
|
142
|
+
| "controversial", "debated", "contested" | Need to represent multiple perspectives |
|
|
143
|
+
| "recent advances", "state of the art", "current" | Need up-to-date literature |
|
|
144
|
+
| "methodology borrowed from" | Need to cite and accurately describe |
|
|
145
|
+
| Any claim requiring external evidence | Need sources to support |
|
|
146
|
+
|
|
147
|
+
**Unlikely (no flag needed):**
|
|
148
|
+
|
|
149
|
+
| Pattern | Why No Research |
|
|
150
|
+
| ------- | --------------- |
|
|
151
|
+
| "describe our method", "our approach" | Reporting own work |
|
|
152
|
+
| "results show", "we found" | Presenting own findings |
|
|
153
|
+
| "data collected", "analysis performed" | Describing own process |
|
|
154
|
+
| "limitations of our study" | Self-reflection on own work |
|
|
155
|
+
|
|
156
|
+
</research_triggers>
|
|
157
|
+
|
|
158
|
+
**For each section, assign:**
|
|
159
|
+
- `Research: Likely ([reason])` + `Research topics: [what to investigate]`
|
|
160
|
+
- `Research: Unlikely ([reason])`
|
|
161
|
+
|
|
162
|
+
Present research assessment:
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
Research needs detected:
|
|
166
|
+
|
|
167
|
+
Section 1: Introduction
|
|
168
|
+
Research: Likely (establishing gap requires citing prior work)
|
|
169
|
+
Topics: Prior approaches to [problem], their limitations
|
|
170
|
+
|
|
171
|
+
Section 2: Methods
|
|
172
|
+
Research: Unlikely (describing own methodology)
|
|
173
|
+
|
|
174
|
+
Section 3: Related Work
|
|
175
|
+
Research: Likely (core purpose)
|
|
176
|
+
Topics: [theme 1], [theme 2], contrasting approaches
|
|
177
|
+
|
|
178
|
+
Section 4: Results
|
|
179
|
+
Research: Unlikely (presenting own findings)
|
|
180
|
+
|
|
181
|
+
Section 5: Discussion
|
|
182
|
+
Research: Likely (interpreting findings in context of literature)
|
|
183
|
+
Topics: How findings relate to prior work
|
|
184
|
+
|
|
185
|
+
Does this look right? (yes / adjust)
|
|
186
|
+
```
|
|
187
|
+
</step>
|
|
188
|
+
|
|
189
|
+
<step name="confirm_sections">
|
|
190
|
+
<config-check>
|
|
191
|
+
```bash
|
|
192
|
+
cat .planning/config.json 2>/dev/null
|
|
193
|
+
```
|
|
194
|
+
Note: Config may not exist yet (project initialization). If missing, default to interactive mode.
|
|
195
|
+
</config-check>
|
|
196
|
+
|
|
197
|
+
<if mode="yolo">
|
|
198
|
+
```
|
|
199
|
+
Auto-approved: Section breakdown ([N] sections)
|
|
200
|
+
|
|
201
|
+
1. [Section name] - [goal]
|
|
202
|
+
2. [Section name] - [goal]
|
|
203
|
+
3. [Section name] - [goal]
|
|
204
|
+
|
|
205
|
+
Proceeding to research detection...
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Proceed directly to detect_research_needs step.
|
|
209
|
+
</if>
|
|
210
|
+
|
|
211
|
+
<if mode="interactive" OR="missing OR custom with gates.confirm_sections true">
|
|
212
|
+
Present the section breakdown inline:
|
|
213
|
+
|
|
214
|
+
"Here's how I'd structure this document:
|
|
215
|
+
|
|
216
|
+
1. [Section name] - [goal]
|
|
217
|
+
2. [Section name] - [goal]
|
|
218
|
+
3. [Section name] - [goal]
|
|
219
|
+
...
|
|
220
|
+
|
|
221
|
+
Does this feel right? (yes / adjust)"
|
|
222
|
+
|
|
223
|
+
If "adjust": Ask what to change, revise, present again.
|
|
224
|
+
</step>
|
|
225
|
+
|
|
226
|
+
<step name="decision_gate">
|
|
227
|
+
<if mode="yolo">
|
|
228
|
+
```
|
|
229
|
+
Auto-approved: Create outline with [N] sections
|
|
230
|
+
|
|
231
|
+
Proceeding to create .planning/ROADMAP.md...
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Proceed directly to create_structure step.
|
|
235
|
+
</if>
|
|
236
|
+
|
|
237
|
+
<if mode="interactive" OR="missing OR custom with gates.confirm_roadmap true">
|
|
238
|
+
Use AskUserQuestion:
|
|
239
|
+
|
|
240
|
+
- header: "Ready"
|
|
241
|
+
- question: "Ready to create the document outline, or would you like me to ask more questions?"
|
|
242
|
+
- options:
|
|
243
|
+
- "Create outline" - I have enough context
|
|
244
|
+
- "Ask more questions" - There are details to clarify
|
|
245
|
+
- "Let me add context" - I want to provide more information
|
|
246
|
+
|
|
247
|
+
Loop until "Create outline" selected.
|
|
248
|
+
</step>
|
|
249
|
+
|
|
250
|
+
<step name="create_structure">
|
|
251
|
+
```bash
|
|
252
|
+
mkdir -p .planning/sections
|
|
253
|
+
```
|
|
254
|
+
</step>
|
|
255
|
+
|
|
256
|
+
<step name="write_roadmap">
|
|
257
|
+
Use template from `~/.claude/write-the-f-paper/templates/roadmap.md`.
|
|
258
|
+
|
|
259
|
+
Initial outlines use integer sections (1, 2, 3...).
|
|
260
|
+
Decimal sections added later via /wtfp:insert-section command.
|
|
261
|
+
|
|
262
|
+
Write to `.planning/ROADMAP.md` with:
|
|
263
|
+
|
|
264
|
+
- Document Type section (IMRaD, Grant, etc.)
|
|
265
|
+
- Section list with names and one-line goals
|
|
266
|
+
- Word budget per section
|
|
267
|
+
- Dependencies (what must complete before what)
|
|
268
|
+
- **Research flags** (from detect_research_needs step):
|
|
269
|
+
- `Research: Likely ([reason])` with `Research topics:` for flagged sections
|
|
270
|
+
- `Research: Unlikely ([reason])` for unflagged sections
|
|
271
|
+
- Status tracking (all start as "not started")
|
|
272
|
+
|
|
273
|
+
Create section directories:
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
mkdir -p .planning/sections/01-{section-name}
|
|
277
|
+
mkdir -p .planning/sections/02-{section-name}
|
|
278
|
+
# etc.
|
|
279
|
+
```
|
|
280
|
+
</step>
|
|
281
|
+
|
|
282
|
+
<step name="initialize_project_state">
|
|
283
|
+
|
|
284
|
+
Create STATE.md — the project's living memory.
|
|
285
|
+
|
|
286
|
+
Use template from `~/.claude/write-the-f-paper/templates/state.md`.
|
|
287
|
+
|
|
288
|
+
Write to `.planning/STATE.md`:
|
|
289
|
+
|
|
290
|
+
```markdown
|
|
291
|
+
# Project State
|
|
292
|
+
|
|
293
|
+
## Project Reference
|
|
294
|
+
|
|
295
|
+
See: .planning/PROJECT.md (updated [today's date])
|
|
296
|
+
|
|
297
|
+
**Core argument:** [Copy thesis/core claim from PROJECT.md]
|
|
298
|
+
**Current focus:** Section 1 — [First section name]
|
|
299
|
+
|
|
300
|
+
## Current Position
|
|
301
|
+
|
|
302
|
+
Section: 1 of [N] ([First section name])
|
|
303
|
+
Plan: Not started
|
|
304
|
+
Status: Ready to plan
|
|
305
|
+
Last activity: [today's date] — Document initialized
|
|
306
|
+
|
|
307
|
+
Progress: ░░░░░░░░░░ 0%
|
|
308
|
+
|
|
309
|
+
## Word Count
|
|
310
|
+
|
|
311
|
+
Target: [total target] words
|
|
312
|
+
Current: 0 words
|
|
313
|
+
Remaining: [total target] words
|
|
314
|
+
|
|
315
|
+
## Section Progress
|
|
316
|
+
|
|
317
|
+
| Section | Status | Words | Target | Strength |
|
|
318
|
+
|---------|--------|-------|--------|----------|
|
|
319
|
+
| 1. [Name] | - | 0 | [target] | - |
|
|
320
|
+
| 2. [Name] | - | 0 | [target] | - |
|
|
321
|
+
|
|
322
|
+
## Argument Strength
|
|
323
|
+
|
|
324
|
+
Core claim: developing
|
|
325
|
+
Evidence gaps: [initial assessment]
|
|
326
|
+
Logic flow: not yet established
|
|
327
|
+
|
|
328
|
+
## Open Questions
|
|
329
|
+
|
|
330
|
+
(None yet)
|
|
331
|
+
|
|
332
|
+
## Deferred
|
|
333
|
+
|
|
334
|
+
(None yet)
|
|
335
|
+
|
|
336
|
+
## Session Continuity
|
|
337
|
+
|
|
338
|
+
Last session: [today's date and time]
|
|
339
|
+
Stopped at: Document initialization complete
|
|
340
|
+
Resume file: None
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**Key points:**
|
|
344
|
+
- Project Reference points to PROJECT.md for full context
|
|
345
|
+
- Claude reads PROJECT.md directly for thesis, constraints, decisions
|
|
346
|
+
- This file will be read first in every future operation
|
|
347
|
+
- This file will be updated after every writing session
|
|
348
|
+
|
|
349
|
+
</step>
|
|
350
|
+
|
|
351
|
+
<step name="create_structure_files">
|
|
352
|
+
Create the three structure layers for the document:
|
|
353
|
+
|
|
354
|
+
**argument-map.md** - Logical structure of the argument
|
|
355
|
+
```bash
|
|
356
|
+
mkdir -p .planning/structure
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Use template from `~/.claude/write-the-f-paper/templates/project-context/argument-structure.md`
|
|
360
|
+
|
|
361
|
+
Write initial skeleton based on thesis and sections identified.
|
|
362
|
+
|
|
363
|
+
**outline.md** - Section skeleton with word budgets
|
|
364
|
+
|
|
365
|
+
Already created as ROADMAP.md, but create detailed outline.md if needed.
|
|
366
|
+
|
|
367
|
+
**narrative-arc.md** - Story structure
|
|
368
|
+
|
|
369
|
+
Create using narrative-arc.md template from project-context/.
|
|
370
|
+
</step>
|
|
371
|
+
|
|
372
|
+
<step name="git_commit_initialization">
|
|
373
|
+
Commit project initialization (brief + roadmap + state together):
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
git add .planning/PROJECT.md .planning/ROADMAP.md .planning/STATE.md
|
|
377
|
+
git add .planning/sections/
|
|
378
|
+
git add .planning/structure/
|
|
379
|
+
# config.json if exists
|
|
380
|
+
git add .planning/config.json 2>/dev/null
|
|
381
|
+
git commit -m "$(cat <<'EOF'
|
|
382
|
+
docs: initialize [document-title] ([N] sections)
|
|
383
|
+
|
|
384
|
+
[One-liner thesis/purpose from PROJECT.md]
|
|
385
|
+
|
|
386
|
+
Sections:
|
|
387
|
+
1. [section-name]: [goal]
|
|
388
|
+
2. [section-name]: [goal]
|
|
389
|
+
3. [section-name]: [goal]
|
|
390
|
+
EOF
|
|
391
|
+
)"
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
Confirm: "Committed: docs: initialize [document] ([N] sections)"
|
|
395
|
+
</step>
|
|
396
|
+
|
|
397
|
+
<step name="offer_next">
|
|
398
|
+
```
|
|
399
|
+
Document initialized:
|
|
400
|
+
- Brief: .planning/PROJECT.md
|
|
401
|
+
- Outline: .planning/ROADMAP.md
|
|
402
|
+
- State: .planning/STATE.md
|
|
403
|
+
- Structure: .planning/structure/
|
|
404
|
+
- Committed as: docs: initialize [document] ([N] sections)
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## Next Up
|
|
409
|
+
|
|
410
|
+
**Section 1: [Name]** — [Goal from ROADMAP.md]
|
|
411
|
+
|
|
412
|
+
`/wtfp:plan-section 1`
|
|
413
|
+
|
|
414
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
**Also available:**
|
|
419
|
+
- `/wtfp:discuss-section 1` — gather context first
|
|
420
|
+
- `/wtfp:research-gap [topic]` — investigate literature
|
|
421
|
+
- Review outline
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
```
|
|
425
|
+
</step>
|
|
426
|
+
|
|
427
|
+
</process>
|
|
428
|
+
|
|
429
|
+
<section_naming>
|
|
430
|
+
Use `XX-kebab-case-name` format:
|
|
431
|
+
- `01-abstract`
|
|
432
|
+
- `02-introduction`
|
|
433
|
+
- `03-methods`
|
|
434
|
+
- `04-results`
|
|
435
|
+
- `05-discussion`
|
|
436
|
+
|
|
437
|
+
Numbers ensure ordering. Names describe content.
|
|
438
|
+
</section_naming>
|
|
439
|
+
|
|
440
|
+
<anti_patterns>
|
|
441
|
+
- Don't add time estimates
|
|
442
|
+
- Don't create Gantt charts
|
|
443
|
+
- Don't add word count goals per day
|
|
444
|
+
- Don't include revision matrices upfront
|
|
445
|
+
- Don't impose arbitrary section counts (let the document type determine the count)
|
|
446
|
+
|
|
447
|
+
Sections are structural units of the argument, not project management artifacts.
|
|
448
|
+
</anti_patterns>
|
|
449
|
+
|
|
450
|
+
<success_criteria>
|
|
451
|
+
Outline is complete when:
|
|
452
|
+
- [ ] `.planning/ROADMAP.md` exists
|
|
453
|
+
- [ ] `.planning/STATE.md` exists (project memory initialized)
|
|
454
|
+
- [ ] `.planning/structure/` exists with argument-map.md, narrative-arc.md
|
|
455
|
+
- [ ] Sections defined with clear goals (count derived from document type, not imposed)
|
|
456
|
+
- [ ] **Research flags assigned** (Likely/Unlikely for each section)
|
|
457
|
+
- [ ] **Research topics listed** for Likely sections
|
|
458
|
+
- [ ] Word budgets assigned per section
|
|
459
|
+
- [ ] Section directories created
|
|
460
|
+
- [ ] Dependencies noted if any
|
|
461
|
+
- [ ] Status tracking in place
|
|
462
|
+
</success_criteria>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Define document sections. Each section = coherent chunk delivering part of argument.
|
|
3
|
+
Outline provides structure, not detailed prose.
|
|
4
|
+
</purpose>
|
|
5
|
+
|
|
6
|
+
<required_reading>
|
|
7
|
+
READ: ~/.claude/write-the-f-paper/templates/roadmap.md
|
|
8
|
+
READ: ~/.claude/write-the-f-paper/templates/state.md
|
|
9
|
+
READ: .planning/PROJECT.md (if exists)
|
|
10
|
+
</required_reading>
|
|
11
|
+
|
|
12
|
+
<process>
|
|
13
|
+
|
|
14
|
+
[step:check_brief p=1]
|
|
15
|
+
RUN: cat .planning/PROJECT.md 2>/dev/null || echo "No brief found"
|
|
16
|
+
IF no_brief → ASK: "No project brief found. Create one first, or proceed?"
|
|
17
|
+
IF proceed_without → gather: doc_type, core_argument, target_venue, constraints
|
|
18
|
+
[/step]
|
|
19
|
+
|
|
20
|
+
[step:detect_document_type]
|
|
21
|
+
Infer from brief/user request:
|
|
22
|
+
|
|
23
|
+
DOCTYPE{keywords → type → sections}:
|
|
24
|
+
journal/paper/article → IMRaD | intro, methods, results, discussion
|
|
25
|
+
conference/short/workshop → Conference | intro, background, approach, eval, conclusion
|
|
26
|
+
grant/proposal/NSF/NIH → Grant | aims, significance, innovation, approach, timeline
|
|
27
|
+
thesis/dissertation → Thesis | varies by field
|
|
28
|
+
review/survey/lit → Review | intro, methodology, findings, synthesis
|
|
29
|
+
|
|
30
|
+
EMIT: "Detected: [type] → [sections]. Use this? (Y/customize/show options)"
|
|
31
|
+
IF multiple_types → present options, ask user to select
|
|
32
|
+
STORE: selected_template
|
|
33
|
+
[/step]
|
|
34
|
+
|
|
35
|
+
[step:identify_sections]
|
|
36
|
+
RUN: cat .planning/config.json 2>/dev/null | grep depth
|
|
37
|
+
|
|
38
|
+
DEPTH{level,sections,plans_per,tasks_per}:
|
|
39
|
+
quick | 4-6 | 1-2 | 2-3
|
|
40
|
+
standard | 6-10 | 2-4 | 2-3
|
|
41
|
+
comprehensive | 8-15 | 3-6 | 2-3
|
|
42
|
+
|
|
43
|
+
PRINCIPLE: Derive sections from doc requirements. Depth = how to break down complex sections, NOT a target.
|
|
44
|
+
- Comprehensive Methods = 4 plans (methods has 4 subsections)
|
|
45
|
+
- Comprehensive Abstract = 1 plan (that's all it is)
|
|
46
|
+
- Let small sections stay small—don't pad
|
|
47
|
+
|
|
48
|
+
SECTION_NUMBERING:
|
|
49
|
+
integers (1,2,3) = planned structure
|
|
50
|
+
decimals (2.1,2.2) = urgent insertions between integers
|
|
51
|
+
|
|
52
|
+
SECTION_RULES:
|
|
53
|
+
1. List all required sections for doc type
|
|
54
|
+
2. Group related arguments into coherent sections
|
|
55
|
+
3. Each section delivers ONE complete argument part
|
|
56
|
+
4. If covers unrelated points → split
|
|
57
|
+
5. If can't stand alone → merge
|
|
58
|
+
6. Order: setup → method → findings → meaning
|
|
59
|
+
|
|
60
|
+
GOOD_SECTIONS: coherent (one unit), sequential (builds), self-contained (verifiable alone)
|
|
61
|
+
[/step]
|
|
62
|
+
|
|
63
|
+
[step:detect_research_needs]
|
|
64
|
+
For each section, assess if literature research needed:
|
|
65
|
+
|
|
66
|
+
RESEARCH_LIKELY{trigger → reason}:
|
|
67
|
+
lit_review/related_work/background → core purpose is citing
|
|
68
|
+
compare_to/differs_from/unlike → need to represent prior work
|
|
69
|
+
builds_on/extends/improves → need to understand what's extended
|
|
70
|
+
controversial/debated/contested → need multiple perspectives
|
|
71
|
+
recent_advances/state_of_art → need up-to-date literature
|
|
72
|
+
methodology_borrowed_from → need to cite and describe
|
|
73
|
+
|
|
74
|
+
RESEARCH_UNLIKELY{pattern → reason}:
|
|
75
|
+
describe_our_method/our_approach → reporting own work
|
|
76
|
+
results_show/we_found → presenting own findings
|
|
77
|
+
data_collected/analysis_performed → describing own process
|
|
78
|
+
limitations_of_our_study → self-reflection
|
|
79
|
+
|
|
80
|
+
ASSIGN: per section "Research: Likely ([reason]) + Topics: [what]" OR "Research: Unlikely ([reason])"
|
|
81
|
+
EMIT: research assessment table, ASK: "Does this look right? (yes/adjust)"
|
|
82
|
+
[/step]
|
|
83
|
+
|
|
84
|
+
[step:confirm_sections]
|
|
85
|
+
RUN: cat .planning/config.json 2>/dev/null
|
|
86
|
+
IF mode=yolo → EMIT "Auto-approved: [N] sections" → proceed
|
|
87
|
+
IF mode=interactive|missing → present breakdown, ASK: "Does this feel right? (yes/adjust)"
|
|
88
|
+
IF adjust → revise, present again
|
|
89
|
+
[/step]
|
|
90
|
+
|
|
91
|
+
[step:decision_gate]
|
|
92
|
+
IF mode=yolo → EMIT "Auto-approved: Create outline" → proceed
|
|
93
|
+
IF mode=interactive|missing → ASK: "Ready to create outline, or ask more questions?"
|
|
94
|
+
OPTIONS: Create outline | Ask more questions | Let me add context
|
|
95
|
+
LOOP until "Create outline" selected
|
|
96
|
+
[/step]
|
|
97
|
+
|
|
98
|
+
[step:create_structure]
|
|
99
|
+
RUN: mkdir -p .planning/sections
|
|
100
|
+
[/step]
|
|
101
|
+
|
|
102
|
+
[step:write_roadmap]
|
|
103
|
+
READ: ~/.claude/write-the-f-paper/templates/roadmap.md
|
|
104
|
+
WRITE: .planning/ROADMAP.md
|
|
105
|
+
|
|
106
|
+
INCLUDE:
|
|
107
|
+
- Document Type section
|
|
108
|
+
- Section list with names + one-line goals
|
|
109
|
+
- Word budget per section
|
|
110
|
+
- Dependencies (what before what)
|
|
111
|
+
- Research flags from detect_research_needs
|
|
112
|
+
- Status tracking (all "not started")
|
|
113
|
+
|
|
114
|
+
RUN: mkdir -p .planning/sections/01-{section-name}
|
|
115
|
+
RUN: mkdir -p .planning/sections/02-{section-name}
|
|
116
|
+
[/step]
|
|
117
|
+
|
|
118
|
+
[step:initialize_project_state]
|
|
119
|
+
READ: ~/.claude/write-the-f-paper/templates/state.md
|
|
120
|
+
WRITE: .planning/STATE.md
|
|
121
|
+
|
|
122
|
+
STATE_FIELDS:
|
|
123
|
+
- Project Reference → points to PROJECT.md
|
|
124
|
+
- Core argument → copy thesis from PROJECT.md
|
|
125
|
+
- Current Position → Section 1, Plan not started
|
|
126
|
+
- Word Count → target vs current (0)
|
|
127
|
+
- Section Progress → table with status/words/target/strength
|
|
128
|
+
- Argument Strength → "developing"
|
|
129
|
+
- Open Questions → (none yet)
|
|
130
|
+
- Deferred → (none yet)
|
|
131
|
+
- Session Continuity → timestamp + resume info
|
|
132
|
+
[/step]
|
|
133
|
+
|
|
134
|
+
[step:create_structure_files]
|
|
135
|
+
RUN: mkdir -p .planning/structure
|
|
136
|
+
|
|
137
|
+
WRITE: .planning/structure/argument-map.md
|
|
138
|
+
USE: ~/.claude/write-the-f-paper/templates/project-context/argument-structure.md
|
|
139
|
+
FILL: skeleton based on thesis + sections
|
|
140
|
+
|
|
141
|
+
WRITE: .planning/structure/narrative-arc.md
|
|
142
|
+
USE: ~/.claude/write-the-f-paper/templates/project-context/narrative-arc.md
|
|
143
|
+
[/step]
|
|
144
|
+
|
|
145
|
+
[step:git_commit]
|
|
146
|
+
RUN: git add .planning/PROJECT.md .planning/ROADMAP.md .planning/STATE.md .planning/sections/ .planning/structure/
|
|
147
|
+
RUN: git add .planning/config.json 2>/dev/null
|
|
148
|
+
COMMIT: "docs: initialize [title] ([N] sections)"
|
|
149
|
+
EMIT: "Committed: docs: initialize [document] ([N] sections)"
|
|
150
|
+
[/step]
|
|
151
|
+
|
|
152
|
+
[step:offer_next]
|
|
153
|
+
EMIT:
|
|
154
|
+
Document initialized:
|
|
155
|
+
- Brief: .planning/PROJECT.md
|
|
156
|
+
- Outline: .planning/ROADMAP.md
|
|
157
|
+
- State: .planning/STATE.md
|
|
158
|
+
- Structure: .planning/structure/
|
|
159
|
+
|
|
160
|
+
Next: Section 1: [Name] — [Goal]
|
|
161
|
+
→ /wtfp:plan-section 1
|
|
162
|
+
|
|
163
|
+
Also: /wtfp:discuss-section 1, /wtfp:research-gap [topic]
|
|
164
|
+
[/step]
|
|
165
|
+
|
|
166
|
+
</process>
|
|
167
|
+
|
|
168
|
+
<section_naming>
|
|
169
|
+
Format: XX-kebab-case-name
|
|
170
|
+
Examples: 01-abstract, 02-introduction, 03-methods
|
|
171
|
+
Numbers ensure ordering. Names describe content.
|
|
172
|
+
</section_naming>
|
|
173
|
+
|
|
174
|
+
<anti_patterns>
|
|
175
|
+
- No time estimates
|
|
176
|
+
- No Gantt charts
|
|
177
|
+
- No word count goals per day
|
|
178
|
+
- No revision matrices upfront
|
|
179
|
+
- No arbitrary section counts (let doc type determine)
|
|
180
|
+
Sections = structural units of argument, not project management artifacts.
|
|
181
|
+
</anti_patterns>
|
|
182
|
+
|
|
183
|
+
<success_criteria>
|
|
184
|
+
- [ ] .planning/ROADMAP.md exists
|
|
185
|
+
- [ ] .planning/STATE.md exists
|
|
186
|
+
- [ ] .planning/structure/ with argument-map.md, narrative-arc.md
|
|
187
|
+
- [ ] Sections defined with clear goals (count from doc type)
|
|
188
|
+
- [ ] Research flags assigned (Likely/Unlikely per section)
|
|
189
|
+
- [ ] Research topics listed for Likely sections
|
|
190
|
+
- [ ] Word budgets assigned
|
|
191
|
+
- [ ] Section directories created
|
|
192
|
+
- [ ] Dependencies noted
|
|
193
|
+
- [ ] Status tracking in place
|
|
194
|
+
</success_criteria>
|