@lapxo/bound 0.1.0

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 (186) hide show
  1. package/CONTRIBUTING.md +44 -0
  2. package/LICENSE +22 -0
  3. package/README.md +97 -0
  4. package/TARGET.bound +361 -0
  5. package/dist/cli/accept.d.ts +23 -0
  6. package/dist/cli/accept.js +423 -0
  7. package/dist/cli/args.d.ts +10 -0
  8. package/dist/cli/args.js +34 -0
  9. package/dist/cli/host.d.ts +1 -0
  10. package/dist/cli/host.js +32 -0
  11. package/dist/cli/names.d.ts +25 -0
  12. package/dist/cli/names.js +12 -0
  13. package/dist/cli/observe.d.ts +1 -0
  14. package/dist/cli/observe.js +6 -0
  15. package/dist/cli/owner.d.ts +35 -0
  16. package/dist/cli/owner.js +119 -0
  17. package/dist/cli/pass.d.ts +6 -0
  18. package/dist/cli/pass.js +309 -0
  19. package/dist/cli/place.d.ts +74 -0
  20. package/dist/cli/place.js +290 -0
  21. package/dist/cli/takes.d.ts +30 -0
  22. package/dist/cli/takes.js +108 -0
  23. package/dist/cli/verb.d.ts +2 -0
  24. package/dist/cli/verb.js +478 -0
  25. package/dist/fold/ceilings.d.ts +24 -0
  26. package/dist/fold/ceilings.js +129 -0
  27. package/dist/fold/claims.d.ts +25 -0
  28. package/dist/fold/claims.js +107 -0
  29. package/dist/fold/closed.d.ts +15 -0
  30. package/dist/fold/closed.js +168 -0
  31. package/dist/fold/configures.d.ts +4 -0
  32. package/dist/fold/configures.js +22 -0
  33. package/dist/fold/digests.d.ts +29 -0
  34. package/dist/fold/digests.js +211 -0
  35. package/dist/fold/evidence.d.ts +32 -0
  36. package/dist/fold/evidence.js +22 -0
  37. package/dist/fold/fold-worker.d.ts +1 -0
  38. package/dist/fold/fold-worker.js +13 -0
  39. package/dist/fold/kept.d.ts +29 -0
  40. package/dist/fold/kept.js +142 -0
  41. package/dist/fold/keys.d.ts +17 -0
  42. package/dist/fold/keys.js +84 -0
  43. package/dist/fold/laid.d.ts +17 -0
  44. package/dist/fold/laid.js +90 -0
  45. package/dist/fold/nos.d.ts +8 -0
  46. package/dist/fold/nos.js +48 -0
  47. package/dist/fold/object.d.ts +17 -0
  48. package/dist/fold/object.js +38 -0
  49. package/dist/fold/observed.d.ts +33 -0
  50. package/dist/fold/observed.js +444 -0
  51. package/dist/fold/opened.d.ts +5 -0
  52. package/dist/fold/opened.js +33 -0
  53. package/dist/fold/own.d.ts +24 -0
  54. package/dist/fold/own.js +215 -0
  55. package/dist/fold/paid.d.ts +11 -0
  56. package/dist/fold/paid.js +92 -0
  57. package/dist/fold/place-inputs.d.ts +17 -0
  58. package/dist/fold/place-inputs.js +70 -0
  59. package/dist/fold/places.d.ts +20 -0
  60. package/dist/fold/places.js +84 -0
  61. package/dist/fold/rank.d.ts +3 -0
  62. package/dist/fold/rank.js +9 -0
  63. package/dist/fold/reach.d.ts +13 -0
  64. package/dist/fold/reach.js +65 -0
  65. package/dist/fold/readers.d.ts +44 -0
  66. package/dist/fold/readers.js +132 -0
  67. package/dist/fold/receipts.d.ts +8 -0
  68. package/dist/fold/receipts.js +47 -0
  69. package/dist/fold/region.d.ts +72 -0
  70. package/dist/fold/region.js +286 -0
  71. package/dist/fold/release-policy.d.ts +67 -0
  72. package/dist/fold/release-policy.js +103 -0
  73. package/dist/fold/resolved.d.ts +18 -0
  74. package/dist/fold/resolved.js +123 -0
  75. package/dist/fold/roles.d.ts +17 -0
  76. package/dist/fold/roles.js +59 -0
  77. package/dist/fold/second.d.ts +18 -0
  78. package/dist/fold/second.js +68 -0
  79. package/dist/fold/shards.d.ts +29 -0
  80. package/dist/fold/shards.js +100 -0
  81. package/dist/fold/signed.d.ts +18 -0
  82. package/dist/fold/signed.js +75 -0
  83. package/dist/fold/signers.d.ts +24 -0
  84. package/dist/fold/signers.js +58 -0
  85. package/dist/fold/stranger.d.ts +3 -0
  86. package/dist/fold/stranger.js +24 -0
  87. package/dist/fold/views.d.ts +27 -0
  88. package/dist/fold/views.js +66 -0
  89. package/dist/fold/wire.d.ts +19 -0
  90. package/dist/fold/wire.js +41 -0
  91. package/dist/fold/zoom.d.ts +16 -0
  92. package/dist/fold/zoom.js +80 -0
  93. package/dist/host/adapters/keys/ed25519.d.ts +7 -0
  94. package/dist/host/adapters/keys/ed25519.js +30 -0
  95. package/dist/host/archive.d.ts +11 -0
  96. package/dist/host/archive.js +152 -0
  97. package/dist/host/capsule-process.d.ts +20 -0
  98. package/dist/host/capsule-process.js +54 -0
  99. package/dist/host/capsule.d.ts +13 -0
  100. package/dist/host/capsule.js +149 -0
  101. package/dist/host/cell-receipts.d.ts +2 -0
  102. package/dist/host/cell-receipts.js +124 -0
  103. package/dist/host/digest.d.ts +3 -0
  104. package/dist/host/digest.js +15 -0
  105. package/dist/host/hash.d.ts +2 -0
  106. package/dist/host/hash.js +3 -0
  107. package/dist/host/io.d.ts +9 -0
  108. package/dist/host/io.js +9 -0
  109. package/dist/host/located.d.ts +4 -0
  110. package/dist/host/located.js +105 -0
  111. package/dist/host/objects.d.ts +5 -0
  112. package/dist/host/objects.js +18 -0
  113. package/dist/host/ports/store.d.ts +2 -0
  114. package/dist/host/ports/store.js +18 -0
  115. package/dist/host/provide.d.ts +23 -0
  116. package/dist/host/provide.js +81 -0
  117. package/dist/host/release.d.ts +12 -0
  118. package/dist/host/release.js +213 -0
  119. package/dist/host/selected-capsules.d.ts +8 -0
  120. package/dist/host/selected-capsules.js +19 -0
  121. package/dist/host/selected-topos.d.ts +17 -0
  122. package/dist/host/selected-topos.js +61 -0
  123. package/dist/host/source-content.d.ts +10 -0
  124. package/dist/host/source-content.js +94 -0
  125. package/dist/host/timing.d.ts +2 -0
  126. package/dist/host/timing.js +7 -0
  127. package/dist/judge/late.d.ts +7 -0
  128. package/dist/judge/late.js +33 -0
  129. package/dist/judge/take.d.ts +57 -0
  130. package/dist/judge/take.js +75 -0
  131. package/dist/judge/widening.d.ts +1 -0
  132. package/dist/judge/widening.js +25 -0
  133. package/dist/land/act.d.ts +4 -0
  134. package/dist/land/act.js +209 -0
  135. package/dist/land/alias.d.ts +10 -0
  136. package/dist/land/alias.js +41 -0
  137. package/dist/land/held.d.ts +7 -0
  138. package/dist/land/held.js +23 -0
  139. package/dist/land/inert.d.ts +26 -0
  140. package/dist/land/inert.js +33 -0
  141. package/dist/land/leaving.d.ts +14 -0
  142. package/dist/land/leaving.js +51 -0
  143. package/dist/land/ledger.d.ts +28 -0
  144. package/dist/land/ledger.js +148 -0
  145. package/dist/land/owned.d.ts +23 -0
  146. package/dist/land/owned.js +65 -0
  147. package/dist/land/sign.d.ts +16 -0
  148. package/dist/land/sign.js +30 -0
  149. package/dist/land/vouched.d.ts +21 -0
  150. package/dist/land/vouched.js +112 -0
  151. package/dist/land/withdraw.d.ts +14 -0
  152. package/dist/land/withdraw.js +24 -0
  153. package/dist/observe/files.d.ts +14 -0
  154. package/dist/observe/files.js +68 -0
  155. package/dist/observe/identity.d.ts +19 -0
  156. package/dist/observe/identity.js +61 -0
  157. package/dist/observe/match.d.ts +1 -0
  158. package/dist/observe/match.js +8 -0
  159. package/dist/observe/regions.d.ts +29 -0
  160. package/dist/observe/regions.js +200 -0
  161. package/dist/observe/run.d.ts +30 -0
  162. package/dist/observe/run.js +34 -0
  163. package/dist/observe/runner.d.ts +16 -0
  164. package/dist/observe/runner.js +83 -0
  165. package/dist/render/capsule.d.ts +24 -0
  166. package/dist/render/capsule.js +30 -0
  167. package/dist/render/field.d.ts +9 -0
  168. package/dist/render/field.js +46 -0
  169. package/dist/render/names.d.ts +3 -0
  170. package/dist/render/names.js +4 -0
  171. package/dist/render/open.d.ts +27 -0
  172. package/dist/render/open.js +61 -0
  173. package/dist/render/page.d.ts +3 -0
  174. package/dist/render/page.js +7 -0
  175. package/dist/render/receipts.d.ts +3 -0
  176. package/dist/render/receipts.js +46 -0
  177. package/dist/render/shape.d.ts +16 -0
  178. package/dist/render/shape.js +74 -0
  179. package/dist/render/target.d.ts +18 -0
  180. package/dist/render/target.js +52 -0
  181. package/dist/render/view.d.ts +22 -0
  182. package/dist/render/view.js +191 -0
  183. package/docs/readme-assets/atlas.svg +169 -0
  184. package/docs/usage.md +53 -0
  185. package/package.json +48 -0
  186. package/receipts.bound +59 -0
