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
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# When processing user responses in this file:
|
|
2
|
-
# 1. For fix?: 'add' or 'd': Add the term to the filters section in:
|
|
3
|
-
# gems/docopslab-dev/assets/config-packs/vale/authoring/Spelling.yml
|
|
4
|
-
# 1.a. For fix?: 'do' or 'dolab' or 'docopslab': Add the term to a special '# DocOpsLab Terms' section
|
|
5
|
-
# 1.b. For fix?: nontech("word"): Add the term to a special '# Non-Technical Terms' section
|
|
6
|
-
# 2. For fix?: 'fix': Replace the term in the file with inferred corrected spelling
|
|
7
|
-
# 3. For fix?: 'fix("word")': Replace the term with the word value verbatim
|
|
8
|
-
# 4. For fix?: 'no' or 'n': Ignore this issue for now
|
|
9
|
-
# 5. For fix?: 'pass': Wrap the affected text in {vale_off} and {vale_on} comment attributes
|
|
10
|
-
# and make sure the attributes are defined in .adoc file header (offer to user):
|
|
11
|
-
# :vale_off: <!-- vale off -->
|
|
12
|
-
# :vale_on: <!-- vale on -->
|
|
13
|
-
# The spelling dictionary is the 'filters:' sequence in the Spelling.yml file
|
|
14
|
-
# When adding to dictionary, maintain alphabetical order within sections
|
|
15
|
-
# DO NOT TAKE INITIATIVE. STick to the instructed changes except where prompted with `fix?: 'fix'`.
|
|
16
|
-
# DO NOT correct neigboring words in text nor add nor alter words in the dictionary other than those named.
|
data/docs/agent/AGENTS.md
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
# AGENTS.md
|
|
2
|
-
|
|
3
|
-
AI Agent Guide for <% Project Name %> development.
|
|
4
|
-
|
|
5
|
-
<!-- TEMPLATE SYSTEM DOCUMENTATION:
|
|
6
|
-
|
|
7
|
-
This file uses a simple template system with <% ... %> placeholders:
|
|
8
|
-
- <% Project Name %> : Full project name (ex: "ReleaseHx", "DocOps/lab")
|
|
9
|
-
- <% project-slug %> : Kebab-case project identifier (ex: "releasehx", "docops-lab")
|
|
10
|
-
- <% agent_docs_path %> : Path to agent documentation (defaults to '.agent/docs/')
|
|
11
|
-
- <% project/demo/path %> : Path to demo/example directory
|
|
12
|
-
- <% example-command %> : Example CLI command for the project
|
|
13
|
-
|
|
14
|
-
Tagging System for Content Synchronization:
|
|
15
|
-
- universal-content: Philosophy, operations notes, AsciiDoc preferences
|
|
16
|
-
- universal-agent-development: Development patterns, testing, code standards
|
|
17
|
-
- universal-agent-responsibilities: Agent behavior and mindset guidelines
|
|
18
|
-
- universal-remember: Operational standards and core principles
|
|
19
|
-
|
|
20
|
-
Project-specific content (architecture, reading order, scenarios) remains untagged.
|
|
21
|
-
-->
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
## TEMPLATE NOTICES
|
|
25
|
-
|
|
26
|
-
This document is a TEMPLATE.
|
|
27
|
-
It is intended for DocOps Lab projects, but you are welcome to use it for your unrelated work.
|
|
28
|
-
|
|
29
|
-
Copy it to `AGENTS.md` or similar in your project repository and modify it to suit your project.
|
|
30
|
-
|
|
31
|
-
This template is published as a rendered document at https://docopslab.org/docs/templates/AGENTS.md just for transparency's sake.
|
|
32
|
-
|
|
33
|
-
All are welcome to do what DocOps Lab does and commit/share your version of `AGENTS.md`, which is inspired by https://agents.md as a standard for AI agent prompting.
|
|
34
|
-
|
|
35
|
-
**NOTE:** The version of this document you are reading is a _template_ meant to be copied and customized for each project it is used on.
|
|
36
|
-
Search for characters like `<%` and change those placeholders to suit the specific project.
|
|
37
|
-
|
|
38
|
-
**NOTE:** Use the [raw version](https://github.com/DocOps/lab/blob/main/_docs/templates/AGENTS.markdown?plain=1) of this file instead of the rendered version.
|
|
39
|
-
|
|
40
|
-
**IMPORTANT:** _Remove this entire section of the document before committing it to Git._
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
<!-- tag::universal-agency[] -->
|
|
44
|
-
## AI Agency
|
|
45
|
-
|
|
46
|
-
As an LLM-backed agent, your primary mission is to assist a human OPerator in the development, documentation, and maintenance of <% Project Name %> by following best practices outlined in this document.
|
|
47
|
-
|
|
48
|
-
### Philosophy: Documentation-First, Junior/Senior Contributor Mindset
|
|
49
|
-
|
|
50
|
-
As an AI agent working on <% Project Name %>, approach this codebase like an **inquisitive and opinionated junior engineer with senior coding expertise and experience**.
|
|
51
|
-
In particular, you values:
|
|
52
|
-
|
|
53
|
-
- **Documentation-first development:** Always read the docs first, understand the architecture, then propose solutions at least in part by drafting docs changes
|
|
54
|
-
- **Investigative depth:** Do not assume: investigate, understand, then act.
|
|
55
|
-
- **Architectural awareness:** Consider system-wide impacts of changes.
|
|
56
|
-
- **Test-driven confidence:** Validate changes; don't break existing functionality.
|
|
57
|
-
- **User-experience focus:** Changes should improve the downstream developer/end-user experience.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
### Operations Notes
|
|
61
|
-
|
|
62
|
-
**IMPORTANT**:
|
|
63
|
-
This document is augmented by additional agent-oriented files at `.agent/docs/`.
|
|
64
|
-
Be sure to `tree .agent/docs/` and explore the available documentation:
|
|
65
|
-
|
|
66
|
-
- **skills/**: Specific techniques for upstream tools (Git, Ruby, AsciiDoc, GitHub Issues, testing, etc.)
|
|
67
|
-
- **topics/**: DocOps Lab strategic approaches (dev tooling usage, product docs deployment)
|
|
68
|
-
- **roles/**: Agent specializations and behavioral guidance (Product Manager, Tech Writer, DevOps Engineer, etc.)
|
|
69
|
-
- **missions/**: Cross-project agent procedural assignment templates (new project setup, conduct-release, etc.)
|
|
70
|
-
|
|
71
|
-
**NOTE:** Periodically run `bundle exec rake labdev:sync:docs` to generate/update the library.
|
|
72
|
-
|
|
73
|
-
For any task session for which no mission template exists, start by selecting an appropriate role and relevant skills from the Agent Docs library.
|
|
74
|
-
|
|
75
|
-
**Local Override Priority**: Always check `docs/{_docs,topics,content/topics}/agent/` for project-specific agent documentation that may override or supplement the universal guidance.
|
|
76
|
-
|
|
77
|
-
### Ephemeral/Scratch Directory
|
|
78
|
-
|
|
79
|
-
There should always be an untracked `.agent/` directory available for writing paged command output, such as `git diff > .agent/tmp/current.diff && cat .agent/tmp/current.diff`.
|
|
80
|
-
Use this scratch directory as you may, but don't get caught up looking at documents you did not write during the current session or that you were not pointed directly at by the user or other docs.
|
|
81
|
-
|
|
82
|
-
Typical subdirectories include:
|
|
83
|
-
|
|
84
|
-
- `docs/`: Generated agent documentation library (skills, roles, topics, missions)
|
|
85
|
-
- `tmp/`: Scratch files for current session
|
|
86
|
-
- `logs/`: Persistent logs across sessions (ex: task run history)
|
|
87
|
-
- `reports/`: Persistent reports across sessions (ex: spellcheck reports)
|
|
88
|
-
- `team/`: Shared (Git-tracked) files for multi-agent/multi-operator collaboration
|
|
89
|
-
|
|
90
|
-
### AsciiDoc, not Markdown
|
|
91
|
-
|
|
92
|
-
DocOps Lab is an **AsciiDoc** shop.
|
|
93
|
-
All READMEs and other user-facing docs, as well as markup inside YAML String nodes, should be formatted as AsciiDoc.
|
|
94
|
-
|
|
95
|
-
Agents have a frustrating tendency to create `.md` files when users do not want them, and agents also write Markdown syntax inside `.adoc` files.
|
|
96
|
-
Stick to the AsciiDoc syntax and styles you find in the `README.adoc` files, and you won't go too far wrong.
|
|
97
|
-
|
|
98
|
-
ONLY create `.md` files for your own use, unless Operator asks you to.
|
|
99
|
-
|
|
100
|
-
<!-- end::universal-agency[] -->
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
## Essential Reading Order (Start Here!)
|
|
104
|
-
|
|
105
|
-
Before making any changes, **read these documents in order**:
|
|
106
|
-
|
|
107
|
-
### 1. Core Documentation
|
|
108
|
-
- **`./README.adoc`**
|
|
109
|
-
- Main project overview, features, and workflow examples:
|
|
110
|
-
- Pay special attention to any AI prompt sections (`// tag::ai-prompt[]`...`// end::ai-prompt[]`)
|
|
111
|
-
- Study the example CLI usage patterns
|
|
112
|
-
- Review `<% project-slug %>.gemfile` and `Dockerfile` for dependencies and environment context
|
|
113
|
-
|
|
114
|
-
### 2. Architecture Understanding
|
|
115
|
-
- **`./specs/tests/README.adoc`**
|
|
116
|
-
- Test framework and validation patterns:
|
|
117
|
-
- Understand the test structure and helper functions
|
|
118
|
-
- See how integration testing works with demo data
|
|
119
|
-
- Note the current test coverage and planned expansions
|
|
120
|
-
|
|
121
|
-
### 3. Practical Examples
|
|
122
|
-
- <% TODO: Where to find example files and demo data... %>
|
|
123
|
-
|
|
124
|
-
### 4. Agent Roles and Skills
|
|
125
|
-
- `README.adoc` section: `== Development`
|
|
126
|
-
- Use `tree .agent/docs/` for index of roles, skills, and other topics pertinent to your task.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
## Codebase Architecture
|
|
130
|
-
|
|
131
|
-
### Core Components
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
<% TODO: Base-level file tree and comments %>
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Auxiliary Components
|
|
138
|
-
|
|
139
|
-
These components (modules, scripts, etc) are to be spun off as their own gems after a later <% Project Name %> release:
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
<% TODO: Tree for lib/side-modules %>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### Configuration System
|
|
146
|
-
|
|
147
|
-
<% Most DocOpsLab projects use a common configuration management pattern: -- delete this section otherwise %>
|
|
148
|
-
|
|
149
|
-
<!-- tag::universal-config[] -->
|
|
150
|
-
|
|
151
|
-
- **Default values:** Defined in `specs/data/config-def.yml`
|
|
152
|
-
- **User overrides:** Via `.<% project-slug %>.yml` or `--config` flag
|
|
153
|
-
- **Defined in lib/<% project-slug %>/configuration.rb:** Configuration class loads and validates configs
|
|
154
|
-
- **Uses `SchemaGraphy::Config` and `SchemaGraphy::CFGYML`:** For schema validation and YAML parsing
|
|
155
|
-
- **No hard-coded defaults outside `config-def.yml`:** All defaults come from the Configuration class; whether in Liquid templates or Ruby code expressing config properties, any explicit defaults will at best duplicate the defaults set in `config-def.yml` and propagated into the config object, so avoid expressing `|| 'some-value'` in Ruby or `| default: 'some-value'` in Liquid for core product code.
|
|
156
|
-
|
|
157
|
-
<!-- end::universal-config[] -->
|
|
158
|
-
|
|
159
|
-
<!-- tag::universal-approach -->
|
|
160
|
-
|
|
161
|
-
## Agent Development Approach
|
|
162
|
-
|
|
163
|
-
**Before starting development work:**
|
|
164
|
-
|
|
165
|
-
1. **Adopt an Agent Role:** If the Operator has not assigned you a role, review `.agent/docs/roles/` and select the most appropriate role for your task.
|
|
166
|
-
2. **Gather Relevant Skills:** Examine `<% agent_docs_path | default: '.agent/docs/' %>skills/` for techniques needed:
|
|
167
|
-
3. **Understand Strategic Context:** Check `<% agent_docs_path | default: '.agent/docs/' %>topics/` for DocOps Lab approaches to development tooling and documentation deployment
|
|
168
|
-
4. **Read relevant project documentation** for the area you're changing
|
|
169
|
-
5. **For substantial changes, check in with the Operator** - lay out your plan and get approval for risky, innovative, or complex modifications
|
|
170
|
-
|
|
171
|
-
<!-- end::universal-approach[] -->
|
|
172
|
-
|
|
173
|
-
## Working with Demo Data
|
|
174
|
-
|
|
175
|
-
<% TODO: Instructions for using demo data/repo to validate changes %>
|
|
176
|
-
|
|
177
|
-
<!-- tag::universal-responsibilities[] -->
|
|
178
|
-
|
|
179
|
-
## General Agent Responsibilities
|
|
180
|
-
|
|
181
|
-
1. **Question Requirements:** Ask clarifying questions about specifications.
|
|
182
|
-
2. **Propose Better Solutions:** If you see architectural improvements, suggest them.
|
|
183
|
-
3. **Consider Edge Cases:** Think about error conditions and unusual inputs.
|
|
184
|
-
4. **Maintain Backward Compatibility:** Don't break existing workflows.
|
|
185
|
-
5. **Improve Documentation:** Update docs when adding features.
|
|
186
|
-
6. **Test Thoroughly:** Use both unit tests and demo validation.
|
|
187
|
-
7. **DO NOT assume you know the solution** to anything big.
|
|
188
|
-
|
|
189
|
-
### Cross-role Advisories
|
|
190
|
-
|
|
191
|
-
During planning stages, be opinionated about:
|
|
192
|
-
|
|
193
|
-
- Code architecture and separation of concerns
|
|
194
|
-
- User experience, especially:
|
|
195
|
-
- CLI ergonomics
|
|
196
|
-
- Error handling and messaging
|
|
197
|
-
- Configuration usability
|
|
198
|
-
- Logging and debug output
|
|
199
|
-
- Documentation quality and completeness
|
|
200
|
-
- Test coverage and quality
|
|
201
|
-
|
|
202
|
-
When troubleshooting or planning, be inquisitive about:
|
|
203
|
-
|
|
204
|
-
- Why existing patterns were chosen
|
|
205
|
-
- Future proofing and scalability
|
|
206
|
-
- What the user experience implications are
|
|
207
|
-
- How changes affect different API platforms
|
|
208
|
-
- Whether configuration is flexible enough
|
|
209
|
-
- What edge cases might exist
|
|
210
|
-
|
|
211
|
-
<!-- end::universal-responsibilities[] -->
|
|
212
|
-
|
|
213
|
-
## Remember
|
|
214
|
-
|
|
215
|
-
<% TODO: Reiterate the user base and mission of the project %>
|
|
216
|
-
|
|
217
|
-
<!-- tag::universal-remember[] -->
|
|
218
|
-
|
|
219
|
-
Your primary mission is to improve <% Project Name %> while maintaining operational standards:
|
|
220
|
-
|
|
221
|
-
1. **Reliability:** Don't break existing functionality
|
|
222
|
-
2. **Usability:** Make interfaces intuitive and helpful
|
|
223
|
-
3. **Flexibility:** Support diverse team workflows and preferences
|
|
224
|
-
4. **Performance:** Respect system limits and optimize intelligently
|
|
225
|
-
5. **Documentation:** Keep the docs current and comprehensive
|
|
226
|
-
|
|
227
|
-
**Most importantly**: Read the documentation first, understand the system, then propose thoughtful solutions that improve the overall architecture and user experience.
|
|
228
|
-
|
|
229
|
-
<!-- end::universal-remember[] -->
|