agentic-loop 3.12.1 → 3.12.3
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/package.json +1 -1
- package/ralph/init.sh +2 -2
- package/ralph/prd-check.sh +16 -3
package/package.json
CHANGED
package/ralph/init.sh
CHANGED
|
@@ -593,8 +593,8 @@ auto_configure_project() {
|
|
|
593
593
|
if [[ "$require_tests" == "true" ]]; then
|
|
594
594
|
echo ""
|
|
595
595
|
print_warning "No test directory or test files found."
|
|
596
|
-
echo " Without tests, Ralph
|
|
597
|
-
echo "
|
|
596
|
+
echo " Without tests, Ralph relies on lint, type-checking, and PRD test steps."
|
|
597
|
+
echo " Consider adding tests or PRD testCommands for better verification."
|
|
598
598
|
echo ""
|
|
599
599
|
echo " To fix: Add tests, or set in .ralph/config.json:"
|
|
600
600
|
echo " {\"tests\": {\"directory\": \"src\", \"patterns\": \"*.test.ts\"}}"
|
package/ralph/prd-check.sh
CHANGED
|
@@ -174,8 +174,8 @@ validate_prd() {
|
|
|
174
174
|
if [[ "$require_tests" == "true" && -z "$test_dir" ]]; then
|
|
175
175
|
echo ""
|
|
176
176
|
print_warning "No test directory configured in .ralph/config.json"
|
|
177
|
-
echo " Without tests, Ralph
|
|
178
|
-
echo "
|
|
177
|
+
echo " Without tests, Ralph relies on lint, type-checking, and PRD test steps."
|
|
178
|
+
echo " Consider adding tests or PRD testCommands for better verification."
|
|
179
179
|
echo ""
|
|
180
180
|
echo " To fix: Add tests, or set in .ralph/config.json:"
|
|
181
181
|
echo " {\"tests\": {\"directory\": \"src\", \"patterns\": \"*.test.ts\"}}"
|
|
@@ -284,7 +284,7 @@ _validate_and_fix_stories() {
|
|
|
284
284
|
local cnt_no_tests=0 cnt_backend_curl=0 cnt_backend_contract=0
|
|
285
285
|
local cnt_frontend_tsc=0 cnt_frontend_url=0 cnt_frontend_context=0
|
|
286
286
|
local cnt_auth_security=0 cnt_list_pagination=0 cnt_prose_steps=0
|
|
287
|
-
local cnt_migration_prereq=0 cnt_naming_convention=0
|
|
287
|
+
local cnt_migration_prereq=0 cnt_naming_convention=0 cnt_bare_pytest=0
|
|
288
288
|
|
|
289
289
|
echo " Checking test coverage..."
|
|
290
290
|
|
|
@@ -331,6 +331,18 @@ _validate_and_fix_stories() {
|
|
|
331
331
|
cnt_frontend_tsc=$((cnt_frontend_tsc + 1))
|
|
332
332
|
fi
|
|
333
333
|
fi
|
|
334
|
+
|
|
335
|
+
# Check for bare pytest/python in projects using uv/poetry/pipenv
|
|
336
|
+
local py_runner
|
|
337
|
+
py_runner=$(detect_python_runner ".")
|
|
338
|
+
if [[ -n "$py_runner" ]]; then
|
|
339
|
+
# Project uses a Python runner - check for bare pytest/python commands
|
|
340
|
+
# Match: "pytest " at start or after space/semicolon, but not preceded by "run "
|
|
341
|
+
if echo "$test_steps" | grep -qE '(^|[; ])pytest ' && ! echo "$test_steps" | grep -qE "(uv run|poetry run|pipenv run) pytest"; then
|
|
342
|
+
story_issues+="use '$py_runner pytest' not bare 'pytest', "
|
|
343
|
+
cnt_bare_pytest=$((cnt_bare_pytest + 1))
|
|
344
|
+
fi
|
|
345
|
+
fi
|
|
334
346
|
fi
|
|
335
347
|
|
|
336
348
|
# Check 2: Backend needs apiContract
|
|
@@ -434,6 +446,7 @@ _validate_and_fix_stories() {
|
|
|
434
446
|
[[ $cnt_list_pagination -gt 0 ]] && echo " ${cnt_list_pagination}x list: add pagination"
|
|
435
447
|
[[ $cnt_migration_prereq -gt 0 ]] && echo " ${cnt_migration_prereq}x migration: add prerequisites (DB reset)"
|
|
436
448
|
[[ $cnt_naming_convention -gt 0 ]] && echo " ${cnt_naming_convention}x API consumer: add camelCase transformation note"
|
|
449
|
+
[[ $cnt_bare_pytest -gt 0 ]] && echo " ${cnt_bare_pytest}x use 'uv run pytest' not bare 'pytest'"
|
|
437
450
|
|
|
438
451
|
# Check if Claude is available for auto-fix
|
|
439
452
|
if command -v claude &>/dev/null; then
|