package/TARGET.bound ADDED
@@ -0,0 +1,361 @@
1
+ bound-lock/1 about="# @lapxo/bound\n\nDeclare what must hold. Read what does. Keep the evidence.\n\nBound reads a project's admitted statements, checks observations against its requirements, and produces the views its selected topos declares. It keeps conflicting evidence and its origins instead of choosing a convenient answer.\n\n`fold` reads. `sign` signs a proposed lot. `land` admits that lot under the place's authority. These acts work across domains: a selected topos supplies forms, units, readers and views.\n\n## Start in an admitted project\n\n```sh\nnpx @lapxo/bound@0.1.0 fold --as help\nnpx @lapxo/bound@0.1.0 fold\n```\n\nThe help view prints:\n\n```text\nverbs fold land sign\nflags --as --check --key --key-file --out --place\n```\n\nThe default fold runs the project's declared views. Its authority and selected topos determine what can be admitted, read and shown.\n\nStart with the team's accepted TARGET, admitted authority and selected readers. [Full usage guide](docs/usage.md).\n\n## A meeting everyone can understand\n\nAna is available from 10 to 14, Luis from 12 to 16, and the room from 10 to 13. Their common availability is 12 to 13. A boss available from 18 to 20 makes the encounter incompatible. Withdrawing that exact reading restores the overlap; Ana, Luis and the room remain.\n\nWith an interval form, those are object operations: observe independent claims, meet them, withdraw by id, and read the state. A narrower compatible meet is not a fork. Folding a file of declarations alone does not calculate meeting availability.\n\nThe same pattern applies to a delivery window, a sensor's allowed range, or an agreed performance budget. The chosen topos determines the units and how evidence is obtained. Bound does not supply a meeting-specific rule.\n\n## See how information holds together\n\n![Cells, travelling bounds and a local join](docs/readme-assets/atlas.svg)\n\nA travelling ceiling on B reaches C and G through their declared rest. A local join widens B alone. D is independent. The figure shows those relations; point size and camera distance do not measure information.\n\n| State | Meaning |\n| --- | --- |\n| REQUIRED | Compatible bounds, fewer than two independent origins. |\n| FREE | Independent origins meet and their encounter fits the bounds. |\n| CONFLICT | Bounds conflict, or eligible claims have no common encounter. |\n| FORBIDDEN | An inhabited encounter does not fit the bounds. |\n\nBounds are checked before origins and claims. A receipt is evidence of a reading, not another origin. Duplicating one does not add freedom.\n\n## Change a project without erasing evidence\n\nWork in the project's directory. Use an existing admitted key identifier and its matching private key stored outside every repository. Your public key and coverage belong to the authority contract; possession of a private key alone does not authorize a scope.\n\n```sh\nexport BOUND_KEY_ID='your-admitted-key-id'\nexport BOUND_KEY_FILE=\"$HOME/Private/keys/your-device.pem\"\nlot_dir=\"$(mktemp -d)\"\n```\n\nHave the selected view produce a proposal at `$lot_dir/proposal.bound`, or prepare the project's permitted lines there for review. Unsigned proposals use `by=target`, without a preassigned epoch or `sig`. Lots stay outside the repository; the committed bound files are only `TARGET.bound` and `receipts.bound`.\n\n```sh\nnpx @lapxo/bound@0.1.0 sign \"$lot_dir/proposal.bound\" \\\n --key \"$BOUND_KEY_ID\" --key-file \"$BOUND_KEY_FILE\" \\\n > \"$lot_dir/signed.bound\" &&\nnpx @lapxo/bound@0.1.0 land \"$lot_dir/signed.bound\" &&\nnpx @lapxo/bound@0.1.0 fold\n```\n\n`sign` assigns the admitted epoch and writes the signed lot to stdout. `land` validates the whole lot before admission. A refusal is evidence to inspect; it is not success. Do not proceed after a failed signature or admission. The key file is a PKCS8 private key matching the admitted public key; do not put it in the lot, source tree, package or CI artifacts.\n\nFor typed object withdrawals, `takes` names the exact claim or mark id. Removing a local join leaves the travelling sign live. For untyped configuration, use the wire's exact withdrawal selectors; do not combine withdrawal and replacement with identical selectors in one lot. Wire alphabet updates supersede by epoch.\n\n[Authority, withdrawals, receipts and PR review](docs/usage.md).\n\n## Read a declared view and reuse its evidence\n\nWhen the project has admitted a cells view:\n\n```sh\nnpx @lapxo/bound@0.1.0 fold --as cells\n```\n\nThe installed interval scene printed this on an unchanged second reading:\n\n```text\nRECEIPTS 4 read · 0 opened · idle · provider 0\n```\n\nNative receipts identify the live semantic inputs, declared rest, selected topos, codecs and selected rendering implementation. They exclude delivery count, display paths and Bound's error wrapper. A local join changes its own cell's receipt. A travelling sign changes dependent cells. Missing or corrupt carried bytes cannot prove reuse.\n\nFor judgement:\n\n```sh\nnpx @lapxo/bound@0.1.0 fold --check\n```\n\nKeep stdout, stderr and the exit status. `--check` is not an install-and-build replacement. A source test passing does not pay an unread ceiling, prove a cold clone, or accept a release.\n\n## Select a topos by what it declares\n\n`sources/<name>` says where a world can be obtained. An admitted `uses/<name>` names the digest of that topos's folded standing: canonical live claims in wire byte order, excluding signature envelopes and host shape. Re-signing the same standing preserves the pin. A changed live form, class, view or offer changes it.\n\n`restsOn` closes artifact bytes separately. A capsule is one offer. Forms, classes and views need no capsule merely to be selected. Runtime and packing do not define standing identity. npm dependency ranges remain package metadata; they are not standing pins.\n\n| Responsibility | Owner |\n| --- | --- |\n| Meet, state, live acts and rest | Obligations |\n| Wire, forms, classes, views and offer contracts | Topos |\n| Admission, folding and evidence | Bound |\n| Domain measurement and representation | Selected topos |\n| Storage, transport and execution | Host |\n\nCell `restsOn` is the object's relation. Directory prefixes and file summaries are host coordinates, not object rest. Wire tokens are protocol constants, not organization, host, path or key literals.\n\n## Repository rules\n\nCommit `TARGET.bound`, `receipts.bound` and the outputs the forge reads. Ignore `.bound/` from the first line of `.gitignore`. Keep proposals, signed lots, keys, ledgers, caches and dependency blobs outside the published tree.\n\nThe lock is the project's own contract and pins. Read a dependency's declarations from its selected standing; do not copy its lines into your lock. README, package metadata and workflows must be renders of admitted declarations. A scan is an observation, not permission to lower a ceiling.\n\nA PR proposes lines and the leaf changes they render. The judge uses the team's accepted contract independently of the proposed revision. Preserve refusals, conflicting origins and unpaid demands. [Repository and contribution rules](docs/usage.md#repository-and-pr-review).\n\n## An atlas you can question\n\nInformation can share a history without sharing a single presentation. The same admitted cells can support a compact status view, a spatial view of their relations, or a focused reading of one disagreement. Each view asks for a region and resolution; its selected topos determines the representation.\n\nThis makes changes inspectable. A local act can remain local, travelling bounds can reach dependent cells, and a receipt can name the inputs of the reading you saw. You can ask what changed and what depends on it without turning a drawing into the algebra.\n\nA pin names standing, not a download URL or runtime entry. Its declared artifact dependencies close the bytes needed for an offered operation. The boundary lets a form or view remain meaningful even when it has no executable capsule.\n\nUse Bound where independently attributed observations must be judged against an accepted contract: compatibility between components, operational limits, or a team's project requirements. The selected topos must supply the actual measurements; a digest identifies the evidence without declaring it true.\n\n[Contribute a counterexample or a proposed lot](CONTRIBUTING.md).\n" at=policy:public-prose by=target form=alphabet measure=text role=writes scope=prose/en/files/public-0 shape=README.md value=lock
2
+ bound-lock/1 about="# Contributing to Bound\n\nBring a counterexample, an observation or a proposed lot. Include the inputs and the output that led you to it. A signature establishes who was authorized to speak; it does not make their result true.\n\n## Set up a working copy\n\nClone the repository and use the Node version supported by package.json. If package-lock.json is present, run npm ci; otherwise use npm install --ignore-scripts --no-package-lock. Then run:\n\n```sh\nnpm run build\nnpm test\n```\n\nThese are development checks, not project acceptance. For a place with admitted trust context and native receipts, run the product judgement as well:\n\n```sh\nnpx @lapxo/bound@0.1.0 fold --check\n```\n\nPreserve a refusal and its exit status in your report. Do not borrow a neighbouring checkout's ledger or substitute local bytes for a named pin.\n\n## Make the smallest useful change\n\nBound owns admission, folding and evidence. Topos owns grammar, forms, classes, views and their contracts. A selected topos owns domain measurement. Obligations owns the algebra. Keep each change in its layer; do not put a domain decoder, path-based inference or a fallback for a missing pin into Bound.\n\nAn algebra change needs an independent oracle and a counterexample. A host change needs evidence for authentic bytes, failure propagation or reuse. A view change needs its declared region and implementation identity. A test should fail for a plausible incorrect implementation, not assert a source string or repeat the same expression on both sides.\n\nKeep regressions for changed signatures, unauthorized coverage, exact-id withdrawal, conflicting evidence, local versus travelling acts, corrupt content and duplicate delivery. Consolidate repeated setup and duplicate scenarios without removing distinct falsifiers.\n\n## Propose and admit\n\nKeep proposal and signed-lot files outside the repository. Use the current admitted wire, by=target, and no preassigned epoch or signature. The team's admitted key signs the lot; Bound admits it under scope coverage. The [usage guide](docs/usage.md) explains the transaction and external key-file requirements.\n\nSend the proposed lines with the leaf changes they render. A hand-edited render is evidence of the intended change, not an admitted contribution. Do not edit the accepted TARGET to make a test or ceiling pass. If a render disagrees with the lock, fix the proposed lines and re-render it.\n\nCommit only the project's TARGET.bound and native receipts.bound as bound files. The first .gitignore line excludes .bound/. Do not commit keys, stores, ledgers, caches, capsules, archives or vendored dependencies.\n\n## Submit a pull request\n\nExplain the concrete behavior before and after the change, the affected layer, and the checks you ran. Include stdout, stderr and exit status for a CLI case. State which reader and input bytes produced the evidence; a source harness is not an installed-package proof.\n\nPolicy changes receive explicit team review separately from measurements of the proposed source. Keep incompatible readings and their origins visible. Never remove a failing test or weaken a ceiling to obtain acceptance. Withdraw statements through their admitted history; do not rewrite prior signatures, tags or releases.\n\nDocumentation and workflows follow the same review: propose their lines and include the rendered changes.\n" at=policy:public-prose by=target form=alphabet measure=text role=writes scope=prose/en/files/public-1 shape=CONTRIBUTING.md value=lock
3
+ bound-lock/1 about="# Using Bound\n\nThis guide covers the current CLI in a place whose wire and authority are already admitted. A fresh unsigned TARGET is a proposal, not a trusted project. The prepared repository is not yet a certified empty-clone bootstrap.\n\n## Before the first fold\n\nYou need the team's accepted TARGET and trust context, authentic bytes for each selected digest, and the readers/views that TARGET names. Do not borrow a neighbouring repository's ledger or copy node_modules to make a missing pin look available.\n\nThe published repository carries exactly TARGET.bound and receipts.bound as bound files. Local admission history lives in the ignored .bound/ store. Published standing excludes the signature envelope; owner public keys retain their signatures.\n\nStart by asking for help and folding the project. If a selected view is unavailable, use the named refusal and its fix; do not invent an output with a similar name.\n\n## Keys and coverage\n\nUse a named key already admitted by the project. The authority contract declares its public key, class and scope coverage. The private key is a matching PKCS8 PEM file outside the repository. Point `--key-file` at that file and `--key` at the admitted identifier.\n\nA new device must have its public key and coverage admitted by an authority that already covers the intended scope. The CLI does not currently certify silent key creation or tap-to-sign. This guide does not substitute a self-authorized fixture key for the team's authority.\n\nFor automation, supply the private key through the runner's secret storage to a temporary external file with restricted permissions. Do not print, commit or upload it. A source-control token and a Bound authority key have different purposes. Key rotation and revocation are changes to the admitted authority contract, not edits that erase prior signatures.\n\n## Proposal → signature → admission → reading\n\nPrepare the proposed lines outside the repository. Each line must use the current wire's fields, forms and required set. Configuration retains its legacy required fields, including `at`. Typed cells, claims and marks use their exact row grammar; `role=reads` or `at` cannot repair an incomplete typed record.\n\nA proposal names `by=target` and omits epoch/signature. The CLI assigns epoch from admitted history when signing. Never copy an epoch from an example or change a signed line's body.\n\nUse the signing and admission transaction in the README. Shell `&&` prevents a failed sign from being followed by land. Successful signing alone does not mean admission. Successful admission alone does not mean every requirement is paid. Fold after land and inspect its states, receipts and exit status.\n\nCLI sign authenticates wire inscriptions. It is different from the object's travelling ceiling sign. The selected Topos decodes spans and supplies origin/witness context; Bound must not guess those from by, widens or a path.\n\n## Reading and withdrawing\n\nAsk only for a view admitted by the project, such as cells. A local join widens that cell with a witness; it leaves the travelling ceiling live. A travelling require supplies a floor. Claims carry distinct origins; their signatures do not by themselves establish independent origins.\n\nFor typed histories, a negative record names the exact id in takes. Withdrawing a claim removes that live observation; withdrawing a join removes that local widening, not the sign. A fresh claim with the same content is a new identity, not resurrection of a withdrawn id. Re-delivery of the same signed bytes is idempotent.\n\nFor configuration, the negative line preserves the exact non-envelope selectors and changes value to withdraw. Do not withdraw and replace identical selectors in the same batch. Use a new epoch when superseding an alphabet declaration. Never withdraw evidence merely to obtain a green verdict.\n\n## Receipts and refusals\n\nreceipts.bound is native fold output. Do not write it by hand, use JSON from a test as a receipt, or copy receipts from another tree. Unchanged inputs can reuse verified region receipts; missing bytes require recomputation or a refusal. A duplicate receipt does not create another origin.\n\nREFUSE·wire means the current grammar does not admit the record. REFUSE·pin/release means named authentic content or its closure is unavailable or does not match. REFUSE·view means the requested view cannot be rendered under its contract. Authority refusal means the signer is not covered. Keep the line and the failed exit status; follow an explicit fix without changing the named digest or dropping a conflicting statement.\n\nrelease/blocks is policy read by the fold. Its admitted category links select existing obligations. The fold prints each missing reading or crossed ceiling as BLOCK; a blocked or incomplete policy is not READY. Read the captured verdict for the exact candidate instead of inferring acceptance from a successful render.\n\n## Repository and PR review\n\nThe accepted TARGET is independent of a contributor's scan. Commit native receipts and admitted renders, not local .bound/ state. A page disagreeing with TARGET must be re-rendered; a ceiling is not lowered to fit the page.\n\nA contribution is a proposed lot with the leaf changes rendered from it. Send that lot for admission by the team's coverage. Do not submit hand-edited lock output as already accepted. Check secrets, extra bound files, foreign vendoring and uncaptured page claims before review.\n\nA review includes the product fold, meaningful suites and verification of the rendered bytes. Preserve their actual output and exit status.\n" at=policy:public-prose by=target form=alphabet measure=text role=writes scope=prose/en/files/public-2 shape=docs/usage.md value=lock
4
+ bound-lock/1 about="## A meeting everyone can understand\n\nAna is available from 10 to 14, Luis from 12 to 16, and the room from 10 to 13. Their common availability is 12 to 13. A boss available from 18 to 20 makes the encounter incompatible. Withdrawing that exact reading restores the overlap; Ana, Luis and the room remain.\n\nWith an interval form, those are object operations: observe independent claims, meet them, withdraw by id, and read the state. A narrower compatible meet is not a fork. Folding a file of declarations alone does not calculate meeting availability.\n\nThe same pattern applies to a delivery window, a sensor's allowed range, or an agreed performance budget. The chosen topos determines the units and how evidence is obtained. Bound does not supply a meeting-specific rule.\n\n## See how information holds together\n\n![Cells, travelling bounds and a local join](docs/readme-assets/atlas.svg)\n\nA travelling ceiling on B reaches C and G through their declared rest. A local join widens B alone. D is independent. The figure shows those relations; point size and camera distance do not measure information.\n\n| State | Meaning |\n| --- | --- |\n| REQUIRED | Compatible bounds, fewer than two independent origins. |\n| FREE | Independent origins meet and their encounter fits the bounds. |\n| CONFLICT | Bounds conflict, or eligible claims have no common encounter. |\n| FORBIDDEN | An inhabited encounter does not fit the bounds. |\n\nBounds are checked before origins and claims. A receipt is evidence of a reading, not another origin. Duplicating one does not add freedom.\n\n## Change a project without erasing evidence\n\nWork in the project's directory. Use an existing admitted key identifier and its matching private key stored outside every repository. Your public key and coverage belong to the authority contract; possession of a private key alone does not authorize a scope.\n\n```sh\nexport BOUND_KEY_ID='your-admitted-key-id'\nexport BOUND_KEY_FILE=\"$HOME/Private/keys/your-device.pem\"\nlot_dir=\"$(mktemp -d)\"\n```\n\nHave the selected view produce a proposal at `$lot_dir/proposal.bound`, or prepare the project's permitted lines there for review. Unsigned proposals use `by=target`, without a preassigned epoch or `sig`. Lots stay outside the repository; the committed bound files are only `TARGET.bound` and `receipts.bound`.\n\n```sh\nnpx @lapxo/bound@0.1.0 sign \"$lot_dir/proposal.bound\" \\\n --key \"$BOUND_KEY_ID\" --key-file \"$BOUND_KEY_FILE\" \\\n > \"$lot_dir/signed.bound\" &&\nnpx @lapxo/bound@0.1.0 land \"$lot_dir/signed.bound\" &&\nnpx @lapxo/bound@0.1.0 fold\n```\n\n`sign` assigns the admitted epoch and writes the signed lot to stdout. `land` validates the whole lot before admission. A refusal is evidence to inspect; it is not success. Do not proceed after a failed signature or admission. The key file is a PKCS8 private key matching the admitted public key; do not put it in the lot, source tree, package or CI artifacts.\n\nFor typed object withdrawals, `takes` names the exact claim or mark id. Removing a local join leaves the travelling sign live. For untyped configuration, use the wire's exact withdrawal selectors; do not combine withdrawal and replacement with identical selectors in one lot. Wire alphabet updates supersede by epoch.\n\n[Authority, withdrawals, receipts and PR review](docs/usage.md).\n\n## Select a topos by what it declares\n\n`sources/<name>` says where a world can be obtained. An admitted `uses/<name>` names the digest of that topos's folded standing: canonical live claims in wire byte order, excluding signature envelopes and host shape. Re-signing the same standing preserves the pin. A changed live form, class, view or offer changes it.\n\n`restsOn` closes artifact bytes separately. A capsule is one offer. Forms, classes and views need no capsule merely to be selected. Runtime and packing do not define standing identity. npm dependency ranges remain package metadata; they are not standing pins.\n\n| Responsibility | Owner |\n| --- | --- |\n| Meet, state, live acts and rest | Obligations |\n| Wire, forms, classes, views and offer contracts | Topos |\n| Admission, folding and evidence | Bound |\n| Domain measurement and representation | Selected topos |\n| Storage, transport and execution | Host |\n\nCell `restsOn` is the object's relation. Directory prefixes and file summaries are host coordinates, not object rest. Wire tokens are protocol constants, not organization, host, path or key literals.\n\n## Repository rules\n\nCommit `TARGET.bound`, `receipts.bound` and the outputs the forge reads. Ignore `.bound/` from the first line of `.gitignore`. Keep proposals, signed lots, keys, ledgers, caches and dependency blobs outside the published tree.\n\nThe lock is the project's own contract and pins. Read a dependency's declarations from its selected standing; do not copy its lines into your lock. README, package metadata and workflows must be renders of admitted declarations. A scan is an observation, not permission to lower a ceiling.\n\nA PR proposes lines and the leaf changes they render. The judge uses the team's accepted contract independently of the proposed revision. Preserve refusals, conflicting origins and unpaid demands. [Repository and contribution rules](docs/usage.md#repository-and-pr-review).\n\n## An atlas you can question\n\nInformation can share a history without sharing a single presentation. The same admitted cells can support a compact status view, a spatial view of their relations, or a focused reading of one disagreement. Each view asks for a region and resolution; its selected topos determines the representation.\n\nThis makes changes inspectable. A local act can remain local, travelling bounds can reach dependent cells, and a receipt can name the inputs of the reading you saw. You can ask what changed and what depends on it without turning a drawing into the algebra.\n\nA pin names standing, not a download URL or runtime entry. Its declared artifact dependencies close the bytes needed for an offered operation. The boundary lets a form or view remain meaningful even when it has no executable capsule.\n\nUse Bound where independently attributed observations must be judged against an accepted contract: compatibility between components, operational limits, or a team's project requirements. The selected topos must supply the actual measurements; a digest identifies the evidence without declaring it true.\n\n[Contribute a counterexample or a proposed lot](CONTRIBUTING.md)." at=policy:bound/historical-prose by=target form=alphabet measure=text role=writes scope=prose/en/idea value=present
5
+ bound-lock/1 about=", & " at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/cite/and value=lock
6
+ bound-lock/1 about="<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1200\" height=\"760\" viewBox=\"0 0 1200 760\" role=\"img\" aria-labelledby=\"title desc\">\n<title id=\"title\">One history, several views</title><desc id=\"desc\">Illustrative spatial view of B, C, G and independent D. C rests on B and G rests on C. B's travelling ceiling is 0 to 50 and travelling floor 40 to 100. Its local join widens only B to 0 to 100. Region receipts retain selected topos and implementation identity. Background points are decorative, not additional measured cells.</desc>\n<defs>\n<radialGradient id=\"bg\"><stop stop-color=\"#163445\"/><stop offset=\"1\" stop-color=\"#080f1c\"/></radialGradient>\n<radialGradient id=\"dot\"><stop stop-color=\"#fff\"/><stop offset=\".4\" stop-color=\"#b4f8ed\"/><stop offset=\"1\" stop-color=\"#2c8c9a\"/></radialGradient>\n<linearGradient id=\"edge\"><stop stop-color=\"#62d9c4\"/><stop offset=\"1\" stop-color=\"#8da4ef\"/></linearGradient>\n<filter id=\"glow\" x=\"-100%\" y=\"-100%\" width=\"300%\" height=\"300%\"><feGaussianBlur stdDeviation=\"12\"/></filter>\n<marker id=\"arrow\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"5\" markerHeight=\"5\" orient=\"auto-start-reverse\"><path d=\"M0 0 10 5 0 10\" fill=\"#7ce4d1\"/></marker>\n</defs>\n<style>text{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;fill:#eef5fa}.muted{fill:#aac0ce;font-size:16px}.small{fill:#aac0ce;font-size:14px}.label{font-size:19px;font-weight:600}.mono{font-family:Menlo,Consolas,monospace;font-size:15px;fill:#8fe7d7}</style>\n<rect width=\"1200\" height=\"760\" rx=\"24\" fill=\"url(#bg)\"/>\n<text x=\"64\" y=\"68\" class=\"small\" letter-spacing=\"3\">THE ALGEBRA IN 60 SECONDS</text>\n<text x=\"64\" y=\"118\" font-size=\"38\" font-weight=\"600\">One history. Several views.</text>\n<text x=\"64\" y=\"152\" class=\"muted\">A cell keeps its readings. A connection carries only what travels.</text>\n\n<path d=\"M687.2 493.6 Q622.5 471.6 557.7 519.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M687.2 493.6 Q611.8 400.4 536.4 377.1\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"687.2\" cy=\"493.6\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M557.7 519.6 Q599.3 438.0 640.9 426.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M557.7 519.6 Q694.0 469.6 830.3 489.7\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"557.7\" cy=\"519.6\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M640.9 426.5 Q679.9 444.8 718.9 533.1\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M640.9 426.5 Q532.8 423.4 424.6 490.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"640.9\" cy=\"426.5\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M718.9 533.1 Q593.9 462.3 468.9 461.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M718.9 533.1 Q723.2 406.5 727.6 349.8\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"718.9\" cy=\"533.1\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M468.9 461.5 Q624.8 408.6 780.7 425.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M468.9 461.5 Q584.9 469.0 701.0 546.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"468.9\" cy=\"461.5\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M780.7 425.6 Q680.5 453.3 580.3 550.9\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M780.7 425.6 Q600.0 368.0 419.3 380.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"780.7\" cy=\"425.6\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M580.3 550.9 Q558.3 429.0 536.4 377.1\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M580.3 550.9 Q726.7 444.2 873.2 407.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"580.3\" cy=\"550.9\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M536.4 377.1 Q683.3 398.4 830.3 489.7\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M536.4 377.1 Q510.2 415.4 484.0 523.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"536.4\" cy=\"377.1\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M830.3 489.7 Q627.4 455.0 424.6 490.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M830.3 489.7 Q713.5 362.0 596.8 304.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"830.3\" cy=\"489.7\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M424.6 490.3 Q576.1 385.1 727.6 349.8\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M424.6 490.3 Q627.3 458.2 829.9 496.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"424.6\" cy=\"490.3\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M727.6 349.8 Q714.3 413.1 701.0 546.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M727.6 349.8 Q546.7 349.1 365.9 418.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"727.6\" cy=\"349.8\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M701.0 546.4 Q560.2 428.4 419.3 380.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M701.0 546.4 Q760.0 399.0 818.9 321.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"701.0\" cy=\"546.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M419.3 380.4 Q646.3 358.9 873.2 407.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M419.3 380.4 Q518.5 419.1 617.6 527.9\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"419.3\" cy=\"380.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M873.2 407.4 Q678.6 430.5 484.0 523.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M873.2 407.4 Q665.3 320.4 457.4 303.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"873.2\" cy=\"407.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M484.0 523.6 Q540.4 378.9 596.8 304.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M484.0 523.6 Q690.8 432.3 897.5 411.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"484.0\" cy=\"523.6\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M596.8 304.3 Q713.4 365.1 829.9 496.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M596.8 304.3 Q502.6 347.7 408.4 461.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"596.8\" cy=\"304.3\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M829.9 496.0 Q597.9 422.2 365.9 418.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M829.9 496.0 Q759.5 344.6 689.1 263.2\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"829.9\" cy=\"496.0\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M365.9 418.3 Q592.4 334.9 818.9 321.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M365.9 418.3 Q564.7 418.1 763.4 487.9\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"365.9\" cy=\"418.3\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M818.9 321.5 Q718.3 389.7 617.6 527.9\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M818.9 321.5 Q597.5 294.7 376.0 338.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"818.9\" cy=\"321.5\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M617.6 527.9 Q537.5 380.6 457.4 303.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M617.6 527.9 Q743.8 388.6 869.9 319.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"617.6\" cy=\"527.9\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M457.4 303.3 Q677.5 322.2 897.5 411.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M457.4 303.3 Q493.2 355.5 529.1 477.7\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"457.4\" cy=\"303.3\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M897.5 411.0 Q653.0 401.0 408.4 461.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M897.5 411.0 Q720.1 295.0 542.7 248.9\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"897.5\" cy=\"411.0\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M408.4 461.0 Q548.8 327.1 689.1 263.2\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M408.4 461.0 Q631.6 401.1 854.7 411.2\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"408.4\" cy=\"461.0\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M689.1 263.2 Q726.2 340.6 763.4 487.9\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M689.1 263.2 Q539.2 287.2 389.2 381.2\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"689.1\" cy=\"263.2\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M763.4 487.9 Q569.7 377.9 376.0 338.0\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M763.4 487.9 Q762.5 335.1 761.7 252.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"763.4\" cy=\"487.9\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M376.0 338.0 Q623.0 293.7 869.9 319.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M376.0 338.0 Q523.1 359.3 670.2 450.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"376.0\" cy=\"338.0\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M869.9 319.4 Q699.5 363.5 529.1 477.7\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M869.9 319.4 Q659.0 260.9 448.0 272.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"869.9\" cy=\"319.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M529.1 477.7 Q535.9 328.3 542.7 248.9\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M529.1 477.7 Q690.3 366.0 851.4 324.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"529.1\" cy=\"477.7\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M542.7 248.9 Q698.7 295.1 854.7 411.2\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M542.7 248.9 Q514.0 289.8 485.2 400.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"542.7\" cy=\"248.9\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M854.7 411.2 Q621.9 361.2 389.2 381.2\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M854.7 411.2 Q742.8 285.3 631.0 229.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"854.7\" cy=\"411.2\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M389.2 381.2 Q575.4 281.7 761.7 252.3\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M389.2 381.2 Q574.0 347.8 758.8 384.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"389.2\" cy=\"381.2\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M761.7 252.3 Q716.0 316.4 670.2 450.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M761.7 252.3 Q606.9 244.3 452.2 306.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"761.7\" cy=\"252.3\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M670.2 450.6 Q559.1 326.5 448.0 272.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M670.2 450.6 Q715.3 322.0 760.3 263.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"670.2\" cy=\"450.6\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M448.0 272.4 Q649.7 263.4 851.4 324.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M448.0 272.4 Q525.9 286.7 603.9 371.1\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"448.0\" cy=\"272.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M851.4 324.4 Q668.3 327.5 485.2 400.6\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M851.4 324.4 Q707.4 252.6 563.4 250.8\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"851.4\" cy=\"324.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M485.2 400.6 Q558.1 280.0 631.0 229.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M485.2 400.6 Q604.9 318.9 724.5 307.1\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"485.2\" cy=\"400.6\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M631.0 229.4 Q694.9 271.9 758.8 384.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<path d=\"M631.0 229.4 Q605.0 231.0 579.1 302.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"631.0\" cy=\"229.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M758.8 384.4 Q605.5 310.4 452.2 306.4\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"758.8\" cy=\"384.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M452.2 306.4 Q606.2 249.9 760.3 263.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"452.2\" cy=\"306.4\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M760.3 263.5 Q682.1 282.3 603.9 371.1\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"760.3\" cy=\"263.5\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M603.9 371.1 Q583.6 276.0 563.4 250.8\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"603.9\" cy=\"371.1\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M563.4 250.8 Q644.0 244.0 724.5 307.1\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"563.4\" cy=\"250.8\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<path d=\"M724.5 307.1 Q651.8 269.8 579.1 302.5\" stroke=\"#588d9e\" stroke-width=\".6\" opacity=\".13\" fill=\"none\"/>\n<circle cx=\"724.5\" cy=\"307.1\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<circle cx=\"579.1\" cy=\"302.5\" r=\"1.6\" fill=\"#8cafbc\" opacity=\".4\"/>\n<ellipse cx=\"557\" cy=\"422\" rx=\"240\" ry=\"132\" transform=\"rotate(-16 557 422)\" stroke=\"#547c96\" stroke-dasharray=\"3 9\" fill=\"#71b9bd\" fill-opacity=\".025\"/>\n<path d=\"M391 402 Q469 255 583 351\" stroke=\"url(#edge)\" stroke-width=\"2.6\" fill=\"none\" marker-end=\"url(#arrow)\"/>\n<path d=\"M603 367 Q681 397 689 457\" stroke=\"url(#edge)\" stroke-width=\"2.6\" fill=\"none\" marker-end=\"url(#arrow)\"/>\n<ellipse cx=\"379\" cy=\"420\" rx=\"57\" ry=\"24\" transform=\"rotate(-20 379 420)\" stroke=\"#bba4f8\" stroke-width=\"2\" fill=\"#bba4f8\" fill-opacity=\".06\"/>\n<path d=\"M356 439 Q334 464 317 481\" stroke=\"#bba4f8\" opacity=\".7\" fill=\"none\"/>\n<text x=\"65\" y=\"283\" class=\"label\">Travelling bounds</text>\n<text x=\"65\" y=\"313\" class=\"mono\">ceiling 0..50</text><text x=\"65\" y=\"340\" class=\"mono\">floor 40..100</text>\n<text x=\"65\" y=\"369\" class=\"small\">B → C → G</text>\n<path d=\"M243 319 289 319 336 398\" stroke=\"#608797\" fill=\"none\"/>\n<text x=\"65\" y=\"498\" class=\"label\">Local join</text>\n<text x=\"65\" y=\"528\" font-size=\"16\" fill=\"#c3b2fa\">B widens to 0..100</text>\n<text x=\"65\" y=\"555\" class=\"small\">The travelling sign stays live.</text>\n<path d=\"M240 511 284 511 317 481\" stroke=\"#847fa1\" fill=\"none\"/>\n\n<circle cx=\"379\" cy=\"420\" r=\"22\" fill=\"#78d7c8\" opacity=\".4\" filter=\"url(#glow)\"/><circle cx=\"379\" cy=\"420\" r=\"8\" fill=\"url(#dot)\"/><text x=\"397\" y=\"411\" class=\"label\">B</text>\n<circle cx=\"590\" cy=\"354\" r=\"22\" fill=\"#78d7c8\" opacity=\".4\" filter=\"url(#glow)\"/><circle cx=\"590\" cy=\"354\" r=\"8\" fill=\"url(#dot)\"/><text x=\"608\" y=\"345\" class=\"label\">C</text>\n<circle cx=\"690\" cy=\"468\" r=\"22\" fill=\"#78d7c8\" opacity=\".4\" filter=\"url(#glow)\"/><circle cx=\"690\" cy=\"468\" r=\"8\" fill=\"url(#dot)\"/><text x=\"708\" y=\"459\" class=\"label\">G</text>\n<circle cx=\"927\" cy=\"302\" r=\"22\" fill=\"#78d7c8\" opacity=\".4\" filter=\"url(#glow)\"/><circle cx=\"927\" cy=\"302\" r=\"8\" fill=\"url(#dot)\"/><text x=\"945\" y=\"293\" class=\"label\">D</text>\n<text x=\"621\" y=\"331\" class=\"small\">ceiling 0..50</text>\n<text x=\"718\" y=\"496\" class=\"small\">ceiling 0..50</text>\n<text x=\"868\" y=\"251\" class=\"label\">Independent cell</text>\n<text x=\"868\" y=\"278\" class=\"small\">D declares no rest on B.</text>\n<text x=\"449\" y=\"573\" class=\"small\">Region: the cells selected by a view</text>\n<path d=\"M64 624H1136\" stroke=\"#304658\"/>\n<text x=\"64\" y=\"664\" class=\"label\">Selected topos</text>\n<text x=\"64\" y=\"693\" class=\"small\">Forms and views · pinned folded standing</text>\n<text x=\"655\" y=\"664\" class=\"label\">Receipts at resolution 1</text>\n<text x=\"655\" y=\"693\" class=\"small\">Semantic inputs + selected implementation</text>\n<text x=\"64\" y=\"733\" font-size=\"12\" fill=\"#8ea6b7\">Illustrative layout · connections denote declared rest · position and size do not measure importance</text>\n</svg>" at=policy:public-prose by=target form=alphabet measure=text role=writes scope=prose/en/files/public-3 shape=docs/readme-assets/atlas.svg value=lock
7
+ bound-lock/1 about="A REFUSE prints its line and stops. Nothing after it is a fact." at=policy:bound/010-law by=target form=alphabet kind=axiom measure=status needs=bound/samples/yes/a-refuse-plants.json|bound/samples/no/a-refuse-plants.json role=demands scope=law/a-refuse-plants value=present
8
+ bound-lock/1 about="A fact is a line the CLI printed. What it did not print does not exist." at=policy:bound/010-law by=target form=alphabet kind=axiom measure=status needs=bound/samples/yes/a-fact-is-a-printed-line.json|bound/samples/no/a-fact-is-a-printed-line.json role=demands scope=law/a-fact-is-a-printed-line value=present
9
+ bound-lock/1 about="A first run" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/learn/heading value=lock
10
+ bound-lock/1 about="A fold" at=policy:bound/readme by=target form=alphabet measure=text role=writes scope=prose/en/figure/fold/heading value=present
11
+ bound-lock/1 about="A fold, live" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=prose/en/seq/heading value=lock
12
+ bound-lock/1 about="A line" at=policy:bound/readme by=target form=alphabet measure=text role=writes scope=prose/en/figure/line/heading value=present
13
+ bound-lock/1 about="A lock is the set of lines a place is bound by. A receipt is what a reader saw. The fold is their meet. Each line carries scope, role, form, measure, value, needs, at, by, epoch, sig." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/the-object value=present
14
+ bound-lock/1 about="A place selects its own worlds by standing digest; selection travels through the existing place projection." at=policy:bound/places by=target form=alphabet measure=id role=reads scope=place/speaks value=uses/*
15
+ bound-lock/1 about="A second independent reader must agree. The fold rebuilds from the files alone, offline." at=policy:bound/010-law by=target form=alphabet kind=axiom measure=status needs=bound/samples/yes/verify-agrees.json|bound/samples/no/verify-agrees.json role=demands scope=law/verify-agrees value=present
16
+ bound-lock/1 about="Bind a package release with the pipeline views. Bind a page to its receipts with view/readme. Refuse a dependency drift with dep pins. Ask a second head that must agree." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/learn value=present
17
+ bound-lock/1 about="Bound is the application of that algebra: signed bounds, folded by one meet, refused when they fork." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/paper value=present
18
+ bound-lock/1 about="Cite it as {name}." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/cff/name value=lock
19
+ bound-lock/1 about="Cite it by the paper it rests on, Two-Sided Constraints on a Valued Lattice." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/cff/paper value=lock
20
+ bound-lock/1 about="Declare what must hold. Read what does. Keep the evidence." at=policy:bound/historical-prose by=target form=alphabet measure=text role=writes scope=docs/tagline value=present
21
+ bound-lock/1 about="Declared runtime processes participate in the instrument implementation identity." at=policy:bound/receipts by=target form=alphabet kind=process measure=id needs=dist/cli/host.js|dist/cli/observe.js|dist/host/located.js|dist/host/provide.js role=writes scope=process/runtime value=present
22
+ bound-lock/1 about="Expose the place own release policy and its selected obligations through the existing place projection." at=policy:bound/places by=target form=alphabet measure=id role=reads scope=place/speaks value=uses/*|view/*/**|reader/*/**|notation/*/**|idempotent|one-writer|nothing-deleted|law/one-lot-one-place|cli/**|fold/idle|cost/act|literal/**|duplicate/src|door/unreceipted|resolve-by-url|offline|the-stranger|release/**
23
+ bound-lock/1 about="First session" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/seq/heading value=present
24
+ bound-lock/1 about="First use" at=policy:bound/readme by=target form=alphabet measure=text role=writes scope=prose/en/commands/heading value=lock
25
+ bound-lock/1 about="How Bound reads a project" at=policy:bound/historical-prose by=target form=alphabet measure=text role=writes scope=prose/en/idea/heading value=lock
26
+ bound-lock/1 about="How to add or change a lock" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/exchange/heading value=present
27
+ bound-lock/1 about="In an empty folder, write a three-line TARGET.bound, run bound ., and see the stranger four lines printed. Then land, then bound . --as card --key <you>. A fact is a printed line." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/first-use/lead value=lock
28
+ bound-lock/1 about="Joining two files is putting their lines together: order does not matter, and a line twice is still one. A disagreement does not break the merge; it shows as CONFLICT. A file travels alone. Bound never guesses: one origin is REQUIRED, not FREE. Each of these is a test in bound/test/laws.test.ts." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/what-holds/lead value=lock
29
+ bound-lock/1 about="Land the batch with the key that covers it." at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/seq/key value=present
30
+ bound-lock/1 about="No fourth verb. A batch lands whole or not at all. A bound nobody has a reading for is refused. A changed byte of a signed line does not verify. Bound does not know whether a claim is true in the world: it knows who signed what, and whether the ranges meet." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/refuses/lead value=lock
31
+ bound-lock/1 about="One lot lands one place. A lot for many places lands the same lines at each." at=policy:bound/010-law by=target form=alphabet kind=axiom measure=status needs=bound/samples/yes/one-lot-one-place.json|bound/samples/no/one-lot-one-place.json role=demands scope=law/one-lot-one-place value=present
32
+ bound-lock/1 about="Only the declared license is requested by this historical page." at=policy:bound/historical-prose by=target form=alphabet measure=id role=writes scope=docs/badges value=license
33
+ bound-lock/1 about="Pending general document projection at .github/workflows/release.yml; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/files/workflow/release value=text@3
34
+ bound-lock/1 about="Pending general document projection at .github/workflows/tag.yml; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/files/workflow/tag value=text@3
35
+ bound-lock/1 about="Pending general document projection at .github/workflows/test.yml; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/files/workflow/test value=text@3
36
+ bound-lock/1 about="Pending general document projection at CONTRIBUTING.md; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/files/public-1 value=text@3
37
+ bound-lock/1 about="Pending general document projection at README.md; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/readme value=text@3
38
+ bound-lock/1 about="Pending general document projection at docs/readme-assets/atlas.svg; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/files/public-3 value=text@3
39
+ bound-lock/1 about="Pending general document projection at docs/usage.md; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/files/public-2 value=text@3
40
+ bound-lock/1 about="Pending general document projection at package.json; no automatic output is claimed by this capability demand." at=policy:own-prose by=target form=alphabet measure=id role=demands scope=view/files/manifest value=text@3
41
+ bound-lock/1 about="Preview with fold --as before it lands." at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/seq/look value=present
42
+ bound-lock/1 about="Read on" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/pointers/heading value=lock
43
+ bound-lock/1 about="Read on" at=policy:bound/prose by=target form=alphabet measure=text role=writes scope=prose/en/pointers/heading value=lock
44
+ bound-lock/1 about="Release selection of existing obligations; their fold evidence determines the verdict." at=policy:bound/release by=target form=alphabet measure=id role=writes scope=release/category/admission value=idempotent|one-writer|nothing-deleted
45
+ bound-lock/1 about="Release selection of existing obligations; their fold evidence determines the verdict." at=policy:bound/release by=target form=alphabet measure=id role=writes scope=release/category/cli value=cli/**|fold/idle|cost/act
46
+ bound-lock/1 about="Release selection of existing obligations; their fold evidence determines the verdict." at=policy:bound/release by=target form=alphabet measure=id role=writes scope=release/category/integrity value=literal/host|literal/key|literal/org|literal/path|duplicate/src|door/unreceipted
47
+ bound-lock/1 about="Release selection of existing obligations; their fold evidence determines the verdict." at=policy:bound/release by=target form=alphabet measure=id role=writes scope=release/category/pins value=resolve-by-url|offline|the-stranger
48
+ bound-lock/1 about="Rewriting hero, idea and the other section regions as compositions of atoms is 0.1.1, not done quietly here." at=policy:bound/010 by=target form=alphabet kind=conjecture measure=status role=demands scope=open/section-regions-as-atoms value=present
49
+ bound-lock/1 about="The coordinate of the observed host implementation digest in the native receipt set." at=policy:bound/receipts by=target form=alphabet measure=id role=writes scope=audit/wire/receipt-instrument value=instrument/implementation
50
+ bound-lock/1 about="The explicitly selected historical document profile over this place own prose; general text@3 demands remain unpaid." at=policy:bound/historical-prose by=target form=alphabet measure=id needs=README.md role=demands scope=view/readme-historical shape=README.md value=hero@3|commands@3|idea@3|open@3
51
+ bound-lock/1 about="The native public receipt carries its actual observed set at resolution 8 before the authenticated summary at resolution 0 and current region bytes at resolution 1." at=witness:a-public-receipt-carries-its-observations by=target form=alphabet measure=id role=demands scope=view/receipts shape=receipts.bound value=receipts@8|receipts@0|receipts@1
52
+ bound-lock/1 about="The object" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/the-object/heading value=lock
53
+ bound-lock/1 about="The paper" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/the-paper/heading value=lock
54
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/allowImportingTsExtensions shape=tsconfig.json value=true
55
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/composite shape=tsconfig.json value=true
56
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/declaration shape=tsconfig.json value=true
57
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/esModuleInterop shape=tsconfig.json value=true
58
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/forceConsistentCasingInFileNames shape=tsconfig.json value=true
59
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/include shape=tsconfig.json value=src
60
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/incremental shape=tsconfig.json value=true
61
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/module shape=tsconfig.json value=nodenext
62
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/moduleResolution shape=tsconfig.json value=nodenext
63
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/noFallthroughCasesInSwitch shape=tsconfig.json value=true
64
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/noImplicitOverride shape=tsconfig.json value=true
65
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/noImplicitReturns shape=tsconfig.json value=true
66
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/outDir shape=tsconfig.json value=dist
67
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/rewriteRelativeImportExtensions shape=tsconfig.json value=true
68
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/rootDir shape=tsconfig.json value=src
69
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/skipLibCheck shape=tsconfig.json value=true
70
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/strict shape=tsconfig.json value=true
71
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/target shape=tsconfig.json value=ES2020
72
+ bound-lock/1 about="This place own build option, observed from its source tsconfig for the selected historical build profile." at=policy:bound/build-profile by=target form=alphabet measure=id role=writes scope=build/tsBuildInfoFile shape=tsconfig.json value=.tsbuildinfo
73
+ bound-lock/1 about="This place requests complete blocks at resolution three from its explicitly selected historical document profile." at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=form/page/statement value=3
74
+ bound-lock/1 about="Try it" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/first-use/heading value=lock
75
+ bound-lock/1 about="Two-Sided Constraints on a Valued Lattice" at=policy:bound/010 by=target form=alphabet measure=author role=writes scope=cites/two-sided-constraints value="Ochoa, N."
76
+ bound-lock/1 about="Two-Sided Constraints on a Valued Lattice" at=policy:bound/010 by=target form=alphabet measure=doi role=writes scope=cites/two-sided-constraints value=10.5281/zenodo.21858428
77
+ bound-lock/1 about="What holds" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/what-holds/heading value=lock
78
+ bound-lock/1 about="What is open" at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=prose/en/open/heading value=lock
79
+ bound-lock/1 about="What it refuses" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/refuses/heading value=lock
80
+ bound-lock/1 about="What it refuses" at=policy:bound/010-figure by=target form=alphabet measure=text role=writes scope=prose/en/figure/refuses/heading value=lock
81
+ bound-lock/1 about="What it rests on" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/rests/heading value=lock
82
+ bound-lock/1 about="What rests on it" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/rested/heading value=lock
83
+ bound-lock/1 about="Write the line as by=target." at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/seq/line value=present
84
+ bound-lock/1 about="`{scope}` is demanded and not paid" at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=prose/en/open/unpaid value=lock
85
+ bound-lock/1 about="`{scope}` reads `{reading}`, outside its ceiling" at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=prose/en/open/outside value=lock
86
+ bound-lock/1 about="a byte lives only while a standing line names it: the store is the receipts of blobs, laid snapshots and answer caches, and 2G is the ceiling" at=policy:bound/store by=target form=interval measure=bytes role=reads scope=store/bytes value=0..2000000000
87
+ bound-lock/1 about="a capsule as it declares itself: the lines of its own lock, handed whole as the host reads them, never its files" at=policy:bound/regions by=target form=alphabet measure=lines role=reads scope=region/capsule value=capsule.bound
88
+ bound-lock/1 about="a capture of the CLI on the meeting sample agrees with this fold" at=policy:bound/bound by=target form=interval measure=capture-differs needs=bound/samples/yes/meeting.bound role=reads scope=capture/differs value=0..0
89
+ bound-lock/1 about="a fold runs where freedom remains: a region whose bytes meet its receipt at resolution 1 is closed, and the receipt is the result" at=witness:a-fold-over-a-closed-region by=target form=interval measure=idle role=reads scope=fold/idle value=0..0
90
+ bound-lock/1 about="a line of the lock, drawn from the citation sample" at=policy:bound/010-line by=target form=alphabet measure=id needs=bound/docs/img/line.svg|bound/samples/yes/line.bound role=demands scope=view/figure-line shape=docs/img/line.svg value=figure-line@1
91
+ bound-lock/1 about="a lock is stale only when its pid is gone, and an accept that dies prints REFUSE·crash" at=witness:a-dead-pid-is-stale by=target form=alphabet measure=id role=reads scope=act/stale value=esrch
92
+ bound-lock/1 about="a one-line index in the tree is loaded by role, each region by name" at=witness:a-located-index-loaded-by-role by=target form=alphabet measure=id role=reads scope=host/located value=role
93
+ bound-lock/1 about="after the host surface cut, the host is the lines the fold prints for src/host|src/observe|src/cli" at=witness:host-io-split-recounted-the-kernel by=target form=interval measure=host-lines role=reads scope=host/lines value=0..3269
94
+ bound-lock/1 about="after the host surface cut, the kernel is the lines the fold prints for src/fold|src/judge|src/land|src/render" at=witness:host-io-split-recounted-the-kernel by=target form=interval measure=kernel-lines role=reads scope=kernel/lines value=0..7279
95
+ bound-lock/1 about="an SVG sample animates" at=policy:bound/door by=target form=interval measure=unanimated needs=bound/docs/img role=reads scope=figures/unanimated value=0..0
96
+ bound-lock/1 about="an SVG sample carries no timestamp" at=policy:bound/door by=target form=interval measure=timestamped needs=bound/docs/img role=reads scope=figures/timestamped value=0..0
97
+ bound-lock/1 about="an act costs at most a minute: a fold of what has not changed is the receipts it reads" at=witness:a-closed-tree-read-in-its-receipts by=target form=interval measure=s role=reads scope=cost/act value=0..60
98
+ bound-lock/1 about="bound export no other observed file imports" at=policy:bound/split by=target form=interval measure=unused-exports needs=samples/split/** role=reads scope=unused/src value=0..0
99
+ bound-lock/1 about="bound export whose body equals a same-named export of a place the lock uses" at=policy:bound/split by=target form=interval measure=derivable-bodies needs=samples/split/** role=reads scope=derivable/src value=0..0
100
+ bound-lock/1 about="bound folds what was bound: signed bounds, folded by one algebra, refused when they fork." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/what value=lock
101
+ bound-lock/1 about="bound source whose body hash equals a body of a place the lock uses" at=policy:bound/split by=target form=interval measure=reimplemented-bodies role=reads scope=reimplemented/src value=0..0
102
+ bound-lock/1 about="cli verbs" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/count/cli/verbs value=present
103
+ bound-lock/1 about="cost of an act" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/count/cost/act value=present
104
+ bound-lock/1 about="exit 0 means closed" at=policy:bound/010 by=target form=interval measure=cli-exit-closed role=reads scope=cli/exit/closed value=0..0
105
+ bound-lock/1 about="exit 1 means a REFUSE" at=policy:bound/010 by=target form=interval measure=cli-exit-refuse role=reads scope=cli/exit/refuse value=1..1
106
+ bound-lock/1 about="exit 2 means a usage error" at=policy:bound/010 by=target form=interval measure=cli-exit-usage role=reads scope=cli/exit/usage value=2..2
107
+ bound-lock/1 about="fold --as help prints the three verbs and no fourth." at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/exchange/help value=present
108
+ bound-lock/1 about="fold --as help prints the three verbs and no fourth." at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/seq/help value=present
109
+ bound-lock/1 about="fold --as readme --check prints SAME when that page's cone did not move." at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/seq/check value=present
110
+ bound-lock/1 about="fold idle" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/count/fold/idle value=present
111
+ bound-lock/1 about="fold reads, land writes signed lines, sign is a key act. There is no fourth verb." at=policy:bound/010-law by=target form=alphabet kind=axiom measure=status needs=bound/samples/yes/three-verbs.json|bound/samples/no/three-verbs.json role=demands scope=law/three-verbs value=present
112
+ bound-lock/1 about="gate/check names only the places in the act's descent" at=witness:gate-check-names-the-descent by=target form=alphabet measure=id role=reads scope=check/descent value=descent
113
+ bound-lock/1 about="handed {input}, it refuses: {why}" at=policy:bound/010-figure by=target form=alphabet measure=text role=writes scope=prose/en/figure/refuses value=lock
114
+ bound-lock/1 about="how many axioms the door spells" at=policy:bound/010-samples by=target form=alphabet measure=id role=writes scope=docs/what-holds value=9
115
+ bound-lock/1 about="how this place is cited" at=policy:bound/010 by=target form=alphabet measure=id needs=CITATION.cff role=demands scope=view/citation-file shape=CITATION.cff value=cff
116
+ bound-lock/1 about="lines, not a page: blobs, laid snapshots and answer caches no alias, pin or receipt names; land withdraws them" at=policy:bound/views by=target form=alphabet measure=id role=demands scope=view/unnamed value=unnamed
117
+ bound-lock/1 about="name: release\non:\n workflow_run:\n workflows: [tag]\n types: [completed]\n push:\n tags: ['v*']\njobs:\n release:\n if: github.event_name == 'push' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main')\n runs-on: ubuntu-latest\n permissions:\n contents: write\n outputs:\n tag: ${{ steps.version.outputs.tag }}\n steps:\n - uses: actions/checkout@v4\n with:\n ref: ${{ github.event.workflow_run.head_sha || github.sha }}\n fetch-depth: 0\n - id: version\n env:\n EVENT_NAME: ${{ github.event_name }}\n REF_NAME: ${{ github.ref_name }}\n run: |\n version=\"v$(node -p \"require('./package.json').version\")\"\n if [ \"$EVENT_NAME\" = push ]; then\n test \"$REF_NAME\" = \"$version\"\n fi\n git rev-parse --verify \"refs/tags/$version\"\n echo \"tag=$version\" >> \"$GITHUB_OUTPUT\"\n git checkout --detach \"$version\"\n - uses: actions/setup-node@v4\n with:\n node-version: 24\n - run: npm ci\n - run: npm run build\n - run: npm test\n - run: node dist/cli/verb.js fold --check\n - env:\n GH_TOKEN: ${{ github.token }}\n run: |\n version=\"${{ steps.version.outputs.tag }}\"\n asset=\"$(npm pack --silent)\"\n expected=\"$(sha256sum \"$asset\" | cut -d ' ' -f 1)\"\n if ! gh release view \"$version\" >/dev/null 2>&1; then\n gh release create \"$version\" \"$asset\" --title \"$version\" --notes \"$(git log -1 --format=%B)\"\n fi\n download_dir=\"$(mktemp -d)\"\n gh release download \"$version\" --pattern \"$asset\" --dir \"$download_dir\"\n actual=\"$(sha256sum \"$download_dir/$asset\" | cut -d ' ' -f 1)\"\n test \"$expected\" = \"$actual\"\n publish:\n needs: release\n environment: release\n runs-on: ubuntu-latest\n permissions:\n contents: read\n id-token: write\n steps:\n - uses: actions/checkout@v4\n with:\n ref: ${{ needs.release.outputs.tag }}\n - uses: actions/setup-node@v4\n with:\n node-version: 24\n - run: npm ci\n - run: npm run build\n - run: npm test\n - run: npm install --global npm@'12.1.0'\n - run: |\n npm view \"$(node -p \"require('./package.json').name\")@$(node -p \"require('./package.json').version\")\" version >/dev/null 2>&1 && exit 0\n npm stage publish\n" at=policy:bound/pipeline by=target form=alphabet measure=text role=writes scope=prose/en/files/workflow/release shape=.github/workflows/release.yml value=lock
118
+ bound-lock/1 about="name: tag\non:\n workflow_run:\n workflows: [test]\n types: [completed]\njobs:\n tag:\n if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push' && github.event.workflow_run.head_branch == 'main'\n runs-on: ubuntu-latest\n permissions:\n contents: write\n steps:\n - uses: actions/checkout@v4\n with:\n ref: ${{ github.event.workflow_run.head_sha }}\n fetch-depth: 0\n - run: |\n version=\"v$(node -p \"require('./package.json').version\")\"\n git tag --list \"$version\" | grep -q . && exit 0\n git tag \"$version\" && git push origin \"$version\"\n" at=policy:bound/pipeline by=target form=alphabet measure=text role=writes scope=prose/en/files/workflow/tag shape=.github/workflows/tag.yml value=lock
119
+ bound-lock/1 about="name: test\non:\n push:\n branches: [main]\n pull_request:\njobs:\n test:\n strategy:\n fail-fast: false\n matrix:\n node: [22, 24]\n runs-on: ubuntu-latest\n permissions:\n contents: read\n steps:\n - uses: actions/checkout@v4\n - uses: actions/setup-node@v4\n with:\n node-version: ${{ matrix.node }}\n - run: npm ci\n - run: npm run build\n - run: npm test\n - name: Verify native closure and receipt reuse\n run: |\n node dist/cli/verb.js fold --check > \"$RUNNER_TEMP/bound-check.log\" 2>&1 || { cat \"$RUNNER_TEMP/bound-check.log\"; exit 1; }\n cat \"$RUNNER_TEMP/bound-check.log\"\n grep -Eq '^PASS +closed' \"$RUNNER_TEMP/bound-check.log\"\n grep -Eq '^RECEIPTS [1-9][0-9]* read · 0 opened' \"$RUNNER_TEMP/bound-check.log\"\n - run: npm pack --silent\n" at=policy:bound/pipeline by=target form=alphabet measure=text role=writes scope=prose/en/files/workflow/test shape=.github/workflows/test.yml value=lock
120
+ bound-lock/1 about="npx @lapxo/bound@0.1.0 fold --as help\nnpx @lapxo/bound@0.1.0 fold" at=policy:bound/historical-prose by=target form=alphabet measure=text role=writes scope=prose/en/commands value=lock
121
+ bound-lock/1 about="obligations is the meet. topos is the line. Worlds outside bound read a calendar, a package, a page. Bound reads lines, folds them, lands what was signed, and signs." at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/rests/on value=present
122
+ bound-lock/1 about="one origin is REQUIRED, two that meet inside every bound are FREE, two that meet outside a bound are FORBIDDEN, and two that do not meet are CONFLICT" at=policy:bound/010-states by=target form=alphabet measure=id role=writes scope=notation/states value="one origin=REQUIRED|claims that meet and fit the bounds=FREE|claims that meet outside the bounds=FORBIDDEN|bounds that cross=CONFLICT"
123
+ bound-lock/1 about="take the package in" at=policy:bound/door by=target form=alphabet measure=id role=writes scope=install value=npx
124
+ bound-lock/1 about="the DOI prefix a cite is read through" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=sources/doi value=https://doi.org/
125
+ bound-lock/1 about="the TypeScript capsule nine places still pin, before source/longest became a maximum: named here until no uses line names it" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-typescript-tree/pinned shape=dist/index.js value=sha256:8c29831ead1c231f8f444d49e64adb293bd4e0b854192b225a539c288a927ed6
126
+ bound-lock/1 about="the TypeScript capsule readers: source/longest emitted under the measure longest, a maximum, and sibling refs as a count" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-typescript-tree/readers shape=dist/index.js value=sha256:bf8a5a67c8a675ed04349e72c36a8f073a5c153646e98d2003b36a3fad34209e
127
+ bound-lock/1 about="the algebra and the notation this place rests on" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=dependencies value=@lapxo/obligations|@lapxo/topos
128
+ bound-lock/1 about="the algebra bound folds with, named by the digest of its release and read from bound-s own store, never from a sibling of the tree" at=witness:a-notation-that-asked-an-algebra-newer-than-the-one-laid by=target form=alphabet measure=id needs=node_modules/@lapxo/obligations role=reads scope=dep/obligations value=sha256:0a5bc5c61df28a3b7b2798869ab9aac74b98904856806a30d1755d26808f2254
129
+ bound-lock/1 about="the atoms of the door, in that order, each fed by a page/readme line or a receipt" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/readme value=group|say|term|count|cell|seq|exchange|set|ref
130
+ bound-lock/1 about="the badge host a page wears" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=sources/badges value=https://img.shields.io/badge
131
+ bound-lock/1 about="the boss is withdrawn; the meet is again the range every remaining origin allows" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=prose/en/figure/fold/back value=lock
132
+ bound-lock/1 about="the bound capsule eleven places still pin, before capsules without a lock became a count: named here until no uses line names it" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-bound/pinned shape=dist/index.js value=sha256:28ac8b547e1868669de898262f89ace3dd559506e7a36d4f19d67c988f0f598b
133
+ bound-lock/1 about="the bound capsule readers, packed against the notation release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-bound/released shape=dist/index.js value=sha256:8742250a27d7848a731c72f2f6296a3527ff68e0b5232c6afd44e0d2b666ee92
134
+ bound-lock/1 about="the bound capsule readers: a capsule read as its entries, the laws a lock states, and capsules without a lock as a count" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-bound/readers shape=dist/index.js value=sha256:b782fb571bdff3af25490f2a61ed31d043c509580a313e4f08bde16f968eb8b7
135
+ bound-lock/1 about="the branch the forge tests and tags" at=policy:bound/pipeline by=target form=alphabet measure=id role=writes scope=pipeline/branch value=main
136
+ bound-lock/1 about="the build does not emit declaration maps; tsconfig renders this line" at=policy:bound/build by=target form=alphabet measure=id needs=tsconfig.json role=writes scope=build/declarationMap shape=tsconfig.json value=false
137
+ bound-lock/1 about="the bundler the host builds a reader-s blob with, where the host keeps it in the tree" at=policy:bound/runner by=target form=alphabet measure=id role=reads scope=host/bundler value=node_modules/esbuild/bin/esbuild
138
+ bound-lock/1 about="the capsule that renders a node package, each copy of its manifest and its build a function of the place-s lines and its prose written as its language writes a sentence, named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node/lines shape=dist/manifest.js value=sha256:86126302924d7982102693275ef186fee512ed3b73a4ca2632f1a8fc0cf124d9
139
+ bound-lock/1 about="the capsule that renders a node package, named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node shape=dist/manifest.js value=sha256:f77a27edeb2090ee34883acacb071197584019568851cc20d648e3ecf5fb19fe
140
+ bound-lock/1 about="the capsule that renders a node package, one region a file on the shell, named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node/regions shape=dist/manifest.js value=sha256:f580ca2fbe39efdea6ea502c2cbcbad5c5d8aff21f23df3996a7472384752acf
141
+ bound-lock/1 about="the capsule that renders a place-s forge, named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github shape=dist/pipeline.js value=sha256:4b222d20c087f0beb2aaaeeb340559d058812c81b9c7d1b034fc0fd82bf56261
142
+ bound-lock/1 about="the capsule that renders a place-s forge, one workflow a function of the place-s lines, named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/lines shape=dist/pipeline.js value=sha256:c0376c3614233682d47c3a129c65f620ea943b0a781757d7323aace30c620e5c
143
+ bound-lock/1 about="the capsule that renders a place-s pages as a function of its lines and the receipts of its regions: its prose in its language, what its code says as the language-s capsule read it, its object as its notation lines name it; named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/lines shape=dist/pages.js value=sha256:e8a91cc39437a8c9a4a658e84e5fda91c3668d31d88a57a685934494b452ee2e
144
+ bound-lock/1 about="the capsule that renders a place-s pages from its lock and the receipts of its regions, named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc shape=dist/pages.js value=sha256:2f0d5b0b707b547ec437e38180eaacfccf669bb5ab83c58bd06f32ee3c8ccfdc
145
+ bound-lock/1 about="the capsule that renders a place-s pages, reading the accessors of its shell and the regions of its own lock, named by the digest of its lock and its bytes, and the leaf of those bytes that runs" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/regions shape=dist/pages.js value=sha256:6a80af35ed11eee5e91a1979a9c0e569e39d5f946ff86605116c0b16708ee488
146
+ bound-lock/1 about="the capture reader: the CLI on the meeting sample" at=policy:bound/paid by=target form=alphabet measure=reader needs=bound/samples/yes/meeting.bound role=reads scope=reader/capture shape=*.bound value=bound/src/observe/capture.ts
147
+ bound-lock/1 about="the cases a place holds, as the fold counts them from its receipts" at=policy:bound/regions by=target form=alphabet measure=receipts role=reads scope=region/cases value=cases/held
148
+ bound-lock/1 about="the coordinates of bound the artifacts region is handed: what a build writes beside its sources" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/artifacts value=src/**/*.js|src/**/*.ts
149
+ bound-lock/1 about="the coordinates of bound the concepts region is handed: the modules whose exports are the instrument's concepts" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/concepts value=src/cli/verb.ts|src/fold/**/*.ts|src/land/**/*.ts|src/judge/**/*.ts|src/render/**/*.ts|src/host/ports/store.ts|src/host/adapters/keys/**/*.ts
150
+ bound-lock/1 about="the coordinates of bound the entries region is handed: the entry points the package opens" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/entries value=src/
151
+ bound-lock/1 about="the coordinates of bound the hazards region is handed: the whole place" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/hazards value=**
152
+ bound-lock/1 about="the coordinates of bound the laws region is handed: the locks and claim files it states" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/laws value=**/*.bound
153
+ bound-lock/1 about="the coordinates of bound the packages region is handed: its manifest and its build config" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/packages value=package.json|tsconfig.json
154
+ bound-lock/1 about="the coordinates of bound the source region is handed: every module it is made of" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/source value=src/**/*.ts
155
+ bound-lock/1 about="the coordinates of bound the vocabulary region is handed: the words its modules spell" at=policy:bound/regions by=target form=alphabet measure=coordinates role=reads scope=region/vocabulary value=src/**/*.ts
156
+ bound-lock/1 about="the digest at zero" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/seq/digest value=present
157
+ bound-lock/1 about="the dist observation, owed by this lane until the folder is cut again" at=witness:a-dist-owed-until-the-folder-is-cut by=target form=alphabet measure=id role=reads scope=observed/dist value=owed
158
+ bound-lock/1 about="the document capsule that reads every value through the wire grammar and sorts by bytes, its cells on the object, packed against the notation blob and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/grammar shape=dist/index.js value=sha256:80c7c8fb7b29dc429b95cf29e94b41d895269a498097787b0052873f38f4c608
159
+ bound-lock/1 about="the document capsule whose examples are cells, each said in the state the object gives it, packed against the notation blob and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/states shape=dist/index.js value=sha256:7cd4c7608a64022fbcc16a5ce7ad2de3a5bb8d01e4bd6d79faf8748377f8671e
160
+ bound-lock/1 about="the document capsule, packed against the notation release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/released shape=dist/index.js value=sha256:3aa97584b0e780c8d6d183ddd75605bc51ef53ce3b42fe4def9b6f891594df05
161
+ bound-lock/1 about="the documents capsule whose figure names the blob and not the release" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/figure-world shape=dist/index.js value=sha256:586e2f3f6b433b3c5bf381734a3a7504017fcc352ea6c6340b0b7026628dabde
162
+ bound-lock/1 about="the documents capsule: a place's pages, one region per file on the shell" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/documents shape=dist/index.js value=sha256:8e80e24926709b83ba305f4dd7bc08c3dfd732a82f57e5ad8b17fc937a57c28e
163
+ bound-lock/1 about="the documents world after its claims capsule: its refuses region reads a conjecture as open and never as a refusal, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/refuses shape=dist/index.js value=sha256:3ee13e6ea44e718c0026d60ae2caa7a28321230cb3309141aa25dabcdfe76bc0
164
+ bound-lock/1 about="the documents world after its figures capsule: every figure drawn whole at the resolution its view writes, the world figure read from the example its place names, a caption that states the cell its code spells, and claims that refuse counts and words mixed under one glob, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/whole shape=dist/index.js value=sha256:9062c2627234918b57fef917deb709389f1222e51458b361ccd9da4e94b5e69c
165
+ bound-lock/1 about="the documents world after its refuses capsule: figures of a line, a world and a fold drawn from the place's own lines, the learn example, the tagline hero and the rested-on-by that lists only sources that resolve, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/figures shape=dist/index.js value=sha256:a6621bdacc8e8f2cec35f2d6b116667356576f59d2f8bef65056a82cd6bd3e5b
166
+ bound-lock/1 about="the documents world after its states capsule: the claims, refuses, rested-on-by and open regions, and the door, install, learn and ranges it renders now, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/claims shape=dist/index.js value=sha256:a134e0dcd88a03223fa067dda6c56263d12ce48402d73f998ee4da4263b74f15
167
+ bound-lock/1 about="the documents world after its whole capsule: how-they-rest draws the edges among places where there are any, else the worlds a place pins and, at the instrument, what its dep scopes name; the caption names the meet and the one apart; refuses says the first refused vector case; the world figure draws no stage without words, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/outlier shape=dist/index.js value=sha256:3af8e044d5a296a9a977b5f263858f6011ec2be1ef7d7d017b0db87db810f98a
168
+ bound-lock/1 about="the documents world in the README layout: a heading is a line a place signs, a figure sits under its heading with its caption beneath, learn shows the example at a glance with its source linked, the world figure reads only the declaration it prints, how-they-rest says one sentence at a place and the graph at the root, reading and hero are never cut, the door is a sentence, and a figure draws only the sample its view needs; packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/readme-layout shape=dist/index.js value=sha256:5727e2a2d5c7bbb439157ab5c9bd44928f72cfe5c8df1666a1236f8eb117890f
169
+ bound-lock/1 about="the documents world that carries no look of its own: every colour, width, font, spacing, page length and figure stroke read from the form/style, form/page and media lines a place is handed, a missing line rendering without its attribute; packed against the born topos release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/look-from-lines shape=dist/index.js value=sha256:3af35f8a7ccdd752196de70640b28d8ceb79d16f5c845bf2fe3884bf8cb9ac31
170
+ bound-lock/1 about="the documents world that reads every pair through the wire: a line that holds name and value pairs is read as fields, a typed arrow as its fields of name and type, so no page splits a pair by hand; packed against the born topos release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/pairs-as-fields shape=dist/index.js value=sha256:98fa9bd3b7e55afadfd06c32223500f0627039c5e0df2907b1f46453eaae4978
171
+ bound-lock/1 about="the documents world that types no number and no hole: every threshold, axis and gap read from form/page and form/style lines, every template hole filled from its form/template line, every span a join and every numeral read through the wire, its index rendered as the tree renders it and its helpers under src/helpers; packed against the born topos release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/numbers-from-lines shape=dist/index.js value=sha256:5556f32abd4669a478e3d3a1e5b256223ec3b731fefa16faa6082e2a80489d1b
172
+ bound-lock/1 about="the documents world whose figures draw from what a place ships: figure-line, figure-fold and ranges below three draw from a wire sample, figure-refuses from a refused vector case or a law's no-sample, the world figure draws the stage its uses line adopts, open reads the judge's conjecture facts, and a page below two keeps its heading and lead; packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/figures-shipped shape=dist/index.js value=sha256:af04c9130ecc9d723d3795e1fbf75cf8ce79e545a48747b68e95180219e53725
173
+ bound-lock/1 about="the door prints no number without a receipt and no output without a vector" at=policy:bound/door by=target form=interval measure=unreceipted needs=README.md role=reads scope=door/unreceipted value=0..0
174
+ bound-lock/1 about="the engines the forge tests this place on" at=witness:bound-test-matrix-had-no-engine by=target form=alphabet measure=id role=writes scope=pipeline/node value=22|24
175
+ bound-lock/1 about="the engines this place is bound to" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=engines value="node >=22.12"
176
+ bound-lock/1 about="the examples a place ships, as the source of each, what it printed and the digest of what it printed" at=policy:bound/regions by=target form=alphabet measure=receipts role=reads scope=region/examples value=examples/**
177
+ bound-lock/1 about="the explanation page" at=policy:bound/010 by=target form=alphabet measure=id needs=docs/why.md role=demands scope=view/explanation shape=docs/why.md value=idea|what-holds|refuses
178
+ bound-lock/1 about="the extension gate is per region kept: the measure memo is keyed by the kept region, not the whole lock" at=witness:extension-remeasured-the-touched-code by=target form=alphabet measure=id needs=src/fold/extension.ts role=writes scope=fold/extension-kept-by-region value=present
179
+ bound-lock/1 about="the family a source is named in, newest era first: write names what lands now, and leaf, the word before it, is read in a lock whose own wire still lists it and never written again; the first era a lock lists is the word there" at=policy:bound/store by=target form=alphabet measure=id role=reads scope=store/source value=write|leaf
180
+ bound-lock/1 about="the fields a lock line figure draws, in the wire order" at=policy:bound/010-samples by=target form=alphabet measure=id role=writes scope=form/figure/line value=scope|role|form|measure|value|needs|at|by|epoch|sig
181
+ bound-lock/1 about="the fields the fold-apart line fills" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=form/template/figure/fold/apart value=who|state
182
+ bound-lock/1 about="the fields the fold-together line fills" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=form/template/figure/fold/together value=lo|hi|state
183
+ bound-lock/1 about="the fields the line figure fills" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=form/template/figure/line value=scope|count
184
+ bound-lock/1 about="the fields the refuses figure fills" at=policy:bound/010-figure by=target form=alphabet measure=id role=writes scope=form/template/figure/refuses value=input|why
185
+ bound-lock/1 about="the fields the what-holds axiom line fills" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=form/template/what-holds/axiom value=sentence|name|rests
186
+ bound-lock/1 about="the figures reader: each SVG of the door" at=policy:bound/door by=target form=alphabet measure=reader needs=bound/docs/img role=reads scope=reader/figures shape=.svg/ value=bound/src/observe/figures.ts
187
+ bound-lock/1 about="the fold as wire lines, so a script reads lines rather than parsing the human form" at=policy:bound/010 by=target form=alphabet measure=id role=demands scope=view/lines value=lines
188
+ bound-lock/1 about="the fold drawn from the meeting-time sample: two claims that meet and one that falls apart" at=policy:bound/010-figure by=target form=alphabet measure=id needs=bound/docs/img/fold.svg|bound/samples/yes/meeting.bound role=demands scope=view/figure-fold shape=docs/img/fold.svg value=figure-fold@1
189
+ bound-lock/1 about="the folder the no samples of this place live in" at=policy:bound/010-samples by=target form=alphabet measure=id role=writes scope=samples/no value=bound/samples/no
190
+ bound-lock/1 about="the folder the yes samples of this place live in" at=policy:bound/010-samples by=target form=alphabet measure=id role=writes scope=samples/yes value=bound/samples/yes
191
+ bound-lock/1 about="the forge capsule that answers github-actions and renders the publish auth a place names — a token as the secret it names, trusted as the workflow's own identity — packed against the notation release and the algebra release, each laid from its digest; the release before it stays named until no view reads the regions only it answers" at=witness:a-token-auth-no-law-read by=target form=alphabet measure=id role=writes scope=dep/topos-github/actions shape=dist/index.js value=sha256:8ad84ca313988769a933bedf0a7f4fb87d087b9a5911b1df6b984557ddafb294
192
+ bound-lock/1 about="the forge capsule, packed against the notation release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/released shape=dist/index.js value=sha256:ea9b3e57fcda22edfcae65f89149515b3c91e188f9da478aa0a585f370b71c6e
193
+ bound-lock/1 about="the forge whose release carries the notes its pipeline line names and the assets it lists, packed against the notation and the algebra releases, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/notes shape=dist/index.js value=sha256:155cd87d34130207cc1cfb120cd842f572b3bcb1b5303f0dc4392063c3d8accf
194
+ bound-lock/1 about="the forge without its two text-reading laws, which no reader could hand the text they read; its auth law reads the lines; packed against the notation and the algebra releases, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/repacked shape=dist/index.js value=sha256:11024bce063738c1d375a7033d99e90245bc8497e59626234c5dc73b4623e6e8
195
+ bound-lock/1 about="the frame after its clean capsule: effects-declared reads every runtime's host when a capsule names none, so an import no runtime declares is counted, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-frame/effects shape=dist/index.js value=sha256:78d22918ceeddfad19342b5822d032bf5615b5f6b9b39800e84b3e70921baf1b
196
+ bound-lock/1 about="the frame after its effects capsule: twenty-one laws, the sixteen beside world-shape, is-asked, algebra-is-imported, wire-parsed-once and style-in-code, each read from the counts a world's source gives and the facts its host hands, and silent where a world's source gives no count; packed against the born topos release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-frame/twenty-one shape=dist/index.js value=sha256:2d673389eeab177381c9f4c884699334c36e10a0c9a86646d6251aa7f31dd51c
197
+ bound-lock/1 about="the frame after its released capsule: the shape every capsule keeps, one region per law, packed against the clean topos its own lock pins, its runtime read from the runtime's own lines, its entry region rendering a reader's index as an index" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-frame/clean shape=dist/index.js value=sha256:17ecdbb5280ace4168d1071cbf7a7db2735a89fe30f11d9ba7bf8d84e6fa065d
198
+ bound-lock/1 about="the frame capsule, packed against the notation release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-frame/released shape=dist/index.js value=sha256:ad84d69df740028b0fe31bff8cc9f706ef6889bfc9b4a75926ff28ef745d6954
199
+ bound-lock/1 about="the frame on topos 0.1.2 in the one-line index's layout: its twenty-one laws and its index region, each region loaded by name and role from its own lock; packed from releases only, topos 0.1.2 and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-frame/index-by-role shape=dist/index.js value=sha256:92fd1022cc91a10adf0ae1f523801dec6377ce0845d994d46236380fc2d673ea
200
+ bound-lock/1 about="the frame still pinned by the places that have not moved to the one with the entry region: named here until no uses line names it" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-frame/pinned shape=dist/index.js value=sha256:c4ed2a922206f899287a493d989a0787e5d6084c4f52f19c0e8df6725a1727ae
201
+ bound-lock/1 about="the frame: the shape every capsule keeps, one region per law" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-frame shape=dist/index.js value=sha256:fc17c2688be92e82d82e0c278315f955166217f89f1f6120e0475190ea511666
202
+ bound-lock/1 about="the github world after its released capsule: its actions, its ignore file and a trusted publish, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/clean shape=dist/index.js value=sha256:a35298e018cf418f0c3830c276adfb61032a25b9b37eaf29210519c48f39e3be
203
+ bound-lock/1 about="the instrument-s host process as a blob of the tree-s store, named by the digest of its bytes" at=policy:bound/runner by=target form=alphabet measure=id role=writes scope=runner/host value=sha256:8576c05cd1c5c02e23b4eae6726d129c3c7074fca1ad951245e369780da4b9b9
204
+ bound-lock/1 about="the instrument-s measure process as a blob of the tree-s store, named by the digest of its bytes" at=policy:bound/runner by=target form=alphabet measure=id role=writes scope=runner/measure value=sha256:855b9aaf60d2f5aaf69b3ad74826d01a0fb361f618ba1c7cda480bcf8db1ab22
205
+ bound-lock/1 about="the instrument-s observe process as a blob of the tree-s store, named by the digest of its bytes" at=policy:bound/runner by=target form=alphabet measure=id role=writes scope=runner/observe value=sha256:fbf7ceb10bd707f9e1a5b19812576aabbe22822f0a0095bb2639908264ba6aef
206
+ bound-lock/1 about="the instrument-s verb process as a blob of the tree-s store, named by the digest of its bytes" at=policy:bound/runner by=target form=alphabet measure=id role=writes scope=runner/verb value=sha256:90a0f8f339a57521a5f17de62d4ec4ccd2bd550c154d131bd7f719d4defb1399
207
+ bound-lock/1 about="the language capsule readers, packed against the notation release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-typescript-tree/released shape=dist/index.js value=sha256:9d9b44b8ef299b946b823a1767367b64ef6b333c1566f8ea3ae74da4f3f3ce13
208
+ bound-lock/1 about="the language this place is written in" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=lang value=en
209
+ bound-lock/1 about="the laws a place states, as the lines of the file that states them" at=policy:bound/regions by=target form=alphabet measure=lines role=reads scope=region/laws value=src/laws/laws.bound
210
+ bound-lock/1 about="the laws a place states, as what its samples and its vectors say of themselves and whether each derivation was reproduced" at=policy:bound/regions by=target form=alphabet measure=receipts role=reads scope=region/laws value=said/**|law/*/*/reproduced
211
+ bound-lock/1 about="the license this place is bound by" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=license value=MIT
212
+ bound-lock/1 about="the line {scope}, {count} fields" at=policy:bound/readme by=target form=alphabet measure=text role=writes scope=prose/en/figure/line value=present
213
+ bound-lock/1 about="the lines at eight" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/seq/lines value=present
214
+ bound-lock/1 about="the loader locates the registry build of topos" at=place:topos-0.1.3-on-registry by=target form=alphabet measure=id role=reads scope=loader value=locate
215
+ bound-lock/1 about="the lock a place is bound by, and the fold that reads it" at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=term/object value=line
216
+ bound-lock/1 about="the measurement world after its cells capsule: each quantity several origins measured, read as one cell, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-measure/clean shape=dist/index.js value=sha256:3252cbb877d9ca0c9ea990828c1490999de3d4853990d53d6bbd31861e6bb780
217
+ bound-lock/1 about="the measurement world after its clean capsule: each quantity several origins measured, read as one cell, packed from releases only, the born topos and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-measure/released shape=dist/index.js value=sha256:386f8a36d34a50c7f82a8ac34828ce88af881eb2dfd668f062d910596317c897
218
+ bound-lock/1 about="the measurement world in the one-line index's layout, saying its own description in its own lock under its key, private to its repository and its blob; packed from releases only, topos 0.1.2 and the algebra release, each laid from its digest" at=witness:a-world-whose-what-sat-at-the-root by=target form=alphabet measure=id role=writes scope=dep/topos-measure/regions-by-role shape=dist/index.js value=sha256:055850e9eb766eabfbfa2d58e0f2fca1a314498e924f267f71f483592b387adf
219
+ bound-lock/1 about="the measurement world: each quantity several origins measured, read as one cell, packed against the notation blob and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-measure/cells shape=dist/index.js value=sha256:4c06d2ef28440c6c2e8a45a2b4b21d9ca310e077e3dc6d5eb420e05c950057d1
220
+ bound-lock/1 about="the merged document capsule: topos-doc with the laws and the notation folded in as its regions" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-doc/merged shape=dist/index.js value=sha256:4f2a2eb6faf2f473e8daaa2699857b8f27a69816b811b6ac8dbafb1da89fdac5
221
+ bound-lock/1 about="the module system this place's code is read in: a module, as every package of the tree is" at=witness:a-package-the-host-read-without-a-type by=target form=alphabet measure=id needs=package.json role=writes scope=type shape=package.json value=module
222
+ bound-lock/1 about="the name this place is bound under" at=policy:bound/door by=target form=alphabet measure=id role=writes scope=name value=@lapxo/bound
223
+ bound-lock/1 about="the node package capsule, packed against the notation release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node/released shape=dist/index.js value=sha256:384a74b07eb8c7235e584b2801dbda1d78acd7ef6dac933ab05400a40658c55b
224
+ bound-lock/1 about="the node world after its clean capsule: every value read through the wire, lists as alphabets, pairs as fields and keys in byte order, its JSON indent read from the place's look, no lockfile of its own, and its helpers under src/helpers; packed against the born topos release and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node/indent-from-lines shape=dist/index.js value=sha256:64e7858876be9cdd3687cdd224e797531d6576fdcb4fb6b2207c6c2b2be6ff7d
225
+ bound-lock/1 about="the node world after its released capsule: manifest, published manifest, lockfile and build, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node/clean shape=dist/index.js value=sha256:32aad77fd6356f0eb9f08f110bdc8222af22677363ca432386aba3d100afa1d0
226
+ bound-lock/1 about="the node world in the one-line index's layout: its index names only where the world lies and each region loads by name and role from its own lock, a requirement read through the notation's own, and a private line saying the world goes out as its repository and its blob; packed from releases only, topos 0.1.2 and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node/regions-by-role shape=dist/index.js value=sha256:9bf8d209c98675c6d10d67e31143d79dc9e2b6741577098fa999c1ef8b905004
227
+ bound-lock/1 about="the object this place is about: the three verbs" at=policy:bound/010-samples by=target form=alphabet measure=id role=writes scope=notation/object value=law/three-verbs
228
+ bound-lock/1 about="the operations a place offers, as the lines of the file that offers them" at=policy:bound/regions by=target form=alphabet measure=lines role=reads scope=region/offers value=offers.bound
229
+ bound-lock/1 about="the operations a place offers, as the refusing cases a reader derived for each" at=policy:bound/regions by=target form=alphabet measure=receipts role=reads scope=region/offers value=offers/*/*/no-samples
230
+ bound-lock/1 about="the page a reader looks things up in, the same terms and rests-on as the door, as a view" at=policy:bound/010 by=target form=alphabet measure=id needs=docs/reference.md role=demands scope=view/reference shape=docs/reference.md value=term|set|ref
231
+ bound-lock/1 about="the region measure that names a coordinate of the tree" at=policy:bound/wire-words by=target form=alphabet measure=id role=writes scope=audit/wire/region-coordinate value=coordinates
232
+ bound-lock/1 about="the region measure that names a leaf of the tree" at=policy:bound/wire-words by=target form=alphabet measure=id role=writes scope=audit/wire/region-leaf value=leaves
233
+ bound-lock/1 about="the regions at one" at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/seq/regions value=present
234
+ bound-lock/1 about="the release of the forge capsule, named by the digest of what its published place holds" at=policy:bound/one-cell by=target form=alphabet measure=id role=reads scope=dep/topos-github value=sha256:c7b0a1ba1e56937c763fcdedde033ccb3fb615adadace6516df1fc1b4ebb82ce
235
+ bound-lock/1 about="the release of the language capsule, named by the digest of what its published place holds" at=policy:bound/one-cell by=target form=alphabet measure=id role=reads scope=dep/topos-typescript-tree value=sha256:fcd87e3dcb13cb4f4bcb8f96b5cab419b8ee6930612979bb6f143c8a1a3dcc98
236
+ bound-lock/1 about="the release of the lock reader, named by the digest of what its published place holds" at=policy:bound/one-cell by=target form=alphabet measure=id role=reads scope=dep/topos-bound value=sha256:23ea35997c2ada24d7f0da362b9bd112ed52c1ab9bbcdcea1e9eeb91699bd854
237
+ bound-lock/1 about="the release of the node package capsule, named by the digest of what its published place holds" at=policy:bound/one-cell by=target form=alphabet measure=id role=reads scope=dep/topos-node value=sha256:c4ae9ecd8ecc422f6eedc17ae02202611517ae1a0c42ed1dbfcfcc97b534119e
238
+ bound-lock/1 about="the release of the notation, named by the digest of what its published place holds" at=witness:topos-0.1.7-published-npm by=target form=alphabet measure=id needs=node_modules/@lapxo/topos role=reads scope=dep/topos value=sha256:50b59ebaa0be791075c9ceaef6fce7e6baad466012ac65f5440a5d4131bb69ec
239
+ bound-lock/1 about="the release of the pages capsule, named by the digest of what its published place holds" at=policy:bound/one-cell by=target form=alphabet measure=id role=reads scope=dep/topos-doc value=sha256:adc787638f8cb2c9f050b295e30a7959830682e793e6e5f3e265c85bd6ce6ebb
240
+ bound-lock/1 about="the release of the vectors reader, named by the digest of what its published place holds" at=witness:vectors-read-without-a-row-per-region by=target form=alphabet measure=id role=reads scope=dep/topos-json value=sha256:ddee424ba7c852f966569250f6b5520ecf4079a86cec673ac1a4fc88a934a56d
241
+ bound-lock/1 about="the release pin of a world, never drawn on the door" at=policy:bound/readme by=target form=alphabet measure=id role=demands scope=view/release value=line
242
+ bound-lock/1 about="the scopes a born lock keeps an about on, even when the measure is not text" at=policy:bound/wire-words by=target form=alphabet measure=id role=writes scope=audit/wire/kept-about value=license
243
+ bound-lock/1 about="the second head, asked live when its latest word rests on another lock: the program that folds the ledger without bound, run with no key; what it says is read, never kept" at=policy:bound/heads by=target form=alphabet measure=id role=reads scope=head/second value=verify/src/cli.ts
244
+ bound-lock/1 about="the shape a published place pins as: the one word the instrument asks of the lock, never guessed by length or letter" at=policy:bound/wire-words by=target form=alphabet measure=id role=writes scope=audit/wire/pin-shape value=package
245
+ bound-lock/1 about="the source of a place, as what each module says of itself" at=policy:bound/regions by=target form=alphabet measure=receipts role=reads scope=region/source value=source/**
246
+ bound-lock/1 about="the states a fold figure paints, in order: the claim, the meet, the set apart" at=policy:bound/010-samples by=target form=alphabet measure=id role=writes scope=form/figure/fold value=REQUIRED|FREE|CONFLICT
247
+ bound-lock/1 about="the stranger four lines are the RC gate" at=policy:bound/rc by=target form=alphabet measure=text needs=samples/**|test/** role=writes scope=prose/en/rc value=lock
248
+ bound-lock/1 about="the stranger four lines are the RC gate, and the samples that prove it" at=policy:bound/rc by=target form=alphabet measure=id needs=bound/samples/**|bound/test/** role=writes scope=sample/rc value=present
249
+ bound-lock/1 about="the topos-github capsule still pinned by the places that have not moved to its repack: named here until no uses line names it" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/pinned shape=dist/pipeline.js value=sha256:d8061c5387d97257a5925e8686e08cc85baa81c71c895448cbcbf25f6cd29d1f
250
+ bound-lock/1 about="the topos-github capsule verify still pins, before the publish command became a line of each place: named here until no uses line names it" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/pinned-by-verify shape=dist/index.js value=sha256:c113b7c5c6bc9ab55b796c59fe55ec58d0583f176fa2a9eabf8dcf37cd59e96f
251
+ bound-lock/1 about="the topos-github capsule: the publish command read as a line of each place and rendered verbatim, no registry spelled, and a two-heads job only when both the place pipeline/fold/command and pipeline/verify/command stand" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-github/regions shape=dist/index.js value=sha256:a0467252c120bb1b18977d4ff971a7641561bb92a38016bd7a616221b2f6d3ea
252
+ bound-lock/1 about="the tsconfig of this place, written from its lines by the capsule that renders it" at=policy:bound/views by=target form=alphabet measure=id role=demands scope=view/tsconfig shape=tsconfig.json value=build
253
+ bound-lock/1 about="the tutorial page, the same how-to as the door, as a view" at=policy:bound/readme by=target form=alphabet measure=id needs=docs/guide.md role=demands scope=view/guide shape=docs/guide.md value=seq
254
+ bound-lock/1 about="the typescript tree world after its released capsule: said, source, vocabulary and notation, packed against the clean topos its own lock pins and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-typescript-tree/clean shape=dist/index.js value=sha256:1601a58f9903ec05f03874b52c58e0159b5f769e67a48764a461195c5f7d8760
255
+ bound-lock/1 about="the vectors a place holds, a row per region, as the fold counts them from its receipts" at=policy:bound/regions by=target form=alphabet measure=receipts role=reads scope=region/vectors value=vector/**
256
+ bound-lock/1 about="the vectors world saying its own description in its own lock: the regions of 2fb13c6f unchanged, its prose under its key; packed from releases only, topos 0.1.2 and the algebra release, each laid from its digest" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-json/own-what shape=dist/index.js value=sha256:5ec73255e3f089e3b9c7bc1d6351a07b8aa302a346fe16ed44cbcb67293c7891
257
+ bound-lock/1 about="the version the forge tags, read from the manifest" at=policy:bound/pipeline by=target form=alphabet measure=id role=writes scope=pipeline/version value="node -p \"require('./package.json').version\""
258
+ bound-lock/1 about="the version this place is bound at" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=version value=0.1.0
259
+ bound-lock/1 about="the writer that vouches each source at the digest a take judged it: a family the wire lists, which bound reads here and never spells" at=policy:bound/store by=target form=alphabet measure=id role=reads scope=store/vouches value=tree
260
+ bound-lock/1 about="this place is a package: class defaults of package resolve here" at=policy:bound/place by=target form=alphabet measure=id role=writes scope=place/kind value=package
261
+ bound-lock/1 about="topos-node with a thin manifest: no typesVersions, main or types, dev dependencies only where a line says so, and a bin field from the place bin/<name> lines" at=policy:bound/capsules by=target form=alphabet measure=id role=writes scope=dep/topos-node/thin-manifest shape=dist/index.js value=sha256:da1fd0bb74f72ae95bce5929055c50ccd150d8903ba5560d99df48bf236d8dc0
262
+ bound-lock/1 about="two renders of an SVG sample are the same bytes" at=policy:bound/door by=target form=interval measure=redrawn needs=bound/docs/img role=reads scope=figures/redrawn value=0..0
263
+ bound-lock/1 about="usage, rendered from VERB_NAMES and FLAGS, never written by hand" at=policy:bound/010 by=target form=alphabet measure=id role=demands scope=view/help value=help
264
+ bound-lock/1 about="views/world resolves into worlds, and a place's bytes are its files, its lock, and the root lines that resolve into it" at=witness:a-world-line-opens-worlds by=target form=alphabet measure=id role=reads scope=bytes/world value=worlds
265
+ bound-lock/1 about="what a fold refuses, drawn from the first refused case" at=policy:bound/010-figure by=target form=alphabet measure=id needs=bound/docs/img/refuses.svg role=demands scope=view/figure-refuses shape=docs/img/refuses.svg value=figure-refuses@1
266
+ bound-lock/1 about="what a place own lock says for the tree under its own name: its prose, and the silent substitutions it bounds in its own code, the place written after the steps the glob names" at=policy:bound/places by=target form=alphabet measure=id role=reads scope=place/speaks-under value=prose/*|hazard/silent-substitution
267
+ bound-lock/1 about="what a place's own lock says for the tree: the views it is written by, the readers that read what it holds and the notation it is read in, each path it names read from the place; the roles of what it holds are read from it whole" at=policy:bound/places by=target form=alphabet measure=id role=reads scope=place/speaks value=view/*/**|reader/*/**|notation/*/**
268
+ bound-lock/1 about="what is open, as cards, one lane at a time: <dir>/ --as card --key lane-X" at=policy:bound/views by=target form=alphabet measure=id role=demands scope=view/card value=cells
269
+ bound-lock/1 about="what the CLI printed on a sample and the REFUSE a drafted land printed, kept as receipts" at=policy:bound/doi by=target form=alphabet measure=receipts role=reads scope=region/captures value=capture/**|*refused*
270
+ bound-lock/1 about="what the forge runs to check this place: the suites, then a quiet fold" at=policy:bound/pipeline-published-dependencies by=target form=alphabet measure=id role=writes scope=pipeline/check value="npm test && node dist/cli/verb.js fold --check"
271
+ bound-lock/1 about="what the second head found, which leaves the place has written, and the place's own readings as the fold holds them: the verdict line's counts, each of the place's own ceilings as the fold reads it, unpaid and outside reds, RANK readings, the walk, captures, figures, literals and the door" at=policy:bound/paid by=target form=alphabet measure=receipts role=reads scope=region/state value=second/verdict|write/**|leaf/**|verdict/*|audit/*|coordinate/**|asked/**|unpaid/**|outside/**|fold/idle|cost/act|cli/verbs|store/bytes|bound/src/lines|literal/**|duplicate/**|door/unreceipted|figures/**|capture/**|walk/**
272
+ bound-lock/1 about="when the apart claim is withdrawn" at=policy:bound/door by=target form=alphabet measure=id role=writes scope=form/style/fold/back value=2.2
273
+ bound-lock/1 about="where a located world keeps each region file, by directory and extension, so the host loads the tree beside the pin" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=release/layout value=src/regions:.ts
274
+ bound-lock/1 about="who signs this place" at=policy:bound/010 by=target form=alphabet measure=id role=writes scope=author value=Lapxo
275
+ bound-lock/1 about="{\n \"name\": \"@lapxo/bound\",\n \"version\": \"0.1.0\",\n \"type\": \"module\",\n \"description\": \"Read the bounds you already wrote, fold them, and name the contradictions.\",\n \"main\": \"dist/cli/verb.js\",\n \"types\": \"dist/cli/verb.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/cli/verb.d.ts\",\n \"default\": \"./dist/cli/verb.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"test\": \"node --import ./test/setup.ts --test test/*.test.ts\",\n \"clean\": \"rm -rf dist .tsbuildinfo* tsconfig.tsbuildinfo\",\n \"build\": \"node tools/build.mjs\",\n \"prepack\": \"npm run build\"\n },\n \"files\": [\n \"LICENSE\",\n \"README.md\",\n \"CONTRIBUTING.md\",\n \"dist/**/*\",\n \"TARGET.bound\",\n \"receipts.bound\",\n \"docs/usage.md\",\n \"docs/readme-assets/atlas.svg\"\n ],\n \"author\": \"Lapxo\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@lapxo/obligations\": \"0.3.5\",\n \"@lapxo/topos\": \"0.1.7\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"typescript\": \"^5.0.0\"\n },\n \"sideEffects\": false,\n \"engines\": {\n \"node\": \">=22.15\"\n },\n \"bin\": {\n \"bound\": \"./dist/cli/verb.js\"\n }\n}\n" at=policy:package by=target form=alphabet measure=text role=writes scope=prose/en/files/manifest shape=package.json value=lock
276
+ bound-lock/1 about="{count} hold" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/held value=lock
277
+ bound-lock/1 about="{lo}..{hi} · {state}" at=policy:bound/readme by=target form=alphabet measure=text role=writes scope=prose/en/figure/fold/together value=present
278
+ bound-lock/1 about="{title} (Version {version})" at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/cite/versioned value=lock
279
+ bound-lock/1 about="{who} apart · {state}" at=policy:bound/readme by=target form=alphabet measure=text role=writes scope=prose/en/figure/fold/apart value=present
280
+ bound-lock/1 about=Check at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/check/heading value=lock
281
+ bound-lock/1 about=Check at=policy:bound/prose by=target form=alphabet measure=text role=writes scope=prose/en/check/heading value=lock
282
+ bound-lock/1 about=DOI at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/doi value=lock
283
+ bound-lock/1 about=bits at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/capture/bits value=present
284
+ bound-lock/1 about=bound at=policy:bound/readme by=target form=alphabet measure=id role=writes scope=page/group/title value=present
285
+ bound-lock/1 about=bytes at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/store/bytes value=present
286
+ bound-lock/1 about=capture at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/capture/differs value=present
287
+ bound-lock/1 about=cases at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/cases value=lock
288
+ bound-lock/1 about=dependencies at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/dependencies value=lock
289
+ bound-lock/1 about=duplicate at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/duplicate/src value=present
290
+ bound-lock/1 about=license at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/license value=lock
291
+ bound-lock/1 about=lines at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/bound/src/lines value=present
292
+ bound-lock/1 about=literal at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/literal/org value=present
293
+ bound-lock/1 about=ms at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/walk/ms value=present
294
+ bound-lock/1 about=node at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/engines value=lock
295
+ bound-lock/1 about=opened at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/count/verdict/vacuous value=present
296
+ bound-lock/1 about=read at=policy:bound/door by=target form=alphabet measure=text role=writes scope=page/count/verdict/met value=present
297
+ bound-lock/1 about=read at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/walk/read value=present
298
+ bound-lock/1 about=unreceipted at=policy:bound/paid by=target form=alphabet measure=text role=writes scope=page/count/door/unreceipted value=present
299
+ bound-lock/1 about=verify at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/verify value=lock
300
+ bound-lock/1 about=version at=policy:bound/010 by=target form=alphabet measure=text role=writes scope=prose/en/badge/version value=lock
301
+ bound-lock/1 about={sentence} at=policy:bound/readme by=target form=alphabet measure=text role=writes scope=prose/en/what-holds/axiom value=present
302
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-doc/releases/tag/v0.1.1 by=target form=alphabet measure=id role=receipt scope=github/topos-doc value=sha256:4e0f16b1788416d8243153636cdd43cc5215ca2ba98888f71f24aeb13aee316e
303
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-frame/releases/tag/v0.1.1 by=target form=alphabet measure=id role=receipt scope=github/topos-frame value=sha256:1a6903df64979da7e06af7bb8b973a42615da9485940c8af9b329902a24ffbc2
304
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-frame/releases/tag/v0.1.2 by=target form=alphabet measure=id role=writes scope=dep/topos-frame/born shape=dist/index.js value=sha256:c7532718f9e8f2cfd16c6eb430adb42b0469d77219a32cf4b922a55f418032cc
305
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-github/releases/tag/v0.1.1 by=target form=alphabet measure=id role=receipt scope=github/topos-github value=sha256:6ef264301ebdd30d195fb077ebdd1a698398b7fd00491ab8d7b1f324f4b2c6a9
306
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-github/releases/tag/v0.1.2 by=target form=alphabet measure=id role=writes scope=dep/topos-github/born shape=dist/index.js value=sha256:8748ff98802a972d42ecdb49a173e00207c297f61817e961f5c489c5bc472582
307
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-json/releases/tag/v0.1.1 by=target form=alphabet measure=id role=receipt scope=github/topos-json value=sha256:41e8fb6a5189221ecd0dadbd4ca34bdaff027eae1d13f5e06054f091999f9a0e
308
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-json/releases/tag/v0.1.2 by=target form=alphabet measure=id role=writes scope=dep/topos-json/born shape=dist/index.js value=sha256:0b9f2caab805c21ad608150b2da840ec6fe49831076b2216971d0f952ca11b25
309
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-measure/releases/tag/v0.1.1 by=target form=alphabet measure=id role=receipt scope=github/topos-measure value=sha256:f11a17242e9f32a16eddc24433a85944d33b19f3104a2276a3fa6c86f05ebe18
310
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-measure/releases/tag/v0.1.2 by=target form=alphabet measure=id role=writes scope=dep/topos-measure/born shape=dist/index.js value=sha256:1107369173d87bc9f7c2510c6f053390b0930b74d8f6de834437858cc44e596e
311
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-node/releases/tag/v0.1.1 by=target form=alphabet measure=id role=receipt scope=github/topos-node value=sha256:463dfd61ebb7dbe38e772f9bf88e7f048a3c477cf5de34f31f59c90488d1c3b6
312
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-node/releases/tag/v0.1.2 by=target form=alphabet measure=id role=writes scope=dep/topos-node/born shape=dist/index.js value=sha256:984ca5bfb3462d88963e8248147934f92575c2d12ae7d7f0bd8e982db1b5df02
313
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-typescript-tree/releases/tag/v0.1.1 by=target form=alphabet measure=id role=receipt scope=github/topos-typescript-tree value=sha256:e5275d0aff74c65db14f3d5310863a0173a3242cf7dab542ba232b40d096874d
314
+ bound-lock/1 at=origin:https://github.com/Lapxo/topos-typescript-tree/releases/tag/v0.1.2 by=target form=alphabet measure=id role=writes scope=dep/topos-typescript-tree/born shape=dist/index.js value=sha256:ecf86c50adacb3e199e7363fb355ad66d7c76a76ab1e007836d9e9fbc74ad434
315
+ bound-lock/1 at=place:bound by=target form=alphabet measure=id role=reads scope=publish/takes value=audit/wire/*/**|keys/owner/**|region/*/**|cites/*/**|leaf-role/*/**|notation/*/**|form/*/**|media/**|prose/*/cell/meet|prose/*/cell/together|prose/*/cell/outlier|prose/*/figure/world/*|open/*/**|theme|license
316
+ bound-lock/1 at=policy:bound/010 by=target form=alphabet measure=publisher role=writes scope=cites/two-sided-constraints value=Zenodo
317
+ bound-lock/1 at=policy:bound/010 by=target form=alphabet measure=version role=writes scope=cites/two-sided-constraints value=1.0.0
318
+ bound-lock/1 at=policy:bound/010 by=target form=alphabet measure=year role=writes scope=cites/two-sided-constraints value=2026
319
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/exchange-cost.json|bound/samples/core/no/exchange-cost.json role=reads scope=exchange/cost value=0..0
320
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/idempotent.json|bound/samples/core/no/idempotent.json role=reads scope=idempotent value=0..0
321
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/no-error.json|bound/samples/core/no/no-error.json role=reads scope=no-error value=0..0
322
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/nothing-deleted.json|bound/samples/core/no/nothing-deleted.json role=reads scope=nothing-deleted value=0..0
323
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/offline.json|bound/samples/core/no/offline.json role=reads scope=offline value=0..0
324
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/one-writer.json|bound/samples/core/no/one-writer.json role=reads scope=one-writer value=0..0
325
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/place-is-a-capsule.json|bound/samples/core/no/place-is-a-capsule.json role=reads scope=place-is-a-capsule value=0..0
326
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/resolve-by-url.json|bound/samples/core/no/resolve-by-url.json role=reads scope=resolve-by-url value=0..0
327
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/core/yes/the-stranger.json|bound/samples/core/no/the-stranger.json role=reads scope=the-stranger value=0..0
328
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/literal/yes/host.json|bound/samples/literal/no/host.json role=reads scope=literal/host value=0..0
329
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/literal/yes/key.json|bound/samples/literal/no/key.json role=reads scope=literal/key value=0..0
330
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/literal/yes/org.json|bound/samples/literal/no/org.json role=reads scope=literal/org value=0..0
331
+ bound-lock/1 at=policy:bound/010 by=target form=interval measure=count needs=bound/samples/literal/yes/path.json|bound/samples/literal/no/path.json role=reads scope=literal/path value=0..0
332
+ bound-lock/1 at=policy:bound/dependency-role by=target form=alphabet measure=role role=writes scope=leaf-role/node_modules value=foreign
333
+ bound-lock/1 at=policy:bound/paid by=target form=alphabet measure=id role=writes scope=form/template/open/outside value=scope|reading
334
+ bound-lock/1 at=policy:bound/paid by=target form=alphabet measure=id role=writes scope=form/template/open/unpaid value=scope|reading
335
+ bound-lock/1 at=policy:bound/publish by=target form=alphabet measure=id role=reads scope=publish/keys value=authorize|attest|read
336
+ bound-lock/1 at=policy:bound/release by=target form=alphabet measure=id role=reads scope=release/layout value=dist/regions:.js|src/regions:.ts
337
+ bound-lock/1 at=policy:bound/release by=target form=alphabet measure=id role=writes scope=release/blocks value=integrity|pins|admission|cli
338
+ bound-lock/1 at=policy:bound/split by=target form=alphabet measure=id role=writes scope=split/host value=src/host|src/observe|src/cli
339
+ bound-lock/1 at=policy:bound/split by=target form=alphabet measure=id role=writes scope=split/kernel value=src/fold|src/judge|src/land|src/render|src/kernel
340
+ bound-lock/1 at=policy:bound/split by=target form=interval measure=cli-flags role=reads scope=cli/flags value=0..6
341
+ bound-lock/1 at=policy:bound/split by=target form=interval measure=cli-verbs role=reads scope=cli/verbs value=0..3
342
+ bound-lock/1 at=policy:bound/split by=target form=interval measure=duplicate-bodies role=reads scope=duplicate/src value=0..0
343
+ bound-lock/1 at=policy:bound/split by=target form=interval measure=kernel-exports role=reads scope=kernel/exports value=0..2
344
+ bound-lock/1 at=policy:bound/split by=target form=interval measure=kernel-literals role=reads scope=kernel/literals value=0..0
345
+ bound-lock/1 at=policy:bound/split by=target form=interval measure=kernel-node-imports role=reads scope=kernel/node-imports value=0..0
346
+ bound-lock/1 at=policy:bound/views by=target form=alphabet measure=id role=demands scope=view/repair value=repair
347
+ bound-lock/1 at=policy:bound/views by=target form=alphabet measure=id role=demands scope=view/why value=why
348
+ bound-lock/1 at=policy:instrument/cryptography by=target form=alphabet measure=id role=reads scope=wire/digest-algorithms value=sha256:era1
349
+ bound-lock/1 at=policy:instrument/cryptography by=target form=alphabet measure=id role=reads scope=wire/era value=era1
350
+ bound-lock/1 at=policy:instrument/cryptography by=target form=alphabet measure=id role=reads scope=wire/signature-algorithms value=ed25519|sha256:58f1f0983fe65f062bebefd0a6ffc901049c67525ef12dd86ed4dbb7a184b834|ed25519:era1
351
+ bound-lock/1 at=policy:release/process-captures by=target form=alphabet measure=coordinates role=reads scope=region/captures value=src/**|test/**|vectors/process/**|dist/**|package.json|TARGET.bound
352
+ bound-lock/1 at=policy:release/process-inputs by=target form=alphabet measure=coordinates role=reads scope=region/vectors value=src/**|test/**|vectors/process/**|dist/**|package.json|TARGET.bound
353
+ bound-lock/1 at=policy:rendering by=target form=alphabet measure=digest role=writes scope=uses/rendering value=sha256:0f7653b659f372fd7bc1b140d0103606ebd8814dee8ef3be30949c6647b482a3
354
+ bound-lock/1 at=policy:selected-wire by=target form=alphabet measure=digest role=writes scope=uses/wire value=sha256:a717c60945add1facfd822b3ee2da73a8fa2f781dd0aa2de9be778e66b8f3591
355
+ bound-lock/1 at=policy:source/coordinates by=target form=alphabet measure=coordinates role=reads scope=region/source value=src/**
356
+ bound-lock/1 at=policy:source/parser by=target form=alphabet measure=digest needs=node_modules/typescript role=reads scope=dep/typescript value=sha256:9dc6ee1f8dec9598cbecff5e2fcf2b916d04294c0615588dd424448a5a3afce5
357
+ bound-lock/1 at=witness:explicit-executable-candidate by=target form=alphabet measure=id role=writes scope=dep/topos-doc/born shape=dist/index.js value=sha256:2c507e7fe764e55d08fc27b01567d462060fe50d1896d19866f831a823852ae5
358
+ bound-lock/1 at=witness:process-captures-reader by=target form=alphabet measure=digest role=writes scope=dep/process-readings shape=dist/regions/vectors.js value=sha256:b22d161e8ae7c96789c7fb038b1d755fa149203c7e035c6d2fa5f2a164fecb54
359
+ bound-lock/1 at=witness:process-captures-selection by=target form=alphabet measure=digest role=writes scope=uses/process-readings value=sha256:a55f6849b39e77b6fcd89b2a2ba8fa286a7c8626193bbfe14aef30bef6b29458
360
+ bound-lock/1 at=witness:source-reader by=target form=alphabet measure=digest role=writes scope=dep/source-readings shape=dist/regions/source.js value=sha256:5ccae33a9e99f6acba690d9664e22cfe818205841e4e9d3083d4b24fb68d7075
361
+ bound-lock/1 at=witness:source-selection by=target form=alphabet measure=digest role=writes scope=uses/source-readings value=sha256:4129c469d3296a1fcda640f59e0d7c37f255b1e88c2f8e2447cd1359a514f356