Skip to content

Commit 1ee59a9

Browse files
authored
fix: upstream improvements from bob (#12)
* fix: upstream improvements from bob * Apply suggestions from code review * Apply suggestions from code review * include TOOLS.md in fork * almost there * almost...
1 parent 7e586b1 commit 1ee59a9

File tree

13 files changed

+118
-162
lines changed

13 files changed

+118
-162
lines changed

ARCHITECTURE.md

Lines changed: 62 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -8,97 +8,86 @@ This workspace implements a forkable agent architecture, designed to be used as
88
- Forking process: See [`knowledge/agent-forking.md`](./knowledge/agent-forking.md)
99
- Workspace structure: See [`knowledge/forking-workspace.md`](./knowledge/forking-workspace.md)
1010

11-
## Search & Navigation
12-
13-
The workspace provides several ways to search and navigate content:
14-
- Quick search:
15-
```sh
16-
# Find files containing term
17-
git grep -li <query>
18-
19-
# Show matching lines
20-
git grep -i <query>
21-
```
22-
- Detailed search with context:
23-
```sh
24-
# Show matching lines
25-
./scripts/search.sh "<query>"
26-
27-
# Show with context
28-
./scripts/search.sh "<query>" 1
29-
```
30-
- Common locations:
31-
- tasks/all/ - Task details
32-
- journal/ - Daily updates
33-
- knowledge/ - Documentation
11+
## Tools
12+
13+
For a information about tools used in this workspace, see [`TOOLS.md`](./TOOLS.md).
3414

3515
## Task System
36-
The task system is designed to help track and manage work effectively across sessions.
16+
17+
The task system is designed to help Bob track and manage work effectively across sessions.
3718

3819
### Components
3920

40-
1. **TASKS.md**
21+
1. [**`TASKS.md`**](./TASKS.md)
4122
- Main task registry
4223
- Contains all tasks categorized by area
4324
- Each task has a clear status indicator
44-
- Links to task files in tasks/all/
45-
25+
- Links to task files in `tasks/`
4626

4727
2. **Task Files**
48-
- All task files stored in `tasks/all/` as single source of truth
28+
- All task files stored in [`tasks/`](./tasks) as single source of truth
4929
- Task state managed via symlinks in state directories:
5030
- `tasks/new/`: Symlinks to new tasks
5131
- `tasks/active/`: Symlinks to tasks being worked on
5232
- `tasks/paused/`: Symlinks to temporarily paused tasks
5333
- `tasks/done/`: Symlinks to completed tasks
5434
- `tasks/cancelled/`: Symlinks to cancelled tasks
55-
- Never modify task files directly in state directories, always modify in tasks/all/
35+
- Never modify task files directly in state directories, always modify in `tasks/`
5636

57-
3. **CURRENT_TASK.md**
58-
- Always a symlink, never modify directly
59-
- Points to active task in tasks/all/ when task is active
60-
- Points to tasks/all/no-active-task.md when no task is active
61-
- Updated using ln -sf command when switching tasks
62-
63-
4. **Journal Entries**
64-
- Daily progress logs in `./journal/`
37+
3. **Journal Entries**
38+
- Daily progress logs in [`journal/`](./journal)
6539
- Each entry documents work done on tasks
6640
- Includes reflections and next steps
6741

6842
### Task Lifecycle
6943

7044
0. **Retrieval**
71-
- Retrieve context needed to plan the task using the search tools described in "Search & Navigation" above
72-
- Review tasks/all/no-active-task.md if starting fresh
45+
- Retrieve context needed to plan the task
46+
- Quick search:
47+
```sh
48+
# Find files containing term
49+
git grep -li <query>
50+
51+
# Show matching lines
52+
git grep -i <query>
53+
```
54+
- Detailed search with context:
55+
```sh
56+
# Show matching lines
57+
./scripts/search.sh "<query>"
58+
59+
# Show with context
60+
./scripts/search.sh "<query>" 1
61+
```
62+
- Common locations:
63+
- `tasks/` - Task details
64+
- `journal/` - Daily updates
65+
- `knowledge/` - Documentation
7366

7467
1. **Creation**
75-
- Create new task file in tasks/all/
76-
- Add symlink in tasks/new/: `ln -s ../all/taskname.md tasks/new/`
77-
- Add to TASKS.md with 🆕 status
78-
- CURRENT_TASK.md remains linked to no-active-task.md
68+
- Create new task file in `tasks/`
69+
- Add symlink in `tasks/new/`: `ln -s ../taskname.md tasks/new/`
70+
- Add to `TASKS.md` with 🆕 status
7971

8072
2. **Activation**
81-
- Move symlink from new/ to active/: `mv tasks/new/taskname.md tasks/active/`
82-
- Update CURRENT_TASK.md symlink: `ln -sf tasks/all/taskname.md CURRENT_TASK.md`
83-
- Update status in TASKS.md to 🏃
73+
- Move symlink from `new/` to `active/`: `mv tasks/new/taskname.md tasks/active/`
74+
- Update status in `TASKS.md` to 🏃
8475
- Create journal entry about starting task
8576

8677
3. **Progress Tracking**
8778
- Daily updates in journal entries
88-
- Status updates in TASKS.md
79+
- Status updates in `TASKS.md`
8980
- Subtask completion tracking
90-
- All edits made to file in tasks/all/
81+
- All edits made to file in `tasks/`
9182

9283
4. **Completion/Cancellation**
93-
- Update status in TASKS.md to ✅ or ❌
84+
- Update status in `TASKS.md` to ✅ or ❌
9485
- Move symlink to done/ or cancelled/: `mv tasks/active/taskname.md tasks/done/`
95-
- Reset CURRENT_TASK.md to no-active-task.md: `ln -sf tasks/all/no-active-task.md CURRENT_TASK.md`
9686
- Final journal entry documenting outcomes
9787

9888
5. **Pausing**
99-
- Move symlink from active/ to paused/: `mv tasks/active/taskname.md tasks/paused/`
100-
- Reset CURRENT_TASK.md to no-active-task.md: `ln -sf tasks/all/no-active-task.md CURRENT_TASK.md`
101-
- Update status in TASKS.md to ⏸️
89+
- Move symlink from `active/` to `paused/`: `mv tasks/active/taskname.md tasks/paused/`
90+
- Update status in `TASKS.md` to ⏸️
10291
- Document progress in journal
10392

10493
### Status Indicators
@@ -112,53 +101,50 @@ The task system is designed to help track and manage work effectively across ses
112101
### Best Practices
113102

114103
1. **File Management**
115-
- Always treat tasks/all/ as single source of truth
104+
- Always treat `tasks/` as single source of truth
116105
- Never modify files directly in state directories
117106
- Use proper symlink commands for state transitions
118107
- Verify symlinks after state changes
119-
- Keep no-active-task.md as template for inactive state
120108

121-
2. **Document Linking**
122-
- Always link to referenced tasks and documents
123-
- Use relative paths from repository root when possible
124-
- Common links to include:
125-
- Tasks mentioned in journal entries
126-
- Related tasks in task descriptions
127-
- People mentioned in any document
128-
- Projects being discussed
129-
- Knowledge base articles
130-
- Use descriptive link text that makes sense out of context
131-
132-
3. **Task Creation**
109+
2. **Task Creation**
133110
- Use clear, specific titles
134111
- Break down into manageable subtasks
135112
- Include success criteria
136113
- Link related resources
137-
- Create files in tasks/all/ first, then symlink
114+
- Create files in `tasks/` first, then symlink
138115

139116
3. **Progress Updates**
140-
- Daily journal entries
141-
- Regular status updates in TASKS.md
117+
- Regular status updates in `TASKS.md`
142118
- Document blockers/issues
143119
- Track dependencies
144-
- All edits made to files in tasks/all/
120+
- All edits made to files in `tasks/`
145121

146122
4. **Documentation**
147-
- Never modify CURRENT_TASK.md directly (it's a symlink)
148123
- Cross-reference related tasks using paths relative to repository root
149124
- Document decisions and rationale
150125
- Link to relevant documents and resources
151126
- Update knowledge base as needed
152127

128+
5. **Linking**
129+
- Always link to referenced resources (tasks, knowledge, URLs)
130+
- Use relative paths from repository root when possible
131+
- Common links to include:
132+
- Tasks mentioned in journal entries
133+
- Related tasks in task descriptions
134+
- People mentioned in any document
135+
- Projects being discussed
136+
- Knowledge base articles
137+
- Use descriptive link text that makes sense out of context
153138

154139
## Journal System
155140

156141
The journal system provides a daily log of activities, thoughts, and progress.
157142

158143
### Structure
159144
- One file per day: `YYYY-MM-DD.md`
160-
- Located in `./journal/` directory
145+
- Located in [`journal/`](./journal) directory
161146
- Entries are to be appended, not overwritten
147+
- Historical entries are not to be modified
162148
- Contains:
163149
- Task progress updates
164150
- Decisions and rationale
@@ -170,7 +156,7 @@ The journal system provides a daily log of activities, thoughts, and progress.
170156
The knowledge base stores long-term information and documentation.
171157

172158
### Structure
173-
- Located in `./knowledge/`
159+
- Located in [`knowledge/`](./knowledge)
174160
- Organized by topic/domain
175161
- Includes:
176162
- Technical documentation
@@ -180,10 +166,10 @@ The knowledge base stores long-term information and documentation.
180166

181167
## People Directory
182168

183-
The people directory stores information about individuals the agent interacts with.
169+
The people directory stores information about individuals Bob interacts with.
184170

185171
### Structure
186-
- Located in `./people/`
172+
- Located in [`people/`](./people)
187173
- Contains:
188174
- Individual profiles in Markdown format
189175
- Templates for consistent profile creation

CURRENT_TASK.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
.PHONY: precommit format
22

3+
# to fix `git grep` for users with PAGER set
34
PAGER=cat
45

56
install:

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ Then simply follow the instructions in the output.
4848
## Workspace Structure
4949

5050
- gptme-agent keeps track of tasks in [`TASKS.md`](./TASKS.md)
51-
- gptme-agent writes about the current task in [`CURRENT_TASK.md`](./CURRENT_TASK.md)
5251
- gptme-agent keeps a journal in [`./journal/`](./journal/)
5352
- gptme-agent keeps a knowledge base in [`./knowledge/`](./knowledge/)
5453
- gptme-agent maintains profiles of people in [`./people/`](./people/)

TASKS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Active tasks and their current status.
44

55
## Current Task
6-
- 🏃 [Initial Agent Setup](./tasks/all/initial-agent-setup.md)
6+
- 🏃 [Initial Agent Setup](./tasks/initial-agent-setup.md)
77

88
## System Development
99
- 🏃 Complete initial setup

TOOLS.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Tools
2+
3+
Bob has the tools enabled in gptme, and can in addition use the following tools in his workspace.
4+
5+
6+
## Search & Navigation
7+
8+
The workspace provides several ways to search and navigate content:
9+
10+
- Quick search:
11+
```sh
12+
# Find files containing term
13+
git grep -li <query>
14+
15+
# Show matching lines
16+
git grep -i <query>
17+
```
18+
- Common locations:
19+
- tasks/ - Task details
20+
- journal/ - Daily updates
21+
- knowledge/ - Documentation
22+
23+
It can often be a good idea to start with a quick search to get an overview, and then use the detailed search to get more context.
24+
25+
Avoid direct use of `grep` or `find` commands, as they may not respect `.gitignore` rules.

fork.sh

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ echo -e "\nCreating new agent '$NEW_AGENT' in directory '$TARGET_DIR'..."
4040

4141
# Create core directory structure
4242
echo "Creating directory structure..."
43-
mkdir -p "${TARGET_DIR}"/{journal,tasks/{all,active,done,new,paused,cancelled,templates},projects,knowledge,people/templates,scripts/precommit}
43+
mkdir -p "${TARGET_DIR}"/{journal,tasks/{active,done,new,paused,cancelled,templates},projects,knowledge,people/templates,scripts/precommit}
4444

4545
# Copy core files and directories
4646
echo "Copying core files..."
@@ -76,6 +76,7 @@ function copy_file() {
7676
copy_file README.md
7777
cp "${SOURCE_DIR}/Makefile" "${TARGET_DIR}/Makefile" # copy without replacing NAME_TEMPLATE
7878
copy_file ARCHITECTURE.md
79+
copy_file TOOLS.md
7980
copy_file .pre-commit-config.yaml
8081
copy_file scripts
8182
copy_file run.sh
@@ -88,14 +89,10 @@ copy_file knowledge/forking-workspace.md
8889
# Copy template
8990
copy_file */templates/*.md
9091

91-
# Initialize tasks
92-
echo "# No Active Task" > "${TARGET_DIR}/tasks/all/no-active-task.md"
93-
9492
# Initial setup task from template
9593
copy_file tasks/templates/initial-agent-setup.md
96-
cp "${SOURCE_DIR}/tasks/templates/initial-agent-setup.md" "${TARGET_DIR}/tasks/all/"
97-
ln -sf "../all/initial-agent-setup.md" "${TARGET_DIR}/tasks/active/"
98-
ln -sf "./tasks/all/initial-agent-setup.md" "${TARGET_DIR}/CURRENT_TASK.md"
94+
cp "${SOURCE_DIR}/tasks/templates/initial-agent-setup.md" "${TARGET_DIR}/tasks/"
95+
ln -sf "../initial-agent-setup.md" "${TARGET_DIR}/tasks/active/"
9996

10097
# Create projects README
10198
cat > "${TARGET_DIR}/projects/README.md" << EOL
@@ -131,7 +128,7 @@ cat > "${TARGET_DIR}/TASKS.md" << EOL
131128
Active tasks and their current status.
132129
133130
## Current Task
134-
- 🏃 [Initial Agent Setup](./tasks/all/initial-agent-setup.md)
131+
- 🏃 [Initial Agent Setup](./tasks/initial-agent-setup.md)
135132
136133
## System Development
137134
- 🏃 Complete initial setup
@@ -146,7 +143,6 @@ files = [
146143
"ARCHITECTURE.md",
147144
"ABOUT.md",
148145
"TASKS.md",
149-
"CURRENT_TASK.md",
150146
"projects/README.md",
151147
"gptme.toml"
152148
]

gptme.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ files = [
33
"ARCHITECTURE.md",
44
"ABOUT.md",
55
"TASKS.md",
6-
"CURRENT_TASK.md",
76
"projects/README.md",
87
"gptme.toml"
98
]

knowledge/forking-workspace.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ This document describes what remains and what gets cleared when forking an agent
99
├── README.md # Overview (template remains, content updated)
1010
├── ABOUT.md # Agent identity (cleared and customized)
1111
├── ARCHITECTURE.md # System architecture (remains)
12-
├── CURRENT_TASK.md # Symlink to active task (reset to no-active-task.md)
12+
├── TOOLS.md # Tool integrations (remains)
1313
├── gptme.toml # Config file (template remains, paths updated)
1414
├── tasks/ # Task management (structure remains, content cleared)
1515
│ ├── active/ # Current tasks
16-
│ ├── all/ # Source of truth
1716
│ ├── done/ # Completed tasks
1817
│ └── ... # Other task states
1918
├── journal/ # Daily logs (cleared)

0 commit comments

Comments
 (0)