docopslab-dev 0.1.0 → 0.2.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 +645 -318
- data/docopslab-dev.gemspec +2 -3
- data/docs/agent/index.md +4 -8
- data/docs/agent/misc/bash-styles.md +470 -0
- data/docs/agent/missions/conduct-release.md +161 -87
- data/docs/agent/missions/setup-new-project.md +228 -134
- data/docs/agent/roles/devops-release-engineer.md +60 -17
- data/docs/agent/roles/docops-engineer.md +84 -20
- data/docs/agent/roles/planner-architect.md +22 -0
- data/docs/agent/roles/product-engineer.md +63 -15
- data/docs/agent/roles/product-manager.md +57 -24
- data/docs/agent/roles/project-manager.md +48 -12
- data/docs/agent/roles/qa-testing-engineer.md +48 -14
- data/docs/agent/roles/tech-docs-manager.md +63 -17
- data/docs/agent/roles/tech-writer.md +68 -14
- data/docs/agent/skills/asciidoc.md +65 -238
- data/docs/agent/skills/bash-cli-dev.md +135 -0
- data/docs/agent/skills/code-commenting.md +143 -106
- data/docs/agent/skills/fix-broken-links.md +145 -100
- data/docs/agent/skills/fix-jekyll-asciidoc-build-errors.md +1 -10
- data/docs/agent/skills/fix-spelling-issues.md +0 -3
- data/docs/agent/skills/git.md +69 -34
- data/docs/agent/skills/github-issues.md +110 -71
- data/docs/agent/skills/rake-cli-dev.md +1 -1
- data/docs/agent/skills/readme-driven-dev.md +1 -0
- data/docs/agent/skills/release-history.md +1 -7
- data/docs/agent/skills/ruby.md +18 -7
- data/docs/agent/skills/schemagraphy-sgyml.md +3 -0
- data/docs/agent/skills/tests-running.md +22 -14
- data/docs/agent/skills/tests-writing.md +51 -28
- data/docs/agent/skills/write-the-docs.md +71 -9
- data/docs/agent/topics/common-project-paths.md +122 -70
- data/docs/agent/topics/dev-tooling-usage.md +70 -77
- data/docs/agent/topics/devops-ci-cd.md +3 -1
- data/docs/agent/topics/product-docs-deployment.md +18 -12
- data/docs/library-readme.adoc +39 -0
- data/lib/docopslab/dev/cast_ops.rb +199 -0
- data/lib/docopslab/dev/config_manager.rb +6 -6
- data/lib/docopslab/dev/data_utils.rb +42 -0
- data/lib/docopslab/dev/file_utils.rb +18 -7
- data/lib/docopslab/dev/git_branch.rb +201 -0
- data/lib/docopslab/dev/git_hooks.rb +17 -11
- data/lib/docopslab/dev/initializer.rb +13 -4
- data/lib/docopslab/dev/library/cache.rb +167 -0
- data/lib/docopslab/dev/library/fetch.rb +209 -0
- data/lib/docopslab/dev/library.rb +328 -0
- data/lib/docopslab/dev/linters.rb +63 -12
- data/lib/docopslab/dev/manifest.rb +28 -0
- data/lib/docopslab/dev/paths.rb +0 -17
- data/lib/docopslab/dev/script_manager.rb +12 -6
- data/lib/docopslab/dev/skim.rb +109 -0
- data/lib/docopslab/dev/spell_check.rb +2 -2
- data/lib/docopslab/dev/sync_ops.rb +94 -33
- data/lib/docopslab/dev/tasks.rb +58 -18
- data/lib/docopslab/dev/version.rb +1 -1
- data/lib/docopslab/dev.rb +75 -35
- data/specs/data/default-manifest.yml +15 -5
- data/specs/data/library-index.yml +22 -0
- data/specs/data/manifest-schema.yaml +142 -4
- data/specs/data/tasks-def.yml +122 -10
- metadata +28 -39
- data/assets/config-packs/actionlint/base.yml +0 -13
- data/assets/config-packs/actionlint/project.yml +0 -13
- data/assets/config-packs/htmlproofer/base.yml +0 -27
- data/assets/config-packs/htmlproofer/project.yml +0 -25
- data/assets/config-packs/rubocop/base.yml +0 -130
- data/assets/config-packs/rubocop/project.yml +0 -8
- data/assets/config-packs/shellcheck/base.shellcheckrc +0 -14
- data/assets/config-packs/subtxt/ai-asciidoc-antipatterns.sub.txt +0 -11
- data/assets/config-packs/vale/asciidoc/ExplicitSectionIDs.yml +0 -8
- data/assets/config-packs/vale/asciidoc/ExtraLineBeforeLevel1.yml +0 -7
- data/assets/config-packs/vale/asciidoc/OneSentencePerLine.yml +0 -8
- data/assets/config-packs/vale/asciidoc/PreferSourceBlocks.yml +0 -8
- data/assets/config-packs/vale/asciidoc/ProperAdmonitions.yml +0 -8
- data/assets/config-packs/vale/asciidoc/ProperDLs.yml +0 -7
- data/assets/config-packs/vale/asciidoc/UncleanListStart.yml +0 -8
- data/assets/config-packs/vale/authoring/ButParagraph.yml +0 -8
- data/assets/config-packs/vale/authoring/ExNotEg.yml +0 -8
- data/assets/config-packs/vale/authoring/LiteralTerms.yml +0 -20
- data/assets/config-packs/vale/authoring/Spelling.yml +0 -679
- data/assets/config-packs/vale/base.ini +0 -38
- data/assets/config-packs/vale/config/scripts/ExplicitSectionIDs.tengo +0 -56
- data/assets/config-packs/vale/config/scripts/ExtraLineBeforeLevel1.tengo +0 -121
- data/assets/config-packs/vale/config/scripts/OneSentencePerLine.tengo +0 -53
- data/assets/config-packs/vale/project.ini +0 -5
- data/assets/hooks/pre-commit +0 -63
- data/assets/hooks/pre-push +0 -72
- data/assets/scripts/adoc_section_ids.rb +0 -50
- data/assets/scripts/build-common.sh +0 -193
- data/assets/scripts/build-docker.sh +0 -64
- data/assets/scripts/build.sh +0 -56
- data/assets/scripts/parse_jekyll_asciidoc_logs.rb +0 -467
- data/assets/templates/Gemfile +0 -7
- data/assets/templates/Rakefile +0 -3
- data/assets/templates/gitignore +0 -69
- data/assets/templates/jekyll-asciidoc-fix.prompt.yml +0 -17
- data/assets/templates/spellcheck.prompt.yml +0 -16
- data/docs/agent/AGENTS.md +0 -229
|
@@ -16,36 +16,42 @@ Check the `README.adoc` or `docs/**/release.adoc` file specific to the project y
|
|
|
16
16
|
Table of Contents
|
|
17
17
|
|
|
18
18
|
- Agent Roles
|
|
19
|
-
- Context Management for Multi-role Sessions
|
|
20
|
-
|
|
19
|
+
- Context Management for Multi-role Sessions
|
|
20
|
+
- Task Assignments and Suggestions
|
|
21
21
|
- Prerequisite: Attention OPERATOR
|
|
22
22
|
- Mission Procedure
|
|
23
|
-
- Stage 0: Mission Prep
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
32
|
- Fulfillment Principles
|
|
33
|
-
- ALWAYS
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
- ALWAYS
|
|
34
|
+
- NEVER
|
|
35
|
+
- Quality Bar
|
|
36
36
|
|
|
37
37
|
## Agent Roles
|
|
38
38
|
|
|
39
39
|
The following agent roles will take a turn at steps in this mission.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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>
|
|
49
55
|
|
|
50
56
|
### Context Management for Multi-role Sessions
|
|
51
57
|
|
|
@@ -55,20 +61,28 @@ The Operator may of course dictate or override this decision.
|
|
|
55
61
|
|
|
56
62
|
The goal is to use appropriate agents without cluttering any given agent’s context window.
|
|
57
63
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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>
|
|
72
86
|
|
|
73
87
|
### Task Assignments and Suggestions
|
|
74
88
|
|
|
@@ -94,84 +108,125 @@ In general, the following stages are to be followed in order and tracked in a mi
|
|
|
94
108
|
|
|
95
109
|
### Stage 0: Mission Prep
|
|
96
110
|
|
|
97
|
-
|
|
98
|
-
|
|
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>
|
|
99
117
|
|
|
100
118
|
### Evergreen Tasks
|
|
101
119
|
|
|
102
120
|
The following tasks apply to most stages.
|
|
103
121
|
|
|
104
|
-
|
|
105
|
-
|
|
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>
|
|
106
128
|
|
|
107
129
|
### Stage 1: Pre-flight Checks
|
|
108
130
|
|
|
109
|
-
|
|
110
|
-
|
|
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.
|
|
111
137
|
|
|
112
|
-
|
|
113
|
-
- [ ] CI builds and tests pass on `dev/x.y`.
|
|
114
|
-
- [ ] Documentation updated and merged. (`role: devops-release-engineer; upto: project-manager; with: Operator`)
|
|
138
|
+
- <input type="checkbox" data-item-complete="0"> CI builds and tests pass on `dev/<$tok.majmin>`.
|
|
115
139
|
|
|
116
|
-
|
|
117
|
-
|
|
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.
|
|
118
145
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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>
|
|
122
153
|
|
|
123
154
|
### Stage 2: Release History
|
|
124
155
|
|
|
125
|
-
|
|
126
|
-
|
|
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>
|
|
127
164
|
|
|
128
|
-
|
|
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:
|
|
129
168
|
|
|
130
169
|
```
|
|
131
170
|
bundle update releasehx
|
|
132
|
-
bundle exec
|
|
171
|
+
bundle exec rhx <$tok.majmin>.<$tok.patch> --md docs/release/<$tok.majmin>.<$tok.patch>.md
|
|
133
172
|
```
|
|
134
173
|
|
|
135
174
|
Edit the Markdown file at `docs/release/<$tok.majmin>.<$tok.patch>.md`.
|
|
136
175
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
See the project’s `README.adoc`; seek for `releasehx`. (`role: devops-release-engineer; upto: tech-writer; with: Operator; read: .agent/docs/skills/release-history.md`)
|
|
176
|
+
(`role: devops-release-engineer; upto: tech-writer; with: Operator; read: .agent/docs/skills/release-history.md`)
|
|
140
177
|
|
|
141
178
|
### Stage 3: Merge and Tag
|
|
142
179
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
180
|
+
<dl>
|
|
181
|
+
<dt class="hdlist1">Merge the dev branch to `main``</dt>
|
|
182
|
+
<dd>
|
|
183
|
+
Merge the development branch into the main branch.
|
|
147
184
|
|
|
148
|
-
|
|
149
|
-
|
|
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.
|
|
150
195
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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>
|
|
155
202
|
|
|
156
203
|
### Stage 4: Release Announcement
|
|
157
204
|
|
|
158
|
-
|
|
159
|
-
|
|
205
|
+
<dl>
|
|
206
|
+
<dt class="hdlist1">Create GitHub release</dt>
|
|
207
|
+
<dd>
|
|
208
|
+
Publish the release on GitHub.
|
|
160
209
|
|
|
161
|
-
|
|
210
|
+
Use the GitHub CLI to create a release:
|
|
211
|
+
</dd>
|
|
212
|
+
</dl>
|
|
162
213
|
|
|
163
214
|
```
|
|
164
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
|
|
165
216
|
```
|
|
166
217
|
|
|
167
|
-
Or else use the GitHub web interface to manually register the release, and copy/paste the contents of `docs/
|
|
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`)
|
|
168
219
|
|
|
169
220
|
### Stage 5: Artifact Publication
|
|
170
221
|
|
|
171
|
-
|
|
172
|
-
|
|
222
|
+
<dl>
|
|
223
|
+
<dt class="hdlist1">Publish artifacts</dt>
|
|
224
|
+
<dd>
|
|
225
|
+
Build and publish the final artifacts.
|
|
173
226
|
|
|
174
|
-
|
|
227
|
+
Use the `publish.sh` script with proper credentials in place.
|
|
228
|
+
</dd>
|
|
229
|
+
</dl>
|
|
175
230
|
|
|
176
231
|
```
|
|
177
232
|
./scripts/publish.sh
|
|
@@ -181,24 +236,37 @@ This step concludes the release process. (`role: devops-release-engineer; with:
|
|
|
181
236
|
|
|
182
237
|
### Stage 6: Post-Release Tests & Cleanup
|
|
183
238
|
|
|
184
|
-
|
|
185
|
-
|
|
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.
|
|
186
247
|
|
|
187
|
-
|
|
188
|
-
Perform necessary cleanup and preparation for the next cycle.
|
|
248
|
+
- <input type="checkbox" data-item-complete="0"> Cut a _release_ branch for patching (`release/<$tok.majmin>`).
|
|
189
249
|
|
|
190
|
-
|
|
191
|
-
- [ ] Update `:next_prod_vrsn:` in docs.
|
|
192
|
-
- [ ] Create next development branch (`dev/<next>`).
|
|
193
|
-
- [ ] Notify stakeholders. (`role: project-manager; with: devops-release-engineer`)
|
|
250
|
+
- <input type="checkbox" data-item-complete="0"> Update `:next_prod_vrsn:` in docs.
|
|
194
251
|
|
|
195
|
-
|
|
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>
|
|
196
257
|
|
|
197
|
-
|
|
198
|
-
Highlight outstanding or special notices from the Mission Report. (`role: Agent; with: Operator; read: .agent/reports/release-mission.md`)
|
|
258
|
+
### Post-mission Debriefing
|
|
199
259
|
|
|
200
|
-
|
|
201
|
-
|
|
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>
|
|
202
270
|
|
|
203
271
|
> **IMPORTANT:** In case of emergency rollback or patching, see `.agent/docs/skills/product-release-rollback.md`.
|
|
204
272
|
|
|
@@ -207,15 +275,21 @@ This step concludes the release process. (`role: devops-release-engineer; with:
|
|
|
207
275
|
### ALWAYS
|
|
208
276
|
|
|
209
277
|
- Always ask the Operator when you don’t know exactly how DocOps Lab prefers a step be carried out.
|
|
278
|
+
|
|
210
279
|
- Always follow the mission procedure as closely as possible, adapting only when necessary due to project-specific constraints.
|
|
280
|
+
|
|
211
281
|
- Always document any deviations from the standard procedure and the reasons for them in the Mission Report.
|
|
282
|
+
|
|
212
283
|
- Always look for a DRY way to define product metadata/attrbutes in README.adoc and YAML files (`specs/data/*-def.yml`).
|
|
284
|
+
|
|
213
285
|
- Always pause for Operator approval before ANY publishing or deployment action, including pushing/posting to GitHub.
|
|
214
286
|
|
|
215
287
|
### NEVER
|
|
216
288
|
|
|
217
289
|
- Never get creative or innovative without Operator permission.
|
|
290
|
+
|
|
218
291
|
- Never skip steps in the mission procedure without documenting the reason.
|
|
292
|
+
|
|
219
293
|
- Never assume the Operator understands DocOps Lab conventions without explanation.
|
|
220
294
|
|
|
221
295
|
### Quality Bar
|