docopslab-dev 0.1.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 +7 -0
- data/LICENSE +21 -0
- data/README.adoc +904 -0
- data/assets/config-packs/actionlint/base.yml +13 -0
- data/assets/config-packs/actionlint/project.yml +13 -0
- data/assets/config-packs/htmlproofer/base.yml +27 -0
- data/assets/config-packs/htmlproofer/project.yml +25 -0
- data/assets/config-packs/rubocop/base.yml +130 -0
- data/assets/config-packs/rubocop/project.yml +8 -0
- data/assets/config-packs/shellcheck/base.shellcheckrc +14 -0
- data/assets/config-packs/subtxt/ai-asciidoc-antipatterns.sub.txt +11 -0
- data/assets/config-packs/vale/asciidoc/ExplicitSectionIDs.yml +8 -0
- data/assets/config-packs/vale/asciidoc/ExtraLineBeforeLevel1.yml +7 -0
- data/assets/config-packs/vale/asciidoc/OneSentencePerLine.yml +8 -0
- data/assets/config-packs/vale/asciidoc/PreferSourceBlocks.yml +8 -0
- data/assets/config-packs/vale/asciidoc/ProperAdmonitions.yml +8 -0
- data/assets/config-packs/vale/asciidoc/ProperDLs.yml +7 -0
- data/assets/config-packs/vale/asciidoc/UncleanListStart.yml +8 -0
- data/assets/config-packs/vale/authoring/ButParagraph.yml +8 -0
- data/assets/config-packs/vale/authoring/ExNotEg.yml +8 -0
- data/assets/config-packs/vale/authoring/LiteralTerms.yml +20 -0
- data/assets/config-packs/vale/authoring/Spelling.yml +679 -0
- data/assets/config-packs/vale/base.ini +38 -0
- data/assets/config-packs/vale/config/scripts/ExplicitSectionIDs.tengo +56 -0
- data/assets/config-packs/vale/config/scripts/ExtraLineBeforeLevel1.tengo +121 -0
- data/assets/config-packs/vale/config/scripts/OneSentencePerLine.tengo +53 -0
- data/assets/config-packs/vale/project.ini +5 -0
- data/assets/hooks/pre-commit +63 -0
- data/assets/hooks/pre-push +72 -0
- data/assets/scripts/adoc_section_ids.rb +50 -0
- data/assets/scripts/build-common.sh +193 -0
- data/assets/scripts/build-docker.sh +64 -0
- data/assets/scripts/build.sh +56 -0
- data/assets/scripts/parse_jekyll_asciidoc_logs.rb +467 -0
- data/assets/templates/Gemfile +7 -0
- data/assets/templates/Rakefile +3 -0
- data/assets/templates/gitignore +69 -0
- data/assets/templates/jekyll-asciidoc-fix.prompt.yml +17 -0
- data/assets/templates/spellcheck.prompt.yml +16 -0
- data/docopslab-dev.gemspec +56 -0
- data/docs/agent/AGENTS.md +229 -0
- data/docs/agent/index.md +80 -0
- data/docs/agent/missions/conduct-release.md +224 -0
- data/docs/agent/missions/setup-new-project.md +250 -0
- data/docs/agent/roles/devops-release-engineer.md +152 -0
- data/docs/agent/roles/docops-engineer.md +193 -0
- data/docs/agent/roles/planner-architect.md +74 -0
- data/docs/agent/roles/product-engineer.md +153 -0
- data/docs/agent/roles/product-manager.md +130 -0
- data/docs/agent/roles/project-manager.md +139 -0
- data/docs/agent/roles/qa-testing-engineer.md +115 -0
- data/docs/agent/roles/tech-docs-manager.md +143 -0
- data/docs/agent/roles/tech-writer.md +163 -0
- data/docs/agent/skills/asciidoc.md +609 -0
- data/docs/agent/skills/code-commenting.md +347 -0
- data/docs/agent/skills/fix-broken-links.md +309 -0
- data/docs/agent/skills/fix-jekyll-asciidoc-build-errors.md +23 -0
- data/docs/agent/skills/fix-spelling-issues.md +13 -0
- data/docs/agent/skills/git.md +170 -0
- data/docs/agent/skills/github-issues.md +135 -0
- data/docs/agent/skills/product-release-rollback-and-patching.md +71 -0
- data/docs/agent/skills/rake-cli-dev.md +57 -0
- data/docs/agent/skills/readme-driven-dev.md +13 -0
- data/docs/agent/skills/release-history.md +29 -0
- data/docs/agent/skills/ruby.md +192 -0
- data/docs/agent/skills/schemagraphy-sgyml.md +18 -0
- data/docs/agent/skills/tests-running.md +25 -0
- data/docs/agent/skills/tests-writing.md +45 -0
- data/docs/agent/skills/write-the-docs.md +54 -0
- data/docs/agent/topics/common-project-paths.md +117 -0
- data/docs/agent/topics/dev-tooling-usage.md +202 -0
- data/docs/agent/topics/devops-ci-cd.md +55 -0
- data/docs/agent/topics/product-docs-deployment.md +25 -0
- data/lib/docopslab/dev/auto_fix_asciidoc.rb +46 -0
- data/lib/docopslab/dev/checkers.rb +108 -0
- data/lib/docopslab/dev/config_manager.rb +241 -0
- data/lib/docopslab/dev/file_utils.rb +140 -0
- data/lib/docopslab/dev/git_hooks.rb +140 -0
- data/lib/docopslab/dev/help.rb +121 -0
- data/lib/docopslab/dev/initializer.rb +95 -0
- data/lib/docopslab/dev/linters.rb +451 -0
- data/lib/docopslab/dev/log_parser.rb +31 -0
- data/lib/docopslab/dev/paths.rb +46 -0
- data/lib/docopslab/dev/script_manager.rb +136 -0
- data/lib/docopslab/dev/spell_check.rb +194 -0
- data/lib/docopslab/dev/sync_ops.rb +468 -0
- data/lib/docopslab/dev/tasks.rb +440 -0
- data/lib/docopslab/dev/tool_execution.rb +68 -0
- data/lib/docopslab/dev/version.rb +8 -0
- data/lib/docopslab/dev.rb +392 -0
- data/specs/data/default-manifest.yml +64 -0
- data/specs/data/manifest-schema.yaml +63 -0
- data/specs/data/tasks-def.yml +321 -0
- data/specs/data/tools.yml +60 -0
- metadata +362 -0
|
@@ -0,0 +1,229 @@
|
|
|
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[] -->
|
data/docs/agent/index.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# DocOps Lab AI Agent Documentation
|
|
2
|
+
|
|
3
|
+
<section class="docs-group"></section>
|
|
4
|
+
|
|
5
|
+
## Roles
|
|
6
|
+
|
|
7
|
+
#### [AGENT ROLE: Assistant Planner / Project Architect](/docs/agent/planner-architect/)
|
|
8
|
+
|
|
9
|
+
#### [AGENT ROLE: Assistant Product Manager](/docs/agent/product-manager/)
|
|
10
|
+
|
|
11
|
+
#### [AGENT ROLE: DevOps / Release Engineer](/docs/agent/devops-release-engineer/)
|
|
12
|
+
|
|
13
|
+
#### [AGENT ROLE: DocOps Engineer](/docs/agent/docops-engineer/)
|
|
14
|
+
|
|
15
|
+
#### [AGENT ROLE: Product Engineer](/docs/agent/product-engineer/)
|
|
16
|
+
|
|
17
|
+
#### [AGENT ROLE: Project Manager](/docs/agent/project-manager/)
|
|
18
|
+
|
|
19
|
+
#### [AGENT ROLE: QA / Testing Specialist](/docs/agent/qa-testing-engineer/)
|
|
20
|
+
|
|
21
|
+
#### [AGENT ROLE: Technical Documentation Manager](/docs/agent/tech-docs-manager/)
|
|
22
|
+
|
|
23
|
+
#### [AGENT ROLE: Technical Writer](/docs/agent/tech-writer/)
|
|
24
|
+
|
|
25
|
+
<section class="docs-group"></section>
|
|
26
|
+
|
|
27
|
+
## Skills
|
|
28
|
+
|
|
29
|
+
#### [AI Agent Instructions for Git Operations](/docs/agent/git/)
|
|
30
|
+
|
|
31
|
+
#### [AI Agent’s Guide to Writing in AsciiDoc](/docs/agent/asciidoc/)
|
|
32
|
+
|
|
33
|
+
#### [Agent Rake CLI Guide](/docs/agent/rake-cli-dev/)
|
|
34
|
+
|
|
35
|
+
#### [Code Commenting](/docs/agent/code-commenting/)
|
|
36
|
+
|
|
37
|
+
#### [Documenting Product Changes](/docs/agent/write-the-docs/)
|
|
38
|
+
|
|
39
|
+
#### [Fix Broken Links](/docs/agent/fix-broken-links/)
|
|
40
|
+
|
|
41
|
+
#### [Fix Jekyll AsciiDoc Build Errors](/docs/agent/fix-jekyll-asciidoc-build-errors/)
|
|
42
|
+
|
|
43
|
+
#### [Fix Spelling Issues in Documentation](/docs/agent/fix-spelling-issues/)
|
|
44
|
+
|
|
45
|
+
#### [GitHub Issues Management for AI Agents](/docs/agent/github-issues/)
|
|
46
|
+
|
|
47
|
+
#### [Preparing a Version Release History Document](/docs/agent/release-history/)
|
|
48
|
+
|
|
49
|
+
#### [README-driven Development](/docs/agent/readme-driven-dev/)
|
|
50
|
+
|
|
51
|
+
#### [Rolling Back and/or Patching a Product Release](/docs/agent/product-release-rollback-and-patching/)
|
|
52
|
+
|
|
53
|
+
#### [Ruby Coding Guide for DocOps Lab AI Agents](/docs/agent/ruby/)
|
|
54
|
+
|
|
55
|
+
#### [Running Tests in DocOps Lab Projects](/docs/agent/tests-running/)
|
|
56
|
+
|
|
57
|
+
#### [SchemaGraphy/SGYML 101](/docs/agent/schemagraphy-sgyml/)
|
|
58
|
+
|
|
59
|
+
#### [Writing Tests for DocOps Lab Projects](/docs/agent/tests-writing/)
|
|
60
|
+
|
|
61
|
+
<section class="docs-group"></section>
|
|
62
|
+
|
|
63
|
+
## Topics
|
|
64
|
+
|
|
65
|
+
#### [AI Agent Instructions for In-house Dev-Tooling Usage](/docs/agent/dev-tooling-usage/)
|
|
66
|
+
|
|
67
|
+
#### [AI Agent Orientation to DocOps Lab DevOps/CI/CD Practices](/docs/agent/devops-ci-cd/)
|
|
68
|
+
|
|
69
|
+
#### [Overview of Common Paths/Files in DocOps Lab Projects](/docs/agent/common-project-paths/)
|
|
70
|
+
|
|
71
|
+
#### [Product Documentation Deployment](/docs/agent/product-docs-deployment/)
|
|
72
|
+
|
|
73
|
+
<section class="docs-group"></section>
|
|
74
|
+
|
|
75
|
+
## Missions
|
|
76
|
+
|
|
77
|
+
#### [MISSION: Conduct a Product Release](/docs/agent/conduct-release/)
|
|
78
|
+
|
|
79
|
+
#### [MISSION: Start a New DocOps Lab Project](/docs/agent/setup-new-project/)
|
|
80
|
+
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# MISSION: Conduct a Product Release
|
|
2
|
+
|
|
3
|
+
This document is intended for AI agents operating within a DocOps Lab environment.
|
|
4
|
+
|
|
5
|
+
Original sources for this document include:
|
|
6
|
+
|
|
7
|
+
<!-- detect the origin url based on the slug (origin) -->
|
|
8
|
+
- [Release Process (General)](/docs/release/)
|
|
9
|
+
|
|
10
|
+
An AI Agent or multiple Agents, in collaboration with a human Operator, can execute the release procedure for a DocOps Lab project/product.
|
|
11
|
+
|
|
12
|
+
This mission covers the entire process from pre-flight checks to post-release cleanup.
|
|
13
|
+
|
|
14
|
+
Check the `README.adoc` or `docs/**/release.adoc` file specific to the project you are releasing for specific procedures.
|
|
15
|
+
|
|
16
|
+
Table of Contents
|
|
17
|
+
|
|
18
|
+
- Agent Roles
|
|
19
|
+
- Context Management for Multi-role Sessions
|
|
20
|
+
- Task Assignments and Suggestions
|
|
21
|
+
- Prerequisite: Attention OPERATOR
|
|
22
|
+
- Mission Procedure
|
|
23
|
+
- Stage 0: Mission Prep
|
|
24
|
+
- Evergreen Tasks
|
|
25
|
+
- Stage 1: Pre-flight Checks
|
|
26
|
+
- Stage 2: Release History
|
|
27
|
+
- Stage 3: Merge and Tag
|
|
28
|
+
- Stage 4: Release Announcement
|
|
29
|
+
- Stage 5: Artifact Publication
|
|
30
|
+
- Stage 6: Post-Release Tests & Cleanup
|
|
31
|
+
- Post-mission Debriefing
|
|
32
|
+
- Fulfillment Principles
|
|
33
|
+
- ALWAYS
|
|
34
|
+
- NEVER
|
|
35
|
+
- Quality Bar
|
|
36
|
+
|
|
37
|
+
## Agent Roles
|
|
38
|
+
|
|
39
|
+
The following agent roles will take a turn at steps in this mission.
|
|
40
|
+
|
|
41
|
+
**devops/release engineer** :
|
|
42
|
+
Execute the technical steps of the release, including git operations, tagging, and artifact publication.
|
|
43
|
+
|
|
44
|
+
**project manager** :
|
|
45
|
+
Oversee the release process, ensure conditions are met, and handle communications.
|
|
46
|
+
|
|
47
|
+
**tech writer** :
|
|
48
|
+
Prepare release notes and ensure documentation is up to date.
|
|
49
|
+
|
|
50
|
+
### Context Management for Multi-role Sessions
|
|
51
|
+
|
|
52
|
+
By default will be up to the Agent to decide whether to hand off to a concurrent or subsequent Agent or “upgrade” role/skills during a session.
|
|
53
|
+
|
|
54
|
+
The Operator may of course dictate or override this decision.
|
|
55
|
+
|
|
56
|
+
The goal is to use appropriate agents without cluttering any given agent’s context window.
|
|
57
|
+
|
|
58
|
+
**Soft-reset between roles** :
|
|
59
|
+
At each transition, declare what you’re loading (role doc + skills) and what you’re backgrounding. Don’t hold all previous stage details in active memory.
|
|
60
|
+
|
|
61
|
+
**Mission tracker as swap file** :
|
|
62
|
+
Dump detailed handoff notes into `.agent/project-setup-mission.md` after each stage. Read it first when starting new roles to understand what was built and what’s needed.
|
|
63
|
+
|
|
64
|
+
**Checkpoint between stages** :
|
|
65
|
+
After each stage, ask Operator to review/continue/pause. Creates intervention points if focus dilutes.
|
|
66
|
+
|
|
67
|
+
**Watch for dilution** :
|
|
68
|
+
Mixing concerns across roles, contradicting earlier decisions, hedging instead of checking files. If noticed, stop and checkpoint.
|
|
69
|
+
|
|
70
|
+
**Focused lenses** :
|
|
71
|
+
Each role emphasizes different details (Product Engineer = code structure, QA = test coverage, DevOps = automation, PM = coordination). Switch lenses deliberately; shared base knowledge (README, goals, conventions) stays warm.
|
|
72
|
+
|
|
73
|
+
### Task Assignments and Suggestions
|
|
74
|
+
|
|
75
|
+
In the Mission Procedures section, metadata is associated with each task.
|
|
76
|
+
|
|
77
|
+
All tasks are assigned a preferred `role:` the Agent should assume in carrying out the task. That role has further documentation at `.agent/docs/roles/<role-slug>.md`, and the executing agent should ingest that document entirely before proceeding.
|
|
78
|
+
|
|
79
|
+
Recommended collaborators are indicated by `with:`.
|
|
80
|
+
|
|
81
|
+
Recommended upgrades are designated by `upto:`.
|
|
82
|
+
|
|
83
|
+
Suggested skill/topic readings are indicated by `read:`.
|
|
84
|
+
|
|
85
|
+
Any working directories or files are listed in `path:`.
|
|
86
|
+
|
|
87
|
+
## Prerequisite: Attention OPERATOR
|
|
88
|
+
|
|
89
|
+
This process requires the `docopslab-dev` tooling is installed and synced. Ensure you have the necessary credentials for GitHub and any artifact registries (RubyGems, DockerHub, etc.).
|
|
90
|
+
|
|
91
|
+
## Mission Procedure
|
|
92
|
+
|
|
93
|
+
In general, the following stages are to be followed in order and tracked in a mission document.
|
|
94
|
+
|
|
95
|
+
### Stage 0: Mission Prep
|
|
96
|
+
|
|
97
|
+
**Create a mission-tracking document** :
|
|
98
|
+
Write a document with detailed steps for fulfilling the mission assigned here, based on any project-specific context. (`role: project-manager; path: .agent/release-mission.md`)
|
|
99
|
+
|
|
100
|
+
### Evergreen Tasks
|
|
101
|
+
|
|
102
|
+
The following tasks apply to most stages.
|
|
103
|
+
|
|
104
|
+
**Keep the mission-tracking document up to date** :
|
|
105
|
+
At the end of every stage, update the progress. (`path: .agent/release-mission.md`)
|
|
106
|
+
|
|
107
|
+
### Stage 1: Pre-flight Checks
|
|
108
|
+
|
|
109
|
+
**Verify conditions** :
|
|
110
|
+
Ensure the "Definition of Done" is met.
|
|
111
|
+
|
|
112
|
+
- [ ] All target issues are closed.
|
|
113
|
+
- [ ] CI builds and tests pass on `dev/x.y`.
|
|
114
|
+
- [ ] Documentation updated and merged. (`role: devops-release-engineer; upto: project-manager; with: Operator`)
|
|
115
|
+
|
|
116
|
+
**Manual double-checks** :
|
|
117
|
+
Perform the following checks before proceeding.
|
|
118
|
+
|
|
119
|
+
- [ ] No local paths in `Gemfile`.
|
|
120
|
+
- [ ] All documentation changes merged.
|
|
121
|
+
- [ ] Version attribute bumped and propagated. (`role: project-manager; with: Operator`)
|
|
122
|
+
|
|
123
|
+
### Stage 2: Release History
|
|
124
|
+
|
|
125
|
+
**Prepare Release Notes doc** :
|
|
126
|
+
Generate and refine the release history.
|
|
127
|
+
|
|
128
|
+
Generate release notes and changelog using ReleaseHx.
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
bundle update releasehx
|
|
132
|
+
bundle exec releasehx <$tok.majmin>.<$tok.patch> --md docs/release/<$tok.majmin>.<$tok.patch>.md
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Edit the Markdown file at `docs/release/<$tok.majmin>.<$tok.patch>.md`.
|
|
136
|
+
|
|
137
|
+
> **NOTE:** This step may vary significantly depending on project’s implementation of ReleaseHx.
|
|
138
|
+
|
|
139
|
+
See the project’s `README.adoc`; seek for `releasehx`. (`role: devops-release-engineer; upto: tech-writer; with: Operator; read: .agent/docs/skills/release-history.md`)
|
|
140
|
+
|
|
141
|
+
### Stage 3: Merge and Tag
|
|
142
|
+
|
|
143
|
+
**Merge the dev branch to `main``** :
|
|
144
|
+
Merge the development branch into the main branch.
|
|
145
|
+
|
|
146
|
+
include::../../task/release.adoc[tag="step-merge"])
|
|
147
|
+
|
|
148
|
+
**Tag the release** :
|
|
149
|
+
Create and push the release tag.
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
git tag -a v<$tok.majmin>.<$tok.patch> -m "Release <$tok.majmin>.<$tok.patch>"
|
|
153
|
+
git push origin v<$tok.majmin>.<$tok.patch>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Stage 4: Release Announcement
|
|
157
|
+
|
|
158
|
+
**Create GitHub release** :
|
|
159
|
+
Publish the release on GitHub.
|
|
160
|
+
|
|
161
|
+
Use the GitHub CLI to create a release:
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
gh release create v<$tok.majmin>.<$tok.patch> --title "Release <$tok.majmin>.<$tok.patch>" --notes-file docs/releases/<$tok.majmin>.<$tok.patch>.md --target main
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Or else use the GitHub web interface to manually register the release, and copy/paste the contents of `docs/releasehx/<$tok.majmin>.<$tok.patch>.md` into the release notes field. (`role: project-manager; with: devops-release-engineer`)
|
|
168
|
+
|
|
169
|
+
### Stage 5: Artifact Publication
|
|
170
|
+
|
|
171
|
+
**Publish artifacts** :
|
|
172
|
+
Build and publish the final artifacts.
|
|
173
|
+
|
|
174
|
+
Use the `publish.sh` script with proper credentials in place.
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
./scripts/publish.sh
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
This step concludes the release process. (`role: devops-release-engineer; with: Operator`)
|
|
181
|
+
|
|
182
|
+
### Stage 6: Post-Release Tests & Cleanup
|
|
183
|
+
|
|
184
|
+
**Test published artifacts** :
|
|
185
|
+
Manually fetch and install/activate any gems, images, or other binary files, and spot check published documentation. (`role: devops-release-engineer; upto: qa-testing-engineer; with: Operator`)
|
|
186
|
+
|
|
187
|
+
**Post-release tasks** :
|
|
188
|
+
Perform necessary cleanup and preparation for the next cycle.
|
|
189
|
+
|
|
190
|
+
- [ ] Cut a _release_ branch for patching (`release/<$tok.majmin>`).
|
|
191
|
+
- [ ] Update `:next_prod_vrsn:` in docs.
|
|
192
|
+
- [ ] Create next development branch (`dev/<next>`).
|
|
193
|
+
- [ ] Notify stakeholders. (`role: project-manager; with: devops-release-engineer`)
|
|
194
|
+
|
|
195
|
+
### Post-mission Debriefing
|
|
196
|
+
|
|
197
|
+
**Review the Mission Report** :
|
|
198
|
+
Highlight outstanding or special notices from the Mission Report. (`role: Agent; with: Operator; read: .agent/reports/release-mission.md`)
|
|
199
|
+
|
|
200
|
+
**Suggest modifications to _this_ mission assignment** :
|
|
201
|
+
Taking into account any bumps, blockers, or unexpected occurrences during fulfillment of this mission, recommend changes or additions to **“MISSION: Conduct a Product Release”** itself. (`role: Agent; with: Operator; path: ../lab/_docs/agent/missions/conduct-release.adoc`).
|
|
202
|
+
|
|
203
|
+
> **IMPORTANT:** In case of emergency rollback or patching, see `.agent/docs/skills/product-release-rollback.md`.
|
|
204
|
+
|
|
205
|
+
## Fulfillment Principles
|
|
206
|
+
|
|
207
|
+
### ALWAYS
|
|
208
|
+
|
|
209
|
+
- Always ask the Operator when you don’t know exactly how DocOps Lab prefers a step be carried out.
|
|
210
|
+
- Always follow the mission procedure as closely as possible, adapting only when necessary due to project-specific constraints.
|
|
211
|
+
- Always document any deviations from the standard procedure and the reasons for them in the Mission Report.
|
|
212
|
+
- Always look for a DRY way to define product metadata/attrbutes in README.adoc and YAML files (`specs/data/*-def.yml`).
|
|
213
|
+
- Always pause for Operator approval before ANY publishing or deployment action, including pushing/posting to GitHub.
|
|
214
|
+
|
|
215
|
+
### NEVER
|
|
216
|
+
|
|
217
|
+
- Never get creative or innovative without Operator permission.
|
|
218
|
+
- Never skip steps in the mission procedure without documenting the reason.
|
|
219
|
+
- Never assume the Operator understands DocOps Lab conventions without explanation.
|
|
220
|
+
|
|
221
|
+
### Quality Bar
|
|
222
|
+
|
|
223
|
+
A successful release is one where all artifacts are published correctly, the documentation accurately reflects the changes, and the repository is in a clean state for the next development cycle.
|
|
224
|
+
|