Add OpenAgents work management skill for the OpenAgents CLI.

968690372498 · AtlantisPleb · · parent ddcab4c22d40

Add OpenAgents work management skill for the OpenAgents CLI.

Replaces the retired `pro-work-management` skill with a project-specific
`.devin/skills/openagents-work-management/SKILL.md` that covers the
`openagents api` path for issues, comments, labels, assignees, milestones,
and Projects V2. No named `issue` or `project` commands exist, so every
Projects V2 route is assembled manually.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By
Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

Not deployed through the forge lane

No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.

Changed files

  • added .agents/skills/openagents-work-management/SKILL.md

Diff

1 file changed, +145 -0

.agents/skills/openagents-work-management/SKILL.md added +145

@@ -0,0 +1,145 @@

1
---
2
name: openagents-work-management
3
description: Manage OpenAgents issues, projects, comments, labels, assignees, and milestones through the OpenAgents CLI.
4
allowed-tools:
5
  - read
6
  - exec
7
  - grep
8
---
9
10
Use this skill when the user asks you to manage OpenAgents issues, projects, comments, labels, assignees, milestones, or Projects V2 boards from the command line. Do not use the `pro-work-management` skill or the Pro Linear/MCP surface. This skill targets the OpenAgents `/api/v3` surface through the `@openagentsinc/cli` package.
11
12
The OpenAgents CLI does not provide named `issue`, `project`, `label`, `milestone`, or `assignee` commands. For all work system operations, use `openagents api` and construct the route path manually. The Projects V2 routes must be done manually.
13
14
## Before you start
15
16
1. Install the CLI:
17
   ```sh
18
   npm install --global @openagentsinc/cli@latest
19
   ```
20
   Or run one command with `npx --yes @openagentsinc/cli@latest`.
21
2. Sign in:
22
   ```sh
23
   openagents auth login
24
   ```
25
3. Confirm the session:
26
   ```sh
27
   openagents auth status
28
   ```
