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.
Files changed (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +338 -0
  3. package/bin/install.js +358 -0
  4. package/bin/uninstall.js +485 -0
  5. package/commands/wtfp/analyze-bib.md +326 -0
  6. package/commands/wtfp/check-refs.md +205 -0
  7. package/commands/wtfp/create-outline.md +275 -0
  8. package/commands/wtfp/discuss-section.md +71 -0
  9. package/commands/wtfp/export-latex.md +216 -0
  10. package/commands/wtfp/help.md +342 -0
  11. package/commands/wtfp/insert-section.md +130 -0
  12. package/commands/wtfp/list-assumptions.md +109 -0
  13. package/commands/wtfp/map-project.md +197 -0
  14. package/commands/wtfp/new-paper.md +443 -0
  15. package/commands/wtfp/pause-writing.md +145 -0
  16. package/commands/wtfp/plan-revision.md +180 -0
  17. package/commands/wtfp/plan-section.md +247 -0
  18. package/commands/wtfp/polish-prose.md +177 -0
  19. package/commands/wtfp/progress.md +325 -0
  20. package/commands/wtfp/remove-section.md +147 -0
  21. package/commands/wtfp/research-gap.md +235 -0
  22. package/commands/wtfp/resume-writing.md +142 -0
  23. package/commands/wtfp/review-section.md +409 -0
  24. package/commands/wtfp/submit-milestone.md +211 -0
  25. package/commands/wtfp/write-section.md +273 -0
  26. package/package.json +40 -0
  27. package/write-the-f-paper/references/checkpoints.md +213 -0
  28. package/write-the-f-paper/references/continuation-format.md +223 -0
  29. package/write-the-f-paper/references/git-integration.md +241 -0
  30. package/write-the-f-paper/references/imrad-structure.md +212 -0
  31. package/write-the-f-paper/references/length-estimation.md +148 -0
  32. package/write-the-f-paper/references/plan-format.md +361 -0
  33. package/write-the-f-paper/references/principles.md +158 -0
  34. package/write-the-f-paper/references/questioning.md +132 -0
  35. package/write-the-f-paper/references/research-pitfalls.md +208 -0
  36. package/write-the-f-paper/templates/config.json +30 -0
  37. package/write-the-f-paper/templates/context.md +179 -0
  38. package/write-the-f-paper/templates/continue-here.md +142 -0
  39. package/write-the-f-paper/templates/data-inventory.md +142 -0
  40. package/write-the-f-paper/templates/discovery.md +146 -0
  41. package/write-the-f-paper/templates/issues.md +59 -0
  42. package/write-the-f-paper/templates/manuscript.md +253 -0
  43. package/write-the-f-paper/templates/narrative-arc.md +227 -0
  44. package/write-the-f-paper/templates/outline.md +274 -0
  45. package/write-the-f-paper/templates/phase-prompt.md +348 -0
  46. package/write-the-f-paper/templates/prior-drafts.md +204 -0
  47. package/write-the-f-paper/templates/project-context/argument-structure.md +267 -0
  48. package/write-the-f-paper/templates/project-context/bibliography.md +152 -0
  49. package/write-the-f-paper/templates/project-context/gaps.md +122 -0
  50. package/write-the-f-paper/templates/project-context/imrad.md +140 -0
  51. package/write-the-f-paper/templates/project-context/peer-review.md +152 -0
  52. package/write-the-f-paper/templates/project-context/style-guide.md +198 -0
  53. package/write-the-f-paper/templates/project-context/tools.md +170 -0
  54. package/write-the-f-paper/templates/project.md +185 -0
  55. package/write-the-f-paper/templates/research.md +384 -0
  56. package/write-the-f-paper/templates/review-comments.md +253 -0
  57. package/write-the-f-paper/templates/revision-issues.md +169 -0
  58. package/write-the-f-paper/templates/roadmap.md +187 -0
  59. package/write-the-f-paper/templates/section-archive.md +178 -0
  60. package/write-the-f-paper/templates/section-context.md +114 -0
  61. package/write-the-f-paper/templates/section.md +128 -0
  62. package/write-the-f-paper/templates/state.md +244 -0
  63. package/write-the-f-paper/templates/summary.md +277 -0
  64. package/write-the-f-paper/venues/acm-cs.yaml +102 -0
  65. package/write-the-f-paper/venues/arxiv-ml.yaml +103 -0
  66. package/write-the-f-paper/venues/ieee-cs.yaml +100 -0
  67. package/write-the-f-paper/venues/nature.yaml +81 -0
  68. package/write-the-f-paper/venues/thesis-chapter.yaml +101 -0
  69. package/write-the-f-paper/workflows/create-outline.md +462 -0
  70. package/write-the-f-paper/workflows/create-outline.wcn.md +194 -0
  71. package/write-the-f-paper/workflows/discuss-section.md +249 -0
  72. package/write-the-f-paper/workflows/discuss-section.wcn.md +63 -0
  73. package/write-the-f-paper/workflows/execute-section.md +704 -0
  74. package/write-the-f-paper/workflows/execute-section.wcn.md +219 -0
  75. package/write-the-f-paper/workflows/list-assumptions.md +183 -0
  76. package/write-the-f-paper/workflows/list-assumptions.wcn.md +42 -0
  77. package/write-the-f-paper/workflows/lit-review-phase.md +281 -0
  78. package/write-the-f-paper/workflows/lit-review-phase.wcn.md +92 -0
  79. package/write-the-f-paper/workflows/map-project.md +359 -0
  80. package/write-the-f-paper/workflows/map-project.wcn.md +73 -0
  81. package/write-the-f-paper/workflows/plan-section.md +409 -0
  82. package/write-the-f-paper/workflows/plan-section.wcn.md +236 -0
  83. package/write-the-f-paper/workflows/research-gap.md +469 -0
  84. package/write-the-f-paper/workflows/research-gap.wcn.md +119 -0
  85. package/write-the-f-paper/workflows/resume-paper.md +274 -0
  86. package/write-the-f-paper/workflows/resume-paper.wcn.md +93 -0
  87. package/write-the-f-paper/workflows/review-section.md +329 -0
  88. package/write-the-f-paper/workflows/review-section.wcn.md +91 -0
  89. package/write-the-f-paper/workflows/submit-draft.md +368 -0
  90. package/write-the-f-paper/workflows/submit-draft.wcn.md +69 -0
  91. package/write-the-f-paper/workflows/transition.md +375 -0
  92. package/write-the-f-paper/workflows/transition.wcn.md +113 -0
@@ -0,0 +1,273 @@
1
+ ---
2
+ name: wtfp:write-section
3
+ description: Execute a PLAN.md to write section content
4
+ argument-hint: "[path-to-PLAN.md]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Write
9
+ - Edit
10
+ - Glob
11
+ - Grep
12
+ - AskUserQuestion
13
+ - Task
14
+ ---
15
+
16
+ <objective>
17
+ Execute a PLAN.md file to write section content.
18
+
19
+ Takes the path to a PLAN.md file and executes its tasks sequentially, writing the actual paper content.
20
+
21
+ Creates SUMMARY.md documenting what was written and updates STATE.md with progress.
22
+ </objective>
23
+
24
+ <execution_context>
25
+ @~/.claude/write-the-f-paper/workflows/execute-section.md
26
+ @~/.claude/write-the-f-paper/templates/summary.md
27
+ @~/.claude/write-the-f-paper/references/git-integration.md
28
+ </execution_context>
29
+
30
+ <process>
31
+
32
+ <step name="verify">
33
+ **Verify plan exists:**
34
+
35
+ ```bash
36
+ [ ! -f "$ARGUMENTS" ] && echo "ERROR: Plan not found at $ARGUMENTS" && exit 1
37
+ ```
38
+
39
+ Check plan hasn't already been executed (SUMMARY.md exists):
40
+ ```bash
41
+ SUMMARY_PATH="${ARGUMENTS/PLAN.md/SUMMARY.md}"
42
+ [ -f "$SUMMARY_PATH" ] && echo "WARNING: This plan already has a SUMMARY.md. Re-executing will overwrite."
43
+ ```
44
+
45
+ </step>
46
+
47
+ <step name="load">
48
+ **Load plan and all context:**
49
+
50
+ 1. Read the PLAN.md file specified in $ARGUMENTS
51
+ 2. Parse the frontmatter (section, plan, mode, word_target)
52
+ 3. Load all @context files referenced in the plan
53
+ 4. Read PROJECT.md for core argument
54
+ 5. Read argument-map.md for relevant claims
55
+ 6. Read any prior section content for continuity
56
+ </step>
57
+
58
+ <step name="mode_setup">
59
+ **Configure for writing mode:**
60
+
61
+ Based on `mode` from plan frontmatter:
62
+
63
+ **Co-Author Mode:**
64
+ - Claude writes draft prose
65
+ - User refines afterward
66
+ - Output: Full draft text
67
+
68
+ **Scaffold Mode:**
69
+ - Claude creates detailed outline with key points
70
+ - User fills in actual prose
71
+ - Output: Structured outline for each paragraph
72
+
73
+ **Reviewer Mode:**
74
+ - Prompt user to write section
75
+ - Claude provides feedback after each chunk
76
+ - Output: User's text + Claude's comments
77
+
78
+ </step>
79
+
80
+ <step name="execute_tasks">
81
+ **Execute each task in the plan:**
82
+
83
+ For each `<task>` in `<tasks>`:
84
+
85
+ 1. Read the task requirements (action, target, verify)
86
+ 2. Based on mode:
87
+ - **Co-Author:** Write the draft content
88
+ - **Scaffold:** Create detailed outline
89
+ - **Reviewer:** Prompt user to write, then critique
90
+ 3. Verify the output meets task criteria
91
+ 4. Track word count
92
+ 5. Commit after each task (if substantive)
93
+
94
+ **Per-task commit:**
95
+ ```bash
96
+ git add paper/[section].md # or wherever content lives
97
+ git commit -m "$(cat <<'EOF'
98
+ write(XX-YY): [task description]
99
+
100
+ [Word count] words for [section]
101
+ EOF
102
+ )"
103
+ ```
104
+
105
+ </step>
106
+
107
+ <step name="deviation_rules">
108
+ **Handle deviations during writing:**
109
+
110
+ | Type | Action |
111
+ |------|--------|
112
+ | Citation needed but not in sources | Flag, continue, note in SUMMARY |
113
+ | Argument weak | Note in SUMMARY for revision |
114
+ | Word count significantly off | Note in SUMMARY, suggest adjustment |
115
+ | Logical gap discovered | Note in SUMMARY, may need ISSUES.md |
116
+ | Better structure found | Implement if minor, note if major |
117
+
118
+ **Auto-fix:**
119
+ - Minor prose improvements
120
+ - Citation format fixes
121
+ - Paragraph flow improvements
122
+
123
+ **Log for later:**
124
+ - Missing citations (add to sources/literature.md gap list)
125
+ - Argument weaknesses (ISSUES.md)
126
+ - Structure suggestions beyond plan scope
127
+ </step>
128
+
129
+ <step name="output_content">
130
+ **Write output content:**
131
+
132
+ Content goes to `paper/` directory:
133
+ - `paper/[section-name].md` - Markdown section content
134
+ - Or appended to `paper/paper.md` if single-file format
135
+
136
+ Include proper markdown structure:
137
+ ```markdown
138
+ ## [Section Title]
139
+
140
+ [Content from tasks...]
141
+
142
+ ### [Subsection if applicable]
143
+
144
+ [More content...]
145
+ ```
146
+
147
+ Track all files created/modified for SUMMARY.
148
+ </step>
149
+
150
+ <step name="summary">
151
+ **Create SUMMARY.md:**
152
+
153
+ ```markdown
154
+ ---
155
+ section: XX-name
156
+ plan: YY
157
+ mode: [co-author/scaffold/reviewer]
158
+ word_count: [actual]
159
+ word_target: [target]
160
+ ---
161
+
162
+ # Section [XX]-[YY] Summary
163
+
164
+ ## What Was Written
165
+ - [Task 1]: [what was accomplished]
166
+ - [Task 2]: [what was accomplished]
167
+ - [...]
168
+
169
+ ## Word Count
170
+ - Target: [X] words
171
+ - Actual: [Y] words
172
+ - Variance: [+/- Z]%
173
+
174
+ ## Files Created/Modified
175
+ - paper/[section].md: [description]
176
+
177
+ ## Key Points Made
178
+ - [Argument 1]
179
+ - [Argument 2]
180
+ - [...]
181
+
182
+ ## Citations Used
183
+ - [citation-key]: [where used]
184
+ - [...]
185
+
186
+ ## Decisions Made
187
+ | Decision | Rationale |
188
+ |----------|-----------|
189
+ | [choice] | [why] |
190
+
191
+ ## Issues Noted
192
+ - [Any problems discovered during writing]
193
+ - [Gaps that need addressing]
194
+
195
+ ## Next Steps
196
+ - [What should happen next]
197
+
198
+ ---
199
+ *Written: [timestamp]*
200
+ ```
201
+
202
+ </step>
203
+
204
+ <step name="update_state">
205
+ **Update STATE.md:**
206
+
207
+ - Update current position
208
+ - Add word count to progress
209
+ - Note any decisions made
210
+ - Log any issues discovered
211
+ - Update argument strength assessment
212
+ </step>
213
+
214
+ <step name="final_commit">
215
+ **Final commit:**
216
+
217
+ ```bash
218
+ git add .planning/sections/XX-name/XX-YY-SUMMARY.md .planning/STATE.md paper/
219
+ git commit -m "$(cat <<'EOF'
220
+ docs(XX-YY): complete [section name] writing
221
+
222
+ [Word count] words written
223
+ Mode: [mode]
224
+ EOF
225
+ )"
226
+ ```
227
+
228
+ </step>
229
+
230
+ <step name="done">
231
+ **Present completion:**
232
+
233
+ ```
234
+ Section written:
235
+
236
+ - Content: paper/[section].md ([Y] words)
237
+ - Summary: .planning/sections/XX-name/XX-YY-SUMMARY.md
238
+ - Progress: [current]/[total] words ([%]%)
239
+
240
+ ## Written
241
+
242
+ [Brief summary of what was written]
243
+
244
+ ## Issues Noted
245
+
246
+ [Any issues discovered, or "None"]
247
+
248
+ ---
249
+
250
+ ## ▶ Next Up
251
+
252
+ [Based on STATE.md - next plan, next section, or review]
253
+
254
+ `/wtfp:[appropriate-command]`
255
+
256
+ <sub>`/clear` first → fresh context window</sub>
257
+
258
+ ---
259
+ ```
260
+
261
+ </step>
262
+
263
+ </process>
264
+
265
+ <success_criteria>
266
+ - [ ] All tasks in PLAN.md executed
267
+ - [ ] Content written to paper/ directory
268
+ - [ ] Word count tracked and within tolerance
269
+ - [ ] SUMMARY.md created with full documentation
270
+ - [ ] STATE.md updated with progress
271
+ - [ ] All changes committed to git
272
+ - [ ] Next action clearly identified
273
+ </success_criteria>
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "wtf-p",
3
+ "version": "0.1.0",
4
+ "description": "The G.O.A.T. meta-prompting system for 10x researchers who need to submit papers and projects and proposals YESTERDAY.",
5
+ "bin": {
6
+ "wtfp": "bin/install.js",
7
+ "wtf-p": "bin/install.js",
8
+ "wtf-p-uninstall": "bin/uninstall.js"
9
+ },
10
+ "scripts": {
11
+ "test": "node test/sanity.js",
12
+ "preflight": "node scripts/preflight.js",
13
+ "release": "node scripts/release.js"
14
+ },
15
+ "files": [
16
+ "bin",
17
+ "commands",
18
+ "write-the-f-paper"
19
+ ],
20
+ "keywords": [
21
+ "claude",
22
+ "claude-code",
23
+ "ai",
24
+ "meta-prompting",
25
+ "context-engineering",
26
+ "academic-writing",
27
+ "research",
28
+ "latex",
29
+ "bibtex"
30
+ ],
31
+ "author": "akougkas",
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/akougkas/wtfp.git"
36
+ },
37
+ "engines": {
38
+ "node": ">=16.7.0"
39
+ }
40
+ }
@@ -0,0 +1,213 @@
1
+ <overview>
2
+ Writing plans execute with Claude as partner. Checkpoints formalize interaction points where human verification or decisions are needed.
3
+
4
+ **Core principle:** Claude assists with writing. Checkpoints are for verification and decisions about content direction.
5
+ </overview>
6
+
7
+ <checkpoint_types>
8
+
9
+ ## checkpoint:human-verify (90% of checkpoints)
10
+
11
+ **When:** Claude completed a writing task, human confirms it captures their intent.
12
+
13
+ **Use for:** Argument accuracy, voice consistency, factual correctness, citation appropriateness, logical flow.
14
+
15
+ **Structure:**
16
+ ```xml
17
+ <task type="checkpoint:human-verify" gate="blocking">
18
+ <what-written>[What Claude drafted]</what-written>
19
+ <how-to-verify>[What to check - argument, tone, accuracy]</how-to-verify>
20
+ <resume-signal>[How to continue - "approved" or describe issues]</resume-signal>
21
+ </task>
22
+ ```
23
+
24
+ **Example:**
25
+ ```xml
26
+ <task type="auto" mode="co-author">
27
+ <name>Draft introduction hook</name>
28
+ <action>Write opening paragraph establishing the problem</action>
29
+ <verify>~150 words, establishes tension</verify>
30
+ </task>
31
+
32
+ <task type="checkpoint:human-verify" gate="blocking">
33
+ <what-written>Introduction opening paragraph (~150 words)</what-written>
34
+ <how-to-verify>
35
+ Review and confirm:
36
+ 1. Captures the problem accurately
37
+ 2. Tone matches your voice
38
+ 3. Hook is compelling
39
+ </how-to-verify>
40
+ <resume-signal>Type "approved" or describe what to change</resume-signal>
41
+ </task>
42
+ ```
43
+
44
+ ## checkpoint:decision (9% of checkpoints)
45
+
46
+ **When:** Human must make choice that affects content direction.
47
+
48
+ **Use for:** Argument framing, evidence selection, structure choices, emphasis decisions.
49
+
50
+ **Structure:**
51
+ ```xml
52
+ <task type="checkpoint:decision" gate="blocking">
53
+ <decision>[What's being decided]</decision>
54
+ <context>[Why this matters for the paper]</context>
55
+ <options>
56
+ <option id="option-a"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
57
+ <option id="option-b"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
58
+ </options>
59
+ <resume-signal>[How to indicate choice]</resume-signal>
60
+ </task>
61
+ ```
62
+
63
+ **Example:**
64
+ ```xml
65
+ <task type="checkpoint:decision" gate="blocking">
66
+ <decision>Framing of methodology section</decision>
67
+ <context>Two valid ways to present your method. Choice affects reader perception.</context>
68
+ <options>
69
+ <option id="novel"><name>Emphasize novelty</name><pros>Highlights contribution</pros><cons>May invite more scrutiny</cons></option>
70
+ <option id="extension"><name>Frame as extension</name><pros>Builds on established work</pros><cons>Contribution may seem incremental</cons></option>
71
+ </options>
72
+ <resume-signal>Select: novel or extension</resume-signal>
73
+ </task>
74
+ ```
75
+
76
+ ## checkpoint:human-action (1% - rare)
77
+
78
+ **When:** Action requires human input that Claude cannot provide.
79
+
80
+ **Use ONLY for:** Providing specific data points, recalling personal observations, supplying unpublished results, clarifying domain-specific terminology.
81
+
82
+ **Do NOT use for:** Writing tasks Claude can draft, formatting, citation formatting.
83
+
84
+ **Example:**
85
+ ```xml
86
+ <task type="checkpoint:human-action" gate="blocking">
87
+ <action>Provide specific experimental result</action>
88
+ <instructions>
89
+ I need the exact p-value and effect size from your analysis
90
+ to complete this sentence accurately.
91
+ </instructions>
92
+ <resume-signal>Provide: p-value and effect size</resume-signal>
93
+ </task>
94
+ ```
95
+
96
+ </checkpoint_types>
97
+
98
+ <execution_protocol>
99
+
100
+ When Claude encounters `type="checkpoint:*"`:
101
+
102
+ 1. **Stop immediately** - do not proceed to next task
103
+ 2. **Display checkpoint clearly:**
104
+
105
+ ```
106
+ ════════════════════════════════════════
107
+ CHECKPOINT: [Type]
108
+ ════════════════════════════════════════
109
+
110
+ Task [X] of [Y]: [Name]
111
+
112
+ [Checkpoint-specific content]
113
+
114
+ [Resume signal instruction]
115
+ ════════════════════════════════════════
116
+ ```
117
+
118
+ 3. **Wait for user response** - do not hallucinate completion
119
+ 4. **Incorporate feedback** - adjust content as directed
120
+ 5. **Resume execution** - continue only after confirmation
121
+
122
+ </execution_protocol>
123
+
124
+ <writing_mode_checkpoints>
125
+
126
+ Different writing modes have different checkpoint patterns:
127
+
128
+ **Co-Author Mode:**
129
+ - Checkpoint after significant drafts
130
+ - Verify voice, accuracy, intent
131
+ - Fewer checkpoints (Claude has more latitude)
132
+
133
+ **Scaffold Mode:**
134
+ - Checkpoint after outline creation
135
+ - User fills in prose between checkpoints
136
+ - Checkpoint to review user's additions
137
+
138
+ **Reviewer Mode:**
139
+ - User writes first
140
+ - Claude's critique IS the checkpoint content
141
+ - User decides what feedback to incorporate
142
+
143
+ </writing_mode_checkpoints>
144
+
145
+ <guidelines>
146
+
147
+ **DO:**
148
+ - Use checkpoints after substantive content (not after every paragraph)
149
+ - Be specific about what to verify
150
+ - Give clear options for decisions
151
+ - Make feedback incorporation easy
152
+
153
+ **DON'T:**
154
+ - Checkpoint every task (checkpoint fatigue)
155
+ - Make vague verification requests
156
+ - Force binary yes/no when nuance exists
157
+ - Checkpoint mechanical tasks (formatting, citations)
158
+
159
+ **Placement:**
160
+ - After completing a logical unit (subsection, argument)
161
+ - Before dependent content (need decision to continue)
162
+ - At voice-critical moments (abstract, intro hook)
163
+ - After significant revisions
164
+
165
+ </guidelines>
166
+
167
+ <anti_patterns>
168
+
169
+ **BAD: Too many checkpoints**
170
+ ```xml
171
+ <task type="auto">Write sentence 1</task>
172
+ <task type="checkpoint:human-verify">Check sentence 1</task>
173
+ <task type="auto">Write sentence 2</task>
174
+ <task type="checkpoint:human-verify">Check sentence 2</task>
175
+ ```
176
+ Why bad: Disrupts flow. Combine into one checkpoint after a paragraph/section.
177
+
178
+ **BAD: Vague verification**
179
+ ```xml
180
+ <task type="checkpoint:human-verify">
181
+ <what-written>Methods section</what-written>
182
+ <how-to-verify>Check if it's good</how-to-verify>
183
+ </task>
184
+ ```
185
+ Why bad: "Good" is meaningless. Specify: accuracy, completeness, tone.
186
+
187
+ **GOOD: Substantive checkpoint**
188
+ ```xml
189
+ <task type="checkpoint:human-verify">
190
+ <what-written>Methods section draft (800 words)</what-written>
191
+ <how-to-verify>
192
+ 1. Procedure accurately described?
193
+ 2. Enough detail to replicate?
194
+ 3. Analysis approach clear?
195
+ </how-to-verify>
196
+ </task>
197
+ ```
198
+
199
+ </anti_patterns>
200
+
201
+ <summary>
202
+
203
+ **Checkpoint priority:**
204
+ 1. **checkpoint:human-verify** (90%) - Claude wrote, human confirms intent captured
205
+ 2. **checkpoint:decision** (9%) - Human chooses content direction
206
+ 3. **checkpoint:human-action** (1%) - Human provides information Claude can't know
207
+
208
+ **When NOT to use checkpoints:**
209
+ - Mechanical tasks (formatting, citations)
210
+ - Every paragraph (consolidate)
211
+ - When Claude can verify programmatically (word count, structure)
212
+
213
+ </summary>