planning-with-files 3.9.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 +131 -0
- package/SKILL.md +262 -0
- package/examples.md +202 -0
- package/extensions/planning-with-files/README.md +35 -0
- package/extensions/planning-with-files/__tests__/attestation.test.ts +79 -0
- package/extensions/planning-with-files/__tests__/plan-anchor.test.ts +228 -0
- package/extensions/planning-with-files/__tests__/runtime.test.ts +688 -0
- package/extensions/planning-with-files/attestation.ts +55 -0
- package/extensions/planning-with-files/constants.ts +31 -0
- package/extensions/planning-with-files/index.ts +6 -0
- package/extensions/planning-with-files/package.json +17 -0
- package/extensions/planning-with-files/plan.ts +263 -0
- package/extensions/planning-with-files/runtime.ts +788 -0
- package/package.json +46 -0
- package/reference.md +218 -0
- package/scripts/attest-plan.ps1 +137 -0
- package/scripts/attest-plan.sh +206 -0
- package/scripts/check-complete.ps1 +253 -0
- package/scripts/check-complete.sh +253 -0
- package/scripts/init-session.ps1 +230 -0
- package/scripts/init-session.sh +370 -0
- package/scripts/plan-doctor.sh +148 -0
- package/scripts/resolve-plan-dir.ps1 +106 -0
- package/scripts/resolve-plan-dir.sh +263 -0
- package/scripts/session-catchup.py +876 -0
- package/scripts/set-active-plan.ps1 +51 -0
- package/scripts/set-active-plan.sh +50 -0
- package/templates/analytics_findings.md +85 -0
- package/templates/analytics_task_plan.md +106 -0
- package/templates/findings.md +95 -0
- package/templates/progress.md +114 -0
- package/templates/task_plan.md +140 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# planning-with-files: set or display the active plan pointer (PowerShell).
|
|
2
|
+
#
|
|
3
|
+
# Usage:
|
|
4
|
+
# .\set-active-plan.ps1 <plan_id> - pin .planning\.active_plan to plan_id
|
|
5
|
+
# .\set-active-plan.ps1 - print the current active plan (if any)
|
|
6
|
+
|
|
7
|
+
param(
|
|
8
|
+
[string]$PlanId = ""
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
$PlanRoot = Join-Path (Get-Location) ".planning"
|
|
12
|
+
$ActiveFile = Join-Path $PlanRoot ".active_plan"
|
|
13
|
+
|
|
14
|
+
if ($PlanId -eq "") {
|
|
15
|
+
if (Test-Path $ActiveFile) {
|
|
16
|
+
$current = (Get-Content $ActiveFile -Raw -Encoding UTF8).Trim()
|
|
17
|
+
$planDir = Join-Path $PlanRoot $current
|
|
18
|
+
if ($current -ne "" -and (Test-Path $planDir)) {
|
|
19
|
+
Write-Output "Active plan: $current"
|
|
20
|
+
Write-Output "Path: $planDir"
|
|
21
|
+
} elseif ($current -ne "") {
|
|
22
|
+
Write-Output "Active plan pointer: $current (directory not found - stale pointer)"
|
|
23
|
+
} else {
|
|
24
|
+
Write-Output "No active plan set."
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
Write-Output "No active plan set."
|
|
28
|
+
}
|
|
29
|
+
exit 0
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
$PlanDir = Join-Path $PlanRoot $PlanId
|
|
33
|
+
|
|
34
|
+
if (-not (Test-Path $PlanDir)) {
|
|
35
|
+
Write-Error "Error: plan directory not found: $PlanDir"
|
|
36
|
+
Write-Error "Run: init-session.sh `"$PlanId`" to create it, or check .planning\ for available plans."
|
|
37
|
+
exit 1
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (-not (Test-Path $PlanRoot)) {
|
|
41
|
+
New-Item -ItemType Directory -Path $PlanRoot -Force | Out-Null
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
|
|
45
|
+
[System.IO.File]::WriteAllText($ActiveFile, $PlanId, $utf8NoBom)
|
|
46
|
+
|
|
47
|
+
Write-Output "Active plan set to: $PlanId"
|
|
48
|
+
Write-Output "Path: $PlanDir"
|
|
49
|
+
Write-Output ""
|
|
50
|
+
Write-Output "To pin this terminal session only:"
|
|
51
|
+
Write-Output "`$env:PLAN_ID = '$PlanId'"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# planning-with-files: set or display the active plan pointer.
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# set-active-plan.sh <plan_id> — pin .planning/.active_plan to plan_id
|
|
6
|
+
# set-active-plan.sh — print the current active plan (if any)
|
|
7
|
+
#
|
|
8
|
+
# The active plan is stored in .planning/.active_plan and is read by
|
|
9
|
+
# resolve-plan-dir.sh when no $PLAN_ID env var is set.
|
|
10
|
+
|
|
11
|
+
set -e
|
|
12
|
+
|
|
13
|
+
PLAN_ROOT="${PWD}/.planning"
|
|
14
|
+
ACTIVE_FILE="${PLAN_ROOT}/.active_plan"
|
|
15
|
+
|
|
16
|
+
# No args → show current active plan
|
|
17
|
+
if [ "${1:-}" = "" ]; then
|
|
18
|
+
if [ -f "${ACTIVE_FILE}" ]; then
|
|
19
|
+
plan_id="$(tr -d '\r\n' < "${ACTIVE_FILE}")"
|
|
20
|
+
if [ -n "${plan_id}" ] && [ -d "${PLAN_ROOT}/${plan_id}" ]; then
|
|
21
|
+
echo "Active plan: ${plan_id}"
|
|
22
|
+
echo "Path: ${PLAN_ROOT}/${plan_id}"
|
|
23
|
+
elif [ -n "${plan_id}" ]; then
|
|
24
|
+
echo "Active plan pointer: ${plan_id} (directory not found — stale pointer)"
|
|
25
|
+
else
|
|
26
|
+
echo "No active plan set."
|
|
27
|
+
fi
|
|
28
|
+
else
|
|
29
|
+
echo "No active plan set."
|
|
30
|
+
fi
|
|
31
|
+
exit 0
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
PLAN_ID="$1"
|
|
35
|
+
PLAN_DIR="${PLAN_ROOT}/${PLAN_ID}"
|
|
36
|
+
|
|
37
|
+
if [ ! -d "${PLAN_DIR}" ]; then
|
|
38
|
+
echo "Error: plan directory not found: ${PLAN_DIR}" >&2
|
|
39
|
+
echo "Run: init-session.sh \"${PLAN_ID}\" to create it, or check .planning/ for available plans." >&2
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
mkdir -p "${PLAN_ROOT}"
|
|
44
|
+
printf "%s\n" "${PLAN_ID}" > "${ACTIVE_FILE}"
|
|
45
|
+
|
|
46
|
+
echo "Active plan set to: ${PLAN_ID}"
|
|
47
|
+
echo "Path: ${PLAN_DIR}"
|
|
48
|
+
echo ""
|
|
49
|
+
echo "To pin this terminal session only:"
|
|
50
|
+
echo " export PLAN_ID=${PLAN_ID}"
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Findings & Decisions
|
|
2
|
+
<!--
|
|
3
|
+
WHAT: Knowledge base for your analytics session. Stores data sources, hypotheses, and results.
|
|
4
|
+
WHY: Context windows are limited. This file is your "external memory" for analytical work.
|
|
5
|
+
WHEN: Update after ANY discovery, especially after running queries or viewing charts.
|
|
6
|
+
-->
|
|
7
|
+
|
|
8
|
+
## Data Sources
|
|
9
|
+
<!--
|
|
10
|
+
WHAT: Every data source you connected to, with schema details and quality notes.
|
|
11
|
+
WHY: Knowing where your data came from and its limitations is critical for reproducibility.
|
|
12
|
+
EXAMPLE:
|
|
13
|
+
| user_events | PostgreSQL prod replica | 2.3M rows | user_id, event_type, ts | 0.2% null user_id |
|
|
14
|
+
| revenue.csv | Finance team export | 45K rows | account_id, mrr, churn_date | Complete, no nulls |
|
|
15
|
+
-->
|
|
16
|
+
| Source | Location | Size | Key Fields | Quality Notes |
|
|
17
|
+
|--------|----------|------|------------|---------------|
|
|
18
|
+
| | | | | |
|
|
19
|
+
|
|
20
|
+
## Hypothesis Log
|
|
21
|
+
<!--
|
|
22
|
+
WHAT: Each hypothesis you tested, the method used, and the result.
|
|
23
|
+
WHY: Structured tracking prevents p-hacking and makes your reasoning auditable.
|
|
24
|
+
EXAMPLE:
|
|
25
|
+
| H1: Churn > 50% for low-activity users | Chi-squared test | Confirmed (p=0.003) | High |
|
|
26
|
+
| H2: Feature X correlates with retention | Pearson correlation | Rejected (r=0.08) | High |
|
|
27
|
+
-->
|
|
28
|
+
| Hypothesis | Test Method | Result | Confidence |
|
|
29
|
+
|------------|-------------|--------|------------|
|
|
30
|
+
| | | | |
|
|
31
|
+
|
|
32
|
+
## Query Results
|
|
33
|
+
<!--
|
|
34
|
+
WHAT: Key queries you ran and what they revealed.
|
|
35
|
+
WHY: Queries are ephemeral - if you don't write down the results, they're lost on context reset.
|
|
36
|
+
WHEN: After EVERY significant query. Don't wait.
|
|
37
|
+
EXAMPLE:
|
|
38
|
+
### Churn rate by activity segment
|
|
39
|
+
Query: SELECT activity_bucket, COUNT(*), AVG(churned) FROM user_segments GROUP BY 1
|
|
40
|
+
Result: Low activity: 62% churn, Medium: 28%, High: 8%
|
|
41
|
+
Interpretation: Strong inverse relationship between activity and churn
|
|
42
|
+
-->
|
|
43
|
+
<!-- Record query, result summary, and interpretation for each significant query -->
|
|
44
|
+
|
|
45
|
+
## Statistical Findings
|
|
46
|
+
<!--
|
|
47
|
+
WHAT: Formal statistical test results with all relevant metrics.
|
|
48
|
+
WHY: Recording p-values, effect sizes, and confidence intervals makes results reproducible.
|
|
49
|
+
EXAMPLE:
|
|
50
|
+
| Chi-squared (churn ~ activity) | p=0.003 | Cramer's V=0.31 | Reject null: activity segments differ significantly in churn |
|
|
51
|
+
| Pearson (feature_x ~ retention) | p=0.42 | r=0.08 | Fail to reject: no meaningful correlation |
|
|
52
|
+
-->
|
|
53
|
+
| Test | p-value | Effect Size | Conclusion |
|
|
54
|
+
|------|---------|-------------|------------|
|
|
55
|
+
| | | | |
|
|
56
|
+
|
|
57
|
+
## Technical Decisions
|
|
58
|
+
<!--
|
|
59
|
+
WHAT: Analytical method choices with reasoning.
|
|
60
|
+
EXAMPLE:
|
|
61
|
+
| Use log transform on revenue | Right-skewed distribution, normalizes for parametric tests |
|
|
62
|
+
-->
|
|
63
|
+
| Decision | Rationale |
|
|
64
|
+
|----------|-----------|
|
|
65
|
+
| | |
|
|
66
|
+
|
|
67
|
+
## Issues Encountered
|
|
68
|
+
| Issue | Resolution |
|
|
69
|
+
|-------|------------|
|
|
70
|
+
| | |
|
|
71
|
+
|
|
72
|
+
## Resources
|
|
73
|
+
<!-- URLs, file paths, documentation links -->
|
|
74
|
+
-
|
|
75
|
+
|
|
76
|
+
## Visual/Browser Findings
|
|
77
|
+
<!--
|
|
78
|
+
CRITICAL: Update after viewing charts, dashboards, or browser results.
|
|
79
|
+
Multimodal content doesn't persist in context - capture as text immediately.
|
|
80
|
+
-->
|
|
81
|
+
-
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
*Update this file after every 2 view/browser/search operations*
|
|
85
|
+
*This prevents visual information from being lost*
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Task Plan: [Analytics Project Description]
|
|
2
|
+
<!--
|
|
3
|
+
WHAT: Roadmap for a data analytics or exploration session.
|
|
4
|
+
WHY: Analytics workflows have different phases than software development — hypothesis testing,
|
|
5
|
+
data quality checks, and statistical validation don't map to a generic build cycle.
|
|
6
|
+
WHEN: Create this FIRST before starting any data exploration. Update after each phase.
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
<!--
|
|
11
|
+
WHAT: One clear sentence describing what you're trying to learn or produce.
|
|
12
|
+
EXAMPLE: "Determine which user segments have the highest churn risk using last 90 days of activity data."
|
|
13
|
+
-->
|
|
14
|
+
[One sentence describing the analytical objective]
|
|
15
|
+
|
|
16
|
+
## Current Phase
|
|
17
|
+
<!--
|
|
18
|
+
WHAT: Which phase you're currently working on (e.g., "Phase 1", "Phase 3").
|
|
19
|
+
WHY: Quick reference for where you are. Update this as you progress.
|
|
20
|
+
-->
|
|
21
|
+
Phase 1
|
|
22
|
+
|
|
23
|
+
## Phases
|
|
24
|
+
|
|
25
|
+
### Phase 1: Data Discovery
|
|
26
|
+
<!--
|
|
27
|
+
WHAT: Connect to data sources, understand schemas, assess data quality.
|
|
28
|
+
WHY: Bad data produces bad analysis. This phase prevents wasted effort on unreliable inputs.
|
|
29
|
+
-->
|
|
30
|
+
- [ ] Identify and connect to data sources
|
|
31
|
+
- [ ] Document schemas and field descriptions in findings.md
|
|
32
|
+
- [ ] Assess data quality (nulls, duplicates, outliers, date ranges)
|
|
33
|
+
- [ ] Estimate dataset size and query performance
|
|
34
|
+
- **Status:** in_progress
|
|
35
|
+
|
|
36
|
+
### Phase 2: Exploratory Analysis
|
|
37
|
+
<!--
|
|
38
|
+
WHAT: Distributions, correlations, outliers, initial patterns.
|
|
39
|
+
WHY: Understanding the shape of your data before testing hypotheses prevents false conclusions.
|
|
40
|
+
-->
|
|
41
|
+
- [ ] Compute summary statistics for key variables
|
|
42
|
+
- [ ] Visualize distributions and relationships
|
|
43
|
+
- [ ] Identify outliers and anomalies
|
|
44
|
+
- [ ] Document initial patterns in findings.md
|
|
45
|
+
- **Status:** pending
|
|
46
|
+
|
|
47
|
+
### Phase 3: Hypothesis Testing
|
|
48
|
+
<!--
|
|
49
|
+
WHAT: Formalize hypotheses, run statistical tests, validate findings.
|
|
50
|
+
WHY: Moving from "it looks like X" to "we can confidently say X" requires structured testing.
|
|
51
|
+
-->
|
|
52
|
+
- [ ] Formalize hypotheses from exploratory phase
|
|
53
|
+
- [ ] Select appropriate statistical tests
|
|
54
|
+
- [ ] Run tests and record results in findings.md
|
|
55
|
+
- [ ] Validate findings against holdout data or alternative methods
|
|
56
|
+
- **Status:** pending
|
|
57
|
+
|
|
58
|
+
### Phase 4: Synthesis & Reporting
|
|
59
|
+
<!--
|
|
60
|
+
WHAT: Summarize findings, create visualizations, document conclusions.
|
|
61
|
+
WHY: Analysis without clear communication is wasted work. This phase produces the deliverable.
|
|
62
|
+
-->
|
|
63
|
+
- [ ] Summarize key findings with supporting evidence
|
|
64
|
+
- [ ] Create final visualizations
|
|
65
|
+
- [ ] Document conclusions and recommendations
|
|
66
|
+
- [ ] Note limitations and areas for further investigation
|
|
67
|
+
- **Status:** pending
|
|
68
|
+
|
|
69
|
+
## Hypotheses
|
|
70
|
+
<!--
|
|
71
|
+
WHAT: Questions you're investigating, stated as testable hypotheses.
|
|
72
|
+
WHY: Explicit hypotheses prevent fishing expeditions and keep analysis focused.
|
|
73
|
+
EXAMPLE:
|
|
74
|
+
1. Users who logged in < 3 times in the last 30 days have > 50% churn rate (H1)
|
|
75
|
+
2. Feature X adoption correlates with retention (r > 0.3) (H2)
|
|
76
|
+
-->
|
|
77
|
+
1. [Hypothesis to test]
|
|
78
|
+
2. [Hypothesis to test]
|
|
79
|
+
|
|
80
|
+
## Decisions Made
|
|
81
|
+
<!--
|
|
82
|
+
WHAT: Analytical decisions with reasoning (e.g., choosing a test, filtering criteria).
|
|
83
|
+
EXAMPLE:
|
|
84
|
+
| Use median instead of mean | Revenue data is heavily right-skewed |
|
|
85
|
+
| Filter to last 90 days | Earlier data uses a different tracking schema |
|
|
86
|
+
-->
|
|
87
|
+
| Decision | Rationale |
|
|
88
|
+
|----------|-----------|
|
|
89
|
+
| | |
|
|
90
|
+
|
|
91
|
+
## Errors Encountered
|
|
92
|
+
<!--
|
|
93
|
+
WHAT: Every error you encounter, what attempt number it was, and how you resolved it.
|
|
94
|
+
EXAMPLE:
|
|
95
|
+
| Query timeout on raw table | 1 | Added date partition filter |
|
|
96
|
+
| Null join keys in user_events | 2 | Inner join instead of left join, documented data loss |
|
|
97
|
+
-->
|
|
98
|
+
| Error | Attempt | Resolution |
|
|
99
|
+
|-------|---------|------------|
|
|
100
|
+
| | 1 | |
|
|
101
|
+
|
|
102
|
+
## Notes
|
|
103
|
+
- Update phase status as you progress: pending -> in_progress -> complete
|
|
104
|
+
- Re-read this plan before major analytical decisions
|
|
105
|
+
- Log ALL errors - they help avoid repetition
|
|
106
|
+
- Write query results and visual findings to findings.md immediately
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Findings & Decisions
|
|
2
|
+
<!--
|
|
3
|
+
WHAT: Your knowledge base for the task. Stores everything you discover and decide.
|
|
4
|
+
WHY: Context windows are limited. This file is your "external memory" - persistent and unlimited.
|
|
5
|
+
WHEN: Update after ANY discovery, especially after 2 view/browser/search operations (2-Action Rule).
|
|
6
|
+
-->
|
|
7
|
+
|
|
8
|
+
## Requirements
|
|
9
|
+
<!--
|
|
10
|
+
WHAT: What the user asked for, broken down into specific requirements.
|
|
11
|
+
WHY: Keeps requirements visible so you don't forget what you're building.
|
|
12
|
+
WHEN: Fill this in during Phase 1 (Requirements & Discovery).
|
|
13
|
+
EXAMPLE:
|
|
14
|
+
- Command-line interface
|
|
15
|
+
- Add tasks
|
|
16
|
+
- List all tasks
|
|
17
|
+
- Delete tasks
|
|
18
|
+
- Python implementation
|
|
19
|
+
-->
|
|
20
|
+
<!-- Captured from user request -->
|
|
21
|
+
-
|
|
22
|
+
|
|
23
|
+
## Research Findings
|
|
24
|
+
<!--
|
|
25
|
+
WHAT: Key discoveries from web searches, documentation reading, or exploration.
|
|
26
|
+
WHY: Multimodal content (images, browser results) doesn't persist. Write it down immediately.
|
|
27
|
+
WHEN: After EVERY 2 view/browser/search operations, update this section (2-Action Rule).
|
|
28
|
+
EXAMPLE:
|
|
29
|
+
- Python's argparse module supports subcommands for clean CLI design
|
|
30
|
+
- JSON module handles file persistence easily
|
|
31
|
+
- Standard pattern: python script.py <command> [args]
|
|
32
|
+
-->
|
|
33
|
+
<!-- Key discoveries during exploration -->
|
|
34
|
+
-
|
|
35
|
+
|
|
36
|
+
## Technical Decisions
|
|
37
|
+
<!--
|
|
38
|
+
WHAT: Architecture and implementation choices you've made, with reasoning.
|
|
39
|
+
WHY: You'll forget why you chose a technology or approach. This table preserves that knowledge.
|
|
40
|
+
WHEN: Update whenever you make a significant technical choice.
|
|
41
|
+
EXAMPLE:
|
|
42
|
+
| Use JSON for storage | Simple, human-readable, built-in Python support |
|
|
43
|
+
| argparse with subcommands | Clean CLI: python todo.py add "task" |
|
|
44
|
+
-->
|
|
45
|
+
<!-- Decisions made with rationale -->
|
|
46
|
+
| Decision | Rationale |
|
|
47
|
+
|----------|-----------|
|
|
48
|
+
| | |
|
|
49
|
+
|
|
50
|
+
## Issues Encountered
|
|
51
|
+
<!--
|
|
52
|
+
WHAT: Problems you ran into and how you solved them.
|
|
53
|
+
WHY: Similar to errors in task_plan.md, but focused on broader issues (not just code errors).
|
|
54
|
+
WHEN: Document when you encounter blockers or unexpected challenges.
|
|
55
|
+
EXAMPLE:
|
|
56
|
+
| Empty file causes JSONDecodeError | Added explicit empty file check before json.load() |
|
|
57
|
+
-->
|
|
58
|
+
<!-- Errors and how they were resolved -->
|
|
59
|
+
| Issue | Resolution |
|
|
60
|
+
|-------|------------|
|
|
61
|
+
| | |
|
|
62
|
+
|
|
63
|
+
## Resources
|
|
64
|
+
<!--
|
|
65
|
+
WHAT: URLs, file paths, API references, documentation links you've found useful.
|
|
66
|
+
WHY: Easy reference for later. Don't lose important links in context.
|
|
67
|
+
WHEN: Add as you discover useful resources.
|
|
68
|
+
EXAMPLE:
|
|
69
|
+
- Python argparse docs: https://docs.python.org/3/library/argparse.html
|
|
70
|
+
- Project structure: src/main.py, src/utils.py
|
|
71
|
+
-->
|
|
72
|
+
<!-- URLs, file paths, API references -->
|
|
73
|
+
-
|
|
74
|
+
|
|
75
|
+
## Visual/Browser Findings
|
|
76
|
+
<!--
|
|
77
|
+
WHAT: Information you learned from viewing images, PDFs, or browser results.
|
|
78
|
+
WHY: CRITICAL - Visual/multimodal content doesn't persist in context. Must be captured as text.
|
|
79
|
+
WHEN: IMMEDIATELY after viewing images or browser results. Don't wait!
|
|
80
|
+
EXAMPLE:
|
|
81
|
+
- Screenshot shows login form has email and password fields
|
|
82
|
+
- Browser shows API returns JSON with "status" and "data" keys
|
|
83
|
+
-->
|
|
84
|
+
<!-- CRITICAL: Update after every 2 view/browser operations -->
|
|
85
|
+
<!-- Multimodal content must be captured as text immediately -->
|
|
86
|
+
-
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
<!--
|
|
90
|
+
REMINDER: The 2-Action Rule
|
|
91
|
+
After every 2 view/browser/search operations, you MUST update this file.
|
|
92
|
+
This prevents visual information from being lost when context resets.
|
|
93
|
+
-->
|
|
94
|
+
*Update this file after every 2 view/browser/search operations*
|
|
95
|
+
*This prevents visual information from being lost*
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Progress Log
|
|
2
|
+
<!--
|
|
3
|
+
WHAT: Your session log - a chronological record of what you did, when, and what happened.
|
|
4
|
+
WHY: Answers "What have I done?" in the 5-Question Reboot Test. Helps you resume after breaks.
|
|
5
|
+
WHEN: Update after completing each phase or encountering errors. More detailed than task_plan.md.
|
|
6
|
+
-->
|
|
7
|
+
|
|
8
|
+
## Session: [DATE]
|
|
9
|
+
<!--
|
|
10
|
+
WHAT: The date of this work session.
|
|
11
|
+
WHY: Helps track when work happened, useful for resuming after time gaps.
|
|
12
|
+
EXAMPLE: 2026-01-15
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
### Phase 1: [Title]
|
|
16
|
+
<!--
|
|
17
|
+
WHAT: Detailed log of actions taken during this phase.
|
|
18
|
+
WHY: Provides context for what was done, making it easier to resume or debug.
|
|
19
|
+
WHEN: Update as you work through the phase, or at least when you complete it.
|
|
20
|
+
-->
|
|
21
|
+
- **Status:** in_progress
|
|
22
|
+
- **Started:** [timestamp]
|
|
23
|
+
<!--
|
|
24
|
+
STATUS: Same as task_plan.md (pending, in_progress, complete)
|
|
25
|
+
TIMESTAMP: When you started this phase (e.g., "2026-01-15 10:00")
|
|
26
|
+
-->
|
|
27
|
+
- Actions taken:
|
|
28
|
+
<!--
|
|
29
|
+
WHAT: List of specific actions you performed.
|
|
30
|
+
EXAMPLE:
|
|
31
|
+
- Created todo.py with basic structure
|
|
32
|
+
- Implemented add functionality
|
|
33
|
+
- Fixed FileNotFoundError
|
|
34
|
+
-->
|
|
35
|
+
-
|
|
36
|
+
- Files created/modified:
|
|
37
|
+
<!--
|
|
38
|
+
WHAT: Which files you created or changed.
|
|
39
|
+
WHY: Quick reference for what was touched. Helps with debugging and review.
|
|
40
|
+
EXAMPLE:
|
|
41
|
+
- todo.py (created)
|
|
42
|
+
- todos.json (created by app)
|
|
43
|
+
- task_plan.md (updated)
|
|
44
|
+
-->
|
|
45
|
+
-
|
|
46
|
+
|
|
47
|
+
### Phase 2: [Title]
|
|
48
|
+
<!--
|
|
49
|
+
WHAT: Same structure as Phase 1, for the next phase.
|
|
50
|
+
WHY: Keep a separate log entry for each phase to track progress clearly.
|
|
51
|
+
-->
|
|
52
|
+
- **Status:** pending
|
|
53
|
+
- Actions taken:
|
|
54
|
+
-
|
|
55
|
+
- Files created/modified:
|
|
56
|
+
-
|
|
57
|
+
|
|
58
|
+
## Test Results
|
|
59
|
+
<!--
|
|
60
|
+
WHAT: Table of tests you ran, what you expected, what actually happened.
|
|
61
|
+
WHY: Documents verification of functionality. Helps catch regressions.
|
|
62
|
+
WHEN: Update as you test features, especially during Phase 4 (Testing & Verification).
|
|
63
|
+
EXAMPLE:
|
|
64
|
+
| Add task | python todo.py add "Buy milk" | Task added | Task added successfully | ✓ |
|
|
65
|
+
| List tasks | python todo.py list | Shows all tasks | Shows all tasks | ✓ |
|
|
66
|
+
-->
|
|
67
|
+
| Test | Input | Expected | Actual | Status |
|
|
68
|
+
|------|-------|----------|--------|--------|
|
|
69
|
+
| | | | | |
|
|
70
|
+
|
|
71
|
+
## Error Log
|
|
72
|
+
<!--
|
|
73
|
+
WHAT: Detailed log of every error encountered, with timestamps and resolution attempts.
|
|
74
|
+
WHY: More detailed than task_plan.md's error table. Helps you learn from mistakes.
|
|
75
|
+
WHEN: Add immediately when an error occurs, even if you fix it quickly.
|
|
76
|
+
EXAMPLE:
|
|
77
|
+
| 2026-01-15 10:35 | FileNotFoundError | 1 | Added file existence check |
|
|
78
|
+
| 2026-01-15 10:37 | JSONDecodeError | 2 | Added empty file handling |
|
|
79
|
+
-->
|
|
80
|
+
<!-- Keep ALL errors - they help avoid repetition -->
|
|
81
|
+
| Timestamp | Error | Attempt | Resolution |
|
|
82
|
+
|-----------|-------|---------|------------|
|
|
83
|
+
| | | 1 | |
|
|
84
|
+
|
|
85
|
+
## 5-Question Reboot Check
|
|
86
|
+
<!--
|
|
87
|
+
WHAT: Five questions that verify your context is solid. If you can answer these, you're on track.
|
|
88
|
+
WHY: This is the "reboot test" - if you can answer all 5, you can resume work effectively.
|
|
89
|
+
WHEN: Update periodically, especially when resuming after a break or context reset.
|
|
90
|
+
|
|
91
|
+
THE 5 QUESTIONS:
|
|
92
|
+
1. Where am I? → Current phase in task_plan.md
|
|
93
|
+
2. Where am I going? → Remaining phases
|
|
94
|
+
3. What's the goal? → Goal statement in task_plan.md
|
|
95
|
+
4. What have I learned? → See findings.md
|
|
96
|
+
5. What have I done? → See progress.md (this file)
|
|
97
|
+
-->
|
|
98
|
+
<!-- If you can answer these, context is solid -->
|
|
99
|
+
| Question | Answer |
|
|
100
|
+
|----------|--------|
|
|
101
|
+
| Where am I? | Phase X |
|
|
102
|
+
| Where am I going? | Remaining phases |
|
|
103
|
+
| What's the goal? | [goal statement] |
|
|
104
|
+
| What have I learned? | See findings.md |
|
|
105
|
+
| What have I done? | See above |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
<!--
|
|
109
|
+
REMINDER:
|
|
110
|
+
- Update after completing each phase or encountering errors
|
|
111
|
+
- Be detailed - this is your "what happened" log
|
|
112
|
+
- Include timestamps for errors to track when issues occurred
|
|
113
|
+
-->
|
|
114
|
+
*Update after completing each phase or encountering errors*
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Task Plan: [Brief Description]
|
|
2
|
+
<!--
|
|
3
|
+
WHAT: This is your roadmap for the entire task. Think of it as your "working memory on disk."
|
|
4
|
+
WHY: After 50+ tool calls, your original goals can get forgotten. This file keeps them fresh.
|
|
5
|
+
WHEN: Create this FIRST, before starting any work. Update after each phase completes.
|
|
6
|
+
-->
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
<!--
|
|
10
|
+
WHAT: One clear sentence describing what you're trying to achieve.
|
|
11
|
+
WHY: This is your north star. Re-reading this keeps you focused on the end state.
|
|
12
|
+
EXAMPLE: "Create a Python CLI todo app with add, list, and delete functionality."
|
|
13
|
+
-->
|
|
14
|
+
[One sentence describing the end state]
|
|
15
|
+
|
|
16
|
+
## Next Step
|
|
17
|
+
<!--
|
|
18
|
+
WHAT: The single next action you are about to take. Keep it to one imperative line.
|
|
19
|
+
WHY: Sits right after the goal, so every hook injection carries the immediate action.
|
|
20
|
+
WHEN: Update whenever a phase status changes or the next action changes.
|
|
21
|
+
-->
|
|
22
|
+
[The single next action. Update whenever phase status changes.]
|
|
23
|
+
|
|
24
|
+
## Current Phase
|
|
25
|
+
<!--
|
|
26
|
+
WHAT: Which phase you're currently working on (e.g., "Phase 1", "Phase 3").
|
|
27
|
+
WHY: Quick reference for where you are in the task. Update this as you progress.
|
|
28
|
+
-->
|
|
29
|
+
Phase 1
|
|
30
|
+
|
|
31
|
+
## Phases
|
|
32
|
+
<!--
|
|
33
|
+
WHAT: Break your task into 3-7 logical phases. Each phase should be completable.
|
|
34
|
+
WHY: Breaking work into phases prevents overwhelm and makes progress visible.
|
|
35
|
+
WHEN: Update status after completing each phase: pending → in_progress → complete
|
|
36
|
+
-->
|
|
37
|
+
|
|
38
|
+
### Phase 1: Requirements & Discovery
|
|
39
|
+
<!--
|
|
40
|
+
WHAT: Understand what needs to be done and gather initial information.
|
|
41
|
+
WHY: Starting without understanding leads to wasted effort. This phase prevents that.
|
|
42
|
+
-->
|
|
43
|
+
- [ ] Understand user intent
|
|
44
|
+
- [ ] Identify constraints and requirements
|
|
45
|
+
- [ ] Document findings in findings.md
|
|
46
|
+
- **Status:** in_progress
|
|
47
|
+
<!--
|
|
48
|
+
STATUS VALUES:
|
|
49
|
+
- pending: Not started yet
|
|
50
|
+
- in_progress: Currently working on this
|
|
51
|
+
- complete: Finished this phase
|
|
52
|
+
-->
|
|
53
|
+
|
|
54
|
+
### Phase 2: Planning & Structure
|
|
55
|
+
<!--
|
|
56
|
+
WHAT: Decide how you'll approach the problem and what structure you'll use.
|
|
57
|
+
WHY: Good planning prevents rework. Document decisions so you remember why you chose them.
|
|
58
|
+
-->
|
|
59
|
+
- [ ] Define technical approach
|
|
60
|
+
- [ ] Create project structure if needed
|
|
61
|
+
- [ ] Document decisions with rationale
|
|
62
|
+
- **Status:** pending
|
|
63
|
+
|
|
64
|
+
### Phase 3: Implementation
|
|
65
|
+
<!--
|
|
66
|
+
WHAT: Actually build/create/write the solution.
|
|
67
|
+
WHY: This is where the work happens. Break into smaller sub-tasks if needed.
|
|
68
|
+
-->
|
|
69
|
+
- [ ] Execute the plan step by step
|
|
70
|
+
- [ ] Write code to files before executing
|
|
71
|
+
- [ ] Test incrementally
|
|
72
|
+
- **Status:** pending
|
|
73
|
+
|
|
74
|
+
### Phase 4: Testing & Verification
|
|
75
|
+
<!--
|
|
76
|
+
WHAT: Verify everything works and meets requirements.
|
|
77
|
+
WHY: Catching issues early saves time. Document test results in progress.md.
|
|
78
|
+
-->
|
|
79
|
+
- [ ] Verify all requirements met
|
|
80
|
+
- [ ] Document test results in progress.md
|
|
81
|
+
- [ ] Fix any issues found
|
|
82
|
+
- **Status:** pending
|
|
83
|
+
|
|
84
|
+
### Phase 5: Delivery
|
|
85
|
+
<!--
|
|
86
|
+
WHAT: Final review and handoff to user.
|
|
87
|
+
WHY: Ensures nothing is forgotten and deliverables are complete.
|
|
88
|
+
-->
|
|
89
|
+
- [ ] Review all output files
|
|
90
|
+
- [ ] Ensure deliverables are complete
|
|
91
|
+
- [ ] Deliver to user
|
|
92
|
+
- **Status:** pending
|
|
93
|
+
|
|
94
|
+
## Key Questions
|
|
95
|
+
<!--
|
|
96
|
+
WHAT: Important questions you need to answer during the task.
|
|
97
|
+
WHY: These guide your research and decision-making. Answer them as you go.
|
|
98
|
+
EXAMPLE:
|
|
99
|
+
1. Should tasks persist between sessions? (Yes - need file storage)
|
|
100
|
+
2. What format for storing tasks? (JSON file)
|
|
101
|
+
-->
|
|
102
|
+
1. [Question to answer]
|
|
103
|
+
2. [Question to answer]
|
|
104
|
+
|
|
105
|
+
## Decisions Made
|
|
106
|
+
<!--
|
|
107
|
+
WHAT: Technical and design decisions you've made, with the reasoning behind them.
|
|
108
|
+
WHY: You'll forget why you made choices. This table helps you remember and justify decisions.
|
|
109
|
+
WHEN: Update whenever you make a significant choice (technology, approach, structure).
|
|
110
|
+
EXAMPLE:
|
|
111
|
+
| Use JSON for storage | Simple, human-readable, built-in Python support |
|
|
112
|
+
-->
|
|
113
|
+
| Decision | Rationale |
|
|
114
|
+
|----------|-----------|
|
|
115
|
+
| | |
|
|
116
|
+
|
|
117
|
+
## Errors Encountered
|
|
118
|
+
<!--
|
|
119
|
+
WHAT: Every error you encounter, what attempt number it was, and how you resolved it.
|
|
120
|
+
WHY: Logging errors prevents repeating the same mistakes. This is critical for learning.
|
|
121
|
+
WHEN: Add immediately when an error occurs, even if you fix it quickly.
|
|
122
|
+
EXAMPLE:
|
|
123
|
+
| FileNotFoundError | 1 | Check if file exists, create empty list if not |
|
|
124
|
+
| JSONDecodeError | 2 | Handle empty file case explicitly |
|
|
125
|
+
-->
|
|
126
|
+
| Error | Attempt | Resolution |
|
|
127
|
+
|-------|---------|------------|
|
|
128
|
+
| | 1 | |
|
|
129
|
+
|
|
130
|
+
## Notes
|
|
131
|
+
<!--
|
|
132
|
+
REMINDERS:
|
|
133
|
+
- Update phase status as you progress: pending → in_progress → complete
|
|
134
|
+
- Re-read this plan before major decisions (attention manipulation)
|
|
135
|
+
- Log ALL errors - they help avoid repetition
|
|
136
|
+
- Never repeat a failed action - mutate your approach instead
|
|
137
|
+
-->
|
|
138
|
+
- Update phase status as you progress: pending → in_progress → complete
|
|
139
|
+
- Re-read this plan before major decisions (attention manipulation)
|
|
140
|
+
- Log ALL errors - they help avoid repetition
|