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
@@ -18,15 +18,16 @@ labdev:
18
18
  _desc: Run assessments on the project environment and managed assets
19
19
  env:
20
20
  _desc: Assess the local environment and configuration
21
- updates:
22
- _desc: Check for updates to managed assets from upstream
23
21
  all:
24
22
  _alias: "labdev:check"
25
23
  init:
24
+ _desc: Initialize development environment assets for this project
26
25
  all:
27
26
  _desc: Bootstrap the development environment for this project
28
27
  docs:
29
28
  _desc: Sync agent documentation files to project
29
+ templates:
30
+ _desc: Bootstrap cast targets from prime templates (init-only; skips existing files)
30
31
  run:
31
32
  # there is no labdev:run:all
32
33
  script:
@@ -87,15 +88,19 @@ labdev:
87
88
  shellcheck:
88
89
  _desc: Run the base shellcheck command and options.
89
90
  _args:
91
+ path:
92
+ summ: Optional path to a specific file, directory, or glob to check.
93
+ required: false
90
94
  opts:
91
95
  summ: Additional arguments to pass to the shellcheck command.
92
96
  docs: |
93
97
  Use like:
94
- bundle exec rake 'labdev:run:shellcheck["--enable=all --format=gcc"]'
98
+ bundle exec rake 'labdev:run:shellcheck[scripts/build.sh,"--enable=all --format=gcc"]'
95
99
  required: false
96
100
  _test:
97
101
  - bundle exec rake 'labdev:run:shellcheck'
98
- - bundle exec rake 'labdev:run:shellcheck["--enable=all --format=gcc"]'
102
+ - bundle exec rake 'labdev:run:shellcheck[scripts/build.sh]'
103
+ - bundle exec rake 'labdev:run:shellcheck[scripts/,"--enable=all --format=gcc"]'
99
104
  actionlint:
100
105
  _desc: Run the base actionlint command and options.
101
106
  _args:
@@ -111,16 +116,26 @@ labdev:
111
116
  sync:
112
117
  _desc: Sync all managed files (configs, scripts, docs, styles, etc)
113
118
  all:
114
- _alias: "labdev:sync"
119
+ _desc: Check library freshness then sync all managed assets (configs, scripts, docs, templates, hooks, styles)
115
120
  configs:
116
121
  _desc: Sync configuration files from config pack
117
122
  scripts:
118
123
  _desc: Update non-local (`.vendor/`) scripts from upstream
119
124
  docs:
120
125
  _desc: Sync files to untracked local paths
121
- # _args:
122
- # force:
123
- # GET RID OF docs[force], this makes no sense, we always overwrite
126
+ templates:
127
+ _desc: Sync canonical blocks from prime templates into manifest cast targets
128
+ _args:
129
+ path:
130
+ summ: Optional target file path to restrict the sync to a single entry.
131
+ required: false
132
+ dry:
133
+ summ: Pass 'dry' to preview changes without writing files.
134
+ required: false
135
+ _test:
136
+ - bundle exec rake labdev:sync:templates
137
+ - bundle exec rake 'labdev:sync:templates[AGENTS.md]'
138
+ - bundle exec rake 'labdev:sync:templates[AGENTS.md,dry]'
124
139
  styles:
125
140
  _desc: Sync Vale styles from gem source to project
126
141
  local:
@@ -129,6 +144,22 @@ labdev:
129
144
  _desc: Sync custom styles from gem and download remote packages
130
145
  hooks:
131
146
  _desc: Update git hooks from templates (interactive)
147
+ library:
148
+ _desc: Fetch the remote library (if stale) and sync content to manifest-configured paths
149
+ _test:
150
+ - bundle exec rake labdev:sync:library
151
+ stage:
152
+ _desc: Stage a local library directory into the cache and sync to project paths (bypasses remote fetch)
153
+ _args:
154
+ path:
155
+ summ: |
156
+ Optional path to the local library directory to stage.
157
+ Defaults to manifest library.local_path, then .library/ in the
158
+ current directory, then ../lab/.library/ for downstream projects.
159
+ required: false
160
+ _test:
161
+ - bundle exec rake labdev:sync:library:stage
162
+ - bundle exec rake 'labdev:sync:library:stage[../lab/.library]'
132
163
  vale:
