tack-agents 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.
- tack_agents-0.1.0/.gitignore +7 -0
- tack_agents-0.1.0/LICENSE +21 -0
- tack_agents-0.1.0/PKG-INFO +80 -0
- tack_agents-0.1.0/README.md +59 -0
- tack_agents-0.1.0/docs/design.md +724 -0
- tack_agents-0.1.0/docs/logo-dark.svg +20 -0
- tack_agents-0.1.0/docs/logo-light.svg +20 -0
- tack_agents-0.1.0/pyproject.toml +62 -0
- tack_agents-0.1.0/src/tack/__init__.py +4 -0
- tack_agents-0.1.0/src/tack/__main__.py +5 -0
- tack_agents-0.1.0/src/tack/cli.py +479 -0
- tack_agents-0.1.0/src/tack/commit.py +173 -0
- tack_agents-0.1.0/src/tack/config.py +494 -0
- tack_agents-0.1.0/src/tack/deploy.py +183 -0
- tack_agents-0.1.0/src/tack/doctor/__init__.py +75 -0
- tack_agents-0.1.0/src/tack/doctor/findings.py +19 -0
- tack_agents-0.1.0/src/tack/doctor/hooks.py +245 -0
- tack_agents-0.1.0/src/tack/doctor/instructions.py +183 -0
- tack_agents-0.1.0/src/tack/doctor/project_skills.py +81 -0
- tack_agents-0.1.0/src/tack/doctor/projects.py +75 -0
- tack_agents-0.1.0/src/tack/doctor/skills.py +176 -0
- tack_agents-0.1.0/src/tack/edit.py +321 -0
- tack_agents-0.1.0/src/tack/git.py +45 -0
- tack_agents-0.1.0/src/tack/outdated.py +136 -0
- tack_agents-0.1.0/src/tack/scaffold/__init__.py +56 -0
- tack_agents-0.1.0/src/tack/scaffold/hooks.py +225 -0
- tack_agents-0.1.0/src/tack/scaffold/instructions.py +97 -0
- tack_agents-0.1.0/src/tack/scaffold/skills.py +108 -0
- tack_agents-0.1.0/src/tack/scaffold/writer.py +163 -0
- tack_agents-0.1.0/src/tack/sources.py +249 -0
- tack_agents-0.1.0/src/tack/status.py +114 -0
- tack_agents-0.1.0/src/tack/sync.py +289 -0
- tack_agents-0.1.0/src/tack/text.py +78 -0
- tack_agents-0.1.0/src/tack/tui/__init__.py +17 -0
- tack_agents-0.1.0/src/tack/tui/app.py +362 -0
- tack_agents-0.1.0/src/tack/tui/dialogs.py +205 -0
- tack_agents-0.1.0/src/tack/tui/render.py +187 -0
- tack_agents-0.1.0/src/tack/update.py +54 -0
- tack_agents-0.1.0/tests/__init__.py +0 -0
- tack_agents-0.1.0/tests/conftest.py +38 -0
- tack_agents-0.1.0/tests/helpers.py +95 -0
- tack_agents-0.1.0/tests/test_cli.py +398 -0
- tack_agents-0.1.0/tests/test_commit.py +239 -0
- tack_agents-0.1.0/tests/test_config.py +179 -0
- tack_agents-0.1.0/tests/test_deploy.py +158 -0
- tack_agents-0.1.0/tests/test_doctor_hooks.py +221 -0
- tack_agents-0.1.0/tests/test_doctor_instructions.py +148 -0
- tack_agents-0.1.0/tests/test_doctor_project_skills.py +81 -0
- tack_agents-0.1.0/tests/test_doctor_skills.py +215 -0
- tack_agents-0.1.0/tests/test_edit.py +345 -0
- tack_agents-0.1.0/tests/test_formula.py +50 -0
- tack_agents-0.1.0/tests/test_lock.py +76 -0
- tack_agents-0.1.0/tests/test_outdated.py +142 -0
- tack_agents-0.1.0/tests/test_projects.py +70 -0
- tack_agents-0.1.0/tests/test_scaffold.py +372 -0
- tack_agents-0.1.0/tests/test_sources.py +125 -0
- tack_agents-0.1.0/tests/test_status.py +83 -0
- tack_agents-0.1.0/tests/test_sync.py +244 -0
- tack_agents-0.1.0/tests/test_tui.py +257 -0
- tack_agents-0.1.0/tests/test_update.py +112 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 John Foland
|
|
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.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: tack-agents
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Keep your agent skills deployed identically to Claude Code and Codex from one manifest, and audit projects so either agent sees the same instructions, skills and hooks.
|
|
5
|
+
Project-URL: Homepage, https://github.com/chocs-cat/tack
|
|
6
|
+
Project-URL: Issues, https://github.com/chocs-cat/tack/issues
|
|
7
|
+
Author-email: John Foland <john@johnfoland.net>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: agents,claude,cli,codex,skills
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: MacOS
|
|
15
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Topic :: Software Development
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Requires-Dist: textual>=8.2.8
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
<picture>
|
|
23
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/chocs-cat/tack/master/docs/logo-dark.svg">
|
|
24
|
+
<img alt="tack" src="https://raw.githubusercontent.com/chocs-cat/tack/master/docs/logo-light.svg" height="64">
|
|
25
|
+
</picture>
|
|
26
|
+
|
|
27
|
+
Keep your coding agents' skills deployed identically to Claude Code and Codex
|
|
28
|
+
from one manifest of sources — your own skill repos and pinned third-party
|
|
29
|
+
ones — and audit your projects so either agent sees the same instructions,
|
|
30
|
+
skills, and hooks.
|
|
31
|
+
|
|
32
|
+
`tack sync` deploys skills from the manifest's sources, `tack status` shows
|
|
33
|
+
what is where, `tack outdated` and `tack update` track upstream, `tack add`
|
|
34
|
+
and `tack remove` edit the manifest, `tack doctor` audits, and
|
|
35
|
+
`tack scaffold` applies the fixes it suggests. A `path` source with
|
|
36
|
+
`autocommit = true` (and `autopush`) has its skill edits committed, and
|
|
37
|
+
pushed, whenever a command that changes things runs. A bare `tack` opens a
|
|
38
|
+
TUI over all of it: Skills, Sources and Doctor tabs, with every action
|
|
39
|
+
previewed before it runs. [The design](docs/design.md) has the details.
|
|
40
|
+
|
|
41
|
+
## Install
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
brew install chocs-cat/tap/tack
|
|
45
|
+
# or
|
|
46
|
+
uv tool install tack-agents # or: pipx install tack-agents
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
macOS and Linux, Python 3.11 or later, and git.
|
|
50
|
+
|
|
51
|
+
## Use
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
tack # the TUI
|
|
55
|
+
tack add https://github.com/cloudflare/skills.git --skill wrangler
|
|
56
|
+
tack sync --dry-run # what would change
|
|
57
|
+
tack sync # fetch pinned sources, link skills into every harness
|
|
58
|
+
tack status # sources, pins, and which skills are linked where
|
|
59
|
+
tack outdated --diff # what upstream changed in the skills you deploy
|
|
60
|
+
tack update cloudflare # take it: move the pin, then sync
|
|
61
|
+
tack remove cloudflare # its table, pin, links and checkout
|
|
62
|
+
tack doctor # audit the harnesses and the projects under projects.roots
|
|
63
|
+
tack doctor --json # for scripts; exit 1 when there is an error or warning
|
|
64
|
+
tack scaffold hooks ~/Code/app --dry-run # the diff a doctor fix would make
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Development
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
uv sync
|
|
71
|
+
uv run tack … # the checkout, not an installed copy
|
|
72
|
+
uv run pytest && uv run ruff check . && uv run ruff format --check . && uv run ty check
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
[CONTRIBUTING.md](CONTRIBUTING.md) has the commit convention and how releases
|
|
76
|
+
are cut.
|
|
77
|
+
|
|
78
|
+
## License
|
|
79
|
+
|
|
80
|
+
MIT; see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<picture>
|
|
2
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/chocs-cat/tack/master/docs/logo-dark.svg">
|
|
3
|
+
<img alt="tack" src="https://raw.githubusercontent.com/chocs-cat/tack/master/docs/logo-light.svg" height="64">
|
|
4
|
+
</picture>
|
|
5
|
+
|
|
6
|
+
Keep your coding agents' skills deployed identically to Claude Code and Codex
|
|
7
|
+
from one manifest of sources — your own skill repos and pinned third-party
|
|
8
|
+
ones — and audit your projects so either agent sees the same instructions,
|
|
9
|
+
skills, and hooks.
|
|
10
|
+
|
|
11
|
+
`tack sync` deploys skills from the manifest's sources, `tack status` shows
|
|
12
|
+
what is where, `tack outdated` and `tack update` track upstream, `tack add`
|
|
13
|
+
and `tack remove` edit the manifest, `tack doctor` audits, and
|
|
14
|
+
`tack scaffold` applies the fixes it suggests. A `path` source with
|
|
15
|
+
`autocommit = true` (and `autopush`) has its skill edits committed, and
|
|
16
|
+
pushed, whenever a command that changes things runs. A bare `tack` opens a
|
|
17
|
+
TUI over all of it: Skills, Sources and Doctor tabs, with every action
|
|
18
|
+
previewed before it runs. [The design](docs/design.md) has the details.
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
brew install chocs-cat/tap/tack
|
|
24
|
+
# or
|
|
25
|
+
uv tool install tack-agents # or: pipx install tack-agents
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
macOS and Linux, Python 3.11 or later, and git.
|
|
29
|
+
|
|
30
|
+
## Use
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
tack # the TUI
|
|
34
|
+
tack add https://github.com/cloudflare/skills.git --skill wrangler
|
|
35
|
+
tack sync --dry-run # what would change
|
|
36
|
+
tack sync # fetch pinned sources, link skills into every harness
|
|
37
|
+
tack status # sources, pins, and which skills are linked where
|
|
38
|
+
tack outdated --diff # what upstream changed in the skills you deploy
|
|
39
|
+
tack update cloudflare # take it: move the pin, then sync
|
|
40
|
+
tack remove cloudflare # its table, pin, links and checkout
|
|
41
|
+
tack doctor # audit the harnesses and the projects under projects.roots
|
|
42
|
+
tack doctor --json # for scripts; exit 1 when there is an error or warning
|
|
43
|
+
tack scaffold hooks ~/Code/app --dry-run # the diff a doctor fix would make
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Development
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
uv sync
|
|
50
|
+
uv run tack … # the checkout, not an installed copy
|
|
51
|
+
uv run pytest && uv run ruff check . && uv run ruff format --check . && uv run ty check
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
[CONTRIBUTING.md](CONTRIBUTING.md) has the commit convention and how releases
|
|
55
|
+
are cut.
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
|
|
59
|
+
MIT; see [LICENSE](LICENSE).
|