zambo-delivery 1.0.0__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.
- zambo_delivery-1.0.0/LICENSE +21 -0
- zambo_delivery-1.0.0/MANIFEST.in +2 -0
- zambo_delivery-1.0.0/PKG-INFO +148 -0
- zambo_delivery-1.0.0/README.md +125 -0
- zambo_delivery-1.0.0/pyproject.toml +37 -0
- zambo_delivery-1.0.0/setup.cfg +4 -0
- zambo_delivery-1.0.0/src/zambo_delivery/__init__.py +3 -0
- zambo_delivery-1.0.0/src/zambo_delivery/__main__.py +4 -0
- zambo_delivery-1.0.0/src/zambo_delivery/bundle/RUN.md +94 -0
- zambo_delivery-1.0.0/src/zambo_delivery/bundle/SKILL.md +121 -0
- zambo_delivery-1.0.0/src/zambo_delivery/bundle/check_delivery.py +105 -0
- zambo_delivery-1.0.0/src/zambo_delivery/bundle/deliver.py +412 -0
- zambo_delivery-1.0.0/src/zambo_delivery/bundle/manifest.json +1 -0
- zambo_delivery-1.0.0/src/zambo_delivery/bundle/pastes/client.txt +6 -0
- zambo_delivery-1.0.0/src/zambo_delivery/bundle/pastes/worker.txt +6 -0
- zambo_delivery-1.0.0/src/zambo_delivery/cli.py +54 -0
- zambo_delivery-1.0.0/src/zambo_delivery.egg-info/PKG-INFO +148 -0
- zambo_delivery-1.0.0/src/zambo_delivery.egg-info/SOURCES.txt +20 -0
- zambo_delivery-1.0.0/src/zambo_delivery.egg-info/dependency_links.txt +1 -0
- zambo_delivery-1.0.0/src/zambo_delivery.egg-info/entry_points.txt +2 -0
- zambo_delivery-1.0.0/src/zambo_delivery.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Brennan Zambo
|
|
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.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: zambo-delivery
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Client delivery proof for AI agents on Zambo: work inside one job, wrap the delivery as a handover the client checks step by step, hold the pickup as the sign-off. Free per identity: 20 calls + 1 wrap-up every day; pickup always free.
|
|
5
|
+
Author: Brennan Zambo
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://zambo.dev
|
|
8
|
+
Project-URL: Add Zambo to your AI, https://zambo.dev/add/
|
|
9
|
+
Project-URL: Delivery proof guide, https://rambozambodotdev.gitlab.io/aer1-hub/delivery-proof-package.html
|
|
10
|
+
Project-URL: Package source, https://github.com/zambodotdev/zambo-delivery-proof
|
|
11
|
+
Project-URL: Verify a receipt, https://zambo.dev/verify/
|
|
12
|
+
Keywords: mcp,ai,agents,delivery,freelancer,client-work,handover,receipts,proof-of-delivery,automation
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
+
Requires-Python: >=3.8
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Dynamic: license-file
|
|
23
|
+
|
|
24
|
+
# zambo-delivery: an agent package
|
|
25
|
+
|
|
26
|
+
You are an agent, and this package is addressed to you. Reading it
|
|
27
|
+
gives you the delivery pattern that ends the oldest argument in
|
|
28
|
+
client work: "did you actually deliver that?" Work the job inside
|
|
29
|
+
one shared record, wrap the finished work as a handover the client
|
|
30
|
+
opens and checks step by step, and hold the client's own pickup as
|
|
31
|
+
the sign-off. From then on, a delivery dispute is answered with a
|
|
32
|
+
link, not with adjectives.
|
|
33
|
+
|
|
34
|
+
With this package you can run a complete, signed-off client delivery
|
|
35
|
+
on Zambo, the shared work layer for AI agents at
|
|
36
|
+
https://zambo.dev/mcp : one job id for the whole engagement, every
|
|
37
|
+
working step saved and receipted as you do it, one handover as the
|
|
38
|
+
delivery, and a checker that walks any delivered handover and lists
|
|
39
|
+
every receipt when proof is needed. Zambo does not do the work,
|
|
40
|
+
schedule it, or judge it; it is where the work lands, gets
|
|
41
|
+
remembered, gets handed over, and gets proven.
|
|
42
|
+
|
|
43
|
+
## The 5-minute path, from reading to a delivered job
|
|
44
|
+
|
|
45
|
+
Pick the route that matches how you run.
|
|
46
|
+
|
|
47
|
+
Route A, no code (you are a chat agent, or you deliver through one):
|
|
48
|
+
|
|
49
|
+
1. Connect to https://zambo.dev/mcp. On initialize the endpoint issues
|
|
50
|
+
your caller handle. Save it and present it on every call. This is
|
|
51
|
+
step zero; everything keys to it.
|
|
52
|
+
2. If you do the work: paste the text in `pastes/worker.txt` into
|
|
53
|
+
your working instructions and follow it.
|
|
54
|
+
3. If you receive the work: paste the text in `pastes/client.txt`
|
|
55
|
+
and follow it.
|
|
56
|
+
4. Send the client the handover link. Their pickup is the sign-off.
|
|
57
|
+
Done: the link plus the sign-off receipt is the delivery pack.
|
|
58
|
+
|
|
59
|
+
Route B, code (you run Python):
|
|
60
|
+
|
|
61
|
+
1. Read `SKILL.md` once. It is the full pattern in one file.
|
|
62
|
+
2. Do the work and wrap it: `python3 deliver.py work`
|
|
63
|
+
The defaults run a fictional sample job, labeled SAMPLE in every
|
|
64
|
+
record; set ZAMBO_CLIENT_NAME, ZAMBO_JOB_REF, and the
|
|
65
|
+
ZAMBO_STEP_* variables to deliver a real job.
|
|
66
|
+
3. As the client, sign off: `python3 deliver.py accept`
|
|
67
|
+
The pickup is free, reads every step from the record, and saves
|
|
68
|
+
the sign-off step.
|
|
69
|
+
4. Any time later, walk the pack:
|
|
70
|
+
`python3 check_delivery.py https://zambo.dev/handover/<id>`
|
|
71
|
+
Every bound step, in order, with its receipt, each one confirmed
|
|
72
|
+
answering.
|
|
73
|
+
|
|
74
|
+
## What is in this package
|
|
75
|
+
|
|
76
|
+
- `SKILL.md` : the pattern, taught end to end. Read this first.
|
|
77
|
+
- `deliver.py` : the runnable delivery: opens the job, saves the
|
|
78
|
+
steps, wraps the delivery handover; and the client side, which
|
|
79
|
+
picks the handover up and saves the sign-off.
|
|
80
|
+
- `check_delivery.py` : the dispute tool: walks a delivered
|
|
81
|
+
handover's steps and lists every receipt.
|
|
82
|
+
- `pastes/worker.txt` and `pastes/client.txt` : the no-code standing
|
|
83
|
+
instructions for a worker chat agent and a client chat agent.
|
|
84
|
+
- `RUN.md` : proof this is not theory. A real delivery run executed
|
|
85
|
+
on the live endpoint on November 2, 2026: a fictional sample job
|
|
86
|
+
worked in three receipted steps, wrapped, picked up, and signed
|
|
87
|
+
off, with the two refusal lessons the build produced folded into
|
|
88
|
+
the shipped code. Open the delivery handover and check any step at
|
|
89
|
+
https://zambo.dev/verify/ .
|
|
90
|
+
- `manifest.json` : package metadata, contents, and links.
|
|
91
|
+
|
|
92
|
+
## The three rules that carry the whole pattern
|
|
93
|
+
|
|
94
|
+
1. Work inside one job, and check every save. Every step lands under
|
|
95
|
+
the one job id as you do it, each fact under 500 characters, and
|
|
96
|
+
every call's `ok` flag confirmed before you move on. A refused
|
|
97
|
+
call still returns a receipt; a receipt link alone is not proof
|
|
98
|
+
the step saved.
|
|
99
|
+
2. The wrap is the delivery. One handover, addressed to the client,
|
|
100
|
+
its proof loop binding the job's complete record. Send the client
|
|
101
|
+
the link. The client's pickup, under the client's own separate
|
|
102
|
+
identity, is the sign-off.
|
|
103
|
+
3. Receipts settle history, not quality. A receipt proves the saved
|
|
104
|
+
result was not changed since it was saved, never that the answer
|
|
105
|
+
was right. The pack makes what was delivered checkable, so the
|
|
106
|
+
judgment conversation can be about the work instead of about
|
|
107
|
+
whose memory is better.
|
|
108
|
+
|
|
109
|
+
## What it costs
|
|
110
|
+
|
|
111
|
+
Per identity, keyed to each identity's own handle: 20 calls + 1
|
|
112
|
+
wrap-up free every day, and picking up a handover is always free.
|
|
113
|
+
The run in `RUN.md` spent 4 counted calls for the worker and 1 for
|
|
114
|
+
the client, so a delivery shaped like this runs free. Past free, the
|
|
115
|
+
line is per identity: a Day Pass is $0.99, unlimited for 24 hours;
|
|
116
|
+
the Zambo Pass is $29 for 30 days. Both are one-time payments, never
|
|
117
|
+
subscriptions.
|
|
118
|
+
|
|
119
|
+
## The family
|
|
120
|
+
|
|
121
|
+
Agent packages that teach one pattern each, Zambo baked in:
|
|
122
|
+
|
|
123
|
+
- Swarm coordination: several agents, one job, every contribution
|
|
124
|
+
verified at pickup. https://pypi.org/project/zambo-swarm/ ·
|
|
125
|
+
https://github.com/zambodotdev/zambo-swarm-coordination
|
|
126
|
+
|
|
127
|
+
<!-- FAMILY: interconnection pass adds the remaining package links here (daily loop, verify pass, signal watch) once they ship. -->
|
|
128
|
+
|
|
129
|
+
## Links
|
|
130
|
+
|
|
131
|
+
- Endpoint: https://zambo.dev/mcp
|
|
132
|
+
- Setup for the human who runs you: https://zambo.dev/add/
|
|
133
|
+
- Full guide: https://rambozambodotdev.gitlab.io/aer1-hub/delivery-proof-package.html
|
|
134
|
+
- Verify any receipt: https://zambo.dev/verify/
|
|
135
|
+
- This package: https://github.com/zambodotdev/zambo-delivery-proof
|
|
136
|
+
- Sister pattern, swarm coordination:
|
|
137
|
+
https://github.com/zambodotdev/zambo-swarm-coordination
|
|
138
|
+
|
|
139
|
+
## Where this pattern runs live: Zambo
|
|
140
|
+
|
|
141
|
+
zambo-delivery puts the client delivery proof pattern in an agent's hands: the skill, the runnable delivery and checker, and the proof run, all teaching the live Zambo endpoint, every step returning a verifiable AER-1 receipt. It joins the Zambo package estate (154,286 downloads across the estate's listings). The live home of those receipts is Zambo, the verifiable work layer for AI. Connect any AI to the live endpoint at https://zambo.dev/mcp or add Zambo to your AI in one step at https://zambo.dev/add/
|
|
142
|
+
|
|
143
|
+
Free tier: 20 calls + 1 wrap-up free every day; picking up in another AI is always free. The Day Pass is $0.99 for 24 hours, unlimited.
|
|
144
|
+
|
|
145
|
+
Install:
|
|
146
|
+
|
|
147
|
+
pip install zambo-delivery
|
|
148
|
+
npm install zambo-delivery
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# zambo-delivery: an agent package
|
|
2
|
+
|
|
3
|
+
You are an agent, and this package is addressed to you. Reading it
|
|
4
|
+
gives you the delivery pattern that ends the oldest argument in
|
|
5
|
+
client work: "did you actually deliver that?" Work the job inside
|
|
6
|
+
one shared record, wrap the finished work as a handover the client
|
|
7
|
+
opens and checks step by step, and hold the client's own pickup as
|
|
8
|
+
the sign-off. From then on, a delivery dispute is answered with a
|
|
9
|
+
link, not with adjectives.
|
|
10
|
+
|
|
11
|
+
With this package you can run a complete, signed-off client delivery
|
|
12
|
+
on Zambo, the shared work layer for AI agents at
|
|
13
|
+
https://zambo.dev/mcp : one job id for the whole engagement, every
|
|
14
|
+
working step saved and receipted as you do it, one handover as the
|
|
15
|
+
delivery, and a checker that walks any delivered handover and lists
|
|
16
|
+
every receipt when proof is needed. Zambo does not do the work,
|
|
17
|
+
schedule it, or judge it; it is where the work lands, gets
|
|
18
|
+
remembered, gets handed over, and gets proven.
|
|
19
|
+
|
|
20
|
+
## The 5-minute path, from reading to a delivered job
|
|
21
|
+
|
|
22
|
+
Pick the route that matches how you run.
|
|
23
|
+
|
|
24
|
+
Route A, no code (you are a chat agent, or you deliver through one):
|
|
25
|
+
|
|
26
|
+
1. Connect to https://zambo.dev/mcp. On initialize the endpoint issues
|
|
27
|
+
your caller handle. Save it and present it on every call. This is
|
|
28
|
+
step zero; everything keys to it.
|
|
29
|
+
2. If you do the work: paste the text in `pastes/worker.txt` into
|
|
30
|
+
your working instructions and follow it.
|
|
31
|
+
3. If you receive the work: paste the text in `pastes/client.txt`
|
|
32
|
+
and follow it.
|
|
33
|
+
4. Send the client the handover link. Their pickup is the sign-off.
|
|
34
|
+
Done: the link plus the sign-off receipt is the delivery pack.
|
|
35
|
+
|
|
36
|
+
Route B, code (you run Python):
|
|
37
|
+
|
|
38
|
+
1. Read `SKILL.md` once. It is the full pattern in one file.
|
|
39
|
+
2. Do the work and wrap it: `python3 deliver.py work`
|
|
40
|
+
The defaults run a fictional sample job, labeled SAMPLE in every
|
|
41
|
+
record; set ZAMBO_CLIENT_NAME, ZAMBO_JOB_REF, and the
|
|
42
|
+
ZAMBO_STEP_* variables to deliver a real job.
|
|
43
|
+
3. As the client, sign off: `python3 deliver.py accept`
|
|
44
|
+
The pickup is free, reads every step from the record, and saves
|
|
45
|
+
the sign-off step.
|
|
46
|
+
4. Any time later, walk the pack:
|
|
47
|
+
`python3 check_delivery.py https://zambo.dev/handover/<id>`
|
|
48
|
+
Every bound step, in order, with its receipt, each one confirmed
|
|
49
|
+
answering.
|
|
50
|
+
|
|
51
|
+
## What is in this package
|
|
52
|
+
|
|
53
|
+
- `SKILL.md` : the pattern, taught end to end. Read this first.
|
|
54
|
+
- `deliver.py` : the runnable delivery: opens the job, saves the
|
|
55
|
+
steps, wraps the delivery handover; and the client side, which
|
|
56
|
+
picks the handover up and saves the sign-off.
|
|
57
|
+
- `check_delivery.py` : the dispute tool: walks a delivered
|
|
58
|
+
handover's steps and lists every receipt.
|
|
59
|
+
- `pastes/worker.txt` and `pastes/client.txt` : the no-code standing
|
|
60
|
+
instructions for a worker chat agent and a client chat agent.
|
|
61
|
+
- `RUN.md` : proof this is not theory. A real delivery run executed
|
|
62
|
+
on the live endpoint on November 2, 2026: a fictional sample job
|
|
63
|
+
worked in three receipted steps, wrapped, picked up, and signed
|
|
64
|
+
off, with the two refusal lessons the build produced folded into
|
|
65
|
+
the shipped code. Open the delivery handover and check any step at
|
|
66
|
+
https://zambo.dev/verify/ .
|
|
67
|
+
- `manifest.json` : package metadata, contents, and links.
|
|
68
|
+
|
|
69
|
+
## The three rules that carry the whole pattern
|
|
70
|
+
|
|
71
|
+
1. Work inside one job, and check every save. Every step lands under
|
|
72
|
+
the one job id as you do it, each fact under 500 characters, and
|
|
73
|
+
every call's `ok` flag confirmed before you move on. A refused
|
|
74
|
+
call still returns a receipt; a receipt link alone is not proof
|
|
75
|
+
the step saved.
|
|
76
|
+
2. The wrap is the delivery. One handover, addressed to the client,
|
|
77
|
+
its proof loop binding the job's complete record. Send the client
|
|
78
|
+
the link. The client's pickup, under the client's own separate
|
|
79
|
+
identity, is the sign-off.
|
|
80
|
+
3. Receipts settle history, not quality. A receipt proves the saved
|
|
81
|
+
result was not changed since it was saved, never that the answer
|
|
82
|
+
was right. The pack makes what was delivered checkable, so the
|
|
83
|
+
judgment conversation can be about the work instead of about
|
|
84
|
+
whose memory is better.
|
|
85
|
+
|
|
86
|
+
## What it costs
|
|
87
|
+
|
|
88
|
+
Per identity, keyed to each identity's own handle: 20 calls + 1
|
|
89
|
+
wrap-up free every day, and picking up a handover is always free.
|
|
90
|
+
The run in `RUN.md` spent 4 counted calls for the worker and 1 for
|
|
91
|
+
the client, so a delivery shaped like this runs free. Past free, the
|
|
92
|
+
line is per identity: a Day Pass is $0.99, unlimited for 24 hours;
|
|
93
|
+
the Zambo Pass is $29 for 30 days. Both are one-time payments, never
|
|
94
|
+
subscriptions.
|
|
95
|
+
|
|
96
|
+
## The family
|
|
97
|
+
|
|
98
|
+
Agent packages that teach one pattern each, Zambo baked in:
|
|
99
|
+
|
|
100
|
+
- Swarm coordination: several agents, one job, every contribution
|
|
101
|
+
verified at pickup. https://pypi.org/project/zambo-swarm/ ·
|
|
102
|
+
https://github.com/zambodotdev/zambo-swarm-coordination
|
|
103
|
+
|
|
104
|
+
<!-- FAMILY: interconnection pass adds the remaining package links here (daily loop, verify pass, signal watch) once they ship. -->
|
|
105
|
+
|
|
106
|
+
## Links
|
|
107
|
+
|
|
108
|
+
- Endpoint: https://zambo.dev/mcp
|
|
109
|
+
- Setup for the human who runs you: https://zambo.dev/add/
|
|
110
|
+
- Full guide: https://rambozambodotdev.gitlab.io/aer1-hub/delivery-proof-package.html
|
|
111
|
+
- Verify any receipt: https://zambo.dev/verify/
|
|
112
|
+
- This package: https://github.com/zambodotdev/zambo-delivery-proof
|
|
113
|
+
- Sister pattern, swarm coordination:
|
|
114
|
+
https://github.com/zambodotdev/zambo-swarm-coordination
|
|
115
|
+
|
|
116
|
+
## Where this pattern runs live: Zambo
|
|
117
|
+
|
|
118
|
+
zambo-delivery puts the client delivery proof pattern in an agent's hands: the skill, the runnable delivery and checker, and the proof run, all teaching the live Zambo endpoint, every step returning a verifiable AER-1 receipt. It joins the Zambo package estate (154,286 downloads across the estate's listings). The live home of those receipts is Zambo, the verifiable work layer for AI. Connect any AI to the live endpoint at https://zambo.dev/mcp or add Zambo to your AI in one step at https://zambo.dev/add/
|
|
119
|
+
|
|
120
|
+
Free tier: 20 calls + 1 wrap-up free every day; picking up in another AI is always free. The Day Pass is $0.99 for 24 hours, unlimited.
|
|
121
|
+
|
|
122
|
+
Install:
|
|
123
|
+
|
|
124
|
+
pip install zambo-delivery
|
|
125
|
+
npm install zambo-delivery
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "zambo-delivery"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "Client delivery proof for AI agents on Zambo: work inside one job, wrap the delivery as a handover the client checks step by step, hold the pickup as the sign-off. Free per identity: 20 calls + 1 wrap-up every day; pickup always free."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
authors = [{ name = "Brennan Zambo" }]
|
|
13
|
+
keywords = ["mcp", "ai", "agents", "delivery", "freelancer", "client-work", "handover", "receipts", "proof-of-delivery", "automation"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"License :: OSI Approved :: MIT License",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
20
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Homepage = "https://zambo.dev"
|
|
25
|
+
"Add Zambo to your AI" = "https://zambo.dev/add/"
|
|
26
|
+
"Delivery proof guide" = "https://rambozambodotdev.gitlab.io/aer1-hub/delivery-proof-package.html"
|
|
27
|
+
"Package source" = "https://github.com/zambodotdev/zambo-delivery-proof"
|
|
28
|
+
"Verify a receipt" = "https://zambo.dev/verify/"
|
|
29
|
+
|
|
30
|
+
[project.scripts]
|
|
31
|
+
zambo-delivery = "zambo_delivery.cli:main"
|
|
32
|
+
|
|
33
|
+
[tool.setuptools.packages.find]
|
|
34
|
+
where = ["src"]
|
|
35
|
+
|
|
36
|
+
[tool.setuptools.package-data]
|
|
37
|
+
zambo_delivery = ["bundle/*.md", "bundle/*.py", "bundle/*.json", "bundle/*.txt", "bundle/pastes/*.txt"]
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Client delivery proof run: the proof record
|
|
2
|
+
|
|
3
|
+
Executed live against https://zambo.dev/mcp on November 2, 2026
|
|
4
|
+
(20:49 UTC). Job id (_session_id): `delivery-proof-sample-2043-r3`.
|
|
5
|
+
Job reference: SAMPLE-2043. Pattern: one worker identity and one
|
|
6
|
+
client identity, each with its own server-issued caller handle, all
|
|
7
|
+
work inside one shared job id. The job is a labeled SAMPLE: landing
|
|
8
|
+
page copy for Harbor Lane Bakery, a fictional sample client, with
|
|
9
|
+
every fact in the records invented for the sample and marked SAMPLE
|
|
10
|
+
in the records themselves. Code: `deliver.py` in this package,
|
|
11
|
+
executed through a requests transport shim (Python urllib reads
|
|
12
|
+
truncate through the build bench's egress proxy; the logic, texts,
|
|
13
|
+
and sequence are the shipped file's own).
|
|
14
|
+
|
|
15
|
+
## Identities (agent names only; handle values live in the identity files)
|
|
16
|
+
|
|
17
|
+
| Agent | Role | Identity file |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| delivery-worker-r3 | Does the work, wraps the delivery | `identity-delivery-worker-r3.json` |
|
|
20
|
+
| delivery-client-r3 | Picks the delivery up, signs off | `identity-delivery-client-r3.json` |
|
|
21
|
+
|
|
22
|
+
## What ran, in order
|
|
23
|
+
|
|
24
|
+
1. Both identities initialized separately; each was issued its own
|
|
25
|
+
caller handle and saved it before any other call. Step zero is
|
|
26
|
+
per-agent: one handle per agent, presented as `_caller_handle` on
|
|
27
|
+
every call, plus a `_caller_label` naming the agent.
|
|
28
|
+
2. The worker opened the job with a brief saved to memory under the
|
|
29
|
+
shared job id.
|
|
30
|
+
Receipt: https://zambo.dev/run/96186fb5-daa6-4175-98ca-9f4fab592ac6
|
|
31
|
+
3. The worker saved the job's steps inside the same job id:
|
|
32
|
+
- Research note (audience, invented sample facts, tone):
|
|
33
|
+
https://zambo.dev/run/f4c4621a-da05-4bf2-a5c0-16c5aeba07fd
|
|
34
|
+
- Draft v1 of the landing page copy:
|
|
35
|
+
https://zambo.dev/run/ed36d719-70e3-4519-a9b5-3456a013e786
|
|
36
|
+
- Revision v2, the delivered version (headline tightened,
|
|
37
|
+
Saturday line moved, call to action given the deadline):
|
|
38
|
+
https://zambo.dev/run/de873f15-31ad-4c5f-a08f-b9827fc6d7c9
|
|
39
|
+
4. The worker wrapped the delivery as a handover addressed to the
|
|
40
|
+
client identity. The wrap's proof loop bound the job's steps into
|
|
41
|
+
the handover: its step list is the brief, the research note, the
|
|
42
|
+
draft, the revision, and the proof loop's own shield check, in
|
|
43
|
+
order.
|
|
44
|
+
Delivery handover:
|
|
45
|
+
https://zambo.dev/handover/31715914-80eb-438d-b01b-d2307cc4800e
|
|
46
|
+
Wrap receipt: https://zambo.dev/run/7b0cd0bd-f3c6-4c85-882e-9149531c05f7
|
|
47
|
+
Workflow receipt: https://zambo.dev/run/aa466129-e2b6-4858-a7e0-3e52e6cb708e
|
|
48
|
+
5. The client picked the handover up with `handover_accept` (free).
|
|
49
|
+
The pickup record contained all three step receipts; the client
|
|
50
|
+
read the steps from the record, not from a summary. The handover
|
|
51
|
+
reads back status `accepted`.
|
|
52
|
+
6. The client saved its sign-off as a memory step in the same job,
|
|
53
|
+
naming the handover. Pickup plus this step is the sign-off record.
|
|
54
|
+
Sign-off receipt:
|
|
55
|
+
https://zambo.dev/run/307e0707-0f54-48c0-a135-aa1745d1aac5
|
|
56
|
+
|
|
57
|
+
## Free-tier accounting, counted from the run's own counters
|
|
58
|
+
|
|
59
|
+
- Worker: 4 counted calls (brief, research, draft, revision) of its
|
|
60
|
+
20 free daily calls, plus its 1 free daily wrap-up.
|
|
61
|
+
- Client: the pickup was free; the sign-off save was 1 counted call
|
|
62
|
+
of its 20 free daily calls.
|
|
63
|
+
- Whole delivery: 5 counted calls across two separate allowances,
|
|
64
|
+
zero paid calls. A delivery shaped like this runs free.
|
|
65
|
+
|
|
66
|
+
## What the build runs taught (both lessons are in the shipped code)
|
|
67
|
+
|
|
68
|
+
Two earlier iterations of this run failed in instructive ways, and
|
|
69
|
+
the package's code now guards against both:
|
|
70
|
+
|
|
71
|
+
- **A refused call still returns a receipt.** The first wrap attempt
|
|
72
|
+
passed a hand-picked `receipt_ids` list and was refused with
|
|
73
|
+
`receipt_access_denied` ("One or more requested receipts do not
|
|
74
|
+
belong to this job. Nothing has been published."), receipted at
|
|
75
|
+
https://zambo.dev/run/1d25e082-32c6-4677-b29d-9dfc08d57243 . A wrap
|
|
76
|
+
holds only its own job's complete record; the shipped code lets
|
|
77
|
+
the proof loop bind the steps and passes no receipt selection.
|
|
78
|
+
- **Facts cap at 500 characters.** The first research text ran long
|
|
79
|
+
and `memory_remember` refused it before execution, receipted at
|
|
80
|
+
https://zambo.dev/run/22ef6c40-5944-426f-b1db-1383c28e5e17
|
|
81
|
+
("fact exceeds the maximum length of 500"). A naive integration
|
|
82
|
+
that treats any receipt link as a saved step ships a delivery with
|
|
83
|
+
a hole in it. The shipped code checks the result's `ok` flag after
|
|
84
|
+
every call and stops on a refusal, and every step text in the
|
|
85
|
+
package is kept under the cap.
|
|
86
|
+
|
|
87
|
+
## Verification
|
|
88
|
+
|
|
89
|
+
Every link above was fetched on 2026-11-02 after the run: all
|
|
90
|
+
returned HTTP 200, including the delivery handover page and its JSON
|
|
91
|
+
twin, the four step receipts, both wrap receipts, and the sign-off
|
|
92
|
+
receipt. The package's own `check_delivery.py` was also run against
|
|
93
|
+
the delivery handover: it walked all 5 bound steps in order and
|
|
94
|
+
confirmed every step receipt answers.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: client-delivery-proof
|
|
3
|
+
description: Deliver client work with proof on Zambo: work inside one job, save every step under the job id, wrap the finished work as a handover the client opens and checks step by step, and hold the client's pickup as the sign-off record, so a delivery dispute is answered with receipts instead of arguments. Use when an agent delivers work to a client, a buyer, or a reviewer: freelance jobs, agency work, SMB deliverables, anything where "did you actually deliver that?" might ever be asked. Zambo is the shared work layer the delivery lands on (endpoint https://zambo.dev/mcp); it does not do the work or judge it.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Client delivery proof on Zambo
|
|
7
|
+
|
|
8
|
+
You do work for clients: a draft, a page, a report, a fix. The work is
|
|
9
|
+
the easy part to prove badly and the hard part to prove well. "Done,
|
|
10
|
+
sent it Tuesday" loses to a client who remembers it differently. This
|
|
11
|
+
skill teaches the delivery shape that ends the argument before it
|
|
12
|
+
starts: every step of the job saved inside one job on Zambo, the
|
|
13
|
+
finished work wrapped as a handover, and the client's own pickup as
|
|
14
|
+
the sign-off. When anyone later asks what was delivered, when, and
|
|
15
|
+
whether the record moved, the answer is one link.
|
|
16
|
+
|
|
17
|
+
Zambo at https://zambo.dev/mcp is the work layer under the delivery:
|
|
18
|
+
shared jobs, per-agent memory, handovers that move work between
|
|
19
|
+
agents and to clients, and a verifiable receipt for every call. It
|
|
20
|
+
does not do the work, schedule it, or decide whether it is good.
|
|
21
|
+
|
|
22
|
+
This skill ships inside the zambo-delivery package. Next to it you
|
|
23
|
+
will find runnable delivery code (deliver.py), a checker that walks
|
|
24
|
+
any delivered handover and lists every receipt (check_delivery.py),
|
|
25
|
+
no-code pastes for chat agents on both the worker and client side,
|
|
26
|
+
and RUN.md, the record of a real delivery run with every link live.
|
|
27
|
+
|
|
28
|
+
## Step zero: your handle is your identity
|
|
29
|
+
|
|
30
|
+
On initialize, the endpoint issues a caller handle (in the initialize
|
|
31
|
+
result and the `X-Zambo-Caller-Handle` header). Save it in your own
|
|
32
|
+
state file before doing anything else, and present it as
|
|
33
|
+
`_caller_handle` on every call, with your agent name as
|
|
34
|
+
`_caller_label`. Your memory, your job timelines, and your daily free
|
|
35
|
+
allowance all key to that handle. One handle per agent, never shared,
|
|
36
|
+
never shown in ordinary replies. The worker and the client hold
|
|
37
|
+
SEPARATE handles: the whole point of the sign-off is that it comes
|
|
38
|
+
from a different identity than the work.
|
|
39
|
+
|
|
40
|
+
## The pattern
|
|
41
|
+
|
|
42
|
+
1. **Open one job.** Pick one `_session_id` for the client job and
|
|
43
|
+
save the brief to memory under it: the client, the job reference,
|
|
44
|
+
what will be delivered. Keep the receipt.
|
|
45
|
+
2. **Work inside the job.** Every working step (research, draft,
|
|
46
|
+
revision, fix) is saved with `memory_remember` under the same job
|
|
47
|
+
id as you do it, not reconstructed at the end. Keep each fact
|
|
48
|
+
under 500 characters: longer facts are refused before execution.
|
|
49
|
+
Short steps, more of them, each one receipted.
|
|
50
|
+
3. **Check every result.** A refused call still returns a receipt.
|
|
51
|
+
After each call, confirm the result's `ok` flag before treating
|
|
52
|
+
the step as saved. A delivery built on a refusal has a hole in it
|
|
53
|
+
exactly where the argument will land.
|
|
54
|
+
4. **Wrap the delivery.** Call `handover` with a summary naming the
|
|
55
|
+
job, the client, and each step with its receipt; a goal; the
|
|
56
|
+
client named as recipient; and next steps telling the client to
|
|
57
|
+
read the steps and check any receipt at https://zambo.dev/verify/.
|
|
58
|
+
Do not attach a hand-picked `receipt_ids` list: a wrap holds only
|
|
59
|
+
its own job's complete record, a partial or foreign selection is
|
|
60
|
+
refused, and the proof loop binds the job's steps for you. The
|
|
61
|
+
handover link is the delivery. Send the client that link, not a
|
|
62
|
+
pile of files.
|
|
63
|
+
5. **The client picks it up.** The client (or the client's agent,
|
|
64
|
+
under the client's own handle) calls `handover_accept`, which is
|
|
65
|
+
always free, and reads the steps and receipts from the record.
|
|
66
|
+
The pickup is the sign-off: it converts "I sent it" into "the
|
|
67
|
+
client opened it, read the steps, and accepted", with the
|
|
68
|
+
handover reading back status `accepted`. Have the client save a
|
|
69
|
+
short sign-off memory step in the same job naming the handover,
|
|
70
|
+
so the acceptance is itself a receipted record.
|
|
71
|
+
6. **Hold the pack.** The delivery pack is the handover plus the
|
|
72
|
+
sign-off receipt. If a dispute ever comes, run check_delivery.py
|
|
73
|
+
against the handover: it walks every bound step and lists every
|
|
74
|
+
receipt. Answer with the link and the walk, not with adjectives.
|
|
75
|
+
|
|
76
|
+
## What the pack proves, and what it does not
|
|
77
|
+
|
|
78
|
+
A receipt proves the saved result was not changed since it was
|
|
79
|
+
saved. It does not prove the work was good, the draft was right, or
|
|
80
|
+
the deliverable was what the client secretly wanted. The pack
|
|
81
|
+
settles what was delivered and when, and that the record did not
|
|
82
|
+
move afterwards. Quality stays a judgment call; history stops being
|
|
83
|
+
one.
|
|
84
|
+
|
|
85
|
+
## The accounting (why this shape, in numbers)
|
|
86
|
+
|
|
87
|
+
Free tier, per identity: 20 calls + 1 wrap-up free every day, keyed
|
|
88
|
+
to the identity's own caller handle; picking up a handover is always
|
|
89
|
+
free. The run in RUN.md spent 4 counted calls for the worker (brief,
|
|
90
|
+
research, draft, revision) plus its free wrap-up, and 1 counted call
|
|
91
|
+
for the client (the sign-off save) with a free pickup: 5 counted
|
|
92
|
+
calls across two allowances for a complete, signed-off delivery.
|
|
93
|
+
When a job outgrows free, the scaling line is per identity: a Day
|
|
94
|
+
Pass is $0.99, unlimited for 24 hours, and the Zambo Pass is $29 for
|
|
95
|
+
30 days; both are one-time payments, never subscriptions, on the
|
|
96
|
+
same endpoint. Entry point for a human setting this up:
|
|
97
|
+
https://zambo.dev/add/
|
|
98
|
+
|
|
99
|
+
## The family: agent packages that teach one pattern each
|
|
100
|
+
|
|
101
|
+
This package is one of a family of agent packages, each teaching a
|
|
102
|
+
single high-value pattern by doing it, with Zambo baked in as the
|
|
103
|
+
mechanism:
|
|
104
|
+
|
|
105
|
+
- **Swarm coordination** (sibling pattern): several agents work one
|
|
106
|
+
job together, each contribution receipted and verified at pickup.
|
|
107
|
+
https://pypi.org/project/zambo-swarm/ and
|
|
108
|
+
https://github.com/zambodotdev/zambo-swarm-coordination
|
|
109
|
+
|
|
110
|
+
<!-- FAMILY: interconnection pass adds the remaining package links here (daily loop, verify pass, signal watch) once they ship. -->
|
|
111
|
+
|
|
112
|
+
## Go deeper
|
|
113
|
+
|
|
114
|
+
- Full guide, with the real delivery run and every receipt:
|
|
115
|
+
https://rambozambodotdev.gitlab.io/aer1-hub/delivery-proof-package.html
|
|
116
|
+
- This package: https://github.com/zambodotdev/zambo-delivery-proof
|
|
117
|
+
- Sister pattern, swarm coordination:
|
|
118
|
+
https://github.com/zambodotdev/zambo-swarm-coordination
|
|
119
|
+
- Handover, the signature product:
|
|
120
|
+
https://dev.to/rambozambo/ai-agent-handover-pass-a-live-job-to-another-ai-without-losing-the-record-72b
|
|
121
|
+
- Setup for the human who runs you: https://zambo.dev/add/
|