workrail 0.1.0__tar.gz
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.
- workrail-0.1.0/LICENSE +21 -0
- workrail-0.1.0/PKG-INFO +227 -0
- workrail-0.1.0/README.md +199 -0
- workrail-0.1.0/pyproject.toml +56 -0
- workrail-0.1.0/setup.cfg +4 -0
- workrail-0.1.0/src/workrail/__init__.py +3 -0
- workrail-0.1.0/src/workrail/__main__.py +9 -0
- workrail-0.1.0/src/workrail/cli.py +216 -0
- workrail-0.1.0/src/workrail/config.py +30 -0
- workrail-0.1.0/src/workrail/project.py +45 -0
- workrail-0.1.0/src/workrail/report.py +111 -0
- workrail-0.1.0/src/workrail/safety.py +48 -0
- workrail-0.1.0/src/workrail/skill.py +76 -0
- workrail-0.1.0/src/workrail/skills/workrail-agent/SKILL.md +275 -0
- workrail-0.1.0/src/workrail/stats.py +344 -0
- workrail-0.1.0/src/workrail/storage.py +354 -0
- workrail-0.1.0/src/workrail/web.py +860 -0
- workrail-0.1.0/src/workrail.egg-info/PKG-INFO +227 -0
- workrail-0.1.0/src/workrail.egg-info/SOURCES.txt +30 -0
- workrail-0.1.0/src/workrail.egg-info/dependency_links.txt +1 -0
- workrail-0.1.0/src/workrail.egg-info/entry_points.txt +2 -0
- workrail-0.1.0/src/workrail.egg-info/requires.txt +5 -0
- workrail-0.1.0/src/workrail.egg-info/top_level.txt +1 -0
- workrail-0.1.0/tests/test_cli.py +120 -0
- workrail-0.1.0/tests/test_project.py +11 -0
- workrail-0.1.0/tests/test_quality.py +46 -0
- workrail-0.1.0/tests/test_report.py +40 -0
- workrail-0.1.0/tests/test_safety.py +61 -0
- workrail-0.1.0/tests/test_skill_install.py +103 -0
- workrail-0.1.0/tests/test_stats.py +243 -0
- workrail-0.1.0/tests/test_storage.py +114 -0
- workrail-0.1.0/tests/test_web.py +212 -0
workrail-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 xusheng
|
|
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 deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
workrail-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: workrail
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A local-first workstream journal for developers and AI coding agents.
|
|
5
|
+
Author: xusheng
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/xu-sheng-dev/workrail
|
|
8
|
+
Project-URL: Repository, https://github.com/xu-sheng-dev/workrail.git
|
|
9
|
+
Project-URL: Issues, https://github.com/xu-sheng-dev/workrail/issues
|
|
10
|
+
Keywords: developer-tools,journal,cli,sqlite,agent
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Software Development
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: build; extra == "dev"
|
|
25
|
+
Requires-Dist: pytest; extra == "dev"
|
|
26
|
+
Requires-Dist: ruff; extra == "dev"
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
# WorkRail
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+

