oh-my-codex-cli 0.1.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/.agent/skills/agent-kb/HOW_TO_USE.md +428 -0
- package/.agent/skills/agent-kb/README.md +46 -0
- package/.agent/skills/agent-kb/SKILL.md +128 -0
- package/.agent/skills/agent-kb/references/intelligent-analysis-explained.md +333 -0
- package/.agent/skills/agent-kb/references/query-optimization.md +225 -0
- package/.agent/skills/aireview/SKILL.md +704 -0
- package/.agent/skills/analyze/SKILL.md +81 -0
- package/.agent/skills/architect-planner/HOW_TO_USE.md +238 -0
- package/.agent/skills/architect-planner/README.md +41 -0
- package/.agent/skills/architect-planner/SKILL.md +539 -0
- package/.agent/skills/auto-mbti/SKILL.md +291 -0
- package/.agent/skills/autopilot/SKILL.md +222 -0
- package/.agent/skills/backend-patterns/SKILL.md +602 -0
- package/.agent/skills/bdd-generator/README.md +78 -0
- package/.agent/skills/bdd-generator/SKILL.md +436 -0
- package/.agent/skills/brainstorming/HOW_TO_USE.md +289 -0
- package/.agent/skills/brainstorming/README.md +41 -0
- package/.agent/skills/brainstorming/SKILL.md +165 -0
- package/.agent/skills/build-fix/SKILL.md +190 -0
- package/.agent/skills/cancel/SKILL.md +658 -0
- package/.agent/skills/checkpoint/SKILL.md +94 -0
- package/.agent/skills/code-review/SKILL.md +273 -0
- package/.agent/skills/coding-standards/SKILL.md +535 -0
- package/.agent/skills/conductor/SKILL.md +128 -0
- package/.agent/skills/conductor/commands/conductor/implement.toml +358 -0
- package/.agent/skills/conductor/commands/conductor/newTrack.toml +142 -0
- package/.agent/skills/conductor/commands/conductor/revert.toml +123 -0
- package/.agent/skills/conductor/commands/conductor/setup.toml +429 -0
- package/.agent/skills/conductor/commands/conductor/status.toml +57 -0
- package/.agent/skills/conductor/scripts/install.sh +89 -0
- package/.agent/skills/conductor/templates/code_styleguides/csharp.md +115 -0
- package/.agent/skills/conductor/templates/code_styleguides/dart.md +238 -0
- package/.agent/skills/conductor/templates/code_styleguides/general.md +23 -0
- package/.agent/skills/conductor/templates/code_styleguides/go.md +48 -0
- package/.agent/skills/conductor/templates/code_styleguides/html-css.md +49 -0
- package/.agent/skills/conductor/templates/code_styleguides/javascript.md +51 -0
- package/.agent/skills/conductor/templates/code_styleguides/python.md +37 -0
- package/.agent/skills/conductor/templates/code_styleguides/typescript.md +43 -0
- package/.agent/skills/conductor/templates/rules/README.md +23 -0
- package/.agent/skills/conductor/templates/rules/agents.md +49 -0
- package/.agent/skills/conductor/templates/rules/coding-style.md +70 -0
- package/.agent/skills/conductor/templates/rules/dev.md +20 -0
- package/.agent/skills/conductor/templates/rules/git-workflow.md +45 -0
- package/.agent/skills/conductor/templates/rules/hooks.md +6 -0
- package/.agent/skills/conductor/templates/rules/patterns.md +55 -0
- package/.agent/skills/conductor/templates/rules/performance.md +47 -0
- package/.agent/skills/conductor/templates/rules/research.md +26 -0
- package/.agent/skills/conductor/templates/rules/review.md +22 -0
- package/.agent/skills/conductor/templates/rules/security.md +36 -0
- package/.agent/skills/conductor/templates/rules/testing.md +30 -0
- package/.agent/skills/conductor/templates/workflow.md +333 -0
- package/.agent/skills/consensus/HOW_TO_USE.md +191 -0
- package/.agent/skills/consensus/README.md +41 -0
- package/.agent/skills/consensus/SKILL.md +317 -0
- package/.agent/skills/content-research-writer/SKILL.md +537 -0
- package/.agent/skills/debug-analysis/SKILL.md +331 -0
- package/.agent/skills/deepinit/SKILL.md +347 -0
- package/.agent/skills/deepsearch/SKILL.md +56 -0
- package/.agent/skills/doctor/SKILL.md +158 -0
- package/.agent/skills/drawio/EXAMPLES.md +382 -0
- package/.agent/skills/drawio/QUICK_START.md +237 -0
- package/.agent/skills/drawio/README.md +315 -0
- package/.agent/skills/drawio/SETUP_GUIDE.md +254 -0
- package/.agent/skills/drawio/SKILL.md +1176 -0
- package/.agent/skills/e2e/SKILL.md +396 -0
- package/.agent/skills/ecomode/SKILL.md +160 -0
- package/.agent/skills/electron-driver/SKILL.md +144 -0
- package/.agent/skills/electron-driver/scripts/driver-template.js +71 -0
- package/.agent/skills/eval/SKILL.md +140 -0
- package/.agent/skills/eval-harness/SKILL.md +242 -0
- package/.agent/skills/evolve/SKILL.md +213 -0
- package/.agent/skills/frontend-design/SKILL.md +42 -0
- package/.agent/skills/frontend-patterns/SKILL.md +646 -0
- package/.agent/skills/frontend-ui-ux/SKILL.md +70 -0
- package/.agent/skills/git-master/SKILL.md +75 -0
- package/.agent/skills/help/SKILL.md +89 -0
- package/.agent/skills/iterative-retrieval/SKILL.md +217 -0
- package/.agent/skills/local-skills-setup/SKILL.md +483 -0
- package/.agent/skills/log-analyzer/SKILL.md +187 -0
- package/.agent/skills/mcp-setup/SKILL.md +226 -0
- package/.agent/skills/multi-model-research/HOW_TO_USE.md +614 -0
- package/.agent/skills/multi-model-research/README.md +233 -0
- package/.agent/skills/multi-model-research/SKILL.md +541 -0
- package/.agent/skills/multi-model-research/references/troubleshooting.md +415 -0
- package/.agent/skills/note/SKILL.md +80 -0
- package/.agent/skills/omc-setup/SKILL.md +219 -0
- package/.agent/skills/orchestrate/SKILL.md +620 -0
- package/.agent/skills/patent-workflow/IMPLEMENTATION_SUMMARY.md +500 -0
- package/.agent/skills/patent-workflow/README.md +455 -0
- package/.agent/skills/patent-workflow/SKILL.md +1036 -0
- package/.agent/skills/patent-workflow/tools/irr_checker.py +260 -0
- package/.agent/skills/patent-workflow/tools/sample_terminology.json +49 -0
- package/.agent/skills/patent-workflow/tools/term_checker.py +355 -0
- package/.agent/skills/pattern-recognition/SKILL.md +792 -0
- package/.agent/skills/pipeline/SKILL.md +448 -0
- package/.agent/skills/plan/SKILL.md +309 -0
- package/.agent/skills/planning-methodology/SKILL.md +370 -0
- package/.agent/skills/planning-with-files/SKILL.md +210 -0
- package/.agent/skills/planning-with-files/examples.md +202 -0
- package/.agent/skills/planning-with-files/reference.md +218 -0
- package/.agent/skills/planning-with-files/scripts/check-complete.ps1 +42 -0
- package/.agent/skills/planning-with-files/scripts/check-complete.sh +44 -0
- package/.agent/skills/planning-with-files/scripts/init-session.ps1 +120 -0
- package/.agent/skills/planning-with-files/scripts/init-session.sh +120 -0
- package/.agent/skills/planning-with-files/scripts/session-catchup.py +208 -0
- package/.agent/skills/planning-with-files/templates/findings.md +95 -0
- package/.agent/skills/planning-with-files/templates/progress.md +114 -0
- package/.agent/skills/planning-with-files/templates/task_plan.md +132 -0
- package/.agent/skills/project-analyze/CLAUDE.md +18 -0
- package/.agent/skills/project-analyze/HOW_TO_USE.md +145 -0
- package/.agent/skills/project-analyze/README.md +42 -0
- package/.agent/skills/project-analyze/SKILL.md +289 -0
- package/.agent/skills/project-analyze/SKILL.md.backup +287 -0
- package/.agent/skills/project-analyze/SKILL.md.backup_20260105_093646 +287 -0
- package/.agent/skills/project-analyze/assets/analysis-report-template.md +433 -0
- package/.agent/skills/project-analyze/references/analysis-patterns.md +422 -0
- package/.agent/skills/project-analyze/references/projectmind-explained.md +535 -0
- package/.agent/skills/project-session-manager/SKILL.md +428 -0
- package/.agent/skills/project-session-manager/lib/config.sh +86 -0
- package/.agent/skills/project-session-manager/lib/parse.sh +121 -0
- package/.agent/skills/project-session-manager/lib/session.sh +132 -0
- package/.agent/skills/project-session-manager/lib/tmux.sh +103 -0
- package/.agent/skills/project-session-manager/lib/worktree.sh +171 -0
- package/.agent/skills/project-session-manager/psm.sh +629 -0
- package/.agent/skills/project-session-manager/templates/feature.md +56 -0
- package/.agent/skills/project-session-manager/templates/issue-fix.md +57 -0
- package/.agent/skills/project-session-manager/templates/pr-review.md +65 -0
- package/.agent/skills/project-session-manager/templates/projects.json +19 -0
- package/.agent/skills/quality-check/HOW_TO_USE.md +171 -0
- package/.agent/skills/quality-check/README.md +50 -0
- package/.agent/skills/quality-check/SKILL.md +240 -0
- package/.agent/skills/quality-check/SKILL.md.backup +238 -0
- package/.agent/skills/quality-check/SKILL.md.backup_20260105_093646 +238 -0
- package/.agent/skills/quality-check/assets/quality-report-template.md +437 -0
- package/.agent/skills/quality-check/references/refactoring-patterns.md +550 -0
- package/.agent/skills/quality-check/references/scoring-criteria.md +454 -0
- package/.agent/skills/quality-validation/SKILL.md +519 -0
- package/.agent/skills/quality-validation/SKILL.md.backup +573 -0
- package/.agent/skills/quality-validation/SKILL.md.backup_20260105_093646 +573 -0
- package/.agent/skills/ralph/SKILL.md +236 -0
- package/.agent/skills/ralph-init/SKILL.md +78 -0
- package/.agent/skills/ralplan/SKILL.md +58 -0
- package/.agent/skills/refactor-clean/SKILL.md +49 -0
- package/.agent/skills/release/SKILL.md +84 -0
- package/.agent/skills/research/SKILL.md +526 -0
- package/.agent/skills/research-methodology/SKILL.md +268 -0
- package/.agent/skills/review/SKILL.md +53 -0
- package/.agent/skills/security-review/SKILL.md +509 -0
- package/.agent/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/.agent/skills/setup-pm/SKILL.md +102 -0
- package/.agent/skills/skill/SKILL.md +424 -0
- package/.agent/skills/skill-create/SKILL.md +209 -0
- package/.agent/skills/skill-debugger/HOW_TO_USE.md +244 -0
- package/.agent/skills/skill-debugger/README.md +44 -0
- package/.agent/skills/skill-debugger/SKILL.md +326 -0
- package/.agent/skills/skill-debugger/diagnostic_checklist.md +115 -0
- package/.agent/skills/skill-development/SKILL.md +661 -0
- package/.agent/skills/skill-development/references/skill-creator-original.md +209 -0
- package/.agent/skills/skill-doc-generator/README.md +37 -0
- package/.agent/skills/skill-doc-generator/SKILL.md +331 -0
- package/.agent/skills/skill-quality-analyzer/HOW_TO_USE.md +243 -0
- package/.agent/skills/skill-quality-analyzer/README.md +61 -0
- package/.agent/skills/skill-quality-analyzer/SKILL.md +247 -0
- package/.agent/skills/skill-quality-analyzer/analyzer.py +209 -0
- package/.agent/skills/skill-quality-analyzer/expected_output.json +81 -0
- package/.agent/skills/skill-quality-analyzer/sample_input.json +9 -0
- package/.agent/skills/skill-tester/README.md +46 -0
- package/.agent/skills/skill-tester/SKILL.md +345 -0
- package/.agent/skills/start-dev/SKILL.md +701 -0
- package/.agent/skills/swarm/SKILL.md +691 -0
- package/.agent/skills/task-kb-lookup/SKILL.md +211 -0
- package/.agent/skills/task-kb-record/SKILL.md +417 -0
- package/.agent/skills/tdd/SKILL.md +446 -0
- package/.agent/skills/tdd-generator/DEMO.md +516 -0
- package/.agent/skills/tdd-generator/README.md +89 -0
- package/.agent/skills/tdd-generator/SKILL.md +278 -0
- package/.agent/skills/tdd-workflow/SKILL.md +424 -0
- package/.agent/skills/test-coverage/SKILL.md +48 -0
- package/.agent/skills/thinkdeep/HOW_TO_USE.md +183 -0
- package/.agent/skills/thinkdeep/README.md +41 -0
- package/.agent/skills/thinkdeep/SKILL.md +343 -0
- package/.agent/skills/ui-ux-pro-max/SKILL.md +228 -0
- package/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/skills/ui-ux-pro-max/scripts/core.py +236 -0
- package/.agent/skills/ui-ux-pro-max/scripts/search.py +61 -0
- package/.agent/skills/ultrapilot/SKILL.md +647 -0
- package/.agent/skills/ultraqa/SKILL.md +152 -0
- package/.agent/skills/ultrawork/SKILL.md +123 -0
- package/.agent/skills/update-codemaps/SKILL.md +38 -0
- package/.agent/skills/update-docs/SKILL.md +52 -0
- package/.agent/skills/verification-loop/SKILL.md +140 -0
- package/.agent/skills/verify/SKILL.md +80 -0
- package/.agent/skills/writer-memory/SKILL.md +459 -0
- package/.agent/skills/writer-memory/lib/character-tracker.ts +338 -0
- package/.agent/skills/writer-memory/lib/memory-manager.ts +804 -0
- package/.agent/skills/writer-memory/lib/relationship-graph.ts +400 -0
- package/.agent/skills/writer-memory/lib/scene-organizer.ts +544 -0
- package/.agent/skills/writer-memory/lib/synopsis-builder.ts +339 -0
- package/.agent/skills/writer-memory/templates/synopsis-template.md +46 -0
- package/.governance/skill-lint.allowlist +4 -0
- package/.governance/skill-llm.allowlist +4 -0
- package/AGENTS.md +59 -0
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/README.zh.md +145 -0
- package/bin/omcodex.js +8 -0
- package/commands/conductor/implement.toml +358 -0
- package/commands/conductor/newTrack.toml +142 -0
- package/commands/conductor/revert.toml +123 -0
- package/commands/conductor/setup.toml +429 -0
- package/commands/conductor/status.toml +57 -0
- package/docs/ALIGNMENT.md +40 -0
- package/docs/CODEX.md +133 -0
- package/docs/NOTIFY.md +81 -0
- package/docs/SKILL_GOVERNANCE.md +72 -0
- package/docs/SKILL_GOVERNANCE_FRAMEWORK.md +182 -0
- package/docs/SKILL_GOVERNANCE_FRAMEWORK.zh.md +170 -0
- package/package.json +50 -0
- package/prompts/architect.md +105 -0
- package/prompts/executor.md +134 -0
- package/prompts/planner.md +113 -0
- package/scripts/check-skill-governance.sh +84 -0
- package/scripts/check-skill-llm-governance.js +302 -0
- package/scripts/eval-skills.js +217 -0
- package/scripts/generate-catalog-docs.js +95 -0
- package/scripts/generate-codex-mcp-config.sh +22 -0
- package/scripts/install-codex-force.sh +5 -0
- package/scripts/install-codex-incremental.sh +5 -0
- package/scripts/install-codex.sh +79 -0
- package/scripts/notify-dispatch.js +15 -0
- package/scripts/setup-package-manager.js +137 -0
- package/src/catalog/generated/public-catalog.json +547 -0
- package/src/catalog/manifest.json +542 -0
- package/src/catalog/reader.js +43 -0
- package/src/catalog/schema.js +79 -0
- package/src/cli/doctor.js +62 -0
- package/src/cli/index.js +85 -0
- package/src/cli/notify.js +127 -0
- package/src/cli/route.js +43 -0
- package/src/cli/setup.js +155 -0
- package/src/cli/team.js +125 -0
- package/src/config/generator.js +119 -0
- package/src/mcp/memory-server.js +241 -0
- package/src/mcp/state-server.js +112 -0
- package/src/mcp/trace-server.js +168 -0
- package/src/notify/dispatch.js +74 -0
- package/src/notify/extensibility/dispatcher.js +113 -0
- package/src/notify/extensibility/events.js +15 -0
- package/src/notify/extensibility/loader.js +54 -0
- package/src/router/skill-router.js +90 -0
- package/src/team/auto-advance.js +72 -0
- package/src/team/orchestrator.js +82 -0
- package/src/team/state-store.js +33 -0
- package/src/utils/paths.js +33 -0
- package/templates/AGENTS.md +15 -0
- package/templates/catalog-manifest.json +542 -0
- package/templates/code_styleguides/csharp.md +115 -0
- package/templates/code_styleguides/dart.md +238 -0
- package/templates/code_styleguides/general.md +23 -0
- package/templates/code_styleguides/go.md +48 -0
- package/templates/code_styleguides/html-css.md +49 -0
- package/templates/code_styleguides/javascript.md +51 -0
- package/templates/code_styleguides/python.md +37 -0
- package/templates/code_styleguides/typescript.md +43 -0
- package/templates/rules/README.md +23 -0
- package/templates/rules/agents.md +49 -0
- package/templates/rules/coding-style.md +70 -0
- package/templates/rules/dev.md +20 -0
- package/templates/rules/git-workflow.md +45 -0
- package/templates/rules/notify.md +6 -0
- package/templates/rules/patterns.md +55 -0
- package/templates/rules/performance.md +47 -0
- package/templates/rules/research.md +26 -0
- package/templates/rules/review.md +22 -0
- package/templates/rules/security.md +36 -0
- package/templates/rules/testing.md +30 -0
- package/templates/workflow.md +333 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Check if all phases in task_plan.md are complete
|
|
3
|
+
# Exit 0 if complete, exit 1 if incomplete
|
|
4
|
+
# Used by Stop hook to verify task completion
|
|
5
|
+
|
|
6
|
+
PLAN_FILE="${1:-task_plan.md}"
|
|
7
|
+
|
|
8
|
+
if [ ! -f "$PLAN_FILE" ]; then
|
|
9
|
+
echo "ERROR: $PLAN_FILE not found"
|
|
10
|
+
echo "Cannot verify completion without a task plan."
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
echo "=== Task Completion Check ==="
|
|
15
|
+
echo ""
|
|
16
|
+
|
|
17
|
+
# Count phases by status (using -F for fixed string matching)
|
|
18
|
+
TOTAL=$(grep -c "### Phase" "$PLAN_FILE" || true)
|
|
19
|
+
COMPLETE=$(grep -cF "**Status:** complete" "$PLAN_FILE" || true)
|
|
20
|
+
IN_PROGRESS=$(grep -cF "**Status:** in_progress" "$PLAN_FILE" || true)
|
|
21
|
+
PENDING=$(grep -cF "**Status:** pending" "$PLAN_FILE" || true)
|
|
22
|
+
|
|
23
|
+
# Default to 0 if empty
|
|
24
|
+
: "${TOTAL:=0}"
|
|
25
|
+
: "${COMPLETE:=0}"
|
|
26
|
+
: "${IN_PROGRESS:=0}"
|
|
27
|
+
: "${PENDING:=0}"
|
|
28
|
+
|
|
29
|
+
echo "Total phases: $TOTAL"
|
|
30
|
+
echo "Complete: $COMPLETE"
|
|
31
|
+
echo "In progress: $IN_PROGRESS"
|
|
32
|
+
echo "Pending: $PENDING"
|
|
33
|
+
echo ""
|
|
34
|
+
|
|
35
|
+
# Check completion
|
|
36
|
+
if [ "$COMPLETE" -eq "$TOTAL" ] && [ "$TOTAL" -gt 0 ]; then
|
|
37
|
+
echo "ALL PHASES COMPLETE"
|
|
38
|
+
exit 0
|
|
39
|
+
else
|
|
40
|
+
echo "TASK NOT COMPLETE"
|
|
41
|
+
echo ""
|
|
42
|
+
echo "Do not stop until all phases are complete."
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Initialize planning files for a new session
|
|
2
|
+
# Usage: .\init-session.ps1 [project-name]
|
|
3
|
+
|
|
4
|
+
param(
|
|
5
|
+
[string]$ProjectName = "project"
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
$DATE = Get-Date -Format "yyyy-MM-dd"
|
|
9
|
+
|
|
10
|
+
Write-Host "Initializing planning files for: $ProjectName"
|
|
11
|
+
|
|
12
|
+
# Create task_plan.md if it doesn't exist
|
|
13
|
+
if (-not (Test-Path "task_plan.md")) {
|
|
14
|
+
@"
|
|
15
|
+
# Task Plan: [Brief Description]
|
|
16
|
+
|
|
17
|
+
## Goal
|
|
18
|
+
[One sentence describing the end state]
|
|
19
|
+
|
|
20
|
+
## Current Phase
|
|
21
|
+
Phase 1
|
|
22
|
+
|
|
23
|
+
## Phases
|
|
24
|
+
|
|
25
|
+
### Phase 1: Requirements & Discovery
|
|
26
|
+
- [ ] Understand user intent
|
|
27
|
+
- [ ] Identify constraints
|
|
28
|
+
- [ ] Document in findings.md
|
|
29
|
+
- **Status:** in_progress
|
|
30
|
+
|
|
31
|
+
### Phase 2: Planning & Structure
|
|
32
|
+
- [ ] Define approach
|
|
33
|
+
- [ ] Create project structure
|
|
34
|
+
- **Status:** pending
|
|
35
|
+
|
|
36
|
+
### Phase 3: Implementation
|
|
37
|
+
- [ ] Execute the plan
|
|
38
|
+
- [ ] Write to files before executing
|
|
39
|
+
- **Status:** pending
|
|
40
|
+
|
|
41
|
+
### Phase 4: Testing & Verification
|
|
42
|
+
- [ ] Verify requirements met
|
|
43
|
+
- [ ] Document test results
|
|
44
|
+
- **Status:** pending
|
|
45
|
+
|
|
46
|
+
### Phase 5: Delivery
|
|
47
|
+
- [ ] Review outputs
|
|
48
|
+
- [ ] Deliver to user
|
|
49
|
+
- **Status:** pending
|
|
50
|
+
|
|
51
|
+
## Decisions Made
|
|
52
|
+
| Decision | Rationale |
|
|
53
|
+
|----------|-----------|
|
|
54
|
+
|
|
55
|
+
## Errors Encountered
|
|
56
|
+
| Error | Resolution |
|
|
57
|
+
|-------|------------|
|
|
58
|
+
"@ | Out-File -FilePath "task_plan.md" -Encoding UTF8
|
|
59
|
+
Write-Host "Created task_plan.md"
|
|
60
|
+
} else {
|
|
61
|
+
Write-Host "task_plan.md already exists, skipping"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# Create findings.md if it doesn't exist
|
|
65
|
+
if (-not (Test-Path "findings.md")) {
|
|
66
|
+
@"
|
|
67
|
+
# Findings & Decisions
|
|
68
|
+
|
|
69
|
+
## Requirements
|
|
70
|
+
-
|
|
71
|
+
|
|
72
|
+
## Research Findings
|
|
73
|
+
-
|
|
74
|
+
|
|
75
|
+
## Technical Decisions
|
|
76
|
+
| Decision | Rationale |
|
|
77
|
+
|----------|-----------|
|
|
78
|
+
|
|
79
|
+
## Issues Encountered
|
|
80
|
+
| Issue | Resolution |
|
|
81
|
+
|-------|------------|
|
|
82
|
+
|
|
83
|
+
## Resources
|
|
84
|
+
-
|
|
85
|
+
"@ | Out-File -FilePath "findings.md" -Encoding UTF8
|
|
86
|
+
Write-Host "Created findings.md"
|
|
87
|
+
} else {
|
|
88
|
+
Write-Host "findings.md already exists, skipping"
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
# Create progress.md if it doesn't exist
|
|
92
|
+
if (-not (Test-Path "progress.md")) {
|
|
93
|
+
@"
|
|
94
|
+
# Progress Log
|
|
95
|
+
|
|
96
|
+
## Session: $DATE
|
|
97
|
+
|
|
98
|
+
### Current Status
|
|
99
|
+
- **Phase:** 1 - Requirements & Discovery
|
|
100
|
+
- **Started:** $DATE
|
|
101
|
+
|
|
102
|
+
### Actions Taken
|
|
103
|
+
-
|
|
104
|
+
|
|
105
|
+
### Test Results
|
|
106
|
+
| Test | Expected | Actual | Status |
|
|
107
|
+
|------|----------|--------|--------|
|
|
108
|
+
|
|
109
|
+
### Errors
|
|
110
|
+
| Error | Resolution |
|
|
111
|
+
|-------|------------|
|
|
112
|
+
"@ | Out-File -FilePath "progress.md" -Encoding UTF8
|
|
113
|
+
Write-Host "Created progress.md"
|
|
114
|
+
} else {
|
|
115
|
+
Write-Host "progress.md already exists, skipping"
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
Write-Host ""
|
|
119
|
+
Write-Host "Planning files initialized!"
|
|
120
|
+
Write-Host "Files: task_plan.md, findings.md, progress.md"
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Initialize planning files for a new session
|
|
3
|
+
# Usage: ./init-session.sh [project-name]
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
PROJECT_NAME="${1:-project}"
|
|
8
|
+
DATE=$(date +%Y-%m-%d)
|
|
9
|
+
|
|
10
|
+
echo "Initializing planning files for: $PROJECT_NAME"
|
|
11
|
+
|
|
12
|
+
# Create task_plan.md if it doesn't exist
|
|
13
|
+
if [ ! -f "task_plan.md" ]; then
|
|
14
|
+
cat > task_plan.md << 'EOF'
|
|
15
|
+
# Task Plan: [Brief Description]
|
|
16
|
+
|
|
17
|
+
## Goal
|
|
18
|
+
[One sentence describing the end state]
|
|
19
|
+
|
|
20
|
+
## Current Phase
|
|
21
|
+
Phase 1
|
|
22
|
+
|
|
23
|
+
## Phases
|
|
24
|
+
|
|
25
|
+
### Phase 1: Requirements & Discovery
|
|
26
|
+
- [ ] Understand user intent
|
|
27
|
+
- [ ] Identify constraints
|
|
28
|
+
- [ ] Document in findings.md
|
|
29
|
+
- **Status:** in_progress
|
|
30
|
+
|
|
31
|
+
### Phase 2: Planning & Structure
|
|
32
|
+
- [ ] Define approach
|
|
33
|
+
- [ ] Create project structure
|
|
34
|
+
- **Status:** pending
|
|
35
|
+
|
|
36
|
+
### Phase 3: Implementation
|
|
37
|
+
- [ ] Execute the plan
|
|
38
|
+
- [ ] Write to files before executing
|
|
39
|
+
- **Status:** pending
|
|
40
|
+
|
|
41
|
+
### Phase 4: Testing & Verification
|
|
42
|
+
- [ ] Verify requirements met
|
|
43
|
+
- [ ] Document test results
|
|
44
|
+
- **Status:** pending
|
|
45
|
+
|
|
46
|
+
### Phase 5: Delivery
|
|
47
|
+
- [ ] Review outputs
|
|
48
|
+
- [ ] Deliver to user
|
|
49
|
+
- **Status:** pending
|
|
50
|
+
|
|
51
|
+
## Decisions Made
|
|
52
|
+
| Decision | Rationale |
|
|
53
|
+
|----------|-----------|
|
|
54
|
+
|
|
55
|
+
## Errors Encountered
|
|
56
|
+
| Error | Resolution |
|
|
57
|
+
|-------|------------|
|
|
58
|
+
EOF
|
|
59
|
+
echo "Created task_plan.md"
|
|
60
|
+
else
|
|
61
|
+
echo "task_plan.md already exists, skipping"
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# Create findings.md if it doesn't exist
|
|
65
|
+
if [ ! -f "findings.md" ]; then
|
|
66
|
+
cat > findings.md << 'EOF'
|
|
67
|
+
# Findings & Decisions
|
|
68
|
+
|
|
69
|
+
## Requirements
|
|
70
|
+
-
|
|
71
|
+
|
|
72
|
+
## Research Findings
|
|
73
|
+
-
|
|
74
|
+
|
|
75
|
+
## Technical Decisions
|
|
76
|
+
| Decision | Rationale |
|
|
77
|
+
|----------|-----------|
|
|
78
|
+
|
|
79
|
+
## Issues Encountered
|
|
80
|
+
| Issue | Resolution |
|
|
81
|
+
|-------|------------|
|
|
82
|
+
|
|
83
|
+
## Resources
|
|
84
|
+
-
|
|
85
|
+
EOF
|
|
86
|
+
echo "Created findings.md"
|
|
87
|
+
else
|
|
88
|
+
echo "findings.md already exists, skipping"
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
# Create progress.md if it doesn't exist
|
|
92
|
+
if [ ! -f "progress.md" ]; then
|
|
93
|
+
cat > progress.md << EOF
|
|
94
|
+
# Progress Log
|
|
95
|
+
|
|
96
|
+
## Session: $DATE
|
|
97
|
+
|
|
98
|
+
### Current Status
|
|
99
|
+
- **Phase:** 1 - Requirements & Discovery
|
|
100
|
+
- **Started:** $DATE
|
|
101
|
+
|
|
102
|
+
### Actions Taken
|
|
103
|
+
-
|
|
104
|
+
|
|
105
|
+
### Test Results
|
|
106
|
+
| Test | Expected | Actual | Status |
|
|
107
|
+
|------|----------|--------|--------|
|
|
108
|
+
|
|
109
|
+
### Errors
|
|
110
|
+
| Error | Resolution |
|
|
111
|
+
|-------|------------|
|
|
112
|
+
EOF
|
|
113
|
+
echo "Created progress.md"
|
|
114
|
+
else
|
|
115
|
+
echo "progress.md already exists, skipping"
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
echo ""
|
|
119
|
+
echo "Planning files initialized!"
|
|
120
|
+
echo "Files: task_plan.md, findings.md, progress.md"
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Session Catchup Script for planning-with-files
|
|
4
|
+
|
|
5
|
+
Analyzes the previous session to find unsynced context after the last
|
|
6
|
+
planning file update. Designed to run on SessionStart.
|
|
7
|
+
|
|
8
|
+
Usage: python3 session-catchup.py [project-path]
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import json
|
|
12
|
+
import sys
|
|
13
|
+
import os
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
from typing import List, Dict, Optional, Tuple
|
|
16
|
+
from datetime import datetime
|
|
17
|
+
|
|
18
|
+
PLANNING_FILES = ['task_plan.md', 'progress.md', 'findings.md']
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_project_dir(project_path: str) -> Path:
|
|
22
|
+
"""Convert project path to Codex's storage path format."""
|
|
23
|
+
sanitized = project_path.replace('/', '-')
|
|
24
|
+
if not sanitized.startswith('-'):
|
|
25
|
+
sanitized = '-' + sanitized
|
|
26
|
+
sanitized = sanitized.replace('_', '-')
|
|
27
|
+
return Path.home() / '.codex' / 'projects' / sanitized
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def get_sessions_sorted(project_dir: Path) -> List[Path]:
|
|
31
|
+
"""Get all session files sorted by modification time (newest first)."""
|
|
32
|
+
sessions = list(project_dir.glob('*.jsonl'))
|
|
33
|
+
main_sessions = [s for s in sessions if not s.name.startswith('agent-')]
|
|
34
|
+
return sorted(main_sessions, key=lambda p: p.stat().st_mtime, reverse=True)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def parse_session_messages(session_file: Path) -> List[Dict]:
|
|
38
|
+
"""Parse all messages from a session file, preserving order."""
|
|
39
|
+
messages = []
|
|
40
|
+
with open(session_file, 'r') as f:
|
|
41
|
+
for line_num, line in enumerate(f):
|
|
42
|
+
try:
|
|
43
|
+
data = json.loads(line)
|
|
44
|
+
data['_line_num'] = line_num
|
|
45
|
+
messages.append(data)
|
|
46
|
+
except json.JSONDecodeError:
|
|
47
|
+
pass
|
|
48
|
+
return messages
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def find_last_planning_update(messages: List[Dict]) -> Tuple[int, Optional[str]]:
|
|
52
|
+
"""
|
|
53
|
+
Find the last time a planning file was written/edited.
|
|
54
|
+
Returns (line_number, filename) or (-1, None) if not found.
|
|
55
|
+
"""
|
|
56
|
+
last_update_line = -1
|
|
57
|
+
last_update_file = None
|
|
58
|
+
|
|
59
|
+
for msg in messages:
|
|
60
|
+
msg_type = msg.get('type')
|
|
61
|
+
|
|
62
|
+
if msg_type == 'assistant':
|
|
63
|
+
content = msg.get('message', {}).get('content', [])
|
|
64
|
+
if isinstance(content, list):
|
|
65
|
+
for item in content:
|
|
66
|
+
if item.get('type') == 'tool_use':
|
|
67
|
+
tool_name = item.get('name', '')
|
|
68
|
+
tool_input = item.get('input', {})
|
|
69
|
+
|
|
70
|
+
if tool_name in ('Write', 'Edit'):
|
|
71
|
+
file_path = tool_input.get('file_path', '')
|
|
72
|
+
for pf in PLANNING_FILES:
|
|
73
|
+
if file_path.endswith(pf):
|
|
74
|
+
last_update_line = msg['_line_num']
|
|
75
|
+
last_update_file = pf
|
|
76
|
+
|
|
77
|
+
return last_update_line, last_update_file
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def extract_messages_after(messages: List[Dict], after_line: int) -> List[Dict]:
|
|
81
|
+
"""Extract conversation messages after a certain line number."""
|
|
82
|
+
result = []
|
|
83
|
+
for msg in messages:
|
|
84
|
+
if msg['_line_num'] <= after_line:
|
|
85
|
+
continue
|
|
86
|
+
|
|
87
|
+
msg_type = msg.get('type')
|
|
88
|
+
is_meta = msg.get('isMeta', False)
|
|
89
|
+
|
|
90
|
+
if msg_type == 'user' and not is_meta:
|
|
91
|
+
content = msg.get('message', {}).get('content', '')
|
|
92
|
+
if isinstance(content, list):
|
|
93
|
+
for item in content:
|
|
94
|
+
if isinstance(item, dict) and item.get('type') == 'text':
|
|
95
|
+
content = item.get('text', '')
|
|
96
|
+
break
|
|
97
|
+
else:
|
|
98
|
+
content = ''
|
|
99
|
+
|
|
100
|
+
if content and isinstance(content, str):
|
|
101
|
+
if content.startswith(('<local-command', '<command-', '<task-notification')):
|
|
102
|
+
continue
|
|
103
|
+
if len(content) > 20:
|
|
104
|
+
result.append({'role': 'user', 'content': content, 'line': msg['_line_num']})
|
|
105
|
+
|
|
106
|
+
elif msg_type == 'assistant':
|
|
107
|
+
msg_content = msg.get('message', {}).get('content', '')
|
|
108
|
+
text_content = ''
|
|
109
|
+
tool_uses = []
|
|
110
|
+
|
|
111
|
+
if isinstance(msg_content, str):
|
|
112
|
+
text_content = msg_content
|
|
113
|
+
elif isinstance(msg_content, list):
|
|
114
|
+
for item in msg_content:
|
|
115
|
+
if item.get('type') == 'text':
|
|
116
|
+
text_content = item.get('text', '')
|
|
117
|
+
elif item.get('type') == 'tool_use':
|
|
118
|
+
tool_name = item.get('name', '')
|
|
119
|
+
tool_input = item.get('input', {})
|
|
120
|
+
if tool_name == 'Edit':
|
|
121
|
+
tool_uses.append(f"Edit: {tool_input.get('file_path', 'unknown')}")
|
|
122
|
+
elif tool_name == 'Write':
|
|
123
|
+
tool_uses.append(f"Write: {tool_input.get('file_path', 'unknown')}")
|
|
124
|
+
elif tool_name == 'Bash':
|
|
125
|
+
cmd = tool_input.get('command', '')[:80]
|
|
126
|
+
tool_uses.append(f"Bash: {cmd}")
|
|
127
|
+
else:
|
|
128
|
+
tool_uses.append(f"{tool_name}")
|
|
129
|
+
|
|
130
|
+
if text_content or tool_uses:
|
|
131
|
+
result.append({
|
|
132
|
+
'role': 'assistant',
|
|
133
|
+
'content': text_content[:600] if text_content else '',
|
|
134
|
+
'tools': tool_uses,
|
|
135
|
+
'line': msg['_line_num']
|
|
136
|
+
})
|
|
137
|
+
|
|
138
|
+
return result
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def main():
|
|
142
|
+
project_path = sys.argv[1] if len(sys.argv) > 1 else os.getcwd()
|
|
143
|
+
project_dir = get_project_dir(project_path)
|
|
144
|
+
|
|
145
|
+
# Check if planning files exist (indicates active task)
|
|
146
|
+
has_planning_files = any(
|
|
147
|
+
Path(project_path, f).exists() for f in PLANNING_FILES
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
if not project_dir.exists():
|
|
151
|
+
# No previous sessions, nothing to catch up on
|
|
152
|
+
return
|
|
153
|
+
|
|
154
|
+
sessions = get_sessions_sorted(project_dir)
|
|
155
|
+
if len(sessions) < 1:
|
|
156
|
+
return
|
|
157
|
+
|
|
158
|
+
# Find a substantial previous session
|
|
159
|
+
target_session = None
|
|
160
|
+
for session in sessions:
|
|
161
|
+
if session.stat().st_size > 5000:
|
|
162
|
+
target_session = session
|
|
163
|
+
break
|
|
164
|
+
|
|
165
|
+
if not target_session:
|
|
166
|
+
return
|
|
167
|
+
|
|
168
|
+
messages = parse_session_messages(target_session)
|
|
169
|
+
last_update_line, last_update_file = find_last_planning_update(messages)
|
|
170
|
+
|
|
171
|
+
# Only output if there's unsynced content
|
|
172
|
+
if last_update_line < 0:
|
|
173
|
+
messages_after = extract_messages_after(messages, len(messages) - 30)
|
|
174
|
+
else:
|
|
175
|
+
messages_after = extract_messages_after(messages, last_update_line)
|
|
176
|
+
|
|
177
|
+
if not messages_after:
|
|
178
|
+
return
|
|
179
|
+
|
|
180
|
+
# Output catchup report
|
|
181
|
+
print("\n[planning-with-files] SESSION CATCHUP DETECTED")
|
|
182
|
+
print(f"Previous session: {target_session.stem}")
|
|
183
|
+
|
|
184
|
+
if last_update_line >= 0:
|
|
185
|
+
print(f"Last planning update: {last_update_file} at message #{last_update_line}")
|
|
186
|
+
print(f"Unsynced messages: {len(messages_after)}")
|
|
187
|
+
else:
|
|
188
|
+
print("No planning file updates found in previous session")
|
|
189
|
+
|
|
190
|
+
print("\n--- UNSYNCED CONTEXT ---")
|
|
191
|
+
for msg in messages_after[-15:]: # Last 15 messages
|
|
192
|
+
if msg['role'] == 'user':
|
|
193
|
+
print(f"USER: {msg['content'][:300]}")
|
|
194
|
+
else:
|
|
195
|
+
if msg.get('content'):
|
|
196
|
+
print(f"CODEX: {msg['content'][:300]}")
|
|
197
|
+
if msg.get('tools'):
|
|
198
|
+
print(f" Tools: {', '.join(msg['tools'][:4])}")
|
|
199
|
+
|
|
200
|
+
print("\n--- RECOMMENDED ---")
|
|
201
|
+
print("1. Run: git diff --stat")
|
|
202
|
+
print("2. Read: task_plan.md, progress.md, findings.md")
|
|
203
|
+
print("3. Update planning files based on above context")
|
|
204
|
+
print("4. Continue with task")
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
if __name__ == '__main__':
|
|
208
|
+
main()
|
|
@@ -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*
|