Make the mint-secret actor human (NK48-R1-F1)
Kernel a45cf47 refuses effect mint unless the actor is human, so the agent descriptor could never be admitted. Regenerate the 1.2 candidate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 1011674@bnt-lap001 Assistant-Session: b3b5b6f0-3bf5-41a3-8150-3ca4606cc028
This commit is contained in:
parent
582ab9fad0
commit
410d5239cd
6 changed files with 20 additions and 9 deletions
|
|
@ -47,7 +47,7 @@ ADAPTERS = {
|
|||
# the founder on 2026-10-17; the artifact records them as names_confirmed.
|
||||
NAMES_CONFIRMED = {'by': 'founder', 'on': '2026-10-17'}
|
||||
PROPOSED = {
|
||||
# Actor 'agent' was decided by the founder on 2026-10-17; only the schema is open.
|
||||
# Actor 'human' (founder, 2026-10-17): the kernel refuses agent mint; only the schema is open.
|
||||
'mint-secret': {'task': 'NK-WP-0048-T25',
|
||||
'schema': 'railiance-platform.custody-mint.v1'},
|
||||
'deliver-secret': {'task': 'NK-WP-0048-T26', 'lane': 'platform-secret-delivery',
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
"deliver-secret": "sha256:1e23b05058a61b3558070805329b6906f0ba9b989b98d9df35c621471a7c4938",
|
||||
"ensure-groups": "sha256:775dd71d7da43d16437dcdd9cba81ea6eef5803ab74e93c24d4994a764180135",
|
||||
"hand-over": "sha256:24d1ab891bfccaac1d691245d495ced2571d940d055c5e387076bb57dc68444e",
|
||||
"mint-secret": "sha256:1fb462d930bae75e35a64bbdefded1e916613f2a630fdecf61885d0e542ea89b",
|
||||
"mint-secret": "sha256:8c40c2884f8ba15e8cb6c98f33419c395e54fce8ef33d6e1a34782cf3f1fcfa9",
|
||||
"register-client": "sha256:3ccc8eed545cf31f8a48feb8afa0c1355e126d9549eef9737d92d0c1b87708a8"
|
||||
},
|
||||
"owner_review": false,
|
||||
|
|
@ -56,11 +56,11 @@
|
|||
"type_owner": "net-kingdom"
|
||||
},
|
||||
{
|
||||
"candidate_descriptor_digest": "sha256:1fb462d930bae75e35a64bbdefded1e916613f2a630fdecf61885d0e542ea89b",
|
||||
"candidate_descriptor_digest": "sha256:8c40c2884f8ba15e8cb6c98f33419c395e54fce8ef33d6e1a34782cf3f1fcfa9",
|
||||
"descriptor": {
|
||||
"actor": "agent",
|
||||
"actor": "human",
|
||||
"adapter": "net-kingdom/keycape-mint-secret@v1",
|
||||
"adapter_source": "sha256:b9be1e421f17ae36a2da19699ea86a9368583f9e1f5f089c68a49e315f76bf5c",
|
||||
"adapter_source": "sha256:9b292d259fa766a70970fa02ea29918e5feaf860d851688aaf80c72835c3fed8",
|
||||
"allowed_created": [
|
||||
"custody-secret-version"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ def source_digest():
|
|||
|
||||
def descriptor():
|
||||
return Descriptor('warden.case.execution.v1', 'mint-secret', 'railiance-platform',
|
||||
REFERENCE, source_digest(), 'agent', 'keycape-client-secret-generate',
|
||||
REFERENCE, source_digest(), 'human', 'keycape-client-secret-generate',
|
||||
'client_id', 'mint', CREATED, False, ('parent-session', 'broker-grant'))
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ class ComposeTests(unittest.TestCase):
|
|||
def test_current_adapters_do_not_compose(self):
|
||||
# Pins the present source findings; this test must change when they are fixed.
|
||||
doc = c.artifact(CHECKER, PARAMS)
|
||||
# Complete in source since mint-secret's actor became 'agent'; still not an admission.
|
||||
# Complete in source with mint-secret's actor 'human'; still not an admission.
|
||||
self.assertTrue(doc['complete_executable_descriptor_set'])
|
||||
self.assertEqual(len(doc['execution_descriptors']), 7)
|
||||
self.assertIsNone(doc['refusal'])
|
||||
|
|
@ -106,7 +106,7 @@ class ComposeTests(unittest.TestCase):
|
|||
findings = {r['step']: r['findings'] for r in doc['steps']}
|
||||
self.assertEqual({s for s, f in findings.items() if f}, set())
|
||||
mint = next(r for r in doc['steps'] if r['step'] == 'mint-secret')
|
||||
self.assertEqual(mint['descriptor']['actor'], 'agent')
|
||||
self.assertEqual(mint['descriptor']['actor'], 'human')
|
||||
hand_over = next(r for r in doc['steps'] if r['step'] == 'hand-over')
|
||||
self.assertEqual(hand_over['descriptor']['owner'], PARAMS['consumer_owner_repo'])
|
||||
self.assertNotIn('owner', hand_over['names_confirmed'])
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class MintSecretTests(unittest.TestCase):
|
|||
desc = json.dumps(asdict(a.descriptor()), sort_keys=True, separators=(',', ':')).encode()
|
||||
pins = Pins(digest(self.case), digest(b'type'), digest(desc), digest(b'catalog'),
|
||||
digest(b'case-acceptance:test'), digest(b'run sheet'))
|
||||
self.admitted = Invocation('mint-secret', 'railiance-platform', 'forgejo', 'agent',
|
||||
self.admitted = Invocation('mint-secret', 'railiance-platform', 'forgejo', 'human',
|
||||
'founder', 'keycape-client-secret-generate', pins)
|
||||
self.run = replace(self.admitted, attempt_id='attempt-one', operation='run')
|
||||
self.back = replace(self.admitted, attempt_id='attempt-one', operation='rollback')
|
||||
|
|
|
|||
|
|
@ -1389,6 +1389,17 @@ as-is. The artifact records them as `names_confirmed` (by founder, 2026-10-17),
|
|||
and no step is still `owner_confirmation_required`. Next: independent source
|
||||
review of the seven adapters.
|
||||
|
||||
2026-10-17 founder decision (supersedes the `agent` decision below): the
|
||||
mint-secret actor is `human`. Coordinator review r1 (the-custodian
|
||||
`docs/changes/netkingdom-target-2026-10-17/nk48-adapters-1.2-review/coordinator-review-r1.json`,
|
||||
finding NK48-R1-F1) showed that unchanged kernel a45cf47 refuses every
|
||||
`effect: mint` admission whose actor is not `human` ("agent mint is
|
||||
forbidden"), so the `agent` descriptor could never be admitted. Adapter, tests
|
||||
and composer comment updated and the artifact regenerated (mint-secret
|
||||
descriptor digest now `sha256:8c40c2884f8ba15e8cb6c98f33419c395e54fce8ef33d6e1a34782cf3f1fcfa9`);
|
||||
98 tests pass against a45cf47. Open: no test yet runs `Executor.admit` on the
|
||||
1.2 descriptors. The set needs an independent r2 review.
|
||||
|
||||
2026-10-17 founder decision: the mint-secret actor is `agent`, not `warden`.
|
||||
The kernel is unchanged. The adapter, its test and the composer were updated and
|
||||
the artifact regenerated; all seven steps pass `Descriptor.decode` and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue