planners 0.3.1__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.
- planners-0.3.1/.gitignore +18 -0
- planners-0.3.1/CHANGELOG.md +22 -0
- planners-0.3.1/LICENSE +22 -0
- planners-0.3.1/PKG-INFO +87 -0
- planners-0.3.1/README.md +76 -0
- planners-0.3.1/planners/__init__.py +13 -0
- planners-0.3.1/planners/cli.py +998 -0
- planners-0.3.1/planners/index.py +198 -0
- planners-0.3.1/planners/install.py +764 -0
- planners-0.3.1/planners/metadata.py +315 -0
- planners-0.3.1/planners/prompts/__init__.py +0 -0
- planners-0.3.1/planners/prompts/rules/__init__.py +0 -0
- planners-0.3.1/planners/prompts/rules/planners.md +180 -0
- planners-0.3.1/planners/prompts/skills/__init__.py +0 -0
- planners-0.3.1/planners/prompts/skills/add.md +111 -0
- planners-0.3.1/planners/prompts/skills/backfill.md +72 -0
- planners-0.3.1/planners/prompts/skills/close.md +81 -0
- planners-0.3.1/planners/prompts/skills/implement.md +118 -0
- planners-0.3.1/planners/prompts/skills/index.md +34 -0
- planners-0.3.1/planners/prompts/skills/pipeline.md +68 -0
- planners-0.3.1/planners/prompts/skills/update.md +59 -0
- planners-0.3.1/planners/py.typed +0 -0
- planners-0.3.1/planners/rule.py +51 -0
- planners-0.3.1/planners/skill.py +82 -0
- planners-0.3.1/planners/utils.py +113 -0
- planners-0.3.1/pyproject.toml +80 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.3.1] - 2026-06-28
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
### Deprecated
|
|
17
|
+
|
|
18
|
+
### Removed
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
### Security
|
planners-0.3.1/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ronald E. Robertson
|
|
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.
|
|
22
|
+
|
planners-0.3.1/PKG-INFO
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: planners
|
|
3
|
+
Version: 0.3.1
|
|
4
|
+
Project-URL: repository, https://github.com/gitronald/planners
|
|
5
|
+
Author-email: gitronald <gitronald@users.noreply.github.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Python: >=3.11
|
|
9
|
+
Requires-Dist: typer
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
|
|
12
|
+
# planners
|
|
13
|
+
|
|
14
|
+
Tools for managing plain-text plans with a documented schema, CLI commands, and an installable skillstub. It is designed to automate the mechanical components of generating and updating plain-text plans with standardized frontmatter for a given project. To facilitate tracking and reviewing plans, it also automatically generates and maintains an index table of all existing plans and their statuses.
|
|
15
|
+
|
|
16
|
+
These tools can be used manually via CLI commands, but they are largely intended to be used in conjunction with a language model. To guide usage by a language model, it ships with built-in [skills](https://agentskills.io/home) and [rules](https://code.claude.com/docs/en/memory#organize-rules-with-claude/rules/) that offer an opinionated approach to managing the full plan-file lifecycle and automating usage of this package. These skills and rules can be installed on your system via the CLI commands listed in the instructions below. Once installed, the rules will enforce conventions around how plan files are named, filled, and updated, and the skills will facilitate the addition, implementation, and closing out of plans, which includes the use of git branches and worktrees as specified by the user. While its core functionality and plan files are model-agnostic, some aspects of its built-in support (e.g., the skill files, rule files, and pre-commit validation hook) are currently only available for use with Claude Code.
|
|
17
|
+
|
|
18
|
+
## Getting Started
|
|
19
|
+
|
|
20
|
+
`planners` is designed to run as a **global uv tool**, but you can also install it as a per-project dependency.
|
|
21
|
+
|
|
22
|
+
1. **Install the CLI as a uv tool** (once per machine), so `planners` is on your `PATH`:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
uv tool install planners
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or (re)install from GitHub:
|
|
29
|
+
```bash
|
|
30
|
+
uv tool install --force git+https://github.com/gitronald/planners.git
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
2. **Install the global rules and skills** — This installs a global Claude Code rule file and a skills stub: the actual skills are included within this package and are accessible via the CLI; the skills stub just tells the model how to access them and allows you to use the skills via slash commands.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
planners install
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This will:
|
|
40
|
+
- (Re)generate the global `~/.claude/skills/planners/SKILL.md` holder and
|
|
41
|
+
`~/.claude/rules/planners.md` convention rule, which can change as the package version advances.
|
|
42
|
+
- Wire the `planners-validate` pre-commit hook into the project folder/repo's `.pre-commit-config.yaml` (registering it when `pre-commit` is available).
|
|
43
|
+
|
|
44
|
+
3. **Start planning** — scaffold your first plan using the `add` command.
|
|
45
|
+
|
|
46
|
+
This can be done within a Claude Code terminal via the installed `/planners` skill and its `add` subcommand:
|
|
47
|
+
```
|
|
48
|
+
/planners add my first feature
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Or via the CLI directly in your preferred terminal:
|
|
52
|
+
```bash
|
|
53
|
+
planners add my-first-feature --title "My first feature"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Either case will create a new plan file (`.planners/plans/000-my-first-feature/plan.md`) and refresh the index (`.planners/README.md`), though using the skill may produce a slightly different filename.
|
|
57
|
+
|
|
58
|
+
## Usage
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
planners add <slug> --title "<Title>" # scaffold a new plan
|
|
62
|
+
planners index . # regenerate .planners/README.md
|
|
63
|
+
planners validate .planners/plans # validate plan frontmatter
|
|
64
|
+
planners schema # show the plan metadata schema
|
|
65
|
+
planners skill <name> # print a bundled skill body
|
|
66
|
+
planners rule <name> # print a bundled convention rule body
|
|
67
|
+
planners install # install global holder + rule + repo hook (--local: per-repo)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
> **Per-repo (local) mode.** To pin planners as a project dependency instead of a global tool, add
|
|
71
|
+
> it with `uv add --dev planners` and run everything as `uv run planners …`; then `planners install --local`
|
|
72
|
+
> writes the holder and rule into the repo's own `.claude/` rather than `~/.claude/`.
|
|
73
|
+
|
|
74
|
+
## Plans
|
|
75
|
+
|
|
76
|
+
Each plan is a directory under `.planners/plans/` (`{NNN}-{slug}/plan.md`) and can carry scoped
|
|
77
|
+
sidecar files. The generated [`.planners/README.md`](.planners/README.md) is the plans index, which
|
|
78
|
+
GitHub auto-renders on folder browse.
|
|
79
|
+
|
|
80
|
+
## Convention rule
|
|
81
|
+
|
|
82
|
+
`planners install` writes a version-stamped, auto-loaded `~/.claude/rules/planners.md` (global) or
|
|
83
|
+
`.claude/rules/planners.md` (per-repo). The rule is **owned by the package** — edit the convention in
|
|
84
|
+
the package and reinstall; don't hand-edit the installed file. A hand-maintained `plan-files.md` is
|
|
85
|
+
superseded by the generated `planners.md` (install warns, never deletes it).
|
|
86
|
+
|
|
87
|
+
See [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
planners-0.3.1/README.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# planners
|
|
2
|
+
|
|
3
|
+
Tools for managing plain-text plans with a documented schema, CLI commands, and an installable skillstub. It is designed to automate the mechanical components of generating and updating plain-text plans with standardized frontmatter for a given project. To facilitate tracking and reviewing plans, it also automatically generates and maintains an index table of all existing plans and their statuses.
|
|
4
|
+
|
|
5
|
+
These tools can be used manually via CLI commands, but they are largely intended to be used in conjunction with a language model. To guide usage by a language model, it ships with built-in [skills](https://agentskills.io/home) and [rules](https://code.claude.com/docs/en/memory#organize-rules-with-claude/rules/) that offer an opinionated approach to managing the full plan-file lifecycle and automating usage of this package. These skills and rules can be installed on your system via the CLI commands listed in the instructions below. Once installed, the rules will enforce conventions around how plan files are named, filled, and updated, and the skills will facilitate the addition, implementation, and closing out of plans, which includes the use of git branches and worktrees as specified by the user. While its core functionality and plan files are model-agnostic, some aspects of its built-in support (e.g., the skill files, rule files, and pre-commit validation hook) are currently only available for use with Claude Code.
|
|
6
|
+
|
|
7
|
+
## Getting Started
|
|
8
|
+
|
|
9
|
+
`planners` is designed to run as a **global uv tool**, but you can also install it as a per-project dependency.
|
|
10
|
+
|
|
11
|
+
1. **Install the CLI as a uv tool** (once per machine), so `planners` is on your `PATH`:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
uv tool install planners
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Or (re)install from GitHub:
|
|
18
|
+
```bash
|
|
19
|
+
uv tool install --force git+https://github.com/gitronald/planners.git
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. **Install the global rules and skills** — This installs a global Claude Code rule file and a skills stub: the actual skills are included within this package and are accessible via the CLI; the skills stub just tells the model how to access them and allows you to use the skills via slash commands.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
planners install
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This will:
|
|
29
|
+
- (Re)generate the global `~/.claude/skills/planners/SKILL.md` holder and
|
|
30
|
+
`~/.claude/rules/planners.md` convention rule, which can change as the package version advances.
|
|
31
|
+
- Wire the `planners-validate` pre-commit hook into the project folder/repo's `.pre-commit-config.yaml` (registering it when `pre-commit` is available).
|
|
32
|
+
|
|
33
|
+
3. **Start planning** — scaffold your first plan using the `add` command.
|
|
34
|
+
|
|
35
|
+
This can be done within a Claude Code terminal via the installed `/planners` skill and its `add` subcommand:
|
|
36
|
+
```
|
|
37
|
+
/planners add my first feature
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Or via the CLI directly in your preferred terminal:
|
|
41
|
+
```bash
|
|
42
|
+
planners add my-first-feature --title "My first feature"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Either case will create a new plan file (`.planners/plans/000-my-first-feature/plan.md`) and refresh the index (`.planners/README.md`), though using the skill may produce a slightly different filename.
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
planners add <slug> --title "<Title>" # scaffold a new plan
|
|
51
|
+
planners index . # regenerate .planners/README.md
|
|
52
|
+
planners validate .planners/plans # validate plan frontmatter
|
|
53
|
+
planners schema # show the plan metadata schema
|
|
54
|
+
planners skill <name> # print a bundled skill body
|
|
55
|
+
planners rule <name> # print a bundled convention rule body
|
|
56
|
+
planners install # install global holder + rule + repo hook (--local: per-repo)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
> **Per-repo (local) mode.** To pin planners as a project dependency instead of a global tool, add
|
|
60
|
+
> it with `uv add --dev planners` and run everything as `uv run planners …`; then `planners install --local`
|
|
61
|
+
> writes the holder and rule into the repo's own `.claude/` rather than `~/.claude/`.
|
|
62
|
+
|
|
63
|
+
## Plans
|
|
64
|
+
|
|
65
|
+
Each plan is a directory under `.planners/plans/` (`{NNN}-{slug}/plan.md`) and can carry scoped
|
|
66
|
+
sidecar files. The generated [`.planners/README.md`](.planners/README.md) is the plans index, which
|
|
67
|
+
GitHub auto-renders on folder browse.
|
|
68
|
+
|
|
69
|
+
## Convention rule
|
|
70
|
+
|
|
71
|
+
`planners install` writes a version-stamped, auto-loaded `~/.claude/rules/planners.md` (global) or
|
|
72
|
+
`.claude/rules/planners.md` (per-repo). The rule is **owned by the package** — edit the convention in
|
|
73
|
+
the package and reinstall; don't hand-edit the installed file. A hand-maintained `plan-files.md` is
|
|
74
|
+
superseded by the generated `planners.md` (install warns, never deletes it).
|
|
75
|
+
|
|
76
|
+
See [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""planners — own a repo's plan-file lifecycle via a schema, a CLI, and a skillstub."""
|
|
2
|
+
|
|
3
|
+
from planners.metadata import PlanError, PlanMetadata, Status, next_number
|
|
4
|
+
from planners.skill import get_skill, list_skills
|
|
5
|
+
|
|
6
|
+
__all__ = [
|
|
7
|
+
"PlanError",
|
|
8
|
+
"PlanMetadata",
|
|
9
|
+
"Status",
|
|
10
|
+
"get_skill",
|
|
11
|
+
"list_skills",
|
|
12
|
+
"next_number",
|
|
13
|
+
]
|