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
@@ -13,20 +13,28 @@ Table of Contents
13
13
 
14
14
  - GitHub Issues Labels
15
15
  - Change Documentation
16
+ - User-Facing Documentation
17
+ - Internal Documentation
16
18
  - Release Note Entry
17
19
 
18
20
  ## GitHub Issues Labels
19
21
 
20
22
  GitHub Issues are use specific labels to indicate documentation expectations.
21
23
 
22
- **`needs:docs`** :
23
- The issue requires documentation updates as part of its resolution. Documentation updates will likely be in a sub-issue with a `documentation` label.
24
-
25
- **`needs:note`** :
26
- The issue requires a note in the release history when resolved. Release notes are appended to the description body under `## Release Note`.
27
-
28
- **`changelog`** :
29
- The issue summary should be included in the changelog for the next release, even if no release note is included.
24
+ <dl>
25
+ <dt class="hdlist1">`needs:docs`</dt>
26
+ <dd>
27
+ The issue requires documentation updates as part of its resolution. Documentation updates will likely be in a sub-issue with a `documentation` label.
28
+ </dd>
29
+ <dt class="hdlist1">`needs:note`</dt>
30
+ <dd>
31
+ The issue requires a note in the release history when resolved. Release notes are appended to the description body under `## Release Note`.
32
+ </dd>
33
+ <dt class="hdlist1">`changelog`</dt>
34
+ <dd>
35
+ The issue summary should be included in the changelog for the next release, even if no release note is included.
36
+ </dd>
37
+ </dl>
30
38
 
31
39
  Issues labeled `changelog` will automatically appear in the Changelog section of the Release History document. Release notes must be manually entered.
32
40
 
@@ -38,6 +46,59 @@ For early product versions, most documentation appears in the root `README.adoc`
38
46
 
39
47
  Reference matter should be documented where it is defined, such as in `specs/data/*.yml` files.
40
48
 
49
+ When a product matures (prior to 1.0), the documentation should move into new paths, separated depending on whether it is user-facing or internal.
50
+
51
+ In either case, the way to discover where to put documentation changes is to use a `docopslab-dev` _skim_ task on the existing docs source. These skims are semantic outlines of the source files in their converted state. They can be used for navigation, content discovery, and change impact analysis.
52
+
53
+ ### User-Facing Documentation
54
+
55
+ End-user docs, including API documentation, is usually sourced in `docs/content/`, alongside asset files for the documentation site (images, CSS, etc.).
56
+
57
+ The `docs/` path is typically a Jekyll site’s source path, but in most cases a pre-build operation will generate supplemental files in `docs/built/` or the like.
58
+
59
+ If the changes you are documenting are user-facing, use the tasks below to determine where the relevant documentation lives.
60
+
61
+ <dl>
62
+ <dt class="hdlist1">Skim the docs</dt>
63
+ </dl>
64
+
65
+ ```
66
+ bundle exec rake labdev:skim:adoc[README.adoc,tree,json] > .agent/docs/readme.json
67
+ bundle exec rake labdev:skim:adoc[docs/,tree,json] > .agent/docs/skim-docs.json
68
+ ```
69
+
70
+ ### Internal Documentation
71
+
72
+ Generally speaking, internal documentation (for developers, maintainers, and their AI agents), belongs in `_docs/` and `.agent/docs/` paths.
73
+
74
+ The `_docs/agent/` path is for overlays that take priority over parallel docs in `.agent/docs/` (maintained by docopslab-dev library syncing).
75
+
76
+ <dl>
77
+ <dt class="hdlist1">Skim the README</dt>
78
+ </dl>
79
+
80
+ ```
81
+ bundle exec rake labdev:skim:adoc[README.adoc,tree,json] > .agent/docs/readme.json
82
+ ```
83
+
84
+ <dl>
85
+ <dt class="hdlist1">Skim the internal docs</dt>
86
+ </dl>
87
+
88
+ ```
89
+ bundle exec rake labdev:skim:adoc[_docs/,tree,json] > .agent/docs/skim-internal.json
90
+ ```
91
+
92
+ <dl>
93
+ <dt class="hdlist1">Skim the agent docs to see if any overlay is needed</dt>
94
+ </dl>
95
+
96
+ ```
97
+ bundle exec rake labdev:skim:md[.agent/docs/:_docs/agent/,tree,json] > .agent/docs/skim-agent.json
98
+ ```
99
+
100
+ If a local instruction contradicts or differs arbitrarily from the main DocOps Lab developer/contributor docs, create an overlay file in `_docs/agent/*` with the same sub-path and filename.
101
+
41
102
  ## Release Note Entry
