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
|
@@ -6,18 +6,9 @@ As an AI agent, you can help fix Asciidoctor errors in Jekyll builds.
|
|
|
6
6
|
|
|
7
7
|
1. Perform a basic Jekyll build that writes verbose output to a local file.
|
|
8
8
|
|
|
9
|
-
Example with config option
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
bundle exec jekyll build --verbose --config configs/jekyll.yml > .agent/scratch/jekyll-build.log 2>&1
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Note the `2>&1` at the end of the command, which ensures that both standard output and error messages are captured in the log file.
|
|
16
9
|
2. Run the analysis task on the exported file.
|
|
17
10
|
|
|
18
|
-
```
|
|
19
|
-
bundle exec rake 'labdev:lint:logs[jekyll-asciidoc,.agent/scratch/jekyll-build.log]'
|
|
20
|
-
```
|
|
21
11
|
3. Open the YAML file relayed in the response message (example: `Jekyll AsciiDoc issues report generated: .agent/reports/jekyll-asciidoc-issues-20251214_085323.yml`).
|
|
12
|
+
|
|
22
13
|
4. Follow the instructions in the report to address the issues found.
|
|
23
14
|
|
data/docs/agent/skills/git.md
CHANGED
|
@@ -11,22 +11,25 @@ Table of Contents
|
|
|
11
11
|
- The Basics
|
|
12
12
|
- Repository State
|
|
13
13
|
- Development Procedures
|
|
14
|
-
- Commit Message Conventions
|
|
15
|
-
|
|
14
|
+
- Commit Message Conventions
|
|
15
|
+
- Merging Changes
|
|
16
16
|
- Dev Branch Rules
|
|
17
17
|
- Commit Messages
|
|
18
|
-
- General Style (Conventional Commits)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
- General Style (Conventional Commits)
|
|
19
|
+
- Commit Description
|
|
20
|
+
- Commit Types
|
|
21
|
+
- Commit Body Conventions
|
|
22
22
|
- Use `gh` the GitHub CLI Tool
|
|
23
23
|
|
|
24
24
|
## The Basics
|
|
25
25
|
|
|
26
26
|
1. Follow proper branching procedures as outlined in Repository State.
|
|
27
|
+
|
|
27
28
|
2. Commit messages should be concise and easy for users to edit.
|
|
28
29
|
See Commit Messages for guidance.
|
|
30
|
+
|
|
29
31
|
3. Always prompt user to approve commits before pushing.
|
|
32
|
+
|
|
30
33
|
4. Use `gh` for interacting with GitHub whenever possible.
|
|
31
34
|
See Use `gh` the GitHub CLI Tool for more information.
|
|
32
35
|
|
|
@@ -61,34 +64,55 @@ git push -u origin feat/add-widget
|
|
|
61
64
|
gh pr create --base dev/1.2 --title "feat: add widget" --body "Adds a new widget to the dashboard."
|
|
62
65
|
```
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
<dl>
|
|
68
|
+
<dt class="hdlist1">Branch naming conventions</dt>
|
|
69
|
+
<dd>
|
|
70
|
+
- `feat/…` for new features OR improvements
|
|
71
|
+
|
|
72
|
+
- `fix/…` for bugfixes
|
|
73
|
+
|
|
74
|
+
- `chore/…` for version bumps and sundry tasks with no product impact
|
|
75
|
+
|
|
76
|
+
- `epic/…` for large features or changes that span releases
|
|
77
|
+
</dd>
|
|
78
|
+
</dl>
|
|
69
79
|
|
|
70
80
|
### Commit Message Conventions
|
|
71
81
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
82
|
+
<dl>
|
|
83
|
+
<dt class="hdlist1">Description (first line) conventions</dt>
|
|
84
|
+
<dd>
|
|
85
|
+
- Use present-tense descriptive verbs (“adds widget”, not “added” or “add”)
|
|
86
|
+
|
|
87
|
+
- `feat: …` for new features OR improvements
|
|
88
|
+
|
|
89
|
+
- `fix: …` for bugfixes
|
|
90
|
+
|
|
91
|
+
- `chore: …` for version bumps and sundry tasks with no product impact
|
|
92
|
+
|
|
93
|
+
- `docs: …` for documentation changes
|
|
94
|
+
|
|
95
|
+
- `test: …` for test code changes
|
|
96
|
+
|
|
97
|
+
- `refactor: …` for code restructuring with no functional changes
|
|
98
|
+
|
|
99
|
+
- `style: …` for formatting, missing semi-colons, etc; no functional changes
|
|
100
|
+
|
|
101
|
+
- `perf: …` for performance improvements
|
|
102
|
+
|
|
103
|
+
- `auto: …` for changes to CI/CD pipelines and build system
|
|
104
|
+
</dd>
|
|
105
|
+
<dt class="hdlist1">Body conventions</dt>
|
|
106
|
+
<dd>
|
|
107
|
+
- Use the body to explain what and why vs. how.
|
|
108
|
+
|
|
109
|
+
- Reference issues and pull requests as needed.
|
|
110
|
+
|
|
111
|
+
- Use bullet points (`- text`) and paragraphs as needed for clarity.
|
|
112
|
+
|
|
113
|
+
- Do not hard-wrap lines, but _do_:
|
|
114
|
+
</dd>
|
|
115
|
+
</dl>
|
|
92
116
|
|
|
93
117
|
### Merging Changes
|
|
94
118
|
|
|
@@ -110,7 +134,9 @@ Delete merged branches.
|
|
|
110
134
|
## Dev Branch Rules
|
|
111
135
|
|
|
112
136
|
- Always branch from `dev/x.y`.
|
|
137
|
+
|
|
113
138
|
- Always squash-merge into `dev/x.y`.
|
|
139
|
+
|
|
114
140
|
- Never merge directly into `main`.
|
|
115
141
|
|
|
116
142
|
## Commit Messages
|
|
@@ -144,25 +170,34 @@ Use the _past tense_ rather than imperative mood (e.g., "Added feature X" instea
|
|
|
144
170
|
### Commit Types
|
|
145
171
|
|
|
146
172
|
- Use present-tense descriptive verbs (“adds widget”, not “added” or “add”)
|
|
173
|
+
|
|
147
174
|
- `feat: …` for new features OR improvements
|
|
175
|
+
|
|
148
176
|
- `fix: …` for bugfixes
|
|
177
|
+
|
|
149
178
|
- `chore: …` for version bumps and sundry tasks with no product impact
|
|
179
|
+
|
|
150
180
|
- `docs: …` for documentation changes
|
|
181
|
+
|
|
151
182
|
- `test: …` for test code changes
|
|
183
|
+
|
|
152
184
|
- `refactor: …` for code restructuring with no functional changes
|
|
185
|
+
|
|
153
186
|
- `style: …` for formatting, missing semi-colons, etc; no functional changes
|
|
187
|
+
|
|
154
188
|
- `perf: …` for performance improvements
|
|
189
|
+
|
|
155
190
|
- `auto: …` for changes to CI/CD pipelines and build system
|
|
156
191
|
|
|
157
192
|
### Commit Body Conventions
|
|
158
193
|
|
|
159
194
|
- Use the body to explain what and why vs. how.
|
|
195
|
+
|
|
160
196
|
- Reference issues and pull requests as needed.
|
|
197
|
+
|
|
161
198
|
- Use bullet points (`- text`) and paragraphs as needed for clarity.
|
|
162
|
-
- Do not hard-wrap lines, but _do_:
|
|
163
199
|
|
|
164
|
-
|
|
165
|
-
- keep sentences short
|
|
200
|
+
- Do not hard-wrap lines, but _do_:
|
|
166
201
|
|
|
167
202
|
## Use `gh` the GitHub CLI Tool
|
|
168
203
|
|
|
@@ -10,10 +10,10 @@ Table of Contents
|
|
|
10
10
|
- Bulk-posting Issues with Issuer
|
|
11
11
|
- Issue Types
|
|
12
12
|
- Issue Labels
|
|
13
|
-
- Project-specific Labels
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
- Project-specific Labels
|
|
14
|
+
- Standard Documentation Labels
|
|
15
|
+
- Admonition Labels
|
|
16
|
+
- Other Standard Labels
|
|
17
17
|
|
|
18
18
|
## Managing GitHub Issues with `gh`
|
|
19
19
|
|
|
@@ -49,20 +49,28 @@ Follow the instructions at [Issuer](https://github.com/DocOps/issuer) to install
|
|
|
49
49
|
|
|
50
50
|
## Issue Types
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
52
|
+
<dl>
|
|
53
|
+
<dt class="hdlist1">Task</dt>
|
|
54
|
+
<dd>
|
|
55
|
+
A specific piece of work that does not directly lead to a change to the product. Used for research, infrastructure management, and other sundry/chore tasks not necessarily associated with repository code changes.
|
|
56
|
+
</dd>
|
|
57
|
+
<dt class="hdlist1">Bug</dt>
|
|
58
|
+
<dd>
|
|
59
|
+
Reports describing unexpected behavior or malfunctions in the product. Bug issues are used directly and become bugfixes (no technical type change) once resolved.
|
|
60
|
+
</dd>
|
|
61
|
+
<dt class="hdlist1">Feature</dt>
|
|
62
|
+
<dd>
|
|
63
|
+
Requests or ideas for new functionality in the product.
|
|
64
|
+
</dd>
|
|
65
|
+
<dt class="hdlist1">Improvement</dt>
|
|
66
|
+
<dd>
|
|
67
|
+
Enhancements of existing features or capabilities.
|
|
68
|
+
</dd>
|
|
69
|
+
<dt class="hdlist1">Epic</dt>
|
|
70
|
+
<dd>
|
|
71
|
+
An issue or collection of issues with a common goal that may involve work performed across release versions (“milestones”).
|
|
72
|
+
</dd>
|
|
73
|
+
</dl>
|
|
66
74
|
|
|
67
75
|
## Issue Labels
|
|
68
76
|
|
|
@@ -70,66 +78,97 @@ All DocOps Lab projects use a common convention around GitHub issue labels to ca
|
|
|
70
78
|
|
|
71
79
|
### Project-specific Labels
|
|
72
80
|
|
|
73
|
-
|
|
74
|
-
|
|
81
|
+
<dl>
|
|
82
|
+
<dt class="hdlist1">`component:<part>`</dt>
|
|
83
|
+
<dd>
|
|
84
|
+
Label prefix for arbitrarily named product aspects, modules, interfaces, or subsystems. Common components include `component:docker`, `component:cli`, and `component:docs` (see next section). These correspond to the `part` property in ReleaseHx change records.
|
|
85
|
+
</dd>
|
|
86
|
+
</dl>
|
|
75
87
|
|
|
76
88
|
### Standard Documentation Labels
|
|
77
89
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
<dl>
|
|
91
|
+
<dt class="hdlist1">`component:docs`</dt>
|
|
92
|
+
<dd>
|
|
93
|
+
Indicates the issue pertains to documentation infrastructure, layout, deployment, but not core content.
|
|
94
|
+
</dd>
|
|
95
|
+
<dt class="hdlist1">`documentation`</dt>
|
|
96
|
+
<dd>
|
|
97
|
+
The issue relates to documentation _content_ updates or improvements.
|
|
98
|
+
</dd>
|
|
99
|
+
<dt class="hdlist1">`needs:docs`</dt>
|
|
100
|
+
<dd>
|
|
101
|
+
The issue requires documentation updates as part of its resolution. Documentation updates will likely be in a sub-issue with a `documentation` label.
|
|
102
|
+
</dd>
|
|
103
|
+
<dt class="hdlist1">`needs:note`</dt>
|
|
104
|
+
<dd>
|
|
105
|
+
The issue requires a note in the release history when resolved. Release notes are appended to the description body under `## Release Note`.
|
|
106
|
+
</dd>
|
|
107
|
+
<dt class="hdlist1">`changelog`</dt>
|
|
108
|
+
<dd>
|
|
109
|
+
The issue summary should be included in the changelog for the next release, even if no release note is included.
|
|
110
|
+
</dd>
|
|
111
|
+
</dl>
|
|
92
112
|
|
|
93
113
|
### Admonition Labels
|
|
94
114
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
115
|
+
<dl>
|
|
116
|
+
<dt class="hdlist1">`REMOVAL`</dt>
|
|
117
|
+
<dd>
|
|
118
|
+
Removes functionality or features.
|
|
119
|
+
</dd>
|
|
120
|
+
<dt class="hdlist1">`DEPRECATION`</dt>
|
|
121
|
+
<dd>
|
|
122
|
+
Announces planned removal of functionality or features in a future release. (Only appropriate for `documentation` issues.)
|
|
123
|
+
</dd>
|
|
124
|
+
<dt class="hdlist1">`BREAKING`</dt>
|
|
125
|
+
<dd>
|
|
126
|
+
Includes one or more changes that are not backward-compatible.
|
|
127
|
+
</dd>
|
|
128
|
+
<dt class="hdlist1">`SECURITY`</dt>
|
|
129
|
+
<dd>
|
|
130
|
+
Addresses or documents a security vulnerability or risk.
|
|
131
|
+
</dd>
|
|
132
|
+
</dl>
|
|
106
133
|
|
|
107
134
|
### Other Standard Labels
|
|
108
135
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
136
|
+
<dl>
|
|
137
|
+
<dt class="hdlist1">`question`</dt>
|
|
138
|
+
<dd>
|
|
139
|
+
User or community member inquiries about the product or project.
|
|
140
|
+
</dd>
|
|
141
|
+
<dt class="hdlist1">`priority:high`</dt>
|
|
142
|
+
<dd>
|
|
143
|
+
Indicates that the issue is important and should be prioritized for release as soon as possible.
|
|
144
|
+
</dd>
|
|
145
|
+
<dt class="hdlist1">`priority:low`</dt>
|
|
146
|
+
<dd>
|
|
147
|
+
The issue is not urgent and can be addressed in a future release.
|
|
148
|
+
</dd>
|
|
149
|
+
<dt class="hdlist1">`priority:stretch`</dt>
|
|
150
|
+
<dd>
|
|
151
|
+
Issue is slated for the next release but can be bumped if it’s holding up releasee.
|
|
152
|
+
</dd>
|
|
153
|
+
<dt class="hdlist1">`wontfix`</dt>
|
|
154
|
+
<dd>
|
|
155
|
+
The issue will not be addressed. Comment from maintainers should explain why.
|
|
156
|
+
</dd>
|
|
157
|
+
<dt class="hdlist1">`duplicate`</dt>
|
|
158
|
+
<dd>
|
|
159
|
+
The issue is a duplicate of another issue, which should be linked in the comments.
|
|
160
|
+
</dd>
|
|
161
|
+
<dt class="hdlist1">`posted-by-issuer`</dt>
|
|
162
|
+
<dd>
|
|
163
|
+
Indicates that the issue was created by the Issuer tool.
|
|
164
|
+
</dd>
|
|
165
|
+
<dt class="hdlist1">`good first issue`</dt>
|
|
166
|
+
<dd>
|
|
167
|
+
Designates an issue suitable for new contributors to the project.
|
|
168
|
+
</dd>
|
|
169
|
+
<dt class="hdlist1">`help wanted`</dt>
|
|
170
|
+
<dd>
|
|
171
|
+
Indicates that maintainers are seeking assistance from the community to resolve the issue.
|
|
172
|
+
</dd>
|
|
173
|
+
</dl>
|
|
135
174
|
|
|
@@ -17,13 +17,7 @@ The general procedure is as follows:
|
|
|
17
17
|
|
|
18
18
|
1. Generate a draft release history in YAML.
|
|
19
19
|
|
|
20
|
-
```
|
|
21
|
-
bundle exec rhx <version> --yaml --fetch
|
|
22
|
-
```
|
|
23
20
|
2. Edit the generated YAML to ensure clarity and completeness.
|
|
24
|
-
3. Generate the Markdown version.
|
|
25
21
|
|
|
26
|
-
|
|
27
|
-
bundle exec rhx <version> --md docs/release/<version>.md
|
|
28
|
-
```
|
|
22
|
+
3. Generate the Markdown version.
|
|
29
23
|
|
data/docs/agent/skills/ruby.md
CHANGED
|
@@ -11,44 +11,55 @@ However, conventions are not exhaustively listed, and deviations are rarely poin
|
|
|
11
11
|
### Naming Conventions
|
|
12
12
|
|
|
13
13
|
- Use `snake_case` for variable and method names.
|
|
14
|
+
|
|
14
15
|
- Use `CamelCase` for class and module names.
|
|
16
|
+
|
|
15
17
|
- Use `SCREAMING_SNAKE_CASE` for constants.
|
|
18
|
+
|
|
16
19
|
- Use descriptive names that convey the purpose of the variable, method, or class.
|
|
20
|
+
|
|
17
21
|
- Avoid abbreviations unless they are widely understood.
|
|
22
|
+
|
|
18
23
|
- Use verbs for method names to indicate actions.
|
|
24
|
+
|
|
19
25
|
- Use nouns for class and module names to indicate entities.
|
|
20
26
|
|
|
21
27
|
### Architectural Conventions
|
|
22
28
|
|
|
23
29
|
- Use classes and class instance methods for objects that work like _objects_ — they have state and do not act on other objects' state.
|
|
30
|
+
|
|
24
31
|
- Use module methods acting on objects or carrying out general operations/utility functions.
|
|
32
|
+
|
|
25
33
|
- Use Rake for internal (developer) CLI; use Thor for user-facing CLI
|
|
34
|
+
|
|
26
35
|
- Gems may begin life as a module within another gem.
|
|
27
36
|
|
|
28
37
|
### Path Conventions
|
|
29
38
|
|
|
30
39
|
- Use `lib/` for main application code.
|
|
31
40
|
|
|
32
|
-
- `lib/<project_name>.rb` for the main file
|
|
33
|
-
- `lib/<project_name>/` for supporting files and modules
|
|
34
|
-
- `lib/<project_name>/<module_name>/` for submodules
|
|
35
41
|
- Use `spec/` for specifications and tests.
|
|
42
|
+
|
|
36
43
|
- Use `docs/` or `_docs/` for documentation.
|
|
44
|
+
|
|
37
45
|
- Use `build/` for pre-runtime artifacts.
|
|
46
|
+
|
|
38
47
|
- Use `_build/` as default in applications that generate files at runtime, unless another path is more appropriate (ex: `_site/` in Jekyll-centric apps).
|
|
39
|
-
- Do NOT assume or insist upon perfect alignment with Ruby path conventions:
|
|
40
48
|
|
|
41
|
-
|
|
42
|
-
- Some modules like `SchemaGraphy` and `AsciiDoc` are never broken up into `schema_graphy` or `ascii_doc` namespaces.
|
|
43
|
-
- Modules with multiple parallel sibling modules in a category like (`WriteOps`, `DraftOps`) belong in paths like `lib/ops/write.rb` instead of `lib/write_ops.rb` or `lib/write/ops.rb`.
|
|
49
|
+
- Do NOT assume or insist upon perfect alignment with Ruby path conventions:
|
|
44
50
|
|
|
45
51
|
### Syntax Conventions
|
|
46
52
|
|
|
47
53
|
- Use 2 spaces for indentation.
|
|
54
|
+
|
|
48
55
|
- Limit lines to 120 characters or so when possible.
|
|
56
|
+
|
|
49
57
|
- Use parentheses for method calls with arguments, but omit them for methods without arguments.
|
|
58
|
+
|
|
50
59
|
- Do not use parentheses in method definitions (`def method_name arg1, arg2`).
|
|
60
|
+
|
|
51
61
|
- Use single quotes for strings that do not require interpolation or special symbols.
|
|
62
|
+
|
|
52
63
|
- Use double quotes for strings that require interpolation or special symbols.
|
|
53
64
|
|
|
54
65
|
### Commenting Conventions
|
|
@@ -7,8 +7,11 @@ SGYML stands for SchemaGraphy YAML-based Modeling Language, a format designed, s
|
|
|
7
7
|
It is a specialized YAML preprocessing syntax that provides:
|
|
8
8
|
|
|
9
9
|
- A human-readable schema model that can define, govern, and parse the structure and contents of complex data objects and text documents alike
|
|
10
|
+
|
|
10
11
|
- An extension for YAML documents to incorporate new properties like `$ref` transclusion directives and inheritance/overlay properties
|
|
12
|
+
|
|
11
13
|
- A standardization around a base subset of YAML capabilities to constrain the complexity of YAML documents and support thereof
|
|
14
|
+
|
|
12
15
|
- Highly semantic data-typing to replace YAML’s clunky model
|
|
13
16
|
|
|
14
17
|
SchemaGraphy Schemas and the SGYML and tooling to support them are in a nascent stage, still under development.
|
|
@@ -6,20 +6,28 @@ As an AI agent, you can help DocOps Lab developers run tests effectively using s
|
|
|
6
6
|
|
|
7
7
|
All Ruby gem projects with tests should implement these standard Rake tasks in their `Rakefile`:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
<dl>
|
|
10
|
+
<dt class="hdlist1">`bundle exec rake rspec`</dt>
|
|
11
|
+
<dd>
|
|
12
|
+
Run RSpec test suite using the standard pattern matcher.
|
|
13
|
+
</dd>
|
|
14
|
+
<dt class="hdlist1">`bundle exec rake cli_test`</dt>
|
|
15
|
+
<dd>
|
|
16
|
+
Validate command-line interface functionality. May test basic CLI loading, help output, version information.
|
|
17
|
+
</dd>
|
|
18
|
+
<dt class="hdlist1">`bundle exec rake yaml_test`</dt>
|
|
19
|
+
<dd>
|
|
20
|
+
Validate YAML configuration files and data structures. Should test all project YAML files for syntax correctness.
|
|
21
|
+
</dd>
|
|
22
|
+
<dt class="hdlist1">`bundle exec rake pr_test`</dt>
|
|
23
|
+
<dd>
|
|
24
|
+
Comprehensive test suite for pre-commit and pull request validation. Typically includes: RSpec tests, CLI tests, YAML validation.
|
|
25
|
+
</dd>
|
|
26
|
+
<dt class="hdlist1">`bundle exec rake install_local`</dt>
|
|
27
|
+
<dd>
|
|
28
|
+
Build and install the project locally for testing.
|
|
29
|
+
</dd>
|
|
30
|
+
</dl>
|
|
23
31
|
|
|
24
32
|
Note that non-gem projects may have some or all of these tasks, as applicable.
|
|
25
33
|
|
|
@@ -6,40 +6,63 @@ As an AI agent, you can help DocOps Lab developers write comprehensive tests fol
|
|
|
6
6
|
|
|
7
7
|
Tests should be organized into these categories:
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- Individual method testing
|
|
14
|
-
|
|
15
|
-
**Integration Tests** :
|
|
16
|
-
- Data processing workflows
|
|
17
|
-
- Template rendering operations
|
|
18
|
-
- Configuration loading scenarios
|
|
19
|
-
- API client functionality (where applicable)
|
|
20
|
-
|
|
21
|
-
**Validation Tests** :
|
|
22
|
-
- File format compliance (YAML, JSON)
|
|
23
|
-
- Configuration schema validation
|
|
24
|
-
- Template syntax verification
|
|
25
|
-
- Command-line option parsing
|
|
9
|
+
<dl>
|
|
10
|
+
<dt class="hdlist1">Unit Tests</dt>
|
|
11
|
+
<dd>
|
|
12
|
+
- Module loading and initialization
|
|
26
13
|
|
|
27
|
-
|
|
14
|
+
- Class structure validation
|
|
15
|
+
|
|
16
|
+
- Basic functionality verification
|
|
17
|
+
|
|
18
|
+
- Individual method testing
|
|
19
|
+
</dd>
|
|
20
|
+
<dt class="hdlist1">Integration Tests</dt>
|
|
21
|
+
<dd>
|
|
22
|
+
- Data processing workflows
|
|
23
|
+
|
|
24
|
+
- Template rendering operations
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
Run RSpec test suite using the standard pattern matcher.
|
|
26
|
+
- Configuration loading scenarios
|
|
31
27
|
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
- API client functionality (where applicable)
|
|
29
|
+
</dd>
|
|
30
|
+
<dt class="hdlist1">Validation Tests</dt>
|
|
31
|
+
<dd>
|
|
32
|
+
- File format compliance (YAML, JSON)
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
Validate YAML configuration files and data structures. Should test all project YAML files for syntax correctness.
|
|
34
|
+
- Configuration schema validation
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
- Template syntax verification
|
|
37
|
+
|
|
38
|
+
- Command-line option parsing
|
|
39
|
+
</dd>
|
|
40
|
+
</dl>
|
|
41
|
+
|
|
42
|
+
All Ruby gem projects with tests should implement these standard Rake tasks in their `Rakefile`:
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
<dl>
|
|
45
|
+
<dt class="hdlist1">`bundle exec rake rspec`</dt>
|
|
46
|
+
<dd>
|
|
47
|
+
Run RSpec test suite using the standard pattern matcher.
|
|
48
|
+
</dd>
|
|
49
|
+
<dt class="hdlist1">`bundle exec rake cli_test`</dt>
|
|
50
|
+
<dd>
|
|
51
|
+
Validate command-line interface functionality. May test basic CLI loading, help output, version information.
|
|
52
|
+
</dd>
|
|
53
|
+
<dt class="hdlist1">`bundle exec rake yaml_test`</dt>
|
|
54
|
+
<dd>
|
|
55
|
+
Validate YAML configuration files and data structures. Should test all project YAML files for syntax correctness.
|
|
56
|
+
</dd>
|
|
57
|
+
<dt class="hdlist1">`bundle exec rake pr_test`</dt>
|
|
58
|
+
<dd>
|
|
59
|
+
Comprehensive test suite for pre-commit and pull request validation. Typically includes: RSpec tests, CLI tests, YAML validation.
|
|
60
|
+
</dd>
|
|
61
|
+
<dt class="hdlist1">`bundle exec rake install_local`</dt>
|
|
62
|
+
<dd>
|
|
63
|
+
Build and install the project locally for testing.
|
|
64
|
+
</dd>
|
|
65
|
+
</dl>
|
|
43
66
|
|
|
44
67
|
Note that non-gem projects may have some or all of these tasks, as applicable.
|
|
45
68
|
|