133
164
  _desc: Sync Vale config and all styles (custom + remote packages)
134
165
  local:
@@ -286,9 +317,13 @@ labdev:
286
317
  required: false
287
318
  show:
288
319
  scripts:
289
- _desc: List available script templatest
320
+ _desc: List available script templates
290
321
  hooks:
291
322
  _desc: List available hook templates
323
+ library:
324
+ _desc: Show the current library cache status and version
325
+ _test:
326
+ - bundle exec rake labdev:show:library
292
327
  rule:
293
328
  _desc: Show details about a specific linting rule
294
329
  _args:
@@ -301,13 +336,90 @@ labdev:
301
336
  _test:
302
337
  - bundle exec rake 'labdev:show:rule[rubocop,Layout/LineLength]'
303
338
  - bundle exec rake 'labdev:show:rule[vale,DocOpsLab-Authoring.ExNotEg]'
339
+ skim:
340
+ _desc: Skim source files for machine-oriented structured outlines (AsciiDoc + Markdown autodetect)
341
+ _args:
342
+ path:
343
+ summ: |
344
+ File path, directory, or glob of source files.
345
+ Format auto-detected from extension.
346
+ required: true
347
+ form:
348
+ summ: |
349
+ Output shape: tree, flat, or tree,flat (comma-separated).
350
+ Defaults to tree for AsciiDoc, flat for Markdown.
351
+ When form is explicitly passed, output defaults to JSON.
352
+ required: false
353
+ syntax:
354
+ summ: |
355
+ Override output format: json or yaml.
356
+ Default: yaml when form is omitted; json when form is explicitly passed.
357
+ required: false
358
+ _test:
359
+ - bundle exec rake 'labdev:skim[README.adoc]'
360
+ - bundle exec rake 'labdev:skim[.,flat]'
361
+ - bundle exec rake 'labdev:skim[.,tree]'
362
+ - bundle exec rake 'labdev:skim[*.adoc,,json]'
363
+ - bundle exec rake 'labdev:skim[.,both]'
364
+ adoc:
365
+ _desc: Skim AsciiDoc source files using Sourcerer::SourceSkim
366
+ _args:
367
+ path:
368
+ summ: File path, directory, or glob of AsciiDoc source files.
369
+ required: true
370
+ form:
371
+ summ: |
372
+ Output shape: tree, flat, or tree,flat (comma-separated).
373
+ Defaults to tree. When form is explicitly passed, output defaults to JSON.
374
+ required: false
375
+ syntax:
376
+ summ: |
377
+ Override output format: json or yaml.
378
+ Default: yaml when form is omitted; json when form is explicitly passed.
379
+ required: false
380
+ _test:
381
+ - bundle exec rake 'labdev:skim:adoc[README.adoc]'
382
+ - bundle exec rake 'labdev:skim:adoc[.,flat]'
383
+ - bundle exec rake 'labdev:skim:adoc[*.adoc,,yaml]'
384
+ md:
385
+ _desc: Skim Markdown source files using Sourcerer::SourceSkim. Supports upstream:local overlay path syntax.
386
+ _docs: |
387
+ Accepts a single path or an upstream:local overlay pair (colon-separated).
388
+
389
+ With two paths, local files shadow upstream files sharing the same relative path,
390
+ and local-only files are appended. This is useful when a project maintains local
391
+ additions or overrides alongside a synced upstream docs library.
392
+
393
+ Examples:
394
+ Single path: .agent/docs/
395
+ Overlay pair: .agent/docs/:_docs/agent/
396
+ _args:
397
+ path:
398
+ summ: |
399
+ File path, directory, or glob of Markdown source files.
400
+ Optionally provide two directories as upstream:local to merge with local overrides taking precedence.
401
+ required: true
402
+ form:
403
+ summ: |
404
+ Output shape: tree, flat, or tree,flat (comma-separated).
405
+ Defaults to flat for Markdown. When form is explicitly passed, output defaults to JSON.
406
+ required: false
407
+ syntax:
408
+ summ: |
409
+ Override output format: json or yaml.
410
+ Default: yaml when form is omitted; json when form is explicitly passed.
411
+ required: false
412
+ _test:
413
+ - bundle exec rake 'labdev:skim:md[.agent/docs/]'
414
+ - bundle exec rake 'labdev:skim:md[.agent/docs/,flat,json]'
415
+ - bundle exec rake 'labdev:skim:md[.agent/docs/:_docs/agent/,flat,json]'
304
416
  # ADDING:
305
417
  help:
306
418
  _desc: Show help information about labdev tasks
307
419
  _docs: |
308
420
  Default behavior is to show general help information.
309
421
 
310
- Use like:
422
+ Use like:
311
423
  bundle exec rake 'labdev:help[lint:ruby]'
312
424
  _args:
313
425
  task_string:
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docopslab-dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DocOps Lab
8
- bindir: exe
8
+ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
@@ -51,6 +51,20 @@ dependencies:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0.2'
54
+ - !ruby/object:Gem::Dependency
55
+ name: asciisourcerer
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.2'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.2'
54
68
  - !ruby/object:Gem::Dependency
55
69
  name: debride
56
70
  requirement: !ruby/object:Gem::Requirement
@@ -243,45 +257,9 @@ extra_rdoc_files: []
243
257
  files:
244
258
  - LICENSE
245
259
  - README.adoc
246
- - assets/config-packs/actionlint/base.yml
247
- - assets/config-packs/actionlint/project.yml
248
- - assets/config-packs/htmlproofer/base.yml
249
- - assets/config-packs/htmlproofer/project.yml
250
- - assets/config-packs/rubocop/base.yml
251
- - assets/config-packs/rubocop/project.yml
252
- - assets/config-packs/shellcheck/base.shellcheckrc
253
- - assets/config-packs/subtxt/ai-asciidoc-antipatterns.sub.txt
254
- - assets/config-packs/vale/asciidoc/ExplicitSectionIDs.yml
255
- - assets/config-packs/vale/asciidoc/ExtraLineBeforeLevel1.yml
256
- - assets/config-packs/vale/asciidoc/OneSentencePerLine.yml
257
- - assets/config-packs/vale/asciidoc/PreferSourceBlocks.yml
258
- - assets/config-packs/vale/asciidoc/ProperAdmonitions.yml
259
- - assets/config-packs/vale/asciidoc/ProperDLs.yml
260
- - assets/config-packs/vale/asciidoc/UncleanListStart.yml
261
- - assets/config-packs/vale/authoring/ButParagraph.yml
262
- - assets/config-packs/vale/authoring/ExNotEg.yml
263
- - assets/config-packs/vale/authoring/LiteralTerms.yml
264
- - assets/config-packs/vale/authoring/Spelling.yml
265
- - assets/config-packs/vale/base.ini
266
- - assets/config-packs/vale/config/scripts/ExplicitSectionIDs.tengo
267
- - assets/config-packs/vale/config/scripts/ExtraLineBeforeLevel1.tengo
268
- - assets/config-packs/vale/config/scripts/OneSentencePerLine.tengo
269
- - assets/config-packs/vale/project.ini
270
- - assets/hooks/pre-commit
271
- - assets/hooks/pre-push
272
- - assets/scripts/adoc_section_ids.rb
273
- - assets/scripts/build-common.sh
274
- - assets/scripts/build-docker.sh
275
- - assets/scripts/build.sh
276
- - assets/scripts/parse_jekyll_asciidoc_logs.rb
277
- - assets/templates/Gemfile
278
- - assets/templates/Rakefile
279
- - assets/templates/gitignore
280
- - assets/templates/jekyll-asciidoc-fix.prompt.yml
281
- - assets/templates/spellcheck.prompt.yml
282
260
  - docopslab-dev.gemspec