42
103
 
43
104
  User-facing product changes that deserve explanation (not just notice) require a release note.
@@ -49,6 +110,7 @@ Example
49
110
  ```markdown
50
111
  ## Release Note
51
112
 
52
- The content of the release note goes here, in Markdown format. Try to keep it to one paragraph with minimal formatting.
113
+ The content of the release note goes here, in Markdown format.
114
+ Try to keep it to one paragraph with minimal formatting.
53
115
  ```
54
116
 
@@ -22,96 +22,148 @@ Table of Contents
22
22
 
23
23
  Only two files are required in _every_ DocOps Lab project, though most projects should contain most of these files, depending on the nature of the codebase. A `docs/` or `_docs/` directory is close to the third universal requirement, necessary by the time a project reaches version 1.0.0.
24
24
 
25
- **`README.adoc`** :
26
- Project documentation in AsciiDoc format, providing an overview and instructions. DocOps Lab READMEs typically include single-sourcing data for the product as AsciiDoc attributes. See the Sourcerer project.
27
-
28
- **`LICENSE`** :
29
- The project’s license file, specifying the terms under which the code can be used and distributed. Almost always **MIT License**.
30
-
31
- **`docs/` / `_docs/`** :
32
- Directory for additional documentation, guides, and related materials. Typically `docs/` for product _user_ documentation, whereas `_docs/` is for (a) repos that are mainly for websites or (b) _internal engineering_ documentation files (more often found at `docs/_docs/`). Both might be present in the case of a website that hosts docs and _has its own_ docs.
33
-
34
- A `docs/` directory will typically have its own `Gemfile`, configs, and assets for Jekyll, Yard, and other generators. A `_docs/` directory is usually a content-only subordinate to the main project and its content, and may not have separate configs or assets.
25
+ <dl>
26
+ <dt class="hdlist1">`README.adoc`</dt>
27
+ <dd>
28
+ Project documentation in AsciiDoc format, providing an overview and instructions. DocOps Lab READMEs typically include single-sourcing data for the product as AsciiDoc attributes. See the [AsciiSourcerer project](https://github.com/DocOps/asciisourcerer).
29
+ </dd>
30
+ <dt class="hdlist1">`LICENSE`</dt>
31
+ <dd>
32
+ The project’s license file, specifying the terms under which the code can be used and distributed. Almost always **MIT License**.
33
+ </dd>
34
+ <dt class="hdlist1">`docs/` / `_docs/`</dt>
35
+ <dd>
36
+ Directory for additional documentation, guides, and related materials. Typically `docs/` for product _user_ documentation, whereas `_docs/` is for (a) repos that are mainly for websites or (b) _internal engineering_ documentation files (more often found at `docs/_docs/`). Both might be present in the case of a website that hosts docs and _has its own_ docs.
37
+
38
+ A `docs/` directory will typically have its own `Gemfile`, configs, and assets for Jekyll, Yard, and other generators. A `_docs/` directory is usually a content-only subordinate to the main project and its content, and may not have separate configs or assets.
39
+ </dd>
40
+ </dl>
35
41
 
36
42
  ## Configuration
37
43
 
38
- **`.config/`** :
39
- Configuration files for tooling used in development, building, or QA/testing. Not always used.
40
-
41
- **`.config/releasehx.yml`** :
42
- Configuration file for ReleaseHx, a tool for generating release notes and changelogs.
43
-
44
- **`.config/jekyll.yml`** :
45
- Configuration file for Jekyll docs publication. For Jekyll extensions (themes and plugins), this file is typically `./_config.yml` to conform to Jekyll defaults.
46
-
47
- **`.config/vale.ini`** :
48
- Configuration file for Vale, a linter for prose, defining linting rules and styles.
49
-
50
- **`.config/.vendor/`** :
51
- Directory for upstream configuration files, mostly or entirely managed by `docopsab-dev` gem. These files are not tracked in Git but are synced with upstream sources and maintained by DocOps Lab.
44
+ <dl>
45
+ <dt class="hdlist1">`.config/`</dt>
46
+ <dd>
47
+ Configuration files for tooling used in development, building, or QA/testing. Not always used.
48
+
49
+ <dl>
50
+ <dt class="hdlist1">`.config/releasehx.yml`</dt>
51
+ <dd>
52
+ Configuration file for ReleaseHx, a tool for generating release notes and changelogs.
53
+ </dd>
54
+ <dt class="hdlist1">`.config/jekyll.yml`</dt>
55
+ <dd>
56
+ Configuration file for Jekyll docs publication. For Jekyll extensions (themes and plugins), this file is typically `./_config.yml` to conform to Jekyll defaults.
57
+ </dd>
58
+ <dt class="hdlist1">`.config/vale.ini`</dt>
59
+ <dd>
60
+ Configuration file for Vale, a linter for prose, defining linting rules and styles.
61
+ </dd>
62
+ </dl>
63
+ </dd>
64
+ <dt class="hdlist1">`.config/.vendor/`</dt>
65
+ <dd>
66
+ Directory for upstream configuration files, mostly or entirely managed by `docopsab-dev` gem. These files are not tracked in Git but are synced with upstream sources and maintained by DocOps Lab.
67
+ </dd>
68
+ </dl>
52
69
 
53
70
  ## Containerization
54
71
 
55
- **`Dockerfile`** :
56
- Dockerfile for building the project’s Docker image, defining the environment and dependencies.
57
-
58
- **`.dockerignore`** :
59
- Specifies files and directories to ignore when building the Docker image.
60
-
61
- **`docker-compose.yml`** :
62
- Defines and runs multi-container Docker applications, _if applicable_.
72
+ <dl>
73
+ <dt class="hdlist1">`Dockerfile`</dt>
74
+ <dd>
75
+ Dockerfile for building the project’s Docker image, defining the environment and dependencies.
76
+ </dd>
77
+ <dt class="hdlist1">`.dockerignore`</dt>
78
+ <dd>
79
+ Specifies files and directories to ignore when building the Docker image.
80
+ </dd>
81
+ <dt class="hdlist1">`docker-compose.yml`</dt>
82
+ <dd>
83
+ Defines and runs multi-container Docker applications, _if applicable_.
84
+ </dd>
85
+ </dl>
63
86
 
64
87
  ## Ruby Files
65
88
 
66
89
  These files are common to Ruby-based DocOps Lab projects. The `Gemfile` and `Gemfile.lock` may be present in non-Ruby codebases that use Ruby development dependencies, such as ReleaseHx.
67
90
 
68
- **`Gemfile`** :
69
- Ruby Bundler file, specifying gem dependencies for the project.
70
-
71
- **`Gemfile.lock`** :
72
- Generated by Bundler, this file locks the gem versions used in the project.
73
-
74
- **`.ruby-version`** :
75
- Specifies the Ruby version used in the project.
76
-
77
- **`<gemname>.gemspec`** :
78
- Ruby gem specification file, defining the gem’s metadata and dependencies.
91
+ <dl>
92
+ <dt class="hdlist1">`Gemfile`</dt>
93
+ <dd>
94
+ Ruby Bundler file, specifying gem dependencies for the project.
95
+ </dd>
96
+ <dt class="hdlist1">`Gemfile.lock`</dt>
97
+ <dd>
98
+ Generated by Bundler, this file locks the gem versions used in the project.
99
+ </dd>
100
+ <dt class="hdlist1">`.ruby-version`</dt>
101
+ <dd>
102
+ Specifies the Ruby version used in the project.
103
+ </dd>
104
+ <dt class="hdlist1">`<gemname>.gemspec`</dt>
105
+ <dd>
106
+ Ruby gem specification file, defining the gem’s metadata and dependencies.
107
+ </dd>
108
+ </dl>
79
109
 
80
110
  ## Automation Paths
81
111
 
82
- **`Rakefile`** :
83
- Ruby Rakefile for defining tasks and automation scripts.
84
-
85
- **`scripts/`** :
86
- Custom scripts for automating tasks related to development, testing, and deployment. See [scripts] below.
87
-
88
- **`.github/workflows/`** :
89
- GitHub Actions workflows for CI/CD, defining automated build, test, and deployment processes.
112
+ <dl>
113
+ <dt class="hdlist1">`Rakefile`</dt>
114
+ <dd>
115
+ Ruby Rakefile for defining tasks and automation scripts.
116
+ </dd>
117
+ <dt class="hdlist1">`scripts/`</dt>
118
+ <dd>
119
+ Custom scripts for automating tasks related to development, testing, and deployment.
120
+ </dd>
121
+ <dt class="hdlist1">`.github/workflows/`</dt>
122
+ <dd>
123
+ GitHub Actions workflows for CI/CD, defining automated build, test, and deployment processes.
124
+ </dd>
125
+ </dl>
90
126
 
91
127
  ## Quality Assurance Paths
92
128
 
93
129
  Any files containing _requirements_, _specifications_, _definitions_, _schemas_, or _tests_ should be stored in the `specs/` directory, as detailed in [DocOps Lab Testing & Specifications](/docs/testing/).
94
130
 
95
- **`specs/`** :
96
- General directory for content that specifies, defines, or tests elements of the product. See [DocOps Lab Testing & Specifications](/docs/testing/).
97
-
98
- **`specs/data/`** :
99
- Definition and schema files.
100
-
101
- **`specs/tests/rspec/`** :
102
- RSpec tests for Ruby codebases.
103
-
104
- **`../<product-slug>-demo/`** :
105
- Major products typically have a sibling repo that serves as a proving grounds and/or for demonstrative purposes.
131
+ <dl>
132
+ <dt class="hdlist1">`specs/`</dt>
133
+ <dd>
134
+ General directory for content that specifies, defines, or tests elements of the product. See [DocOps Lab Testing & Specifications](/docs/testing/).
135
+
136
+ <dl>
137
+ <dt class="hdlist1">`specs/data/`</dt>
138
+ <dd>
139
+ Definition and schema files.
140
+ </dd>
141
+ <dt class="hdlist1">`specs/tests/rspec/`</dt>
142
+ <dd>
143
+ RSpec tests for Ruby codebases.
144
+ </dd>
145
+ <dt class="hdlist1">`../<product-slug>-demo/`</dt>
146
+ <dd>
147
+ Major products typically have a sibling repo that serves as a proving grounds and/or for demonstrative purposes.
148
+ </dd>
149
+ </dl>
150
+ </dd>
151
+ </dl>
106
152
 
107
153
  ## Generative AI Paths
108
154
 
109
- **`.github/copilot-instructions.md`** :
110
- Instructions for GitHub Copilot, providing guidance on how any cloud-based GH Copilot assistance should be oriented toward a given codebase.
111
-
112
- **`AGENTS.md`** :
113
- General for _local_ coding agents. May duplicate `.github/copilot-instructions.md` or provide additional context.
114
-
115
- **`.agent/`** :
116
- A directory for temporary/scratch files used by local coding agents.
155
+ <dl>
156
+ <dt class="hdlist1">`.github/copilot-instructions.md`</dt>
157
+ <dd>
158
+ Instructions for GitHub Copilot, providing guidance on how any cloud-based GH Copilot assistance should be oriented toward a given codebase.
159
+ </dd>
160
+ <dt class="hdlist1">`AGENTS.md`</dt>
161
+ <dd>
162
+ General for _local_ coding agents. May duplicate `.github/copilot-instructions.md` or provide additional context.
163
+ </dd>
164
+ <dt class="hdlist1">`.agent/`</dt>
165
+ <dd>
166
+ A directory for temporary/scratch files used by local coding agents.
167
+ </dd>
168
+ </dl>
117
169
 
@@ -2,24 +2,32 @@
2
2
 
3
3
  This document is intended for AI agents operating within a DocOps Lab environment.
4
4
 
5
- This guide pertains to the `docopslab-dev` environment. For complete documentation, see the [project’s README](https://github.com/DocOps/lab/blob/main/gems/docopslab-dev/README.adoc).
5
+ This guide pertains to the `docopslab-dev` environment. For complete documentation, see the [project’s README](/projects/docops-box/).
6
6
 
7
- > **IMPORTANT:** The environment described and provided here is _not_ optimized for DocOps Lab _applications_ used in third-party projects. For your own applications of DocOps Labs products like ReleaseHx and Issuer, see [DocOps Box](https://github.com/DocOps/box) for a full-featured docs-focused workspace, runtime, and production environment.
7
+ > **IMPORTANT:** The environment described and provided here is _not_ optimized for DocOps Lab _applications_ used in third-party projects. For your own applications of DocOps Labs products like ReleaseHx and Issuer, see [DocOps Box](/projects/docops-box) for a full-featured docs-focused workspace, runtime, and production environment.
8
8
 
9
- This gem mainly supplies rake tasks for performing common development operations across unified configurations and sub-libraries.
9
+ This gem mainly supplies rake tasks for performing common development operations across and between projects.
10
10
 
11
11
  Table of Contents
12
12
 
13
13
  - Standard Usage
14
14
  - Override Commands
15
- - More Example Commands
16
- - Tasks and Workflow
17
- - Typical Workflow
15
+ - Task Reference
16
+ - Typical Workflow
17
+ - Override Commands
18
18
  - Customization
19
- - Local Overrides
19
+ - Local Overrides
20
20
 
21
21
  ## Standard Usage
22
22
 
23
+ With a proper native Ruby environment, use the `bundle exec` prefix to ensure consistent dependency versioning.
24
+
25
+ Sync all configs and assets
26
+
27
+ ```
28
+ bundle exec rake labdev:sync:all
29
+ ```
30
+
23
31
  Run all linters
24
32
 
25
33
  ```
@@ -29,65 +37,39 @@ bundle exec rake labdev:lint:all
29
37
  Auto-fix safe issues
30
38
 
31
39
  ```
32
- bundle exec rake labdev:heal
40
+ bundle exec rake labdev:heal:all
33
41
  ```
34
42
 
35
43
  ## Override Commands
36
44
 
37
45
  Most executions of the packaged tools are handled through Rake tasks, but you can always run them directly, especially to pass arguments not built into the tasks.
38
46
 
39
- **RuboCop** :
40
- ```
41
- bundle exec rubocop --config .config/rubocop.yml [options]
42
- bundle exec rubocop --config .config/rubocop.yml --auto-correct-all
43
- bundle exec rubocop --config .config/rubocop.yml --only Style/StringLiterals
44
- ```
45
-
46
- **Vale** :
47
- ```
48
- vale --config=.config/vale.ini [options] [files]
49
- vale --config=.config/vale.ini README.adoc
50
- vale --config=.config/vale.ini --minAlertLevel=error .
51
- ```
52
-
53
- **HTMLProofer** :
54
- ```
55
- bundle exec htmlproofer --ignore-urls "/www.github.com/,/foo.com/" ./_site
56
- ```
57
-
58
- ## More Example Commands
59
-
60
- Lint specific Ruby file with specific rule
61
-
62
- ```
63
- bundle exec rake 'labdev:lint:ruby[lib/myfile.rb,Style/StringLiterals]'
64
- ```
65
-
66
- Lint all AsciiDoc files for a specific Vale rule
67
-
47
+ <dl>
48
+ <dt class="hdlist1">RuboCop</dt>
49
+ <dd>
68
50
  ```
69
- bundle exec rake 'labdev:lint:adoc[,DocOpsLab-Authoring.ExNotEg]'
51
+ bundle exec rubocop --config .config/rubocop.yml [options]
52
+ bundle exec rubocop --config .config/rubocop.yml --auto-correct-all
53
+ bundle exec rubocop --config .config/rubocop.yml --only Style/StringLiterals
70
54
  ```
71
-
72
- Lint specific shell script
73
-
55
+ </dd>
56
+ <dt class="hdlist1">Vale</dt>
57
+ <dd>
74
58
  ```
75
- bundle exec rake 'labdev:lint:bash[scripts/docksh]'
59
+ vale --config=.config/vale.ini [options] [files]
60
+ vale --config=.config/vale.ini README.adoc
61
+ vale --config=.config/vale.ini --minAlertLevel=error .
76
62
  ```
77
-
78
- Lint specific file with Vale (text mode)
79
-
63
+ </dd>
64
+ <dt class="hdlist1">HTMLProofer</dt>
65
+ <dd>
80
66
  ```
81
- bundle exec rake 'labdev:lint:text[_docs/myfile.adoc]'
67
+ bundle exec htmlproofer --ignore-urls "/www.github.com/,/foo.com/" ./_site
82
68
  ```
69
+ </dd>
70
+ </dl>
83
71
 
84
- Show a specific lint rule profile
85
-
86
- ```
87
- bundle exec rake 'labdev:show:rule[vale,RedHat]'
88
- ```
89
-
90
- ## Tasks and Workflow
72
+ ## Task Reference
91
73
 
92
74
  ```
93
75
  bundle exec rake --tasks | grep labdev:
@@ -118,39 +100,16 @@ git commit -m "Add new feature"
118
100
 
119
101
  1. Auto-fix what you can.
120
102
 
121
- ```
122
- bundle exec rake labdev:heal
123
- ```
124
103
  2. Review the changes.
125
104
 
126
- ```
127
- git diff
128
- ```
129
105
  3. Commit the fixes.
130
106
 
131
- ```
132
- git add -A
133
- git commit -m "Auto-fix linting issues"
134
- ```
135
107
  4. Handle any remaining manual fixes.
136
108
 
137
- ```
138
- bundle exec rake labdev:lint:all
139
- ```
140
109
  5. Fix remaining issues manually.
141
110
 
142
- ```
143
- git add -A
144
- git commit -m "Fix remaining linting issues"
145
- ```
146
111
  6. Try pushing.
147
112
 
148
- ```
149
- git push
150
- ```
151
-
152
- If all blocking issues are cleared, the push should succeed. Otherwise, more cleanup is needed.
153
-
154
113
  > **TIP:** Bypass the pre-push gates (usually to test or demo the failure at origin):
155
114
  >
156
115
  >
@@ -161,15 +120,49 @@ If all blocking issues are cleared, the push should succeed. Otherwise, more cle
161
120
  > git push --no-verify
162
121
  > ```
163
122
 
123
+ ### Override Commands
124
+
125
+ Most executions of the packaged tools are handled through Rake tasks, but you can always run them directly, especially to pass arguments not built into the tasks.
126
+
127
+ <dl>
128
+ <dt class="hdlist1">RuboCop</dt>
129
+ <dd>
130
+ ```
131
+ bundle exec rubocop --config .config/rubocop.yml [options]
132
+ bundle exec rubocop --config .config/rubocop.yml --auto-correct-all
133
+ bundle exec rubocop --config .config/rubocop.yml --only Style/StringLiterals
134
+ ```
135
+ </dd>
136
+ <dt class="hdlist1">Vale</dt>
137
+ <dd>
138
+ ```
139
+ vale --config=.config/vale.ini [options] [files]
140
+ vale --config=.config/vale.ini README.adoc
141
+ vale --config=.config/vale.ini --minAlertLevel=error .
142
+ ```
143
+ </dd>
144
+ <dt class="hdlist1">HTMLProofer</dt>
145
+ <dd>
146
+ ```
147
+ bundle exec htmlproofer --ignore-urls "/www.github.com/,/foo.com/" ./_site
148
+ ```
149
+ </dd>
150
+ </dl>
151
+
164
152
  ## Customization
165
153
 
166
154
  Override settings by editing the project configs:
167
155
 
168
156
  - `.config/docopslab-dev.yml`
157
+
169
158
  - `.config/rubocop.yml`
159
+
170
160
  - `.config/vale.ini`
161
+
171
162
  - `.config/htmlproofer.yml`
163
+
172
164
  - `.config/actionlint.yml`
165
+
173
166
  - `.config/shellcheckrc`
174
167
 
175
168
  Your configurations will inherit from the base configurations and source libraries as sourced in the Git-ignored `.config/.vendor/docopslab/` path.
@@ -179,7 +172,7 @@ Your configurations will inherit from the base configurations and source librari
179
172
  Projects using `docopslab-dev` will have a configuration structure like the following:
180
173
 
181
174
  ```tree
182
- config/
175
+ .config/
183
176
  ├── docopslab-dev.yml # Project manifest (tracked)
184
177
  ├── actionlint.yml # Project config (tracked; inherits from base)
185
178
  ├── htmlproofer.local.yml # Project config (tracked; inherits from base)
@@ -14,7 +14,7 @@ Table of Contents
14
14
 
15
15
  - Common Automation Scripts
16
16
  - Docker Usage
17
- - Application Dockerfiles and Images
17
+ - Application Dockerfiles and Images
18
18
  - See Also
19
19
 
20
20
  ## Common Automation Scripts
@@ -24,6 +24,7 @@ Some DocOps Lab projects include highly customized automation scripts, but most
24
24
  These procedures can always be invoked by way of local scripts located in `scripts/`. These include:
25
25
 
26
26
  - `build.sh`
27
+
27
28
  - `publish.sh`
28
29
 
29
30
  Common scripts are managed through the lnk:/docs/lab-dev-setup/[`docopslab-dev` gem].
@@ -51,5 +52,6 @@ This Dockerfile defines the image that will be built and pushed to Docker Hub fo
51
52
  ## See Also
52
53
 
53
54
  - `./dev-tooling-usage.md`
55
+
54
56
  - `../skills/git.md`
55
57
 
@@ -8,18 +8,24 @@ For less-formalized projects, documentation is restricted to `README.adoc` and o
8
8
 
9
9
  The URL structure is as follows:
10
10
 
11
- **Project landing page** :
12
- `https://<project>.docopslab.org/`
13
-
14
- At a minimum, this should be a subset of the `README.adoc` file.
15
-
16
- **Product user docs** :
17
- `https://<project>.docopslab.org/docs/`
18
-
19
- **Product developer docs** :
20
- `https://<project>.docopslab.org/docs/api/(<apiname>/)`
21
-
22
- The final `<apiname>` directory is only applicable when the product contains multiple distinct APIs.
11
+ <dl>
12
+ <dt class="hdlist1">Project landing page</dt>
13
+ <dd>
14
+ `https://<project>.docopslab.org/`
15
+
16
+ At a minimum, this should be a subset of the `README.adoc` file.
17
+ </dd>
18
+ <dt class="hdlist1">Product user docs</dt>
19
+ <dd>
20
+ `https://<project>.docopslab.org/docs/`
21
+ </dd>
22
+ <dt class="hdlist1">Product developer docs</dt>
23
+ <dd>
24
+ `https://<project>.docopslab.org/docs/api/(<apiname>/)`
25
+
26
+ The final `<apiname>` directory is only applicable when the product contains multiple distinct APIs.
27
+ </dd>
28
+ </dl>
23
29
 
24
30
  GH Pages configuration for these sites enables deployment by way of a clean `gh-pages` branch containing only generated documentation artifacts and the `CNAME` file.
25
31
 
@@ -0,0 +1,39 @@
1
+ = DocOps Lab: Agent Library
2
+ :doctype: article
3
+
4
+ This is the *{empty}DocOps Lab agent library* distribution branch.
5
+ It is not intended for direct use as a cloned project.
6
+
7
+ It is published and consumed automatically by the `docopslab-dev` gem's `labdev:sync:library` Rake task.
8
+
9
+
10
+ [[contents]]
11
+ == Contents
12
+
13
+ `config-packs/`::
14
+ Bundled configuration files for linters and quality tools (Vale, RuboCop, actionlint, etc.), organized by tool name.
15
+
16
+ `docs/agent/`::
17
+ Generated agent-guidance documents covering roles, skills, missions, and topics for AI agents working on DocOps Lab projects.
18
+
19
+ `hooks/`::
20
+ Git hook scripts installed by `labdev:init:hooks`.
21
+
22
+ `scripts/`::
23
+ Utility scripts available to projects via `labdev:sync:scripts`.
24
+
25
+ `templates/`::
26
+ Boilerplate and sync-cast template files, including `AGENTS.markdown` (the canonical template for project-level `AGENTS.md` files).
27
+
28
+ `catalog.json`::
29
+ Machine-generated catalog of all files in this library snapshot, including SHA256 checksums and the timestamp of the generating commit.
30
+
31
+
32
+ [[usage]]
33
+ == Usage
34
+
35
+ Projects using `docopslab-dev` fetch this library with:
36
+
37
+ bundle exec rake labdev:sync:library
38
+
39
+ For full documentation, see the https://github.com/DocOps/lab/tree/main/gems/docopslab-dev[docopslab-dev README].