farmwork 1.0.2 → 1.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/README.md +20 -6
- package/package.json +1 -1
- package/src/init.js +156 -13
package/README.md
CHANGED
|
@@ -33,6 +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
37
|
|
|
37
38
|
### Phrase Commands
|
|
38
39
|
|
|
@@ -40,7 +41,7 @@ npx farmwork init
|
|
|
40
41
|
| Phrase | Action |
|
|
41
42
|
|--------|--------|
|
|
42
43
|
| `open the farm` | Audit systems, update FARMHOUSE.md metrics |
|
|
43
|
-
| `count the herd` | Full inspection
|
|
44
|
+
| `count the herd` | Full inspection and audit |
|
|
44
45
|
| `go to market` | i18n translation check + accessibility audit |
|
|
45
46
|
| `close the farm` | Full push workflow (lint, test, build, commit, push) |
|
|
46
47
|
|
|
@@ -50,6 +51,13 @@ npx farmwork init
|
|
|
50
51
|
| `make a plan for...` | Create implementation plan in `_PLANS/` |
|
|
51
52
|
| `let's implement...` | Execute plan with issue tracking |
|
|
52
53
|
|
|
54
|
+
**Idea Phrases** (Pre-Plan Stage):
|
|
55
|
+
| Phrase | Action |
|
|
56
|
+
|--------|--------|
|
|
57
|
+
| `I have an idea for...` | Add new idea to `_AUDIT/GARDEN.md` |
|
|
58
|
+
| `let's plan this idea...` | Graduate idea from GARDEN → create plan |
|
|
59
|
+
| `compost this...` | Move rejected idea to `_AUDIT/COMPOST.md` |
|
|
60
|
+
|
|
53
61
|
### Slash Commands
|
|
54
62
|
|
|
55
63
|
| Command | Description |
|
|
@@ -58,7 +66,7 @@ npx farmwork init
|
|
|
58
66
|
|
|
59
67
|
### Agents
|
|
60
68
|
|
|
61
|
-
|
|
69
|
+
11 specialized agents included:
|
|
62
70
|
|
|
63
71
|
| Agent | Purpose |
|
|
64
72
|
|-------|---------|
|
|
@@ -72,6 +80,7 @@ npx farmwork init
|
|
|
72
80
|
| `code-cleaner` | Remove comments and console.logs |
|
|
73
81
|
| `i18n-locale-translator` | Translate UI text to locales |
|
|
74
82
|
| `storybook-maintainer` | Create/update Storybook stories |
|
|
83
|
+
| `idea-gardener` | Manage Idea Garden and Compost |
|
|
75
84
|
|
|
76
85
|
### Recommended Workflow
|
|
77
86
|
|
|
@@ -89,7 +98,7 @@ You can `go to market` when you have a production-ready app with international u
|
|
|
89
98
|
your-project/
|
|
90
99
|
├── CLAUDE.md # Main instructions & phrase commands
|
|
91
100
|
├── .claude/ # Claude Code configuration
|
|
92
|
-
│ ├── agents/ #
|
|
101
|
+
│ ├── agents/ # 11 specialized subagents
|
|
93
102
|
│ │ ├── the-farmer.md
|
|
94
103
|
│ │ ├── code-reviewer.md
|
|
95
104
|
│ │ ├── security-auditor.md
|
|
@@ -99,7 +108,8 @@ your-project/
|
|
|
99
108
|
│ │ ├── unused-code-cleaner.md
|
|
100
109
|
│ │ ├── code-cleaner.md
|
|
101
110
|
│ │ ├── i18n-locale-translator.md
|
|
102
|
-
│ │
|
|
111
|
+
│ │ ├── storybook-maintainer.md
|
|
112
|
+
│ │ └── idea-gardener.md
|
|
103
113
|
│ └── commands/ # User-invocable skills
|
|
104
114
|
│ └── push.md
|
|
105
115
|
├── _AUDIT/ # Living audit documents
|
|
@@ -108,7 +118,9 @@ your-project/
|
|
|
108
118
|
│ ├── PERFORMANCE.md # Performance metrics
|
|
109
119
|
│ ├── ACCESSIBILITY.md # WCAG 2.1 compliance
|
|
110
120
|
│ ├── CODE_QUALITY.md # Code quality tracking
|
|
111
|
-
│
|
|
121
|
+
│ ├── TESTS.md # Test coverage
|
|
122
|
+
│ ├── GARDEN.md # Idea nursery (pre-plan stage)
|
|
123
|
+
│ └── COMPOST.md # Rejected ideas archive
|
|
112
124
|
├── _PLANS/ # Implementation plans
|
|
113
125
|
│ └── FEATURE_NAME.md
|
|
114
126
|
├── .beads/ # Issue tracking
|
|
@@ -140,7 +152,7 @@ If you enable Storybook (for React/Vue projects), the wizard will also ask for:
|
|
|
140
152
|
**Creates:**
|
|
141
153
|
- `CLAUDE.md` - Main instructions and phrase commands
|
|
142
154
|
- `.claude/` - Claude Code configuration directory
|
|
143
|
-
- `agents/` -
|
|
155
|
+
- `agents/` - 11 specialized subagents
|
|
144
156
|
- `commands/` - 1 user-invocable skill (/push)
|
|
145
157
|
- `_AUDIT/` - Living audit documents
|
|
146
158
|
- `FARMHOUSE.md` - Framework command center
|
|
@@ -149,6 +161,8 @@ If you enable Storybook (for React/Vue projects), the wizard will also ask for:
|
|
|
149
161
|
- `ACCESSIBILITY.md` - WCAG 2.1 compliance
|
|
150
162
|
- `CODE_QUALITY.md` - Code quality tracking
|
|
151
163
|
- `TESTS.md` - Test coverage tracking
|
|
164
|
+
- `GARDEN.md` - Idea nursery (pre-plan stage)
|
|
165
|
+
- `COMPOST.md` - Rejected ideas archive
|
|
152
166
|
- `_PLANS/` - Implementation plans directory
|
|
153
167
|
- `justfile` - Navigation and task commands
|
|
154
168
|
|
package/package.json
CHANGED
package/src/init.js
CHANGED
|
@@ -556,6 +556,18 @@ Run these in order for a complete development cycle:
|
|
|
556
556
|
|
|
557
557
|
---
|
|
558
558
|
|
|
559
|
+
### Idea Phrases (Pre-Plan Stage)
|
|
560
|
+
|
|
561
|
+
| Phrase | Action |
|
|
562
|
+
|--------|--------|
|
|
563
|
+
| **I have an idea for...** | Add new idea to \`_AUDIT/GARDEN.md\` (title, description, bullets) |
|
|
564
|
+
| **let's plan this idea...** | Graduate idea from GARDEN → create plan in \`_PLANS/\` |
|
|
565
|
+
| **I dont want to do this idea...** | Reject idea → move from GARDEN to COMPOST |
|
|
566
|
+
| **remove this feature...** | Archive feature idea to COMPOST |
|
|
567
|
+
| **compost this...** | Move idea from GARDEN to COMPOST |
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
559
571
|
### Farmwork Phrase Details
|
|
560
572
|
|
|
561
573
|
**open the farm**
|
|
@@ -585,6 +597,30 @@ Runs all inspection agents in parallel, then dry run quality gates. No push.
|
|
|
585
597
|
|
|
586
598
|
---
|
|
587
599
|
|
|
600
|
+
### Idea Phrase Details
|
|
601
|
+
|
|
602
|
+
**I have an idea for...**
|
|
603
|
+
1. Launch \`idea-gardener\` agent
|
|
604
|
+
2. Parse idea title from user input
|
|
605
|
+
3. Ask for short description and bullet points
|
|
606
|
+
4. Add to \`_AUDIT/GARDEN.md\` under ## Ideas section
|
|
607
|
+
|
|
608
|
+
**let's plan this idea...**
|
|
609
|
+
1. Launch \`idea-gardener\` agent
|
|
610
|
+
2. Find the idea in GARDEN.md
|
|
611
|
+
3. Create plan in \`_PLANS/\` using plan mode
|
|
612
|
+
4. Move to "Graduated to Plans" table
|
|
613
|
+
5. Remove from ## Ideas section
|
|
614
|
+
|
|
615
|
+
**compost this...** / **I dont want to do this idea...**
|
|
616
|
+
1. Launch \`idea-gardener\` agent
|
|
617
|
+
2. Find idea in GARDEN.md (or accept new rejection)
|
|
618
|
+
3. Ask for rejection reason
|
|
619
|
+
4. Add to \`_AUDIT/COMPOST.md\` with reason
|
|
620
|
+
5. Remove from GARDEN.md if it was there
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
588
624
|
## Plan Mode Protocol
|
|
589
625
|
|
|
590
626
|
**CRITICAL**: When Claude enters Plan Mode, ALL plans MUST:
|
|
@@ -651,7 +687,7 @@ async function createFarmhouseMd(cwd, answers) {
|
|
|
651
687
|
| Metric | Count |
|
|
652
688
|
|--------|-------|
|
|
653
689
|
| Commands | 1 |
|
|
654
|
-
| Agents |
|
|
690
|
+
| Agents | 11 |
|
|
655
691
|
| Justfile Recipes | 10 |
|
|
656
692
|
| Unit Tests | 0 |
|
|
657
693
|
| E2E Tests | 0 |
|
|
@@ -687,6 +723,7 @@ All Claude Code commands and agents are documented, phrase triggers are tested a
|
|
|
687
723
|
| \`code-cleaner\` | Remove comments and console.logs |
|
|
688
724
|
| \`i18n-locale-translator\` | Translate UI text to locales |
|
|
689
725
|
| \`storybook-maintainer\` | Create/update Storybook stories |
|
|
726
|
+
| \`idea-gardener\` | Manage Idea Garden and Compost |
|
|
690
727
|
|
|
691
728
|
---
|
|
692
729
|
|
|
@@ -708,6 +745,14 @@ All Claude Code commands and agents are documented, phrase triggers are tested a
|
|
|
708
745
|
| \`make a plan for...\` | Create plan in _PLANS/ |
|
|
709
746
|
| \`let's implement...\` | Load plan, create Epic |
|
|
710
747
|
|
|
748
|
+
### Idea Phrases
|
|
749
|
+
|
|
750
|
+
| Phrase | Action |
|
|
751
|
+
|--------|--------|
|
|
752
|
+
| \`I have an idea for...\` | Add idea to GARDEN.md |
|
|
753
|
+
| \`let's plan this idea...\` | Graduate idea to _PLANS/ |
|
|
754
|
+
| \`compost this...\` | Move idea to COMPOST.md |
|
|
755
|
+
|
|
711
756
|
---
|
|
712
757
|
|
|
713
758
|
## Issue Tracking (\`.beads/\`)
|
|
@@ -810,6 +855,67 @@ _None currently_
|
|
|
810
855
|
|
|
811
856
|
await fs.writeFile(path.join(cwd, "_AUDIT", audit.name), content);
|
|
812
857
|
}
|
|
858
|
+
|
|
859
|
+
// Create GARDEN.md (Idea nursery - custom format)
|
|
860
|
+
const gardenContent = `# Idea Garden
|
|
861
|
+
|
|
862
|
+
> Nursery for new ideas and concepts. The pre-plan creative thinking stage.
|
|
863
|
+
|
|
864
|
+
**Last Updated:** ${today}
|
|
865
|
+
**Active Ideas:** 0
|
|
866
|
+
|
|
867
|
+
---
|
|
868
|
+
|
|
869
|
+
## How to Use
|
|
870
|
+
|
|
871
|
+
| Phrase | Action |
|
|
872
|
+
|--------|--------|
|
|
873
|
+
| \`I have an idea for...\` | Plant a new idea here |
|
|
874
|
+
| \`let's plan this idea...\` | Graduate idea to _PLANS/ |
|
|
875
|
+
| \`compost this...\` | Reject idea, move to COMPOST |
|
|
876
|
+
|
|
877
|
+
---
|
|
878
|
+
|
|
879
|
+
## Ideas
|
|
880
|
+
|
|
881
|
+
_No ideas planted yet. Start with "I have an idea for..."_
|
|
882
|
+
|
|
883
|
+
---
|
|
884
|
+
|
|
885
|
+
## Graduated to Plans
|
|
886
|
+
|
|
887
|
+
| Idea | Plan | Date |
|
|
888
|
+
|------|------|------|
|
|
889
|
+
`;
|
|
890
|
+
|
|
891
|
+
await fs.writeFile(path.join(cwd, "_AUDIT", "GARDEN.md"), gardenContent);
|
|
892
|
+
|
|
893
|
+
// Create COMPOST.md (Rejected ideas archive - custom format)
|
|
894
|
+
const compostContent = `# Idea Compost
|
|
895
|
+
|
|
896
|
+
> Archive of rejected ideas. Reference to avoid re-proposing and remember why we didn't pursue something.
|
|
897
|
+
|
|
898
|
+
**Last Updated:** ${today}
|
|
899
|
+
**Composted Ideas:** 0
|
|
900
|
+
|
|
901
|
+
---
|
|
902
|
+
|
|
903
|
+
## How to Use
|
|
904
|
+
|
|
905
|
+
| Phrase | Action |
|
|
906
|
+
|--------|--------|
|
|
907
|
+
| \`I dont want to do this idea...\` | Reject an idea |
|
|
908
|
+
| \`remove this feature...\` | Archive a feature idea |
|
|
909
|
+
| \`compost this...\` | Move idea from GARDEN here |
|
|
910
|
+
|
|
911
|
+
---
|
|
912
|
+
|
|
913
|
+
## Composted Ideas
|
|
914
|
+
|
|
915
|
+
_No composted ideas yet._
|
|
916
|
+
`;
|
|
917
|
+
|
|
918
|
+
await fs.writeFile(path.join(cwd, "_AUDIT", "COMPOST.md"), compostContent);
|
|
813
919
|
}
|
|
814
920
|
|
|
815
921
|
async function createJustfile(cwd, answers) {
|
|
@@ -901,7 +1007,7 @@ async function createAgents(cwd, answers) {
|
|
|
901
1007
|
name: the-farmer
|
|
902
1008
|
description: Audit and update FARMHOUSE.md with current project metrics
|
|
903
1009
|
tools: Read, Grep, Glob, Edit, Bash
|
|
904
|
-
model:
|
|
1010
|
+
model: opus
|
|
905
1011
|
---
|
|
906
1012
|
|
|
907
1013
|
# The Farmer Agent
|
|
@@ -935,7 +1041,7 @@ Maintains \`_AUDIT/FARMHOUSE.md\` - the living document tracking all systems and
|
|
|
935
1041
|
name: code-reviewer
|
|
936
1042
|
description: Review code for quality, security, and maintainability
|
|
937
1043
|
tools: Read, Grep, Glob, Bash
|
|
938
|
-
model:
|
|
1044
|
+
model: opus
|
|
939
1045
|
---
|
|
940
1046
|
|
|
941
1047
|
# Code Reviewer Agent
|
|
@@ -952,7 +1058,7 @@ Reports findings with severity (CRITICAL, HIGH, MEDIUM, LOW) and remediation ste
|
|
|
952
1058
|
name: security-auditor
|
|
953
1059
|
description: OWASP security vulnerability scanning
|
|
954
1060
|
tools: Read, Grep, Glob, Edit
|
|
955
|
-
model:
|
|
1061
|
+
model: opus
|
|
956
1062
|
---
|
|
957
1063
|
|
|
958
1064
|
# Security Auditor Agent
|
|
@@ -971,7 +1077,7 @@ Updates \`_AUDIT/SECURITY.md\` with results.
|
|
|
971
1077
|
name: performance-auditor
|
|
972
1078
|
description: Find memory leaks, unnecessary re-renders, and anti-patterns
|
|
973
1079
|
tools: Read, Grep, Glob, Edit
|
|
974
|
-
model:
|
|
1080
|
+
model: opus
|
|
975
1081
|
---
|
|
976
1082
|
|
|
977
1083
|
# Performance Auditor Agent
|
|
@@ -990,7 +1096,7 @@ Updates \`_AUDIT/PERFORMANCE.md\` with results.
|
|
|
990
1096
|
name: code-smell-auditor
|
|
991
1097
|
description: Detect DRY violations, complexity issues, naming problems, and technical debt
|
|
992
1098
|
tools: Read, Grep, Glob, Edit
|
|
993
|
-
model:
|
|
1099
|
+
model: opus
|
|
994
1100
|
---
|
|
995
1101
|
|
|
996
1102
|
# Code Smell Auditor Agent
|
|
@@ -1009,7 +1115,7 @@ Updates \`_AUDIT/CODE_QUALITY.md\` with results.
|
|
|
1009
1115
|
name: accessibility-auditor
|
|
1010
1116
|
description: WCAG 2.1 accessibility auditing for React/Next.js applications
|
|
1011
1117
|
tools: Read, Grep, Glob, Edit
|
|
1012
|
-
model:
|
|
1118
|
+
model: opus
|
|
1013
1119
|
---
|
|
1014
1120
|
|
|
1015
1121
|
# Accessibility Auditor Agent
|
|
@@ -1029,7 +1135,7 @@ Updates \`_AUDIT/ACCESSIBILITY.md\` with results.
|
|
|
1029
1135
|
name: unused-code-cleaner
|
|
1030
1136
|
description: Detect and remove unused code (imports, functions, variables)
|
|
1031
1137
|
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
1032
|
-
model:
|
|
1138
|
+
model: opus
|
|
1033
1139
|
---
|
|
1034
1140
|
|
|
1035
1141
|
# Unused Code Cleaner Agent
|
|
@@ -1048,7 +1154,7 @@ Use after refactoring, when removing features, or before production deployment.
|
|
|
1048
1154
|
name: code-cleaner
|
|
1049
1155
|
description: Fast removal of comments, console.logs, and debug code while preserving JSDoc
|
|
1050
1156
|
tools: Read, Edit, Glob, Grep
|
|
1051
|
-
model:
|
|
1157
|
+
model: opus
|
|
1052
1158
|
---
|
|
1053
1159
|
|
|
1054
1160
|
# Code Cleaner Agent
|
|
@@ -1068,7 +1174,7 @@ Fast cleanup of TypeScript/JavaScript files:
|
|
|
1068
1174
|
name: i18n-locale-translator
|
|
1069
1175
|
description: Translate UI text content into English (en) and Japanese (jp) using i18n locale system
|
|
1070
1176
|
tools: Read, Write, Edit, Glob, Grep
|
|
1071
|
-
model:
|
|
1177
|
+
model: opus
|
|
1072
1178
|
---
|
|
1073
1179
|
|
|
1074
1180
|
# i18n Locale Translator Agent
|
|
@@ -1085,7 +1191,7 @@ Use when adding new features or internationalizing existing hardcoded text.
|
|
|
1085
1191
|
name: storybook-maintainer
|
|
1086
1192
|
description: Create and update Storybook stories for UI components
|
|
1087
1193
|
tools: Read, Write, Edit, Glob, Grep
|
|
1088
|
-
model:
|
|
1194
|
+
model: opus
|
|
1089
1195
|
---
|
|
1090
1196
|
|
|
1091
1197
|
# Storybook Maintainer Agent
|
|
@@ -1097,6 +1203,43 @@ Manages Storybook stories for UI components:
|
|
|
1097
1203
|
- Add controls for interactive props
|
|
1098
1204
|
|
|
1099
1205
|
Use when adding new components or when existing components change significantly.
|
|
1206
|
+
`,
|
|
1207
|
+
"idea-gardener.md": `---
|
|
1208
|
+
name: idea-gardener
|
|
1209
|
+
description: Manage the Idea Garden and Compost - add, graduate, or reject ideas
|
|
1210
|
+
tools: Read, Edit, Glob, Grep
|
|
1211
|
+
model: opus
|
|
1212
|
+
---
|
|
1213
|
+
|
|
1214
|
+
# Idea Gardener Agent
|
|
1215
|
+
|
|
1216
|
+
Manages \`_AUDIT/GARDEN.md\` and \`_AUDIT/COMPOST.md\` for idea lifecycle tracking.
|
|
1217
|
+
|
|
1218
|
+
## Commands
|
|
1219
|
+
|
|
1220
|
+
### Plant an Idea (from "I have an idea for...")
|
|
1221
|
+
1. Parse the idea title from user input
|
|
1222
|
+
2. Ask user for short description and key bullet points
|
|
1223
|
+
3. Add to GARDEN.md under ## Ideas section with format:
|
|
1224
|
+
### [Idea Title]
|
|
1225
|
+
[Short description]
|
|
1226
|
+
- Bullet point 1
|
|
1227
|
+
- Bullet point 2
|
|
1228
|
+
|
|
1229
|
+
### Graduate an Idea (from "let's plan this idea...")
|
|
1230
|
+
1. Find idea in GARDEN.md
|
|
1231
|
+
2. Create plan file in _PLANS/ using plan mode
|
|
1232
|
+
3. Move idea to "Graduated to Plans" table with date and plan link
|
|
1233
|
+
4. Remove from ## Ideas section
|
|
1234
|
+
|
|
1235
|
+
### Compost an Idea (from "compost this..." / "I dont want...")
|
|
1236
|
+
1. Find idea in GARDEN.md (or accept new rejection)
|
|
1237
|
+
2. Ask for rejection reason
|
|
1238
|
+
3. Add to COMPOST.md with reason and date
|
|
1239
|
+
4. Remove from GARDEN.md if it was there
|
|
1240
|
+
|
|
1241
|
+
## Output Format
|
|
1242
|
+
Confirm action taken and show updated file section.
|
|
1100
1243
|
`,
|
|
1101
1244
|
};
|
|
1102
1245
|
|
|
@@ -1280,7 +1423,7 @@ async function createSettings(cwd, answers) {
|
|
|
1280
1423
|
|
|
1281
1424
|
async function createProduceConfig(cwd, answers) {
|
|
1282
1425
|
const config = {
|
|
1283
|
-
version: "1.
|
|
1426
|
+
version: "1.1.0",
|
|
1284
1427
|
projectName: answers.projectName,
|
|
1285
1428
|
commands: {
|
|
1286
1429
|
test: answers.testCommand,
|
|
@@ -1291,7 +1434,7 @@ async function createProduceConfig(cwd, answers) {
|
|
|
1291
1434
|
storybook: answers.includeStorybook || false,
|
|
1292
1435
|
i18n: answers.includeI18n || false,
|
|
1293
1436
|
},
|
|
1294
|
-
audits: ["FARMHOUSE", "SECURITY", "PERFORMANCE", "ACCESSIBILITY", "CODE_QUALITY", "TESTS"],
|
|
1437
|
+
audits: ["FARMHOUSE", "SECURITY", "PERFORMANCE", "ACCESSIBILITY", "CODE_QUALITY", "TESTS", "GARDEN", "COMPOST"],
|
|
1295
1438
|
};
|
|
1296
1439
|
|
|
1297
1440
|
if (answers.includeStorybook) {
|