29
4. Writes require a `forge:write` personal access token. Create one at `/settings/api-tokens` and store it with `openagents auth login --token-stdin`, or set `OPENAGENTS_TOKEN` for a single process. Do not print or commit tokens.
30
31
## Route addressing
32
33
A relative path for `openagents api` resolves under `/api/v3/`. For example, `repos/OWNER/REPO/issues` is the same as `/api/v3/repos/OWNER/REPO/issues`.
34
35
- Method: `-X GET|POST|PATCH|PUT|DELETE`.
36
- String fields: repeatable `-f KEY=VALUE`. Every value is sent as a JSON string.
37
- Full JSON body: `--input FILE` or `--input -` for standard input. Use this for numbers, booleans, arrays, nested objects, or `null`. `--field` and `--input` are mutually exclusive.
38
- Custom headers: `-H 'NAME: VALUE'`. The CLI rejects an `Authorization` header override.
39
40
## Issues
41
42
Implemented issue routes from `docs/github-api-issues-projects-assessment.md`:
43
44
| Resource | Methods | Path |
45
|---|---|---|
46
| Issues | `GET`, `POST` | `repos/OWNER/REPO/issues` |
47
| Issue | `GET`, `PUT`, `PATCH` | `repos/OWNER/REPO/issues/NUMBER` |
48
| Comments | `GET`, `POST` | `repos/OWNER/REPO/issues/NUMBER/comments` |
49
| Comment | `GET`, `PUT`, `PATCH`, `DELETE` | `repos/OWNER/REPO/issues/comments/ID` |
50
| Labels | `GET`, `POST` | `repos/OWNER/REPO/labels` |
51
| Label | `GET`, `PUT`, `PATCH`, `DELETE` | `repos/OWNER/REPO/labels/NAME` |
52
| Issue labels | `GET`, `POST` | `repos/OWNER/REPO/issues/NUMBER/labels` |
53
| Issue label | `DELETE` | `repos/OWNER/REPO/issues/NUMBER/labels/NAME` |
54
| Assignees | `GET` | `repos/OWNER/REPO/assignees` |
55
| Issue assignees | `GET`, `POST`, `DELETE` | `repos/OWNER/REPO/issues/NUMBER/assignees` |
56
| Milestones | `GET`, `POST` | `repos/OWNER/REPO/milestones` |
57
| Milestone | `GET`, `PUT`, `PATCH`, `DELETE` | `repos/OWNER/REPO/milestones/NUMBER` |
58
59
List responses are wrapped: `{"issues":[...]}`, `{"comments":[...]}`, `{"labels":[...]}`, `{"milestones":[...]}`.
60
61
Create an issue:
62
63
```sh
64
openagents api -X POST \
65
  -f title="Search returns duplicates" \
66
  -f body="Steps to reproduce" \
67
  repos/OWNER/REPO/issues
68
```
69
70
Close an issue with reason:
71
72
```sh
73
printf '%s' '{"state":"closed","state_reason":"completed"}' | \
74
  openagents api -X PATCH --input - \
75
  repos/OWNER/REPO/issues/41
76
```
77
78
Add a comment:
79
80
```sh
81
openagents api -X POST -f body="The fix is available in staging." \
82
  repos/OWNER/REPO/issues/41/comments
83
```
84
85
## Projects
86
87
There are no named `project` commands. Construct every Projects V2 route manually under `repos/OWNER/REPO/projectsV2`.
88
89
| Operation | Method | Path |
90
|---|---|---|
91
| List | `GET` | `repos/OWNER/REPO/projectsV2` |
92
| Create | `POST` | `repos/OWNER/REPO/projectsV2` |
93
| Read | `GET` | `repos/OWNER/REPO/projectsV2/PROJECT_NUMBER` |
94
| List items | `GET` | `repos/OWNER/REPO/projectsV2/PROJECT_NUMBER/items` |
95
| Add item | `POST` | `repos/OWNER/REPO/projectsV2/PROJECT_NUMBER/items` |
96
| Update item | `PATCH` | `repos/OWNER/REPO/projectsV2/PROJECT_NUMBER/items/ITEM_ID` |
97
| List fields | `GET` | `repos/OWNER/REPO/projectsV2/PROJECT_NUMBER/fields` |
98
| Create field | `POST` | `repos/OWNER/REPO/projectsV2/PROJECT_NUMBER/fields` |
99
100
List projects:
101
102
```sh
103
openagents api repos/OWNER/REPO/projectsV2
104
```
105
106
Create a project:
107
108
```sh
109
openagents api -X POST -f title="Release readiness" \
110
  repos/OWNER/REPO/projectsV2
111
```
112
113
Add a repository-local issue to a project:
114
115
```sh
116
printf '%s' '{"issue_number":11,"values":{"Status":"To Do"}}' | \
117
  openagents api -X POST --input - \
118
  repos/OWNER/REPO/projectsV2/PROJECT_NUMBER/items
119
```
120
121
Add an issue from another repository:
122
123
```sh
124
printf '%s' '{"issue":{"owner":"SOURCE_OWNER","repo":"SOURCE_REPO","number":37},"values":{"Status":"To Do"}}' | \
125
  openagents api -X POST --input - \
126
  repos/PROJECT_OWNER/PROJECT_REPO/projectsV2/PROJECT_NUMBER/items
127
```
128
129
Update an item:
130
131
```sh
132
printf '%s' '{"values":{"Status":"Done"}}' | \
133
  openagents api -X PATCH --input - \
134
  repos/OWNER/REPO/projectsV2/PROJECT_NUMBER/items/ITEM_ID
135
```
136
137
## Rules and constraints
138
139
- Always prefer `openagents api` over inventing named subcommands.
140
- Use `--json` for noninteractive or script output. `openagents api` always returns the response body as JSON.
141
- Writes require a `forge:write` token and repository membership. Anonymous reads are allowed only on public repositories.
142
- Do not print or commit tokens. Use the OS credential store or `OPENAGENTS_TOKEN`.
143
- Cross-repository project items require write access to the project repository and read access to the source issue repository.
144
- Issue and milestone numbers are repository-local. Project numbers are also repository-local.
145
- For the exact request/response envelopes and current known gaps, read `docs/github-api-issues-projects-assessment.md` and `docs/openagents-cli/api.md`.

This page updates live while a promote is in flight · changelog