283
- - docs/agent/AGENTS.md
284
261
  - docs/agent/index.md
262
+ - docs/agent/misc/bash-styles.md
285
263
  - docs/agent/missions/conduct-release.md
286
264
  - docs/agent/missions/setup-new-project.md
287
265
  - docs/agent/roles/devops-release-engineer.md
@@ -294,6 +272,7 @@ files:
294
272
  - docs/agent/roles/tech-docs-manager.md
295
273
  - docs/agent/roles/tech-writer.md
296
274
  - docs/agent/skills/asciidoc.md
275
+ - docs/agent/skills/bash-cli-dev.md
297
276
  - docs/agent/skills/code-commenting.md
298
277
  - docs/agent/skills/fix-broken-links.md
299
278
  - docs/agent/skills/fix-jekyll-asciidoc-build-errors.md
@@ -313,24 +292,34 @@ files:
313
292
  - docs/agent/topics/dev-tooling-usage.md
314
293
  - docs/agent/topics/devops-ci-cd.md
315
294
  - docs/agent/topics/product-docs-deployment.md
295
+ - docs/library-readme.adoc
316
296
  - lib/docopslab/dev.rb
317
297
  - lib/docopslab/dev/auto_fix_asciidoc.rb
298
+ - lib/docopslab/dev/cast_ops.rb
318
299
  - lib/docopslab/dev/checkers.rb
319
300
  - lib/docopslab/dev/config_manager.rb
301
+ - lib/docopslab/dev/data_utils.rb
320
302
  - lib/docopslab/dev/file_utils.rb
303
+ - lib/docopslab/dev/git_branch.rb
321
304
  - lib/docopslab/dev/git_hooks.rb
322
305
  - lib/docopslab/dev/help.rb
323
306
  - lib/docopslab/dev/initializer.rb
307
+ - lib/docopslab/dev/library.rb
308
+ - lib/docopslab/dev/library/cache.rb
309
+ - lib/docopslab/dev/library/fetch.rb
324
310
  - lib/docopslab/dev/linters.rb
325
311
  - lib/docopslab/dev/log_parser.rb
312
+ - lib/docopslab/dev/manifest.rb
326
313
  - lib/docopslab/dev/paths.rb
327
314
  - lib/docopslab/dev/script_manager.rb
315
+ - lib/docopslab/dev/skim.rb
328
316
  - lib/docopslab/dev/spell_check.rb
329
317
  - lib/docopslab/dev/sync_ops.rb
330
318
  - lib/docopslab/dev/tasks.rb
331
319
  - lib/docopslab/dev/tool_execution.rb
332
320
  - lib/docopslab/dev/version.rb
333
321
  - specs/data/default-manifest.yml
322
+ - specs/data/library-index.yml
334
323
  - specs/data/manifest-schema.yaml
335
324
  - specs/data/tasks-def.yml
336
325
  - specs/data/tools.yml
