wellmanifest-priority 0.1.0.dev0__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.
- wellmanifest_priority-0.1.0.dev0/PKG-INFO +124 -0
- wellmanifest_priority-0.1.0.dev0/README.md +113 -0
- wellmanifest_priority-0.1.0.dev0/pyproject.toml +31 -0
- wellmanifest_priority-0.1.0.dev0/setup.cfg +4 -0
- wellmanifest_priority-0.1.0.dev0/src/priority.py +1598 -0
- wellmanifest_priority-0.1.0.dev0/src/wellmanifest_priority/__init__.py +85 -0
- wellmanifest_priority-0.1.0.dev0/src/wellmanifest_priority.egg-info/PKG-INFO +124 -0
- wellmanifest_priority-0.1.0.dev0/src/wellmanifest_priority.egg-info/SOURCES.txt +11 -0
- wellmanifest_priority-0.1.0.dev0/src/wellmanifest_priority.egg-info/dependency_links.txt +1 -0
- wellmanifest_priority-0.1.0.dev0/src/wellmanifest_priority.egg-info/entry_points.txt +3 -0
- wellmanifest_priority-0.1.0.dev0/src/wellmanifest_priority.egg-info/requires.txt +3 -0
- wellmanifest_priority-0.1.0.dev0/src/wellmanifest_priority.egg-info/top_level.txt +2 -0
- wellmanifest_priority-0.1.0.dev0/tests/test_priority.py +797 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wellmanifest-priority
|
|
3
|
+
Version: 0.1.0.dev0
|
|
4
|
+
Summary: Propose-only priority documents, deterministic ranking, and conformance contracts
|
|
5
|
+
Author: Wellmanifest
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Requires-Python: >=3.11
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Provides-Extra: test
|
|
10
|
+
Requires-Dist: jsonschema>=4.23; extra == "test"
|
|
11
|
+
|
|
12
|
+
# wellmanifest/priority
|
|
13
|
+
|
|
14
|
+
`wellmanifest.priority/v1` — standing priorities, the signals that reweight them,
|
|
15
|
+
and the amendments by which the intent itself is revised.
|
|
16
|
+
|
|
17
|
+
Abstract and project-agnostic: this pack names no organization, product, or
|
|
18
|
+
repository. Concrete adopters belong in `examples/`.
|
|
19
|
+
|
|
20
|
+
## The problem
|
|
21
|
+
|
|
22
|
+
A ranked list of priorities is a photograph. It is correct when written and wrong
|
|
23
|
+
shortly after, because the state that justified the ranking keeps moving. Agents
|
|
24
|
+
then re-derive priorities from prose — each one differently — and the ranking
|
|
25
|
+
quietly becomes whatever the last model guessed.
|
|
26
|
+
|
|
27
|
+
Three specific failures follow, and the design targets each:
|
|
28
|
+
|
|
29
|
+
1. **Everything is negotiable.** With a single numeric score, enough accumulated
|
|
30
|
+
small work outranks a correctness invariant. Fixed by **lexicographic tiers**:
|
|
31
|
+
a `floor` item cannot be outranked by any amount of lower-tier weight.
|
|
32
|
+
2. **Priorities never die.** Without a completion test an item stays on the list
|
|
33
|
+
forever, consuming attention that belongs to work that can finish. Fixed by
|
|
34
|
+
making `SATISFIED_WHEN` **required**.
|
|
35
|
+
3. **The intent silently becomes a different intent.** Fixed by separating
|
|
36
|
+
`ON` (changes the weight) from `AMEND` (changes the intent), and requiring
|
|
37
|
+
an amendment to justify itself.
|
|
38
|
+
|
|
39
|
+
## Effect model
|
|
40
|
+
|
|
41
|
+
`propose-only`. The document ranks work and explains the ranking. It never
|
|
42
|
+
authorizes an edit.
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
python3 -m pip install -e .
|
|
48
|
+
priority validate examples/standardization.priority.dsl
|
|
49
|
+
priority rank examples/standardization.priority.dsl --readings examples/readings.demo.json
|
|
50
|
+
priority receipt examples/standardization.priority.dsl \
|
|
51
|
+
--readings examples/readings.demo.json \
|
|
52
|
+
--context examples/evaluation-context.demo.json
|
|
53
|
+
priority matrix examples/standardization.priority.dsl
|
|
54
|
+
priority select examples/standardization.priority.dsl --capacity 3
|
|
55
|
+
priority project examples/standardization.priority.dsl # proposed bytes only
|
|
56
|
+
priority check examples/standardization.priority.dsl # drift gate
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The evaluator accepts only a versioned `wellmanifest.priority/readings/v1`
|
|
60
|
+
envelope bound to the exact document digest and producer references. It never
|
|
61
|
+
executes those producers. A runtime integration may run an explicit allowlist,
|
|
62
|
+
then pass its observations to the pure evaluator. `observedAt` controls reading
|
|
63
|
+
freshness; optional `activeSince` records how long a condition has held.
|
|
64
|
+
|
|
65
|
+
Independent producers may emit partial readings envelopes. `compose_readings`
|
|
66
|
+
combines disjoint, validated envelopes and emits a
|
|
67
|
+
`wellmanifest.priority/readings-composition/v1` receipt binding every source
|
|
68
|
+
digest and revision to the final readings digest. Duplicate signals and source
|
|
69
|
+
observations newer than the composition time fail closed.
|
|
70
|
+
|
|
71
|
+
`priority receipt` emits a deterministic `wellmanifest.priority/ranking/v1`
|
|
72
|
+
receipt. It is digest-bound and always carries `executionAuthorized: false`.
|
|
73
|
+
|
|
74
|
+
Escalation, decay and starvation additionally depend on elapsed durations. A
|
|
75
|
+
runtime that supplies them uses a
|
|
76
|
+
`wellmanifest.priority/evaluation-context/v1` envelope bound to the exact
|
|
77
|
+
document and readings revision. Passing `--context` emits
|
|
78
|
+
`wellmanifest.priority/ranking/v2`, whose receipt binds every input that can
|
|
79
|
+
change the rank. V1 remains available for evaluations that do not supply this
|
|
80
|
+
time context.
|
|
81
|
+
|
|
82
|
+
An external runtime may sign an
|
|
83
|
+
`wellmanifest.priority/evaluation-attestation/v1` over the exact document,
|
|
84
|
+
readings, context and ranking v2 digest. The reference verifier requires an
|
|
85
|
+
allowlisted issuer implementation digest, audience, current 15-minute validity
|
|
86
|
+
window, unused nonce and a caller-provided protected signature verifier. The
|
|
87
|
+
attestation remains `executionAuthorized: false`; it proves provenance and
|
|
88
|
+
reproducibility, not permission to execute work.
|
|
89
|
+
|
|
90
|
+
## Reaching heterogeneous agents
|
|
91
|
+
|
|
92
|
+
Claude, ChatGPT/Codex, Gemini and IDE assistants read different files, and no
|
|
93
|
+
standard will change that. So the document is the authority and every agent-facing
|
|
94
|
+
file is a **generated projection** of it. `priority project` only proposes the
|
|
95
|
+
exact output bytes. An adopter-owned workflow may review and splice the marked
|
|
96
|
+
block so hand-written instructions around it survive:
|
|
97
|
+
|
|
98
|
+
| Target | File |
|
|
99
|
+
|---|---|
|
|
100
|
+
| Codex / ChatGPT, and the ecosystem contract | `AGENTS.md` |
|
|
101
|
+
| Claude Code | `CLAUDE.md` |
|
|
102
|
+
| Gemini CLI | `GEMINI.md` |
|
|
103
|
+
| Cursor | `.cursor/rules/priority.mdc` |
|
|
104
|
+
| CI, hooks, non-agent consumers | `.priority/ranking.json` |
|
|
105
|
+
|
|
106
|
+
`priority check` fails when a projection drifts, which is what stops the files
|
|
107
|
+
from becoming three different rankings.
|
|
108
|
+
|
|
109
|
+
## Documents
|
|
110
|
+
|
|
111
|
+
- [`docs/STANDARD.md`](docs/STANDARD.md) — normative model: tiers, weight,
|
|
112
|
+
signals, complementarity, conformance levels.
|
|
113
|
+
- [`docs/GRAMMAR.md`](docs/GRAMMAR.md) — the `DOCUMENT PRIORITY` text form.
|
|
114
|
+
- [`docs/TRIGGERS.md`](docs/TRIGGERS.md) — commit / interval / watch cadences.
|
|
115
|
+
- [`docs/COMPLEMENTARITY.md`](docs/COMPLEMENTARITY.md) — how pairings are measured.
|
|
116
|
+
|
|
117
|
+
## Conformance
|
|
118
|
+
|
|
119
|
+
| Level | Requires |
|
|
120
|
+
|---|---|
|
|
121
|
+
| `document` | Parses and validates |
|
|
122
|
+
| `signalled` | Every modifier names a signal with a declared producer |
|
|
123
|
+
| `projected` | Agent files generated and drift-checked |
|
|
124
|
+
| `measured` | Complementarity computed from observed co-movement, not only declared |
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# wellmanifest/priority
|
|
2
|
+
|
|
3
|
+
`wellmanifest.priority/v1` — standing priorities, the signals that reweight them,
|
|
4
|
+
and the amendments by which the intent itself is revised.
|
|
5
|
+
|
|
6
|
+
Abstract and project-agnostic: this pack names no organization, product, or
|
|
7
|
+
repository. Concrete adopters belong in `examples/`.
|
|
8
|
+
|
|
9
|
+
## The problem
|
|
10
|
+
|
|
11
|
+
A ranked list of priorities is a photograph. It is correct when written and wrong
|
|
12
|
+
shortly after, because the state that justified the ranking keeps moving. Agents
|
|
13
|
+
then re-derive priorities from prose — each one differently — and the ranking
|
|
14
|
+
quietly becomes whatever the last model guessed.
|
|
15
|
+
|
|
16
|
+
Three specific failures follow, and the design targets each:
|
|
17
|
+
|
|
18
|
+
1. **Everything is negotiable.** With a single numeric score, enough accumulated
|
|
19
|
+
small work outranks a correctness invariant. Fixed by **lexicographic tiers**:
|
|
20
|
+
a `floor` item cannot be outranked by any amount of lower-tier weight.
|
|
21
|
+
2. **Priorities never die.** Without a completion test an item stays on the list
|
|
22
|
+
forever, consuming attention that belongs to work that can finish. Fixed by
|
|
23
|
+
making `SATISFIED_WHEN` **required**.
|
|
24
|
+
3. **The intent silently becomes a different intent.** Fixed by separating
|
|
25
|
+
`ON` (changes the weight) from `AMEND` (changes the intent), and requiring
|
|
26
|
+
an amendment to justify itself.
|
|
27
|
+
|
|
28
|
+
## Effect model
|
|
29
|
+
|
|
30
|
+
`propose-only`. The document ranks work and explains the ranking. It never
|
|
31
|
+
authorizes an edit.
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
python3 -m pip install -e .
|
|
37
|
+
priority validate examples/standardization.priority.dsl
|
|
38
|
+
priority rank examples/standardization.priority.dsl --readings examples/readings.demo.json
|
|
39
|
+
priority receipt examples/standardization.priority.dsl \
|
|
40
|
+
--readings examples/readings.demo.json \
|
|
41
|
+
--context examples/evaluation-context.demo.json
|
|
42
|
+
priority matrix examples/standardization.priority.dsl
|
|
43
|
+
priority select examples/standardization.priority.dsl --capacity 3
|
|
44
|
+
priority project examples/standardization.priority.dsl # proposed bytes only
|
|
45
|
+
priority check examples/standardization.priority.dsl # drift gate
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The evaluator accepts only a versioned `wellmanifest.priority/readings/v1`
|
|
49
|
+
envelope bound to the exact document digest and producer references. It never
|
|
50
|
+
executes those producers. A runtime integration may run an explicit allowlist,
|
|
51
|
+
then pass its observations to the pure evaluator. `observedAt` controls reading
|
|
52
|
+
freshness; optional `activeSince` records how long a condition has held.
|
|
53
|
+
|
|
54
|
+
Independent producers may emit partial readings envelopes. `compose_readings`
|
|
55
|
+
combines disjoint, validated envelopes and emits a
|
|
56
|
+
`wellmanifest.priority/readings-composition/v1` receipt binding every source
|
|
57
|
+
digest and revision to the final readings digest. Duplicate signals and source
|
|
58
|
+
observations newer than the composition time fail closed.
|
|
59
|
+
|
|
60
|
+
`priority receipt` emits a deterministic `wellmanifest.priority/ranking/v1`
|
|
61
|
+
receipt. It is digest-bound and always carries `executionAuthorized: false`.
|
|
62
|
+
|
|
63
|
+
Escalation, decay and starvation additionally depend on elapsed durations. A
|
|
64
|
+
runtime that supplies them uses a
|
|
65
|
+
`wellmanifest.priority/evaluation-context/v1` envelope bound to the exact
|
|
66
|
+
document and readings revision. Passing `--context` emits
|
|
67
|
+
`wellmanifest.priority/ranking/v2`, whose receipt binds every input that can
|
|
68
|
+
change the rank. V1 remains available for evaluations that do not supply this
|
|
69
|
+
time context.
|
|
70
|
+
|
|
71
|
+
An external runtime may sign an
|
|
72
|
+
`wellmanifest.priority/evaluation-attestation/v1` over the exact document,
|
|
73
|
+
readings, context and ranking v2 digest. The reference verifier requires an
|
|
74
|
+
allowlisted issuer implementation digest, audience, current 15-minute validity
|
|
75
|
+
window, unused nonce and a caller-provided protected signature verifier. The
|
|
76
|
+
attestation remains `executionAuthorized: false`; it proves provenance and
|
|
77
|
+
reproducibility, not permission to execute work.
|
|
78
|
+
|
|
79
|
+
## Reaching heterogeneous agents
|
|
80
|
+
|
|
81
|
+
Claude, ChatGPT/Codex, Gemini and IDE assistants read different files, and no
|
|
82
|
+
standard will change that. So the document is the authority and every agent-facing
|
|
83
|
+
file is a **generated projection** of it. `priority project` only proposes the
|
|
84
|
+
exact output bytes. An adopter-owned workflow may review and splice the marked
|
|
85
|
+
block so hand-written instructions around it survive:
|
|
86
|
+
|
|
87
|
+
| Target | File |
|
|
88
|
+
|---|---|
|
|
89
|
+
| Codex / ChatGPT, and the ecosystem contract | `AGENTS.md` |
|
|
90
|
+
| Claude Code | `CLAUDE.md` |
|
|
91
|
+
| Gemini CLI | `GEMINI.md` |
|
|
92
|
+
| Cursor | `.cursor/rules/priority.mdc` |
|
|
93
|
+
| CI, hooks, non-agent consumers | `.priority/ranking.json` |
|
|
94
|
+
|
|
95
|
+
`priority check` fails when a projection drifts, which is what stops the files
|
|
96
|
+
from becoming three different rankings.
|
|
97
|
+
|
|
98
|
+
## Documents
|
|
99
|
+
|
|
100
|
+
- [`docs/STANDARD.md`](docs/STANDARD.md) — normative model: tiers, weight,
|
|
101
|
+
signals, complementarity, conformance levels.
|
|
102
|
+
- [`docs/GRAMMAR.md`](docs/GRAMMAR.md) — the `DOCUMENT PRIORITY` text form.
|
|
103
|
+
- [`docs/TRIGGERS.md`](docs/TRIGGERS.md) — commit / interval / watch cadences.
|
|
104
|
+
- [`docs/COMPLEMENTARITY.md`](docs/COMPLEMENTARITY.md) — how pairings are measured.
|
|
105
|
+
|
|
106
|
+
## Conformance
|
|
107
|
+
|
|
108
|
+
| Level | Requires |
|
|
109
|
+
|---|---|
|
|
110
|
+
| `document` | Parses and validates |
|
|
111
|
+
| `signalled` | Every modifier names a signal with a declared producer |
|
|
112
|
+
| `projected` | Agent files generated and drift-checked |
|
|
113
|
+
| `measured` | Complementarity computed from observed co-movement, not only declared |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "wellmanifest-priority"
|
|
7
|
+
version = "0.1.0.dev0"
|
|
8
|
+
description = "Propose-only priority documents, deterministic ranking, and conformance contracts"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = {text = "Apache-2.0"}
|
|
12
|
+
authors = [{name = "Wellmanifest"}]
|
|
13
|
+
dependencies = []
|
|
14
|
+
|
|
15
|
+
[project.optional-dependencies]
|
|
16
|
+
test = ["jsonschema>=4.23"]
|
|
17
|
+
|
|
18
|
+
[project.scripts]
|
|
19
|
+
priority = "priority:main"
|
|
20
|
+
wellmanifest-priority = "priority:main"
|
|
21
|
+
|
|
22
|
+
[tool.setuptools]
|
|
23
|
+
package-dir = {"" = "src"}
|
|
24
|
+
py-modules = ["priority"]
|
|
25
|
+
|
|
26
|
+
[tool.setuptools.packages.find]
|
|
27
|
+
where = ["src"]
|
|
28
|
+
|
|
29
|
+
[tool.unittest]
|
|
30
|
+
start-directory = "tests"
|
|
31
|
+
|