devflow-prompts 1.0.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 +914 -0
- package/bin/cli.js +100 -0
- package/flows/devflow.0-gen-rules.prompt.md +335 -0
- package/flows/devflow.0-rev-rules.prompt.md +156 -0
- package/flows/devflow.1-gen-requirement.prompt.md +279 -0
- package/flows/devflow.1-rev-requirement.prompt.md +206 -0
- package/flows/devflow.2-gen-design.prompt.md +217 -0
- package/flows/devflow.2-rev-design.prompt.md +132 -0
- package/flows/devflow.3-gen-code.prompt.md +155 -0
- package/flows/devflow.3-rev-code.prompt.md +150 -0
- package/flows/devflow.4-gen-test-plan.prompt.md +171 -0
- package/flows/devflow.4-rev-test-plan.prompt.md +124 -0
- package/flows/devflow.5-gen-test-code.prompt.md +114 -0
- package/flows/devflow.5-rev-test-code.prompt.md +131 -0
- package/flows/devflow.6-analyze.prompt.md +240 -0
- package/gen-chat.sh +58 -0
- package/index.js +4 -0
- package/package.json +25 -0
- package/raws/.gitkeep +0 -0
- package/raws/changename.md +7 -0
- package/raws/my-project-rules.txt +7 -0
- package/rules/.gitkeep +0 -0
- package/scripts/setup-devflow-chat-antigravity.sh +44 -0
- package/scripts/setup-devflow-chat-vscode.sh +111 -0
- package/specs/.gitkeep +0 -0
- package/templates/gen-requirement-template.txt +26 -0
- package/templates/gen-rule-template.txt +17 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Step: all
|
|
2
|
+
Stack: Laravel (Backend) + Inertia & Vue.js (Frontend)
|
|
3
|
+
Architecture: Read this source code to understand the architecture
|
|
4
|
+
Coding Rules: Read this source code to understand the coding rules
|
|
5
|
+
Team: 5 developers, mid-level experience
|
|
6
|
+
Constraints: Must support 10k concurrent users
|
|
7
|
+
Language: en
|
package/rules/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Define paths
|
|
4
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
+
# Note: we are in ides/ now, so project root is 2 levels up
|
|
6
|
+
PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")"
|
|
7
|
+
WORKFLOWS_DIR="$PROJECT_ROOT/devflow-prompts/flows"
|
|
8
|
+
# Antigravity uses .agent/workflows for prompts/automations
|
|
9
|
+
AGENT_WORKFLOWS_DIR="$PROJECT_ROOT/.agent/workflows"
|
|
10
|
+
|
|
11
|
+
# Colors for output
|
|
12
|
+
GREEN='\033[0;32m'
|
|
13
|
+
BLUE='\033[0;36m'
|
|
14
|
+
NC='\033[0m' # No Color
|
|
15
|
+
|
|
16
|
+
echo -e "${BLUE}Starting DevFlow Chat Setup for Antigravity...${NC}"
|
|
17
|
+
|
|
18
|
+
# Check source directory
|
|
19
|
+
if [ ! -d "$WORKFLOWS_DIR" ]; then
|
|
20
|
+
echo "Error: Workflows directory not found at $WORKFLOWS_DIR"
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Create agent workflows directory
|
|
25
|
+
mkdir -p "$AGENT_WORKFLOWS_DIR"
|
|
26
|
+
echo -e "Created/Verified agent workflows directory: ${AGENT_WORKFLOWS_DIR}"
|
|
27
|
+
|
|
28
|
+
# Copy and rename files
|
|
29
|
+
echo -e "${BLUE}Copying workflow files...${NC}"
|
|
30
|
+
count=0
|
|
31
|
+
for file in "$WORKFLOWS_DIR"/*.md; do
|
|
32
|
+
[ -e "$file" ] || continue
|
|
33
|
+
|
|
34
|
+
filename=$(basename "$file")
|
|
35
|
+
|
|
36
|
+
# Copy to .agent/workflows
|
|
37
|
+
cp "$file" "$AGENT_WORKFLOWS_DIR/$filename"
|
|
38
|
+
echo " - Copied $filename to .agent/workflows"
|
|
39
|
+
|
|
40
|
+
((count++))
|
|
41
|
+
done
|
|
42
|
+
|
|
43
|
+
echo -e "${GREEN}Successfully copied $count files to .agent/workflows.${NC}"
|
|
44
|
+
echo -e "${GREEN}Setup complete for Antigravity!${NC}"
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Define paths
|
|
4
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
+
# Note: we are in ides/ now, so project root is 2 levels up
|
|
6
|
+
PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")"
|
|
7
|
+
WORKFLOWS_DIR="$PROJECT_ROOT/devflow-prompts/flows"
|
|
8
|
+
PROMPTS_DIR="$PROJECT_ROOT/.github/prompts"
|
|
9
|
+
SETTINGS_FILE="$PROJECT_ROOT/.vscode/settings.json"
|
|
10
|
+
|
|
11
|
+
# Colors for output
|
|
12
|
+
GREEN='\033[0;32m'
|
|
13
|
+
BLUE='\033[0;36m'
|
|
14
|
+
NC='\033[0m' # No Color
|
|
15
|
+
|
|
16
|
+
echo -e "${BLUE}Starting DevFlow Chat Setup for VSCode...${NC}"
|
|
17
|
+
|
|
18
|
+
# Check source directory
|
|
19
|
+
if [ ! -d "$WORKFLOWS_DIR" ]; then
|
|
20
|
+
echo "Error: Workflows directory not found at $WORKFLOWS_DIR"
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Create prompts directory
|
|
25
|
+
mkdir -p "$PROMPTS_DIR"
|
|
26
|
+
echo -e "Created/Verified prompts directory: ${PROMPTS_DIR}"
|
|
27
|
+
|
|
28
|
+
# Array to store prompt filenames for settings.json
|
|
29
|
+
declare -a PROMPT_FILES
|
|
30
|
+
|
|
31
|
+
# Copy and rename files
|
|
32
|
+
echo -e "${BLUE}Copying and renaming files...${NC}"
|
|
33
|
+
count=0
|
|
34
|
+
for file in "$WORKFLOWS_DIR"/*.md; do
|
|
35
|
+
[ -e "$file" ] || continue
|
|
36
|
+
|
|
37
|
+
filename=$(basename "$file")
|
|
38
|
+
|
|
39
|
+
cp "$file" "$PROMPTS_DIR/$filename"
|
|
40
|
+
echo " - Copied $filename"
|
|
41
|
+
|
|
42
|
+
PROMPT_FILES+=("$filename")
|
|
43
|
+
((count++))
|
|
44
|
+
done
|
|
45
|
+
|
|
46
|
+
echo -e "${GREEN}Successfully copied $count files to prompts directory.${NC}"
|
|
47
|
+
|
|
48
|
+
# Update settings.json if possible (using python3 for safe JSON handling)
|
|
49
|
+
if command -v python3 &>/dev/null; then
|
|
50
|
+
echo -e "${BLUE}Updating settings.json...${NC}"
|
|
51
|
+
|
|
52
|
+
# Create .vscode directory if it doesn't exist
|
|
53
|
+
mkdir -p "$(dirname "$SETTINGS_FILE")"
|
|
54
|
+
|
|
55
|
+
# Check if settings file exists, if not create empty object
|
|
56
|
+
if [ ! -f "$SETTINGS_FILE" ]; then
|
|
57
|
+
echo "{}" > "$SETTINGS_FILE"
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Prepare file list as JSON array string for the python script
|
|
61
|
+
# We pass the list of files to python via environment variable or argument
|
|
62
|
+
FILES_JSON=$(printf '%s\n' "${PROMPT_FILES[@]}" | jq -R . | jq -s . 2>/dev/null)
|
|
63
|
+
|
|
64
|
+
# If jq is not installed, we can't easily construct the JSON array in bash.
|
|
65
|
+
# So we will pass the list of files as arguments to the python script
|
|
66
|
+
|
|
67
|
+
python3 -c "
|
|
68
|
+
import sys
|
|
69
|
+
import json
|
|
70
|
+
import os
|
|
71
|
+
|
|
72
|
+
settings_path = '$SETTINGS_FILE'
|
|
73
|
+
prompt_files = sys.argv[1:]
|
|
74
|
+
|
|
75
|
+
try:
|
|
76
|
+
if os.path.exists(settings_path):
|
|
77
|
+
with open(settings_path, 'r') as f:
|
|
78
|
+
try:
|
|
79
|
+
data = json.load(f)
|
|
80
|
+
except json.JSONDecodeError:
|
|
81
|
+
data = {}
|
|
82
|
+
else:
|
|
83
|
+
data = {}
|
|
84
|
+
|
|
85
|
+
# Ensure keys exist
|
|
86
|
+
if 'chat.promptFilesRecommendations' not in data:
|
|
87
|
+
data['chat.promptFilesRecommendations'] = {}
|
|
88
|
+
|
|
89
|
+
recommendations = data.get('chat.promptFilesRecommendations', {})
|
|
90
|
+
|
|
91
|
+
# Add new files
|
|
92
|
+
for pf in prompt_files:
|
|
93
|
+
recommendations[pf] = True
|
|
94
|
+
|
|
95
|
+
data['chat.promptFilesRecommendations'] = recommendations
|
|
96
|
+
|
|
97
|
+
# Write back
|
|
98
|
+
with open(settings_path, 'w') as f:
|
|
99
|
+
json.dump(data, f, indent=4)
|
|
100
|
+
print(f'Updated {len(prompt_files)} recommendations in settings.json')
|
|
101
|
+
|
|
102
|
+
except Exception as e:
|
|
103
|
+
print(f'Error updating settings.json: {e}')
|
|
104
|
+
sys.exit(1)
|
|
105
|
+
" "${PROMPT_FILES[@]}"
|
|
106
|
+
|
|
107
|
+
else
|
|
108
|
+
echo "Warning: python3 not found, skipping settings.json update."
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
echo -e "${GREEN}Setup complete for VSCode!${NC}"
|
package/specs/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Task ID: {TASK-ID}
|
|
2
|
+
Language: {LANGUAGE CODE - en/vi/ja/ko, default: en}
|
|
3
|
+
Task Mode: {NEW | UPDATE - default: NEW}
|
|
4
|
+
Existing Logic/Code: {Optional - ONLY REQUIRED FOR UPDATE MODE - Paste existing logic or code here}
|
|
5
|
+
Raw Request: {YOUR RAW REQUEST HERE}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Example (New Feature):
|
|
10
|
+
|
|
11
|
+
Task ID: FEAT-001
|
|
12
|
+
Language: en
|
|
13
|
+
Task Mode: NEW
|
|
14
|
+
Raw Request: I want users to login with email/password. If they enter wrong password too many times, lock the account temporarily for 15 minutes.
|
|
15
|
+
|
|
16
|
+
Example (Update Feature):
|
|
17
|
+
|
|
18
|
+
Task ID: FEAT-002
|
|
19
|
+
Language: vi
|
|
20
|
+
Task Mode: UPDATE
|
|
21
|
+
Existing Logic/Code:
|
|
22
|
+
function login(email, password) {
|
|
23
|
+
// checked password
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
Raw Request: Cập nhật hàm login để thêm logic kiểm tra captcha trước khi check password. Nếu sai captcha trả về lỗi 400.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Step: {STEP NUMBER or 'all'}
|
|
2
|
+
Stack: {YOUR TECH STACK}
|
|
3
|
+
Architecture: {YOUR ARCHITECTURE APPROACH}
|
|
4
|
+
Team: {TEAM SIZE and EXPERIENCE LEVEL}
|
|
5
|
+
Constraints: {PROJECT CONSTRAINTS}
|
|
6
|
+
Language: {LANGUAGE CODE - optional, default: en}
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Example:
|
|
11
|
+
|
|
12
|
+
Step: all
|
|
13
|
+
Stack: Laravel (Backend) + Vue.js (Frontend)
|
|
14
|
+
Architecture: Clean Architecture
|
|
15
|
+
Team: 5 developers, mid-level experience
|
|
16
|
+
Constraints: Must support 10k concurrent users, PCI-DSS compliance required
|
|
17
|
+
Language: en
|