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
@@ -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
 
@@ -6,8 +6,5 @@ As an AI agent, you can help DocOps Lab developers fix spelling issues in docume
6
6
 
7
7
  1. Use the spellcheck task to generate a spelling report.
8
8
 
9
- ```
10
- bundle exec rake labdev:lint:spellcheck
11
- ```
12
9
  2. Follow the prompts in the generated report.
13
10
 
@@ -11,22 +11,25 @@ Table of Contents
11
11
  - The Basics
12
12
  - Repository State
13
13
  - Development Procedures
14
- - Commit Message Conventions
15
- - Merging Changes
14
+ - Commit Message Conventions
15
+ - Merging Changes
16
16
  - Dev Branch Rules
17
17
  - Commit Messages
18
- - General Style (Conventional Commits)
19
- - Commit Description
20
- - Commit Types
21
- - Commit Body Conventions
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
- **Branch naming conventions** :
65
- - `feat/…​` for new features OR improvements
66
- - `fix/…​` for bugfixes
67
- - `chore/…​` for version bumps and sundry tasks with no product impact
68
- - `epic/…​` for large features or changes that span releases
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
- **Description (first line) conventions**:
73
- - Use present-tense descriptive verbs (“adds widget”, not “added” or “add”)
74
- - `feat: …​` for new features OR improvements
75
- - `fix: …​` for bugfixes
76
- - `chore: …​` for version bumps and sundry tasks with no product impact
77
- - `docs: …​` for documentation changes
78
- - `test: …​` for test code changes
79
- - `refactor: …​` for code restructuring with no functional changes
80
- - `style: …​` for formatting, missing semi-colons, etc; no functional changes
81
- - `perf: …​` for performance improvements
82
- - `auto: …​` for changes to CI/CD pipelines and build system
83
-
84
- **Body conventions** :
85
- - Use the body to explain what and why vs. how.
86
- - Reference issues and pull requests as needed.
87
- - Use bullet points (`- text`) and paragraphs as needed for clarity.
88
- - Do not hard-wrap lines, but _do_:
89
-
90
- - use 1-sentence per line
91
- - keep sentences short
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
- - use 1-sentence per line
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
- - Standard Documentation Labels
15
- - Admonition Labels
16
- - Other Standard Labels
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
- **Task** :
53
- 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.
54
-
55
- **Bug** :
56
- Reports describing unexpected behavior or malfunctions in the product. Bug issues are used directly and become bugfixes (no technical type change) once resolved.
57
-
58
- **Feature** :
59
- Requests or ideas for new functionality in the product.
60
-
61
- **Improvement** :
62
- Enhancements of existing features or capabilities.
63
-
64
- **Epic** :
65
- An issue or collection of issues with a common goal that may involve work performed across release versions (“milestones”).
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
- **`component:<part>`** :
74
- 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.
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
- **`component:docs`** :
79
- Indicates the issue pertains to documentation infrastructure, layout, deployment, but not core content.
80
-
81
- **`documentation`** :
82
- The issue relates to documentation _content_ updates or improvements.
83
-
84
- **`needs:docs`** :
85
- The issue requires documentation updates as part of its resolution. Documentation updates will likely be in a sub-issue with a `documentation` label.
86
-
87
- **`needs:note`** :
88
- The issue requires a note in the release history when resolved. Release notes are appended to the description body under `## Release Note`.
89
-
90
- **`changelog`** :
91
- The issue summary should be included in the changelog for the next release, even if no release note is included.
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
- **`REMOVAL`** :
96
- Removes functionality or features.
97
-
98
- **`DEPRECATION`** :
99
- Announces planned removal of functionality or features in a future release. (Only appropriate for `documentation` issues.)
100
-
101
- **`BREAKING`** :
102
- Includes one or more changes that are not backward-compatible.
103
-
104
- **`SECURITY`** :
105
- Addresses or documents a security vulnerability or risk.
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
- **`question`** :
110
- User or community member inquiries about the product or project.
111
-
112
- **`priority:high`** :
113
- Indicates that the issue is important and should be prioritized for release as soon as possible.
114
-
115
- **`priority:low`** :
116
- The issue is not urgent and can be addressed in a future release.
117
-
118
- **`priority:stretch`** :
119
- Issue is slated for the next release but can be bumped if it’s holding up releasee.
120
-
121
- **`wontfix`** :
122
- The issue will not be addressed. Comment from maintainers should explain why.
123
-
124
- **`duplicate`** :
125
- The issue is a duplicate of another issue, which should be linked in the comments.
126
-
127
- **`posted-by-issuer`** :
128
- Indicates that the issue was created by the Issuer tool.
129
-
130
- **`good first issue`** :
131
- Designates an issue suitable for new contributors to the project.
132
-
133
- **`help wanted`** :
134
- Indicates that maintainers are seeking assistance from the community to resolve the issue.
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
 
@@ -7,7 +7,7 @@ If you need to add or modify Rake tasks for the current project, follow the guid
7
7
  Table of Contents
8
8
 
9
9
  - Rake CLIs
10
- - Rake CLI Model
10
+ - Rake CLI Model
11
11
 
12
12
  ## Rake CLIs
13
13
 
@@ -9,5 +9,6 @@ We will eventually provide detailed documentation of the conventions and protoco
9
9
  For now, Agents should:
10
10
 
11
11
  - Peruse the local `README.adoc` and `specs/data/*.{yml,yaml}`
12
+
12
13
  - Prompt their Operators to provide examples from relevant/neighboring projects.
13
14
 
@@ -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
 
@@ -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
- - `SomeModule` or `SomeClass` may be sourced at `lib/some_module.rb` or `lib/some_class.rb` instead of `lib/some/module.rb` or `lib/some/class.rb`.
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
- **`bundle exec rake rspec`** :
10
- Run RSpec test suite using the standard pattern matcher.
11
-
12
- **`bundle exec rake cli_test`** :
13
- Validate command-line interface functionality. May test basic CLI loading, help output, version information.
14
-
15
- **`bundle exec rake yaml_test`** :
16
- Validate YAML configuration files and data structures. Should test all project YAML files for syntax correctness.
17
-
18
- **`bundle exec rake pr_test`** :
19
- Comprehensive test suite for pre-commit and pull request validation. Typically includes: RSpec tests, CLI tests, YAML validation.
20
-
21
- **`bundle exec rake install_local`** :
22
- Build and install the project locally for testing.
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
- **Unit Tests** :
10
- - Module loading and initialization
11
- - Class structure validation
12
- - Basic functionality verification
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
- All Ruby gem projects with tests should implement these standard Rake tasks in their `Rakefile`:
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
- **`bundle exec rake rspec`** :
30
- Run RSpec test suite using the standard pattern matcher.
26
+ - Configuration loading scenarios
31
27
 
32
- **`bundle exec rake cli_test`** :
33
- Validate command-line interface functionality. May test basic CLI loading, help output, version information.
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
- **`bundle exec rake yaml_test`** :
36
- Validate YAML configuration files and data structures. Should test all project YAML files for syntax correctness.
34
+ - Configuration schema validation
37
35
 
38
- **`bundle exec rake pr_test`** :
39
- Comprehensive test suite for pre-commit and pull request validation. Typically includes: RSpec tests, CLI tests, YAML validation.
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
- **`bundle exec rake install_local`** :
42
- Build and install the project locally for testing.
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