masterwork 0.0.1__tar.gz → 0.0.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.
Files changed (38) hide show
  1. {masterwork-0.0.1/masterwork.egg-info → masterwork-0.0.2}/PKG-INFO +20 -17
  2. {masterwork-0.0.1 → masterwork-0.0.2}/README.md +3 -0
  3. {masterwork-0.0.1 → masterwork-0.0.2}/README.pypi.md +19 -16
  4. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/__init__.py +1 -1
  5. {masterwork-0.0.1 → masterwork-0.0.2/masterwork.egg-info}/PKG-INFO +20 -17
  6. {masterwork-0.0.1 → masterwork-0.0.2}/pyproject.toml +1 -1
  7. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_packaging.py +19 -5
  8. {masterwork-0.0.1 → masterwork-0.0.2}/LICENSE +0 -0
  9. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/__main__.py +0 -0
  10. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/blind_label.py +0 -0
  11. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/campaign.py +0 -0
  12. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/cells.py +0 -0
  13. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/ceremony.py +0 -0
  14. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/gate.py +0 -0
  15. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/line.py +0 -0
  16. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/measure.py +0 -0
  17. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/pairs.py +0 -0
  18. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/retain.py +0 -0
  19. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/rubric-example.json +0 -0
  20. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork/seal.py +0 -0
  21. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork.egg-info/SOURCES.txt +0 -0
  22. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork.egg-info/dependency_links.txt +0 -0
  23. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork.egg-info/entry_points.txt +0 -0
  24. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork.egg-info/requires.txt +0 -0
  25. {masterwork-0.0.1 → masterwork-0.0.2}/masterwork.egg-info/top_level.txt +0 -0
  26. {masterwork-0.0.1 → masterwork-0.0.2}/setup.cfg +0 -0
  27. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_blind_label.py +0 -0
  28. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_campaign.py +0 -0
  29. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_cells.py +0 -0
  30. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_ceremony.py +0 -0
  31. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_cli.py +0 -0
  32. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_examples.py +0 -0
  33. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_gate.py +0 -0
  34. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_line.py +0 -0
  35. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_measure.py +0 -0
  36. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_pairs.py +0 -0
  37. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_retain.py +0 -0
  38. {masterwork-0.0.1 → masterwork-0.0.2}/tests/test_seal.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masterwork
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: A production line for agent character: a sitting the model speaks for itself in, sealed candidates, frozen gates, and a verdict it is not allowed to give itself.
5
5
  Author: Codechu
6
6
  License-Expression: Apache-2.0
@@ -25,11 +25,11 @@ License-File: LICENSE
25
25
  Requires-Dist: journeyman-bench>=0.2.1
26
26
  Dynamic: license-file
27
27
 
28
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/banner.jpg" alt="A craftsman slides a sealed folio across his bench onto the guild's empty judging table; earlier pieces stand turned to the wall behind him." width="100%"></p>
28
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/banner.jpg" alt="A craftsman slides a sealed folio across his bench onto the guild's empty judging table; earlier pieces stand turned to the wall behind him." width="100%"></p>
29
29
 
30
30
  # Masterwork
31
31
 
