refactor: Make force mode DEFAULT ON with --no-force flag to disable
BREAKING CHANGE: Force mode is now ON by default (was OFF by default) User requested: "make this default on with skip flag only" Changes: -------- - Force mode is now ON by default (skip all confirmations) - New flag: `--no-force` to disable force mode (enable confirmations) - Old flag: `--force` removed (force is always ON now) Rationale: ---------- - Maximizes automation out-of-the-box - Better UX for CI/CD and batch processing (no extra flags needed) - Aligns with "dangerously skip mode" user request - Explicit opt-out is better than hidden opt-in for automation tools Migration: ---------- - Before: `skill-seekers enhance output/react/ --force` - After: `skill-seekers enhance output/react/` (force ON by default!) - To disable: `skill-seekers enhance output/react/ --no-force` Behavior: --------- - Default: `LocalSkillEnhancer(skill_dir, force=True)` - With --no-force: `LocalSkillEnhancer(skill_dir, force=False)` CLI Examples: ------------- # Force ON (default - no flag needed) skill-seekers enhance output/react/ # Force OFF (enable confirmations) skill-seekers enhance output/react/ --no-force # Background with force (force already ON by default) skill-seekers enhance output/react/ --background # Background without force (need --no-force) skill-seekers enhance output/react/ --background --no-force Files Changed: -------------- - src/skill_seekers/cli/enhance_skill_local.py - Changed default: force=False → force=True - Changed flag: --force → --no-force - Updated docstring - Updated help text - src/skill_seekers/cli/main.py - Changed flag: --force → --no-force - Updated argument forwarding - docs/ENHANCEMENT_MODES.md - Updated Force Mode section (default ON) - Updated examples (removed unnecessary --force flags) - Updated batch enhancement example - Updated CI/CD example - CHANGELOG.md - Updated "Force Mode" description (Default ON) - Clarified no flag needed Impact: ------- - ✅ CI/CD pipelines: No extra flags needed (force ON by default) - ✅ Batch processing: Cleaner commands - ✅ Manual users: Use --no-force if they want confirmations - ✅ Backward compatible: Old behavior available via --no-force 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- **Background** (`--background`): Runs in background thread, returns immediately
|
||||
- **Daemon** (`--daemon`): Fully detached process with `nohup`, survives parent exit
|
||||
- **Terminal** (`--interactive-enhancement`): Opens new terminal window (macOS)
|
||||
- **Force Mode** (`--force` / `-f`): Skip all confirmations for automation ("dangerously skip mode")
|
||||
- **Force Mode (Default ON)**: Skip all confirmations by default for maximum automation
|
||||
- **No flag needed** - force mode is ON by default
|
||||
- Use `--no-force` to enable confirmation prompts if needed
|
||||
- Perfect for CI/CD, batch processing, unattended execution
|
||||
- "Dangerously skip mode" as requested - auto-yes to everything
|
||||
- **Status Monitoring**: New `enhance-status` command for background/daemon processes
|
||||
- Check status once: `skill-seekers enhance-status output/react/`
|
||||
- Watch in real-time: `skill-seekers enhance-status output/react/ --watch`
|
||||
@@ -25,7 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- **CLI Integration**: All modes accessible via `skill-seekers enhance` command
|
||||
- **Documentation**: New `docs/ENHANCEMENT_MODES.md` guide with examples
|
||||
- **Use Cases**:
|
||||
- CI/CD pipelines: `--force` for unattended execution
|
||||
- CI/CD pipelines: Force ON by default (no extra flags!)
|
||||
- Long-running tasks: `--daemon` for tasks that survive logout
|
||||
- Parallel processing: `--background` for batch enhancement
|
||||
- Debugging: `--interactive-enhancement` to watch Claude Code work
|
||||
|
||||
@@ -123,26 +123,25 @@ skill-seekers enhance output/react/ --interactive-enhancement
|
||||
- Terminal auto-closes when done
|
||||
- Useful for debugging
|
||||
|
||||
## Force Mode (Dangerously Skip)
|
||||
## Force Mode (Default ON)
|
||||
|
||||
**What it does**: Skips ALL confirmations, auto-answers "yes" to everything
|
||||
|
||||
**Default behavior**: Force mode is **ON by default** for maximum automation
|
||||
|
||||
```bash
|
||||
# Headless with force
|
||||
skill-seekers enhance output/react/ --force
|
||||
# Force mode is ON by default (no flag needed)
|
||||
skill-seekers enhance output/react/
|
||||
|
||||
# Background with force (silent processing)
|
||||
skill-seekers enhance output/react/ --background --force
|
||||
|
||||
# Daemon with force (silent + detached)
|
||||
skill-seekers enhance output/react/ --daemon --force
|
||||
# Disable force mode if you want confirmations
|
||||
skill-seekers enhance output/react/ --no-force
|
||||
```
|
||||
|
||||
**Use cases**:
|
||||
- ✅ CI/CD automation
|
||||
- ✅ Batch processing multiple skills
|
||||
- ✅ Unattended execution
|
||||
- ⚠️ **WARNING**: Only use if you trust the input!
|
||||
- ✅ CI/CD automation (default ON)
|
||||
- ✅ Batch processing multiple skills (default ON)
|
||||
- ✅ Unattended execution (default ON)
|
||||
- ⚠️ Use `--no-force` if you need manual confirmation prompts
|
||||
|
||||
## Status File Format
|
||||
|
||||
@@ -219,12 +218,13 @@ fi
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Enhance multiple skills in parallel
|
||||
# Note: Force mode is ON by default (no --force flag needed)
|
||||
|
||||
skills=("react" "vue" "django" "fastapi")
|
||||
|
||||
for skill in "${skills[@]}"; do
|
||||
echo "Starting enhancement: $skill"
|
||||
skill-seekers enhance output/$skill/ --background --force
|
||||
skill-seekers enhance output/$skill/ --background
|
||||
done
|
||||
|
||||
echo "All enhancements started in background!"
|
||||
@@ -241,8 +241,8 @@ done
|
||||
# GitHub Actions example
|
||||
- name: Enhance skill
|
||||
run: |
|
||||
# Headless mode with force (blocks until done)
|
||||
skill-seekers enhance output/react/ --force --timeout 1200
|
||||
# Headless mode (blocks until done, force is ON by default)
|
||||
skill-seekers enhance output/react/ --timeout 1200
|
||||
|
||||
# Check if enhancement succeeded
|
||||
if [ $? -eq 0 ]; then
|
||||
|
||||
@@ -103,12 +103,12 @@ def detect_terminal_app():
|
||||
|
||||
|
||||
class LocalSkillEnhancer:
|
||||
def __init__(self, skill_dir, force=False):
|
||||
def __init__(self, skill_dir, force=True):
|
||||
"""Initialize enhancer.
|
||||
|
||||
Args:
|
||||
skill_dir: Path to skill directory
|
||||
force: If True, skip all confirmations (dangerously skip mode)
|
||||
force: If True, skip all confirmations (default: True, use --no-force to disable)
|
||||
"""
|
||||
self.skill_dir = Path(skill_dir)
|
||||
self.references_dir = self.skill_dir / "references"
|
||||
@@ -870,7 +870,7 @@ def main():
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog="""
|
||||
Examples:
|
||||
# Headless mode (default - runs in foreground, waits for completion)
|
||||
# Headless mode (default - runs in foreground, waits for completion, auto-force)
|
||||
skill-seekers enhance output/react/
|
||||
|
||||
# Background mode (runs in background, returns immediately)
|
||||
@@ -879,15 +879,12 @@ Examples:
|
||||
# Daemon mode (persistent background process, fully detached)
|
||||
skill-seekers enhance output/react/ --daemon
|
||||
|
||||
# Force mode (no confirmations, auto-yes to everything)
|
||||
skill-seekers enhance output/react/ --force
|
||||
# Disable force mode (ask for confirmations)
|
||||
skill-seekers enhance output/react/ --no-force
|
||||
|
||||
# Interactive mode (opens terminal window)
|
||||
skill-seekers enhance output/react/ --interactive-enhancement
|
||||
|
||||
# Background with force (silent background processing)
|
||||
skill-seekers enhance output/react/ --background --force
|
||||
|
||||
# Custom timeout
|
||||
skill-seekers enhance output/react/ --timeout 1200
|
||||
|
||||
@@ -896,6 +893,10 @@ Mode Comparison:
|
||||
- background: Runs in background thread, returns immediately
|
||||
- daemon: Fully detached process, continues after parent exits
|
||||
- terminal: Opens new terminal window (interactive)
|
||||
|
||||
Force Mode (Default ON):
|
||||
By default, all modes skip confirmations (auto-yes).
|
||||
Use --no-force to enable confirmation prompts.
|
||||
"""
|
||||
)
|
||||
|
||||
@@ -923,9 +924,9 @@ Mode Comparison:
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--force', '-f',
|
||||
'--no-force',
|
||||
action='store_true',
|
||||
help='Force mode: skip all confirmations (dangerously skip mode)'
|
||||
help='Disable force mode: enable confirmation prompts (default: force mode ON)'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
@@ -945,7 +946,8 @@ Mode Comparison:
|
||||
sys.exit(1)
|
||||
|
||||
# Run enhancement
|
||||
enhancer = LocalSkillEnhancer(args.skill_directory, force=args.force)
|
||||
# Force mode is ON by default, use --no-force to disable
|
||||
enhancer = LocalSkillEnhancer(args.skill_directory, force=not args.no_force)
|
||||
headless = not args.interactive_enhancement # Invert: default is headless
|
||||
success = enhancer.run(
|
||||
headless=headless,
|
||||
|
||||
@@ -137,7 +137,7 @@ For more information: https://github.com/yusufkaraaslan/Skill_Seekers
|
||||
enhance_parser.add_argument("skill_directory", help="Skill directory path")
|
||||
enhance_parser.add_argument("--background", action="store_true", help="Run in background")
|
||||
enhance_parser.add_argument("--daemon", action="store_true", help="Run as daemon")
|
||||
enhance_parser.add_argument("--force", "-f", action="store_true", help="Force mode (skip confirmations)")
|
||||
enhance_parser.add_argument("--no-force", action="store_true", help="Disable force mode (enable confirmations)")
|
||||
enhance_parser.add_argument("--timeout", type=int, default=600, help="Timeout in seconds")
|
||||
|
||||
# === enhance-status subcommand ===
|
||||
@@ -376,8 +376,8 @@ def main(argv: Optional[List[str]] = None) -> int:
|
||||
sys.argv.append("--background")
|
||||
if args.daemon:
|
||||
sys.argv.append("--daemon")
|
||||
if args.force:
|
||||
sys.argv.append("--force")
|
||||
if args.no_force:
|
||||
sys.argv.append("--no-force")
|
||||
if args.timeout:
|
||||
sys.argv.extend(["--timeout", str(args.timeout)])
|
||||
return enhance_main() or 0
|
||||
|
||||
Reference in New Issue
Block a user