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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +645 -318
  3. data/docopslab-dev.gemspec +2 -3
  4. data/docs/agent/index.md +4 -8
  5. data/docs/agent/misc/bash-styles.md +470 -0
  6. data/docs/agent/missions/conduct-release.md +161 -87
  7. data/docs/agent/missions/setup-new-project.md +228 -134
  8. data/docs/agent/roles/devops-release-engineer.md +60 -17
  9. data/docs/agent/roles/docops-engineer.md +84 -20
  10. data/docs/agent/roles/planner-architect.md +22 -0
  11. data/docs/agent/roles/product-engineer.md +63 -15
  12. data/docs/agent/roles/product-manager.md +57 -24
  13. data/docs/agent/roles/project-manager.md +48 -12
  14. data/docs/agent/roles/qa-testing-engineer.md +48 -14
  15. data/docs/agent/roles/tech-docs-manager.md +63 -17
  16. data/docs/agent/roles/tech-writer.md +68 -14
  17. data/docs/agent/skills/asciidoc.md +65 -238
  18. data/docs/agent/skills/bash-cli-dev.md +135 -0
  19. data/docs/agent/skills/code-commenting.md +143 -106
  20. data/docs/agent/skills/fix-broken-links.md +145 -100
  21. data/docs/agent/skills/fix-jekyll-asciidoc-build-errors.md +1 -10
  22. data/docs/agent/skills/fix-spelling-issues.md +0 -3
  23. data/docs/agent/skills/git.md +69 -34
  24. data/docs/agent/skills/github-issues.md +110 -71
  25. data/docs/agent/skills/rake-cli-dev.md +1 -1
  26. data/docs/agent/skills/readme-driven-dev.md +1 -0
  27. data/docs/agent/skills/release-history.md +1 -7
  28. data/docs/agent/skills/ruby.md +18 -7
  29. data/docs/agent/skills/schemagraphy-sgyml.md +3 -0
  30. data/docs/agent/skills/tests-running.md +22 -14
  31. data/docs/agent/skills/tests-writing.md +51 -28
  32. data/docs/agent/skills/write-the-docs.md +71 -9
  33. data/docs/agent/topics/common-project-paths.md +122 -70
  34. data/docs/agent/topics/dev-tooling-usage.md +70 -77
  35. data/docs/agent/topics/devops-ci-cd.md +3 -1
  36. data/docs/agent/topics/product-docs-deployment.md +18 -12
  37. data/docs/library-readme.adoc +39 -0
  38. data/lib/docopslab/dev/cast_ops.rb +199 -0
  39. data/lib/docopslab/dev/config_manager.rb +6 -6
  40. data/lib/docopslab/dev/data_utils.rb +42 -0
  41. data/lib/docopslab/dev/file_utils.rb +18 -7
  42. data/lib/docopslab/dev/git_branch.rb +201 -0
  43. data/lib/docopslab/dev/git_hooks.rb +17 -11
  44. data/lib/docopslab/dev/initializer.rb +13 -4
  45. data/lib/docopslab/dev/library/cache.rb +167 -0
  46. data/lib/docopslab/dev/library/fetch.rb +209 -0
  47. data/lib/docopslab/dev/library.rb +328 -0
  48. data/lib/docopslab/dev/linters.rb +63 -12
  49. data/lib/docopslab/dev/manifest.rb +28 -0
  50. data/lib/docopslab/dev/paths.rb +0 -17
  51. data/lib/docopslab/dev/script_manager.rb +12 -6
  52. data/lib/docopslab/dev/skim.rb +109 -0
  53. data/lib/docopslab/dev/spell_check.rb +2 -2
  54. data/lib/docopslab/dev/sync_ops.rb +94 -33
  55. data/lib/docopslab/dev/tasks.rb +58 -18
  56. data/lib/docopslab/dev/version.rb +1 -1
  57. data/lib/docopslab/dev.rb +75 -35
  58. data/specs/data/default-manifest.yml +15 -5
  59. data/specs/data/library-index.yml +22 -0
  60. data/specs/data/manifest-schema.yaml +142 -4
  61. data/specs/data/tasks-def.yml +122 -10
  62. metadata +28 -39
  63. data/assets/config-packs/actionlint/base.yml +0 -13
  64. data/assets/config-packs/actionlint/project.yml +0 -13
  65. data/assets/config-packs/htmlproofer/base.yml +0 -27
  66. data/assets/config-packs/htmlproofer/project.yml +0 -25
  67. data/assets/config-packs/rubocop/base.yml +0 -130
  68. data/assets/config-packs/rubocop/project.yml +0 -8
  69. data/assets/config-packs/shellcheck/base.shellcheckrc +0 -14
  70. data/assets/config-packs/subtxt/ai-asciidoc-antipatterns.sub.txt +0 -11
  71. data/assets/config-packs/vale/asciidoc/ExplicitSectionIDs.yml +0 -8
  72. data/assets/config-packs/vale/asciidoc/ExtraLineBeforeLevel1.yml +0 -7
  73. data/assets/config-packs/vale/asciidoc/OneSentencePerLine.yml +0 -8
  74. data/assets/config-packs/vale/asciidoc/PreferSourceBlocks.yml +0 -8
  75. data/assets/config-packs/vale/asciidoc/ProperAdmonitions.yml +0 -8
  76. data/assets/config-packs/vale/asciidoc/ProperDLs.yml +0 -7
  77. data/assets/config-packs/vale/asciidoc/UncleanListStart.yml +0 -8
  78. data/assets/config-packs/vale/authoring/ButParagraph.yml +0 -8
  79. data/assets/config-packs/vale/authoring/ExNotEg.yml +0 -8
  80. data/assets/config-packs/vale/authoring/LiteralTerms.yml +0 -20
  81. data/assets/config-packs/vale/authoring/Spelling.yml +0 -679
  82. data/assets/config-packs/vale/base.ini +0 -38
  83. data/assets/config-packs/vale/config/scripts/ExplicitSectionIDs.tengo +0 -56
  84. data/assets/config-packs/vale/config/scripts/ExtraLineBeforeLevel1.tengo +0 -121
  85. data/assets/config-packs/vale/config/scripts/OneSentencePerLine.tengo +0 -53
  86. data/assets/config-packs/vale/project.ini +0 -5
  87. data/assets/hooks/pre-commit +0 -63
  88. data/assets/hooks/pre-push +0 -72
  89. data/assets/scripts/adoc_section_ids.rb +0 -50
  90. data/assets/scripts/build-common.sh +0 -193
  91. data/assets/scripts/build-docker.sh +0 -64
  92. data/assets/scripts/build.sh +0 -56
  93. data/assets/scripts/parse_jekyll_asciidoc_logs.rb +0 -467
  94. data/assets/templates/Gemfile +0 -7
  95. data/assets/templates/Rakefile +0 -3
  96. data/assets/templates/gitignore +0 -69
  97. data/assets/templates/jekyll-asciidoc-fix.prompt.yml +0 -17
  98. data/assets/templates/spellcheck.prompt.yml +0 -16
  99. 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
- - Task Assignments and Suggestions
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
- - 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
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
- - NEVER
35
- - Quality Bar
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
- **devops/release engineer** :
42
- Execute the technical steps of the release, including git operations, tagging, and artifact publication.
43
-
44
- **project manager** :
45
- Oversee the release process, ensure conditions are met, and handle communications.
46
-
47
- **tech writer** :
48
- Prepare release notes and ensure documentation is up to date.
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
- **Soft-reset between roles** :
59
- 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.
60
-
61
- **Mission tracker as swap file** :
62
- 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.
63
-
64
- **Checkpoint between stages** :
65
- After each stage, ask Operator to review/continue/pause. Creates intervention points if focus dilutes.
66
-
67
- **Watch for dilution** :
68
- Mixing concerns across roles, contradicting earlier decisions, hedging instead of checking files. If noticed, stop and checkpoint.
69
-
70
- **Focused lenses** :
71
- 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.
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
- **Create a mission-tracking document** :
98
- 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`)
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
- **Keep the mission-tracking document up to date** :
105
- At the end of every stage, update the progress. (`path: .agent/release-mission.md`)
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
- **Verify conditions** :
110
- Ensure the "Definition of Done" is met.
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
- - [ ] All target issues are closed.
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
- **Manual double-checks** :
117
- Perform the following checks before proceeding.
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
- - [ ] No local paths in `Gemfile`.
120
- - [ ] All documentation changes merged.
121
- - [ ] Version attribute bumped and propagated. (`role: project-manager; with: Operator`)
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
- **Prepare Release Notes doc** :
126
- Generate and refine the release history.
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
- Generate release notes and changelog using ReleaseHx.
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 releasehx <$tok.majmin>.<$tok.patch> --md docs/release/<$tok.majmin>.<$tok.patch>.md
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
- > **NOTE:** This step may vary significantly depending on project’s implementation of ReleaseHx.
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
- **Merge the dev branch to `main``** :
144
- Merge the development branch into the main branch.
145
-
146
- include::../../task/release.adoc[tag="step-merge"])
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
- **Tag the release** :
149
- Create and push the release tag.
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
- git tag -a v<$tok.majmin>.<$tok.patch> -m "Release <$tok.majmin>.<$tok.patch>"
153
- git push origin v<$tok.majmin>.<$tok.patch>
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
- **Create GitHub release** :
159
- Publish the release on GitHub.
205
+ <dl>
206
+ <dt class="hdlist1">Create GitHub release</dt>
207
+ <dd>
208
+ Publish the release on GitHub.
160
209
 
161
- Use the GitHub CLI to create a release:
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/releasehx/<$tok.majmin>.<$tok.patch>.md` into the release notes field. (`role: project-manager; with: devops-release-engineer`)
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
- **Publish artifacts** :
172
- Build and publish the final artifacts.
222
+ <dl>
223
+ <dt class="hdlist1">Publish artifacts</dt>
224
+ <dd>
225
+ Build and publish the final artifacts.
173
226
 
174
- Use the `publish.sh` script with proper credentials in place.
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
- **Test published artifacts** :
185
- 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`)
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
- **Post-release tasks** :
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
- - [ ] Cut a _release_ branch for patching (`release/<$tok.majmin>`).
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
- ### Post-mission Debriefing
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
- **Review the Mission Report** :
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
- **Suggest modifications to _this_ mission assignment** :
201
- 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`).
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