com um clique
nav-loop
// Run tasks until complete with structured completion signals. Auto-invoke when user says "run until done", "keep going until complete", "iterate until finished", "loop mode", "autonomous mode".
// Run tasks until complete with structured completion signals. Auto-invoke when user says "run until done", "keep going until complete", "iterate until finished", "loop mode", "autonomous mode".
Create REST/GraphQL API endpoint with validation, error handling, and tests. Auto-invoke when user says "add endpoint", "create API", "new route", or "add route".
Generate backend tests (unit, integration, mocks). Auto-invoke when user says "write test for", "add test", "test this", or "create test".
Create database migration with schema changes and rollback. Auto-invoke when user says "create migration", "add table", "modify schema", or "change database".
Create React/Vue component with TypeScript, tests, and styles. Auto-invoke when user says "create component", "add component", "new component", or "build component".
Generate frontend component tests (unit, snapshot, e2e). Auto-invoke when user says "test this component", "write component test", or "add component test".
Clear conversation context while preserving knowledge via context marker. Use when user says "clear context", "start fresh", "done with this task", or when approaching token limits.
| name | nav-loop |
| description | Run tasks until complete with structured completion signals. Auto-invoke when user says "run until done", "keep going until complete", "iterate until finished", "loop mode", "autonomous mode". |
| allowed-tools | Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion |
| version | 1.0.0 |
Execute tasks iteratively until completion with structured signals, stagnation detection, and dual-condition exit gates.
Traditional AI coding requires manual "keep going" prompts. Navigator Loop provides:
Based on Ralph's autonomous loop innovations, adapted for Navigator's context-efficient architecture.
Auto-invoke when:
loop_mode: trueDO NOT invoke if:
Loop mode settings in .agent/.nav-config.json:
{
"loop_mode": {
"enabled": false,
"max_iterations": 5,
"stagnation_threshold": 3,
"exit_requires_explicit_signal": true,
"show_status_block": true
}
}
Options:
enabled: Default state for new tasksmax_iterations: Hard cap to prevent infinite loops (1-20)stagnation_threshold: Same-state count before pause (2-5)exit_requires_explicit_signal: Require EXIT_SIGNAL alongside heuristicsLoad configuration:
python3 functions/phase_detector.py --init
Initialize tracking variables:
iteration = 1
max_iterations = config.loop_mode.max_iterations or 5
stagnation_threshold = config.loop_mode.stagnation_threshold or 3
hash_history = []
phase = "INIT"
Display loop start:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOOP MODE ACTIVATED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Task: {TASK_DESCRIPTION}
Max iterations: {max_iterations}
Stagnation threshold: {stagnation_threshold}
Starting iteration 1...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Perform task work based on current phase:
| Phase | Actions |
|---|---|
| INIT | Load context, understand requirements |
| RESEARCH | Explore codebase, find patterns |
| IMPL | Write code, make changes |
| VERIFY | Run tests, validate functionality |
| COMPLETE | All indicators met, ready to exit |
Track changes during iteration:
After each iteration, generate NAVIGATOR_STATUS:
python3 functions/status_generator.py \
--phase "{phase}" \
--iteration "{iteration}" \
--max-iterations "{max_iterations}" \
--indicators "{indicators_json}" \
--state-hash "{current_hash}" \
--prev-hash "{previous_hash}" \
--stagnation-count "{stagnation_count}"
Display status block:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NAVIGATOR_STATUS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase: {PHASE}
Iteration: {N}/{MAX}
Progress: {PERCENT}%
Completion Indicators:
[{x or space}] Code changes committed
[{x or space}] Tests passing
[{x or space}] Documentation updated
[{x or space}] Ticket closed
[{x or space}] Marker created
Exit Conditions:
Heuristics: {MET}/{TOTAL} (need 2+)
EXIT_SIGNAL: {true/false}
State Hash: {HASH}
Previous Hash: {PREV_HASH}
Stagnation: {COUNT}/{THRESHOLD}
Next Action: {NEXT_ACTION}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Calculate state hash:
python3 functions/stagnation_detector.py \
--phase "{phase}" \
--indicators "{indicators_json}" \
--files-changed "{files_json}" \
--history "{hash_history_json}"
If stagnation detected (same hash for N iterations):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STAGNATION DETECTED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Same state detected for {N} consecutive iterations.
Current State:
Phase: {PHASE}
Indicators: {MET}/{TOTAL}
Last Action: {LAST_ACTION}
Possible causes:
1. Blocked by external dependency
2. Unclear requirements
3. Test failures preventing progress
4. Missing context or permissions
Options:
1. [Continue] - Try one more iteration
2. [Clarify] - Explain what's blocking
3. [Abort] - End loop, manual intervention
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Use AskUserQuestion for choice:
Evaluate dual-condition gate:
python3 functions/exit_gate.py \
--indicators "{indicators_json}" \
--exit-signal "{exit_signal}" \
--require-explicit "{config.exit_requires_explicit_signal}"
Exit conditions:
Completion indicators (mapped from autonomous protocol):
code_committed: Changes committed to gittests_passing: Test suite passes (exit code 0)docs_updated: Documentation files changedticket_closed: PM tool ticket marked donemarker_created: Completion marker existsExit decision logic:
IF heuristics >= 2 AND exit_signal == true:
→ EXIT: Task complete
ELIF heuristics >= 2 AND exit_signal == false:
→ CONTINUE: Awaiting explicit completion signal
ELIF exit_signal == true AND heuristics < 2:
→ BLOCKED: Cannot exit with insufficient indicators
ELSE:
→ CONTINUE: More work needed
If iteration >= max_iterations:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MAX ITERATIONS REACHED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Completed {MAX} iterations without full completion.
Current State:
Phase: {PHASE}
Indicators: {MET}/{TOTAL}
EXIT_SIGNAL: {true/false}
Progress made:
- {PROGRESS_ITEM_1}
- {PROGRESS_ITEM_2}
Options:
1. [Extend] - Add 3 more iterations
2. [Complete] - Accept current state as done
3. [Abort] - Exit without completion
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
When exit conditions met, display completion:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOOP COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Task: {TASK_DESCRIPTION}
Iterations: {FINAL_COUNT}/{MAX}
Final Phase: COMPLETE
Completion Indicators:
[x] Code changes committed
[x] Tests passing
[x] Documentation updated
[ ] Ticket closed (skipped - no PM tool)
[x] Marker created
Exit Conditions:
Heuristics: 4/5 (passed)
EXIT_SIGNAL: true (passed)
Summary:
- {KEY_CHANGE_1}
- {KEY_CHANGE_2}
- {KEY_CHANGE_3}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Execute autonomous completion protocol:
The EXIT_SIGNAL is set explicitly by Claude when:
How to signal completion:
I've completed the implementation. All requirements met.
EXIT_SIGNAL: true
This explicit declaration prevents premature exits when heuristics are met but work remains.
Phases auto-detected based on context:
def detect_phase(context):
# COMPLETE: Exit conditions met
if indicators_met >= 4 and exit_signal:
return "COMPLETE"
# VERIFY: Tests running or recently run
if context.tests_running or context.test_exit_code is not None:
return "VERIFY"
# IMPL: Files being modified
if context.files_changed:
return "IMPL"
# RESEARCH: Reading files, searching
if context.files_read and not context.files_changed:
return "RESEARCH"
# INIT: Default starting state
return "INIT"
Loop mode enhances (not replaces) the autonomous protocol:
Stagnation triggers nav-diagnose quality check:
Markers capture loop state:
Loop mode respects ToM configuration:
Generates formatted NAVIGATOR_STATUS block.
Evaluates dual-condition exit (heuristics + explicit signal).
Calculates state hash and detects consecutive same-states.
Auto-detects current task phase from context.
Config not found:
Loop mode config not found in .nav-config.json.
Using defaults: max_iterations=5, stagnation_threshold=3
Function execution fails:
User aborts mid-loop:
Loop mode succeeds when:
User: "Run until done: add isPrime function with tests"
Iteration 1 (INIT → RESEARCH):
- Read existing math utils
- Found test patterns
Iteration 2 (IMPL):
- Created isPrime function
- Created test file
Iteration 3 (VERIFY):
- Ran tests: PASS
- Committed changes
EXIT_SIGNAL: true
→ Loop complete in 3 iterations
User: "Run until done: fix authentication bug"
Iteration 1-3 (IMPL):
- Same changes attempted
- Tests still failing
- State hash unchanged
→ STAGNATION DETECTED
User: "The test needs a mock for the auth service"
Iteration 4 (IMPL):
- Added mock
- Tests pass
EXIT_SIGNAL: true
→ Loop complete in 4 iterations
Cannot handle:
Should not use for:
This skill provides Ralph-style "run until done" capability while maintaining Navigator's context efficiency and ToM integration.