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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +42 -11
  3. data/docopslab-dev.gemspec +2 -2
  4. data/lib/docopslab/dev/docker_aware.rb +40 -0
  5. data/lib/docopslab/dev/initializer.rb +21 -7
  6. data/lib/docopslab/dev/library.rb +14 -1
  7. data/lib/docopslab/dev/linters.rb +10 -3
  8. data/lib/docopslab/dev/version.rb +1 -1
  9. data/lib/docopslab/dev.rb +2 -1
  10. data/specs/data/default-manifest.yml +8 -0
  11. metadata +4 -38
  12. data/docs/agent/index.md +0 -76
  13. data/docs/agent/misc/bash-styles.md +0 -470
  14. data/docs/agent/missions/conduct-release.md +0 -298
  15. data/docs/agent/missions/setup-new-project.md +0 -344
  16. data/docs/agent/roles/devops-release-engineer.md +0 -195
  17. data/docs/agent/roles/docops-engineer.md +0 -257
  18. data/docs/agent/roles/planner-architect.md +0 -96
  19. data/docs/agent/roles/product-engineer.md +0 -201
  20. data/docs/agent/roles/product-manager.md +0 -163
  21. data/docs/agent/roles/project-manager.md +0 -175
  22. data/docs/agent/roles/qa-testing-engineer.md +0 -149
  23. data/docs/agent/roles/tech-docs-manager.md +0 -189
  24. data/docs/agent/roles/tech-writer.md +0 -217
  25. data/docs/agent/skills/asciidoc.md +0 -436
  26. data/docs/agent/skills/bash-cli-dev.md +0 -135
  27. data/docs/agent/skills/code-commenting.md +0 -384
  28. data/docs/agent/skills/fix-broken-links.md +0 -354
  29. data/docs/agent/skills/fix-jekyll-asciidoc-build-errors.md +0 -14
  30. data/docs/agent/skills/fix-spelling-issues.md +0 -10
  31. data/docs/agent/skills/git.md +0 -205
  32. data/docs/agent/skills/github-issues.md +0 -174
  33. data/docs/agent/skills/product-release-rollback-and-patching.md +0 -71
  34. data/docs/agent/skills/rake-cli-dev.md +0 -57
  35. data/docs/agent/skills/readme-driven-dev.md +0 -14
  36. data/docs/agent/skills/release-history.md +0 -23
  37. data/docs/agent/skills/ruby.md +0 -203
  38. data/docs/agent/skills/schemagraphy-sgyml.md +0 -21
  39. data/docs/agent/skills/tests-running.md +0 -33
  40. data/docs/agent/skills/tests-writing.md +0 -68
  41. data/docs/agent/skills/write-the-docs.md +0 -116
  42. data/docs/agent/topics/common-project-paths.md +0 -169
  43. data/docs/agent/topics/dev-tooling-usage.md +0 -195
  44. data/docs/agent/topics/devops-ci-cd.md +0 -57
  45. data/docs/agent/topics/product-docs-deployment.md +0 -31
  46. data/docs/library-readme.adoc +0 -39
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a31711e06193c9ba747b543752fffc6db59d0a9f97fc78bf696e091f96e1306
4
- data.tar.gz: 94139a83f22c0f878c76244aa9c0d413325efa1ddad8878ea730d74502f9d832
3
+ metadata.gz: c8417e50ad63a4c8d98af45af088b4088b7fb75106d2997da327c51d2d106f5d
4
+ data.tar.gz: 0be1d194d518f593d9523b7bd446113a9a140f5861bf538bc38791076a3616cf
5
5
  SHA512:
6
- metadata.gz: 80744416b127b753a0b8c8eb6b9ad9c8b4e4a1b6f8a60e4299d5a13ab66d95ce9b79168c9fd57b7da08e56c7d9d75c6e412e56fb4bdc171df1b9e6fc51688ff4
7
- data.tar.gz: f3f858dd1fa05e9d2ee3303bb682a748c02d83c537fa5649a883269e55a4fe671464ba0cece63ec71aa6a635ff5e2ed9ba5867ffe661e3c6000d9e162a092abc
6
+ metadata.gz: 139611f20da4c0fbe7a68b497c930989e4fbb7019633d627e3039248862a25c8381a4257b3be88edbeebaba29578af9e3e642a261250c5d179c632982f58b204
7
+ data.tar.gz: 786b54d7f24f35f80d0483ad5692b54ce737e7cc92d788ff2f959452789e8706c54a11b55979a0866ab64c35be1fbd78acc7b37065341eab2184f85cc4969fc1
data/README.adoc CHANGED
@@ -51,7 +51,7 @@ Internal development tooling for working on DocOps Lab codebases.
51
51
  [IMPORTANT]
52
52
  ====
53
53
  The environment described and provided here is _not_ optimized for DocOps Lab _applications_ used in third-party projects.
54
- For your own applications of DocOps Labs products like ReleaseHx and Issuer, see link:{docopslab_lab_www_url}/projects/docops-box[DocOps Box] for a full-featured docs-focused workspace, runtime, and production environment.
54
+ For your own applications of DocOps Labs products like ReleaseHx and Issuer, see link:{docopslab_lab_www_url}/projects/box[DocOps Box] for a full-featured docs-focused workspace, runtime, and production environment.
55
55
  ====
56
56
  // end::docopsbox[]
57
57
 
@@ -202,6 +202,8 @@ Assuming you are not initializing a new project, you can skip to <<environment-s
202
202
 
203
203
  If you are introducing `docopslab-dev` to an existing project, you first need to integrate and initialize it.
204
204
 
205
+ If you are introducing `docopslab-dev` to an existing project, integrate it into your existing Rakefile:
206
+
205
207
  . Add `docopslab-dev` to the project's `Gemfile`.
206
208
  +
207
209
  [source,ruby]
@@ -255,17 +257,28 @@ Every project using `docopslab-dev` is configured through a single manifest file
255
257
 
256
258
  The manifest has four top-level keys, each documented in detail in the relevant section:
257
259
 
260
+ ifdef::env-github[:usage_link_managed_tools: <<managed-tools,managed tools>>]
261
+ ifdef::env-github[:usage_link_file_syncing: <<file-syncing,file syncing>>]
262
+ ifdef::env-github[:usage_link_technical_documentation: <<technical-documentation,technical documentation>>]
263
+ ifdef::env-github[:usage_link_sync_cast: <<sync-cast,SyncCast>>]
264
+ ifdef::env-github[:usage_link_remote_library: <<remote-library,Remote Asset Library>>]
265
+ ifndef::env-github[:usage_link_managed_tools: link:/docs/lab-dev-usage/#managed-tools[managed tools]]
266
+ ifndef::env-github[:usage_link_file_syncing: link:/docs/lab-dev-usage/#file-syncing[file syncing]]
267
+ ifndef::env-github[:usage_link_technical_documentation: link:/docs/lab-dev-usage/#technical-documentation[technical documentation]]
268
+ ifndef::env-github[:usage_link_sync_cast: link:/docs/lab-dev-usage/#sync-cast[SyncCast]]
269
+ ifndef::env-github[:usage_link_remote_library: link:/docs/lab-dev-usage/#remote-library[Remote Asset Library]]
270
+
258
271
  `tools:`::
259
- <<managed-tools>>: active linters and their config file mappings.
272
+ {usage_link_managed_tools}: active linters and their config file mappings.
260
273
 
261
274
  `docs:`::
262
- <<file-syncing>> > <<technical-documentation>>: agent docs and guides to sync.
275
+ {usage_link_file_syncing} > {usage_link_technical_documentation}: agent docs and guides to sync.
263
276
 
264
277
  `templates:`::
265
- <<sync-cast>>: Liquid-rendered source-to-target entries.
278
+ {usage_link_sync_cast}: Liquid-rendered source-to-target entries.
266
279
 
267
280
  `library:`::
268
- <<remote-library,Remote Asset Library>>: library source and cache settings.
281
+ {usage_link_remote_library}: library source and cache settings.
269
282
  // end::manifest-intro[]
270
283
 
271
284
  // end::setup[]
@@ -335,8 +348,23 @@ All tools use the host project's Gemfile for version consistency.
335
348
  Make sure container-managed paths are not tracked in Git.
336
349
  Add `.config/.vendor/`, `scripts/.vendor`, and `.bundle/` to `.gitignore`.
337
350
  ====
351
+
352
+ [[docker-caching]]
353
+ ==== Advanced library caching with Docker
354
+
355
+ Mount your system cache directory to the container for persistent caching of library assets across sessions and projects.
356
+
357
+ ....
358
+ docker run -it --rm \
359
+ -v "$(pwd):/workspace" \
360
+ -v ~/.cache/docopslab:/home/docops/.cache/docopslab \
361
+ docopslab/dev
362
+ ....
363
+
338
364
  // end::usage[]
339
365
 
366
+ // tag::reference[]
367
+
340
368
  See <<more-example-commands>> for additional common commands.
341
369
 
342
370
  [[handy-labdev-tasks]]
@@ -480,6 +508,7 @@ For all other projects, the gem works in a standard package consumption mode:
480
508
  [TIP]
481
509
  The `labdev:sync:vale` task updates both the base config and the style packages.
482
510
 
511
+ ifdef::site-gen-jekyll[]
483
512
  A project's `.config/vale.local.ini` should look something like the one for this repository (DocOps/lab).
484
513
 
485
514
  .A snippet from DocOps/lab's `.config/vale.local.ini`
@@ -487,6 +516,7 @@ A project's `.config/vale.local.ini` should look something like the one for this
487
516
  ----
488
517
  include::../../.config/vale.local.ini[tag="core-settings"]
489
518
  ----
519
+ endif::[]
490
520
 
491
521
  This dual-mode system provides a robust workflow for both developing and consuming the centralized Vale styles.
492
522
 
@@ -906,6 +936,7 @@ library:
906
936
  The fetch tasks require either the `gh` CLI or `git` to be available on your `PATH`.
907
937
  The `gh` CLI is preferred and will be used when present.
908
938
 
939
+ // end::reference[]
909
940
 
910
941
  // tag::workflow[]
911
942
  [[task-reference]]
@@ -992,6 +1023,7 @@ Vale::
992
1023
  HTMLProofer::
993
1024
  +
994
1025
  bundle exec htmlproofer --ignore-urls "/www.github.com/,/foo.com/" ./_site
1026
+
995
1027
  // end::standard-usage[]
996
1028
  // end::usage[]
997
1029
  // end::workflow[]
@@ -1005,8 +1037,8 @@ Override settings by editing the project configs:
1005
1037
 
1006
1038
  * `{default_manifest_path}`
1007
1039
  * `.config/rubocop.yml`
1008
- * `.config/vale.ini`
1009
- * `.config/htmlproofer.yml`
1040
+ * `.config/vale.local.ini`
1041
+ * `.config/htmlproofer.local.yml`
1010
1042
  * `.config/actionlint.yml`
1011
1043
  * `.config/shellcheckrc`
1012
1044
 
@@ -1017,15 +1049,14 @@ Your configurations will inherit from the base configurations and source librari
1017
1049
 
1018
1050
  Projects using `docopslab-dev` will have a configuration structure like the following:
1019
1051
 
1020
- [source,tree]
1021
- ----
1052
+ ....
1022
1053
  .config/
1023
1054
  ├── docopslab-dev.yml # Project manifest (tracked)
1024
1055
  ├── actionlint.yml # Project config (tracked; inherits from base)
1025
1056
  ├── htmlproofer.local.yml # Project config (tracked; inherits from base)
1026
1057
  ├── htmlproofer.yml # Generated config (untracked)
1027
1058
  ├── rubocop.yml # Project config (tracked; inherits from base)
1028
- ├── shellcheckrc # ShellCheck config (tracked)
1059
+ ├── shellcheckrc # ShellCheck config (tracked)
1029
1060
  ├── vale.ini # Generated active config (untracked)
1030
1061
  ├── vale.local.ini # Project config (tracked; inherits from base)
1031
1062
  ├── .vendor/ # Base configs (untracked; synced)
@@ -1038,7 +1069,7 @@ scripts/ # Project override scripts
1038
1069
  .github/workflows/ # CI/CD workflows (tracked)
1039
1070
  env.docopslab # Environment variables (git tracked)
1040
1071
  env.private # Environment variables (git ignored)
1041
- ----
1072
+ ....
1042
1073
  // end::customization[]
1043
1074
 
1044
1075
 
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.metadata['changelog_uri'] = 'https://github.com/DocOps/lab/blob/main/gems/docopslab-dev/README.adoc'
21
21
  spec.metadata['rubygems_mfa_required'] = 'true'
22
22
 
23
- spec.files = Dir.glob('{lib,docs}/**/*') +
23
+ spec.files = Dir.glob('lib/**/*') +
24
24
  %w[README.adoc LICENSE docopslab-dev.gemspec] +
25
25
  Dir.glob('specs/data/*')
26
26
 
@@ -47,7 +47,7 @@ Gem::Specification.new do |spec|
47
47
  spec.add_dependency 'bundler-audit', '~> 0.9'
48
48
 
49
49
  # Testing and coverage
50
- spec.add_dependency 'html-proofer', '~> 5.0'
50
+ spec.add_dependency 'html-proofer', '~> 5.2'
51
51
  spec.add_dependency 'inch', '~> 0.8'
52
52
  spec.add_dependency 'simplecov', '~> 0.22'
53
53
 
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DocOpsLab
4
+ module Dev
5
+ # Detects and provides utilities for Docker container environments.
6
+ module DockerAware
7
+ class << self
8
+ # True if running inside a Docker container.
9
+ # Checks:
10
+ # 1. DOCOPSLAB_IN_DOCKER environment variable (set in Dockerfile)
11
+ # 2. /.dockerenv marker file (standard Docker indicator)
12
+ def running_in_docker?
13
+ ENV['DOCOPSLAB_IN_DOCKER'] == 'true' || File.exist?('/.dockerenv')
14
+ end
15
+
16
+ # True if Docker but without access to host's cache directory.
17
+ # This is the case when user runs: docker run -v "$(pwd):/workspace" ...
18
+ # without explicitly mounting ~/.cache/docopslab
19
+ def docker_without_cache?
20
+ running_in_docker? && !cache_mount_accessible?
21
+ end
22
+
23
+ # True if the Docker container can access the host's cache mount.
24
+ # Checks if /home/docops/.cache/docopslab exists and is readable.
25
+ def cache_mount_accessible?
26
+ cache_path = File.expand_path('~/.cache/docopslab')
27
+ File.exist?(cache_path) && File.directory?(cache_path) && File.readable?(cache_path)
28
+ rescue StandardError
29
+ false
30
+ end
31
+
32
+ # Workspace-relative cache path for Docker-only users.
33
+ # Returns path like /workspace/.docopslab-cache/
34
+ def workspace_cache_path
35
+ File.join('/workspace', '.docopslab-cache')
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -71,8 +71,8 @@ module DocOpsLab
71
71
  true
72
72
  end
73
73
 
74
- def bootstrap_project
75
- puts ' Bootstrapping DocOps Lab project...'
74
+ def bootstrap_project context = nil
75
+ puts '🚀 Bootstrapping DocOps Lab project...'
76
76
  puts ''
77
77
 
78
78
  created = []
@@ -90,13 +90,27 @@ module DocOpsLab
90
90
  puts ''
91
91
  if created.any?
92
92
  puts "✅ Bootstrap complete! Created: #{created.join(', ')}"
93
- puts ''
94
- puts 'Next steps:'
95
- puts ' 1. bundle exec rake labdev:sync:all # or: docker run ... labdev:sync:all'
96
- puts ' 2. Start using labdev tasks!'
97
93
  else
98
- puts '✅ Project already initialized, nothing to create'
94
+ puts '✅ Bootstrap files already exist'
99
95
  end
96
+
97
+ # Initialize templates from manifest (if context provided, use it; else use Dev context)
98
+ context ||= Dev
99
+ puts ''
100
+ puts '🎨 Initializing templates from manifest...'
101
+ template_results = CastOps.init_cast_targets(context)
102
+
103
+ if template_results.any?
104
+ puts "✅ Initialized #{template_results.size} template(s)"
105
+ else
106
+ puts '✅ Templates already initialized'
107
+ end
108
+
109
+ puts ''
110
+ puts 'Next steps:'
111
+ puts ' 1. bundle exec rake labdev:sync:all # or: docker run ... labdev:sync:all'
112
+ puts ' 2. Review and customize the generated files'
113
+ puts ' 3. Start using labdev tasks: bundle exec rake labdev:check:env'
100
114
  end
101
115
  end
102
116
  end
@@ -11,7 +11,16 @@ require_relative 'library/fetch'
11
11
  module DocOpsLab
12
12
  module Dev
13
13
  # Remote library fetch, cache, and resolution.
14
- # Manages a host-wide asset cache at ~/.cache/docopslab/dev/library/.
14
+ # Manages a host-wide asset cache at ~/.cache/docopslab/dev/library/ (native)
15
+ # or ./.docopslab-cache/ (Docker without cache mount).
16
+ #
17
+ # Docker Cache Strategy:
18
+ # - If running in Docker with host cache mounted (-v ~/.cache/docopslab:...):
19
+ # uses host cache path (DockerAware.cache_mount_accessible? = true)
20
+ # - If running in Docker without cache mount: uses workspace-relative cache
21
+ # (./.docopslab-cache/) which persists with the project
22
+ # - If running natively: uses ~/.cache/docopslab/ via XDG_CACHE_HOME
23
+ #
15
24
  # Callers should use this module directly: Library.fetch!, Library.resolve(path), etc.
16
25
  module Library
17
26
  class << self
@@ -285,6 +294,10 @@ module DocOpsLab
285
294
  # local_path points to the 'current' snapshot dir, so its parent is
286
295
  # the cache root (mirrors Cache::XDG_CACHE_SUBPATH layout).
287
296
  cr = File.join(File.expand_path(config['local_path']), '..') if cr.nil? && local_path_active?(config)
297
+
298
+ # In Docker without access to host cache, use workspace-local cache
299
+ cr = DockerAware.workspace_cache_path if cr.nil? && DockerAware.docker_without_cache?
300
+
288
301
  Cache.with_root_override(cr ? File.expand_path(cr) : nil, &)
289
302
  end
290
303
 
@@ -488,10 +488,17 @@ module DocOpsLab
488
488
  def check_shebang file_path
489
489
  return false unless File.exist?(file_path)
490
490
 
491
- first_line = File.open(file_path, &:readline).strip
491
+ lines = File.readlines(file_path).map(&:strip)
492
+ return false if lines.empty?
493
+
494
+ first_line = lines[0]
495
+ second_line = lines[1]
496
+
497
+ # If second line has shellcheck directive for sh, require sh shebang
498
+ return first_line == '#!/bin/sh' if second_line == '# shellcheck shell=sh'
499
+
500
+ # Otherwise, require bash shebang
492
501
  first_line == '#!/usr/bin/env bash'
493
- rescue EOFError
494
- false
495
502
  rescue StandardError => e
496
503
  puts "⚠️ Error checking shebang for #{file_path}: #{e.message}"
497
504
  false
@@ -2,7 +2,7 @@
2
2
 
3
3
  module DocOpsLab
4
4
  module Dev
5
- VERSION = '0.2.0'
5
+ VERSION = '0.3.0'
6
6
  RUBY_TARGET = '3.2.7'
7
7
  end
8
8
  end
data/lib/docopslab/dev.rb CHANGED
@@ -8,6 +8,7 @@ require 'pathname'
8
8
  require 'shellwords'
9
9
  require_relative 'dev/version' # includes RUBY_TARGET
10
10
  require_relative 'dev/paths'
11
+ require_relative 'dev/docker_aware'
11
12
  require_relative 'dev/manifest'
12
13
  require_relative 'dev/spell_check'
13
14
  require_relative 'dev/log_parser'
@@ -195,7 +196,7 @@ module DocOpsLab
195
196
  end
196
197
 
197
198
  def bootstrap_project
198
- Initializer.bootstrap_project
199
+ Initializer.bootstrap_project(self)
199
200
  end
200
201
 
201
202
  def install_vale_styles
@@ -39,6 +39,14 @@ tools:
39
39
  - source: vale/project.ini
40
40
  target: .config/vale.local.ini
41
41
  synced: false
42
+ paths:
43
+ lint: ['.']
44
+ skip:
45
+ - build/*
46
+ - specs/*
47
+ - .agent/**/*
48
+ - .config/.vendor/**/*
49
+ exts: ['adoc']
42
50
 
43
51
  - tool: htmlproofer
44
52
  enabled: false # Disabled by default, enable per project
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docopslab-dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DocOps Lab
@@ -211,14 +211,14 @@ dependencies:
211
211
  requirements:
212
212
  - - "~>"
213
213
  - !ruby/object:Gem::Version
214
- version: '5.0'
214
+ version: '5.2'
215
215
  type: :runtime
216
216
  prerelease: false
217
217
  version_requirements: !ruby/object:Gem::Requirement
218
218
  requirements:
219
219
  - - "~>"
220
220
  - !ruby/object:Gem::Version
221
- version: '5.0'
221
+ version: '5.2'
222
222
  - !ruby/object:Gem::Dependency
223
223
  name: inch
224
224
  requirement: !ruby/object:Gem::Requirement
@@ -258,47 +258,13 @@ files:
258
258
  - LICENSE
259
259
  - README.adoc
260
260
  - docopslab-dev.gemspec
261
- - docs/agent/index.md
262
- - docs/agent/misc/bash-styles.md
263
- - docs/agent/missions/conduct-release.md
264
- - docs/agent/missions/setup-new-project.md
265
- - docs/agent/roles/devops-release-engineer.md
266
- - docs/agent/roles/docops-engineer.md
267
- - docs/agent/roles/planner-architect.md
268
- - docs/agent/roles/product-engineer.md
269
- - docs/agent/roles/product-manager.md
270
- - docs/agent/roles/project-manager.md
271
- - docs/agent/roles/qa-testing-engineer.md
272
- - docs/agent/roles/tech-docs-manager.md
273
- - docs/agent/roles/tech-writer.md
274
- - docs/agent/skills/asciidoc.md
275
- - docs/agent/skills/bash-cli-dev.md
276
- - docs/agent/skills/code-commenting.md
277
- - docs/agent/skills/fix-broken-links.md
278
- - docs/agent/skills/fix-jekyll-asciidoc-build-errors.md
279
- - docs/agent/skills/fix-spelling-issues.md
280
- - docs/agent/skills/git.md
281
- - docs/agent/skills/github-issues.md
282
- - docs/agent/skills/product-release-rollback-and-patching.md
283
- - docs/agent/skills/rake-cli-dev.md
284
- - docs/agent/skills/readme-driven-dev.md
285
- - docs/agent/skills/release-history.md
286
- - docs/agent/skills/ruby.md
287
- - docs/agent/skills/schemagraphy-sgyml.md
288
- - docs/agent/skills/tests-running.md
289
- - docs/agent/skills/tests-writing.md
290
- - docs/agent/skills/write-the-docs.md
291
- - docs/agent/topics/common-project-paths.md
292
- - docs/agent/topics/dev-tooling-usage.md
293
- - docs/agent/topics/devops-ci-cd.md
294
- - docs/agent/topics/product-docs-deployment.md
295
- - docs/library-readme.adoc
296
261
  - lib/docopslab/dev.rb
297
262
  - lib/docopslab/dev/auto_fix_asciidoc.rb
298
263
  - lib/docopslab/dev/cast_ops.rb
299
264
  - lib/docopslab/dev/checkers.rb
300
265
  - lib/docopslab/dev/config_manager.rb
301
266
  - lib/docopslab/dev/data_utils.rb
267
+ - lib/docopslab/dev/docker_aware.rb
302
268
  - lib/docopslab/dev/file_utils.rb
303
269
  - lib/docopslab/dev/git_branch.rb
304
270
  - lib/docopslab/dev/git_hooks.rb
data/docs/agent/index.md DELETED
@@ -1,76 +0,0 @@
1
- # DocOps Lab AI Agent Documentation
2
-
3
- ## Roles
4
-
5
- #### [AGENT ROLE: Assistant Planner / Project Architect](/docs/agent/planner-architect/)
6
-
7
- #### [AGENT ROLE: Assistant Product Manager](/docs/agent/product-manager/)
8
-
9
- #### [AGENT ROLE: DevOps / Release Engineer](/docs/agent/devops-release-engineer/)
10
-
11
- #### [AGENT ROLE: DocOps Engineer](/docs/agent/docops-engineer/)
12
-
13
- #### [AGENT ROLE: Product Engineer](/docs/agent/product-engineer/)
14
-
15
- #### [AGENT ROLE: Project Manager](/docs/agent/project-manager/)
16
-
17
- #### [AGENT ROLE: QA / Testing Specialist](/docs/agent/qa-testing-engineer/)
18
-
19
- #### [AGENT ROLE: Technical Documentation Manager](/docs/agent/tech-docs-manager/)
20
-
21
- #### [AGENT ROLE: Technical Writer](/docs/agent/tech-writer/)
22
-
23
- ## Skills
24
-
25
- #### [AI Agent Instructions for Git Operations](/docs/agent/git/)
26
-
27
- #### [AI Agent’s Guide to Writing in AsciiDoc](/docs/agent/asciidoc/)
28
-
29
- #### [Agent Rake CLI Guide](/docs/agent/rake-cli-dev/)
30
-
31
- #### [Bash CLI Development for Agents](/docs/agent/bash-cli-dev/)
32
-
33
- #### [Bash Coding for Agents](/docs/agent/bash-styles/)
34
-
35
- #### [Code Commenting](/docs/agent/code-commenting/)
36
-
37
- #### [Documenting Product Changes](/docs/agent/write-the-docs/)
38
-
39
- #### [Fix Broken Links](/docs/agent/fix-broken-links/)
40
-
41
- #### [Fix Jekyll AsciiDoc Build Errors](/docs/agent/fix-jekyll-asciidoc-build-errors/)
42
-
43
- #### [Fix Spelling Issues in Documentation](/docs/agent/fix-spelling-issues/)
44
-
45
- #### [GitHub Issues Management for AI Agents](/docs/agent/github-issues/)
46
-
47
- #### [Preparing a Version Release History Document](/docs/agent/release-history/)
48
-
49
- #### [README-driven Development](/docs/agent/readme-driven-dev/)
50
-
51
- #### [Rolling Back and/or Patching a Product Release](/docs/agent/product-release-rollback-and-patching/)
52
-
53
- #### [Ruby Coding Guide for DocOps Lab AI Agents](/docs/agent/ruby/)
54
-
55
- #### [Running Tests in DocOps Lab Projects](/docs/agent/tests-running/)
56
-
57
- #### [SchemaGraphy/SGYML 101](/docs/agent/schemagraphy-sgyml/)
58
-
59
- #### [Writing Tests for DocOps Lab Projects](/docs/agent/tests-writing/)
60
-
61
- ## Topics
62
-
63
- #### [AI Agent Instructions for In-house Dev-Tooling Usage](/docs/agent/dev-tooling-usage/)
64
-
65
- #### [AI Agent Orientation to DocOps Lab DevOps/CI/CD Practices](/docs/agent/devops-ci-cd/)
66
-
67
- #### [Overview of Common Paths/Files in DocOps Lab Projects](/docs/agent/common-project-paths/)
68
-
69
- #### [Product Documentation Deployment](/docs/agent/product-docs-deployment/)
70
-
71
- ## Missions
72
-
73
- #### [MISSION: Conduct a Product Release](/docs/agent/conduct-release/)
74
-
75
- #### [MISSION: Start a New DocOps Lab Project](/docs/agent/setup-new-project/)
76
-