|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
WorkRail is a local-first workstream journal for developers and AI coding agents.
|
|
36
|
+
|
|
37
|
+
It records the useful trail around meaningful work: what started, what changed, what got
|
|
38
|
+
blocked, what should happen next, and how the work finished. WorkRail is intentionally
|
|
39
|
+
smaller than a task board. It stores structured progress events in a local SQLite database,
|
|
40
|
+
then turns them into reports, JSON state, and a read-only dashboard.
|
|
41
|
+
|
|
42
|
+
## Why WorkRail
|
|
43
|
+
|
|
44
|
+
- Keep a compact timeline for work that spans more than one command or message.
|
|
45
|
+
- Let AI coding agents leave useful progress notes without dumping full transcripts.
|
|
46
|
+
- Generate daily and weekly Markdown reports from structured events.
|
|
47
|
+
- Inspect the current workstream from scripts with JSON output.
|
|
48
|
+
- Keep data local by default, with no service account or hosted backend required.
|
|
49
|
+
|
|
50
|
+
## Install
|
|
51
|
+
|
|
52
|
+
Install from PyPI:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
pip install workrail
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If the package has not been published yet, install from a local checkout:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pip install -e .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Or install directly from GitHub:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
python -m pip install "git+https://github.com/xu-sheng-dev/workrail.git"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
For development:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
python -m venv .venv
|
|
74
|
+
.venv\Scripts\Activate.ps1
|
|
75
|
+
pip install -e ".[dev]"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
On macOS or Linux:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
python -m venv .venv
|
|
82
|
+
source .venv/bin/activate
|
|
83
|
+
pip install -e ".[dev]"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
WorkRail has no runtime dependencies outside the Python standard library.
|
|
87
|
+
|
|
88
|
+
## Quick Start
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
workrail start "Fix token expiry handling"
|
|
92
|
+
workrail checkpoint "Found a timestamp unit mismatch"
|
|
93
|
+
workrail note "Backend returns seconds while frontend expects milliseconds"
|
|
94
|
+
workrail next "Verify with local mock data"
|
|
95
|
+
workrail done "Fixed the conversion and passed related tests"
|
|
96
|
+
workrail report today
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
WorkRail keeps one current rail. If another rail is already active, `start` fails by
|
|
100
|
+
default so you do not accidentally mix two workstreams. Finish it, abandon it, or
|
|
101
|
+
intentionally replace it:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
workrail abandon "No longer current"
|
|
105
|
+
workrail start "New task" --force
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Use `--help` to inspect the CLI:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
workrail --help
|
|
112
|
+
workrail start --help
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Agent Usage
|
|
116
|
+
|
|
117
|
+
WorkRail is designed to be easy for coding agents to use while they work.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
workrail current --json
|
|
121
|
+
workrail start "Improve test coverage" --source agent --project auto --quiet
|
|
122
|
+
workrail checkpoint "Added storage regression tests" --source agent --quiet
|
|
123
|
+
workrail done "Implemented tests and verified with pytest" --source agent --quiet
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The bundled skill gives agents a small policy for when to log progress, when to record a
|
|
127
|
+
blocker, and when to stop. Install it into a supported agent skills directory:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
workrail install-skill --agent codex
|
|
131
|
+
workrail install-skill --agent claude
|
|
132
|
+
workrail install-skill --agent opencode
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
You can also install to a custom directory:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
workrail install-skill --target ./installed-skills --force
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
With `--agent auto`, WorkRail installs into the only existing supported agent directory.
|
|
142
|
+
If multiple supported directories exist, specify `--agent` or `--target`.
|
|
143
|
+
|
|
144
|
+
## Local Dashboard
|
|
145
|
+
|
|
146
|
+
Start the read-only dashboard:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
workrail web
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Open:
|
|
153
|
+
|
|
154
|
+
```text
|
|
155
|
+
http://127.0.0.1:18765
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The dashboard binds to `127.0.0.1` by default. Binding to another host can expose local
|
|
159
|
+
work data on your network.
|
|
160
|
+
|
|
161
|
+
## Commands
|
|
162
|
+
|
|
163
|
+
| Command | Purpose |
|
|
164
|
+
| --- | --- |
|
|
165
|
+
| `start` | Start a new rail. |
|
|
166
|
+
| `note` or `n` | Record a note on the current rail. |
|
|
167
|
+
| `checkpoint` | Record meaningful progress. |
|
|
168
|
+
| `block` | Mark the current rail as blocked and record why. |
|
|
169
|
+
| `next` | Record the next step. |
|
|
170
|
+
| `done` | Complete the current rail. |
|
|
171
|
+
| `abandon` | Stop tracking the current rail without marking it done. |
|
|
172
|
+
| `current` | Show the current rail, optionally as JSON. |
|
|
173
|
+
| `today` | Show today's workstream. |
|
|
174
|
+
| `report` | Generate a Markdown report for `today` or `week`. |
|
|
175
|
+
| `web` | Start the local dashboard. |
|
|
176
|
+
| `install-skill` | Install the bundled agent skill. |
|
|
177
|
+
|
|
178
|
+
## Data And Privacy
|
|
179
|
+
|
|
180
|
+
WorkRail stores data in a local SQLite database. Set `WORKRAIL_DB` to choose the database
|
|
181
|
+
file:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
set WORKRAIL_DB=C:\temp\workrail.db
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
On macOS or Linux:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
export WORKRAIL_DB=/tmp/workrail.db
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Without `WORKRAIL_DB`, WorkRail uses the standard local app data directory:
|
|
194
|
+
|
|
195
|
+
| Platform | Default location |
|
|
196
|
+
| --- | --- |
|
|
197
|
+
| Windows | `%LOCALAPPDATA%\WorkRail\workrail.db` |
|
|
198
|
+
| macOS | `~/Library/Application Support/workrail/workrail.db` |
|
|
199
|
+
| Linux | `$XDG_DATA_HOME/workrail/workrail.db` or `~/.local/share/workrail/workrail.db` |
|
|
200
|
+
|
|
201
|
+
WorkRail includes basic safeguards that reject common secret-shaped content such as token
|
|
202
|
+
assignments, bearer tokens, private keys, and AWS access keys. Treat this as a guardrail,
|
|
203
|
+
not a substitute for reviewing what you ask humans or agents to record.
|
|
204
|
+
|
|
205
|
+
## Project Status
|
|
206
|
+
|
|
207
|
+
WorkRail is alpha software. The first release focuses on a small, stable core:
|
|
208
|
+
|
|
209
|
+
- Local SQLite storage.
|
|
210
|
+
- A compact CLI.
|
|
211
|
+
- Agent-friendly JSON output.
|
|
212
|
+
- Daily and weekly Markdown reports.
|
|
213
|
+
- A read-only local dashboard.
|
|
214
|
+
- A bundled agent skill and installer command.
|
|
215
|
+
|
|
216
|
+
## Development
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
pip install -e ".[dev]"
|
|
220
|
+
ruff check .
|
|
221
|
+
pytest
|
|
222
|
+
python -m build
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## License
|
|
226
|
+
|
|
227
|
+
WorkRail is released under the MIT License. See `LICENSE`.
|
workrail-0.1.0/README.md
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# WorkRail
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
WorkRail is a local-first workstream journal for developers and AI coding agents.
|
|
8
|
+
|
|
9
|
+
It records the useful trail around meaningful work: what started, what changed, what got
|
|
10
|
+
blocked, what should happen next, and how the work finished. WorkRail is intentionally
|
|
11
|
+
smaller than a task board. It stores structured progress events in a local SQLite database,
|
|
12
|
+
then turns them into reports, JSON state, and a read-only dashboard.
|
|
13
|
+
|
|
14
|
+
## Why WorkRail
|
|
15
|
+
|
|
16
|
+
- Keep a compact timeline for work that spans more than one command or message.
|
|
17
|
+
- Let AI coding agents leave useful progress notes without dumping full transcripts.
|
|
18
|
+
- Generate daily and weekly Markdown reports from structured events.
|
|
19
|
+
- Inspect the current workstream from scripts with JSON output.
|
|
20
|
+
- Keep data local by default, with no service account or hosted backend required.
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
Install from PyPI:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pip install workrail
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If the package has not been published yet, install from a local checkout:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install -e .
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Or install directly from GitHub:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
python -m pip install "git+https://github.com/xu-sheng-dev/workrail.git"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
For development:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
python -m venv .venv
|
|
46
|
+
.venv\Scripts\Activate.ps1
|
|
47
|
+
pip install -e ".[dev]"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
On macOS or Linux:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
python -m venv .venv
|
|
54
|
+
source .venv/bin/activate
|
|
55
|
+
pip install -e ".[dev]"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
WorkRail has no runtime dependencies outside the Python standard library.
|
|
59
|
+
|
|
60
|
+
## Quick Start
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
workrail start "Fix token expiry handling"
|
|
64
|
+
workrail checkpoint "Found a timestamp unit mismatch"
|
|
65
|
+
workrail note "Backend returns seconds while frontend expects milliseconds"
|
|
66
|
+
workrail next "Verify with local mock data"
|
|
67
|
+
workrail done "Fixed the conversion and passed related tests"
|
|
68
|
+
workrail report today
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
WorkRail keeps one current rail. If another rail is already active, `start` fails by
|
|
72
|
+
default so you do not accidentally mix two workstreams. Finish it, abandon it, or
|
|
73
|
+
intentionally replace it:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
workrail abandon "No longer current"
|
|
77
|
+
workrail start "New task" --force
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Use `--help` to inspect the CLI:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
workrail --help
|
|
84
|
+
workrail start --help
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Agent Usage
|
|
88
|
+
|
|
89
|
+
WorkRail is designed to be easy for coding agents to use while they work.
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
workrail current --json
|
|
93
|
+
workrail start "Improve test coverage" --source agent --project auto --quiet
|
|
94
|
+
workrail checkpoint "Added storage regression tests" --source agent --quiet
|
|
95
|
+
workrail done "Implemented tests and verified with pytest" --source agent --quiet
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
The bundled skill gives agents a small policy for when to log progress, when to record a
|
|
99
|
+
blocker, and when to stop. Install it into a supported agent skills directory:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
workrail install-skill --agent codex
|
|
103
|
+
workrail install-skill --agent claude
|
|
104
|
+
workrail install-skill --agent opencode
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
You can also install to a custom directory:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
workrail install-skill --target ./installed-skills --force
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
With `--agent auto`, WorkRail installs into the only existing supported agent directory.
|
|
114
|
+
If multiple supported directories exist, specify `--agent` or `--target`.
|
|
115
|
+
|
|
116
|
+
## Local Dashboard
|
|
117
|
+
|
|
118
|
+
Start the read-only dashboard:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
workrail web
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Open:
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
http://127.0.0.1:18765
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
The dashboard binds to `127.0.0.1` by default. Binding to another host can expose local
|
|
131
|
+
work data on your network.
|
|
132
|
+
|
|
133
|
+
## Commands
|
|
134
|
+
|
|
135
|
+
| Command | Purpose |
|
|
136
|
+
| --- | --- |
|
|
137
|
+
| `start` | Start a new rail. |
|
|
138
|
+
| `note` or `n` | Record a note on the current rail. |
|
|
139
|
+
| `checkpoint` | Record meaningful progress. |
|
|
140
|
+
| `block` | Mark the current rail as blocked and record why. |
|
|
141
|
+
| `next` | Record the next step. |
|
|
142
|
+
| `done` | Complete the current rail. |
|
|
143
|
+
| `abandon` | Stop tracking the current rail without marking it done. |
|
|
144
|
+
| `current` | Show the current rail, optionally as JSON. |
|
|
145
|
+
| `today` | Show today's workstream. |
|
|
146
|
+
| `report` | Generate a Markdown report for `today` or `week`. |
|
|
147
|
+
| `web` | Start the local dashboard. |
|
|
148
|
+
| `install-skill` | Install the bundled agent skill. |
|
|
149
|
+
|
|
150
|
+
## Data And Privacy
|
|
151
|
+
|
|
152
|
+
WorkRail stores data in a local SQLite database. Set `WORKRAIL_DB` to choose the database
|
|
153
|
+
file:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
set WORKRAIL_DB=C:\temp\workrail.db
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
On macOS or Linux:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
export WORKRAIL_DB=/tmp/workrail.db
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Without `WORKRAIL_DB`, WorkRail uses the standard local app data directory:
|
|
166
|
+
|
|
167
|
+
| Platform | Default location |
|
|
168
|
+
| --- | --- |
|
|
169
|
+
| Windows | `%LOCALAPPDATA%\WorkRail\workrail.db` |
|
|
170
|
+
| macOS | `~/Library/Application Support/workrail/workrail.db` |
|
|
171
|
+
| Linux | `$XDG_DATA_HOME/workrail/workrail.db` or `~/.local/share/workrail/workrail.db` |
|
|
172
|
+
|
|
173
|
+
WorkRail includes basic safeguards that reject common secret-shaped content such as token
|
|
174
|
+
assignments, bearer tokens, private keys, and AWS access keys. Treat this as a guardrail,
|
|
175
|
+
not a substitute for reviewing what you ask humans or agents to record.
|
|
176
|
+
|
|
177
|
+
## Project Status
|
|
178
|
+
|
|
179
|
+
WorkRail is alpha software. The first release focuses on a small, stable core:
|
|
180
|
+
|
|
181
|
+
- Local SQLite storage.
|
|
182
|
+
- A compact CLI.
|
|
183
|
+
- Agent-friendly JSON output.
|
|
184
|
+
- Daily and weekly Markdown reports.
|
|
185
|
+
- A read-only local dashboard.
|
|
186
|
+
- A bundled agent skill and installer command.
|
|
187
|
+
|
|
188
|
+
## Development
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
pip install -e ".[dev]"
|
|
192
|
+
ruff check .
|
|
193
|
+
pytest
|
|
194
|
+
python -m build
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## License
|
|
198
|
+
|
|
199
|
+
WorkRail is released under the MIT License. See `LICENSE`.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "workrail"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "A local-first workstream journal for developers and AI coding agents."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "xusheng" }
|
|
14
|
+
]
|
|
15
|
+
keywords = ["developer-tools", "journal", "cli", "sqlite", "agent"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"Environment :: Console",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.10",
|
|
22
|
+
"Programming Language :: Python :: 3.11",
|
|
23
|
+
"Programming Language :: Python :: 3.12",
|
|
24
|
+
"Programming Language :: Python :: 3.13",
|
|
25
|
+
"Topic :: Software Development",
|
|
26
|
+
]
|
|
27
|
+
dependencies = []
|
|
28
|
+
|
|
29
|
+
[project.urls]
|
|
30
|
+
Homepage = "https://github.com/xu-sheng-dev/workrail"
|
|
31
|
+
Repository = "https://github.com/xu-sheng-dev/workrail.git"
|
|
32
|
+
Issues = "https://github.com/xu-sheng-dev/workrail/issues"
|
|
33
|
+
|
|
34
|
+
[project.optional-dependencies]
|
|
35
|
+
dev = [
|
|
36
|
+
"build",
|
|
37
|
+
"pytest",
|
|
38
|
+
"ruff",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[project.scripts]
|
|
42
|
+
workrail = "workrail.cli:main"
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.packages.find]
|
|
45
|
+
where = ["src"]
|
|
46
|
+
|
|
47
|
+
[tool.setuptools.package-data]
|
|
48
|
+
workrail = ["skills/workrail-agent/SKILL.md"]
|
|
49
|
+
|
|
50
|
+
[tool.ruff]
|
|
51
|
+
line-length = 100
|
|
52
|
+
target-version = "py310"
|
|
53
|
+
|
|
54
|
+
[tool.pytest.ini_options]
|
|
55
|
+
testpaths = ["tests"]
|
|
56
|
+
addopts = "-q"
|
workrail-0.1.0/setup.cfg
ADDED