32
- [![python](https://img.shields.io/badge/python-3.10%2B-blue)](#run-it) [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/codechu/masterwork/blob/v0.0.1/LICENSE) [![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/codechu/masterwork/blob/v0.0.1/CONTRIBUTING.md#ground-rules) [![status](https://img.shields.io/badge/status-not%20published-lightgrey)](#status)
32
+ [![python](https://img.shields.io/badge/python-3.10%2B-blue)](#run-it) [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/codechu/masterwork/blob/v0.0.2/LICENSE) [![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/codechu/masterwork/blob/v0.0.2/CONTRIBUTING.md#ground-rules) [![status](https://img.shields.io/badge/status-not%20published-lightgrey)](#status)
33
33
 
34
34
  *Makes a character for a model. Does not score it.*
35
35
 
@@ -115,7 +115,7 @@ record, and exits in a way that says *waiting*, not *broken*.
115
115
  | `HELD_WITHOUT_PURPOSE` | the spec does not say what the run decides | write `purpose`; if you cannot say what changes on each outcome, the run is not ready |
116
116
  | `HELD_AT_SEAL` | the piece is unreproducible, or the deployed copy differs | fix the seal or the deployment — never run "just to see" |
117
117
  | `HELD_AT_COMPLETENESS` | the grid is short | find the missing cells; if proceeding anyway, declare it |
118
- | `HELD_FOR_LABELLING` | labels are missing, empty, or written for an older version of a cell | get them with [`masterwork/blind_label.py`](https://github.com/codechu/masterwork/blob/v0.0.1/masterwork/blind_label.py); the line is waiting, not broken |
118
+ | `HELD_FOR_LABELLING` | labels are missing, empty, or written for an older version of a cell | get them with [`masterwork/blind_label.py`](https://github.com/codechu/masterwork/blob/v0.0.2/masterwork/blind_label.py); the line is waiting, not broken |
119
119
  | `HELD_AT_MEASUREMENT` | the benchmark says the score is not comparable | judge from a separate endpoint, or declare and keep the stamp |
120
120
  | `HELD_AT_GATE` | a threshold sits inside its own noise | the gate is void; measure the band, write a new gate |
121
121
  | `HELD_WITHOUT_MEASUREMENT` | a rule names an axis and nothing measured it | judge with the benchmark, or declare the run diagnostic — a gate that was checked is not a gate that was applied |
@@ -173,7 +173,7 @@ deleted, because deciding what to remove is not the line's call.
173
173
 
174
174
  ## Making a piece
175
175
 
176
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/ceremony.jpg" alt="A figure writes alone by lantern light; every earlier work in the room is draped and turned away, and a stick of sealing wax lies unused on the table." width="520"></p>
176
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/ceremony.jpg" alt="A figure writes alone by lantern light; every earlier work in the room is draped and turned away, and a stick of sealing wax lies unused on the table." width="520"></p>
177
177
 
178
178
  `pipeline/ceremony.py` runs the sitting. Four properties are the recipe rather
179
179
  than implementation detail, and each was paid for:
@@ -220,10 +220,10 @@ You get the line and its gates, the shape of the sitting, and the method
220
220
  written down: how a tale differs from an instruction, where a tale comes from,
221
221
  what a question has to do, why instructions come last, and how to tag a tale
222
222
  whose effect cannot be separated. That is
223
- [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/GROWING.md), and it is the part that transfers.
223
+ [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/GROWING.md), and it is the part that transfers.
224
224
 
225
225
  You do not get a corpus. Three pairs come with the repository in
226
- [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/starter/) so the machinery runs end to end and the
226
+ [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/starter/) so the machinery runs end to end and the
227
227
  form is unambiguous; they are a beginning and they are meant to be outgrown.
228
228
  The corpus is the work, and it has to be yours: a tale is written from
229
229
  something **you** measured and got wrong, and a corpus assembled from someone
@@ -279,12 +279,13 @@ the position — a masterwork is submitted, and it can be refused.
279
279
 
280
280
  | document | when you need it |
281
281
  |---|---|
282
- | [`AGENTS.md`](https://github.com/codechu/masterwork/blob/v0.0.1/AGENTS.md) | before running anything — the refusals, the vocabulary, and the four things not to do. Read it whether or not you are an agent |
283
- | [`docs/run-spec.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/run-spec.md) | writing the JSON for one run, field by field |
284
- | [`docs/campaigns.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/campaigns.md) | repeating an arm to measure a band, or comparing two arms against it |
285
- | [`docs/gates.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/gates.md) | writing a threshold that can hold — start from [`gates/succession.md`](https://github.com/codechu/masterwork/blob/v0.0.1/gates/succession.md) |
286
- | [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/GROWING.md) | before writing a single tale — the shape is in [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/starter/) |
287
- | [`CHANGELOG.md`](https://github.com/codechu/masterwork/blob/v0.0.1/CHANGELOG.md) | every entry names the incident that caused it |
282
+ | [`AGENTS.md`](https://github.com/codechu/masterwork/blob/v0.0.2/AGENTS.md) | before running anything — the refusals, the vocabulary, and the four things not to do. Read it whether or not you are an agent |
283
+ | [`docs/run-spec.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/run-spec.md) | writing the JSON for one run, field by field |
284
+ | [`docs/campaigns.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/campaigns.md) | repeating an arm to measure a band, or comparing two arms against it |
285
+ | [`docs/gates.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/gates.md) | writing a threshold that can hold — start from [`gates/succession.md`](https://github.com/codechu/masterwork/blob/v0.0.2/gates/succession.md) |
286
+ | [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/GROWING.md) | before writing a single tale — the shape is in [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/starter/) |
287
+ | [`CHANGELOG.md`](https://github.com/codechu/masterwork/blob/v0.0.2/CHANGELOG.md) | every entry names the incident that caused it |
288
+ | [assets/README.md](https://github.com/codechu/masterwork/blob/v0.0.2/assets/README.md) | you need a fifth image that matches the four |
288
289
 
289
290
  <details>
290
291
  <summary>Layout</summary>
@@ -302,8 +303,10 @@ runs/ local run directories (ignored — heavy and re-derivable)
302
303
 
303
304
  ---
304
305
 
305
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/icon.png" alt="Masterwork guild seal — a struck M hallmark inside a rope ring" width="96"></p>
306
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/icon.png" alt="Masterwork guild seal — a struck M hallmark inside a rope ring" width="96"></p>
306
307
 
307
- Contributing: [CONTRIBUTING.md](https://github.com/codechu/masterwork/blob/v0.0.1/CONTRIBUTING.md) · Changelog:
308
- [CHANGELOG.md](https://github.com/codechu/masterwork/blob/v0.0.1/CHANGELOG.md) · Licensed under the
309
- [Apache License 2.0](https://github.com/codechu/masterwork/blob/v0.0.1/LICENSE).
308
+ Contributing: [CONTRIBUTING.md](https://github.com/codechu/masterwork/blob/v0.0.2/CONTRIBUTING.md) · Changelog:
309
+ [CHANGELOG.md](https://github.com/codechu/masterwork/blob/v0.0.2/CHANGELOG.md) · Licensed under the
310
+ [Apache License 2.0](https://github.com/codechu/masterwork/blob/v0.0.2/LICENSE).
311
+
312
+ Part of [Codechu](https://github.com/codechu).
@@ -258,6 +258,7 @@ the position — a masterwork is submitted, and it can be refused.
258
258
  | [`docs/gates.md`](docs/gates.md) | writing a threshold that can hold — start from [`gates/succession.md`](gates/succession.md) |
259
259
  | [`corpus/GROWING.md`](corpus/GROWING.md) | before writing a single tale — the shape is in [`corpus/starter/`](corpus/starter/) |
260
260
  | [`CHANGELOG.md`](CHANGELOG.md) | every entry names the incident that caused it |
261
+ | [assets/README.md](assets/README.md) | you need a fifth image that matches the four |
261
262
 
262
263
  <details>
263
264
  <summary>Layout</summary>
@@ -280,3 +281,5 @@ runs/ local run directories (ignored — heavy and re-derivable)
280
281
  Contributing: [CONTRIBUTING.md](CONTRIBUTING.md) · Changelog:
281
282
  [CHANGELOG.md](CHANGELOG.md) · Licensed under the
282
283
  [Apache License 2.0](LICENSE).
284
+
285
+ Part of [Codechu](https://github.com/codechu).
@@ -1,8 +1,8 @@
1
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/banner.jpg" alt="A craftsman slides a sealed folio across his bench onto the guild's empty judging table; earlier pieces stand turned to the wall behind him." width="100%"></p>
1
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/banner.jpg" alt="A craftsman slides a sealed folio across his bench onto the guild's empty judging table; earlier pieces stand turned to the wall behind him." width="100%"></p>
2
2
 
3
3
  # Masterwork
4
4
 
5
- [![python](https://img.shields.io/badge/python-3.10%2B-blue)](#run-it) [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/codechu/masterwork/blob/v0.0.1/LICENSE) [![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/codechu/masterwork/blob/v0.0.1/CONTRIBUTING.md#ground-rules) [![status](https://img.shields.io/badge/status-not%20published-lightgrey)](#status)
5
+ [![python](https://img.shields.io/badge/python-3.10%2B-blue)](#run-it) [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/codechu/masterwork/blob/v0.0.2/LICENSE) [![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/codechu/masterwork/blob/v0.0.2/CONTRIBUTING.md#ground-rules) [![status](https://img.shields.io/badge/status-not%20published-lightgrey)](#status)
6
6
 
7
7
  *Makes a character for a model. Does not score it.*
8
8
 
@@ -88,7 +88,7 @@ record, and exits in a way that says *waiting*, not *broken*.
88
88
  | `HELD_WITHOUT_PURPOSE` | the spec does not say what the run decides | write `purpose`; if you cannot say what changes on each outcome, the run is not ready |
89
89
  | `HELD_AT_SEAL` | the piece is unreproducible, or the deployed copy differs | fix the seal or the deployment — never run "just to see" |
90
90
  | `HELD_AT_COMPLETENESS` | the grid is short | find the missing cells; if proceeding anyway, declare it |
91
- | `HELD_FOR_LABELLING` | labels are missing, empty, or written for an older version of a cell | get them with [`masterwork/blind_label.py`](https://github.com/codechu/masterwork/blob/v0.0.1/masterwork/blind_label.py); the line is waiting, not broken |
91
+ | `HELD_FOR_LABELLING` | labels are missing, empty, or written for an older version of a cell | get them with [`masterwork/blind_label.py`](https://github.com/codechu/masterwork/blob/v0.0.2/masterwork/blind_label.py); the line is waiting, not broken |
92
92
  | `HELD_AT_MEASUREMENT` | the benchmark says the score is not comparable | judge from a separate endpoint, or declare and keep the stamp |
93
93
  | `HELD_AT_GATE` | a threshold sits inside its own noise | the gate is void; measure the band, write a new gate |
94
94
  | `HELD_WITHOUT_MEASUREMENT` | a rule names an axis and nothing measured it | judge with the benchmark, or declare the run diagnostic — a gate that was checked is not a gate that was applied |
@@ -146,7 +146,7 @@ deleted, because deciding what to remove is not the line's call.
146
146
 
147
147
  ## Making a piece
148
148
 
149
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/ceremony.jpg" alt="A figure writes alone by lantern light; every earlier work in the room is draped and turned away, and a stick of sealing wax lies unused on the table." width="520"></p>
149
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/ceremony.jpg" alt="A figure writes alone by lantern light; every earlier work in the room is draped and turned away, and a stick of sealing wax lies unused on the table." width="520"></p>
150
150
 
151
151
  `pipeline/ceremony.py` runs the sitting. Four properties are the recipe rather
152
152
  than implementation detail, and each was paid for:
@@ -193,10 +193,10 @@ You get the line and its gates, the shape of the sitting, and the method
193
193
  written down: how a tale differs from an instruction, where a tale comes from,
194
194
  what a question has to do, why instructions come last, and how to tag a tale
195
195
  whose effect cannot be separated. That is
196
- [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/GROWING.md), and it is the part that transfers.
196
+ [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/GROWING.md), and it is the part that transfers.
197
197
 
198
198
  You do not get a corpus. Three pairs come with the repository in
199
- [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/starter/) so the machinery runs end to end and the
199
+ [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/starter/) so the machinery runs end to end and the
200
200
  form is unambiguous; they are a beginning and they are meant to be outgrown.
201
201
  The corpus is the work, and it has to be yours: a tale is written from
202
202
  something **you** measured and got wrong, and a corpus assembled from someone
@@ -252,12 +252,13 @@ the position — a masterwork is submitted, and it can be refused.
252
252
 
253
253
  | document | when you need it |
254
254
  |---|---|
255
- | [`AGENTS.md`](https://github.com/codechu/masterwork/blob/v0.0.1/AGENTS.md) | before running anything — the refusals, the vocabulary, and the four things not to do. Read it whether or not you are an agent |
256
- | [`docs/run-spec.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/run-spec.md) | writing the JSON for one run, field by field |
257
- | [`docs/campaigns.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/campaigns.md) | repeating an arm to measure a band, or comparing two arms against it |
258
- | [`docs/gates.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/gates.md) | writing a threshold that can hold — start from [`gates/succession.md`](https://github.com/codechu/masterwork/blob/v0.0.1/gates/succession.md) |
259
- | [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/GROWING.md) | before writing a single tale — the shape is in [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/starter/) |
260
- | [`CHANGELOG.md`](https://github.com/codechu/masterwork/blob/v0.0.1/CHANGELOG.md) | every entry names the incident that caused it |
255
+ | [`AGENTS.md`](https://github.com/codechu/masterwork/blob/v0.0.2/AGENTS.md) | before running anything — the refusals, the vocabulary, and the four things not to do. Read it whether or not you are an agent |
256
+ | [`docs/run-spec.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/run-spec.md) | writing the JSON for one run, field by field |
257
+ | [`docs/campaigns.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/campaigns.md) | repeating an arm to measure a band, or comparing two arms against it |
258
+ | [`docs/gates.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/gates.md) | writing a threshold that can hold — start from [`gates/succession.md`](https://github.com/codechu/masterwork/blob/v0.0.2/gates/succession.md) |
259
+ | [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/GROWING.md) | before writing a single tale — the shape is in [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/starter/) |
260
+ | [`CHANGELOG.md`](https://github.com/codechu/masterwork/blob/v0.0.2/CHANGELOG.md) | every entry names the incident that caused it |
261
+ | [assets/README.md](https://github.com/codechu/masterwork/blob/v0.0.2/assets/README.md) | you need a fifth image that matches the four |
261
262
 
262
263
  <details>
263
264
  <summary>Layout</summary>
@@ -275,8 +276,10 @@ runs/ local run directories (ignored — heavy and re-derivable)
275
276
 
276
277
  ---
277
278
 
278
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/icon.png" alt="Masterwork guild seal — a struck M hallmark inside a rope ring" width="96"></p>
279
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/icon.png" alt="Masterwork guild seal — a struck M hallmark inside a rope ring" width="96"></p>
279
280
 
280
- Contributing: [CONTRIBUTING.md](https://github.com/codechu/masterwork/blob/v0.0.1/CONTRIBUTING.md) · Changelog:
281
- [CHANGELOG.md](https://github.com/codechu/masterwork/blob/v0.0.1/CHANGELOG.md) · Licensed under the
282
- [Apache License 2.0](https://github.com/codechu/masterwork/blob/v0.0.1/LICENSE).
281
+ Contributing: [CONTRIBUTING.md](https://github.com/codechu/masterwork/blob/v0.0.2/CONTRIBUTING.md) · Changelog:
282
+ [CHANGELOG.md](https://github.com/codechu/masterwork/blob/v0.0.2/CHANGELOG.md) · Licensed under the
283
+ [Apache License 2.0](https://github.com/codechu/masterwork/blob/v0.0.2/LICENSE).
284
+
285
+ Part of [Codechu](https://github.com/codechu).
@@ -4,4 +4,4 @@ The version lives here and nowhere else. It is pre-release: nothing has
4
4
  been published, and the number exists so the tool can answer for itself
5
5
  rather than so a package index can order it.
6
6
  """
7
- __version__ = "0.0.1"
7
+ __version__ = "0.0.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masterwork
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: A production line for agent character: a sitting the model speaks for itself in, sealed candidates, frozen gates, and a verdict it is not allowed to give itself.
5
5
  Author: Codechu
6
6
  License-Expression: Apache-2.0
@@ -25,11 +25,11 @@ License-File: LICENSE
25
25
  Requires-Dist: journeyman-bench>=0.2.1
26
26
  Dynamic: license-file
27
27
 
28
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/banner.jpg" alt="A craftsman slides a sealed folio across his bench onto the guild's empty judging table; earlier pieces stand turned to the wall behind him." width="100%"></p>
28
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/banner.jpg" alt="A craftsman slides a sealed folio across his bench onto the guild's empty judging table; earlier pieces stand turned to the wall behind him." width="100%"></p>
29
29
 
30
30
  # Masterwork
31
31
 
32
- [![python](https://img.shields.io/badge/python-3.10%2B-blue)](#run-it) [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/codechu/masterwork/blob/v0.0.1/LICENSE) [![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/codechu/masterwork/blob/v0.0.1/CONTRIBUTING.md#ground-rules) [![status](https://img.shields.io/badge/status-not%20published-lightgrey)](#status)
32
+ [![python](https://img.shields.io/badge/python-3.10%2B-blue)](#run-it) [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/codechu/masterwork/blob/v0.0.2/LICENSE) [![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/codechu/masterwork/blob/v0.0.2/CONTRIBUTING.md#ground-rules) [![status](https://img.shields.io/badge/status-not%20published-lightgrey)](#status)
33
33
 
34
34
  *Makes a character for a model. Does not score it.*
35
35
 
@@ -115,7 +115,7 @@ record, and exits in a way that says *waiting*, not *broken*.
115
115
  | `HELD_WITHOUT_PURPOSE` | the spec does not say what the run decides | write `purpose`; if you cannot say what changes on each outcome, the run is not ready |
116
116
  | `HELD_AT_SEAL` | the piece is unreproducible, or the deployed copy differs | fix the seal or the deployment — never run "just to see" |
117
117
  | `HELD_AT_COMPLETENESS` | the grid is short | find the missing cells; if proceeding anyway, declare it |
118
- | `HELD_FOR_LABELLING` | labels are missing, empty, or written for an older version of a cell | get them with [`masterwork/blind_label.py`](https://github.com/codechu/masterwork/blob/v0.0.1/masterwork/blind_label.py); the line is waiting, not broken |
118
+ | `HELD_FOR_LABELLING` | labels are missing, empty, or written for an older version of a cell | get them with [`masterwork/blind_label.py`](https://github.com/codechu/masterwork/blob/v0.0.2/masterwork/blind_label.py); the line is waiting, not broken |
119
119
  | `HELD_AT_MEASUREMENT` | the benchmark says the score is not comparable | judge from a separate endpoint, or declare and keep the stamp |
120
120
  | `HELD_AT_GATE` | a threshold sits inside its own noise | the gate is void; measure the band, write a new gate |
121
121
  | `HELD_WITHOUT_MEASUREMENT` | a rule names an axis and nothing measured it | judge with the benchmark, or declare the run diagnostic — a gate that was checked is not a gate that was applied |
@@ -173,7 +173,7 @@ deleted, because deciding what to remove is not the line's call.
173
173
 
174
174
  ## Making a piece
175
175
 
176
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/ceremony.jpg" alt="A figure writes alone by lantern light; every earlier work in the room is draped and turned away, and a stick of sealing wax lies unused on the table." width="520"></p>
176
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/ceremony.jpg" alt="A figure writes alone by lantern light; every earlier work in the room is draped and turned away, and a stick of sealing wax lies unused on the table." width="520"></p>
177
177
 
178
178
  `pipeline/ceremony.py` runs the sitting. Four properties are the recipe rather
179
179
  than implementation detail, and each was paid for:
@@ -220,10 +220,10 @@ You get the line and its gates, the shape of the sitting, and the method
220
220
  written down: how a tale differs from an instruction, where a tale comes from,
221
221
  what a question has to do, why instructions come last, and how to tag a tale
222
222
  whose effect cannot be separated. That is
223
- [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/GROWING.md), and it is the part that transfers.
223
+ [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/GROWING.md), and it is the part that transfers.
224
224
 
225
225
  You do not get a corpus. Three pairs come with the repository in
226
- [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/starter/) so the machinery runs end to end and the
226
+ [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/starter/) so the machinery runs end to end and the
227
227
  form is unambiguous; they are a beginning and they are meant to be outgrown.
228
228
  The corpus is the work, and it has to be yours: a tale is written from
229
229
  something **you** measured and got wrong, and a corpus assembled from someone
@@ -279,12 +279,13 @@ the position — a masterwork is submitted, and it can be refused.
279
279
 
280
280
  | document | when you need it |
281
281
  |---|---|
282
- | [`AGENTS.md`](https://github.com/codechu/masterwork/blob/v0.0.1/AGENTS.md) | before running anything — the refusals, the vocabulary, and the four things not to do. Read it whether or not you are an agent |
283
- | [`docs/run-spec.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/run-spec.md) | writing the JSON for one run, field by field |
284
- | [`docs/campaigns.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/campaigns.md) | repeating an arm to measure a band, or comparing two arms against it |
285
- | [`docs/gates.md`](https://github.com/codechu/masterwork/blob/v0.0.1/docs/gates.md) | writing a threshold that can hold — start from [`gates/succession.md`](https://github.com/codechu/masterwork/blob/v0.0.1/gates/succession.md) |
286
- | [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/GROWING.md) | before writing a single tale — the shape is in [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.1/corpus/starter/) |
287
- | [`CHANGELOG.md`](https://github.com/codechu/masterwork/blob/v0.0.1/CHANGELOG.md) | every entry names the incident that caused it |
282
+ | [`AGENTS.md`](https://github.com/codechu/masterwork/blob/v0.0.2/AGENTS.md) | before running anything — the refusals, the vocabulary, and the four things not to do. Read it whether or not you are an agent |
283
+ | [`docs/run-spec.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/run-spec.md) | writing the JSON for one run, field by field |
284
+ | [`docs/campaigns.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/campaigns.md) | repeating an arm to measure a band, or comparing two arms against it |
285
+ | [`docs/gates.md`](https://github.com/codechu/masterwork/blob/v0.0.2/docs/gates.md) | writing a threshold that can hold — start from [`gates/succession.md`](https://github.com/codechu/masterwork/blob/v0.0.2/gates/succession.md) |
286
+ | [`corpus/GROWING.md`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/GROWING.md) | before writing a single tale — the shape is in [`corpus/starter/`](https://github.com/codechu/masterwork/blob/v0.0.2/corpus/starter/) |
287
+ | [`CHANGELOG.md`](https://github.com/codechu/masterwork/blob/v0.0.2/CHANGELOG.md) | every entry names the incident that caused it |
288
+ | [assets/README.md](https://github.com/codechu/masterwork/blob/v0.0.2/assets/README.md) | you need a fifth image that matches the four |
288
289
 
289
290
  <details>
290
291
  <summary>Layout</summary>
@@ -302,8 +303,10 @@ runs/ local run directories (ignored — heavy and re-derivable)
302
303
 
303
304
  ---
304
305
 
305
- <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.1/assets/icon.png" alt="Masterwork guild seal — a struck M hallmark inside a rope ring" width="96"></p>
306
+ <p align="center"><img src="https://raw.githubusercontent.com/codechu/masterwork/v0.0.2/assets/icon.png" alt="Masterwork guild seal — a struck M hallmark inside a rope ring" width="96"></p>
306
307
 
307
- Contributing: [CONTRIBUTING.md](https://github.com/codechu/masterwork/blob/v0.0.1/CONTRIBUTING.md) · Changelog:
308
- [CHANGELOG.md](https://github.com/codechu/masterwork/blob/v0.0.1/CHANGELOG.md) · Licensed under the
309
- [Apache License 2.0](https://github.com/codechu/masterwork/blob/v0.0.1/LICENSE).
308
+ Contributing: [CONTRIBUTING.md](https://github.com/codechu/masterwork/blob/v0.0.2/CONTRIBUTING.md) · Changelog:
309
+ [CHANGELOG.md](https://github.com/codechu/masterwork/blob/v0.0.2/CHANGELOG.md) · Licensed under the
310
+ [Apache License 2.0](https://github.com/codechu/masterwork/blob/v0.0.2/LICENSE).
311
+
312
+ Part of [Codechu](https://github.com/codechu).
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "masterwork"
7
- version = "0.0.1"
7
+ version = "0.0.2"
8
8
  description = "A production line for agent character: a sitting the model speaks for itself in, sealed candidates, frozen gates, and a verdict it is not allowed to give itself."
9
9
  readme = "README.pypi.md"
10
10
  requires-python = ">=3.10"
@@ -39,11 +39,25 @@ def test_the_judge_is_a_declared_dependency():
39
39
 
40
40
 
41
41
  def test_versions_agree():
42
- packaged = re.search(r'(?m)^version = "([^"]+)"',
43
- read("pyproject.toml")).group(1)
44
- in_code = re.search(r'(?m)^__version__ = "([^"]+)"',
45
- read("masterwork/__init__.py")).group(1)
46
- assert packaged == in_code, f"pyproject {packaged} vs code {in_code}"
42
+ """Four records now, and a release moves all of them or none.
43
+
44
+ Next door a release bumped one of four and left three behind, so the
45
+ package announced one version while every artefact it produced was
46
+ stamped with another. The archived record is the worst of them: a DOI
47
+ citing a version that did not produce the work cannot be corrected
48
+ after the fact.
49
+ """
50
+ found = {
51
+ "pyproject.toml": re.search(r'(?m)^version = "([^"]+)"',
52
+ read("pyproject.toml")).group(1),
53
+ "masterwork/__init__.py": re.search(r'(?m)^__version__ = "([^"]+)"',
54
+ read("masterwork/__init__.py")).group(1),
55
+ "CITATION.cff": re.search(r"(?m)^version: (\S+)",
56
+ read("CITATION.cff")).group(1),
57
+ ".zenodo.json": re.search(r'"version": "([^"]+)"',
58
+ read(".zenodo.json")).group(1),
59
+ }
60
+ assert len(set(found.values())) == 1, f"version drift: {found}"
47
61
 
48
62
 
49
63
  def test_pypi_readme_is_current():
File without changes
File without changes
File without changes