farmwork 1.1.0 → 1.4.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/README.md CHANGED
@@ -33,7 +33,7 @@ npx farmwork init
33
33
  4. **Autonomously Issue Tracking** - Using beads (`bd`) for full visibility
34
34
  5. **Living Audits** - Documents that track ongoing concerns
35
35
  6. **Plan & Implement** - You describe the outcome, the rest is handled, tracked and audited
36
- 7. **Idea Garden & Compost** - Pre-plan creative stage for nurturing ideas or archiving rejected ones
36
+ 7. **Idea Garden & Compost** - Pre-plan creative stage with natural aging (ideas older than 60 days auto-compost)
37
37
 
38
38
  ### Phrase Commands
39
39
 
@@ -54,9 +54,27 @@ npx farmwork init
54
54
  **Idea Phrases** (Pre-Plan Stage):
55
55
  | Phrase | Action |
56
56
  |--------|--------|
57
- | `I have an idea for...` | Add new idea to `_AUDIT/GARDEN.md` |
57
+ | `I have an idea for...` | Add new idea to `_AUDIT/GARDEN.md` with planted date |
58
58
  | `let's plan this idea...` | Graduate idea from GARDEN → create plan |
59
59
  | `compost this...` | Move rejected idea to `_AUDIT/COMPOST.md` |
60
+ | `water the garden` | Generate 10 new ideas based on GARDEN and COMPOST |
61
+
62
+ **Idea Lifecycle:**
63
+ - **Fresh** (0-44 days) - New ideas ready to develop
64
+ - **Wilting** (45-60 days) - Ideas aging, marked ⚠️ during audits
65
+ - **Composted** (60+ days) - Auto-moved to COMPOST during "open the farm"
66
+
67
+ **Research Phrases** (Pre-Plan Stage):
68
+ | Phrase | Action |
69
+ |--------|--------|
70
+ | `let's research...` | Create or update research document in `_RESEARCH/` |
71
+ | `update research on...` | Refresh existing research with new findings |
72
+ | `show research on...` | Display research summary and staleness status |
73
+
74
+ **Research Lifecycle:**
75
+ - **Fresh** (0-14 days) - Research is current and reliable
76
+ - **Aging** (15-30 days) - Consider refreshing for major decisions
77
+ - **Stale** (30+ days) - Recommend updating before using for plans
60
78
 
61
79
  ### Slash Commands
62
80
 
@@ -66,7 +84,7 @@ npx farmwork init
66
84
 
67
85
  ### Agents
68
86
 
69
- 11 specialized agents included:
87
+ 12 specialized agents included:
70
88
 
71
89
  | Agent | Purpose |
72
90
  |-------|---------|
@@ -81,14 +99,17 @@ npx farmwork init
81
99
  | `i18n-locale-translator` | Translate UI text to locales |
82
100
  | `storybook-maintainer` | Create/update Storybook stories |
83
101
  | `idea-gardener` | Manage Idea Garden and Compost |
102
+ | `researcher` | Systematic research before planning |
84
103
 
85
104
  ### Recommended Workflow
86
105
 
87
106
  1. **Start Session**: Run `open the farm` to audit current state
88
- 2. **Plan Work**: Use `make a plan for...` for new features
89
- 3. **Implement**: Use `let's implement...` to execute with tracking
90
- 4. **Quality Check**: Run `count the herd` for full audit + dry run
91
- 5. **Ship**: Run `close the farm` or `/push` to push changes
107
+ 2. **Capture Ideas**: Use `I have an idea for...` to plant ideas in GARDEN
108
+ 3. **Research**: Use `let's research...` to gather information before planning
109
+ 4. **Plan Work**: Use `make a plan for...` for new features
110
+ 5. **Implement**: Use `let's implement...` to execute with tracking
111
+ 6. **Quality Check**: Run `count the herd` for full audit + dry run
112
+ 7. **Ship**: Run `close the farm` or `/push` to push changes
92
113
 
93
114
  You can `go to market` when you have a production-ready app with international users.
94
115
 
@@ -98,7 +119,7 @@ You can `go to market` when you have a production-ready app with international u
98
119
  your-project/
99
120
  ├── CLAUDE.md # Main instructions & phrase commands
100
121
  ├── .claude/ # Claude Code configuration
101
- │ ├── agents/ # 11 specialized subagents
122
+ │ ├── agents/ # 12 specialized subagents
102
123
  │ │ ├── the-farmer.md
103
124
  │ │ ├── code-reviewer.md
104
125
  │ │ ├── security-auditor.md
@@ -109,7 +130,8 @@ your-project/
109
130
  │ │ ├── code-cleaner.md
110
131
  │ │ ├── i18n-locale-translator.md
111
132
  │ │ ├── storybook-maintainer.md
112
- │ │ └── idea-gardener.md
133
+ │ │ ├── idea-gardener.md
134
+ │ │ └── researcher.md
113
135
  │ └── commands/ # User-invocable skills
