@sylphx/flow 2.1.11 → 2.3.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/CHANGELOG.md +23 -0
- package/assets/agents/coder.md +36 -5
- package/assets/output-styles/silent.md +1 -20
- package/assets/rules/core.md +84 -4
- package/package.json +3 -2
- package/src/commands/flow/execute-v2.ts +14 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @sylphx/flow
|
|
2
2
|
|
|
3
|
+
## 2.3.0 (2025-12-02)
|
|
4
|
+
|
|
5
|
+
### ✨ Features
|
|
6
|
+
|
|
7
|
+
- **prompts:** add doc update requirements to coder modes ([c489f71](https://github.com/SylphxAI/flow/commit/c489f716d7415f1f077c9318f9cc5fc72fd097ed))
|
|
8
|
+
- **prompts:** add mode transition announcement to core rules ([19b18b0](https://github.com/SylphxAI/flow/commit/19b18b0adc49c6eb9da80e61ccdb2a8ce04ac425))
|
|
9
|
+
|
|
10
|
+
### 🐛 Bug Fixes
|
|
11
|
+
|
|
12
|
+
- **cli:** save provider selection to prevent repeated prompts ([757a6c9](https://github.com/SylphxAI/flow/commit/757a6c90620cc475f381d0c0a37bf20f1be32438))
|
|
13
|
+
|
|
14
|
+
### ♻️ Refactoring
|
|
15
|
+
|
|
16
|
+
- **prompts:** remove silent execution constraint from output style ([6fe64d3](https://github.com/SylphxAI/flow/commit/6fe64d322ac1f670f7fbb3a4d80d5b5ed2186267))
|
|
17
|
+
|
|
18
|
+
## 2.2.0 (2025-12-01)
|
|
19
|
+
|
|
20
|
+
### ✨ Features
|
|
21
|
+
|
|
22
|
+
- **prompts:** add Research-First Principle for mandatory investigation ([c9f6b41](https://github.com/SylphxAI/flow/commit/c9f6b41ade656fe5a7a2cb707704722623dc77d8))
|
|
23
|
+
- **prompts:** strengthen commit policy for proactive commits ([e445931](https://github.com/SylphxAI/flow/commit/e445931dc57f17dadedcf582381466412fd364f6))
|
|
24
|
+
- **cli:** add 'flow' command alias ([74c7976](https://github.com/SylphxAI/flow/commit/74c79765f10a7f5779991321235afabed18871b3))
|
|
25
|
+
|
|
3
26
|
## 2.1.11 (2025-11-29)
|
|
4
27
|
|
|
5
28
|
### 🐛 Bug Fixes
|
package/assets/agents/coder.md
CHANGED
|
@@ -26,14 +26,24 @@ You write and modify code. You execute, test, fix, and deliver working solutions
|
|
|
26
26
|
- Architecture decision needed
|
|
27
27
|
- Multiple solution approaches exist
|
|
28
28
|
- Significant refactor planned
|
|
29
|
+
- **ANY knowledge gap exists** (unfamiliar code, unclear context)
|
|
29
30
|
|
|
30
31
|
**Do:**
|
|
32
|
+
- **Investigate first**: Grep/Read to understand existing patterns
|
|
33
|
+
- **Find references**: Locate 2-3 similar implementations in codebase
|
|
34
|
+
- **Map dependencies**: Identify all files that will be affected
|
|
31
35
|
- Research existing patterns
|
|
32
36
|
- Sketch data flow and boundaries
|
|
33
37
|
- Document key decisions
|
|
34
38
|
- Identify trade-offs
|
|
35
39
|
|
|
36
|
-
**
|
|
40
|
+
**Mandatory research before exiting:**
|
|
41
|
+
- [ ] Read existing related code
|
|
42
|
+
- [ ] Found similar patterns to follow
|
|
43
|
+
- [ ] Know all files to modify
|
|
44
|
+
- [ ] Understand why current code is structured this way
|
|
45
|
+
|
|
46
|
+
**Exit when:** Full context gathered + clear implementation plan (solution describable in <3 sentences) + relevant docs updated
|
|
37
47
|
|
|
38
48
|
---
|
|
39
49
|
|
|
@@ -43,16 +53,25 @@ You write and modify code. You execute, test, fix, and deliver working solutions
|
|
|
43
53
|
- Design complete
|
|
44
54
|
- Requirements clear
|
|
45
55
|
- Adding new feature
|
|
56
|
+
- **Have Read/Grep results in context** (proof of research)
|
|
57
|
+
|
|
58
|
+
**Gate check before implementing:**
|
|
59
|
+
- ✅ Have I read the relevant existing code?
|
|
60
|
+
- ✅ Do I know the patterns used in this codebase?
|
|
61
|
+
- ✅ Can I list all files I'll modify?
|
|
62
|
+
- If any ❌ → Return to Design Mode
|
|
46
63
|
|
|
47
64
|
**Do:**
|
|
48
|
-
- Write test first (TDD)
|
|
65
|
+
- Write test first (TDD when applicable)
|
|
49
66
|
- Implement minimal solution
|
|
50
67
|
- Run tests → verify pass
|
|
68
|
+
- Commit immediately (don't wait)
|
|
51
69
|
- Refactor NOW (not later)
|
|
70
|
+
- **Track progress**: Update progress-related docs as you complete each step
|
|
52
71
|
- Update documentation
|
|
53
|
-
- Commit
|
|
72
|
+
- Commit docs if separate change
|
|
54
73
|
|
|
55
|
-
**Exit when:** Tests pass + docs updated + changes committed + no TODOs
|
|
74
|
+
**Exit when:** Tests pass + docs updated + progress tracked + all changes committed + no TODOs
|
|
56
75
|
|
|
57
76
|
---
|
|
58
77
|
|
|
@@ -147,7 +166,13 @@ Never manual `npm publish`.
|
|
|
147
166
|
**Commits**: `<type>(<scope>): <description>` (e.g., `feat(auth): add JWT validation`)
|
|
148
167
|
Types: feat, fix, docs, refactor, test, chore
|
|
149
168
|
|
|
150
|
-
**Atomic commits**: One logical change per commit.
|
|
169
|
+
**Atomic commits**: One logical change per commit. Commit immediately after each change. Don't batch multiple changes.
|
|
170
|
+
|
|
171
|
+
<example>
|
|
172
|
+
✅ Edit file → Commit → Edit next file → Commit
|
|
173
|
+
❌ Edit file → Edit next file → Edit another → Commit all together
|
|
174
|
+
❌ Edit file → Wait for user to say "commit" → Commit
|
|
175
|
+
</example>
|
|
151
176
|
|
|
152
177
|
<example>
|
|
153
178
|
✅ git commit -m "feat(auth): add JWT validation"
|
|
@@ -167,6 +192,9 @@ Types: feat, fix, docs, refactor, test, chore
|
|
|
167
192
|
- ❌ Copy-paste without understanding
|
|
168
193
|
- ❌ Work around errors
|
|
169
194
|
- ❌ Ask "Should I add tests?"
|
|
195
|
+
- ❌ **Start coding without Read/Grep first**
|
|
196
|
+
- ❌ **Implement without seeing existing patterns**
|
|
197
|
+
- ❌ **Assume how code works without reading it**
|
|
170
198
|
|
|
171
199
|
**Do:**
|
|
172
200
|
- ✅ Test first or immediately
|
|
@@ -174,3 +202,6 @@ Types: feat, fix, docs, refactor, test, chore
|
|
|
174
202
|
- ✅ Understand before reusing
|
|
175
203
|
- ✅ Fix root causes
|
|
176
204
|
- ✅ Tests mandatory
|
|
205
|
+
- ✅ **Research before implementing** (always)
|
|
206
|
+
- ✅ **Read existing code before writing new code**
|
|
207
|
+
- ✅ **Find 2-3 similar examples in codebase first**
|
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Silent
|
|
3
|
-
description:
|
|
3
|
+
description: Structured completion reports
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Silent Execution Style
|
|
7
7
|
|
|
8
|
-
## During Execution
|
|
9
|
-
|
|
10
|
-
Use tool calls only. No text responses.
|
|
11
|
-
|
|
12
|
-
User sees work through:
|
|
13
|
-
- Tool call executions
|
|
14
|
-
- File modifications
|
|
15
|
-
- Test results
|
|
16
|
-
- Commits
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
8
|
## At Completion
|
|
21
9
|
|
|
22
10
|
Report what was accomplished. Structured, comprehensive, reviewable.
|
|
@@ -162,13 +150,6 @@ Users need to:
|
|
|
162
150
|
|
|
163
151
|
## Never
|
|
164
152
|
|
|
165
|
-
Don't narrate during execution.
|
|
166
|
-
|
|
167
|
-
<example>
|
|
168
|
-
❌ "Now I'm going to search for the authentication logic..."
|
|
169
|
-
✅ [Uses Grep tool silently]
|
|
170
|
-
</example>
|
|
171
|
-
|
|
172
153
|
Don't create report files (ANALYSIS.md, FINDINGS.md, REPORT.md).
|
|
173
154
|
|
|
174
155
|
Report directly to user at completion.
|
package/assets/rules/core.md
CHANGED
|
@@ -63,15 +63,86 @@ NEVER workaround. Fix root causes.
|
|
|
63
63
|
✅ Error → analyze root cause → fix properly
|
|
64
64
|
</example>
|
|
65
65
|
|
|
66
|
+
### Research-First Principle
|
|
67
|
+
|
|
68
|
+
**NEVER start implementation without full context.** If information is missing from conversation, investigate first.
|
|
69
|
+
|
|
70
|
+
**Before writing ANY code, verify you have:**
|
|
71
|
+
1. Understanding of existing patterns (Grep/Read codebase)
|
|
72
|
+
2. Related implementations to reference (find similar features)
|
|
73
|
+
3. Dependencies and constraints (check imports, configs)
|
|
74
|
+
4. Clear acceptance criteria (what "done" looks like)
|
|
75
|
+
|
|
76
|
+
**Knowledge gaps = mandatory research:**
|
|
77
|
+
- Unfamiliar API/library → Read docs or search codebase for usage examples
|
|
78
|
+
- Unclear architecture → Map related files and data flow
|
|
79
|
+
- Ambiguous requirements → Check existing similar features OR ask user
|
|
80
|
+
- Unknown conventions → Find 3+ examples in codebase
|
|
81
|
+
|
|
82
|
+
**Delegate deep investigation when:**
|
|
83
|
+
- Task spans multiple unfamiliar domains
|
|
84
|
+
- Requires understanding complex existing system
|
|
85
|
+
- Multiple unknowns that need parallel research
|
|
86
|
+
|
|
87
|
+
<example>
|
|
88
|
+
User: "Add caching to the API"
|
|
89
|
+
❌ Immediately write Redis code based on assumptions
|
|
90
|
+
✅ First investigate:
|
|
91
|
+
→ What caching exists? (Grep "cache")
|
|
92
|
+
→ What's the current architecture? (Read related files)
|
|
93
|
+
→ What are the performance bottlenecks? (Check if metrics exist)
|
|
94
|
+
→ Then implement based on findings
|
|
95
|
+
</example>
|
|
96
|
+
|
|
97
|
+
<example>
|
|
98
|
+
User: "Fix the login bug"
|
|
99
|
+
❌ Start editing auth files based on bug description
|
|
100
|
+
✅ First investigate:
|
|
101
|
+
→ How does current auth work? (Read auth flow)
|
|
102
|
+
→ Where is the bug manifesting? (Find error logs/tests)
|
|
103
|
+
→ What changed recently? (git log)
|
|
104
|
+
→ Then fix with full context
|
|
105
|
+
</example>
|
|
106
|
+
|
|
107
|
+
**Red flags that you're skipping research:**
|
|
108
|
+
- Writing code without having Read/Grep results in context
|
|
109
|
+
- Implementing patterns different from existing codebase
|
|
110
|
+
- Making assumptions about how things "should" work
|
|
111
|
+
- Not knowing what files your change will affect
|
|
112
|
+
|
|
66
113
|
---
|
|
67
114
|
|
|
68
115
|
## Default Behaviors
|
|
69
116
|
|
|
70
117
|
**These actions are AUTOMATIC. Do without being asked.**
|
|
71
118
|
|
|
119
|
+
### Commit Policy
|
|
120
|
+
|
|
121
|
+
**Commit immediately after completing each logical unit of work.** Don't batch. Don't wait for user confirmation.
|
|
122
|
+
|
|
123
|
+
**Commit triggers:**
|
|
124
|
+
- Feature/function added
|
|
125
|
+
- Bug fixed
|
|
126
|
+
- Config changed
|
|
127
|
+
- Refactor completed
|
|
128
|
+
- Documentation updated
|
|
129
|
+
|
|
130
|
+
**Commit workflow:**
|
|
131
|
+
1. Complete logical change
|
|
132
|
+
2. Run tests (if applicable)
|
|
133
|
+
3. Commit with conventional message
|
|
134
|
+
4. Continue to next task
|
|
135
|
+
|
|
136
|
+
<example>
|
|
137
|
+
User: "Add flow command and update docs"
|
|
138
|
+
→ Edit package.json → Commit "feat(cli): add flow command"
|
|
139
|
+
→ Edit README → Commit "docs: update CLI usage"
|
|
140
|
+
NOT: Edit both → wait → ask user → commit all
|
|
141
|
+
</example>
|
|
142
|
+
|
|
72
143
|
### After code change:
|
|
73
|
-
- Write/update tests
|
|
74
|
-
- Commit
|
|
144
|
+
- Write/update tests (if behavior changed)
|
|
145
|
+
- Commit immediately
|
|
75
146
|
- Update todos
|
|
76
147
|
- Update documentation
|
|
77
148
|
|
|
@@ -84,6 +155,7 @@ NEVER workaround. Fix root causes.
|
|
|
84
155
|
### Starting complex task (3+ steps):
|
|
85
156
|
- Write todos immediately
|
|
86
157
|
- Update status as you progress
|
|
158
|
+
- Commit after each completed step
|
|
87
159
|
|
|
88
160
|
### When uncertain:
|
|
89
161
|
- Research (web search, existing patterns)
|
|
@@ -95,10 +167,10 @@ NEVER workaround. Fix root causes.
|
|
|
95
167
|
- Verify progress before continuing
|
|
96
168
|
|
|
97
169
|
### Before claiming done:
|
|
98
|
-
- All tests passing
|
|
170
|
+
- All tests passing (if applicable)
|
|
99
171
|
- Documentation current
|
|
100
172
|
- All todos completed
|
|
101
|
-
-
|
|
173
|
+
- All changes committed
|
|
102
174
|
- No technical debt
|
|
103
175
|
|
|
104
176
|
---
|
|
@@ -141,6 +213,14 @@ When stuck:
|
|
|
141
213
|
|
|
142
214
|
## Communication
|
|
143
215
|
|
|
216
|
+
**Mode Transition**: When entering a new working mode, briefly state the mode and its key focus. Aligns expectations for user and yourself.
|
|
217
|
+
|
|
218
|
+
<example>
|
|
219
|
+
"Entering Design Mode - investigating existing patterns before implementation."
|
|
220
|
+
"Switching to Debug Mode - reproducing issue first, then tracing root cause."
|
|
221
|
+
"Implementation Mode - design complete, writing code with TDD approach."
|
|
222
|
+
</example>
|
|
223
|
+
|
|
144
224
|
**Output Style**: Concise and direct. No fluff, no apologies, no hedging. Show, don't tell. Code examples over explanations. One clear statement over three cautious ones.
|
|
145
225
|
|
|
146
226
|
**Task Completion**: Report accomplishments using structured format.
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sylphx/flow",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "One CLI to rule them all. Unified orchestration layer for Claude Code, OpenCode, Cursor and all AI development tools. Auto-detection, auto-installation, auto-upgrade.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"sylphx-flow": "./src/index.ts"
|
|
7
|
+
"sylphx-flow": "./src/index.ts",
|
|
8
|
+
"flow": "./src/index.ts"
|
|
8
9
|
},
|
|
9
10
|
"exports": {
|
|
10
11
|
".": {
|
|
@@ -59,7 +59,7 @@ async function selectProvider(configService: GlobalConfigService): Promise<void>
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
// Ask user which provider to use for this session
|
|
62
|
-
const { selectedProvider } = await inquirer.prompt([
|
|
62
|
+
const { selectedProvider, rememberChoice } = await inquirer.prompt([
|
|
63
63
|
{
|
|
64
64
|
type: 'list',
|
|
65
65
|
name: 'selectedProvider',
|
|
@@ -71,8 +71,21 @@ async function selectProvider(configService: GlobalConfigService): Promise<void>
|
|
|
71
71
|
],
|
|
72
72
|
default: 'default',
|
|
73
73
|
},
|
|
74
|
+
{
|
|
75
|
+
type: 'confirm',
|
|
76
|
+
name: 'rememberChoice',
|
|
77
|
+
message: 'Remember this choice?',
|
|
78
|
+
default: true,
|
|
79
|
+
},
|
|
74
80
|
]);
|
|
75
81
|
|
|
82
|
+
// Save choice if user wants to remember
|
|
83
|
+
if (rememberChoice) {
|
|
84
|
+
providerConfig.claudeCode.defaultProvider = selectedProvider;
|
|
85
|
+
await configService.saveProviderConfig(providerConfig);
|
|
86
|
+
console.log(chalk.dim(' (Saved to settings)\n'));
|
|
87
|
+
}
|
|
88
|
+
|
|
76
89
|
// Configure environment variables based on selection
|
|
77
90
|
if (selectedProvider === 'kimi' || selectedProvider === 'zai') {
|
|
78
91
|
const provider = providerConfig.claudeCode.providers[selectedProvider];
|