Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions content/.agents/skills/ob-pullrequest-az/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Save to: `openspec/changes/{change-name}/images/{feature}.png`

```bash
git add .
git commit -m "feat({scope}): {description} (#{id})"
git commit -m "feat({scope}): {description} ({id})"
git push origin feature/{id}-{slug}
```

Expand All @@ -50,7 +50,7 @@ az repos pr create \
--repository {repo} \
--source-branch feature/{id}-{slug} \
--target-branch main \
--title "feat({scope}): {title} (#{id})" \
--title "feat({scope}): {title} ({id})" \
--description "{description}"
```

Expand Down
4 changes: 2 additions & 2 deletions content/.agents/skills/ob-pullrequest-gh/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Save to: `openspec/changes/{change-name}/images/{feature}.png`

```bash
git add .
git commit -m "feat({scope}): {description} (#{id})"
git commit -m "feat({scope}): {description} ({id})"
git push origin feature/{id}-{slug}
```

Expand All @@ -49,7 +49,7 @@ git push origin feature/{id}-{slug}
gh pr create \
--base main \
--head feature/{slug} \
--title "feat({scope}): {title} (#{id})" \
--title "feat({scope}): {title} ({id})" \
--body "{description}"
```

Expand Down
2 changes: 1 addition & 1 deletion content/.agents/skills/ob-userstory-az/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ https://dev.azure.com/{org}/{project}/_git/{repo}/pullrequest/{pr-id}
```
## User Story Parsed

**Work Item:** #{id}
**Work Item:** {id}
**Title:** {title}
**Type:** User Story
**Iteration:** {sprint}
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "opencode-onboard",
"version": "1.0.0",
"version": "1.1.0",
"description": "Prepare any codebase for AI. Wires OpenCode, OpenSpec, codegraph, and basic-memory into a multi-agent development workflow powered by native parallel subagents.",
"keywords": [
"opencode",
Expand Down Expand Up @@ -48,4 +48,4 @@
"vitest": {
"environment": "node"
}
}
}
21 changes: 11 additions & 10 deletions src/presets/ob-archive-az.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
2. **Find the oldest change with a completed PR**

List unarchived changes (top-level only, excludes `archive/`):
`{change-dir}` is the directory basename (e.g. `us-{id}-{slug}` for changes derived from user stories or `{slug}` for explorations).

```bash
find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -name 'us-*' | sort
find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -not -name 'archive' | sort
```

If empty, report a blocker and stop.
Expand All @@ -14,7 +15,7 @@
az repos pr list --repository {repo} --status completed --query "sort_by(@, &closedDate)[].{name:title,sourceRefName:sourceRefName,closedDate:closedDate,pullRequestId:pullRequestId}"
```

Match each change to a completed PR using its ID and slug as search hints:
Match each change to a completed PR using its title as search hints:
- No match → skip (record as blocked: `no merged PR found`).
- One match → eligible.
- Multiple matches → ask the user which PR belongs to that change.
Expand All @@ -27,7 +28,7 @@

```text
Oldest unarchived merged change found:
ID: us-{id}-{slug}
ID: {change-dir}
Title: {title from resolved PR}
PR ID: {pullRequestId}
Merged: {closedDate}
Expand All @@ -40,7 +41,7 @@
4. **Archive the change**

```bash
git checkout -b archive/{id}-{slug}
git checkout -b archive/{change-dir}
```

Load `@openspec-archive-change` skill and follow it to archive the change.
Expand All @@ -53,15 +54,15 @@

```bash
git add -A
git commit -m "archive: {title} ({id})"
git push origin archive/{id}-{slug}
git commit -m "archive: {title}"
git push origin archive/{change-dir}

az repos pr create \
--repository {repo} \
--source-branch refs/heads/archive/{id}-{slug} \
--source-branch refs/heads/archive/{change-dir} \
--target-branch refs/heads/main \
--title "archive: {title} ({id})" \
--description "Archive SDD artifacts for us-{id} after merge of {sourceRefName}." \
--title "archive: {title}" \
--description "Archive SDD artifacts for {change-dir} after merge of {sourceRefName}." \
--auto-complete
```

Expand All @@ -74,7 +75,7 @@
```text
Archive complete

