docopslab-dev 0.2.0 → 0.3.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 +4 -4
- data/README.adoc +42 -11
- data/docopslab-dev.gemspec +2 -2
- data/lib/docopslab/dev/docker_aware.rb +40 -0
- data/lib/docopslab/dev/initializer.rb +21 -7
- data/lib/docopslab/dev/library.rb +14 -1
- data/lib/docopslab/dev/linters.rb +10 -3
- data/lib/docopslab/dev/version.rb +1 -1
- data/lib/docopslab/dev.rb +2 -1
- data/specs/data/default-manifest.yml +8 -0
- metadata +4 -38
- data/docs/agent/index.md +0 -76
- data/docs/agent/misc/bash-styles.md +0 -470
- data/docs/agent/missions/conduct-release.md +0 -298
- data/docs/agent/missions/setup-new-project.md +0 -344
- data/docs/agent/roles/devops-release-engineer.md +0 -195
- data/docs/agent/roles/docops-engineer.md +0 -257
- data/docs/agent/roles/planner-architect.md +0 -96
- data/docs/agent/roles/product-engineer.md +0 -201
- data/docs/agent/roles/product-manager.md +0 -163
- data/docs/agent/roles/project-manager.md +0 -175
- data/docs/agent/roles/qa-testing-engineer.md +0 -149
- data/docs/agent/roles/tech-docs-manager.md +0 -189
- data/docs/agent/roles/tech-writer.md +0 -217
- data/docs/agent/skills/asciidoc.md +0 -436
- data/docs/agent/skills/bash-cli-dev.md +0 -135
- data/docs/agent/skills/code-commenting.md +0 -384
- data/docs/agent/skills/fix-broken-links.md +0 -354
- data/docs/agent/skills/fix-jekyll-asciidoc-build-errors.md +0 -14
- data/docs/agent/skills/fix-spelling-issues.md +0 -10
- data/docs/agent/skills/git.md +0 -205
- data/docs/agent/skills/github-issues.md +0 -174
- data/docs/agent/skills/product-release-rollback-and-patching.md +0 -71
- data/docs/agent/skills/rake-cli-dev.md +0 -57
- data/docs/agent/skills/readme-driven-dev.md +0 -14
- data/docs/agent/skills/release-history.md +0 -23
- data/docs/agent/skills/ruby.md +0 -203
- data/docs/agent/skills/schemagraphy-sgyml.md +0 -21
- data/docs/agent/skills/tests-running.md +0 -33
- data/docs/agent/skills/tests-writing.md +0 -68
- data/docs/agent/skills/write-the-docs.md +0 -116
- data/docs/agent/topics/common-project-paths.md +0 -169
- data/docs/agent/topics/dev-tooling-usage.md +0 -195
- data/docs/agent/topics/devops-ci-cd.md +0 -57
- data/docs/agent/topics/product-docs-deployment.md +0 -31
- data/docs/library-readme.adoc +0 -39
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
# MISSION: Conduct a Product Release
|
|
2
|
-
|
|
3
|
-
This document is intended for AI agents operating within a DocOps Lab environment.
|
|
4
|
-
|
|
5
|
-
Original sources for this document include:
|
|
6
|
-
|
|
7
|
-
<!-- detect the origin url based on the slug (origin) -->
|
|
8
|
-
- [Release Process (General)](/docs/release/)
|
|
9
|
-
|
|
10
|
-
An AI Agent or multiple Agents, in collaboration with a human Operator, can execute the release procedure for a DocOps Lab project/product.
|
|
11
|
-
|
|
12
|
-
This mission covers the entire process from pre-flight checks to post-release cleanup.
|
|
13
|
-
|
|
14
|
-
Check the `README.adoc` or `docs/**/release.adoc` file specific to the project you are releasing for specific procedures.
|
|
15
|
-
|
|
16
|
-
Table of Contents
|
|
17
|
-
|
|
18
|
-
- Agent Roles
|
|
19
|
-
- Context Management for Multi-role Sessions
|
|
20
|
-
- Task Assignments and Suggestions
|
|
21
|
-
- Prerequisite: Attention OPERATOR
|
|
22
|
-
- Mission Procedure
|
|
23
|
-
- Stage 0: Mission Prep
|
|
24
|
-
- Evergreen Tasks
|
|
25
|
-
- Stage 1: Pre-flight Checks
|
|
26
|
-
- Stage 2: Release History
|
|
27
|
-
- Stage 3: Merge and Tag
|
|
28
|
-
- Stage 4: Release Announcement
|
|
29
|
-
- Stage 5: Artifact Publication
|
|
30
|
-
- Stage 6: Post-Release Tests & Cleanup
|
|
31
|
-
- Post-mission Debriefing
|
|
32
|
-
- Fulfillment Principles
|
|
33
|
-
- ALWAYS
|
|
34
|
-
- NEVER
|
|
35
|
-
- Quality Bar
|
|
36
|
-
|
|
37
|
-
## Agent Roles
|
|
38
|
-
|
|
39
|
-
The following agent roles will take a turn at steps in this mission.
|
|
40
|
-
|
|
41
|
-
<dl>
|
|
42
|
-
<dt class="hdlist1">devops/release engineer</dt>
|
|
43
|
-
<dd>
|
|
44
|
-
Execute the technical steps of the release, including git operations, tagging, and artifact publication.
|
|
45
|
-
</dd>
|
|
46
|
-
<dt class="hdlist1">project manager</dt>
|
|
47
|
-
<dd>
|
|
48
|
-
Oversee the release process, ensure conditions are met, and handle communications.
|
|
49
|
-
</dd>
|
|
50
|
-
<dt class="hdlist1">tech writer</dt>
|
|
51
|
-
<dd>
|
|
52
|
-
Prepare release notes and ensure documentation is up to date.
|
|
53
|
-
</dd>
|
|
54
|
-
</dl>
|
|
55
|
-
|
|
56
|
-
### Context Management for Multi-role Sessions
|
|
57
|
-
|
|
58
|
-
By default will be up to the Agent to decide whether to hand off to a concurrent or subsequent Agent or “upgrade” role/skills during a session.
|
|
59
|
-
|
|
60
|
-
The Operator may of course dictate or override this decision.
|
|
61
|
-
|
|
62
|
-
The goal is to use appropriate agents without cluttering any given agent’s context window.
|
|
63
|
-
|
|
64
|
-
<dl>
|
|
65
|
-
<dt class="hdlist1">Soft-reset between roles</dt>
|
|
66
|
-
<dd>
|
|
67
|
-
At each transition, declare what you’re loading (role doc + skills) and what you’re backgrounding. Don’t hold all previous stage details in active memory.
|
|
68
|
-
</dd>
|
|
69
|
-
<dt class="hdlist1">Mission tracker as swap file</dt>
|
|
70
|
-
<dd>
|
|
71
|
-
Dump detailed handoff notes into `.agent/project-setup-mission.md` after each stage. Read it first when starting new roles to understand what was built and what’s needed.
|
|
72
|
-
</dd>
|
|
73
|
-
<dt class="hdlist1">Checkpoint between stages</dt>
|
|
74
|
-
<dd>
|
|
75
|
-
After each stage, ask Operator to review/continue/pause. Creates intervention points if focus dilutes.
|
|
76
|
-
</dd>
|
|
77
|
-
<dt class="hdlist1">Watch for dilution</dt>
|
|
78
|
-
<dd>
|
|
79
|
-
Mixing concerns across roles, contradicting earlier decisions, hedging instead of checking files. If noticed, stop and checkpoint.
|
|
80
|
-
</dd>
|
|
81
|
-
<dt class="hdlist1">Focused lenses</dt>
|
|
82
|
-
<dd>
|
|
83
|
-
Each role emphasizes different details (Product Engineer = code structure, QA = test coverage, DevOps = automation, PM = coordination). Switch lenses deliberately; shared base knowledge (README, goals, conventions) stays warm.
|
|
84
|
-
</dd>
|
|
85
|
-
</dl>
|
|
86
|
-
|
|
87
|
-
### Task Assignments and Suggestions
|
|
88
|
-
|
|
89
|
-
In the Mission Procedures section, metadata is associated with each task.
|
|
90
|
-
|
|
91
|
-
All tasks are assigned a preferred `role:` the Agent should assume in carrying out the task. That role has further documentation at `.agent/docs/roles/<role-slug>.md`, and the executing agent should ingest that document entirely before proceeding.
|
|
92
|
-
|
|
93
|
-
Recommended collaborators are indicated by `with:`.
|
|
94
|
-
|
|
95
|
-
Recommended upgrades are designated by `upto:`.
|
|
96
|
-
|
|
97
|
-
Suggested skill/topic readings are indicated by `read:`.
|
|
98
|
-
|
|
99
|
-
Any working directories or files are listed in `path:`.
|
|
100
|
-
|
|
101
|
-
## Prerequisite: Attention OPERATOR
|
|
102
|
-
|
|
103
|
-
This process requires the `docopslab-dev` tooling is installed and synced. Ensure you have the necessary credentials for GitHub and any artifact registries (RubyGems, DockerHub, etc.).
|
|
104
|
-
|
|
105
|
-
## Mission Procedure
|
|
106
|
-
|
|
107
|
-
In general, the following stages are to be followed in order and tracked in a mission document.
|
|
108
|
-
|
|
109
|
-
### Stage 0: Mission Prep
|
|
110
|
-
|
|
111
|
-
<dl>
|
|
112
|
-
<dt class="hdlist1">Create a mission-tracking document</dt>
|
|
113
|
-
<dd>
|
|
114
|
-
Write a document with detailed steps for fulfilling the mission assigned here, based on any project-specific context. (`role: project-manager; path: .agent/release-mission.md`)
|
|
115
|
-
</dd>
|
|
116
|
-
</dl>
|
|
117
|
-
|
|
118
|
-
### Evergreen Tasks
|
|
119
|
-
|
|
120
|
-
The following tasks apply to most stages.
|
|
121
|
-
|
|
122
|
-
<dl>
|
|
123
|
-
<dt class="hdlist1">Keep the mission-tracking document up to date</dt>
|
|
124
|
-
<dd>
|
|
125
|
-
At the end of every stage, update the progress. (`path: .agent/release-mission.md`)
|
|
126
|
-
</dd>
|
|
127
|
-
</dl>
|
|
128
|
-
|
|
129
|
-
### Stage 1: Pre-flight Checks
|
|
130
|
-
|
|
131
|
-
<dl>
|
|
132
|
-
<dt class="hdlist1">Verify conditions</dt>
|
|
133
|
-
<dd>
|
|
134
|
-
Ensure the "Definition of Done" is met.
|
|
135
|
-
|
|
136
|
-
- <input type="checkbox" data-item-complete="0"> All target issues are closed.
|
|
137
|
-
|
|
138
|
-
- <input type="checkbox" data-item-complete="0"> CI builds and tests pass on `dev/<$tok.majmin>`.
|
|
139
|
-
|
|
140
|
-
- <input type="checkbox" data-item-complete="0"> Documentation updated and merged. (`role: devops-release-engineer; upto: project-manager; with: Operator`)
|
|
141
|
-
</dd>
|
|
142
|
-
<dt class="hdlist1">Manual double-checks</dt>
|
|
143
|
-
<dd>
|
|
144
|
-
Perform the following checks before proceeding.
|
|
145
|
-
|
|
146
|
-
- <input type="checkbox" data-item-complete="0"> No local paths in `Gemfile`.
|
|
147
|
-
|
|
148
|
-
- <input type="checkbox" data-item-complete="0"> All documentation changes merged.
|
|
149
|
-
|
|
150
|
-
- <input type="checkbox" data-item-complete="0"> Version attribute bumped and propagated. (`role: project-manager; with: Operator`)
|
|
151
|
-
</dd>
|
|
152
|
-
</dl>
|
|
153
|
-
|
|
154
|
-
### Stage 2: Release History
|
|
155
|
-
|
|
156
|
-
<dl>
|
|
157
|
-
<dt class="hdlist1">Prepare Release Notes doc</dt>
|
|
158
|
-
<dd>
|
|
159
|
-
Generate and refine the release history.
|
|
160
|
-
|
|
161
|
-
Generate release notes and changelog using ReleaseHx.
|
|
162
|
-
</dd>
|
|
163
|
-
</dl>
|
|
164
|
-
|
|
165
|
-
> **NOTE:** Most projects use ReleaseHx in a unique manner, for diverse testing of its output options. See the project’s `README.adoc`; seek for `releasehx`.
|
|
166
|
-
|
|
167
|
-
The default procedure if not otherwise specified:
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
bundle update releasehx
|
|
171
|
-
bundle exec rhx <$tok.majmin>.<$tok.patch> --md docs/release/<$tok.majmin>.<$tok.patch>.md
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
Edit the Markdown file at `docs/release/<$tok.majmin>.<$tok.patch>.md`.
|
|
175
|
-
|
|
176
|
-
(`role: devops-release-engineer; upto: tech-writer; with: Operator; read: .agent/docs/skills/release-history.md`)
|
|
177
|
-
|
|
178
|
-
### Stage 3: Merge and Tag
|
|
179
|
-
|
|
180
|
-
<dl>
|
|
181
|
-
<dt class="hdlist1">Merge the dev branch to `main``</dt>
|
|
182
|
-
<dd>
|
|
183
|
-
Merge the development branch into the main branch.
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
git checkout main
|
|
187
|
-
git pull origin main
|
|
188
|
-
git merge --no-ff dev/<$tok.majmin>
|
|
189
|
-
git push origin main
|
|
190
|
-
```
|
|
191
|
-
</dd>
|
|
192
|
-
<dt class="hdlist1">Tag the release</dt>
|
|
193
|
-
<dd>
|
|
194
|
-
Create and push the release tag.
|
|
195
|
-
|
|
196
|
-
```
|
|
197
|
-
git tag -a v<$tok.majmin>.<$tok.patch> -m "Release <$tok.majmin>.<$tok.patch>"
|
|
198
|
-
git push origin v<$tok.majmin>.<$tok.patch>
|
|
199
|
-
```
|
|
200
|
-
</dd>
|
|
201
|
-
</dl>
|
|
202
|
-
|
|
203
|
-
### Stage 4: Release Announcement
|
|
204
|
-
|
|
205
|
-
<dl>
|
|
206
|
-
<dt class="hdlist1">Create GitHub release</dt>
|
|
207
|
-
<dd>
|
|
208
|
-
Publish the release on GitHub.
|
|
209
|
-
|
|
210
|
-
Use the GitHub CLI to create a release:
|
|
211
|
-
</dd>
|
|
212
|
-
</dl>
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
gh release create v<$tok.majmin>.<$tok.patch> --title "Release <$tok.majmin>.<$tok.patch>" --notes-file docs/releases/<$tok.majmin>.<$tok.patch>.md --target main
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
Or else use the GitHub web interface to manually register the release, and copy/paste the contents of `docs/release/<$tok.majmin>.<$tok.patch>.md` into the release notes field. (`role: project-manager; with: devops-release-engineer`)
|
|
219
|
-
|
|
220
|
-
### Stage 5: Artifact Publication
|
|
221
|
-
|
|
222
|
-
<dl>
|
|
223
|
-
<dt class="hdlist1">Publish artifacts</dt>
|
|
224
|
-
<dd>
|
|
225
|
-
Build and publish the final artifacts.
|
|
226
|
-
|
|
227
|
-
Use the `publish.sh` script with proper credentials in place.
|
|
228
|
-
</dd>
|
|
229
|
-
</dl>
|
|
230
|
-
|
|
231
|
-
```
|
|
232
|
-
./scripts/publish.sh
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
This step concludes the release process. (`role: devops-release-engineer; with: Operator`)
|
|
236
|
-
|
|
237
|
-
### Stage 6: Post-Release Tests & Cleanup
|
|
238
|
-
|
|
239
|
-
<dl>
|
|
240
|
-
<dt class="hdlist1">Test published artifacts</dt>
|
|
241
|
-
<dd>
|
|
242
|
-
Manually fetch and install/activate any gems, images, or other binary files, and spot check published documentation. (`role: devops-release-engineer; upto: qa-testing-engineer; with: Operator`)
|
|
243
|
-
</dd>
|
|
244
|
-
<dt class="hdlist1">Post-release tasks</dt>
|
|
245
|
-
<dd>
|
|
246
|
-
Perform necessary cleanup and preparation for the next cycle.
|
|
247
|
-
|
|
248
|
-
- <input type="checkbox" data-item-complete="0"> Cut a _release_ branch for patching (`release/<$tok.majmin>`).
|
|
249
|
-
|
|
250
|
-
- <input type="checkbox" data-item-complete="0"> Update `:next_prod_vrsn:` in docs.
|
|
251
|
-
|
|
252
|
-
- <input type="checkbox" data-item-complete="0"> Create next development branch (`dev/<next>`).
|
|
253
|
-
|
|
254
|
-
- <input type="checkbox" data-item-complete="0"> Notify stakeholders. (`role: project-manager; with: devops-release-engineer`)
|
|
255
|
-
</dd>
|
|
256
|
-
</dl>
|
|
257
|
-
|
|
258
|
-
### Post-mission Debriefing
|
|
259
|
-
|
|
260
|
-
<dl>
|
|
261
|
-
<dt class="hdlist1">Review the Mission Report</dt>
|
|
262
|
-
<dd>
|
|
263
|
-
Highlight outstanding or special notices from the Mission Report. (`role: Agent; with: Operator; read: .agent/reports/release-mission.md`)
|
|
264
|
-
</dd>
|
|
265
|
-
<dt class="hdlist1">Suggest modifications to _this_ mission assignment</dt>
|
|
266
|
-
<dd>
|
|
267
|
-
Taking into account any bumps, blockers, or unexpected occurrences during fulfillment of this mission, recommend changes or additions to **“MISSION: Conduct a Product Release”** itself. (`role: Agent; with: Operator; path: ../lab/_docs/agent/missions/conduct-release.adoc`).
|
|
268
|
-
</dd>
|
|
269
|
-
</dl>
|
|
270
|
-
|
|
271
|
-
> **IMPORTANT:** In case of emergency rollback or patching, see `.agent/docs/skills/product-release-rollback.md`.
|
|
272
|
-
|
|
273
|
-
## Fulfillment Principles
|
|
274
|
-
|
|
275
|
-
### ALWAYS
|
|
276
|
-
|
|
277
|
-
- Always ask the Operator when you don’t know exactly how DocOps Lab prefers a step be carried out.
|
|
278
|
-
|
|
279
|
-
- Always follow the mission procedure as closely as possible, adapting only when necessary due to project-specific constraints.
|
|
280
|
-
|
|
281
|
-
- Always document any deviations from the standard procedure and the reasons for them in the Mission Report.
|
|
282
|
-
|
|
283
|
-
- Always look for a DRY way to define product metadata/attrbutes in README.adoc and YAML files (`specs/data/*-def.yml`).
|
|
284
|
-
|
|
285
|
-
- Always pause for Operator approval before ANY publishing or deployment action, including pushing/posting to GitHub.
|
|
286
|
-
|
|
287
|
-
### NEVER
|
|
288
|
-
|
|
289
|
-
- Never get creative or innovative without Operator permission.
|
|
290
|
-
|
|
291
|
-
- Never skip steps in the mission procedure without documenting the reason.
|
|
292
|
-
|
|
293
|
-
- Never assume the Operator understands DocOps Lab conventions without explanation.
|
|
294
|
-
|
|
295
|
-
### Quality Bar
|
|
296
|
-
|
|
297
|
-
A successful release is one where all artifacts are published correctly, the documentation accurately reflects the changes, and the repository is in a clean state for the next development cycle.
|
|
298
|
-
|
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
# MISSION: Start a New DocOps Lab Project
|
|
2
|
-
|
|
3
|
-
This document is intended for AI agents operating within a DocOps Lab environment.
|
|
4
|
-
|
|
5
|
-
An AI Agent or multiple Agents, in collaboration with a human Operator, can initialize and prepare a codebase for a new DocOps Lab project.
|
|
6
|
-
|
|
7
|
-
This codebase can be based on an existing specification document, or one can be drafted during this procedure.
|
|
8
|
-
|
|
9
|
-
Table of Contents
|
|
10
|
-
|
|
11
|
-
- Agent Roles
|
|
12
|
-
- Context Management for Multi-role Sessions
|
|
13
|
-
- Task Assignments and Suggestions
|
|
14
|
-
- Prerequisite: Attention OPERATOR
|
|
15
|
-
- Mission Procedure
|
|
16
|
-
- Stage 0: Mission Prep
|
|
17
|
-
- Evergreen Tasks
|
|
18
|
-
- Stage 1: Project Specification
|
|
19
|
-
- Stage 2: Codebase/Environment Setup
|
|
20
|
-
- Stage 3: Testing Framework Setup
|
|
21
|
-
- Stage 4: CI/CD Pipeline Setup
|
|
22
|
-
- Stage 5: Initial Product Code
|
|
23
|
-
- Stage 6: Review Initial Project Setup
|
|
24
|
-
- Stage 7: Agent Documentation
|
|
25
|
-
- Stage 8: Squash and Push to GitHUb
|
|
26
|
-
- Stage 9: Configure GH Issues Board
|
|
27
|
-
- Stage 10: Create Initial Work Issues
|
|
28
|
-
- Post-mission Debriefing
|
|
29
|
-
- Fulfillment Principles
|
|
30
|
-
- ALWAYS
|
|
31
|
-
- NEVER
|
|
32
|
-
- Quality Bar
|
|
33
|
-
|
|
34
|
-
## Agent Roles
|
|
35
|
-
|
|
36
|
-
The following agent roles will take a turn at steps in this mission.
|
|
37
|
-
|
|
38
|
-
<dl>
|
|
39
|
-
<dt class="hdlist1">planner/architect (optional)</dt>
|
|
40
|
-
<dd>
|
|
41
|
-
If there is no specification yet, this agent works with the Operator and any relevant documentation to draft a project specification and/or definition documents.
|
|
42
|
-
</dd>
|
|
43
|
-
<dt class="hdlist1">product engineer</dt>
|
|
44
|
-
<dd>
|
|
45
|
-
Initialize the basic environment and dependencies; oversee DevOps, DocOps, and QA contributions; wireframe/scaffold basic library structure.
|
|
46
|
-
</dd>
|
|
47
|
-
<dt class="hdlist1">QA/testing engineer</dt>
|
|
48
|
-
<dd>
|
|
49
|
-
Set up testing frameworks and initial/demonstrative test cases.
|
|
50
|
-
</dd>
|
|
51
|
-
<dt class="hdlist1">DevOps/release engineer</dt>
|
|
52
|
-
<dd>
|
|
53
|
-
Set up CI/CD pipelines, containerization, and infrastructure as code.
|
|
54
|
-
</dd>
|
|
55
|
-
<dt class="hdlist1">project manager</dt>
|
|
56
|
-
<dd>
|
|
57
|
-
Review the initial project setup; create initial work issues and tasks for further development.
|
|
58
|
-
</dd>
|
|
59
|
-
<dt class="hdlist1">tech writer</dt>
|
|
60
|
-
<dd>
|
|
61
|
-
Assist in writing/reviewing specification docs and README.
|
|
62
|
-
</dd>
|
|
63
|
-
</dl>
|
|
64
|
-
|
|
65
|
-
### Context Management for Multi-role Sessions
|
|
66
|
-
|
|
67
|
-
By default will be up to the Agent to decide whether to hand off to a concurrent or subsequent Agent or “upgrade” role/skills during a session.
|
|
68
|
-
|
|
69
|
-
The Operator may of course dictate or override this decision.
|
|
70
|
-
|
|
71
|
-
The goal is to use appropriate agents without cluttering any given agent’s context window.
|
|
72
|
-
|
|
73
|
-
<dl>
|
|
74
|
-
<dt class="hdlist1">Soft-reset between roles</dt>
|
|
75
|
-
<dd>
|
|
76
|
-
At each transition, declare what you’re loading (role doc + skills) and what you’re backgrounding. Don’t hold all previous stage details in active memory.
|
|
77
|
-
</dd>
|
|
78
|
-
<dt class="hdlist1">Mission tracker as swap file</dt>
|
|
79
|
-
<dd>
|
|
80
|
-
Dump detailed handoff notes into `.agent/project-setup-mission.md` after each stage. Read it first when starting new roles to understand what was built and what’s needed.
|
|
81
|
-
</dd>
|
|
82
|
-
<dt class="hdlist1">Checkpoint between stages</dt>
|
|
83
|
-
<dd>
|
|
84
|
-
After each stage, ask Operator to review/continue/pause. Creates intervention points if focus dilutes.
|
|
85
|
-
</dd>
|
|
86
|
-
<dt class="hdlist1">Watch for dilution</dt>
|
|
87
|
-
<dd>
|
|
88
|
-
Mixing concerns across roles, contradicting earlier decisions, hedging instead of checking files. If noticed, stop and checkpoint.
|
|
89
|
-
</dd>
|
|
90
|
-
<dt class="hdlist1">Focused lenses</dt>
|
|
91
|
-
<dd>
|
|
92
|
-
Each role emphasizes different details (Product Engineer = code structure, QA = test coverage, DevOps = automation, PM = coordination). Switch lenses deliberately; shared base knowledge (README, goals, conventions) stays warm.
|
|
93
|
-
</dd>
|
|
94
|
-
</dl>
|
|
95
|
-
|
|
96
|
-
### Task Assignments and Suggestions
|
|
97
|
-
|
|
98
|
-
In the Mission Procedures section, metadata is associated with each task.
|
|
99
|
-
|
|
100
|
-
All tasks are assigned a preferred `role:` the Agent should assume in carrying out the task. That role has further documentation at `.agent/docs/roles/<role-slug>.md`, and the executing agent should ingest that document entirely before proceeding.
|
|
101
|
-
|
|
102
|
-
Recommended collaborators are indicated by `with:`.
|
|
103
|
-
|
|
104
|
-
Recommended upgrades are designated by `upto:`.
|
|
105
|
-
|
|
106
|
-
Suggested skill/topic readings are indicated by `read:`.
|
|
107
|
-
|
|
108
|
-
Any working directories or files are listed in `path:`.
|
|
109
|
-
|
|
110
|
-
## Prerequisite: Attention OPERATOR
|
|
111
|
-
|
|
112
|
-
This process requires the `docopslab-dev` tooling is installed and synced, or at the very least the `.agent/docs/` library maintained by that tool be in place.
|
|
113
|
-
|
|
114
|
-
For unorthodox projects, simply copying an up-to-date version of that library to your project root directory should suffice.
|
|
115
|
-
|
|
116
|
-
## Mission Procedure
|
|
117
|
-
|
|
118
|
-
In general, the following stages are to be followed in order and tracked in a mission document.
|
|
119
|
-
|
|
120
|
-
### Stage 0: Mission Prep
|
|
121
|
-
|
|
122
|
-
<dl>
|
|
123
|
-
<dt class="hdlist1">Create a mission-tracking document</dt>
|
|
124
|
-
<dd>
|
|
125
|
-
Write a document with detailed steps for fulfilling the mission assigned here, based on any project-specific context that might rule in or out some of the following stages or steps. (`role: project-manager; path: .agent/project-setup-mission.md`)
|
|
126
|
-
</dd>
|
|
127
|
-
</dl>
|
|
128
|
-
|
|
129
|
-
### Evergreen Tasks
|
|
130
|
-
|
|
131
|
-
The following tasks apply to most stages.
|
|
132
|
-
|
|
133
|
-
<dl>
|
|
134
|
-
<dt class="hdlist1">Keep the mission-tracking document up to date</dt>
|
|
135
|
-
<dd>
|
|
136
|
-
At the end of every stage, update the progress. (`path: .agent/project-setup-mission.md`)
|
|
137
|
-
</dd>
|
|
138
|
-
<dt class="hdlist1">Perform tests as needed</dt>
|
|
139
|
-
<dd>
|
|
140
|
-
Run tests to ensure the initial setup is functioning as expected. (`role: qa-testing-engineer; read: [.agent/docs/skills/tests-running.md, specs/tests/README.adoc]`)
|
|
141
|
-
</dd>
|
|
142
|
-
<dt class="hdlist1">Update docs as needed</dt>
|
|
143
|
-
<dd>
|
|
144
|
-
Continuously improve the relevant `README.adoc` and other documentation based on new insights or changes in the project setup. (`role: tech-writer; read: .agent/docs/skills/asciidoc.md, .agent/docs/skills/readme-driven-dev.md, paths: [README.adoc, specs/docs/**/*.adoc, specs/tests/README.adoc]`)
|
|
145
|
-
</dd>
|
|
146
|
-
</dl>
|
|
147
|
-
|
|
148
|
-
### Stage 1: Project Specification
|
|
149
|
-
|
|
150
|
-
<dl>
|
|
151
|
-
<dt class="hdlist1">Specification review</dt>
|
|
152
|
-
<dd>
|
|
153
|
-
_If the project already contains one or more specification documents (`specs/docs/*.adoc`) and/or an extensive `README.adoc` file_, review them for thoroughness and advise of missing information, ambiguities, inconsistencies, and potential pitfalls. (`role: planner-architect; with: operator; upto: [product-engineer, product-manager]`)
|
|
154
|
-
</dd>
|
|
155
|
-
<dt class="hdlist1">Draft a specification</dt>
|
|
156
|
-
<dd>
|
|
157
|
-
_If no specification and no detailed `README.adoc` exists_, work with the Operator to draft a basic project specification/requirements document in AsciiDoc and data/interface definition files in YAML/SGYML. (`role: planner-architect; with: [product-manager, tech-writer]; upto: product-developer; read: [.agent/docs/skills/asciidoc.md, .agent/docs/skills/schemagraphy-sgyml.md], path: specs/docs/<subject-slug>-requirements.adoc`)
|
|
158
|
-
</dd>
|
|
159
|
-
<dt class="hdlist1">Create/enrich README</dt>
|
|
160
|
-
<dd>
|
|
161
|
-
The `README.adoc` file is _the_ primary document for every DocOps Lab repo. Make it great. (`role: tech-writer; with: [planner-architect, product-manager]; upto: product-engineer; read: .agent/docs/skills/asciidoc.md, .agent/docs/skills/readme-driven-dev.md`, path: `README.adoc`)
|
|
162
|
-
</dd>
|
|
163
|
-
</dl>
|
|
164
|
-
|
|
165
|
-
### Stage 2: Codebase/Environment Setup
|
|
166
|
-
|
|
167
|
-
<dl>
|
|
168
|
-
<dt class="hdlist1">Establish initial files</dt>
|
|
169
|
-
<dd>
|
|
170
|
-
Create the basic project directory structure and initial files, including `README.adoc`, `.gitignore`, `Dockerfile`, `Rakefile`, along with any necessary configuration files. (`role: product-engineer; read: .agent/docs/topics/common-project-paths.md`)
|
|
171
|
-
</dd>
|
|
172
|
-
<dt class="hdlist1">Establish versioning</dt>
|
|
173
|
-
<dd>
|
|
174
|
-
Define the revision code (probably `0.1.0`) in the `README.adoc` and make sure the base module/code reads it from there as SSoT. (`role: product-engineer; read: .agent/docs/skills/readme-driven-dev.md; path: README.adoc`)
|
|
175
|
-
</dd>
|
|
176
|
-
<dt class="hdlist1">Populate initial files</dt>
|
|
177
|
-
<dd>
|
|
178
|
-
Fill in the initial files with dependency requirements, boilerplate content, placeholder comments, project description, based on the Specification. (`role: product-engineer; read: .agent/docs/skills/code-commenting.md`, path: `[Rakefile, .gitignore, lib/**, <product-slug>.gemspec, etc]`)
|
|
179
|
-
</dd>
|
|
180
|
-
<dt class="hdlist1">Instantiate environment/dependencies</dt>
|
|
181
|
-
<dd>
|
|
182
|
-
Install dependency libraries (usually `bundle install`, `npm install`, and so forth). (`role: product-engineer)
|
|
183
|
-
</dd>
|
|
184
|
-
<dt class="hdlist1">Update the README</dt>
|
|
185
|
-
<dd>
|
|
186
|
-
Add relevant details from this stage to the project’s `README.adoc` file. Include basic setup/quickstart instructions for developers. (`role: product-engineer; upto: tech-writer; read: .agent/docs/skills/asciidoc.md, .agent/docs/skills/readme-driven-dev.md`, path: `README.adoc`)
|
|
187
|
-
</dd>
|
|
188
|
-
<dt class="hdlist1">Commit to Git</dt>
|
|
189
|
-
<dd>
|
|
190
|
-
Test the `.gitignore` and any pre-commit hooks by adding and committing files. Adjust `.gitignore` as needed and amend commits until correct. (`role: product-engineer; read: .agent/docs/skills/git.md;`)
|
|
191
|
-
</dd>
|
|
192
|
-
</dl>
|
|
193
|
-
|
|
194
|
-
### Stage 3: Testing Framework Setup
|
|
195
|
-
|
|
196
|
-
<dl>
|
|
197
|
-
<dt class="hdlist1">Create basic testing scaffold</dt>
|
|
198
|
-
<dd>
|
|
199
|
-
Prompt the Operator to provide relevant examples from similar repos and modify it for the current project’s use case. (`role: qa-testing-engineer; with: operator; upto: product-engineer; read: [README.adoc, specs/ .agent/docs/skills/tests-writing.md, .agent/docs/skills/rake-cli-dev.md]; path: specs/tests/`)
|
|
200
|
-
</dd>
|
|
201
|
-
<dt class="hdlist1">Populate initial test cases</dt>
|
|
202
|
-
<dd>
|
|
203
|
-
Draft initial test cases that cover basic functionality and edge cases based on the project specification. (`role: qa-testing-engineer; upto: product-engineer; read: .agent/docs/skills/tests-writing.md; paths: specs/tests/rspec/`)
|
|
204
|
-
</dd>
|
|
205
|
-
<dt class="hdlist1">Create a testing README</dt>
|
|
206
|
-
<dd>
|
|
207
|
-
Draft the initial docs for the testing regimen. (`role: qa-testing-engineer; upto: tech-writer; read: .agent/docs/skills/asciidoc.md, .agent/docs/skills/readme-driven-dev.md`, path: `specs/tests/README.adoc`)
|
|
208
|
-
</dd>
|
|
209
|
-
<dt class="hdlist1">Update the project README</dt>
|
|
210
|
-
<dd>
|
|
211
|
-
Make a note of the tests path and docs in the main `README.adoc` file. (`role: qa-testing-engineer; upto: tech-writer; read: .agent/docs/skills/asciidoc.md, .agent/docs/skills/readme-driven-dev.md`, path: `README.adoc`)
|
|
212
|
-
</dd>
|
|
213
|
-
<dt class="hdlist1">Commit to Git</dt>
|
|
214
|
-
<dd>
|
|
215
|
-
Add and commit testing files to Git. (`role: qa-testing-engineer; read: .agent/docs/skills/git.md;`)
|
|
216
|
-
</dd>
|
|
217
|
-
</dl>
|
|
218
|
-
|
|
219
|
-
### Stage 4: CI/CD Pipeline Setup
|
|
220
|
-
|
|
221
|
-
<dl>
|
|
222
|
-
<dt class="hdlist1">Draft initial CI/CD workflows</dt>
|
|
223
|
-
<dd>
|
|
224
|
-
Set up GitHub Actions workflows for building, testing, and deploying the project. Integrate tests into `Rakefile` or other scripts as appropriate. (`role: devops-release-engineer; upto: product-engineer; read: .agent/docs/skills/devops-ci-cd.md; paths: [Rakefile, .github/workflows/, .scripts/**]`)
|
|
225
|
-
</dd>
|
|
226
|
-
<dt class="hdlist1">Commit to Git</dt>
|
|
227
|
-
<dd>
|
|
228
|
-
Add and commit CI/CD files to Git. (`role: devops-release-engineer; read: .agent/docs/skills/git.md;`)
|
|
229
|
-
</dd>
|
|
230
|
-
</dl>
|
|
231
|
-
|
|
232
|
-
### Stage 5: Initial Product Code
|
|
233
|
-
|
|
234
|
-
<dl>
|
|
235
|
-
<dt class="hdlist1">Write code to initial tests</dt>
|
|
236
|
-
<dd>
|
|
237
|
-
Implement the minimum viable code to pass the initial test cases. (`role: product-engineer; with: [Operator, qa-testing-engineer]; read: [specs/tests/rspec/**, specs/docs/*.adoc]; upto: [qa-testing-engineer, devops-release-engineer]; paths: [lib/**, specs/tests/rspec/**]`)
|
|
238
|
-
</dd>
|
|
239
|
-
<dt class="hdlist1">Commit to Git</dt>
|
|
240
|
-
<dd>
|
|
241
|
-
Add and commit the initial product code to Git. (`role: product-engineer; read: .agent/docs/skills/git.md;`)
|
|
242
|
-
</dd>
|
|
243
|
-
</dl>
|
|
244
|
-
|
|
245
|
-
### Stage 6: Review Initial Project Setup
|
|
246
|
-
|
|
247
|
-
<dl>
|
|
248
|
-
<dt class="hdlist1">Review mission report</dt>
|
|
249
|
-
<dd>
|
|
250
|
-
Check the mission progress document for any `TODO`s or notes from previous stages.
|
|
251
|
-
Triage these and consider invoking new roles to fulfill the steps.
|
|
252
|
-
(`role: project-manager; with: Operator; read: .agent/project-setup-mission.md; path: .agent/reports/project-setup-mission.md`)
|
|
253
|
-
</dd>
|
|
254
|
-
<dt class="hdlist1">Check project against README and specs</dt>
|
|
255
|
-
<dd>
|
|
256
|
-
Read through the relevant specifications to ensure at least the _scaffolding_ to meet the project requirements is in place. Take note of any place the codebase falls short. (`role: project-manager; read: [README.adoc, specs/**/*.{adoc,yml,yaml}]; upto: [planner-architect, product-engineer, qa-testing-engineer, devops-release-engineer]; path: .agent/reports/project-setup-mission.md; with: Operator`)
|
|
257
|
-
</dd>
|
|
258
|
-
</dl>
|
|
259
|
-
|
|
260
|
-
### Stage 7: Agent Documentation
|
|
261
|
-
|
|
262
|
-
<dl>
|
|
263
|
-
<dt class="hdlist1">Draft an AGENTS.md file from template</dt>
|
|
264
|
-
<dd>
|
|
265
|
-
Use the `AGENTS.markdown` file available through `docopslab-dev` (sync initially, then set `sync: false` in `.config/docopslab-dev.yml`). Follow the instructions in the doc to transform it into a localized edition of the prime doc. (`role: Agent; path: AGENTS.adoc`)
|
|
266
|
-
</dd>
|
|
267
|
-
</dl>
|
|
268
|
-
|
|
269
|
-
### Stage 8: Squash and Push to GitHUb
|
|
270
|
-
|
|
271
|
-
The repository should now be ready for sharing.
|
|
272
|
-
|
|
273
|
-
<dl>
|
|
274
|
-
<dt class="hdlist1">Squash commits</dt>
|
|
275
|
-
<dd>
|
|
276
|
-
Squash any previous commits into `initial commit`. (`role: product-engineer; read: .agent/docs/skills/git.md;`)
|
|
277
|
-
</dd>
|
|
278
|
-
<dt class="hdlist1">Push to GitHub</dt>
|
|
279
|
-
<dd>
|
|
280
|
-
Push the local repository to a new remote GitHub repository.
|
|
281
|
-
</dd>
|
|
282
|
-
</dl>
|
|
283
|
-
|
|
284
|
-
### Stage 9: Configure GH Issues Board
|
|
285
|
-
|
|
286
|
-
<dl>
|
|
287
|
-
<dt class="hdlist1">Set up GH Issues facility for the project</dt>
|
|
288
|
-
<dd>
|
|
289
|
-
Use `gh` tool or instruct the Operator to use the GH Web UI to prepare the Issues facility. Make sure to set up appropriate labels and milestones, and ensure API read/write access. (`role: project-manager; read: [.agent/docs/skills/github-issues.md];`)
|
|
290
|
-
</dd>
|
|
291
|
-
</dl>
|
|
292
|
-
|
|
293
|
-
### Stage 10: Create Initial Work Issues
|
|
294
|
-
|
|
295
|
-
<dl>
|
|
296
|
-
<dt class="hdlist1">Draft an IMYML file</dt>
|
|
297
|
-
<dd>
|
|
298
|
-
Add all the issues to a scratch file in IMYML format. (`role: project-manager; read: .agent/docs/skills/github-issues.md; path: .agent/scratch/initial-issues.yml; with: Operator`)
|
|
299
|
-
</dd>
|
|
300
|
-
<dt class="hdlist1">Bulk create initial issues</dt>
|
|
301
|
-
<dd>
|
|
302
|
-
Use the `issuer` tool to generate remote GH Issues entries based on the issues draft file. (`role: project-manager; cmds: 'bundle exec issuer --help'; path: .agent/scratch/initial-issues.yml; upto: [product-engineer, tech-writer, devops-release-engineer, qa-testing-engineer, docops-engineer]`)
|
|
303
|
-
</dd>
|
|
304
|
-
</dl>
|
|
305
|
-
|
|
306
|
-
### Post-mission Debriefing
|
|
307
|
-
|
|
308
|
-
<dl>
|
|
309
|
-
<dt class="hdlist1">Review Mission Report</dt>
|
|
310
|
-
<dd>
|
|
311
|
-
Highlight outstanding or special notices from the Mission Report. (`role: Agent; with: Operator; read: .agent/reports/project-setup-mission.md`)
|
|
312
|
-
</dd>
|
|
313
|
-
<dt class="hdlist1">Suggest modifications to _this_ mission assignment</dt>
|
|
314
|
-
<dd>
|
|
315
|
-
Taking into account any bumps, blockers, or unexpected occurrences during fulfillment of this mission, recommend changes or additions to **“MISSION: Start a New DocOps Lab Project”** itself. Put yourself in the shoes of a future agent facing down an unknown project. (`role: Agent; with: Operator; path: ../lab/_docs/agent/missions/setup-new-project.adoc`).
|
|
316
|
-
</dd>
|
|
317
|
-
</dl>
|
|
318
|
-
|
|
319
|
-
## Fulfillment Principles
|
|
320
|
-
|
|
321
|
-
### ALWAYS
|
|
322
|
-
|
|
323
|
-
- Always ask the Operator when you don’t know exactly how DocOps Lab prefers a step be carried out.
|
|
324
|
-
|
|
325
|
-
- Always follow the mission procedure as closely as possible, adapting only when necessary due to project-specific constraints.
|
|
326
|
-
|
|
327
|
-
- Always document any deviations from the standard procedure and the reasons for them in the Mission Report.
|
|
328
|
-
|
|
329
|
-
- Always look for a DRY way to define product metadata/attrbutes in README.adoc and YAML files (`specs/data/*-def.yml`).
|
|
330
|
-
|
|
331
|
-
- Always pause for Operator approval before ANY publishing or deployment action, including pushing/posting to GitHub.
|
|
332
|
-
|
|
333
|
-
### NEVER
|
|
334
|
-
|
|
335
|
-
- Never get creative or innovative without Operator permission.
|
|
336
|
-
|
|
337
|
-
- Never skip steps in the mission procedure without documenting the reason.
|
|
338
|
-
|
|
339
|
-
- Never assume the Operator understands DocOps Lab conventions without explanation.
|
|
340
|
-
|
|
341
|
-
### Quality Bar
|
|
342
|
-
|
|
343
|
-
A good output is a codebase that a human engineer could pick up and continue developing with minimal onboarding due to logical structure and conventions as well as clear documentation of the architecture, setup process, and project-specific considerations.
|
|
344
|
-
|