Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24442f5c8c | ||
|
|
c411434de7 | ||
|
|
d5dee9b4f6 | ||
|
|
23e1c15309 | ||
|
|
50dff177f2 | ||
|
|
dbfe812adc | ||
|
|
b9da30cc2a | ||
|
|
cbf4de43b8 | ||
|
|
ada9ff4212 | ||
|
|
8004498f35 | ||
|
|
6e9d9360e4 | ||
|
|
e42a251cea | ||
|
|
17029df2f0 | ||
|
|
d8e7837d2b | ||
|
|
65e0fcf42d | ||
|
|
5f41ac00fe | ||
|
|
7cfa786e35 | ||
|
|
6cc1584671 | ||
|
|
f2f05478bb |
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -17,31 +17,7 @@ hooks:
|
||||
Stop:
|
||||
- hooks:
|
||||
- type: command
|
||||
command: |
|
||||
SCRIPT_DIR="${CODEBUDDY_PLUGIN_ROOT:-$HOME/.codebuddy/skills/planning-with-files}/scripts"
|
||||
|
||||
IS_WINDOWS=0
|
||||
if [ "${OS-}" = "Windows_NT" ]; then
|
||||
IS_WINDOWS=1
|
||||
else
|
||||
UNAME_S="$(uname -s 2>/dev/null || echo '')"
|
||||
case "$UNAME_S" in
|
||||
CYGWIN*|MINGW*|MSYS*) IS_WINDOWS=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$IS_WINDOWS" -eq 1 ]; then
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
else
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
else
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
command: "SD=\"${CODEBUDDY_PLUGIN_ROOT:-$HOME/.codebuddy/skills/planning-with-files}/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""
|
||||
metadata:
|
||||
version: "2.16.1"
|
||||
---
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -17,31 +17,7 @@ hooks:
|
||||
Stop:
|
||||
- hooks:
|
||||
- type: command
|
||||
command: |
|
||||
SCRIPT_DIR="${CODEX_SKILL_ROOT:-$HOME/.codex/skills/planning-with-files}/scripts"
|
||||
|
||||
IS_WINDOWS=0
|
||||
if [ "${OS-}" = "Windows_NT" ]; then
|
||||
IS_WINDOWS=1
|
||||
else
|
||||
UNAME_S="$(uname -s 2>/dev/null || echo '')"
|
||||
case "$UNAME_S" in
|
||||
CYGWIN*|MINGW*|MSYS*) IS_WINDOWS=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$IS_WINDOWS" -eq 1 ]; then
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
else
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
else
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
command: "SD=\"${CODEX_SKILL_ROOT:-$HOME/.codex/skills/planning-with-files}/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""
|
||||
metadata:
|
||||
version: "2.16.1"
|
||||
---
|
||||
@@ -225,8 +201,8 @@ Helper scripts for automation:
|
||||
|
||||
## Advanced Topics
|
||||
|
||||
- **Manus Principles:** See [reference.md](reference.md)
|
||||
- **Real Examples:** See [examples.md](examples.md)
|
||||
- **Manus Principles:** See [references/reference.md](references/reference.md)
|
||||
- **Real Examples:** See [references/examples.md](references/examples.md)
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -13,18 +13,31 @@ import sys
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import List, Dict, Optional, Tuple
|
||||
from datetime import datetime
|
||||
|
||||
PLANNING_FILES = ['task_plan.md', 'progress.md', 'findings.md']
|
||||
|
||||
|
||||
def get_project_dir(project_path: str) -> Path:
|
||||
"""Convert project path to Claude's storage path format."""
|
||||
def get_project_dir(project_path: str) -> Tuple[Optional[Path], Optional[str]]:
|
||||
"""Resolve session storage path for the current runtime variant."""
|
||||
sanitized = project_path.replace('/', '-')
|
||||
if not sanitized.startswith('-'):
|
||||
sanitized = '-' + sanitized
|
||||
sanitized = sanitized.replace('_', '-')
|
||||
return Path.home() / '.claude' / 'projects' / sanitized
|
||||
|
||||
claude_path = Path.home() / '.claude' / 'projects' / sanitized
|
||||
|
||||
# Codex stores sessions in ~/.codex/sessions with a different format.
|
||||
# Avoid silently scanning Claude paths when running from Codex skill folder.
|
||||
script_path = Path(__file__).as_posix().lower()
|
||||
is_codex_variant = '/.codex/' in script_path
|
||||
codex_sessions_dir = Path.home() / '.codex' / 'sessions'
|
||||
if is_codex_variant and codex_sessions_dir.exists() and not claude_path.exists():
|
||||
return None, (
|
||||
"[planning-with-files] Session catchup skipped: Codex stores sessions "
|
||||
"in ~/.codex/sessions and native Codex parsing is not implemented yet."
|
||||
)
|
||||
|
||||
return claude_path, None
|
||||
|
||||
|
||||
def get_sessions_sorted(project_dir: Path) -> List[Path]:
|
||||
@@ -140,7 +153,6 @@ def extract_messages_after(messages: List[Dict], after_line: int) -> List[Dict]:
|
||||
|
||||
def main():
|
||||
project_path = sys.argv[1] if len(sys.argv) > 1 else os.getcwd()
|
||||
project_dir = get_project_dir(project_path)
|
||||
|
||||
# Check if planning files exist (indicates active task)
|
||||
has_planning_files = any(
|
||||
@@ -150,6 +162,11 @@ def main():
|
||||
# No planning files in this project; skip catchup to avoid noise.
|
||||
return
|
||||
|
||||
project_dir, skip_reason = get_project_dir(project_path)
|
||||
if skip_reason:
|
||||
print(skip_reason)
|
||||
return
|
||||
|
||||
if not project_dir.exists():
|
||||
# No previous sessions, nothing to catch up on
|
||||
return
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -17,31 +17,7 @@ hooks:
|
||||
Stop:
|
||||
- hooks:
|
||||
- type: command
|
||||
command: |
|
||||
SCRIPT_DIR="${CURSOR_SKILL_ROOT:-.cursor/skills/planning-with-files}/scripts"
|
||||
|
||||
IS_WINDOWS=0
|
||||
if [ "${OS-}" = "Windows_NT" ]; then
|
||||
IS_WINDOWS=1
|
||||
else
|
||||
UNAME_S="$(uname -s 2>/dev/null || echo '')"
|
||||
case "$UNAME_S" in
|
||||
CYGWIN*|MINGW*|MSYS*) IS_WINDOWS=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$IS_WINDOWS" -eq 1 ]; then
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
else
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
else
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
command: "SD=\"${CURSOR_SKILL_ROOT:-.cursor/skills/planning-with-files}/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""
|
||||
metadata:
|
||||
version: "2.16.1"
|
||||
---
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -17,31 +17,7 @@ hooks:
|
||||
Stop:
|
||||
- hooks:
|
||||
- type: command
|
||||
command: |
|
||||
SCRIPT_DIR="${KILOCODE_SKILL_ROOT:-$HOME/.kilocode/skills/planning-with-files}/scripts"
|
||||
|
||||
IS_WINDOWS=0
|
||||
if [ "${OS-}" = "Windows_NT" ]; then
|
||||
IS_WINDOWS=1
|
||||
else
|
||||
UNAME_S="$(uname -s 2>/dev/null || echo '')"
|
||||
case "$UNAME_S" in
|
||||
CYGWIN*|MINGW*|MSYS*) IS_WINDOWS=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$IS_WINDOWS" -eq 1 ]; then
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
else
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
else
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
command: "SD=\"${KILOCODE_SKILL_ROOT:-$HOME/.kilocode/skills/planning-with-files}/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""
|
||||
metadata:
|
||||
version: "2.16.1"
|
||||
---
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -17,32 +17,7 @@ hooks:
|
||||
Stop:
|
||||
- hooks:
|
||||
- type: command
|
||||
command: |
|
||||
SCRIPT_DIR="${HOME}/.mastracode/skills/planning-with-files/scripts"
|
||||
[ -f "$SCRIPT_DIR/check-complete.sh" ] || SCRIPT_DIR=".mastracode/skills/planning-with-files/scripts"
|
||||
|
||||
IS_WINDOWS=0
|
||||
if [ "${OS-}" = "Windows_NT" ]; then
|
||||
IS_WINDOWS=1
|
||||
else
|
||||
UNAME_S="$(uname -s 2>/dev/null || echo '')"
|
||||
case "$UNAME_S" in
|
||||
CYGWIN*|MINGW*|MSYS*) IS_WINDOWS=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$IS_WINDOWS" -eq 1 ]; then
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
else
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
else
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
command: "SD=\"$HOME/.mastracode/skills/planning-with-files/scripts\"; [ -f \"$SD/check-complete.sh\" ] || SD=\".mastracode/skills/planning-with-files/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""
|
||||
metadata:
|
||||
version: "2.18.1"
|
||||
---
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -17,31 +17,7 @@ hooks:
|
||||
Stop:
|
||||
- hooks:
|
||||
- type: command
|
||||
command: |
|
||||
SCRIPT_DIR="${OPENCODE_SKILL_ROOT:-$HOME/.config/opencode/skills/planning-with-files}/scripts"
|
||||
|
||||
IS_WINDOWS=0
|
||||
if [ "${OS-}" = "Windows_NT" ]; then
|
||||
IS_WINDOWS=1
|
||||
else
|
||||
UNAME_S="$(uname -s 2>/dev/null || echo '')"
|
||||
case "$UNAME_S" in
|
||||
CYGWIN*|MINGW*|MSYS*) IS_WINDOWS=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$IS_WINDOWS" -eq 1 ]; then
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
else
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
else
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
command: "SD=\"${OPENCODE_SKILL_ROOT:-$HOME/.config/opencode/skills/planning-with-files}/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""
|
||||
metadata:
|
||||
version: "2.16.1"
|
||||
---
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -2,6 +2,69 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [2.20.0] - 2026-03-04
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Codex session-catchup silent failure** (PR #100 by @tt-a1i, fixes #94)
|
||||
- `session-catchup.py` in the Codex variant was silently scanning `~/.claude/projects` even when running from a Codex context, where sessions live under `~/.codex/sessions` in a different format
|
||||
- Now detects the Codex runtime from `__file__` path and prints a clear fallback message instead of a silent no-op
|
||||
|
||||
- **Docs broken links** (PR #99 by @tt-a1i, fixes #95)
|
||||
- `docs/opencode.md` linked to `.opencode/INSTALL.md` which does not exist — corrected to `docs/installation.md`
|
||||
- `docs/factory.md` See Also links used `../skills/planning-with-files/` paths — corrected to `../.factory/skills/planning-with-files/`
|
||||
|
||||
- **Examples used stale `notes.md` filename** (PR #99 by @tt-a1i, fixes #96)
|
||||
- All `examples.md` files across 16 IDE copies referenced `notes.md` which was renamed to `findings.md` — updated consistently everywhere
|
||||
|
||||
- **`sync-ide-folders.py --help` ran a sync instead of printing usage** (PR #99 by @tt-a1i, fixes #98)
|
||||
- Replaced manual `sys.argv` parsing with `argparse` — `--help` now exits cleanly with usage information
|
||||
|
||||
### Changed
|
||||
|
||||
- **OpenCode README support label corrected** (PR #99 by @tt-a1i, fixes #97)
|
||||
- Changed from `Full Support` to `Partial Support` with a note about session catchup limitations — aligns README with what `docs/opencode.md` actually says
|
||||
|
||||
### Thanks
|
||||
|
||||
- @tt-a1i for the full consistency sweep (PR #99, PR #100)
|
||||
|
||||
---
|
||||
|
||||
## [2.19.0] - 2026-03-04
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Codex Advanced Topics broken links** (PR #92 by @tt-a1i, fixes #91)
|
||||
- Corrected two dead links in `.codex/skills/planning-with-files/SKILL.md`
|
||||
- `reference.md` → `references/reference.md`
|
||||
- `examples.md` → `references/examples.md`
|
||||
|
||||
### Thanks
|
||||
|
||||
- @tt-a1i for identifying and fixing the broken Codex links (PR #92)
|
||||
|
||||
---
|
||||
|
||||
## [2.18.3] - 2026-02-28
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Stop hook multiline YAML command fails under Git Bash on Windows** (PR #86 by @raykuo998)
|
||||
- Root cause: YAML `command: |` multiline blocks are not reliably parsed by Git Bash on Windows. The shell received the first line (`SCRIPT_DIR=...`) as a command name rather than a variable assignment, crashing the hook before it could do anything.
|
||||
- Replaced 25-line OS detection scripts with a single-line implicit platform fallback chain: `powershell.exe` first, `sh` as fallback. Applied to all 7 SKILL.md variants with Stop hooks.
|
||||
- Added `-NoProfile` to PowerShell invocation for faster startup
|
||||
|
||||
- **`check-complete.ps1` completely failing on PowerShell 5.1** (PR #88 by @raykuo998)
|
||||
- Root cause: Special characters inside double-quoted `Write-Host` strings (`[`, `(`, em-dash) caused parse errors in Windows PowerShell 5.1
|
||||
- Replaced double-quoted strings with single-quoted strings plus explicit concatenation for variable interpolation. Applied to all 12 platform copies.
|
||||
|
||||
### Thanks
|
||||
|
||||
- @raykuo998 for both Windows compatibility fixes (PR #86, PR #88)
|
||||
|
||||
---
|
||||
|
||||
## [2.18.2] - 2026-02-26
|
||||
|
||||
### Fixed
|
||||
|
||||
+57
-2
@@ -59,8 +59,53 @@ These amazing people have contributed code, documentation, or significant improv
|
||||
- Created `docs/codebuddy.md` installation guide
|
||||
- **Impact:** Expands IDE support to CodeBuddy ecosystem
|
||||
|
||||
- **[@lincolnwan](https://github.com/lincolnwan)** - [PR #80](https://github.com/OthmanAdi/planning-with-files/pull/80)
|
||||
- Added native GitHub Copilot hooks integration using the early 2026 hooks system
|
||||
- Created `.github/hooks/planning-with-files.json` with full hook scripts in `.github/hooks/scripts/`
|
||||
- Full cross-platform support (bash + PowerShell) and `docs/copilot.md` installation guide
|
||||
- **Impact:** Brought total supported platforms to 15, expanding the skill to the GitHub Copilot ecosystem
|
||||
|
||||
- **[@ciberponk](https://github.com/ciberponk)** - [PR #77](https://github.com/OthmanAdi/planning-with-files/pull/77)
|
||||
- Added isolated `.planning/{uuid}/` plan sessions with UUID generation and PLAN_ID pinning
|
||||
- Enables parallel planning sessions in separate terminals without state collision
|
||||
- Cross-platform scripts (bash + PowerShell) with full backward compatibility for single-session users
|
||||
- **Impact:** Unlocks parallel planning workflows, shipped to experimental branch ahead of master
|
||||
|
||||
- **[@ttttmr](https://github.com/ttttmr)** - [PR #67](https://github.com/OthmanAdi/planning-with-files/pull/67)
|
||||
- Added Pi Agent support with full skill integration
|
||||
- **Impact:** Expands the skill to the Pi Agent ecosystem
|
||||
|
||||
### Other Contributors
|
||||
|
||||
- **[@popey](https://github.com/popey)** - [PR #83](https://github.com/OthmanAdi/planning-with-files/pull/83)
|
||||
- Fixed `allowed-tools` YAML list (invalid per Anthropic skill spec, silently killing discoverability)
|
||||
- Fixed `metadata.version` placement and added trigger terms for better skill matching
|
||||
- Applied across the canonical SKILL.md file
|
||||
|
||||
- **[@jonthebeef](https://github.com/jonthebeef)** - [PR #75](https://github.com/OthmanAdi/planning-with-files/pull/75)
|
||||
- Added `/plan:status` command for quick planning progress display without reading through all planning files
|
||||
|
||||
- **[@codelyc](https://github.com/codelyc)** - [PR #66](https://github.com/OthmanAdi/planning-with-files/pull/66), [PR #70](https://github.com/OthmanAdi/planning-with-files/pull/70), [PR #76](https://github.com/OthmanAdi/planning-with-files/pull/76)
|
||||
- Fixed Codex skill path references and replaced CLAUDE_PLUGIN_ROOT with correct absolute paths (PR #66)
|
||||
- Fixed CodeBuddy skill path references and environment variables (PR #70)
|
||||
- Added OpenCode scripts for the planning-with-files skill (PR #76)
|
||||
|
||||
- **[@Guozihong](https://github.com/Guozihong)** - [PR #51](https://github.com/OthmanAdi/planning-with-files/pull/51)
|
||||
- Added `/planning-with-files:start` command, enabling skill activation without copying files manually
|
||||
|
||||
- **[@fahmyelraie](https://github.com/fahmyelraie)** - [PR #49](https://github.com/OthmanAdi/planning-with-files/pull/49)
|
||||
- Fixed Stop hook path resolution when CLAUDE_PLUGIN_ROOT is not set in the environment
|
||||
|
||||
- **[@olgasafonova](https://github.com/olgasafonova)** - [PR #46](https://github.com/OthmanAdi/planning-with-files/pull/46)
|
||||
- Added SkillCheck validation badge after running the skill through spec validation
|
||||
|
||||
- **[@AZLabsAI](https://github.com/AZLabsAI)** - [PR #65](https://github.com/OthmanAdi/planning-with-files/pull/65)
|
||||
- Updated OpenClaw docs to reflect the product rename from Moltbot, correcting all paths and CLI commands
|
||||
|
||||
- **[@raykuo998](https://github.com/raykuo998)** - [PR #88](https://github.com/OthmanAdi/planning-with-files/pull/88), [PR #86](https://github.com/OthmanAdi/planning-with-files/pull/86)
|
||||
- Fixed `check-complete.ps1` completely failing on PowerShell 5.1 due to special character parse errors in double-quoted strings; switched to single-quoted strings with concatenation across all 12 platform copies (PR #88)
|
||||
- Fixed Stop hook YAML multiline command block failing under Git Bash on Windows; collapsed 25-line OS detection to single-line implicit platform fallback chain across all 7 SKILL.md variants (PR #86)
|
||||
|
||||
- **[@gydx6](https://github.com/gydx6)** - [PR #79](https://github.com/OthmanAdi/planning-with-files/pull/79)
|
||||
- Fixed session-catchup false positives in all 9 skill-distributed copies
|
||||
- Added early return guards for non-planning projects
|
||||
@@ -80,10 +125,19 @@ These amazing people have contributed code, documentation, or significant improv
|
||||
- Added `assets` field to ensure templates copy to cache
|
||||
- **Impact:** Resolved template path issues
|
||||
|
||||
- **[@tt-a1i](https://github.com/tt-a1i)** - [PR #92](https://github.com/OthmanAdi/planning-with-files/pull/92), [PR #99](https://github.com/OthmanAdi/planning-with-files/pull/99), [PR #100](https://github.com/OthmanAdi/planning-with-files/pull/100)
|
||||
- Fixed broken Advanced Topics links in Codex SKILL.md (PR #92)
|
||||
- Fixed 5 consistency issues across docs: broken links in opencode.md and factory.md, stale `notes.md` references replaced with `findings.md` across all 16 IDE copies, OpenCode support label corrected in README, `--help` in sync-ide-folders.py no longer runs a sync (PR #99)
|
||||
- Fixed Codex session-catchup silently scanning Claude session paths; now prints an explicit fallback message when running from Codex context (PR #100)
|
||||
- **Impact:** Significant docs and tooling consistency sweep across the entire multi-IDE surface
|
||||
|
||||
## Community Forks
|
||||
|
||||
These developers have created forks that extend the functionality:
|
||||
|
||||
- **[@RioTheGreat-ai](https://github.com/RioTheGreat-ai)** - [agentfund-skill](https://github.com/RioTheGreat-ai/agentfund-skill)
|
||||
- Crowdfunding platform for AI agents using milestone-based escrow on Base, built with planning-with-files
|
||||
|
||||
- **[@kmichels](https://github.com/kmichels)** - [multi-manus-planning](https://github.com/kmichels/multi-manus-planning)
|
||||
- Multi-project support
|
||||
- SessionStart git sync integration
|
||||
@@ -92,6 +146,7 @@ These developers have created forks that extend the functionality:
|
||||
|
||||
Thank you to everyone who reported issues, provided feedback, and helped test fixes:
|
||||
|
||||
- [@msuadOf](https://github.com/msuadOf) - Issue #93 (TMPDIR environment fix for plugin install)
|
||||
- [@DorianZheng](https://github.com/DorianZheng) - Issue #84 (BoxLite sandbox integration proposal)
|
||||
- [@mtuwei](https://github.com/mtuwei) - Issue #32 (Windows hook error)
|
||||
- [@JianweiWangs](https://github.com/JianweiWangs) - Issue #31 (Skill activation)
|
||||
@@ -119,6 +174,6 @@ If you've contributed and don't see your name here, please open an issue! We wan
|
||||
|
||||
---
|
||||
|
||||
**Total Contributors:** 13+ and growing!
|
||||
**Total Contributors:** 25+ and growing!
|
||||
|
||||
*Last updated: February 26, 2026*
|
||||
*Last updated: March 4, 2026*
|
||||
|
||||
@@ -31,27 +31,7 @@ If this skill helps you work smarter, that's all I wanted.
|
||||
<details>
|
||||
<summary><strong>🤝 Contributors</strong></summary>
|
||||
|
||||
Everyone who made this project better — bug reports, PRs, and integrations.
|
||||
|
||||
| Contributor | Contribution |
|
||||
|-------------|-------------|
|
||||
| [@popey](https://github.com/popey) | Skill metadata & discoverability fixes (PR #83) |
|
||||
| [@lincolnwan](https://github.com/lincolnwan) | GitHub Copilot hooks support (PR #80) |
|
||||
| [@gydx6](https://github.com/gydx6) | Session catchup false-positive fix (PR #79) |
|
||||
| [@ciberponk](https://github.com/ciberponk) | Isolated plan sessions with UUID pinning (PR #77) |
|
||||
| [@jonthebeef](https://github.com/jonthebeef) | `/plan:status` command (PR #75) |
|
||||
| [@codelyc](https://github.com/codelyc) | OpenCode scripts + CodeBuddy path fixes (PRs #76, #70, #66) |
|
||||
| [@ttttmr](https://github.com/ttttmr) | Pi Agent integration (PR #67) |
|
||||
| [@AZLabsAI](https://github.com/AZLabsAI) | OpenClaw docs update (PR #65) |
|
||||
| [@ZWkang](https://github.com/ZWkang) | CodeBuddy integration (PR #60) |
|
||||
| [@SaladDay](https://github.com/SaladDay) | POSIX stop hook fix (PR #57) |
|
||||
| [@murphyXu](https://github.com/murphyXu) | Continue IDE integration (PR #56) |
|
||||
| [@Guozihong](https://github.com/Guozihong) | Start command (PR #51) |
|
||||
| [@fahmyelraie](https://github.com/fahmyelraie) | Stop hook path resolution fix (PR #49) |
|
||||
| [@olgasafonova](https://github.com/olgasafonova) | SkillCheck validation badge (PR #46) |
|
||||
| [@lasmarois](https://github.com/lasmarois) | Session catchup cross-session improvements (PRs #37, #34) |
|
||||
| [@RioTheGreat-ai](https://github.com/RioTheGreat-ai) | AgentFund community extension (PR #72) |
|
||||
| [@Hexiaopi](https://github.com/Hexiaopi) | Copilot garbled characters bug report (Issue #82) |
|
||||
See the full list of everyone who made this project better in [CONTRIBUTORS.md](./CONTRIBUTORS.md).
|
||||
|
||||
</details>
|
||||
|
||||
@@ -111,7 +91,7 @@ When your context fills up and you run `/clear`, this skill **automatically reco
|
||||
| Cursor | ✅ Full Support | [Cursor Setup](docs/cursor.md) | Skills + Hooks |
|
||||
| Continue | ✅ Full Support | [Continue Setup](docs/continue.md) | Skills + Prompt files |
|
||||
| Kilocode | ✅ Full Support | [Kilocode Setup](docs/kilocode.md) | Skills |
|
||||
| OpenCode | ✅ Full Support | [OpenCode Setup](docs/opencode.md) | Personal/Project Skill |
|
||||
| OpenCode | ⚠️ Partial Support | [OpenCode Setup](docs/opencode.md) | Personal/Project Skill (session catchup limited) |
|
||||
| Codex | ✅ Full Support | [Codex Setup](docs/codex.md) | Personal Skill |
|
||||
| FactoryAI Droid | ✅ Full Support | [Factory Setup](docs/factory.md) | Workspace/Personal Skill |
|
||||
| Antigravity | ✅ Full Support | [Antigravity Setup](docs/antigravity.md) | Workspace/Personal Skill |
|
||||
@@ -346,29 +326,7 @@ planning-with-files/
|
||||
|
||||
## Documentation
|
||||
|
||||
| Document | Description |
|
||||
|----------|-------------|
|
||||
| [Installation Guide](docs/installation.md) | All installation methods (plugin, manual, Cursor, Windows) |
|
||||
| [Quick Start](docs/quickstart.md) | 5-step guide to using the pattern |
|
||||
| [Workflow Diagram](docs/workflow.md) | Visual diagram of how files and hooks interact |
|
||||
| [Troubleshooting](docs/troubleshooting.md) | Common issues and solutions |
|
||||
| [Gemini CLI Setup](docs/gemini.md) | Google Gemini CLI integration guide |
|
||||
| [OpenClaw Setup](docs/openclaw.md) | OpenClaw integration guide |
|
||||
| [Kiro Setup](docs/kiro.md) | Kiro steering files integration |
|
||||
| [Cursor Setup](docs/cursor.md) | Cursor IDE-specific instructions |
|
||||
| [Continue Setup](docs/continue.md) | Continue integration guide (skills + slash prompt) |
|
||||
| [Windows Setup](docs/windows.md) | Windows-specific notes |
|
||||
| [Kilo Code Support](docs/kilocode.md) | Kilo Code integration guide |
|
||||
| [Codex Setup](docs/codex.md) | Codex IDE installation and usage |
|
||||
| [OpenCode Setup](docs/opencode.md) | OpenCode IDE installation, oh-my-opencode config |
|
||||
| [FactoryAI Droid Setup](docs/factory.md) | FactoryAI Droid integration guide |
|
||||
| [Antigravity Setup](docs/antigravity.md) | Antigravity IDE integration guide |
|
||||
| [CodeBuddy Setup](docs/codebuddy.md) | CodeBuddy IDE integration guide |
|
||||
| [AdaL CLI Setup](docs/adal.md) | AdaL CLI / Sylph AI integration guide |
|
||||
| [Pi Agent Setup](docs/pi-agent.md) | Pi Agent integration guide |
|
||||
| [Copilot Setup](docs/copilot.md) | GitHub Copilot hooks integration guide |
|
||||
| [Mastra Setup](docs/mastra.md) | Mastra Code integration guide |
|
||||
| [BoxLite Setup](docs/boxlite.md) | BoxLite micro-VM sandbox integration guide |
|
||||
All platform setup guides and documentation are in the [docs/](./docs/) folder.
|
||||
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
+2
-2
@@ -248,5 +248,5 @@ Factory Droid will reference them automatically.
|
||||
|
||||
- [Quick Start Guide](quickstart.md)
|
||||
- [Workflow Diagram](workflow.md)
|
||||
- [Manus Principles](../skills/planning-with-files/references.md)
|
||||
- [Real Examples](../skills/planning-with-files/examples.md)
|
||||
- [Manus Principles](../.factory/skills/planning-with-files/references.md)
|
||||
- [Real Examples](../.factory/skills/planning-with-files/examples.md)
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ planning-with-files works with OpenCode as a personal or project skill.
|
||||
|
||||
## Installation
|
||||
|
||||
See [.opencode/INSTALL.md](../.opencode/INSTALL.md) for detailed installation instructions.
|
||||
See [docs/installation.md](installation.md) for detailed installation instructions.
|
||||
|
||||
### Quick Install (Global)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
@@ -19,7 +19,7 @@ Use --dry-run to preview changes without writing anything.
|
||||
Use --verify to check for drift without making changes (exits 1 if drift found).
|
||||
"""
|
||||
|
||||
import os
|
||||
import argparse
|
||||
import shutil
|
||||
import sys
|
||||
import hashlib
|
||||
@@ -226,9 +226,31 @@ def sync_file(src, dst, *, dry_run=False):
|
||||
|
||||
# ─── Main ──────────────────────────────────────────────────────────
|
||||
|
||||
def main():
|
||||
dry_run = "--dry-run" in sys.argv
|
||||
verify = "--verify" in sys.argv
|
||||
def parse_args(argv=None):
|
||||
"""Parse CLI arguments for sync behavior."""
|
||||
parser = argparse.ArgumentParser(
|
||||
description=(
|
||||
"Sync shared planning-with-files assets from canonical source "
|
||||
"to IDE-specific folders."
|
||||
)
|
||||
)
|
||||
parser.add_argument(
|
||||
"--dry-run",
|
||||
action="store_true",
|
||||
help="Preview changes without writing files.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--verify",
|
||||
action="store_true",
|
||||
help="Check for drift only; exit with code 1 if drift is found.",
|
||||
)
|
||||
return parser.parse_args(argv)
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
args = parse_args(argv)
|
||||
dry_run = args.dry_run
|
||||
verify = args.verify
|
||||
|
||||
# Must run from repo root
|
||||
if not CANONICAL.exists():
|
||||
|
||||
@@ -17,31 +17,7 @@ hooks:
|
||||
Stop:
|
||||
- hooks:
|
||||
- type: command
|
||||
command: |
|
||||
SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/planning-with-files}/scripts"
|
||||
|
||||
IS_WINDOWS=0
|
||||
if [ "${OS-}" = "Windows_NT" ]; then
|
||||
IS_WINDOWS=1
|
||||
else
|
||||
UNAME_S="$(uname -s 2>/dev/null || echo '')"
|
||||
case "$UNAME_S" in
|
||||
CYGWIN*|MINGW*|MSYS*) IS_WINDOWS=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$IS_WINDOWS" -eq 1 ]; then
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
else
|
||||
powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null ||
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
else
|
||||
sh "$SCRIPT_DIR/check-complete.sh"
|
||||
fi
|
||||
command: "SD=\"${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/planning-with-files}/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""
|
||||
metadata:
|
||||
version: "2.16.1"
|
||||
---
|
||||
|
||||
@@ -34,14 +34,14 @@ Create a research summary on the benefits of morning exercise.
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
WebSearch "morning exercise benefits"
|
||||
Write notes.md # Store findings
|
||||
Write findings.md # Store findings
|
||||
Edit task_plan.md # Mark Phase 2 complete
|
||||
```
|
||||
|
||||
### Loop 3: Synthesize
|
||||
```bash
|
||||
Read task_plan.md # Refresh goals
|
||||
Read notes.md # Get findings
|
||||
Read findings.md # Get findings
|
||||
Write morning_exercise_summary.md
|
||||
Edit task_plan.md # Mark Phase 3 complete
|
||||
```
|
||||
@@ -120,9 +120,9 @@ Add functional dark mode toggle to settings.
|
||||
**Currently in Phase 3** - Building toggle component
|
||||
```
|
||||
|
||||
**notes.md:**
|
||||
**findings.md:**
|
||||
```markdown
|
||||
# Notes: Dark Mode Implementation
|
||||
# Findings: Dark Mode Implementation
|
||||
|
||||
## Existing Theme System
|
||||
- Located in: src/styles/theme.ts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Check if all phases in task_plan.md are complete
|
||||
# Always exits 0 — uses stdout for status reporting
|
||||
# Always exits 0 -- uses stdout for status reporting
|
||||
# Used by Stop hook to report task completion status
|
||||
|
||||
param(
|
||||
@@ -7,7 +7,7 @@ param(
|
||||
)
|
||||
|
||||
if (-not (Test-Path $PlanFile)) {
|
||||
Write-Host "[planning-with-files] No task_plan.md found — no active planning session."
|
||||
Write-Host '[planning-with-files] No task_plan.md found -- no active planning session.'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) {
|
||||
$PENDING = ([regex]::Matches($content, "\[pending\]")).Count
|
||||
}
|
||||
|
||||
# Report status (always exit 0 — incomplete task is a normal state)
|
||||
# Report status -- always exit 0, incomplete task is a normal state
|
||||
if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) {
|
||||
Write-Host "[planning-with-files] ALL PHASES COMPLETE ($COMPLETE/$TOTAL)"
|
||||
Write-Host ('[planning-with-files] ALL PHASES COMPLETE (' + $COMPLETE + '/' + $TOTAL + ')')
|
||||
} else {
|
||||
Write-Host "[planning-with-files] Task in progress ($COMPLETE/$TOTAL phases complete)"
|
||||
Write-Host ('[planning-with-files] Task in progress (' + $COMPLETE + '/' + $TOTAL + ' phases complete)')
|
||||
if ($IN_PROGRESS -gt 0) {
|
||||
Write-Host "[planning-with-files] $IN_PROGRESS phase(s) still in progress."
|
||||
Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' phase(s) still in progress.')
|
||||
}
|
||||
if ($PENDING -gt 0) {
|
||||
Write-Host "[planning-with-files] $PENDING phase(s) pending."
|
||||
Write-Host ('[planning-with-files] ' + $PENDING + ' phase(s) pending.')
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user