issy 0.5.4 → 0.5.5
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 +238 -0
- package/package.json +4 -4
package/README.md
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/issy-logo.png" alt="issy" width="600" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/issy"><img src="https://img.shields.io/npm/v/issy.svg" alt="npm version"></a>
|
|
7
|
+
<a href="https://www.npmjs.com/package/issy"><img src="https://img.shields.io/npm/dm/issy.svg" alt="npm downloads"></a>
|
|
8
|
+
<a href="https://github.com/miketromba/issy/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/issy.svg" alt="license"></a>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<strong>AI-native issue tracking.</strong><br>
|
|
13
|
+
Tell your coding assistant what to track. It handles the rest.
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## How It Works
|
|
19
|
+
|
|
20
|
+
issy gives AI coding assistants a skill for managing issues. Just talk naturally:
|
|
21
|
+
|
|
22
|
+
> "Create a bug for the login redirect issue, high priority"
|
|
23
|
+
|
|
24
|
+
> "What issues are open?"
|
|
25
|
+
|
|
26
|
+
> "Close the auth bug, it's fixed"
|
|
27
|
+
|
|
28
|
+
The assistant creates, searches, updates, and closes issues for you. Issues are stored as markdown files in `.issy/issues/` — readable, diffable, and committed with your code.
|
|
29
|
+
|
|
30
|
+
## Install the Skill
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx skills add miketromba/issy
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
That's it. Your AI assistant can now manage issues in any repo.
|
|
37
|
+
|
|
38
|
+
## Why Markdown?
|
|
39
|
+
|
|
40
|
+
- **Portable** — No vendor lock-in, no database, no accounts
|
|
41
|
+
- **Git-native** — Issues travel with your code, appear in diffs and PRs
|
|
42
|
+
- **Transparent** — AI agents can read and write issues directly
|
|
43
|
+
- **Works offline** — No network dependency
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Installing `issy`
|
|
48
|
+
|
|
49
|
+
`issy` can be installed both globally **and** in your repository. We recommend installing both ways so you can take advantage of fast, convenient workflows *and* a stable version for all developers in your repository.
|
|
50
|
+
|
|
51
|
+
### Global installation
|
|
52
|
+
|
|
53
|
+
A global install of `issy` brings flexibility and speed to your local workflows.
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# npm
|
|
57
|
+
npm install issy --global
|
|
58
|
+
|
|
59
|
+
# pnpm
|
|
60
|
+
pnpm add issy --global
|
|
61
|
+
|
|
62
|
+
# yarn
|
|
63
|
+
yarn global add issy
|
|
64
|
+
|
|
65
|
+
# bun
|
|
66
|
+
bun install issy --global
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Once installed globally, you can run commands from your terminal:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
issy # Start the web UI
|
|
73
|
+
issy list # List open issues (roadmap order)
|
|
74
|
+
issy next # Show next issue to work on
|
|
75
|
+
issy create --title "Bug" # Create issue
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Repository installation
|
|
79
|
+
|
|
80
|
+
When collaborating with other developers, it's a good idea to pin versions. Add `issy` as a `devDependency` in the root of your repository:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# npm
|
|
84
|
+
npm install issy --save-dev
|
|
85
|
+
|
|
86
|
+
# pnpm
|
|
87
|
+
pnpm add issy --save-dev --ignore-workspace-root-check
|
|
88
|
+
|
|
89
|
+
# yarn
|
|
90
|
+
yarn add issy --dev --ignore-workspace-root-check
|
|
91
|
+
|
|
92
|
+
# bun
|
|
93
|
+
bun add issy --dev
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
You can continue to use your global installation to run commands. Global `issy` will defer to the local version if it exists.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Usage
|
|
101
|
+
|
|
102
|
+
### Web UI
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
issy
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Opens a local read-only UI at `http://localhost:1554` for browsing issues.
|
|
109
|
+
|
|
110
|
+
<p align="center">
|
|
111
|
+
<img src="assets/web-ui-screenshot.png" alt="issy web UI" width="800" />
|
|
112
|
+
</p>
|
|
113
|
+
|
|
114
|
+
### CLI
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
issy init # Create .issy/issues/ directory
|
|
118
|
+
issy init --seed # Create with a welcome issue
|
|
119
|
+
issy list # List open issues (roadmap order)
|
|
120
|
+
issy next # Show next issue to work on
|
|
121
|
+
issy search "auth" # Fuzzy search
|
|
122
|
+
issy read 0001 # View issue
|
|
123
|
+
issy create --title "Bug" --after 0002 # Create issue after #0002
|
|
124
|
+
issy update 0001 --before 0003 # Reposition in roadmap
|
|
125
|
+
issy close 0001 # Close issue
|
|
126
|
+
issy reopen 0001 --after 0004 # Reopen and place in roadmap
|
|
127
|
+
issy migrate # Migrate from .issues/ to .issy/
|
|
128
|
+
issy --version # Check version
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Run `issy help` for full options.
|
|
132
|
+
|
|
133
|
+
### Roadmap Ordering
|
|
134
|
+
|
|
135
|
+
Every open issue has a position in the **roadmap** — a strict ordering that reflects logical dependencies. When creating or reopening an issue while others are open, you must specify where it fits:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
issy create --title "Add auth" --after 0001 # Insert after issue #0001
|
|
139
|
+
issy create --title "Fix bug" --before 0003 # Insert before issue #0003
|
|
140
|
+
issy create --title "Urgent" --first # Insert at the beginning
|
|
141
|
+
issy create --title "Backlog item" --last # Insert at the end
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
`issy next` always returns the first open issue in roadmap order — the next thing to work on.
|
|
145
|
+
|
|
146
|
+
`issy list` sorts by roadmap order by default. Other sort options are available:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
issy list --sort priority # Sort by priority instead
|
|
150
|
+
issy list --sort created # Sort by creation date
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### On-Close Hook
|
|
154
|
+
|
|
155
|
+
Create a `.issy/on_close.md` file to inject context after every successful close. The file contents are printed to stdout, making them visible to AI agents in their command output. Use this for post-close reminders like updating documentation.
|
|
156
|
+
|
|
157
|
+
### Monorepo Support
|
|
158
|
+
|
|
159
|
+
issy automatically walks up from the current directory to find an existing `.issy/` folder. This means you can run `npx issy` from any subdirectory (e.g., `packages/foo/`) and it will find and use the repo root's issues.
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# In a monorepo, issues are typically at the root:
|
|
163
|
+
my-monorepo/
|
|
164
|
+
.issy/ # ← issy finds this automatically
|
|
165
|
+
issues/
|
|
166
|
+
on_close.md
|
|
167
|
+
packages/
|
|
168
|
+
frontend/ # ← works from here
|
|
169
|
+
backend/ # ← or here
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Migration from v0.4
|
|
173
|
+
|
|
174
|
+
If upgrading from v0.4.x (which used `.issues/`), run:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
issy migrate
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
This moves your issues to `.issy/issues/` and assigns roadmap order to all open issues.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Issue Format
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
---
|
|
188
|
+
title: Fix login redirect
|
|
189
|
+
description: Users get stuck after OAuth callback
|
|
190
|
+
priority: high
|
|
191
|
+
scope: medium
|
|
192
|
+
type: bug
|
|
193
|
+
status: open
|
|
194
|
+
order: a0
|
|
195
|
+
created: 2025-01-15T10:30:00
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Problem
|
|
199
|
+
|
|
200
|
+
After OAuth login, users are redirected to `/callback` but the
|
|
201
|
+
session isn't established, causing a redirect loop.
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
| Field | Values |
|
|
205
|
+
|-------|--------|
|
|
206
|
+
| `priority` | `high`, `medium`, `low` |
|
|
207
|
+
| `scope` | `small`, `medium`, `large` (optional) |
|
|
208
|
+
| `type` | `bug`, `improvement` |
|
|
209
|
+
| `status` | `open`, `closed` |
|
|
210
|
+
| `labels` | comma-separated (optional) |
|
|
211
|
+
| `order` | fractional index key (managed by issy) |
|
|
212
|
+
|
|
213
|
+
## Configuration
|
|
214
|
+
|
|
215
|
+
| Variable | Description | Default |
|
|
216
|
+
|----------|-------------|---------|
|
|
217
|
+
| `ISSY_DIR` | Issy directory path | `./.issy` |
|
|
218
|
+
| `ISSUES_PORT` | UI server port | `1554` |
|
|
219
|
+
|
|
220
|
+
<details>
|
|
221
|
+
<summary><strong>Development</strong></summary>
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
packages/
|
|
225
|
+
cli/ → CLI (issy)
|
|
226
|
+
core/ → Storage library (@miketromba/issy-core)
|
|
227
|
+
ui/ → Web UI + API (@miketromba/issy-app)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
bun install && bun run dev
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
</details>
|
|
235
|
+
|
|
236
|
+
## License
|
|
237
|
+
|
|
238
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "issy",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "AI-native issue tracking. Markdown files in .issues/, managed by your coding assistant.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"build": "bun build src/main.ts src/cli.ts src/update-checker.ts --outdir dist --target node --format esm --external @miketromba/issy-app",
|
|
32
|
-
"prepublishOnly": "bun run build",
|
|
32
|
+
"prepublishOnly": "cp ../../README.md . && bun run build",
|
|
33
33
|
"cli": "bun src/cli.ts",
|
|
34
34
|
"test": "bun test",
|
|
35
35
|
"lint": "biome check src bin"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@miketromba/issy-app": "^0.5.
|
|
39
|
-
"@miketromba/issy-core": "^0.5.
|
|
38
|
+
"@miketromba/issy-app": "^0.5.5",
|
|
39
|
+
"@miketromba/issy-core": "^0.5.5",
|
|
40
40
|
"update-notifier": "^7.3.1"
|
|
41
41
|
}
|
|
42
42
|
}
|