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
|
@@ -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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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.
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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](
|
|
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](
|
|
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
|
|
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
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
|
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
|
-
|
|
73
|
-
|
|
55
|
+
</dd>
|
|
56
|
+
<dt class="hdlist1">Vale</dt>
|
|
57
|
+
<dd>
|
|
74
58
|
```
|
|
75
|
-
|
|
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
|
-
|
|
79
|
-
|
|
63
|
+
</dd>
|
|
64
|
+
<dt class="hdlist1">HTMLProofer</dt>
|
|
65
|
+
<dd>
|
|
80
66
|
```
|
|
81
|
-
bundle exec
|
|
67
|
+
bundle exec htmlproofer --ignore-urls "/www.github.com/,/foo.com/" ./_site
|
|
82
68
|
```
|
|
69
|
+
</dd>
|
|
70
|
+
</dl>
|
|
83
71
|
|
|
84
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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].
|