Skip to content
This repository was archived by the owner on May 5, 2026. It is now read-only.

Commit de4a5e8

Browse files
feat: bootstrap workon-skill project
Co-Authored-By: Oz <oz-agent@warp.dev>
0 parents  commit de4a5e8

6 files changed

Lines changed: 420 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
markdown:
11+
name: Markdown
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
- uses: DavidAnson/markdownlint-cli2-action@v20
16+
with:
17+
globs: |
18+
**/*.md
19+
20+
skill-validation:
21+
name: Skill Validation
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/checkout@v4
25+
- uses: actions/setup-python@v5
26+
with:
27+
python-version: "3.12"
28+
- name: Validate SKILL frontmatter
29+
run: |
30+
python - <<'PY'
31+
from pathlib import Path
32+
import re
33+
import sys
34+
35+
skill_path = Path("SKILL.md")
36+
if not skill_path.exists():
37+
print("SKILL.md is missing")
38+
sys.exit(1)
39+
40+
text = skill_path.read_text(encoding="utf-8")
41+
match = re.match(r"^---\n(.*?)\n---\n", text, flags=re.DOTALL)
42+
if not match:
43+
print("SKILL.md must start with YAML frontmatter delimited by ---")
44+
sys.exit(1)
45+
46+
frontmatter = match.group(1)
47+
keys = {}
48+
for line in frontmatter.splitlines():
49+
if ":" not in line:
50+
continue
51+
k, v = line.split(":", 1)
52+
keys[k.strip()] = v.strip().strip('"').strip("'")
53+
54+
required = ["name", "description", "argument-hint"]
55+
missing = [k for k in required if not keys.get(k)]
56+
if missing:
57+
print(f"Missing required frontmatter keys: {', '.join(missing)}")
58+
sys.exit(1)
59+
60+
print("SKILL.md frontmatter validation passed")
61+
PY

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

AGENTS.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# AGENTS.md
2+
3+
Guidance for agents working in `workon-skill`.
4+
5+
## Scope
6+
7+
This repository contains a single portable skill spec for `/workon`.
8+
Keep changes focused on:
9+
10+
- `SKILL.md` behavior and wording
11+
- documentation clarity in `README.md`
12+
- portability across environments (no company-internal assumptions)
13+
14+
```mermaid
15+
flowchart TD
16+
S[Setup] --> W[Watch]
17+
W -->|PR merged| T[Teardown]
18+
W -->|PR open| W
19+
```
20+
21+
## Rules
22+
23+
- Keep branding generic and open-source friendly.
24+
- Prefer explicit idempotency and recovery behavior.
25+
- Do not hardcode environment-specific defaults when they can be discovered.
26+
- Keep human-facing updates concise and free of internal jargon.
27+
28+
## Validation
29+
30+
Before finishing, verify:
31+
32+
1. `SKILL.md` frontmatter is valid and complete.
33+
2. All references are generic (no company-internal feedback doc references).
34+
3. The setup/watch/teardown flow remains consistent and re-entrant.

LICENSE

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
PolyForm Shield License 1.0.0
2+
3+
Copyright (c) 2026 dotbrains
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 use,
7+
copy, modify, and distribute the Software, subject to the following conditions:
8+
9+
1. You may not use the Software to provide a product or service that competes
10+
with the Software or any product or service offered by the Licensor that
11+
includes the Software.
12+
13+
2. You may not remove or obscure any licensing, copyright, or other notices
14+
included in the Software.
15+
16+
3. If you distribute the Software or any derivative works, you must include a
17+
copy of this license.
18+
19+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25+
SOFTWARE.
26+
27+
For more information, see https://polyformproject.org/licenses/shield/1.0.0

README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# workon-skill
2+
3+
[![License: PolyForm Shield](https://img.shields.io/badge/License-PolyForm%20Shield-brightgreen.svg)](https://polyformproject.org/licenses/shield/1.0.0)
4+
5+
Portable `/workon` skill for Linear-driven ticket execution:
6+
7+
1. Create an isolated worktree.
8+
2. Implement and open a PR.
9+
3. Watch PR health in a loop (AI review comments, CI, merge conflicts).
10+
4. Tear down the worktree after merge.
11+
12+
```mermaid
13+
flowchart LR
14+
A[Setup] --> B[Implement + PR]
15+
B --> C[Watch Loop]
16+
C --> D{Merged?}
17+
D -- No --> C
18+
D -- Yes --> E[Teardown]
19+
```
20+
21+
## Repository layout
22+
23+
- `SKILL.md` — canonical skill definition
24+
- `AGENTS.md` — contributor guidance for AI and human maintainers
25+
26+
## Usage
27+
28+
One-line install:
29+
30+
```bash
31+
mkdir -p ~/.claude/skills/workon && curl -fsSL https://raw.githubusercontent.com/dotbrains/workon-skill/main/SKILL.md -o ~/.claude/skills/workon/SKILL.md
32+
```
33+
34+
Install `SKILL.md` in your skills path, then invoke:
35+
36+
```text
37+
/workon ENG-66
38+
```
39+
40+
The skill is idempotent and stateful, so repeated invocations resume from the current phase.
41+
42+
## Requirements
43+
44+
- `git`
45+
- `gh` CLI authenticated against your GitHub host
46+
- Linear access (MCP integration or equivalent API tooling)
47+
- Loop scheduler support (for 5-minute watch ticks)

0 commit comments

Comments
 (0)