Change ID: us-{id}-{slug}
Change ID: {change-dir}
Title: {title}
Original PR: {original-pr-link}
Archive PR: {archive-pr-link}
Expand Down
21 changes: 11 additions & 10 deletions src/presets/ob-archive-gh.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
2. **Find the oldest change with a completed PR**

List unarchived changes (top-level only, excludes `archive/`):
`{change-dir}` is the directory basename (e.g. `us-{id}-{slug}` for changes derived from user stories or `{slug}` for explorations).

```bash
find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -name 'us-*' | sort
find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -not -name 'archive' | sort
```

If empty, report a blocker and stop.
Expand All @@ -14,7 +15,7 @@
gh pr list --repo {owner}/{repo} --state merged --json title,headRefName,mergedAt,number --jq 'sort_by(.mergedAt) | .[] | {name: .title, sourceRefName: .headRefName, mergedAt: .mergedAt, pullRequestId: .number}'
```

Match each change to a completed PR using its ID and slug as search hints:
Match each change to a completed PR using its title as search hints:
- No match → skip (record as blocked: `no merged PR found`).
- One match → eligible.
- Multiple matches → ask the user which PR belongs to that change.
Expand All @@ -27,7 +28,7 @@

```text
Oldest unarchived merged change found:
ID: us-{id}-{slug}
ID: {change-dir}
Title: {title from resolved PR}
PR ID: {pullRequestId}
Merged: {mergedAt}
Expand All @@ -40,7 +41,7 @@
4. **Archive the change**

```bash
git checkout -b archive/{id}-{slug}
git checkout -b archive/{change-dir}
```

Load `@openspec-archive-change` skill and follow it to archive the change.
Expand All @@ -53,15 +54,15 @@

```bash
git add -A
git commit -m "archive: {title} ({id})"
git push origin archive/{id}-{slug}
git commit -m "archive: {title}"
git push origin archive/{change-dir}

gh pr create \
--repo {owner}/{repo} \
--base main \
--head archive/{id}-{slug} \
--title "archive: {title} ({id})" \
--body "Archive SDD artifacts for {id} after merge."
--head archive/{change-dir} \
--title "archive: {title}" \
--body "Archive SDD artifacts for {change-dir} after merge."
```

If work was stashed in step 1, restore it after the PR is created unless the user opts out.
Expand All @@ -73,7 +74,7 @@
```text
Archive complete

Change ID: us-{id}-{slug}
Change ID: {change-dir}
Title: {title}
Original PR: {original-pr-link}
Archive PR: {archive-pr-link}
Expand Down
15 changes: 8 additions & 7 deletions src/presets/ob-archive-none.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
2. **Find the oldest unarchived change**

List unarchived changes (top-level only, excludes `archive/`):
`{change-dir}` is the directory basename (e.g. `us-{id}-{slug}` for changes derived from user stories or `{slug}` for explorations).

```bash
find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -name 'us-*' | sort
find "$REPO_ROOT/openspec/changes" -mindepth 1 -maxdepth 1 -type d -not -name 'archive' | sort
```

If empty, report a blocker and stop. Otherwise select the **oldest** change (by directory creation/sort order) as the candidate.
Expand All @@ -16,7 +17,7 @@

```text
Oldest unarchived change found:
ID: us-{id}-{slug}
ID: {change-dir}
Title: {title from proposal.md}

Proceed with archiving? [yes/no]
Expand All @@ -27,7 +28,7 @@
4. **Archive the change**

```bash
git checkout -b archive/{id}-{slug}
git checkout -b archive/{change-dir}
```

Load `@openspec-archive-change` skill and follow it to archive the change.
Expand All @@ -40,10 +41,10 @@

```bash
git add -A
git commit -m "archive: {title} ({id})"
git commit -m "archive: {title}"
```

No PR is created in this mode. Leave the `archive/{id}-{slug}` branch for the user to merge or push manually if they choose.
No PR is created in this mode. Leave the `archive/{change-dir}` branch for the user to merge or push manually if they choose.

If work was stashed in step 1, restore it after the commit unless the user opts out.

Expand All @@ -54,9 +55,9 @@
```text
Archive complete

Change ID: us-{id}-{slug}
Change ID: {change-dir}
Title: {title}
Archive branch: archive/{id}-{slug}
Archive branch: archive/{change-dir}

Documentation updates:
- ARCHITECTURE.md: {count} changes applied
Expand Down