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.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.adoc +904 -0
  4. data/assets/config-packs/actionlint/base.yml +13 -0
  5. data/assets/config-packs/actionlint/project.yml +13 -0
  6. data/assets/config-packs/htmlproofer/base.yml +27 -0
  7. data/assets/config-packs/htmlproofer/project.yml +25 -0
  8. data/assets/config-packs/rubocop/base.yml +130 -0
  9. data/assets/config-packs/rubocop/project.yml +8 -0
  10. data/assets/config-packs/shellcheck/base.shellcheckrc +14 -0
  11. data/assets/config-packs/subtxt/ai-asciidoc-antipatterns.sub.txt +11 -0
  12. data/assets/config-packs/vale/asciidoc/ExplicitSectionIDs.yml +8 -0
  13. data/assets/config-packs/vale/asciidoc/ExtraLineBeforeLevel1.yml +7 -0
  14. data/assets/config-packs/vale/asciidoc/OneSentencePerLine.yml +8 -0
  15. data/assets/config-packs/vale/asciidoc/PreferSourceBlocks.yml +8 -0
  16. data/assets/config-packs/vale/asciidoc/ProperAdmonitions.yml +8 -0
  17. data/assets/config-packs/vale/asciidoc/ProperDLs.yml +7 -0
  18. data/assets/config-packs/vale/asciidoc/UncleanListStart.yml +8 -0
  19. data/assets/config-packs/vale/authoring/ButParagraph.yml +8 -0
  20. data/assets/config-packs/vale/authoring/ExNotEg.yml +8 -0
  21. data/assets/config-packs/vale/authoring/LiteralTerms.yml +20 -0
  22. data/assets/config-packs/vale/authoring/Spelling.yml +679 -0
  23. data/assets/config-packs/vale/base.ini +38 -0
  24. data/assets/config-packs/vale/config/scripts/ExplicitSectionIDs.tengo +56 -0
  25. data/assets/config-packs/vale/config/scripts/ExtraLineBeforeLevel1.tengo +121 -0
  26. data/assets/config-packs/vale/config/scripts/OneSentencePerLine.tengo +53 -0
  27. data/assets/config-packs/vale/project.ini +5 -0
  28. data/assets/hooks/pre-commit +63 -0
  29. data/assets/hooks/pre-push +72 -0
  30. data/assets/scripts/adoc_section_ids.rb +50 -0
  31. data/assets/scripts/build-common.sh +193 -0
  32. data/assets/scripts/build-docker.sh +64 -0
  33. data/assets/scripts/build.sh +56 -0
  34. data/assets/scripts/parse_jekyll_asciidoc_logs.rb +467 -0
  35. data/assets/templates/Gemfile +7 -0
  36. data/assets/templates/Rakefile +3 -0
  37. data/assets/templates/gitignore +69 -0
  38. data/assets/templates/jekyll-asciidoc-fix.prompt.yml +17 -0
  39. data/assets/templates/spellcheck.prompt.yml +16 -0
  40. data/docopslab-dev.gemspec +56 -0
  41. data/docs/agent/AGENTS.md +229 -0
  42. data/docs/agent/index.md +80 -0
  43. data/docs/agent/missions/conduct-release.md +224 -0
  44. data/docs/agent/missions/setup-new-project.md +250 -0
  45. data/docs/agent/roles/devops-release-engineer.md +152 -0
  46. data/docs/agent/roles/docops-engineer.md +193 -0
  47. data/docs/agent/roles/planner-architect.md +74 -0
  48. data/docs/agent/roles/product-engineer.md +153 -0
  49. data/docs/agent/roles/product-manager.md +130 -0
  50. data/docs/agent/roles/project-manager.md +139 -0
  51. data/docs/agent/roles/qa-testing-engineer.md +115 -0
  52. data/docs/agent/roles/tech-docs-manager.md +143 -0
  53. data/docs/agent/roles/tech-writer.md +163 -0
  54. data/docs/agent/skills/asciidoc.md +609 -0
  55. data/docs/agent/skills/code-commenting.md +347 -0
  56. data/docs/agent/skills/fix-broken-links.md +309 -0
  57. data/docs/agent/skills/fix-jekyll-asciidoc-build-errors.md +23 -0
  58. data/docs/agent/skills/fix-spelling-issues.md +13 -0
  59. data/docs/agent/skills/git.md +170 -0
  60. data/docs/agent/skills/github-issues.md +135 -0
  61. data/docs/agent/skills/product-release-rollback-and-patching.md +71 -0
  62. data/docs/agent/skills/rake-cli-dev.md +57 -0
  63. data/docs/agent/skills/readme-driven-dev.md +13 -0
  64. data/docs/agent/skills/release-history.md +29 -0
  65. data/docs/agent/skills/ruby.md +192 -0
  66. data/docs/agent/skills/schemagraphy-sgyml.md +18 -0
  67. data/docs/agent/skills/tests-running.md +25 -0
  68. data/docs/agent/skills/tests-writing.md +45 -0
  69. data/docs/agent/skills/write-the-docs.md +54 -0
  70. data/docs/agent/topics/common-project-paths.md +117 -0
  71. data/docs/agent/topics/dev-tooling-usage.md +202 -0
  72. data/docs/agent/topics/devops-ci-cd.md +55 -0
  73. data/docs/agent/topics/product-docs-deployment.md +25 -0
  74. data/lib/docopslab/dev/auto_fix_asciidoc.rb +46 -0
  75. data/lib/docopslab/dev/checkers.rb +108 -0
  76. data/lib/docopslab/dev/config_manager.rb +241 -0
  77. data/lib/docopslab/dev/file_utils.rb +140 -0
  78. data/lib/docopslab/dev/git_hooks.rb +140 -0
  79. data/lib/docopslab/dev/help.rb +121 -0
  80. data/lib/docopslab/dev/initializer.rb +95 -0
  81. data/lib/docopslab/dev/linters.rb +451 -0
  82. data/lib/docopslab/dev/log_parser.rb +31 -0
  83. data/lib/docopslab/dev/paths.rb +46 -0
  84. data/lib/docopslab/dev/script_manager.rb +136 -0
  85. data/lib/docopslab/dev/spell_check.rb +194 -0
  86. data/lib/docopslab/dev/sync_ops.rb +468 -0
  87. data/lib/docopslab/dev/tasks.rb +440 -0
  88. data/lib/docopslab/dev/tool_execution.rb +68 -0
  89. data/lib/docopslab/dev/version.rb +8 -0
  90. data/lib/docopslab/dev.rb +392 -0
  91. data/specs/data/default-manifest.yml +64 -0
  92. data/specs/data/manifest-schema.yaml +63 -0
  93. data/specs/data/tasks-def.yml +321 -0
  94. data/specs/data/tools.yml +60 -0
  95. 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[] -->
@@ -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
+