Repository navigation
Law 8 at instantiation: a helper, a skill and a snippet are checked as documents - #25
Merged
Merged
Conversation
…s documents
Law 8 says anything a run creates passes the same checker before it can be
asked, and names a run-code snippet, a narrowed-new helper and a skill a run
wrote. The reference checked a learning proposal's instructions and none of
the three. checking.py gains the documents they are checked as:
- with_helper: the starter's own entry under <starter>-helper, told the
helper's instructions, on the starter's model; `uses` may narrow it, and
anything the starter lacks raises NotNarrower with beyond_its_starter's
sentence (now reached, so its host-API row goes).
- with_skill: a skills entry, named in the agent's uses when it writes one.
- with_program: a nondeterministic program under run-code-<sha12>, its fuel
the run's ceiling; a language with no engine is Uncheckable.
- literal: a model's words are checked literally (\{{, or Jinja raw blocks).
Bud Meta Harness builds the same documents in TypeScript and checks every
runnable agent of the examples and test trees with them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…stantiation # Conflicts: # CHANGELOG.md # README.md # docs/90-REVIEW.md # site-docs/index.md # site-docs/status/verified.md
…stantiation # Conflicts: # CHANGELOG.md # README.md # docs/90-REVIEW.md # site-docs/index.md # site-docs/status/verified.md
…stantiation # Conflicts: # CHANGELOG.md # README.md # docs/90-REVIEW.md # site-docs/index.md # site-docs/status/verified.md
jithinAB
marked this pull request as ready for review
November 14, 2026 05:54
Contributor
Author
|
Marked ready and merged on the owner's instruction (BMH lane pact-kernel). BMH's PK-13b holds what a run creates (helpers, skills, programs) to this check; merging it lets the next re-pin retire BMH's own copy of the instantiation rule.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Law 8 says anything a run creates passes the same checker before it can be asked, and names three such things: a
run-codesnippet, anarrowed-newhelper and a skill a run wrote (97 §4, law 8). The reference checked a learning proposal'sinstructions:(check_instructions) and none of the three. This adds the documents they are checked as, so a runtime that instantiates them checks them the way this one checks a proposal, and two runtimes check the same document.What changes
checking.with_helper(document, starter, instructions, description=, uses=): the starter's own entry under<starter>-helper(the next free-2,-3… when taken), without itsname:, toldinstructions, on the starter's model.usesmay narrow it; a name the starter lacks raisesNotNarrowerwithdelegation.beyond_its_starter's sentence, so a model reads the same refusal from either.checking.with_skill(document, agent, name, description, content, use_when=): askills:entry, named in the agent'suses:when the agent writes one.checking.with_program(document, language, code, description=, runs_for_at_most_ms=): a nondeterministic program underrun-code-<first 12 hex of the code's sha256>, its fuel the run's own ceiling andstop-and-say-so. PACT records a program's body and never opens it, so the code is not part of what is checked. A language with no engine raisesUncheckable.checking.literal(text, document): words a model wrote are checked literally. Under the default template language{{is written\{{; undertemplate-language: jinjathe words go in raw blocks, an{% endraw %}inside them written between two blocks as a string.check_documenton the result is the check, as for a proposal.Evidence
tests/test_what_a_run_instantiates_passes_the_same_checker.py(6 tests, real checker): a helper ofexamples/kernel/phasespasses and is its starter told something else; a narrower helper passes and a wider one is refused inbeyond_its_starter's words; the next free key; a written skill passes and one whose description says nothing is refused; a snippet is a program with the run's ceiling, and a language with no engine is uncheckable; both template languages read model words literally.packages/pact/pact-runtime/src/instantiate.ts,packages/pact/pact-loader/tests/instantiate.pact.ts).test_the_second_port_reports_a_spend_cap_it_cannot_price) and three were this change's own bookkeeping, fixed in the same commit: the headline test count (now 4923: 1642 Rust + 3281 adapter) and the host-API rows (with_helper,with_skillandwith_programadded;delegation.beyond_its_starteris reached now, so its row goes).Nothing changes in the specification or the crates.
🤖 Generated with Claude Code