agent-pmo 0.1.0__tar.gz

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 (119) hide show
  1. agent_pmo-0.1.0/.github/workflows/release.yml +44 -0
  2. agent_pmo-0.1.0/.github/workflows/tests.yml +43 -0
  3. agent_pmo-0.1.0/.gitignore +221 -0
  4. agent_pmo-0.1.0/CHANGELOG.md +23 -0
  5. agent_pmo-0.1.0/LICENSE +21 -0
  6. agent_pmo-0.1.0/PKG-INFO +73 -0
  7. agent_pmo-0.1.0/README.md +51 -0
  8. agent_pmo-0.1.0/WORKFLOW.md +159 -0
  9. agent_pmo-0.1.0/agent_pmo/__init__.py +7 -0
  10. agent_pmo-0.1.0/agent_pmo/__main__.py +22 -0
  11. agent_pmo-0.1.0/agent_pmo/adherence.py +455 -0
  12. agent_pmo-0.1.0/agent_pmo/adopt.py +693 -0
  13. agent_pmo-0.1.0/agent_pmo/automation.py +391 -0
  14. agent_pmo-0.1.0/agent_pmo/backlog.py +251 -0
  15. agent_pmo-0.1.0/agent_pmo/bootstrap.py +322 -0
  16. agent_pmo-0.1.0/agent_pmo/changelog.py +340 -0
  17. agent_pmo-0.1.0/agent_pmo/changes.py +156 -0
  18. agent_pmo-0.1.0/agent_pmo/checks.py +115 -0
  19. agent_pmo-0.1.0/agent_pmo/cli.py +1483 -0
  20. agent_pmo-0.1.0/agent_pmo/coderabbit.py +258 -0
  21. agent_pmo-0.1.0/agent_pmo/config.py +170 -0
  22. agent_pmo-0.1.0/agent_pmo/container.py +95 -0
  23. agent_pmo-0.1.0/agent_pmo/coord.py +277 -0
  24. agent_pmo-0.1.0/agent_pmo/decisions.py +305 -0
  25. agent_pmo-0.1.0/agent_pmo/deploy.py +925 -0
  26. agent_pmo-0.1.0/agent_pmo/discuss.py +562 -0
  27. agent_pmo-0.1.0/agent_pmo/gitx.py +48 -0
  28. agent_pmo-0.1.0/agent_pmo/guide.py +184 -0
  29. agent_pmo-0.1.0/agent_pmo/hosting.py +118 -0
  30. agent_pmo-0.1.0/agent_pmo/issues.py +133 -0
  31. agent_pmo-0.1.0/agent_pmo/kit.py +260 -0
  32. agent_pmo-0.1.0/agent_pmo/landing.py +763 -0
  33. agent_pmo-0.1.0/agent_pmo/md.py +96 -0
  34. agent_pmo-0.1.0/agent_pmo/oneoff.py +329 -0
  35. agent_pmo-0.1.0/agent_pmo/provider.py +562 -0
  36. agent_pmo-0.1.0/agent_pmo/registry.py +689 -0
  37. agent_pmo-0.1.0/agent_pmo/release.py +108 -0
  38. agent_pmo-0.1.0/agent_pmo/reports.py +462 -0
  39. agent_pmo-0.1.0/agent_pmo/review.py +404 -0
  40. agent_pmo-0.1.0/agent_pmo/security.py +402 -0
  41. agent_pmo-0.1.0/agent_pmo/specedit.py +147 -0
  42. agent_pmo-0.1.0/agent_pmo/style.py +775 -0
  43. agent_pmo-0.1.0/agent_pmo/templates.py +13 -0
  44. agent_pmo-0.1.0/agent_pmo/trace.py +237 -0
  45. agent_pmo-0.1.0/agent_pmo/traceability.py +222 -0
  46. agent_pmo-0.1.0/agent_pmo/triage.py +336 -0
  47. agent_pmo-0.1.0/docs/README.md +14 -0
  48. agent_pmo-0.1.0/docs/automation.md +60 -0
  49. agent_pmo-0.1.0/docs/commands.md +400 -0
  50. agent_pmo-0.1.0/docs/concepts.md +86 -0
  51. agent_pmo-0.1.0/docs/configuration.md +88 -0
  52. agent_pmo-0.1.0/docs/development.md +97 -0
  53. agent_pmo-0.1.0/docs/getting-started.md +65 -0
  54. agent_pmo-0.1.0/profiles/generic.md +10 -0
  55. agent_pmo-0.1.0/profiles/generic.toml +51 -0
  56. agent_pmo-0.1.0/profiles/go.md +8 -0
  57. agent_pmo-0.1.0/profiles/go.toml +57 -0
  58. agent_pmo-0.1.0/profiles/java.md +8 -0
  59. agent_pmo-0.1.0/profiles/java.toml +56 -0
  60. agent_pmo-0.1.0/profiles/python.md +46 -0
  61. agent_pmo-0.1.0/profiles/python.toml +61 -0
  62. agent_pmo-0.1.0/profiles/rust.md +8 -0
  63. agent_pmo-0.1.0/profiles/rust.toml +57 -0
  64. agent_pmo-0.1.0/profiles/typescript.md +10 -0
  65. agent_pmo-0.1.0/profiles/typescript.toml +60 -0
  66. agent_pmo-0.1.0/pyproject.toml +51 -0
  67. agent_pmo-0.1.0/templates/agents/AGENTS.md +9 -0
  68. agent_pmo-0.1.0/templates/agents/CLAUDE.md +9 -0
  69. agent_pmo-0.1.0/templates/agents/GEMINI.md +9 -0
  70. agent_pmo-0.1.0/templates/agents/copilot-instructions.md +5 -0
  71. agent_pmo-0.1.0/templates/agents/cursor-workflow.mdc +8 -0
  72. agent_pmo-0.1.0/templates/architecture.md +23 -0
  73. agent_pmo-0.1.0/templates/architecture_changelog.md +8 -0
  74. agent_pmo-0.1.0/templates/assumptions.md +10 -0
  75. agent_pmo-0.1.0/templates/backlog_index.md +6 -0
  76. agent_pmo-0.1.0/templates/change_request.md +46 -0
  77. agent_pmo-0.1.0/templates/changelog.md +8 -0
  78. agent_pmo-0.1.0/templates/changes_index.md +7 -0
  79. agent_pmo-0.1.0/templates/decisions_index.md +9 -0
  80. agent_pmo-0.1.0/templates/deploy_changelog.md +8 -0
  81. agent_pmo-0.1.0/templates/deploy_deployments.md +6 -0
  82. agent_pmo-0.1.0/templates/docs_readme.md +12 -0
  83. agent_pmo-0.1.0/templates/guide_agent.md +54 -0
  84. agent_pmo-0.1.0/templates/guide_changelog.md +10 -0
  85. agent_pmo-0.1.0/templates/guide_coding_style.md +7 -0
  86. agent_pmo-0.1.0/templates/guide_developer.md +114 -0
  87. agent_pmo-0.1.0/templates/guide_project_manager.md +104 -0
  88. agent_pmo-0.1.0/templates/module_readme.md +19 -0
  89. agent_pmo-0.1.0/templates/security_index.md +6 -0
  90. agent_pmo-0.1.0/templates/spec.md +77 -0
  91. agent_pmo-0.1.0/templates/spec_index.md +28 -0
  92. agent_pmo-0.1.0/tests/test_adopt.py +152 -0
  93. agent_pmo-0.1.0/tests/test_coderabbit.py +131 -0
  94. agent_pmo-0.1.0/tests/test_deploy.py +142 -0
  95. agent_pmo-0.1.0/tests/test_discuss.py +183 -0
  96. agent_pmo-0.1.0/tests/test_kit.py +619 -0
  97. agent_pmo-0.1.0/tests/test_oneoff.py +114 -0
  98. agent_pmo-0.1.0/tests/test_parallel.py +731 -0
  99. agent_pmo-0.1.0/tests/test_triage.py +84 -0
  100. agent_pmo-0.1.0/tests/test_version.py +121 -0
  101. agent_pmo-0.1.0/tests/test_workflow.py +93 -0
  102. agent_pmo-0.1.0/workflows/adopt.md +15 -0
  103. agent_pmo-0.1.0/workflows/change-request.md +17 -0
  104. agent_pmo-0.1.0/workflows/deploy.md +28 -0
  105. agent_pmo-0.1.0/workflows/discuss.md +21 -0
  106. agent_pmo-0.1.0/workflows/fix.md +11 -0
  107. agent_pmo-0.1.0/workflows/implement.md +21 -0
  108. agent_pmo-0.1.0/workflows/merge.md +9 -0
  109. agent_pmo-0.1.0/workflows/oneoff.md +16 -0
  110. agent_pmo-0.1.0/workflows/parallel.md +12 -0
  111. agent_pmo-0.1.0/workflows/planning.md +27 -0
  112. agent_pmo-0.1.0/workflows/release.md +12 -0
  113. agent_pmo-0.1.0/workflows/revert.md +12 -0
  114. agent_pmo-0.1.0/workflows/review.md +31 -0
  115. agent_pmo-0.1.0/workflows/scheduled.md +11 -0
  116. agent_pmo-0.1.0/workflows/security.md +11 -0
  117. agent_pmo-0.1.0/workflows/setup.md +70 -0
  118. agent_pmo-0.1.0/workflows/test.md +15 -0
  119. agent_pmo-0.1.0/workflows/triage.md +18 -0
