napkinstack 0.7.0__tar.gz → 0.7.2__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.
- {napkinstack-0.7.0 → napkinstack-0.7.2}/PKG-INFO +9 -25
- {napkinstack-0.7.0 → napkinstack-0.7.2}/README.md +8 -24
- {napkinstack-0.7.0 → napkinstack-0.7.2}/pyproject.toml +1 -1
- {napkinstack-0.7.0 → napkinstack-0.7.2}/pyproject.toml.orig +1 -1
- {napkinstack-0.7.0 → napkinstack-0.7.2}/LICENSE +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/__init__.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/assurance.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/cli.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/compat.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/discovery.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/doctor.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/fitness/__init__.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/fitness/boundaries.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/fitness/hygiene.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/fitness/manifests.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/fitness/plan.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/fitness/pr_scope.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/landed.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/modules.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/project.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/provenance.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/pull_request.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/settings.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/skills.py +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/contracts/AGENTS.md +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/contracts/MANIFEST.yaml +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/contracts/README.md +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/contracts/docs/runbook.md +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/contracts/tests/.gitkeep +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/module/AGENTS.md +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/module/MANIFEST.yaml +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/module/README.md +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/module/docs/adr/.gitkeep +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/module/src/.gitkeep +0 -0
- {napkinstack-0.7.0 → napkinstack-0.7.2}/src/napkinstack/templates/module/tests/.gitkeep +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: napkinstack
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: Engineering framework for several teams and their agents working in one repository: modules, contracts, guardrails in CI.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -20,27 +20,9 @@ modules, contracts, guardrails in CI. On the Django or Rails model, one command
|
|
|
20
20
|
the project, which then receives new versions on demand; no application stack is imposed.
|
|
21
21
|
Positioning and vocabulary: [`PRODUCT.md`](PRODUCT.md) §1.
|
|
22
22
|
|
|
23
|
-
> **Status: v0.
|
|
24
|
-
>
|
|
25
|
-
>
|
|
26
|
-
> runs in the base's tree, the module checks and stale approvals are enforced, a verifier is not
|
|
27
|
-
> an author, and every verdict names the framework that gave it. Since v0.6.0, a document still
|
|
28
|
-
> holding its template's words is refused, a deprecated module's consumers are named with their
|
|
29
|
-
> removal date, and a contract change runs the checks of both sides — the producer and every
|
|
30
|
-
> declared consumer. The diagnosis says whether anything refuses at all; a record names what
|
|
31
|
-
> reached the default branch outside a pull request, and never refuses it. Since v0.6.2, each
|
|
32
|
-
> version's notes are published, engine and project apart, and an update names every version it
|
|
33
|
-
> crosses. A first real project, public, has run two cycles on it; **M11**, in progress, makes
|
|
34
|
-
> the framework charge what a failure costs, and nothing more ([PDR-0011](docs/pdr/0011-ceremony-follows-consequence.md)).
|
|
35
|
-
> Tracking: [engine roadmap](docs/governance/plans/2026-09-15-engine-v0.1.0.md),
|
|
36
|
-
> [move to English](docs/governance/plans/2026-09-16-english-migration.md),
|
|
37
|
-
> [frame, verify, approve](docs/governance/plans/2026-09-16-v0.3.0-frame-verify-approve.md),
|
|
38
|
-
> [every barrier refuses](docs/governance/plans/2026-09-19-v0.4.0-every-barrier-refuses.md),
|
|
39
|
-
> [a proof that cannot be rewritten](docs/governance/plans/2026-09-20-v0.5.0-a-proof-that-cannot-be-rewritten.md),
|
|
40
|
-
> [the conformance suite](docs/governance/plans/2026-09-20-m12-conformance-suite.md),
|
|
41
|
-
> [what is announced refuses](docs/governance/plans/2026-09-20-v0.6.0-what-is-announced-refuses.md),
|
|
42
|
-
> [ceremony follows consequence](docs/governance/plans/2026-09-23-m11-ceremony-follows-consequence.md),
|
|
43
|
-
> [`docs/governance/workstreams.md`](docs/governance/workstreams.md).
|
|
23
|
+
> **Status: v0.7.2, published** on [PyPI](https://pypi.org/project/napkinstack/).
|
|
24
|
+
> What each version changes, engine and project apart: [`CHANGELOG.md`](CHANGELOG.md).
|
|
25
|
+
> What is open: [`docs/governance/workstreams.md`](docs/governance/workstreams.md).
|
|
44
26
|
|
|
45
27
|
## A project's journey
|
|
46
28
|
|
|
@@ -102,8 +84,8 @@ To try it without installing anything, or to install it from this repository ins
|
|
|
102
84
|
registry — always pinned to a release tag:
|
|
103
85
|
|
|
104
86
|
```bash
|
|
105
|
-
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.
|
|
106
|
-
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.
|
|
87
|
+
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.7.2" nstack init my-project
|
|
88
|
+
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.7.2"
|
|
107
89
|
```
|
|
108
90
|
|
|
109
91
|
**Two channels, one published artefact.** The registry publishes: the PyPI artefact of a
|
|
@@ -124,11 +106,13 @@ Each project then pins its version and changes it through `nstack update`.
|
|
|
124
106
|
|---|---|
|
|
125
107
|
| `nstack init <folder>` | Creates the project: skeleton, git repository, initial commit, GitHub checklist |
|
|
126
108
|
| `nstack doctor` | Checks the workstation and the GitHub settings, read-only |
|
|
109
|
+
| `nstack settings` | Prints the calls that would bring the GitHub settings to the checklist; changes nothing |
|
|
127
110
|
| `nstack new-module <name> <owner> <criticality>` | Creates a module, with no imposed stack |
|
|
111
|
+
| `nstack new-contract <name>` | Creates a contract and, the first time, the module that holds them all |
|
|
128
112
|
| `nstack check`, `test`, `bootstrap` `[module]`; `nstack run <module>` | Run the commands declared in the module's manifest |
|
|
129
113
|
| `nstack discover <idea-file>` | Starts a discovery for your agent: the idea kept, its document created |
|
|
130
114
|
| `nstack plan` | The discovery, the charter and the cycles: formats, one cycle at a time, closures |
|
|
131
|
-
| `nstack fitness` | Manifests, boundaries between modules, skills, plan, hygiene |
|
|
115
|
+
| `nstack fitness` | Manifests, boundaries between modules, skills, plan, hygiene — each also runs alone: `manifests`, `boundaries`, `skills`, `plan`, `hygiene` |
|
|
132
116
|
| `nstack pr-scope` | One PR = one module, review budget |
|
|
133
117
|
| `nstack modules [--changed-since <base>]` | The project's modules, or those with a file changed since a base |
|
|
134
118
|
| `nstack compat [module] --base <base>` | A contract version consumed or stable changes only with the project's merged comparator |
|
|
@@ -5,27 +5,9 @@ modules, contracts, guardrails in CI. On the Django or Rails model, one command
|
|
|
5
5
|
the project, which then receives new versions on demand; no application stack is imposed.
|
|
6
6
|
Positioning and vocabulary: [`PRODUCT.md`](PRODUCT.md) §1.
|
|
7
7
|
|
|
8
|
-
> **Status: v0.
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
> runs in the base's tree, the module checks and stale approvals are enforced, a verifier is not
|
|
12
|
-
> an author, and every verdict names the framework that gave it. Since v0.6.0, a document still
|
|
13
|
-
> holding its template's words is refused, a deprecated module's consumers are named with their
|
|
14
|
-
> removal date, and a contract change runs the checks of both sides — the producer and every
|
|
15
|
-
> declared consumer. The diagnosis says whether anything refuses at all; a record names what
|
|
16
|
-
> reached the default branch outside a pull request, and never refuses it. Since v0.6.2, each
|
|
17
|
-
> version's notes are published, engine and project apart, and an update names every version it
|
|
18
|
-
> crosses. A first real project, public, has run two cycles on it; **M11**, in progress, makes
|
|
19
|
-
> the framework charge what a failure costs, and nothing more ([PDR-0011](docs/pdr/0011-ceremony-follows-consequence.md)).
|
|
20
|
-
> Tracking: [engine roadmap](docs/governance/plans/2026-09-15-engine-v0.1.0.md),
|
|
21
|
-
> [move to English](docs/governance/plans/2026-09-16-english-migration.md),
|
|
22
|
-
> [frame, verify, approve](docs/governance/plans/2026-09-16-v0.3.0-frame-verify-approve.md),
|
|
23
|
-
> [every barrier refuses](docs/governance/plans/2026-09-19-v0.4.0-every-barrier-refuses.md),
|
|
24
|
-
> [a proof that cannot be rewritten](docs/governance/plans/2026-09-20-v0.5.0-a-proof-that-cannot-be-rewritten.md),
|
|
25
|
-
> [the conformance suite](docs/governance/plans/2026-09-20-m12-conformance-suite.md),
|
|
26
|
-
> [what is announced refuses](docs/governance/plans/2026-09-20-v0.6.0-what-is-announced-refuses.md),
|
|
27
|
-
> [ceremony follows consequence](docs/governance/plans/2026-09-23-m11-ceremony-follows-consequence.md),
|
|
28
|
-
> [`docs/governance/workstreams.md`](docs/governance/workstreams.md).
|
|
8
|
+
> **Status: v0.7.2, published** on [PyPI](https://pypi.org/project/napkinstack/).
|
|
9
|
+
> What each version changes, engine and project apart: [`CHANGELOG.md`](CHANGELOG.md).
|
|
10
|
+
> What is open: [`docs/governance/workstreams.md`](docs/governance/workstreams.md).
|
|
29
11
|
|
|
30
12
|
## A project's journey
|
|
31
13
|
|
|
@@ -87,8 +69,8 @@ To try it without installing anything, or to install it from this repository ins
|
|
|
87
69
|
registry — always pinned to a release tag:
|
|
88
70
|
|
|
89
71
|
```bash
|
|
90
|
-
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.
|
|
91
|
-
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.
|
|
72
|
+
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.7.2" nstack init my-project
|
|
73
|
+
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.7.2"
|
|
92
74
|
```
|
|
93
75
|
|
|
94
76
|
**Two channels, one published artefact.** The registry publishes: the PyPI artefact of a
|
|
@@ -109,11 +91,13 @@ Each project then pins its version and changes it through `nstack update`.
|
|
|
109
91
|
|---|---|
|
|
110
92
|
| `nstack init <folder>` | Creates the project: skeleton, git repository, initial commit, GitHub checklist |
|
|
111
93
|
| `nstack doctor` | Checks the workstation and the GitHub settings, read-only |
|
|
94
|
+
| `nstack settings` | Prints the calls that would bring the GitHub settings to the checklist; changes nothing |
|
|
112
95
|
| `nstack new-module <name> <owner> <criticality>` | Creates a module, with no imposed stack |
|
|
96
|
+
| `nstack new-contract <name>` | Creates a contract and, the first time, the module that holds them all |
|
|
113
97
|
| `nstack check`, `test`, `bootstrap` `[module]`; `nstack run <module>` | Run the commands declared in the module's manifest |
|
|
114
98
|
| `nstack discover <idea-file>` | Starts a discovery for your agent: the idea kept, its document created |
|
|
115
99
|
| `nstack plan` | The discovery, the charter and the cycles: formats, one cycle at a time, closures |
|
|
116
|
-
| `nstack fitness` | Manifests, boundaries between modules, skills, plan, hygiene |
|
|
100
|
+
| `nstack fitness` | Manifests, boundaries between modules, skills, plan, hygiene — each also runs alone: `manifests`, `boundaries`, `skills`, `plan`, `hygiene` |
|
|
117
101
|
| `nstack pr-scope` | One PR = one module, review budget |
|
|
118
102
|
| `nstack modules [--changed-since <base>]` | The project's modules, or those with a file changed since a base |
|
|
119
103
|
| `nstack compat [module] --base <base>` | A contract version consumed or stable changes only with the project's merged comparator |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|