@plainconceptsplatform/agent-harness 2.0.0 → 2.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.
- package/README.md +426 -419
- package/package.json +3 -3
- package/src/commands/join.js +244 -244
- package/src/commands/shared.js +27 -27
- package/src/commands/single.js +79 -79
- package/src/commands/update.js +109 -109
- package/src/commands/wizard.js +134 -134
- package/src/content/.agents/skills/browser-automation/SKILL.md +66 -66
- package/src/content/.agents/skills/pc-guardrails-generic/SKILL.md +68 -68
- package/src/content/.agents/skills/pc-guardrails-project/SKILL.md +8 -8
- package/src/content/.agents/skills/pc-make-architecture/SKILL.md +51 -51
- package/src/content/.agents/skills/pc-make-architecture/structure-template.md +38 -38
- package/src/content/.agents/skills/pc-make-design/SKILL.md +68 -68
- package/src/content/.agents/skills/pc-make-engineer/SKILL.md +219 -219
- package/src/content/.agents/skills/pc-make-engineer/signal-mapping.md +68 -68
- package/src/content/.agents/skills/pc-make-engineer/template.md +81 -81
- package/src/content/.agents/skills/pc-make-evidence-scaffold/SKILL.md +18 -18
- package/src/content/.agents/skills/pc-make-evidence-scaffold/evidence-contract.md +29 -29
- package/src/content/.agents/skills/pc-make-guardrails/SKILL.md +74 -74
- package/src/content/.agents/skills/pc-make-guardrails/category-reference.md +68 -68
- package/src/content/.agents/skills/pc-make-merge-risk-assess/SKILL.md +70 -70
- package/src/content/.agents/skills/pc-make-merge-risk-assess/category-reference.md +98 -98
- package/src/content/.agents/skills/pc-make-user-model/SKILL.md +66 -66
- package/src/content/.agents/skills/pc-ops-evidence/SKILL.md +127 -127
- package/src/content/.agents/skills/pc-ops-ship/SKILL.md +18 -18
- package/src/content/.agents/skills/pc-plan-apply/SKILL.md +83 -83
- package/src/content/.agents/skills/pc-plan-apply/simple-mode.md +21 -21
- package/src/content/.agents/skills/pc-plan-archive/SKILL.md +63 -63
- package/src/content/.agents/skills/pc-plan-explore/SKILL.md +9 -9
- package/src/content/.agents/skills/pc-plan-goal/SKILL.md +94 -94
- package/src/content/.agents/skills/pc-plan-goal/branching.md +30 -30
- package/src/content/.agents/skills/pc-plan-goal/failure-policy.md +30 -30
- package/src/content/.agents/skills/pc-plan-goal/output-mode.md +9 -9
- package/src/content/.agents/skills/pc-plan-goal/output.md +68 -68
- package/src/content/.agents/skills/pc-plan-propose/SKILL.md +125 -125
- package/src/content/.agents/skills/pc-plan-propose/task-annotation.md +39 -39
- package/src/content/.agents/skills/pc-plan-quick/SKILL.md +62 -62
- package/src/content/.agents/skills/pc-plan-story/SKILL.md +146 -146
- package/src/content/.agents/skills/pc-repo-audit/SKILL.md +44 -44
- package/src/content/.agents/skills/pc-repo-help/SKILL.md +91 -91
- package/src/content/.agents/skills/pc-repo-initialize/SKILL.md +130 -130
- package/src/content/.agents/skills/pc-repo-onboard/SKILL.md +87 -87
- package/src/content/.agents/skills/pc-repo-verify/SKILL.md +34 -34
- package/src/content/.agents/skills/pc-userstory-az/SKILL.md +157 -157
- package/src/content/.agents/skills/pc-userstory-browser/SKILL.md +132 -132
- package/src/content/.agents/skills/pc-userstory-gh/SKILL.md +120 -120
- package/src/content/.agents/skills/pc-userstory-jira/SKILL.md +131 -131
- package/src/content/.opencode/_gitignore +9 -7
- package/src/content/.opencode/commands/init.md +5 -5
- package/src/content/.opencode/commands/make-architecture.md +5 -5
- package/src/content/.opencode/commands/make-design.md +5 -5
- package/src/content/.opencode/commands/make-engineer.md +5 -5
- package/src/content/.opencode/commands/make-evidence-scaffold.md +5 -5
- package/src/content/.opencode/commands/make-guardrails.md +5 -5
- package/src/content/.opencode/commands/make-user-model.md +5 -5
- package/src/content/.opencode/commands/ops-backlog.md +10 -10
- package/src/content/.opencode/commands/ops-evidence.md +9 -9
- package/src/content/.opencode/commands/ops-review.md +8 -8
- package/src/content/.opencode/commands/ops-ship.md +9 -9
- package/src/content/.opencode/commands/plan-apply.md +9 -9
- package/src/content/.opencode/commands/plan-archive.md +5 -5
- package/src/content/.opencode/commands/plan-explore.md +9 -9
- package/src/content/.opencode/commands/plan-goal.md +5 -5
- package/src/content/.opencode/commands/plan-propose.md +9 -9
- package/src/content/.opencode/commands/plan-quick.md +5 -5
- package/src/content/.opencode/commands/plan-story.md +9 -9
- package/src/content/.opencode/commands/repo-audit.md +5 -5
- package/src/content/.opencode/commands/repo-help.md +5 -5
- package/src/content/.opencode/commands/repo-initialize.md +5 -5
- package/src/content/.opencode/commands/repo-onboard.md +5 -5
- package/src/content/.opencode/commands/repo-verify.md +5 -5
- package/src/content/.opencode/plugins/pc-subagent-monitor.js +139 -139
- package/src/content/.opencode/plugins/pc-subagent-tiers.js +281 -179
- package/src/content/.opencode/plugins/pc-system-reminders.js +96 -96
- package/src/content/.opencode/tui/pc-subagents.tsx +98 -98
- package/src/content/.opencode/tui.json +6 -6
- package/src/content/AGENTS.md +71 -71
- package/src/content/opencode.jsonc +39 -31
- package/src/fragments/archive/az.md +95 -95
- package/src/fragments/archive/gh.md +94 -94
- package/src/fragments/archive/gl.md +94 -94
- package/src/fragments/archive/none.md +73 -73
- package/src/fragments/guardrails/codegraph.md +7 -7
- package/src/fragments/guardrails/humanizer.md +4 -4
- package/src/fragments/guardrails/memory.md +4 -4
- package/src/fragments/guardrails/rtk.md +3 -3
- package/src/fragments/guardrails/simple-english.md +4 -4
- package/src/fragments/ops-backlog/az.md +28 -28
- package/src/fragments/ops-backlog/gh.md +29 -29
- package/src/fragments/ops-backlog/jira.md +28 -28
- package/src/fragments/ops-evidence/az.md +41 -41
- package/src/fragments/ops-evidence/gh.md +53 -53
- package/src/fragments/ops-evidence/jira.md +38 -38
- package/src/fragments/ops-review/az.md +62 -62
- package/src/fragments/ops-review/gh.md +52 -52
- package/src/fragments/ops-review/gl.md +56 -56
- package/src/fragments/ops-ship/az.md +80 -80
- package/src/fragments/ops-ship/gh.md +68 -68
- package/src/fragments/ops-ship/gl.md +85 -85
- package/src/index.js +107 -107
- package/src/presets/agents-content.json +53 -53
- package/src/presets/models.json +68 -68
- package/src/steps/copy/agents.js +118 -118
- package/src/steps/copy/commands.js +91 -91
- package/src/steps/copy/fullstack-engineer.js +85 -83
- package/src/steps/copy/index.js +88 -88
- package/src/steps/copy/opencode-json.js +147 -129
- package/src/steps/copy/skills.js +196 -196
- package/src/steps/metadata/index.js +108 -108
- package/src/steps/models/write.js +34 -34
- package/src/steps/optimization/patch-guardrails.js +108 -108
- package/src/utils/copy.js +108 -108
- package/src/utils/legacy-check.js +30 -30
- package/src/utils/models-cache.js +58 -58
- package/src/utils/paths.js +67 -64
- package/src/utils/update-manifest.js +49 -49
- package/src/content/.opencode/plugins/pc-system-reminders.test.js +0 -35
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pc-userstory
|
|
3
|
-
description: Parse GitHub Issue URL and create OpenSpec change. Use when user provides a GitHub Issue URL.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires openspec CLI and gh CLI.
|
|
6
|
-
metadata:
|
|
7
|
-
author: copilots
|
|
8
|
-
version: "1.1"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Use `gh` CLI for all GitHub operations. If `gh` is unavailable, report it as a blocker.
|
|
12
|
-
|
|
13
|
-
## GitHub CLI Setup (One-Time)
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
gh auth login
|
|
17
|
-
# Follow prompts, authenticate via browser or token
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Verify:
|
|
21
|
-
```bash
|
|
22
|
-
gh auth status
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Steps
|
|
26
|
-
|
|
27
|
-
1. **Extract owner, repo, and issue number** from URL
|
|
28
|
-
- `https://github.com/{owner}/{repo}/issues/42` -> owner: `{owner}`, repo: `{repo}`, number: `42`
|
|
29
|
-
|
|
30
|
-
2. **Fetch Issue**, always pass `--repo` explicitly:
|
|
31
|
-
```bash
|
|
32
|
-
gh issue view 42 --repo {owner}/{repo} --json number,title,body,labels,milestone,state
|
|
33
|
-
```
|
|
34
|
-
If this returns an auth error or 404, report as a blocker.
|
|
35
|
-
|
|
36
|
-
3. **Extract Key Fields** from JSON response:
|
|
37
|
-
- `number` -> Issue number
|
|
38
|
-
- `title` -> Title
|
|
39
|
-
- `body` -> Description / acceptance criteria
|
|
40
|
-
- `labels` -> Labels
|
|
41
|
-
- `milestone` -> Milestone / sprint equivalent
|
|
42
|
-
- `state` -> State (open/closed)
|
|
43
|
-
|
|
44
|
-
4. **Create OpenSpec Change**
|
|
45
|
-
```bash
|
|
46
|
-
openspec new change "gh-{number}-{slug}"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
5. **Hand off to proposal.** Load the `pc-plan-propose` skill (interactive mode) to generate the proposal, specs, and tasks. After it completes, call the `question` tool:
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"questions": [
|
|
54
|
-
{
|
|
55
|
-
"header": "Ready to implement",
|
|
56
|
-
"question": "Ready to implement?",
|
|
57
|
-
"options": [
|
|
58
|
-
{ "label": "yes", "description": "Load the pc-plan-apply skill to start implementation." },
|
|
59
|
-
{ "label": "no", "description": "Stop here. You can run /plan-apply later." }
|
|
60
|
-
]
|
|
61
|
-
}
|
|
62
|
-
]
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Wait for confirmation before loading `pc-plan-apply`.
|
|
67
|
-
|
|
68
|
-
## Full GitHub CLI Reference
|
|
69
|
-
|
|
70
|
-
Always pass `--repo {owner}/{repo}`, relying on git context is unreliable.
|
|
71
|
-
|
|
72
|
-
### Issues
|
|
73
|
-
```bash
|
|
74
|
-
# Read issue
|
|
75
|
-
gh issue view <number> --repo {owner}/{repo}
|
|
76
|
-
|
|
77
|
-
# List open issues
|
|
78
|
-
gh issue list --repo {owner}/{repo} --state open --limit 10
|
|
79
|
-
|
|
80
|
-
# Update issue
|
|
81
|
-
gh issue edit <number> --repo {owner}/{repo} --add-label "in-progress"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Screenshot / Image Strategy
|
|
85
|
-
|
|
86
|
-
Save to openspec change folder and reference via GitHub blob URL pinned to commit SHA. Keep `?raw=true` when embedding in markdown:
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
openspec/changes/{change-name}/images/{screenshot}.png
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
https://github.com/{owner}/{repo}/blob/{sha}/openspec/changes/{change}/images/{file}.png?raw=true
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## URL Formats Reference
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
# Issue
|
|
100
|
-
https://github.com/{owner}/{repo}/issues/{number}
|
|
101
|
-
|
|
102
|
-
# PR
|
|
103
|
-
https://github.com/{owner}/{repo}/pull/{number}
|
|
104
|
-
|
|
105
|
-
# Blob file
|
|
106
|
-
https://github.com/{owner}/{repo}/blob/{sha}/{path}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Output Format
|
|
110
|
-
|
|
111
|
-
```
|
|
112
|
-
## Issue Parsed
|
|
113
|
-
|
|
114
|
-
Issue: #{number}
|
|
115
|
-
Title: {title}
|
|
116
|
-
State: {state}
|
|
117
|
-
Milestone: {milestone}
|
|
118
|
-
|
|
119
|
-
Change Created: gh-{number}-{slug}
|
|
120
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: pc-userstory
|
|
3
|
+
description: Parse GitHub Issue URL and create OpenSpec change. Use when user provides a GitHub Issue URL.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires openspec CLI and gh CLI.
|
|
6
|
+
metadata:
|
|
7
|
+
author: copilots
|
|
8
|
+
version: "1.1"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Use `gh` CLI for all GitHub operations. If `gh` is unavailable, report it as a blocker.
|
|
12
|
+
|
|
13
|
+
## GitHub CLI Setup (One-Time)
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
gh auth login
|
|
17
|
+
# Follow prompts, authenticate via browser or token
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Verify:
|
|
21
|
+
```bash
|
|
22
|
+
gh auth status
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Steps
|
|
26
|
+
|
|
27
|
+
1. **Extract owner, repo, and issue number** from URL
|
|
28
|
+
- `https://github.com/{owner}/{repo}/issues/42` -> owner: `{owner}`, repo: `{repo}`, number: `42`
|
|
29
|
+
|
|
30
|
+
2. **Fetch Issue**, always pass `--repo` explicitly:
|
|
31
|
+
```bash
|
|
32
|
+
gh issue view 42 --repo {owner}/{repo} --json number,title,body,labels,milestone,state
|
|
33
|
+
```
|
|
34
|
+
If this returns an auth error or 404, report as a blocker.
|
|
35
|
+
|
|
36
|
+
3. **Extract Key Fields** from JSON response:
|
|
37
|
+
- `number` -> Issue number
|
|
38
|
+
- `title` -> Title
|
|
39
|
+
- `body` -> Description / acceptance criteria
|
|
40
|
+
- `labels` -> Labels
|
|
41
|
+
- `milestone` -> Milestone / sprint equivalent
|
|
42
|
+
- `state` -> State (open/closed)
|
|
43
|
+
|
|
44
|
+
4. **Create OpenSpec Change**
|
|
45
|
+
```bash
|
|
46
|
+
openspec new change "gh-{number}-{slug}"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
5. **Hand off to proposal.** Load the `pc-plan-propose` skill (interactive mode) to generate the proposal, specs, and tasks. After it completes, call the `question` tool:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"questions": [
|
|
54
|
+
{
|
|
55
|
+
"header": "Ready to implement",
|
|
56
|
+
"question": "Ready to implement?",
|
|
57
|
+
"options": [
|
|
58
|
+
{ "label": "yes", "description": "Load the pc-plan-apply skill to start implementation." },
|
|
59
|
+
{ "label": "no", "description": "Stop here. You can run /plan-apply later." }
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Wait for confirmation before loading `pc-plan-apply`.
|
|
67
|
+
|
|
68
|
+
## Full GitHub CLI Reference
|
|
69
|
+
|
|
70
|
+
Always pass `--repo {owner}/{repo}`, relying on git context is unreliable.
|
|
71
|
+
|
|
72
|
+
### Issues
|
|
73
|
+
```bash
|
|
74
|
+
# Read issue
|
|
75
|
+
gh issue view <number> --repo {owner}/{repo}
|
|
76
|
+
|
|
77
|
+
# List open issues
|
|
78
|
+
gh issue list --repo {owner}/{repo} --state open --limit 10
|
|
79
|
+
|
|
80
|
+
# Update issue
|
|
81
|
+
gh issue edit <number> --repo {owner}/{repo} --add-label "in-progress"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Screenshot / Image Strategy
|
|
85
|
+
|
|
86
|
+
Save to openspec change folder and reference via GitHub blob URL pinned to commit SHA. Keep `?raw=true` when embedding in markdown:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
openspec/changes/{change-name}/images/{screenshot}.png
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
https://github.com/{owner}/{repo}/blob/{sha}/openspec/changes/{change}/images/{file}.png?raw=true
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## URL Formats Reference
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
# Issue
|
|
100
|
+
https://github.com/{owner}/{repo}/issues/{number}
|
|
101
|
+
|
|
102
|
+
# PR
|
|
103
|
+
https://github.com/{owner}/{repo}/pull/{number}
|
|
104
|
+
|
|
105
|
+
# Blob file
|
|
106
|
+
https://github.com/{owner}/{repo}/blob/{sha}/{path}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Output Format
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
## Issue Parsed
|
|
113
|
+
|
|
114
|
+
Issue: #{number}
|
|
115
|
+
Title: {title}
|
|
116
|
+
State: {state}
|
|
117
|
+
Milestone: {milestone}
|
|
118
|
+
|
|
119
|
+
Change Created: gh-{number}-{slug}
|
|
120
|
+
```
|
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pc-userstory
|
|
3
|
-
description: Parse a Jira work item and create an OpenSpec change. Use when the user provides a Jira URL or a bare issue key (e.g. PROJ-123).
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires openspec CLI and Atlassian CLI (acli).
|
|
6
|
-
metadata:
|
|
7
|
-
author: copilots
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Use `acli` CLI for all Jira operations.
|
|
12
|
-
|
|
13
|
-
## Atlassian CLI Setup (One-Time)
|
|
14
|
-
|
|
15
|
-
Install from: https://developer.atlassian.com/cloud/acli/guides/install-acli/
|
|
16
|
-
|
|
17
|
-
Authenticate:
|
|
18
|
-
```bash
|
|
19
|
-
# Option 1: API token (recommended for CI)
|
|
20
|
-
echo <token> | acli jira auth login --site "<yoursite>.atlassian.net" --email "<email>" --token
|
|
21
|
-
|
|
22
|
-
# Option 2: OAuth (interactive)
|
|
23
|
-
acli jira auth login --web
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Generate API token at: https://id.atlassian.com/manage-profile/security/api-tokens
|
|
27
|
-
|
|
28
|
-
## Steps
|
|
29
|
-
|
|
30
|
-
1. **Extract Issue Key** from URL
|
|
31
|
-
- `https://yoursite.atlassian.net/browse/PROJ-123` -> Key: PROJ-123
|
|
32
|
-
- `https://yoursite.atlassian.net/jira/core/projects/PROJ/issues/PROJ-123` -> Key: PROJ-123
|
|
33
|
-
- `https://yoursite.atlassian.net/browse/PROJ-123?filter=123` -> Key: PROJ-123
|
|
34
|
-
- If the user provides just `PROJ-123` without a URL, use it directly as the key.
|
|
35
|
-
|
|
36
|
-
2. **Fetch Work Item**
|
|
37
|
-
```bash
|
|
38
|
-
acli jira workitem view --key "PROJ-123"
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Parse the output for:
|
|
42
|
-
- Summary -> title
|
|
43
|
-
- Description -> proposal context
|
|
44
|
-
- Acceptance Criteria (if present in description or custom fields) -> spec requirements
|
|
45
|
-
- Labels -> tags for the OpenSpec change
|
|
46
|
-
- Status -> current state (e.g. To Do, In Progress, Done)
|
|
47
|
-
- Assignee -> who requested it
|
|
48
|
-
- Priority -> complexity hint
|
|
49
|
-
|
|
50
|
-
3. **Offer to transition the Work Item to In Progress**
|
|
51
|
-
|
|
52
|
-
This writes to Jira, so ask first using the `question` tool:
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{
|
|
56
|
-
"questions": [
|
|
57
|
-
{
|
|
58
|
-
"header": "Transition work item",
|
|
59
|
-
"question": "Move {KEY} to In Progress?",
|
|
60
|
-
"options": [
|
|
61
|
-
{ "label": "yes", "description": "Transition the work item to In Progress." },
|
|
62
|
-
{ "label": "no", "description": "Skip the transition." }
|
|
63
|
-
]
|
|
64
|
-
}
|
|
65
|
-
]
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Only if the user answers `yes` AND the status is currently "To Do" or "Backlog":
|
|
70
|
-
```bash
|
|
71
|
-
acli jira workitem transition --key "PROJ-123" --status "In Progress"
|
|
72
|
-
```
|
|
73
|
-
In unattended runs (`/plan-goal`), skip the question and the transition entirely.
|
|
74
|
-
|
|
75
|
-
4. **Create OpenSpec Change**
|
|
76
|
-
```bash
|
|
77
|
-
openspec new change "{slug-from-summary}"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Write `proposal.md` with:
|
|
81
|
-
- Title: the Jira issue summary
|
|
82
|
-
- Context: mention this is Jira issue `{KEY}`, link back to the URL
|
|
83
|
-
- Requirements: extracted from description and acceptance criteria
|
|
84
|
-
- Scope: what's in/out based on the issue
|
|
85
|
-
|
|
86
|
-
5. **Hand off to proposal.** Load the `pc-plan-propose` skill (interactive mode) to generate the proposal, specs, and tasks. After it completes, call the `question` tool:
|
|
87
|
-
|
|
88
|
-
```json
|
|
89
|
-
{
|
|
90
|
-
"questions": [
|
|
91
|
-
{
|
|
92
|
-
"header": "Ready to implement",
|
|
93
|
-
"question": "Ready to implement?",
|
|
94
|
-
"options": [
|
|
95
|
-
{ "label": "yes", "description": "Load the pc-plan-apply skill to start implementation." },
|
|
96
|
-
{ "label": "no", "description": "Stop here. You can run /plan-apply later." }
|
|
97
|
-
]
|
|
98
|
-
}
|
|
99
|
-
]
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Wait for confirmation before loading `pc-plan-apply`.
|
|
104
|
-
|
|
105
|
-
## Jira URL Patterns
|
|
106
|
-
|
|
107
|
-
| URL format | Example |
|
|
108
|
-
|------------|---------|
|
|
109
|
-
| Browse URL | `https://yoursite.atlassian.net/browse/PROJ-123` |
|
|
110
|
-
| Issue URL | `https://yoursite.atlassian.net/jira/core/projects/PROJ/issues/PROJ-123` |
|
|
111
|
-
| Board URL | `https://yoursite.atlassian.net/jira/software/c/projects/PROJ/boards/1?selectedIssue=PROJ-123` |
|
|
112
|
-
| Direct key | `PROJ-123` |
|
|
113
|
-
|
|
114
|
-
## Useful Commands
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
# View work item
|
|
118
|
-
acli jira workitem view --key "PROJ-123"
|
|
119
|
-
|
|
120
|
-
# Transition work item
|
|
121
|
-
acli jira workitem transition --key "PROJ-123" --status "In Progress"
|
|
122
|
-
acli jira workitem transition --key "PROJ-123" --status "Done"
|
|
123
|
-
|
|
124
|
-
# Search with JQL
|
|
125
|
-
acli jira workitem search --jql "project = PROJ AND status = 'To Do' ORDER BY priority DESC"
|
|
126
|
-
|
|
127
|
-
# Add a comment
|
|
128
|
-
acli jira workitem comment create --key "PROJ-123" --body "Implementation started"
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
Jira is a backlog-only platform: it has no code repos or PRs. PR creation and code review use the repo platform (GitHub or Azure DevOps) configured separately.
|
|
1
|
+
---
|
|
2
|
+
name: pc-userstory
|
|
3
|
+
description: Parse a Jira work item and create an OpenSpec change. Use when the user provides a Jira URL or a bare issue key (e.g. PROJ-123).
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires openspec CLI and Atlassian CLI (acli).
|
|
6
|
+
metadata:
|
|
7
|
+
author: copilots
|
|
8
|
+
version: "1.0"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Use `acli` CLI for all Jira operations.
|
|
12
|
+
|
|
13
|
+
## Atlassian CLI Setup (One-Time)
|
|
14
|
+
|
|
15
|
+
Install from: https://developer.atlassian.com/cloud/acli/guides/install-acli/
|
|
16
|
+
|
|
17
|
+
Authenticate:
|
|
18
|
+
```bash
|
|
19
|
+
# Option 1: API token (recommended for CI)
|
|
20
|
+
echo <token> | acli jira auth login --site "<yoursite>.atlassian.net" --email "<email>" --token
|
|
21
|
+
|
|
22
|
+
# Option 2: OAuth (interactive)
|
|
23
|
+
acli jira auth login --web
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Generate API token at: https://id.atlassian.com/manage-profile/security/api-tokens
|
|
27
|
+
|
|
28
|
+
## Steps
|
|
29
|
+
|
|
30
|
+
1. **Extract Issue Key** from URL
|
|
31
|
+
- `https://yoursite.atlassian.net/browse/PROJ-123` -> Key: PROJ-123
|
|
32
|
+
- `https://yoursite.atlassian.net/jira/core/projects/PROJ/issues/PROJ-123` -> Key: PROJ-123
|
|
33
|
+
- `https://yoursite.atlassian.net/browse/PROJ-123?filter=123` -> Key: PROJ-123
|
|
34
|
+
- If the user provides just `PROJ-123` without a URL, use it directly as the key.
|
|
35
|
+
|
|
36
|
+
2. **Fetch Work Item**
|
|
37
|
+
```bash
|
|
38
|
+
acli jira workitem view --key "PROJ-123"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Parse the output for:
|
|
42
|
+
- Summary -> title
|
|
43
|
+
- Description -> proposal context
|
|
44
|
+
- Acceptance Criteria (if present in description or custom fields) -> spec requirements
|
|
45
|
+
- Labels -> tags for the OpenSpec change
|
|
46
|
+
- Status -> current state (e.g. To Do, In Progress, Done)
|
|
47
|
+
- Assignee -> who requested it
|
|
48
|
+
- Priority -> complexity hint
|
|
49
|
+
|
|
50
|
+
3. **Offer to transition the Work Item to In Progress**
|
|
51
|
+
|
|
52
|
+
This writes to Jira, so ask first using the `question` tool:
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"questions": [
|
|
57
|
+
{
|
|
58
|
+
"header": "Transition work item",
|
|
59
|
+
"question": "Move {KEY} to In Progress?",
|
|
60
|
+
"options": [
|
|
61
|
+
{ "label": "yes", "description": "Transition the work item to In Progress." },
|
|
62
|
+
{ "label": "no", "description": "Skip the transition." }
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Only if the user answers `yes` AND the status is currently "To Do" or "Backlog":
|
|
70
|
+
```bash
|
|
71
|
+
acli jira workitem transition --key "PROJ-123" --status "In Progress"
|
|
72
|
+
```
|
|
73
|
+
In unattended runs (`/plan-goal`), skip the question and the transition entirely.
|
|
74
|
+
|
|
75
|
+
4. **Create OpenSpec Change**
|
|
76
|
+
```bash
|
|
77
|
+
openspec new change "{slug-from-summary}"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Write `proposal.md` with:
|
|
81
|
+
- Title: the Jira issue summary
|
|
82
|
+
- Context: mention this is Jira issue `{KEY}`, link back to the URL
|
|
83
|
+
- Requirements: extracted from description and acceptance criteria
|
|
84
|
+
- Scope: what's in/out based on the issue
|
|
85
|
+
|
|
86
|
+
5. **Hand off to proposal.** Load the `pc-plan-propose` skill (interactive mode) to generate the proposal, specs, and tasks. After it completes, call the `question` tool:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"questions": [
|
|
91
|
+
{
|
|
92
|
+
"header": "Ready to implement",
|
|
93
|
+
"question": "Ready to implement?",
|
|
94
|
+
"options": [
|
|
95
|
+
{ "label": "yes", "description": "Load the pc-plan-apply skill to start implementation." },
|
|
96
|
+
{ "label": "no", "description": "Stop here. You can run /plan-apply later." }
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Wait for confirmation before loading `pc-plan-apply`.
|
|
104
|
+
|
|
105
|
+
## Jira URL Patterns
|
|
106
|
+
|
|
107
|
+
| URL format | Example |
|
|
108
|
+
|------------|---------|
|
|
109
|
+
| Browse URL | `https://yoursite.atlassian.net/browse/PROJ-123` |
|
|
110
|
+
| Issue URL | `https://yoursite.atlassian.net/jira/core/projects/PROJ/issues/PROJ-123` |
|
|
111
|
+
| Board URL | `https://yoursite.atlassian.net/jira/software/c/projects/PROJ/boards/1?selectedIssue=PROJ-123` |
|
|
112
|
+
| Direct key | `PROJ-123` |
|
|
113
|
+
|
|
114
|
+
## Useful Commands
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# View work item
|
|
118
|
+
acli jira workitem view --key "PROJ-123"
|
|
119
|
+
|
|
120
|
+
# Transition work item
|
|
121
|
+
acli jira workitem transition --key "PROJ-123" --status "In Progress"
|
|
122
|
+
acli jira workitem transition --key "PROJ-123" --status "Done"
|
|
123
|
+
|
|
124
|
+
# Search with JQL
|
|
125
|
+
acli jira workitem search --jql "project = PROJ AND status = 'To Do' ORDER BY priority DESC"
|
|
126
|
+
|
|
127
|
+
# Add a comment
|
|
128
|
+
acli jira workitem comment create --key "PROJ-123" --body "Implementation started"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Jira is a backlog-only platform: it has no code repos or PRs. PR creation and code review use the repo platform (GitHub or Azure DevOps) configured separately.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
node_modules
|
|
2
|
-
harness-run.json
|
|
3
|
-
harness.user.json
|
|
4
|
-
harness-managed.json
|
|
5
|
-
source-roots.json
|
|
6
|
-
tmp/
|
|
7
|
-
*-engineer.*.md
|
|
1
|
+
node_modules
|
|
2
|
+
harness-run.json
|
|
3
|
+
harness.user.json
|
|
4
|
+
harness-managed.json
|
|
5
|
+
source-roots.json
|
|
6
|
+
tmp/
|
|
7
|
+
*-engineer.*.md
|
|
8
|
+
agents/build.md
|
|
9
|
+
agents/plan.md
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Initialize the project. Presents a single form with all setup questions, then executes selected steps.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-repo-initialize` skill and follow every step defined in it.
|
|
1
|
+
---
|
|
2
|
+
description: Initialize the project. Presents a single form with all setup questions, then executes selected steps.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-repo-initialize` skill and follow every step defined in it.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Generate or update ARCHITECTURE.md by analyzing the codebase structure. Safe to run at any time.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-make-architecture` skill and follow every step defined in it.
|
|
1
|
+
---
|
|
2
|
+
description: Generate or update ARCHITECTURE.md by analyzing the codebase structure. Safe to run at any time.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-make-architecture` skill and follow every step defined in it.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Generate or update DESIGN.md by analyzing the codebase design system. Safe to run at any time.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-make-design` skill and follow every step defined in it.
|
|
1
|
+
---
|
|
2
|
+
description: Generate or update DESIGN.md by analyzing the codebase design system. Safe to run at any time.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-make-design` skill and follow every step defined in it.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Create a custom engineer agent via persona-driven interactive design
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-make-engineer` skill and follow every step defined in it.
|
|
1
|
+
---
|
|
2
|
+
description: Create a custom engineer agent via persona-driven interactive design
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-make-engineer` skill and follow every step defined in it.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: One-time scaffold of a project-specific visual-evidence harness (deterministic capture + assertions + manifest + publisher) that /ops-evidence and /plan-goal delegate to.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-make-evidence-scaffold` skill and follow every step defined in it.
|
|
1
|
+
---
|
|
2
|
+
description: One-time scaffold of a project-specific visual-evidence harness (deterministic capture + assertions + manifest + publisher) that /ops-evidence and /plan-goal delegate to.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-make-evidence-scaffold` skill and follow every step defined in it.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Generate or update a pc-guardrails-project skill from ARCHITECTURE.md and relevant project files.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-make-guardrails` skill and follow every step defined in it.
|
|
1
|
+
---
|
|
2
|
+
description: Generate or update a pc-guardrails-project skill from ARCHITECTURE.md and relevant project files.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-make-guardrails` skill and follow every step defined in it.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set the model for a tier (plan, build, or fast). Team-wide or user-local override.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-make-user-model` skill and follow every step defined in it.
|
|
1
|
+
---
|
|
2
|
+
description: Set the model for a tier (plan, build, or fast). Team-wide or user-local override.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-make-user-model` skill and follow every step defined in it.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Create an issue in the backlog platform (GitHub, Azure DevOps, Jira) from a description.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Backlog platform is set in `.opencode/harness.json` → `platform.backlog`. The platform-specific content below is injected by the CLI during onboarding.
|
|
6
|
-
|
|
7
|
-
Input: `$ARGUMENTS` (the issue title/description)
|
|
8
|
-
|
|
9
|
-
<!-- PC-PLATFORM-BACKLOG-START -->
|
|
10
|
-
<!-- PC-PLATFORM-BACKLOG-END -->
|
|
1
|
+
---
|
|
2
|
+
description: Create an issue in the backlog platform (GitHub, Azure DevOps, Jira) from a description.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Backlog platform is set in `.opencode/harness.json` → `platform.backlog`. The platform-specific content below is injected by the CLI during onboarding.
|
|
6
|
+
|
|
7
|
+
Input: `$ARGUMENTS` (the issue title/description)
|
|
8
|
+
|
|
9
|
+
<!-- PC-PLATFORM-BACKLOG-START -->
|
|
10
|
+
<!-- PC-PLATFORM-BACKLOG-END -->
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Capture a screenshot (or text summary) of a completed change and post it as a comment on the originating issue or work item.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Load the `pc-ops-evidence` skill and execute it.
|
|
6
|
-
|
|
7
|
-
Input:
|
|
8
|
-
|
|
9
|
-
$ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Capture a screenshot (or text summary) of a completed change and post it as a comment on the originating issue or work item.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Load the `pc-ops-evidence` skill and execute it.
|
|
6
|
+
|
|
7
|
+
Input:
|
|
8
|
+
|
|
9
|
+
$ARGUMENTS
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Read and triage PR review feedback. Reports what needs fixing, does not implement fixes.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Repo platform is set in `.opencode/harness.json` → `platform.repo`. The platform-specific content below is injected by the CLI during onboarding.
|
|
6
|
-
|
|
7
|
-
<!-- PC-PLATFORM-REVIEW-START -->
|
|
8
|
-
<!-- PC-PLATFORM-REVIEW-END -->
|
|
1
|
+
---
|
|
2
|
+
description: Read and triage PR review feedback. Reports what needs fixing, does not implement fixes.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Repo platform is set in `.opencode/harness.json` → `platform.repo`. The platform-specific content below is injected by the CLI during onboarding.
|
|
6
|
+
|
|
7
|
+
<!-- PC-PLATFORM-REVIEW-START -->
|
|
8
|
+
<!-- PC-PLATFORM-REVIEW-END -->
|