114
136
  │ └── push.md
115
137
  ├── _AUDIT/ # Living audit documents
@@ -123,6 +145,8 @@ your-project/
123
145
  │ └── COMPOST.md # Rejected ideas archive
124
146
  ├── _PLANS/ # Implementation plans
125
147
  │ └── FEATURE_NAME.md
148
+ ├── _RESEARCH/ # Research documents (living docs)
149
+ │ └── TOPIC_NAME.md
126
150
  ├── .beads/ # Issue tracking
127
151
  └── justfile # Navigation commands
128
152
  ```
@@ -152,7 +176,7 @@ If you enable Storybook (for React/Vue projects), the wizard will also ask for:
152
176
  **Creates:**
153
177
  - `CLAUDE.md` - Main instructions and phrase commands
154
178
  - `.claude/` - Claude Code configuration directory
155
- - `agents/` - 11 specialized subagents
179
+ - `agents/` - 12 specialized subagents
156
180
  - `commands/` - 1 user-invocable skill (/push)
157
181
  - `_AUDIT/` - Living audit documents
158
182
  - `FARMHOUSE.md` - Framework command center
@@ -164,6 +188,7 @@ If you enable Storybook (for React/Vue projects), the wizard will also ask for:
164
188
  - `GARDEN.md` - Idea nursery (pre-plan stage)
165
189
  - `COMPOST.md` - Rejected ideas archive
166
190
  - `_PLANS/` - Implementation plans directory
191
+ - `_RESEARCH/` - Research documents directory
167
192
  - `justfile` - Navigation and task commands
168
193
 
169
194
  ### `farmwork status`
@@ -199,6 +224,7 @@ farmwork doctor
199
224
  - Core files (CLAUDE.md, .claude/, settings)
200
225
  - Agents and commands configuration
201
226
  - Audit system (_AUDIT/, FARMHOUSE.md, _PLANS/)
227
+ - Research system (_RESEARCH/)
202
228
  - Navigation (justfile, just command)
203
229
  - Issue tracking (beads)
204
230
  - Security (.gitignore settings)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "farmwork",
3
- "version": "1.1.0",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "description": "Farmwork - A workflow framework for Claude Code by Wynter Jones",
6
6
  "main": "src/index.js",
package/src/doctor.js CHANGED
@@ -163,23 +163,44 @@ export async function doctor() {
163
163
  checkExists(path.join(cwd, "_PLANS"), "_PLANS/ directory exists"),
164
164
  );
165
165
 
166
+ // Research System
167
+ checks.push({ category: "Research System", emoji: "🔬", items: [] });
168
+ checks[3].items.push(
169
+ checkExists(path.join(cwd, "_RESEARCH"), "_RESEARCH/ directory exists"),
170
+ );
171
+
172
+ // Office System
173
+ checks.push({ category: "Office System", emoji: "🏢", items: [] });
174
+ checks[4].items.push(
175
+ checkExists(path.join(cwd, "_OFFICE"), "_OFFICE/ directory exists"),
176
+ );
177
+ checks[4].items.push(
178
+ checkExists(path.join(cwd, "_OFFICE", "CORE_LOOP.md"), "CORE_LOOP.md exists"),
179
+ );
180
+ checks[4].items.push(
181
+ checkExists(path.join(cwd, "_OFFICE", "ONBOARDING.md"), "ONBOARDING.md exists"),
182
+ );
183
+ checks[4].items.push(
184
+ checkExists(path.join(cwd, "_OFFICE", "USER_GUIDE.md"), "USER_GUIDE.md exists"),
185
+ );
186
+
166
187
  // Navigation
167
188
  checks.push({ category: "Navigation", emoji: "🐓", items: [] });
168
- checks[3].items.push(
189
+ checks[5].items.push(
169
190
  checkExists(path.join(cwd, "justfile"), "justfile exists"),
170
191
  );
171
- checks[3].items.push(checkCommand("just", "just command available"));
192
+ checks[5].items.push(checkCommand("just", "just command available"));
172
193
 
173
194
  // Issue Tracking
174
195
  checks.push({ category: "Issue Tracking", emoji: "🐷", items: [] });
175
- checks[4].items.push(
196
+ checks[6].items.push(
176
197
  checkExists(path.join(cwd, ".beads"), ".beads/ directory exists"),
177
198
  );
178
- checks[4].items.push(checkCommand("bd", "bd (beads) command available"));
199
+ checks[6].items.push(checkCommand("bd", "bd (beads) command available"));
179
200
 
180
201
  // Security
181
202
  checks.push({ category: "Security", emoji: "🐕", items: [] });
182
- checks[5].items.push(checkGitignore(cwd));
203
+ checks[7].items.push(checkGitignore(cwd));
183
204
 
184
205
  let totalPassed = 0;
185
206
  let totalFailed = 0;