@@ -1,13 +0,0 @@
1
- # actionlint configuration for DocOps Lab projects
2
- # This file is synced from docopslab-dev gem
3
-
4
- # Disable overly strict rules for common patterns
5
- ignore:
6
- # Allow commonly used but deprecated actions (we'll upgrade gradually)
7
- - 'SC2086:' # shellcheck rule about double quotes
8
- - 'the runner of "ubuntu-latest" is deprecated'
9
-
10
- # Custom shell for shellcheck integration
11
- shellcheck:
12
- enable: true
13
- shell-options: "-e SC2086" # Allow some globbing patterns
@@ -1,13 +0,0 @@
1
- # actionlint configuration for this project
2
- # References DocOps Lab base configuration
3
-
4
- # Project-specific ignores (add as needed):
5
- ignore:
6
- # Example: Ignore specific workflow patterns
7
- # - 'workflow "deploy.yml"'
8
- # - '"ubuntu-20.04" is deprecated'
9
-
10
- # Project-specific overrides:
11
- shellcheck:
12
- enable: true
13
- # shell-options: "-e SC2016" # Add project-specific ShellCheck exclusions
@@ -1,27 +0,0 @@
1
- ---
2
- # DocOps Lab HTML-Proofer Base Configuration
3
- # This provides sensible defaults for DocOps Lab projects
4
-
5
- # URL checking options
6
- check_external_hash: false # Skip checking external URL fragments (can be slow)
7
- check_img_http: false # Allow HTTP images for now
8
- enforce_https: false # Don't enforce HTTPS for all links
9
-
10
- # URLs to ignore (patterns and strings)
11
- ignore_urls:
12
- - /localhost/ # Skip local development URLs
13
- - /127\.0\.0\.1/ # Skip local IPs
14
- - /example\.com/ # Skip example URLs
15
- - /foo\.bar/ # Skip placeholder URLs
16
- - /fonts.googleapis.com/ # Skip Google Fonts
17
- - /fonts.gstatic.com/ # Skip Google Fonts static
18
-
19
- # Files to ignore (patterns)
20
- ignore_files:
21
- - slides/ # Skip slides directories
22
-
23
- # Other options
24
- check_favicon: false # Don't require favicon
25
- check_html: true # Check HTML structure
26
- check_opengraph: false # Skip OpenGraph validation
27
- disable_external: false # Check external links (can be disabled for speed)
@@ -1,25 +0,0 @@
1
- # DocOps Lab HTML-Proofer Configuration
2
- # Combined base and project configuration for consistent HTML validation
3
- # URL checking options
4
- check_external_hash: false # Skip checking external URL fragments (can be slow)
5
- check_img_http: false # Allow HTTP images for now
6
- enforce_https: false # Don't enforce HTTPS for all links
7
- check_favicon: false # Don't require favicon
8
- check_html: true # Check HTML structure
9
- check_opengraph: false # Skip OpenGraph validation
10
- disable_external: false # Check external links (can be disabled for speed)
11
-
12
- # URLs to ignore (patterns and strings)
13
- ignore_urls:
14
- - /localhost/ # Skip local development URLs
15
- - /127\.0\.0\.1/ # Skip local IPs
16
- - /example\.com/ # Skip example URLs
17
- - /foo\.bar/ # Skip placeholder URLs
18
- - /fonts\.googleapis\.com/ # Skip Google Fonts
19
- - /fonts\.gstatic\.com/ # Skip Google Fonts static
20
- # Add project-specific URL ignores below:
21
-
22
- # Files to ignore (patterns)
23
- ignore_files:
24
- - slides/ # Skip slides directories
25
- # Add project-specific file ignores below:
@@ -1,130 +0,0 @@
1
- # RuboCop configuration for DocOps Lab projects
2
- # This is the baseline configuration distributed via docopslab-dev
3
-
4
- plugins:
5
- - rubocop-rspec
6
-
7
- AllCops:
8
- TargetRubyVersion: 3.2
9
- NewCops: enable
10
- DisplayCopNames: true
11
- DisplayStyleGuide: true
12
-
13
- Style/MethodDefParentheses:
14
- EnforcedStyle: require_no_parentheses
15
-
16
- Style/MethodCallWithArgsParentheses:
17
- EnforcedStyle: require_parentheses
18
- AllowParenthesesInMultilineCall: true
19
- AllowParenthesesInChaining: true
20
-
21
- # Allow longer lines for documentation
22
- Layout/LineLength:
23
- Max: 120
24
- AllowedPatterns:
25
- - '\A\s*#.*\z' # Comments
26
- - '\A\s*\*.*\z' # Rdoc comments
27
-
28
- Metrics/MethodLength:
29
- Max: 25
30
-
31
- # Allow longer blocks for Rake tasks and RSpec
32
- Metrics/BlockLength:
33
- AllowedMethods:
34
- - describe
35
- - context
36
- - feature
37
- - scenario
38
- - let
39
- - let!
40
- - subject
41
- - task
42
- - namespace
43
- Max: 50
44
-
45
- # Documentation not required for internal tooling
46
- Style/Documentation:
47
- Enabled: false
48
-
49
- # Allow TODO comments
50
- Style/CommentAnnotation:
51
- Keywords:
52
- - TODO
53
- - FIXME
54
- - OPTIMIZE
55
- - HACK
56
- - REVIEW
57
-
58
- Style/CommentedKeyword:
59
- Enabled: false
60
-
61
- Style/StringLiterals:
62
- Enabled: true
63
- EnforcedStyle: single_quotes
64
-
65
- Style/StringLiteralsInInterpolation:
66
- Enabled: true
67
- EnforcedStyle: single_quotes
68
-
69
- Style/FrozenStringLiteralComment:
70
- Enabled: true
71
- EnforcedStyle: always
72
-
73
- Layout/FirstParameterIndentation:
74
- EnforcedStyle: consistent
75
-
76
- Layout/ParameterAlignment:
77
- EnforcedStyle: with_fixed_indentation
78
-
79
- Layout/MultilineMethodCallBraceLayout:
80
- EnforcedStyle: same_line
81
-
82
- Layout/MultilineMethodCallIndentation:
83
- EnforcedStyle: aligned
84
-
85
- Layout/FirstMethodArgumentLineBreak:
86
- Enabled: true
87
-
88
- Layout/TrailingWhitespace:
89
- Enabled: true
90
-
91
- Layout/EmptyLineAfterGuardClause:
92
- Enabled: true
93
-
94
- Layout/HashAlignment:
95
- Enabled: false
96
-
97
- Layout/SpaceAroundOperators:
98
- Enabled: false
99
-
100
- Layout/SpaceAroundEqualsInParameterDefault:
101
- Enabled: false
102
- EnforcedStyle: no_space
103
-
104
- Metrics/AbcSize:
105
- Enabled: false
106
-
107
- Metrics/CyclomaticComplexity:
108
- Enabled: false
109
-
110
- Metrics/PerceivedComplexity:
111
- Enabled: false
112
-
113
- Lint/UnusedMethodArgument:
114
- Enabled: true
115
-
116
- Lint/UselessAssignment:
117
- Enabled: true
118
-
119
- Lint/IneffectiveAccessModifier:
120
- Enabled: true
121
-
122
- Security/YAMLLoad:
123
- Enabled: false # Projects may intentionally use unsafe YAML loading
124
-
125
- Security/Eval:
126
- Enabled: true # Catch and replace with safer alternatives
127
-
128
- # Disable Naming/PredicateMethod - we use generate_, run_, sync_, etc for actions
129
- Naming/PredicateMethod:
130
- Enabled: false
@@ -1,8 +0,0 @@
1
- # DocOps Lab RuboCop Configuration
2
-
3
- inherit_from: .vendor/docopslab/rubocop.yml
4
-
5
- # Add project-specific overrides below:
6
- # AllCops:
7
- # Exclude:
8
- # - scripts/**
@@ -1,14 +0,0 @@
1
- # ShellCheck configuration for DocOps Lab projects
2
- # This file is synced from docopslab-dev gem
3
-
4
- # Disable some overly strict rules for our use cases
5
- disable=SC2034 # Variable appears unused (common in sourced scripts)
6
- disable=SC2086 # Double quote to prevent globbing (sometimes we want globbing)
7
- disable=SC2181 # Check exit code directly with e.g. 'if mycmd;', not indirectly with $?
8
-
9
- # Set default shell to bash (most of our scripts are bash)
10
- shell=bash
11
-
12
- # Enable additional optional checks
13
- enable=quote-safe-variables
14
- enable=require-variable-braces
@@ -1,11 +0,0 @@
1
- ^\* \*\*(.+)\*\*:\s
2
- \1::\n
3
-
4
- (^=+\s[\W\w].+)\n([\W\w].*)
5
- \1\n\n\\2
6
-
7
- ([^\s])\n\n==\s([\w\w])
8
- \1\n\n\n== \2
9
-
10
- ^\* (.*) - (.*)
11
- \1::\n\2\n
@@ -1,8 +0,0 @@
1
- ---
2
- extends: script
3
- scope: raw
4
- level: warning
5
- message: "Section heading must be preceded by an explicit ID in format [[section-id]] on the line above."
6
- link: https://docs.asciidoctor.org/asciidoc/latest/sections/custom-ids/
7
- description: "Ensures all section headings have explicit IDs for better cross-referencing and stable links."
8
- script: ExplicitSectionIDs.tengo
@@ -1,7 +0,0 @@
1
- ---
2
- extends: script
3
- scope: raw
4
- level: warning
5
- message: "Level-1 (==) headings must be preceded by two blank lines and an explicit [[section-id]] line."
6
- description: "Enforces: blank, blank, [[id]], then '== Heading'."
7
- script: ExtraLineBeforeLevel1.tengo
@@ -1,8 +0,0 @@
1
- ---
2
- extends: script
3
- scope: raw
4
- level: warning
5
- message: "Each sentence should be on its own line for better version control diffs and readability."
6
- link: https://docs.asciidoctor.org/asciidoc/latest/writing/style/#one-sentence-per-line
7
- description: "Encourages writing one sentence per line to improve readability and version control diffs."
8
- script: OneSentencePerLine.tengo
@@ -1,8 +0,0 @@
1
- ---
2
- extends: existence
3
- scope: raw
4
- level: error
5
- message: "Use '[source,lang]' with '----' delimiters instead of markdown-style code blocks with '```'."
6
- link: https://docs.asciidoctor.org/asciidoc/latest/verbatim/source-blocks/
7
- raw:
8
- - '```\w*\n[\s\S]*?\n```'
@@ -1,8 +0,0 @@
1
- ---
2
- extends: existence
3
- scope: raw
4
- level: error
5
- message: "Use proper AsciiDoc admonition blocks instead of manual formatting."
6
- link: https://docs.asciidoctor.org/asciidoc/latest/blocks/admonitions/
7
- raw:
8
- - '^\*\*NOTE:\*\*|^\*\*TIP:\*\*|^\*\*IMPORTANT:\*\*|^\*\*CAUTION:\*\*|^\*\*WARNING:\*\*'
@@ -1,7 +0,0 @@
1
- extends: existence
2
- message: "Use AsciiDoc definition list syntax (term:: definition) instead of bold/italic text followed by a colon."
3
- link: https://docs.asciidoctor.org/asciidoc/latest/lists/description/
4
- level: error
5
- scope: raw
6
- raw:
7
- - (?m)^(\* )?\*\*?(.+)(:\*\*?|\*\*?:)[\s\n]+(.+)$
@@ -1,8 +0,0 @@
1
- extends: existence
2
- message: |
3
- Add a blank line before starting a list after a sentence ending in a colon.
4
- level: warning
5
- scope: raw
6
- raw:
7
- - '(?m)^.*(?<!:):[ \t]*$(?=\n[\*\.]\s)'
8
- link: "Tip: run sed -E '/^[^:]+:[^:]*$/ { N; s/:\n([*.])/:\\n\\1/ }' -i yourfile.adoc"
@@ -1,8 +0,0 @@
1
- extends: existence
2
- message: "Do not start a paragraph with a 'but'."
3
- level: error
4
- scope: paragraph
5
- action:
6
- name: remove
7
- tokens:
8
- - '\n\nBut '
@@ -1,8 +0,0 @@
1
- # style for replacing /\se\.g\.,?\s/ with `ex: `
2
- extends: substitution
3
- scope: text
4
- level: error
5
- message: "Use 'ex: ' instead of 'e.g., '."
6
- link: https://developers.google.com/style/word-list#e.g
7
- swap:
8
- '([Ee])\.g\.,?\s': '\1x: '