ace-handbook 0.19.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.
- checksums.yaml +7 -0
- data/.ace-defaults/handbook/config.yml +4 -0
- data/.ace-defaults/nav/protocols/guide-sources/ace-handbook.yml +19 -0
- data/.ace-defaults/nav/protocols/tmpl-sources/ace-handbook.yml +10 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-handbook.yml +19 -0
- data/CHANGELOG.md +362 -0
- data/LICENSE +21 -0
- data/README.md +42 -0
- data/Rakefile +12 -0
- data/exe/ace-handbook +6 -0
- data/handbook/guides/ai-agent-integration.g.md +625 -0
- data/handbook/guides/atom-pattern.g.md +371 -0
- data/handbook/guides/changelog.g.md +333 -0
- data/handbook/guides/cli-dry-cli.g.md +276 -0
- data/handbook/guides/cli-support-cli.g.md +277 -0
- data/handbook/guides/coding-standards/ruby.md +41 -0
- data/handbook/guides/coding-standards/rust.md +19 -0
- data/handbook/guides/coding-standards/typescript.md +20 -0
- data/handbook/guides/coding-standards.g.md +134 -0
- data/handbook/guides/debug-troubleshooting.g.md +62 -0
- data/handbook/guides/error-handling/ruby.md +29 -0
- data/handbook/guides/error-handling/rust.md +59 -0
- data/handbook/guides/error-handling/typescript.md +38 -0
- data/handbook/guides/error-handling.g.md +207 -0
- data/handbook/guides/meta/agents-definition.g.md +823 -0
- data/handbook/guides/meta/guides-definition.g.md +322 -0
- data/handbook/guides/meta/markdown-definition.g.md +210 -0
- data/handbook/guides/meta/tools-definition.g.md +159 -0
- data/handbook/guides/meta/workflow-instructions-definition.g.md +367 -0
- data/handbook/guides/mono-repo-patterns.g.md +92 -0
- data/handbook/guides/multi-agent-research.g.md +251 -0
- data/handbook/guides/performance/ruby.md +25 -0
- data/handbook/guides/performance/rust.md +48 -0
- data/handbook/guides/performance/typescript.md +32 -0
- data/handbook/guides/performance.g.md +211 -0
- data/handbook/guides/prompt-caching.g.md +83 -0
- data/handbook/guides/quality-assurance/ruby.md +33 -0
- data/handbook/guides/quality-assurance/rust.md +41 -0
- data/handbook/guides/quality-assurance/typescript.md +49 -0
- data/handbook/guides/quality-assurance.g.md +222 -0
- data/handbook/guides/strategic-planning.g.md +69 -0
- data/handbook/guides/troubleshooting/ruby.md +21 -0
- data/handbook/guides/troubleshooting/rust.md +20 -0
- data/handbook/guides/troubleshooting/typescript.md +36 -0
- data/handbook/guides/workflow-context-embedding.g.md +286 -0
- data/handbook/skills/as-handbook-init-project/SKILL.md +34 -0
- data/handbook/skills/as-handbook-manage-agents/SKILL.md +35 -0
- data/handbook/skills/as-handbook-manage-guides/SKILL.md +35 -0
- data/handbook/skills/as-handbook-manage-workflows/SKILL.md +35 -0
- data/handbook/skills/as-handbook-parallel-research/SKILL.md +29 -0
- data/handbook/skills/as-handbook-perform-delivery/SKILL.md +35 -0
- data/handbook/skills/as-handbook-review-guides/SKILL.md +32 -0
- data/handbook/skills/as-handbook-review-workflows/SKILL.md +32 -0
- data/handbook/skills/as-handbook-synthesize-research/SKILL.md +29 -0
- data/handbook/skills/as-handbook-update-docs/SKILL.md +35 -0
- data/handbook/skills/as-release/SKILL.md +50 -0
- data/handbook/skills/as-release-bump-version/SKILL.md +28 -0
- data/handbook/skills/as-release-rubygems-publish/SKILL.md +58 -0
- data/handbook/skills/as-release-update-changelog/SKILL.md +28 -0
- data/handbook/templates/completed-work-documentation.md +59 -0
- data/handbook/templates/cookbooks/cookbook.template.md +237 -0
- data/handbook/templates/research-comparison.template.md +175 -0
- data/handbook/workflow-instructions/handbook/init-project.wf.md +629 -0
- data/handbook/workflow-instructions/handbook/manage-agents.wf.md +379 -0
- data/handbook/workflow-instructions/handbook/manage-guides.wf.md +294 -0
- data/handbook/workflow-instructions/handbook/manage-workflows.wf.md +292 -0
- data/handbook/workflow-instructions/handbook/parallel-research.wf.md +328 -0
- data/handbook/workflow-instructions/handbook/perform-delivery.wf.md +267 -0
- data/handbook/workflow-instructions/handbook/research.wf.md +247 -0
- data/handbook/workflow-instructions/handbook/review-guides.wf.md +348 -0
- data/handbook/workflow-instructions/handbook/review-workflows.wf.md +299 -0
- data/handbook/workflow-instructions/handbook/synthesize-research.wf.md +429 -0
- data/handbook/workflow-instructions/handbook/update-docs.wf.md +338 -0
- data/lib/ace/handbook/atoms/provider_registry.rb +70 -0
- data/lib/ace/handbook/cli/commands/status.rb +36 -0
- data/lib/ace/handbook/cli/commands/sync.rb +36 -0
- data/lib/ace/handbook/cli.rb +51 -0
- data/lib/ace/handbook/models/skill_document.rb +25 -0
- data/lib/ace/handbook/molecules/skill_projection.rb +54 -0
- data/lib/ace/handbook/organisms/provider_syncer.rb +106 -0
- data/lib/ace/handbook/organisms/skill_inventory.rb +54 -0
- data/lib/ace/handbook/organisms/status_collector.rb +181 -0
- data/lib/ace/handbook/version.rb +7 -0
- data/lib/ace/handbook.rb +28 -0
- metadata +227 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: guide
|
|
3
|
+
title: Writing Effective Workflow Instructions
|
|
4
|
+
purpose: Documentation for ace-handbook/handbook/guides/meta/workflow-instructions-definition.g.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-02-22
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Writing Effective Workflow Instructions
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
This guide explains how to create and structure the Markdown-based workflow instructions used by the AI agent within this project. Effective instructions are clear, specific, and provide sufficient context for the AI to perform tasks accurately and efficiently.
|
|
14
|
+
**Important:** These instructions are designed to be *read and followed by the AI agent*. They are not scripts to be executed directly in a shell. The user typically invokes a workflow by asking the agent to follow the steps outlined in a specific instruction file, often providing necessary inputs like file paths.
|
|
15
|
+
|
|
16
|
+
## Core Principles
|
|
17
|
+
|
|
18
|
+
1. **Clarity & Specificity**: Instructions should be unambiguous. Use clear action verbs and define expected inputs and outputs precisely. Avoid vague language.
|
|
19
|
+
2. **Self-Containment**: Each workflow should be independently executable without requiring external references. Embed all necessary templates, examples, and context directly within the workflow.
|
|
20
|
+
3. **Context Loading**: Include a `## Project Context Loading` section that lists specific files an AI agent should load before executing the workflow. This replaces the need for cross-workflow dependencies.
|
|
21
|
+
4. **Structured Format**: Use consistent Markdown sections:
|
|
22
|
+
- `## Goal` - Clear objective statement
|
|
23
|
+
- `## Prerequisites` - Required conditions
|
|
24
|
+
- `## Project Context Loading` - Files to load
|
|
25
|
+
- `## High-Level Execution Plan` - Planning and execution phases with checkboxes
|
|
26
|
+
- `## Process Steps` - Detailed implementation steps
|
|
27
|
+
- `## Success Criteria` - Validation points
|
|
28
|
+
5. **Embedded Content**: Instead of referencing external templates or guides, embed the essential content directly. This includes:
|
|
29
|
+
- Template structures
|
|
30
|
+
- Example commands
|
|
31
|
+
- Common patterns
|
|
32
|
+
- Format specifications
|
|
33
|
+
6. **Focus**: Each workflow instruction should address a single, well-defined process or goal. Complex workflows should still be self-contained rather than split into sub-workflows.
|
|
34
|
+
7. **Examples**: Provide concrete examples of inputs, outputs, or expected results inline. Embed template content rather than referencing external files.
|
|
35
|
+
8. **Planning Before Execution**: Include a high-level execution plan with planning and execution phases, using checkboxes for task tracking during workflow execution.
|
|
36
|
+
|
|
37
|
+
## Handling Technology-Specific Content
|
|
38
|
+
|
|
39
|
+
Workflow instructions should be self-contained while remaining practical across different technology stacks. This is achieved through embedded examples and patterns rather than external references.
|
|
40
|
+
|
|
41
|
+
### Embedding Technology Examples
|
|
42
|
+
|
|
43
|
+
When dealing with technology-specific content:
|
|
44
|
+
|
|
45
|
+
1. **Embed Common Examples**: Include examples for multiple common technologies directly in the workflow:
|
|
46
|
+
```markdown
|
|
47
|
+
### Common Test Commands
|
|
48
|
+
- Ruby: `bundle exec rspec`
|
|
49
|
+
- Node.js: `npm test`
|
|
50
|
+
- Python: `pytest`
|
|
51
|
+
- Rust: `cargo test`
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
2. **Use Inline Pattern Sections**: Create sections that show patterns for different stacks:
|
|
55
|
+
```markdown
|
|
56
|
+
### Version File Locations
|
|
57
|
+
- Node.js: `package.json`
|
|
58
|
+
- Ruby: `*.gemspec` or `lib/*/version.rb`
|
|
59
|
+
- Python: `setup.py` or `pyproject.toml`
|
|
60
|
+
- Rust: `Cargo.toml`
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
3. **Provide Template Adaptations**: When embedding templates, show variations:
|
|
64
|
+
```markdown
|
|
65
|
+
### Build Commands
|
|
66
|
+
```bash
|
|
67
|
+
# TODO: Replace with project-specific build command
|
|
68
|
+
# Examples:
|
|
69
|
+
# - Ruby: bundle install
|
|
70
|
+
# - Node.js: npm install && npm run build
|
|
71
|
+
# - Python: pip install -r requirements.txt
|
|
72
|
+
# - Rust: cargo build --release
|
|
73
|
+
```
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
This approach ensures workflows remain self-contained and immediately usable without external lookups, while providing practical guidance for different technology stacks.
|
|
77
|
+
|
|
78
|
+
## Standard Workflow Instruction Structure
|
|
79
|
+
|
|
80
|
+
All workflow instructions should follow this standardized structure for consistency and self-containment:
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
# [Workflow Name] Workflow Instruction
|
|
84
|
+
|
|
85
|
+
## Goal
|
|
86
|
+
|
|
87
|
+
Clearly state the primary objective of this workflow. What problem does it solve or what process does it facilitate?
|
|
88
|
+
|
|
89
|
+
## Prerequisites
|
|
90
|
+
|
|
91
|
+
- List any conditions that must be met before starting
|
|
92
|
+
- Required tools, permissions, or project state
|
|
93
|
+
- Do NOT reference other workflows that must be run first
|
|
94
|
+
|
|
95
|
+
## Project Context Loading
|
|
96
|
+
|
|
97
|
+
* Load project objectives: `docs/vision.md`
|
|
98
|
+
* Load architecture: `docs/architecture.md`
|
|
99
|
+
* Load current release: `dev-taskflow/current/*/`
|
|
100
|
+
* [Other specific files relevant to this workflow]
|
|
101
|
+
|
|
102
|
+
## High-Level Execution Plan
|
|
103
|
+
|
|
104
|
+
### Planning Phase
|
|
105
|
+
* [ ] [Planning step 1]
|
|
106
|
+
* [ ] [Planning step 2]
|
|
107
|
+
* [ ] [Planning step 3]
|
|
108
|
+
|
|
109
|
+
### Execution Phase
|
|
110
|
+
- [ ] [Execution step 1]
|
|
111
|
+
- [ ] [Execution step 2]
|
|
112
|
+
- [ ] [Execution step 3]
|
|
113
|
+
|
|
114
|
+
## Process Steps
|
|
115
|
+
|
|
116
|
+
1. **Step Name**: Detailed description
|
|
117
|
+
* Sub-steps with specific actions
|
|
118
|
+
* Embed any necessary templates or examples here
|
|
119
|
+
* Include commands inline rather than referencing external docs
|
|
120
|
+
|
|
121
|
+
2. **Step Name**: Next major step
|
|
122
|
+
```bash
|
|
123
|
+
# Example commands embedded directly
|
|
124
|
+
bin/test
|
|
125
|
+
bin/lint
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Embedded Templates
|
|
129
|
+
|
|
130
|
+
### Template Name
|
|
131
|
+
```markdown
|
|
132
|
+
[Complete template content embedded here]
|
|
133
|
+
[No external references]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Another Template
|
|
137
|
+
```yaml
|
|
138
|
+
[Full template structure]
|
|
139
|
+
[All fields documented]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Success Criteria
|
|
143
|
+
|
|
144
|
+
- Clear, verifiable outcomes listed as simple bullets
|
|
145
|
+
- No checkboxes in success criteria
|
|
146
|
+
- Focus on what should exist or be true after completion
|
|
147
|
+
- Each criterion should be objectively verifiable
|
|
148
|
+
|
|
149
|
+
## Common Patterns
|
|
150
|
+
|
|
151
|
+
### Pattern 1
|
|
152
|
+
[Description and example embedded]
|
|
153
|
+
|
|
154
|
+
### Pattern 2
|
|
155
|
+
[Description and example embedded]
|
|
156
|
+
|
|
157
|
+
## Best Practices
|
|
158
|
+
|
|
159
|
+
**DO:**
|
|
160
|
+
- [Specific practices for this workflow]
|
|
161
|
+
- [Common successful approaches]
|
|
162
|
+
|
|
163
|
+
**DON'T:**
|
|
164
|
+
- [Common pitfalls to avoid]
|
|
165
|
+
- [Anti-patterns specific to this workflow]
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## File Naming Convention
|
|
169
|
+
|
|
170
|
+
All workflow instruction files must use the `.wf.md` suffix to distinguish them from guides (which use `.g.md`). This convention enables proper editor configuration and clear separation of content types.
|
|
171
|
+
|
|
172
|
+
### Naming Pattern
|
|
173
|
+
- **Format:** Use the pattern `<verb>-<context>.wf.md`.
|
|
174
|
+
- `<verb>`: Represents the primary action or purpose of the workflow (e.g., `commit`, `fix`, `prepare`, `release`, `run`, `work-on`).
|
|
175
|
+
- `<context>`: Provides specific context for the action (e.g., `tests`, `tasks`, `task`).
|
|
176
|
+
- **Style:** Use verb-first naming that describes what action the workflow performs
|
|
177
|
+
- **Prefix:** Avoid prefixes like `lets-`. Files previously using this prefix should be renamed.
|
|
178
|
+
- **Examples:**
|
|
179
|
+
- `commit.wf.md`
|
|
180
|
+
- `fix-tests.wf.md`
|
|
181
|
+
- `prepare-tasks.wf.md`
|
|
182
|
+
- `release.wf.md`
|
|
183
|
+
- `work-on-task.wf.md`
|
|
184
|
+
|
|
185
|
+
### Contrast with Guides
|
|
186
|
+
Unlike guides (`.g.md` files) which use noun-based naming to describe knowledge areas:
|
|
187
|
+
- **Workflows** describe processes to execute: `commit.wf.md`, `fix-tests.wf.md`
|
|
188
|
+
- **Guides** document standards and knowledge: `security.g.md`, `performance.g.md`
|
|
189
|
+
|
|
190
|
+
This naming distinction helps both humans and AI agents quickly identify whether a file provides executable instructions (workflow) or reference information (guide).
|
|
191
|
+
|
|
192
|
+
## Examples from This Project
|
|
193
|
+
|
|
194
|
+
Review these refactored workflow instructions that demonstrate self-containment principles:
|
|
195
|
+
|
|
196
|
+
### Context Loading Example
|
|
197
|
+
`wfi://bundle` (project context loading):
|
|
198
|
+
- Includes explicit file loading instructions
|
|
199
|
+
- No external workflow dependencies
|
|
200
|
+
- Clear context gathering steps
|
|
201
|
+
|
|
202
|
+
### Embedded Templates Example
|
|
203
|
+
`wfi://handbook/init-project`:
|
|
204
|
+
- Contains complete PRD, README, and architecture templates
|
|
205
|
+
- Embeds all binstub scripts
|
|
206
|
+
- Includes full v.0.0.0 release structure
|
|
207
|
+
|
|
208
|
+
### Simplified Process Example
|
|
209
|
+
`wfi://task/draft`:
|
|
210
|
+
- Unified approach for all input types
|
|
211
|
+
- Embedded task template
|
|
212
|
+
- No sub-workflow dependencies
|
|
213
|
+
|
|
214
|
+
### Command Reference Example
|
|
215
|
+
`wfi://release/publish`:
|
|
216
|
+
- Embeds package registry commands for all major platforms
|
|
217
|
+
- Includes changelog format specification
|
|
218
|
+
- Contains complete release process without external references
|
|
219
|
+
|
|
220
|
+
## Key Refactoring Principles
|
|
221
|
+
|
|
222
|
+
When refactoring workflows for independence:
|
|
223
|
+
|
|
224
|
+
1. **Embed, Don't Reference**: Copy essential content from guides into workflows
|
|
225
|
+
2. **Explicit Context Loading**: List specific files to load at the start
|
|
226
|
+
3. **Include All Templates**: Embed complete templates rather than referencing them
|
|
227
|
+
4. **Provide Multiple Examples**: Show patterns for different technology stacks
|
|
228
|
+
5. **Self-Contained Commands**: Include full command examples inline
|
|
229
|
+
6. **Remove Cross-Dependencies**: No workflow should require another workflow to run first
|
|
230
|
+
|
|
231
|
+
## See Also
|
|
232
|
+
|
|
233
|
+
- [Embedding Tests in AI Agent Workflows](./workflow-instructions-embedding-tests.g.md)
|
|
234
|
+
|
|
235
|
+
## Writing Style Tips
|
|
236
|
+
|
|
237
|
+
* **Use Action Verbs:** Start steps with clear verbs (e.g., "Create", "Update", "Verify", "Parse", "Generate").
|
|
238
|
+
* **Be Concise:** Avoid unnecessary jargon or overly long explanations.
|
|
239
|
+
* **Embed Content:** Instead of referencing external guides or templates, embed the essential content directly in the workflow. This ensures self-containment.
|
|
240
|
+
* **List Context Files:** In the Project Context Loading section, use root-relative paths to list files the AI should load before starting (e.g., `docs/architecture.md`, `dev-taskflow/current/*/`).
|
|
241
|
+
* **Treat AI as a "Junior Developer":** Provide clear, step-by-step guidance, but also reference established project standards and expect the AI to follow them once pointed to them. Avoid ambiguity.
|
|
242
|
+
|
|
243
|
+
## List Formatting in Workflows
|
|
244
|
+
|
|
245
|
+
Workflow instructions use simple bullet points and numbered lists, avoiding interactive checkboxes except in templates and examples. Understanding proper formatting is crucial for effective AI agent interaction.
|
|
246
|
+
|
|
247
|
+
### ✅ Success Criteria: Use Simple Bullet Points
|
|
248
|
+
|
|
249
|
+
**Post-Execution Validation:**
|
|
250
|
+
```markdown
|
|
251
|
+
## Success Criteria
|
|
252
|
+
- All specified files have been created in the correct locations
|
|
253
|
+
- Configuration changes are applied and verified
|
|
254
|
+
- Tests pass and coverage requirements are met
|
|
255
|
+
- Documentation has been updated to reflect changes
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
These criteria serve as a **validation list** to confirm the workflow was completed successfully. They should:
|
|
259
|
+
- Be specific and verifiable
|
|
260
|
+
- Focus on outcomes rather than process steps
|
|
261
|
+
- Allow manual verification by humans or agents
|
|
262
|
+
- Be written as simple bullet points, never as interactive checkboxes
|
|
263
|
+
|
|
264
|
+
### ❌ Never Use Checkboxes in Workflow Content
|
|
265
|
+
|
|
266
|
+
**Don't use checkboxes for any workflow content:**
|
|
267
|
+
```markdown
|
|
268
|
+
<!-- DON'T DO THIS -->
|
|
269
|
+
## Process Steps
|
|
270
|
+
- [ ] Run the command `bin/setup`
|
|
271
|
+
- [ ] Edit the configuration file
|
|
272
|
+
- [ ] Test the changes
|
|
273
|
+
|
|
274
|
+
## Success Criteria
|
|
275
|
+
- [ ] Configuration is updated
|
|
276
|
+
- [ ] Tests pass
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Instead, use numbered steps for processes and simple bullets for criteria:
|
|
280
|
+
```markdown
|
|
281
|
+
<!-- DO THIS -->
|
|
282
|
+
## Process Steps
|
|
283
|
+
|
|
284
|
+
1. **Initialize Setup**: Run the setup command
|
|
285
|
+
```bash
|
|
286
|
+
bin/setup
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
2. **Configure System**: Edit the configuration file
|
|
290
|
+
- Update the API endpoint URL
|
|
291
|
+
- Set the appropriate timeout values
|
|
292
|
+
|
|
293
|
+
3. **Validate Changes**: Test the configuration
|
|
294
|
+
```bash
|
|
295
|
+
bin/test --config
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## Success Criteria
|
|
299
|
+
- Configuration is properly updated
|
|
300
|
+
- All tests pass successfully
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### ✅ Appropriate Checkbox Use: Templates and Examples Only
|
|
304
|
+
|
|
305
|
+
Checkboxes are appropriate **only** when:
|
|
306
|
+
- Documenting task template formats (showing what task files should contain)
|
|
307
|
+
- Providing copyable templates for users
|
|
308
|
+
- Giving examples of syntax in documentation
|
|
309
|
+
|
|
310
|
+
```markdown
|
|
311
|
+
## Example: When documenting task structure
|
|
312
|
+
Tasks should include execution steps formatted like this:
|
|
313
|
+
- [ ] Step 1: Implement feature
|
|
314
|
+
- [ ] Step 2: Add tests
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Agent Interaction Guidelines
|
|
318
|
+
|
|
319
|
+
**Success Criteria Lists:**
|
|
320
|
+
- Are meant for **post-execution validation** only
|
|
321
|
+
- Should always be written as simple bullet points
|
|
322
|
+
- Serve as verification criteria to confirm completion
|
|
323
|
+
- Help users and agents validate the workflow outcome
|
|
324
|
+
- Never use interactive checkboxes
|
|
325
|
+
|
|
326
|
+
## Workflow Independence Principles
|
|
327
|
+
|
|
328
|
+
### Self-Containment Requirements
|
|
329
|
+
|
|
330
|
+
Every workflow must be independently executable:
|
|
331
|
+
|
|
332
|
+
1. **No Cross-Workflow Dependencies**: Never require another workflow to be run first. Instead, list prerequisites as conditions that should exist.
|
|
333
|
+
|
|
334
|
+
2. **Embedded Essential Content**: Include all necessary information within the workflow:
|
|
335
|
+
- Template structures
|
|
336
|
+
- Command examples
|
|
337
|
+
- Format specifications
|
|
338
|
+
- Common patterns
|
|
339
|
+
|
|
340
|
+
3. **Explicit Context Loading**: Replace implicit dependencies with explicit file loading:
|
|
341
|
+
```markdown
|
|
342
|
+
## Project Context Loading
|
|
343
|
+
* Load project structure: `docs/blueprint.md`
|
|
344
|
+
* Load current tasks: `dev-taskflow/current/*/tasks/*.md`
|
|
345
|
+
* Check existing PRD: `PRD.md` or `README.md`
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
4. **Complete Process Coverage**: Ensure the workflow contains everything needed from start to finish without external lookups.
|
|
349
|
+
|
|
350
|
+
### Migration from Dependent to Independent
|
|
351
|
+
|
|
352
|
+
When refactoring existing workflows:
|
|
353
|
+
|
|
354
|
+
1. **Identify External References**: Find all links to guides, templates, or other workflows
|
|
355
|
+
2. **Extract Essential Content**: Copy the necessary information into the workflow
|
|
356
|
+
3. **Convert Prerequisites**: Change "Run X workflow first" to "Ensure Y exists"
|
|
357
|
+
4. **Embed Templates**: Include complete template content rather than linking
|
|
358
|
+
5. **Add Context Loading**: List specific files to load at the beginning
|
|
359
|
+
|
|
360
|
+
**Process Steps:**
|
|
361
|
+
- Should be numbered for sequential execution
|
|
362
|
+
- May contain embedded tests or verification commands
|
|
363
|
+
- Focus on actions and commands to execute
|
|
364
|
+
- Use clear, imperative language
|
|
365
|
+
- Never use checkboxes
|
|
366
|
+
|
|
367
|
+
By following these guidelines, we can create a robust set of workflow instructions that effectively guide the AI agent, leading to more predictable and efficient development outcomes.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: guide
|
|
3
|
+
title: Mono-Repo Development Patterns
|
|
4
|
+
purpose: Documentation for ace-handbook/handbook/guides/mono-repo-patterns.g.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-18
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Mono-Repo Development Patterns
|
|
11
|
+
|
|
12
|
+
Patterns for developing ACE gems within the mono-repo structure.
|
|
13
|
+
|
|
14
|
+
## Gemfile vs Gemspec
|
|
15
|
+
|
|
16
|
+
Individual gems do NOT have their own `Gemfile`. The mono-repo uses a single root `Gemfile` for all development.
|
|
17
|
+
|
|
18
|
+
| File | Location | Purpose |
|
|
19
|
+
|------|----------|---------|
|
|
20
|
+
| `Gemfile` | Root only | Development dependencies for entire mono-repo |
|
|
21
|
+
| `*.gemspec` | Each gem | Runtime dependencies for gem distribution |
|
|
22
|
+
|
|
23
|
+
**Why no per-gem Gemfile?**
|
|
24
|
+
- All gems developed together in mono-repo context
|
|
25
|
+
- Root Gemfile includes all gems as path dependencies
|
|
26
|
+
- `ace-test` and binstubs use root Gemfile
|
|
27
|
+
- CI uses root Gemfile
|
|
28
|
+
- Simplifies dependency management and version consistency
|
|
29
|
+
|
|
30
|
+
## bin/ vs exe/ Distinction
|
|
31
|
+
|
|
32
|
+
| Directory | Purpose |
|
|
33
|
+
|-----------|---------|
|
|
34
|
+
| `bin/` | Mono-repo development binstubs for running executables without installation |
|
|
35
|
+
| `exe/` | Gem distribution executables that get installed with the gem |
|
|
36
|
+
|
|
37
|
+
**Pattern**: bin/ wrappers use root Gemfile, exe/ uses gem's own gemspec dependencies.
|
|
38
|
+
|
|
39
|
+
## Mono-Repo Binstub Pattern
|
|
40
|
+
|
|
41
|
+
```ruby
|
|
42
|
+
#!/usr/bin/env ruby
|
|
43
|
+
# frozen_string_literal: true
|
|
44
|
+
|
|
45
|
+
# Wrapper script to run ace-gem with proper bundler context
|
|
46
|
+
require "pathname"
|
|
47
|
+
|
|
48
|
+
# Find the ace root directory
|
|
49
|
+
ace_meta_root = Pathname.new(__FILE__).dirname.parent.realpath
|
|
50
|
+
|
|
51
|
+
# Set the Gemfile location
|
|
52
|
+
ENV["BUNDLE_GEMFILE"] = ace_meta_root.join("Gemfile").to_s
|
|
53
|
+
|
|
54
|
+
# Load bundler
|
|
55
|
+
require "bundler/setup"
|
|
56
|
+
|
|
57
|
+
# Now require and run the actual ace-gem executable
|
|
58
|
+
load ace_meta_root.join("ace-gem/exe/ace-gem").to_s
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Development Workflow
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Run any ace gem directly without installation
|
|
65
|
+
./bin/ace-gem --help
|
|
66
|
+
./bin/ace-search --query "pattern"
|
|
67
|
+
./bin/ace-git-worktree --task 123
|
|
68
|
+
|
|
69
|
+
# All binstubs use root Gemfile for consistent environment
|
|
70
|
+
# No need to install gems locally during development
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Production Examples
|
|
74
|
+
|
|
75
|
+
| Binstub | Wraps |
|
|
76
|
+
|---------|-------|
|
|
77
|
+
| `bin/ace-docs` | `ace-docs/exe/ace-docs` |
|
|
78
|
+
| `bin/ace-search` | `ace-search/exe/ace-search` |
|
|
79
|
+
| `bin/ace-lint` | `ace-lint/exe/ace-lint` |
|
|
80
|
+
| `bin/ace-git-worktree` | `ace-git-worktree/exe/ace-git-worktree` |
|
|
81
|
+
|
|
82
|
+
## Adding a New Gem
|
|
83
|
+
|
|
84
|
+
1. Create gem directory at repo root: `ace-new-gem/`
|
|
85
|
+
2. Add path dependency to root Gemfile: `gem "ace-new-gem", path: "ace-new-gem"`
|
|
86
|
+
3. Create binstub in `bin/ace-new-gem` using pattern above
|
|
87
|
+
4. Run `bundle install` from repo root
|
|
88
|
+
|
|
89
|
+
## Related
|
|
90
|
+
|
|
91
|
+
- [ADR-015](../../../docs/decisions/ADR-015-mono-repo-ace-gems-migration.md) - Mono-repo migration decision
|
|
92
|
+
- [ace-gems.g.md](../../../docs/ace-gems.g.md) - Gem development overview
|