@@ -0,0 +1,44 @@
1
+ # Publishes agent-pmo to PyPI when a tag vX.Y.Z is pushed. PyPI trusted publishing: add this repository and the
2
+ # workflow `release.yml` (environment `pypi`) as a trusted publisher of the agent-pmo project; no token is stored.
3
+ name: release
4
+
5
+ on:
6
+ push:
7
+ tags: ["v*"]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ build:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.12"
20
+ - name: the tag, the package version and the changelog agree
21
+ run: |
22
+ version=$(python -c "import agent_pmo; print(agent_pmo.__version__)")
23
+ test "${GITHUB_REF_NAME}" = "v${version}" || { echo "tag ${GITHUB_REF_NAME} is not v${version}"; exit 1; }
24
+ grep -q "^## ${version} — [0-9]" CHANGELOG.md || { echo "CHANGELOG.md has no dated section for ${version}"; exit 1; }
25
+ - run: git config --global user.name ci && git config --global user.email ci@localhost
26
+ - run: python -m unittest discover -s tests
27
+ - run: python -m pip install build && python -m build
28
+ - uses: actions/upload-artifact@v4
29
+ with:
30
+ name: dist
31
+ path: dist/
32
+
33
+ publish:
34
+ needs: build
35
+ runs-on: ubuntu-latest
36
+ environment: pypi
37
+ permissions:
38
+ id-token: write
39
+ steps:
40
+ - uses: actions/download-artifact@v4
41
+ with:
42
+ name: dist
43
+ path: dist/
44
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,43 @@
1
+ name: tests
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ tests:
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ os: [ubuntu-latest, macos-latest]
17
+ python: ["3.11", "3.13"]
18
+ include:
19
+ - os: windows-latest # not verified yet: kept visible without failing the build
20
+ python: "3.12"
21
+ experimental: true
22
+ runs-on: ${{ matrix.os }}
23
+ continue-on-error: ${{ matrix.experimental == true }}
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: actions/setup-python@v5
27
+ with:
28
+ python-version: ${{ matrix.python }}
29
+ - run: git config --global user.name ci && git config --global user.email ci@localhost
30
+ - name: unit and end-to-end tests
31
+ run: python -m unittest discover -s tests
32
+ - name: the built wheel installs and runs
33
+ shell: bash
34
+ run: |
35
+ python -m pip install build
36
+ python -m build --wheel --outdir dist
37
+ python -m venv /tmp/venv-agent-pmo
38
+ /tmp/venv-agent-pmo/bin/pip install dist/*.whl || /tmp/venv-agent-pmo/Scripts/pip install dist/*.whl
39
+ export PATH="/tmp/venv-agent-pmo/bin:/tmp/venv-agent-pmo/Scripts:$PATH"
40
+ mkdir /tmp/project && cd /tmp/project && git init -q
41
+ agent-pmo --version
42
+ agent-pmo install --agents claude,agents
43
+ test -f .pm/WORKFLOW.md && test -f .pm/workflows/setup.md && test -f CLAUDE.md
@@ -0,0 +1,221 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ # Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ # poetry.lock
109
+ # poetry.toml
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
+ # pdm.lock
116
+ # pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # pixi
121
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
+ # pixi.lock
123
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
+ # in the .venv directory. It is recommended not to include this directory in version control.
125
+ .pixi
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # Redis
135
+ *.rdb
136
+ *.aof
137
+ *.pid
138
+
139
+ # RabbitMQ
140
+ mnesia/
141
+ rabbitmq/
142
+ rabbitmq-data/
143
+
144
+ # ActiveMQ
145
+ activemq-data/
146
+
147
+ # SageMath parsed files
148
+ *.sage.py
149
+
150
+ # Environments
151
+ .env
152
+ .envrc
153
+ .venv
154
+ env/
155
+ venv/
156
+ ENV/
157
+ env.bak/
158
+ venv.bak/
159
+
160
+ # Spyder project settings
161
+ .spyderproject
162
+ .spyproject
163
+
164
+ # Rope project settings
165
+ .ropeproject
166
+
167
+ # mkdocs documentation
168
+ /site
169
+
170
+ # mypy
171
+ .mypy_cache/
172
+ .dmypy.json
173
+ dmypy.json
174
+
175
+ # Pyre type checker
176
+ .pyre/
177
+
178
+ # pytype static type analyzer
179
+ .pytype/
180
+
181
+ # Cython debug symbols
182
+ cython_debug/
183
+
184
+ # PyCharm
185
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
186
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
187
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
188
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
189
+ # .idea/
190
+
191
+ # Abstra
192
+ # Abstra is an AI-powered process automation framework.
193
+ # Ignore directories containing user credentials, local state, and settings.
194
+ # Learn more at https://abstra.io/docs
195
+ .abstra/
196
+
197
+ # Visual Studio Code
198
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
199
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
200
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
201
+ # you could uncomment the following to ignore the entire vscode folder
202
+ # .vscode/
203
+ # Temporary file for partial code execution
204
+ tempCodeRunnerFile.py
205
+
206
+ # Ruff stuff:
207
+ .ruff_cache/
208
+
209
+ # PyPI configuration file
210
+ .pypirc
211
+
212
+ # Marimo
213
+ marimo/_static/
214
+ marimo/_lsp/
215
+ __marimo__/
216
+
217
+ # Streamlit
218
+ .streamlit/secrets.toml
219
+
220
+ # macOS Finder metadata
221
+ .DS_Store
@@ -0,0 +1,23 @@
1
+ # Changelog
2
+
3
+ The release notes of agent-pmo. `agent-pmo upgrade` prints the notes of every version a project moves past, so write
4
+ each entry for the people upgrading: what changes for them, and anything they must do.
5
+
6
+ Versions follow [semantic versioning](https://semver.org): a major version for changes that need the user or the agents
7
+ to work differently, a minor version for new features, a patch version for fixes. Every change that needs a project's
8
+ files moved or rewritten comes with a migration in `agent_pmo/kit.py`, which `upgrade` runs.
9
+
10
+ ## 0.1.0 — 2026-10-26
11
+
12
+ The kit becomes the installable command `agent-pmo` (PyPI package `agent-pmo`).
13
+
14
+ - **Install once per machine** with `pipx install agent-pmo` (or `uv tool install agent-pmo`), instead of copying the
15
+ kit into each repository. `python3 .pm/pm.py <command>` is now `agent-pmo <command>`.
16
+ - **`.pm/` keeps only the agents' instructions** (WORKFLOW.md, workflows, best-practices files, docs). They are
17
+ generated: `agent-pmo install` writes them, `agent-pmo upgrade` refreshes them, and `agent-pmo check` reports edits.
18
+ - **Each project pins its version** in `pm.toml` (`[kit] version`). Hooks, CI and the dev container install that
19
+ version. An older installed version refuses to run; a newer one warns until the project is upgraded.
20
+ - **New commands:** `install`, `upgrade [--dry-run]`, `version [--check]`, and `--version`.
21
+ - **Upgrading a project that copied the kit:** install agent-pmo, then run `agent-pmo upgrade` in the project. It
22
+ removes the copied code from `.pm/` (`pm.py`, `pmlib/`, `tests/`, `templates/`, the profile settings), drops the
23
+ secret-scan exceptions for it, rewrites the instructions, entry files, hooks and generated CI files, and pins 0.1.0.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Vikas Bhandary
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,73 @@
1
+ Metadata-Version: 2.5
2
+ Name: agent-pmo
3
+ Version: 0.1.0
4
+ Summary: Project management for AI coding agents: specs, decisions, tests, reviews and releases with traceable evidence.
5
+ Project-URL: Homepage, https://github.com/vksbhandary/agent-pmo
6
+ Project-URL: Changelog, https://github.com/vksbhandary/agent-pmo/blob/master/CHANGELOG.md
7
+ Author: Vikas Bhandary
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Keywords: agents,ai,claude,codex,project-management,specs,workflow
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+
23
+ # agent-pmo — project management for AI coding agents
24
+
25
+ agent-pmo is a small command-line tool that lets coding agents (Claude Code, Codex, Gemini CLI, Copilot, Cursor, …) build a project the way a careful team would:
26
+
27
+ - **Plan first, never guess.** Every open question is asked, and every answer is kept word for word as a decision.
28
+ - **Work from specs.** Each component has a spec with requirements and a plan of small, testable increments.
29
+ - **Prove each step.** Code is tested against its requirements, scanned for security issues, and reviewed by a *different* model.
30
+ - **Keep you in charge.** Agents work in parallel and never wait. You review every unit in its own pull request, and `stable` only ever holds code that passed everything.
31
+ - **Trace everything.** Every commit, report, issue and decision links back to the change and the requirement it belongs to.
32
+
33
+ It works with any language, on Linux, macOS and Windows, with GitHub, GitLab, Bitbucket or no hosting at all. It needs Python 3.11+ and git, and has no dependencies of its own.
34
+
35
+ ## Set up
36
+
37
+ ```bash
38
+ pipx install agent-pmo # or: uv tool install agent-pmo
39
+ agent-pmo install --agents claude,agents # in your repository: the agents' instructions and entry files
40
+ ```
41
+
42
+ `install` writes the agents' instructions into `.pm/` and an entry file for each coding agent (`CLAUDE.md`, `AGENTS.md`; also `gemini`, `copilot`, `cursor`). Commit them with your project.
43
+
44
+ Then open your coding agent in the repository and say one of:
45
+
46
+ | | Say |
47
+ |---|---|
48
+ | New project | **"set up the project"** |
49
+ | Existing code | **"analyse old code"** |
50
+ | Idea in an issue | **"plan the project from issue #12"** |
51
+ | Quick experiment | **"build `<idea>` quickly"** |
52
+
53
+ The agent asks you everything it needs (what you're building, how you work, the coding style, your git provider) and sets up the rest. If you work with a git provider, give the agents their own token: `AGENT_TOKEN=<token>` in `.env`.
54
+
55
+ ## Day to day
56
+
57
+ Talk to your agent: **"status"**, **"continue"**, **"test the next spec"**, **"review the next spec"**, **"fix `<bug>`"**, **"fetch repo issues"**, **"plan the deployment"**, **"revert `<change>`"**. You review and merge the review pull requests; CI does the rest.
58
+
59
+ ## Learn more
60
+
61
+ | | |
62
+ |---|---|
63
+ | [Getting started](docs/getting-started.md) | setup paths and the daily loop, in more detail |
64
+ | [Commands](docs/commands.md) | every `agent-pmo` command with examples |
65
+ | [Configuration](docs/configuration.md) | `pm.toml`, table by table |
66
+ | [Concepts](docs/concepts.md) | units, statuses, the branch model, reviews, decisions, traceability |
67
+ | [Automation](docs/automation.md) | hooks, CI, scheduled checks, providers and tokens |
68
+ | [Development](docs/development.md) | the code map, tests, adding a language |
69
+ | [WORKFLOW.md](WORKFLOW.md) | the process the agents follow (with one file per workflow in [workflows/](workflows/)) |
70
+
71
+ ## Updating
72
+
73
+ Each project pins its version (`[kit] version` in `pm.toml`), so hooks, CI and the whole team run the same one. After `pipx upgrade agent-pmo`, run **`agent-pmo upgrade`** in the project: it migrates it, refreshes `.pm/`, the entry files, hooks and CI, and pins the new version. `agent-pmo version --check` shows what's installed, pinned and latest; [CHANGELOG.md](CHANGELOG.md) lists every release.
@@ -0,0 +1,51 @@
1
+ # agent-pmo — project management for AI coding agents
2
+
3
+ agent-pmo is a small command-line tool that lets coding agents (Claude Code, Codex, Gemini CLI, Copilot, Cursor, …) build a project the way a careful team would:
4
+
5
+ - **Plan first, never guess.** Every open question is asked, and every answer is kept word for word as a decision.
6
+ - **Work from specs.** Each component has a spec with requirements and a plan of small, testable increments.
7
+ - **Prove each step.** Code is tested against its requirements, scanned for security issues, and reviewed by a *different* model.
8
+ - **Keep you in charge.** Agents work in parallel and never wait. You review every unit in its own pull request, and `stable` only ever holds code that passed everything.
9
+ - **Trace everything.** Every commit, report, issue and decision links back to the change and the requirement it belongs to.
10
+
11
+ It works with any language, on Linux, macOS and Windows, with GitHub, GitLab, Bitbucket or no hosting at all. It needs Python 3.11+ and git, and has no dependencies of its own.
12
+
13
+ ## Set up
14
+
15
+ ```bash
16
+ pipx install agent-pmo # or: uv tool install agent-pmo
17
+ agent-pmo install --agents claude,agents # in your repository: the agents' instructions and entry files
18
+ ```
19
+
20
+ `install` writes the agents' instructions into `.pm/` and an entry file for each coding agent (`CLAUDE.md`, `AGENTS.md`; also `gemini`, `copilot`, `cursor`). Commit them with your project.
21
+
22
+ Then open your coding agent in the repository and say one of:
23
+
24
+ | | Say |
25
+ |---|---|
26
+ | New project | **"set up the project"** |
27
+ | Existing code | **"analyse old code"** |
28
+ | Idea in an issue | **"plan the project from issue #12"** |
29
+ | Quick experiment | **"build `<idea>` quickly"** |
30
+
31
+ The agent asks you everything it needs (what you're building, how you work, the coding style, your git provider) and sets up the rest. If you work with a git provider, give the agents their own token: `AGENT_TOKEN=<token>` in `.env`.
32
+
33
+ ## Day to day
34
+
35
+ Talk to your agent: **"status"**, **"continue"**, **"test the next spec"**, **"review the next spec"**, **"fix `<bug>`"**, **"fetch repo issues"**, **"plan the deployment"**, **"revert `<change>`"**. You review and merge the review pull requests; CI does the rest.
36
+
37
+ ## Learn more
38
+
39
+ | | |
40
+ |---|---|
41
+ | [Getting started](docs/getting-started.md) | setup paths and the daily loop, in more detail |
42
+ | [Commands](docs/commands.md) | every `agent-pmo` command with examples |
43
+ | [Configuration](docs/configuration.md) | `pm.toml`, table by table |
44
+ | [Concepts](docs/concepts.md) | units, statuses, the branch model, reviews, decisions, traceability |
45
+ | [Automation](docs/automation.md) | hooks, CI, scheduled checks, providers and tokens |
46
+ | [Development](docs/development.md) | the code map, tests, adding a language |
47
+ | [WORKFLOW.md](WORKFLOW.md) | the process the agents follow (with one file per workflow in [workflows/](workflows/)) |
48
+
49
+ ## Updating
50
+
51
+ Each project pins its version (`[kit] version` in `pm.toml`), so hooks, CI and the whole team run the same one. After `pipx upgrade agent-pmo`, run **`agent-pmo upgrade`** in the project: it migrates it, refreshes `.pm/`, the entry files, hooks and CI, and pins the new version. `agent-pmo version --check` shows what's installed, pinned and latest; [CHANGELOG.md](CHANGELOG.md) lists every release.
@@ -0,0 +1,159 @@
1
+ # Workflow: how an AI coding agent works on this project
2
+
3
+ This is the provider-neutral workflow of agent-pmo. `agent-pmo` is the command-line tool (Python ≥ 3.11); `.pm/` holds these instructions, generated by it. Any coding agent (Claude Code, Codex, Gemini CLI, Copilot, Cursor, …) follows it. Thin entry files such as `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, `.github/copilot-instructions.md` and `.cursor/rules/workflow.mdc` only point here; `agent-pmo init --agents …` generates them. Everything written about the project lives under `docs/`. Nothing in this file is project-specific: project settings are in `pm.toml`, and language rules are in the configured best-practices file (`.pm/profiles/<language>.md`).
4
+
5
+ Run the kit with `agent-pmo <command>` (`--help` lists everything). Never edit generated content by hand: the index order, phase and status columns, the build-order lines, the module README header and contract blocks, and the `<!-- pm:begin … -->` blocks. Use `agent-pmo sync`.
6
+
7
+ **The version:** the project uses the agent-pmo version in `pm.toml` (`[kit] version`). If `agent-pmo` is not installed, or a command or `agent-pmo check` reports a different version, stop and give the user the install command it prints (`pipx install agent-pmo==<version>`). Never edit `.pm/`: it is generated. Move the project to a newer version only when the user asks (`agent-pmo upgrade`).
8
+
9
+ ## 0. Is the project set up?
10
+
11
+ If `pm.toml` does not exist, run **Project setup** ([workflows/setup.md](workflows/setup.md)) before anything else, unless the user asks for a one-off build ([workflows/oneoff.md](workflows/oneoff.md)), which needs no setup. If the repository already has code and commits, or the user asks to "analyse old code", adopt it first ([workflows/adopt.md](workflows/adopt.md)); with too little code, `agent-pmo adopt detect` sends you back to [workflows/setup.md](workflows/setup.md). After cloning an existing project, run `agent-pmo hooks install` so the git hooks are active.
12
+
13
+ ## 1. Where things are
14
+
15
+ | What | Where |
16
+ |---|---|
17
+ | Project settings: language, ID prefix, review approval, risk, git strategy and branches, provider, coordination, hooks, schedule, container, gates, security tools | `pm.toml` |
18
+ | Language best practices (follow them in all code and tests) | `.pm/profiles/<language>.md` |
19
+ | Project guides: **agent guide (read it before your first unit)**, developer guide, project manager guide, and their changelog | `docs/guide/agent.md`, `docs/guide/developer.md`, `docs/guide/project-manager.md`, `docs/guide/changelog.md` |
20
+ | **Coding style** for every file type (follow it in all code, tests, docs and config) | `docs/guide/coding-style.md`; enforced by `.editorconfig` and the linter/formatter configs generated from it |
21
+ | Kit documentation: every command, the settings, the concepts | `.pm/docs/commands.md`, `.pm/docs/configuration.md`, `.pm/docs/concepts.md` |
22
+ | Architecture, and its changelog | `docs/architecture/README.md`, `docs/architecture/changelog.md` |
23
+ | Build order, dependency graph, module statuses | `docs/specifications/README.md` |
24
+ | A component's spec (requirements, interface, implementation plan) | `docs/specifications/<component>/README.md` |
25
+ | Its history, test plans and reports, review requests and code reviews | `docs/specifications/<component>/changelog.md`, `test/`, `review/` |
26
+ | Change requests (new or updated requirements) | `docs/changes/` |
27
+ | Decisions (question, the user's verbatim answer, why) and the assumption register | `docs/decisions/` |
28
+ | Backlog: bugs, security and review findings, debt, accepted risks | `docs/backlog/` |
29
+ | Security reports: per module, and project-wide | `docs/specifications/<component>/security/`, `docs/security/` |
30
+ | Who is working on what (parallel agents), unique numbers | `agent-pmo claim list` (shared branch `pm/coord`) |
31
+ | Developer summary of a module | `README.md` in the module's folder |
32
+
33
+ If code and spec disagree, the spec wins, unless you deliberately change the spec in the same commit and give the reason in its changelog row. The agent guide adds project-specific rules for agents; where it conflicts with this workflow, this workflow wins and you tell the user.
34
+
35
+ ## 2. What the user says → what you do
36
+
37
+ | User says | Workflow |
38
+ |---|---|
39
+ | "set up the project" / "start a new project" / "plan a project" | [workflows/setup.md](workflows/setup.md) Project setup: first the project discussion, then the settings |
40
+ | "plan the project from issue #N" / "start from scratch with issue #N" (no `pm.toml` yet) | [workflows/discuss.md](workflows/discuss.md) Planning through an issue, kind `project` |
41
+ | "take feature requests from the issues" / "plan the feature in issue #N" | [workflows/discuss.md](workflows/discuss.md) Planning through an issue, kind `feature` (`agent-pmo discuss candidates` lists the open feature requests) |
42
+ | "analyse old code" / "analyse this repo" / "adopt the existing code" / "take over this codebase" (no `pm.toml` yet) | [workflows/adopt.md](workflows/adopt.md) Adopt an existing repository |
43
+ | "build `<idea>` quickly" / "vibe code `<idea>`" / "one-off: `<idea>`" / "just build it, don't ask me much" | [workflows/oneoff.md](workflows/oneoff.md) One-off build: plan, implement and test on your own, then write REPORT.md. No setup, no git |
44
+ | "implement the next spec" / "next" / "continue" | `agent-pmo next implement --claim`: a planned increment → [workflows/implement.md](workflows/implement.md); a backlog item (`FIX:`) → [workflows/fix.md](workflows/fix.md) |
45
+ | "work in parallel" / several agents at once | [workflows/parallel.md](workflows/parallel.md): each agent claims its own module |
46
+ | "set up the git provider" / "connect GitHub/GitLab/Bitbucket" (any phase) | `agent-pmo provider setup --kind …` after asking the user ([workflows/setup.md](workflows/setup.md) step 4); skippable |
47
+ | "check the tokens" | `agent-pmo provider check` |
48
+ | "use CodeRabbit" / "set up CodeRabbit" / "stop CodeRabbit" (any phase) | [workflows/setup.md](workflows/setup.md) (the CodeRabbit step): ask, then `agent-pmo coderabbit setup --mode …` |
49
+ | Implementation is blocked by "coding style not agreed" | [workflows/setup.md](workflows/setup.md) step 6: first ask whether to use the languages' default styles, then the questions they want to decide |
50
+ | "change the coding style" (all of it, a file type, or a rule) — at any time | `agent-pmo style change --types … / --ids … --reason "<user's words>"` opens the change (logged; nothing is blocked), then ask the questions now or later |
51
+ | "answer the coding style questions" / "use the default style for X" | `agent-pmo style questions --pending`, ask them (some or all), then `agent-pmo style apply --answers …` (and/or `--defaults --question … --answer …`) |
52
+ | A commit is refused for "no agreed coding style" or "differs from the agreed coding style" | A new kind of file: open a style change for its type (default or questions). A hand-edited style file: restore it, or go through a style change |
53
+ | "test the next spec" | [workflows/test.md](workflows/test.md) Test (unit from `agent-pmo next test`) |
54
+ | "review the next spec" | [workflows/review.md](workflows/review.md) Review (unit from `agent-pmo next review`) |
55
+ | "approve the review" / "looks good" (on a review) | [workflows/review.md](workflows/review.md) step 9 |
56
+ | A new feature, or a change to requirements or behaviour | [workflows/change-request.md](workflows/change-request.md) Change request: specs first |
57
+ | The user answers a planning question, or changes an earlier decision | [workflows/planning.md](workflows/planning.md): record a decision (superseding the old one if needed) |
58
+ | "what did we decide about X?" / "why is X like this?" | `agent-pmo decision list`, read the record(s), quote the user's answer and the reasoning |
59
+ | A bug report, or "fix X" | `agent-pmo backlog new …` with a priority, then [workflows/fix.md](workflows/fix.md) |
60
+ | "fetch repo issues" / "fetch the bugs" / "triage the issues" / "what's open on GitHub/GitLab/Bitbucket?" | [workflows/triage.md](workflows/triage.md) Issue triage |
61
+ | "implement / test / review `<module>`" | The same workflow for that module's next increment. Refuse and show the blockers if its prerequisites aren't met. |
62
+ | "security report" | [workflows/security.md](workflows/security.md) |
63
+ | A scheduled-check summary arrives, or "run the scheduled checks" | [workflows/scheduled.md](workflows/scheduled.md) |
64
+ | "land" / "land `<module>` increment `<k>`" / "open the PR" / a unit is AI-reviewed | `agent-pmo land …` ([workflows/review.md](workflows/review.md) step 10) |
65
+ | "update my branch (from dev)" | `agent-pmo update-branch`, then report what it merged and what is left to resolve |
66
+ | "make `<issue>` P1" / a priority change | `agent-pmo backlog priority BL-… P1` (or `unit priority` for an increment) |
67
+ | "work without AI" / the user did work by hand | Read the guides' *Working without AI* sections; verify the hand-made documents (run the gates, regenerate incomplete reports), and point out gaps to the user instead of rewriting history |
68
+ | "plan the deployment" / "how do we deploy?" / "change the deploy plan" | [workflows/deploy.md](workflows/deploy.md) Deploy plan |
69
+ | "prepare a release" / "deploy `<version>` to `<env>`" / "roll back `<env>` to `<version>`" / "record the deployment" | [workflows/deploy.md](workflows/deploy.md) steps 5–8 |
70
+ | "release" / "promote to staging/production" | [workflows/release.md](workflows/release.md) |
71
+ | A merge conflict, or "merge X" | [workflows/merge.md](workflows/merge.md) |
72
+ | "revert X" / "roll back" / "go back to the last stable version" | [workflows/revert.md](workflows/revert.md) |
73
+ | "trace X" (a change, module, requirement, CR or backlog item) | `agent-pmo trace X`, then summarize |
74
+ | "status" / "what's next?" | `agent-pmo status`, `agent-pmo backlog list --open`, then `agent-pmo next implement\|test\|review`, and summarize |
75
+ | "check docs" | `agent-pmo check`, then fix what it reports |
76
+ | "update agent-pmo" / "upgrade the kit" / "use the latest version" | `agent-pmo version --check`; the user installs the newer release (`pipx upgrade agent-pmo`), then `agent-pmo upgrade --dry-run`, show what changes, `agent-pmo upgrade`, `agent-pmo check`, and commit it as one change with its release notes in the message |
77
+ | "add a rule/convention" / "update the guide(s)" | Edit the right guide in `docs/guide/` (developer, project manager or agent) and add a row to `docs/guide/changelog.md` in the same commit |
78
+
79
+ Don't ask the user which unit to work on: `agent-pmo next` decides. If `next implement` is blocked because something is untested, say so and offer the test workflow. With other agents running, always pass `--claim` (and `--agent <id>` or set `PM_AGENT`), so two agents never take the same module.
80
+
81
+ ## 3. Units, priorities and statuses
82
+
83
+ - **A unit** is one increment of one module, or one backlog item. Increments live in each spec's *Implementation plan*, each with `**Status:**`, `**Priority:**` and `**Also requires**`.
84
+ - **Priorities:** `P0` (critical), `P1` (high), `P2` (normal, the default) and `P3` (low). They apply to increments (`agent-pmo unit priority <module> <k> P1`), change requests (`--priority`) and backlog items.
85
+ - **Increment statuses:** `planned → coded → tested → reviewed`. Change them only with `agent-pmo unit set <module> <k> <status>`. It refuses `tested` without a filled-in PASS test report and test plan, and `reviewed` without enough approved independent reviews. It also re-syncs every place a status appears.
86
+ - **Module status** is derived: `planned`, `coded`, `tested`, `reviewed` (some increments still planned) or `done` (all increments reviewed).
87
+ - **Selection:** `next implement` takes every eligible unit and picks the highest priority. At equal priority, backlog fixes come before planned work, then phase and build order decide. Modules claimed by another agent are skipped. A planned increment is eligible when:
88
+ - earlier increments of the module are tested
89
+ - the index's *Depends on* modules have increment 1 tested
90
+ - everything in **Also requires** is tested
91
+ - earlier phases are tested **in the module and in the modules it depends on** (phase gate). Independent modules never wait for each other.
92
+ - no open P0/P1 backlog item exists for the module or a module it depends on. A bug blocks only its own module and its dependants.
93
+ - `next test` picks the highest-priority `coded` increment; `next review` the highest-priority `tested` one, including units of other agents whose claim says `review-requested` (it prints the branch to check out).
94
+ - **Formats are checked, not guessed:** a malformed increment heading, a missing `**Status:**` line, an unreadable *Also requires*, a malformed requirement ID or a duplicate module name is a `agent-pmo check` error. Nothing is skipped silently.
95
+ - **Regression:** if a tested module's files change after its latest test report, `agent-pmo check` fails until a regression report is written ([workflows/implement.md](workflows/implement.md) step 5).
96
+
97
+ ## 4. Rules that apply everywhere
98
+
99
+ - **Change IDs:** one per commit, from `agent-pmo change-id`. It reserves the ID on the shared coordination branch, so no other agent, branch or machine gets it. Every other number (DEC, AS, BL, CR, report files) is reserved the same way.
100
+ - **Changelogs are for specifications and guides only:** a spec's `changelog.md`, the spec index (`docs/specifications/README.md`), the architecture's `docs/architecture/changelog.md`, and the guides' `docs/guide/changelog.md`. Never add changelogs to source code, module READMEs, instruction files or the kit; their history is the git log, linked to the change by `Change-Id` trailers.
101
+ - **Docs never mention the kit:** everything under `docs/` is user-facing. Describe the flow and what to say to an agent, never `agent-pmo` commands or `.pm/` paths; the kit's own instructions stay in `.pm/`. `agent-pmo check` reports `docs/` files that mention the kit.
102
+ - **Every guide change is logged:** a commit that changes the hand-written part of a guide in `docs/guide/` must add a row to `docs/guide/changelog.md`. `agent-pmo check` and the pre-commit hook enforce it. The settings tables `agent-pmo sync` regenerates need no row.
103
+ - **A row only for a document that changed:** log a change only in the changelog of a spec, the index or the architecture that the same commit actually changes (for a folder's `changelog.md`: another file in that folder, such as the spec README or a new report). Process, kit and tooling changes get **no** changelog row — the commit and its trailers are their record. `agent-pmo changelog add` and the pre-commit hook refuse rows for unchanged documents. Add rows with `agent-pmo changelog add --id <ID> --summary "<what>" --reason "<why>" [--link <report>] FILE...`. Tables are newest first, with the latest 5 visible and older rows collapsed. `--link` attaches the test report, code review or security report the change produced. `agent-pmo check` rejects changelog tables anywhere else.
104
+ - **Checks:**
105
+ - `agent-pmo check` must report `0 problem(s)` before every commit.
106
+ - The git hooks (`agent-pmo hooks install`) enforce this together with the secret scan and the configured gates. **Never use `--no-verify`.**
107
+ - If a hook blocks a commit, fix the cause.
108
+ - **Code quality:** follow the language best-practices file, the spec's interfaces, and the module boundaries (only public interfaces of other modules). Keep the full test suite green.
109
+ - **Tests are hermetic:** no network, no real external services, temporary directories.
110
+ - **Reports are evidence:** fill in every `_(fill in)_` with real information, state plainly what was not verified, and never claim a pass you didn't run.
111
+ - **Git:** follow the strategy in `pm.toml`. `agent-pmo land <module> <k>` lands a unit; `agent-pmo land-steps <branch>` explains what it does.
112
+ - `local`: fast-forward merge into the default branch, then `agent-pmo stable update` (moves `stable`, tags a rollback point), and never push unless the user asks.
113
+ - `pr` / `flow`, the branch model:
114
+ ```
115
+ unit branch ──agent PR──▶ dev ──▶ dev-<change id> ──user PR──▶ user-reviewed ──CI, all gates green──▶ stable
116
+ ```
117
+ Unit branches start from `dev`. After tests and the independent AI review, `agent-pmo land` opens the agent PR into `dev` and merges it as soon as CI allows: **agents never wait for the user**. Right after that merge it creates `dev-<change id>` and opens **the user's review PR** into `user-reviewed`. Its description lists possible issues, the changes made during the agentic review, the issues found, the evidence, and **the related review PRs in implementation order**: the PRs that depend on this one (they contain it; merge this first) and the earlier PRs it contains (merge those first), with module dependencies noted. `agent-pmo pr refresh` keeps those lists current; `land` and CI on `user-reviewed` run it. When the user merges it, CI runs every gate and fast-forwards `stable`, so `stable` always holds the last merged working code. `flow` then promotes `stable → staging → production`.
118
+ - Pushing unit and `dev-*` branches and opening labelled PRs is part of the agreed process. Never push to or merge into `dev`, `user-reviewed`, `stable`, staging or production directly (the pre-push hook blocks it), never merge a user PR yourself, and never force-push shared branches.
119
+ - Agents use their own account or token (a bot), not the user's: providers don't let a PR's author approve it, which is what makes the user's approval on `user-reviewed` real.
120
+ - **Provider-neutral:** GitHub, GitLab and Bitbucket work the same way through `agent-pmo` (REST APIs, no provider CLI). The CI files come from `agent-pmo ci generate`. Never call a provider CLI or API directly for PRs, issues or labels.
121
+ - **OS-neutral:** `agent-pmo` runs the same way on Linux, macOS and Windows. Its own commands never go through a shell. The generated commands are `agent-pmo …` on every OS; the configured gate commands are the only shell commands.
122
+ - **Rollback is always possible:** never rewrite shared history (no `reset --hard` or force-push on shared branches). Undo means a revert commit ([workflows/revert.md](workflows/revert.md)).
123
+ - **Missing tooling:** if a tool the gates need is missing, stop and tell the user the exact install command.
124
+
125
+ ## 5. Workflows
126
+
127
+ Each workflow has its own file. **Before you start one, read its file in full; follow its steps in order; when it says so, finish with its check.** `agent-pmo workflow check …` verifies, from the evidence each step leaves (files, statuses, reports, decisions, commit trailers, claims), that no step was skipped; `agent-pmo workflow report` shows how well every unit followed its workflows. A failing check means a step is missing: do it, don't work around it.
128
+
129
+ | Workflow | File | When | Finish with |
130
+ |---|---|---|---|
131
+ | Planning: zero assumptions | [workflows/planning.md](workflows/planning.md) | planning (setup, change requests, new specs, increments) | — |
132
+ | Project setup | [workflows/setup.md](workflows/setup.md) | no pm.toml / "set up the project" | `agent-pmo workflow check setup` |
133
+ | Implement | [workflows/implement.md](workflows/implement.md) | "implement the next spec" / "continue" | `agent-pmo workflow check implement --module M --increment K` |
134
+ | Test | [workflows/test.md](workflows/test.md) | "test the next spec" | `agent-pmo workflow check test --module M --increment K` |
135
+ | Review | [workflows/review.md](workflows/review.md) | "review the next spec", landing a reviewed unit | `agent-pmo workflow check review --module M --increment K` |
136
+ | Change request | [workflows/change-request.md](workflows/change-request.md) | a new feature or a change to behaviour | `agent-pmo workflow check change-request --cr CR-NNNN` |
137
+ | Security report | [workflows/security.md](workflows/security.md) | "security report", before a review | `agent-pmo workflow check security --module M` |
138
+ | Release and promotion | [workflows/release.md](workflows/release.md) | "release", "promote to staging/production" | — |
139
+ | Merge conflicts | [workflows/merge.md](workflows/merge.md) | a merge conflict, "merge X" | — |
140
+ | Backlog fix | [workflows/fix.md](workflows/fix.md) | a bug report, "fix X", a FIX: unit | `agent-pmo workflow check fix --backlog BL-NNNN` |
141
+ | Scheduled checks | [workflows/scheduled.md](workflows/scheduled.md) | a scheduled-check summary | — |
142
+ | Revert and rollback | [workflows/revert.md](workflows/revert.md) | "revert X", "roll back" | — |
143
+ | Parallel agents | [workflows/parallel.md](workflows/parallel.md) | several agents at once | — |
144
+ | One-off build | [workflows/oneoff.md](workflows/oneoff.md) | "build X quickly", "vibe code X" | `agent-pmo workflow check oneoff --dir oneoff/NAME` |
145
+ | Adopt an existing repository | [workflows/adopt.md](workflows/adopt.md) | "analyse old code" | `agent-pmo workflow check adopt` |
146
+ | Issue triage | [workflows/triage.md](workflows/triage.md) | "fetch repo issues" | `agent-pmo workflow check triage` |
147
+ | Planning through an issue | [workflows/discuss.md](workflows/discuss.md) | "plan the project / the feature in issue #N" | `agent-pmo workflow check discuss --issue N` |
148
+ | Deploy plan | [workflows/deploy.md](workflows/deploy.md) | "plan the deployment", releases and deploys | `agent-pmo workflow check deploy` |
149
+
150
+ ## 6. Don'ts
151
+
152
+ - Don't skip ahead of `agent-pmo next`, or combine several increments in one unit. Don't skip a workflow's steps, or report a workflow as done before its check passes. Don't work on a module another agent has claimed.
153
+ - Don't add features beyond the increment's tasks. Put ideas in your report, propose a change request, or file a P3 backlog item.
154
+ - Don't change a published interface without updating the specs of every module that uses it, with changelog reasons.
155
+ - Don't mark anything with unrun or failing gates. Never approve on the user's behalf when approval needs the user. Never review a unit you implemented or tested.
156
+ - Don't bypass hooks (`--no-verify`), force-push, or rewrite shared history.
157
+ - Don't deploy to production, and don't keep production or deploy credentials on your machine.
158
+ - Don't edit generated blocks, statuses, `.pm/`, or `pm.toml` choices the user made without asking.
159
+ - Don't decide on the user's behalf during planning. Register the assumption and ask. Never edit an accepted decision record: supersede it.