@mytechtoday/augment-extensions 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.
Files changed (50) hide show
  1. package/AGENTS.md +152 -0
  2. package/LICENSE +22 -0
  3. package/MODULES.md +124 -0
  4. package/README.md +195 -0
  5. package/cli/dist/cli.d.ts +3 -0
  6. package/cli/dist/cli.d.ts.map +1 -0
  7. package/cli/dist/cli.js +100 -0
  8. package/cli/dist/cli.js.map +1 -0
  9. package/cli/dist/commands/init.d.ts +6 -0
  10. package/cli/dist/commands/init.d.ts.map +1 -0
  11. package/cli/dist/commands/init.js +137 -0
  12. package/cli/dist/commands/init.js.map +1 -0
  13. package/cli/dist/commands/link.d.ts +6 -0
  14. package/cli/dist/commands/link.d.ts.map +1 -0
  15. package/cli/dist/commands/link.js +85 -0
  16. package/cli/dist/commands/link.js.map +1 -0
  17. package/cli/dist/commands/list.d.ts +7 -0
  18. package/cli/dist/commands/list.d.ts.map +1 -0
  19. package/cli/dist/commands/list.js +122 -0
  20. package/cli/dist/commands/list.js.map +1 -0
  21. package/cli/dist/commands/search.d.ts +6 -0
  22. package/cli/dist/commands/search.d.ts.map +1 -0
  23. package/cli/dist/commands/search.js +16 -0
  24. package/cli/dist/commands/search.js.map +1 -0
  25. package/cli/dist/commands/show.d.ts +6 -0
  26. package/cli/dist/commands/show.d.ts.map +1 -0
  27. package/cli/dist/commands/show.js +106 -0
  28. package/cli/dist/commands/show.js.map +1 -0
  29. package/cli/dist/commands/update.d.ts +6 -0
  30. package/cli/dist/commands/update.d.ts.map +1 -0
  31. package/cli/dist/commands/update.js +19 -0
  32. package/cli/dist/commands/update.js.map +1 -0
  33. package/modules/coding-standards/typescript/README.md +45 -0
  34. package/modules/coding-standards/typescript/module.json +27 -0
  35. package/modules/coding-standards/typescript/rules/naming-conventions.md +225 -0
  36. package/modules/workflows/beads/README.md +135 -0
  37. package/modules/workflows/beads/examples/complete-workflow-example.md +278 -0
  38. package/modules/workflows/beads/module.json +54 -0
  39. package/modules/workflows/beads/rules/best-practices.md +398 -0
  40. package/modules/workflows/beads/rules/file-format.md +283 -0
  41. package/modules/workflows/beads/rules/manual-setup.md +315 -0
  42. package/modules/workflows/beads/rules/workflow.md +285 -0
  43. package/modules/workflows/openspec/README.md +96 -0
  44. package/modules/workflows/openspec/examples/complete-change-example.md +230 -0
  45. package/modules/workflows/openspec/module.json +53 -0
  46. package/modules/workflows/openspec/rules/best-practices.md +272 -0
  47. package/modules/workflows/openspec/rules/manual-setup.md +231 -0
  48. package/modules/workflows/openspec/rules/spec-format.md +193 -0
  49. package/modules/workflows/openspec/rules/workflow.md +189 -0
  50. package/package.json +72 -0
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "typescript-standards",
3
+ "version": "1.0.0",
4
+ "displayName": "TypeScript Standards",
5
+ "description": "Comprehensive TypeScript coding standards and best practices",
6
+ "type": "coding-standards",
7
+ "language": "typescript",
8
+ "author": "Augment Extensions",
9
+ "license": "MIT",
10
+ "keywords": ["typescript", "coding-standards", "best-practices", "type-safety"],
11
+ "dependencies": {},
12
+ "files": [
13
+ "rules/naming-conventions.md",
14
+ "rules/type-safety.md",
15
+ "rules/error-handling.md",
16
+ "rules/async-patterns.md",
17
+ "examples/best-practices.ts"
18
+ ],
19
+ "augment": {
20
+ "minVersion": "1.0.0",
21
+ "characterCount": 6416,
22
+ "priority": "high",
23
+ "category": "coding-standards",
24
+ "autoLoad": false
25
+ }
26
+ }
27
+
@@ -0,0 +1,225 @@
1
+ # TypeScript Naming Conventions
2
+
3
+ ## Core Principles
4
+
5
+ 1. **Clarity over brevity** - Names should be self-documenting
6
+ 2. **Consistency** - Follow established patterns throughout codebase
7
+ 3. **Avoid abbreviations** - Unless universally understood (e.g., `id`, `url`)
8
+
9
+ ## Variables and Constants
10
+
11
+ ### Variables (camelCase)
12
+
13
+ ```typescript
14
+ // ✅ Good
15
+ const userProfile = getUserProfile();
16
+ const isAuthenticated = checkAuth();
17
+ const totalCount = items.length;
18
+
19
+ // ❌ Bad
20
+ const up = getUserProfile();
21
+ const auth = checkAuth();
22
+ const cnt = items.length;
23
+ ```
24
+
25
+ ### Constants (UPPER_SNAKE_CASE for true constants)
26
+
27
+ ```typescript
28
+ // ✅ Good - True constants
29
+ const MAX_RETRY_ATTEMPTS = 3;
30
+ const API_BASE_URL = 'https://api.example.com';
31
+ const DEFAULT_TIMEOUT_MS = 5000;
32
+
33
+ // ✅ Good - Configuration objects (camelCase)
34
+ const apiConfig = {
35
+ baseUrl: 'https://api.example.com',
36
+ timeout: 5000,
37
+ retries: 3
38
+ };
39
+
40
+ // ❌ Bad - Mixing conventions
41
+ const Max_Retry_Attempts = 3;
42
+ const api_base_url = 'https://api.example.com';
43
+ ```
44
+
45
+ ## Functions and Methods
46
+
47
+ ### Functions (camelCase, verb-based)
48
+
49
+ ```typescript
50
+ // ✅ Good - Clear action verbs
51
+ function fetchUserData(userId: string): Promise<User> { }
52
+ function validateEmail(email: string): boolean { }
53
+ function transformResponse(data: ApiResponse): User[] { }
54
+
55
+ // ❌ Bad - Unclear or noun-based
56
+ function user(id: string): Promise<User> { }
57
+ function email(e: string): boolean { }
58
+ function response(d: ApiResponse): User[] { }
59
+ ```
60
+
61
+ ### Boolean Functions (is/has/can/should prefix)
62
+
63
+ ```typescript
64
+ // ✅ Good
65
+ function isValidEmail(email: string): boolean { }
66
+ function hasPermission(user: User, permission: string): boolean { }
67
+ function canEditPost(user: User, post: Post): boolean { }
68
+ function shouldRetry(attempt: number): boolean { }
69
+
70
+ // ❌ Bad
71
+ function validEmail(email: string): boolean { }
72
+ function permission(user: User, perm: string): boolean { }
73
+ function editPost(user: User, post: Post): boolean { }
74
+ ```
75
+
76
+ ## Classes and Interfaces
77
+
78
+ ### Classes (PascalCase, noun-based)
79
+
80
+ ```typescript
81
+ // ✅ Good
82
+ class UserRepository { }
83
+ class EmailValidator { }
84
+ class PaymentProcessor { }
85
+ class HttpClient { }
86
+
87
+ // ❌ Bad
88
+ class userRepository { }
89
+ class validateEmail { }
90
+ class processPayment { }
91
+ class httpClient { }
92
+ ```
93
+
94
+ ### Interfaces (PascalCase, descriptive)
95
+
96
+ ```typescript
97
+ // ✅ Good - No 'I' prefix (modern TypeScript convention)
98
+ interface User {
99
+ id: string;
100
+ email: string;
101
+ }
102
+
103
+ interface UserRepository {
104
+ findById(id: string): Promise<User | null>;
105
+ save(user: User): Promise<void>;
106
+ }
107
+
108
+ // ❌ Bad - Hungarian notation
109
+ interface IUser { }
110
+ interface IUserRepository { }
111
+ ```
112
+
113
+ ### Type Aliases (PascalCase)
114
+
115
+ ```typescript
116
+ // ✅ Good
117
+ type UserId = string;
118
+ type UserRole = 'admin' | 'user' | 'guest';
119
+ type ApiResponse<T> = {
120
+ data: T;
121
+ error?: string;
122
+ };
123
+
124
+ // ❌ Bad
125
+ type userId = string;
126
+ type user_role = 'admin' | 'user' | 'guest';
127
+ ```
128
+
129
+ ## Enums
130
+
131
+ ### Enums (PascalCase for enum, UPPER_SNAKE_CASE for values)
132
+
133
+ ```typescript
134
+ // ✅ Good
135
+ enum UserRole {
136
+ ADMIN = 'ADMIN',
137
+ USER = 'USER',
138
+ GUEST = 'GUEST'
139
+ }
140
+
141
+ enum HttpStatus {
142
+ OK = 200,
143
+ NOT_FOUND = 404,
144
+ INTERNAL_ERROR = 500
145
+ }
146
+
147
+ // ❌ Bad
148
+ enum userRole {
149
+ admin = 'admin',
150
+ user = 'user'
151
+ }
152
+ ```
153
+
154
+ ## Generics
155
+
156
+ ### Generic Type Parameters
157
+
158
+ ```typescript
159
+ // ✅ Good - Descriptive single letter or full word
160
+ function map<T, U>(items: T[], fn: (item: T) => U): U[] { }
161
+ function createRepository<TEntity>(config: Config): Repository<TEntity> { }
162
+
163
+ // ✅ Good - Multiple related generics
164
+ interface Map<TKey, TValue> {
165
+ get(key: TKey): TValue | undefined;
166
+ set(key: TKey, value: TValue): void;
167
+ }
168
+
169
+ // ❌ Bad - Unclear or inconsistent
170
+ function map<A, B>(items: A[], fn: (item: A) => B): B[] { }
171
+ ```
172
+
173
+ ## Files and Directories
174
+
175
+ ### File Names (kebab-case)
176
+
177
+ ```
178
+ // ✅ Good
179
+ user-repository.ts
180
+ email-validator.ts
181
+ payment-processor.ts
182
+ api-client.ts
183
+
184
+ // ❌ Bad
185
+ UserRepository.ts
186
+ emailValidator.ts
187
+ payment_processor.ts
188
+ ```
189
+
190
+ ### Directory Names (kebab-case)
191
+
192
+ ```
193
+ src/
194
+ ├── user-management/
195
+ ├── payment-processing/
196
+ ├── api-clients/
197
+ └── shared-utilities/
198
+ ```
199
+
200
+ ## Private Members
201
+
202
+ ### Private Fields (prefix with underscore)
203
+
204
+ ```typescript
205
+ class UserService {
206
+ // ✅ Good
207
+ private _cache: Map<string, User>;
208
+ private _apiClient: HttpClient;
209
+
210
+ // ❌ Bad (no clear indication of privacy)
211
+ private cache: Map<string, User>;
212
+ private apiClient: HttpClient;
213
+ }
214
+ ```
215
+
216
+ ## Summary
217
+
218
+ - **Variables/Functions**: camelCase
219
+ - **Classes/Interfaces/Types**: PascalCase
220
+ - **Constants**: UPPER_SNAKE_CASE (true constants) or camelCase (config objects)
221
+ - **Files/Directories**: kebab-case
222
+ - **Booleans**: is/has/can/should prefix
223
+ - **Generics**: T, U, V or descriptive (TEntity, TKey, TValue)
224
+ - **Private**: Prefix with underscore
225
+
@@ -0,0 +1,135 @@
1
+ # Beads Workflow Module
2
+
3
+ **Distributed, git-backed graph issue tracker for AI agents.**
4
+
5
+ ## Overview
6
+
7
+ Beads provides persistent, structured memory for coding agents. It replaces messy markdown plans with a dependency-aware graph, allowing agents to handle long-horizon tasks without losing context.
8
+
9
+ ## Key Benefits
10
+
11
+ - **Git as Database**: Issues stored as JSONL in `.beads/` directory, versioned with your code
12
+ - **Agent-Optimized**: JSON output, dependency tracking, auto-ready task detection
13
+ - **Zero Conflict**: Hash-based IDs (`bd-a1b2`) prevent merge collisions in multi-agent workflows
14
+ - **Invisible Infrastructure**: SQLite local cache for speed, background daemon for auto-sync
15
+ - **Memory Decay**: Semantic compaction summarizes old closed tasks to save context window
16
+
17
+ ## Installation Options
18
+
19
+ ### Option 1: With CLI (Recommended)
20
+
21
+ Install the Beads CLI for full features:
22
+
23
+ ```bash
24
+ # npm
25
+ npm install -g @beads/bd
26
+
27
+ # Homebrew
28
+ brew install steveyegge/beads/bd
29
+
30
+ # Go
31
+ go install github.com/steveyegge/beads/cmd/bd@latest
32
+
33
+ # Initialize in your project
34
+ cd your-project
35
+ bd init
36
+ ```
37
+
38
+ **Benefits**: SQLite cache, auto-sync daemon, validation, JSON output, compaction
39
+
40
+ ### Option 2: Without CLI (Manual)
41
+
42
+ Work with `.beads/` files directly without installing the CLI. See `rules/manual-setup.md` for instructions.
43
+
44
+ **Benefits**: No installation required, works immediately
45
+
46
+ **Limitations**: No SQLite cache, manual sync, no validation, no compaction
47
+
48
+ ## Directory Structure
49
+
50
+ ```
51
+ your-project/
52
+ ├── .beads/
53
+ │ ├── issues.jsonl # All issues (append-only log)
54
+ │ ├── config.json # Beads configuration
55
+ │ └── cache.db # SQLite cache (CLI only, gitignored)
56
+ └── AGENTS.md # AI agent instructions
57
+ ```
58
+
59
+ ## Core Workflow
60
+
61
+ ### Creating Tasks
62
+
63
+ ```bash
64
+ # With CLI
65
+ bd create "Implement user authentication" -p 0
66
+
67
+ # Without CLI - append to .beads/issues.jsonl
68
+ ```
69
+
70
+ ### Viewing Ready Tasks
71
+
72
+ ```bash
73
+ # With CLI
74
+ bd ready
75
+
76
+ # Shows tasks with no open blockers
77
+ ```
78
+
79
+ ### Managing Dependencies
80
+
81
+ ```bash
82
+ # With CLI
83
+ bd dep add <child-id> <parent-id>
84
+
85
+ # Creates blocks/blocked-by relationships
86
+ ```
87
+
88
+ ### Closing Tasks
89
+
90
+ ```bash
91
+ # With CLI
92
+ bd close <id>
93
+
94
+ # Marks task as closed
95
+ ```
96
+
97
+ ## Hierarchical IDs
98
+
99
+ Beads supports epic/task/subtask hierarchy:
100
+
101
+ - `bd-a3f8` (Epic)
102
+ - `bd-a3f8.1` (Task)
103
+ - `bd-a3f8.1.1` (Sub-task)
104
+
105
+ ## Stealth Mode
106
+
107
+ Use Beads locally without committing to the main repo:
108
+
109
+ ```bash
110
+ bd init --stealth
111
+ ```
112
+
113
+ Perfect for personal use on shared projects.
114
+
115
+ ## Character Count
116
+
117
+ This module contains comprehensive Beads workflow documentation that exceeds the standard `.augment/` folder character limit.
118
+
119
+ **Total**: ~28,000 characters across all rule files
120
+
121
+ ## Contents
122
+
123
+ - `rules/workflow.md` - Complete workflow guide
124
+ - `rules/file-format.md` - JSONL file format specification
125
+ - `rules/manual-setup.md` - Manual setup without CLI
126
+ - `rules/commands.md` - CLI command reference
127
+ - `rules/best-practices.md` - Tips and patterns
128
+ - `examples/` - Example workflows and use cases
129
+
130
+ ## Learn More
131
+
132
+ - **GitHub**: https://github.com/steveyegge/beads
133
+ - **Agent Instructions**: https://github.com/steveyegge/beads/blob/main/AGENT_INSTRUCTIONS.md
134
+ - **Documentation**: See `rules/` directory in this module
135
+
@@ -0,0 +1,278 @@
1
+ # Complete Beads Workflow Example
2
+
3
+ This example shows a complete Beads workflow from start to finish.
4
+
5
+ ## Scenario
6
+
7
+ Building a user authentication system with multiple dependent tasks.
8
+
9
+ ## Step 1: Initialize Beads
10
+
11
+ ```bash
12
+ # With CLI
13
+ bd init
14
+
15
+ # Without CLI
16
+ mkdir .beads
17
+ touch .beads/issues.jsonl
18
+ echo '{"version": "1.0"}' > .beads/config.json
19
+ ```
20
+
21
+ ## Step 2: Create Epic
22
+
23
+ ```bash
24
+ # With CLI
25
+ bd create "User Authentication System" -p 0
26
+ # Returns: bd-a3f8
27
+ ```
28
+
29
+ **Without CLI** - Append to `.beads/issues.jsonl`:
30
+
31
+ ```json
32
+ {"id":"bd-a3f8","title":"User Authentication System","status":"open","priority":0,"created":"2024-01-20T10:00:00Z","updated":"2024-01-20T10:00:00Z"}
33
+ ```
34
+
35
+ ## Step 3: Create Tasks
36
+
37
+ ```bash
38
+ # With CLI
39
+ bd create "Add database schema" -p 0 --parent bd-a3f8
40
+ # Returns: bd-a3f8.1
41
+
42
+ bd create "Add password hashing" -p 1 --parent bd-a3f8
43
+ # Returns: bd-a3f8.2
44
+
45
+ bd create "Add JWT generation" -p 1 --parent bd-a3f8
46
+ # Returns: bd-a3f8.3
47
+
48
+ bd create "Add login endpoint" -p 1 --parent bd-a3f8
49
+ # Returns: bd-a3f8.4
50
+ ```
51
+
52
+ **Without CLI** - Append to `.beads/issues.jsonl`:
53
+
54
+ ```jsonl
55
+ {"id":"bd-a3f8.1","title":"Add database schema","status":"open","priority":0,"parent":"bd-a3f8","created":"2024-01-20T10:01:00Z","updated":"2024-01-20T10:01:00Z"}
56
+ {"id":"bd-a3f8.2","title":"Add password hashing","status":"open","priority":1,"parent":"bd-a3f8","created":"2024-01-20T10:02:00Z","updated":"2024-01-20T10:02:00Z"}
57
+ {"id":"bd-a3f8.3","title":"Add JWT generation","status":"open","priority":1,"parent":"bd-a3f8","created":"2024-01-20T10:03:00Z","updated":"2024-01-20T10:03:00Z"}
58
+ {"id":"bd-a3f8.4","title":"Add login endpoint","status":"open","priority":1,"parent":"bd-a3f8","created":"2024-01-20T10:04:00Z","updated":"2024-01-20T10:04:00Z"}
59
+ ```
60
+
61
+ ## Step 4: Add Dependencies
62
+
63
+ ```bash
64
+ # With CLI
65
+ bd dep add bd-a3f8.2 bd-a3f8.1 # Password hashing depends on schema
66
+ bd dep add bd-a3f8.3 bd-a3f8.1 # JWT generation depends on schema
67
+ bd dep add bd-a3f8.4 bd-a3f8.2 # Login endpoint depends on password hashing
68
+ bd dep add bd-a3f8.4 bd-a3f8.3 # Login endpoint depends on JWT generation
69
+ ```
70
+
71
+ **Without CLI** - Append to `.beads/issues.jsonl`:
72
+
73
+ ```jsonl
74
+ {"id":"bd-a3f8.1","blocks":["bd-a3f8.2","bd-a3f8.3"],"updated":"2024-01-20T10:05:00Z"}
75
+ {"id":"bd-a3f8.2","blocked_by":["bd-a3f8.1"],"blocks":["bd-a3f8.4"],"updated":"2024-01-20T10:05:00Z"}
76
+ {"id":"bd-a3f8.3","blocked_by":["bd-a3f8.1"],"blocks":["bd-a3f8.4"],"updated":"2024-01-20T10:05:00Z"}
77
+ {"id":"bd-a3f8.4","blocked_by":["bd-a3f8.2","bd-a3f8.3"],"updated":"2024-01-20T10:05:00Z"}
78
+ ```
79
+
80
+ ## Step 5: Find Ready Tasks
81
+
82
+ ```bash
83
+ # With CLI
84
+ bd ready
85
+ ```
86
+
87
+ **Output**:
88
+ ```
89
+ bd-a3f8.1 Add database schema P0
90
+ ```
91
+
92
+ Only `bd-a3f8.1` is ready because it has no blockers.
93
+
94
+ ## Step 6: Work on First Task
95
+
96
+ ```bash
97
+ # With CLI
98
+ bd update bd-a3f8.1 --status in-progress
99
+ bd comment bd-a3f8.1 "Creating users table with email, password_hash, created_at columns"
100
+ ```
101
+
102
+ **Without CLI** - Append to `.beads/issues.jsonl`:
103
+
104
+ ```jsonl
105
+ {"id":"bd-a3f8.1","status":"in-progress","updated":"2024-01-20T11:00:00Z"}
106
+ {"id":"bd-a3f8.1","comments":[{"text":"Creating users table with email, password_hash, created_at columns","timestamp":"2024-01-20T11:00:00Z"}],"updated":"2024-01-20T11:00:00Z"}
107
+ ```
108
+
109
+ ## Step 7: Complete First Task
110
+
111
+ ```bash
112
+ # With CLI
113
+ bd close bd-a3f8.1
114
+ ```
115
+
116
+ **Without CLI** - Append to `.beads/issues.jsonl`:
117
+
118
+ ```jsonl
119
+ {"id":"bd-a3f8.1","status":"closed","closed":"2024-01-20T12:00:00Z","updated":"2024-01-20T12:00:00Z"}
120
+ ```
121
+
122
+ ## Step 8: Find Next Ready Tasks
123
+
124
+ ```bash
125
+ # With CLI
126
+ bd ready
127
+ ```
128
+
129
+ **Output**:
130
+ ```
131
+ bd-a3f8.2 Add password hashing P1
132
+ bd-a3f8.3 Add JWT generation P1
133
+ ```
134
+
135
+ Now both `bd-a3f8.2` and `bd-a3f8.3` are ready because their blocker (`bd-a3f8.1`) is closed.
136
+
137
+ ## Step 9: Work on Multiple Tasks
138
+
139
+ ```bash
140
+ # With CLI - work on password hashing
141
+ bd update bd-a3f8.2 --status in-progress
142
+ bd comment bd-a3f8.2 "Using bcrypt with cost factor 12"
143
+
144
+ # Complete it
145
+ bd close bd-a3f8.2
146
+
147
+ # Work on JWT generation
148
+ bd update bd-a3f8.3 --status in-progress
149
+ bd comment bd-a3f8.3 "Using HS256 algorithm, 24-hour expiry"
150
+
151
+ # Complete it
152
+ bd close bd-a3f8.3
153
+ ```
154
+
155
+ **Without CLI** - Append to `.beads/issues.jsonl`:
156
+
157
+ ```jsonl
158
+ {"id":"bd-a3f8.2","status":"in-progress","updated":"2024-01-20T12:30:00Z"}
159
+ {"id":"bd-a3f8.2","comments":[{"text":"Using bcrypt with cost factor 12","timestamp":"2024-01-20T12:30:00Z"}],"updated":"2024-01-20T12:30:00Z"}
160
+ {"id":"bd-a3f8.2","status":"closed","closed":"2024-01-20T13:00:00Z","updated":"2024-01-20T13:00:00Z"}
161
+ {"id":"bd-a3f8.3","status":"in-progress","updated":"2024-01-20T13:30:00Z"}
162
+ {"id":"bd-a3f8.3","comments":[{"text":"Using HS256 algorithm, 24-hour expiry","timestamp":"2024-01-20T13:30:00Z"}],"updated":"2024-01-20T13:30:00Z"}
163
+ {"id":"bd-a3f8.3","status":"closed","closed":"2024-01-20T14:00:00Z","updated":"2024-01-20T14:00:00Z"}
164
+ ```
165
+
166
+ ## Step 10: Complete Final Task
167
+
168
+ ```bash
169
+ # With CLI
170
+ bd ready
171
+ ```
172
+
173
+ **Output**:
174
+ ```
175
+ bd-a3f8.4 Add login endpoint P1
176
+ ```
177
+
178
+ Now `bd-a3f8.4` is ready because both blockers are closed.
179
+
180
+ ```bash
181
+ # With CLI
182
+ bd update bd-a3f8.4 --status in-progress
183
+ bd comment bd-a3f8.4 "POST /api/auth/login endpoint created, returns JWT on success"
184
+ bd close bd-a3f8.4
185
+ ```
186
+
187
+ **Without CLI** - Append to `.beads/issues.jsonl`:
188
+
189
+ ```jsonl
190
+ {"id":"bd-a3f8.4","status":"in-progress","updated":"2024-01-20T14:30:00Z"}
191
+ {"id":"bd-a3f8.4","comments":[{"text":"POST /api/auth/login endpoint created, returns JWT on success","timestamp":"2024-01-20T14:30:00Z"}],"updated":"2024-01-20T14:30:00Z"}
192
+ {"id":"bd-a3f8.4","status":"closed","closed":"2024-01-20T15:00:00Z","updated":"2024-01-20T15:00:00Z"}
193
+ ```
194
+
195
+ ## Step 11: Close Epic
196
+
197
+ ```bash
198
+ # With CLI
199
+ bd close bd-a3f8
200
+ ```
201
+
202
+ **Without CLI** - Append to `.beads/issues.jsonl`:
203
+
204
+ ```jsonl
205
+ {"id":"bd-a3f8","status":"closed","closed":"2024-01-20T15:00:00Z","updated":"2024-01-20T15:00:00Z"}
206
+ ```
207
+
208
+ ## Final State
209
+
210
+ All tasks completed:
211
+
212
+ ```
213
+ ✓ bd-a3f8 User Authentication System
214
+ ✓ bd-a3f8.1 Add database schema
215
+ ✓ bd-a3f8.2 Add password hashing
216
+ ✓ bd-a3f8.3 Add JWT generation
217
+ ✓ bd-a3f8.4 Add login endpoint
218
+ ```
219
+
220
+ ## Viewing History
221
+
222
+ ```bash
223
+ # With CLI
224
+ bd show bd-a3f8.4
225
+ ```
226
+
227
+ **Output**:
228
+ ```
229
+ ID: bd-a3f8.4
230
+ Title: Add login endpoint
231
+ Status: closed
232
+ Priority: P1
233
+ Parent: bd-a3f8
234
+ Blocked by: bd-a3f8.2, bd-a3f8.3
235
+
236
+ Comments:
237
+ [2024-01-20 14:30] POST /api/auth/login endpoint created, returns JWT on success
238
+
239
+ Created: 2024-01-20 10:04
240
+ Closed: 2024-01-20 15:00
241
+ ```
242
+
243
+ ## AI Agent Workflow
244
+
245
+ ### Creating Tasks
246
+
247
+ ```
248
+ Create a Beads epic for "User Authentication System" with priority 0.
249
+ Then create 4 subtasks:
250
+ 1. Add database schema (P0)
251
+ 2. Add password hashing (P1)
252
+ 3. Add JWT generation (P1)
253
+ 4. Add login endpoint (P1)
254
+
255
+ Add dependencies:
256
+ - Tasks 2 and 3 depend on task 1
257
+ - Task 4 depends on tasks 2 and 3
258
+ ```
259
+
260
+ ### Finding Work
261
+
262
+ ```
263
+ What Beads tasks are ready to work on?
264
+ ```
265
+
266
+ ### Documenting Progress
267
+
268
+ ```
269
+ Update Beads task bd-a3f8.2 to in-progress.
270
+ Add comment: "Using bcrypt with cost factor 12"
271
+ ```
272
+
273
+ ### Completing Tasks
274
+
275
+ ```
276
+ Close Beads task bd-a3f8.2, password hashing is complete.
277
+ ```
278
+