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.
@@ -0,0 +1,18 @@
1
+ .archive/
2
+ .claude/
3
+ .hypothesis/
4
+ .pytest_cache/
5
+ .ruff_cache/
6
+ .venv/
7
+ .worktrees/
8
+ __pycache__/
9
+
10
+ build/
11
+ dist/
12
+ *.egg-info/
13
+
14
+ .DS_Store
15
+
16
+ .env
17
+ .env.*
18
+ !.env.example
@@ -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
+
@@ -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.
@@ -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
+ ]