From b14c11a32020b0aaa23a242ea93be95e0a5c7571 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 17 Sep 2026 22:01:51 +0000 Subject: [PATCH] =?UTF-8?q?docs(deed):=20mapping=20spec=20family=204=20?= =?UTF-8?q?=E2=80=94=20AGENTIC/NEUROSYM/PLAYBOOK=20=E2=86=92=20repo-deed?= =?UTF-8?q?=20clauses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #837 --- ...gentic-neurosym-playbook-to-repo-deed.adoc | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 1-formats/deed/mappings/agentic-neurosym-playbook-to-repo-deed.adoc diff --git a/1-formats/deed/mappings/agentic-neurosym-playbook-to-repo-deed.adoc b/1-formats/deed/mappings/agentic-neurosym-playbook-to-repo-deed.adoc new file mode 100644 index 000000000..507b8acda --- /dev/null +++ b/1-formats/deed/mappings/agentic-neurosym-playbook-to-repo-deed.adoc @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 += Mapping spec — `AGENTIC.a2ml` / `NEUROSYM.a2ml` / `PLAYBOOK.a2ml` → `repo-deed` (family 4) +Campaign: standards#837 · Frame: link:README.adoc[mappings/README] · +Status: PROPOSAL pending owner review + +Three small contractile-profile surfaces, one spec: they share the same +shape (sparse sections, heavy booleans, `@profile` header). They are +behavioural permissions/config for agents and tooling — genuine repo state, +so `repo-deed` clauses are the correct home (not praxis-deed: no rules, +no priorities). + +== 1. Source surface + +`/.machine_readable/descriptiles/{AGENTIC,NEUROSYM,PLAYBOOK}.a2ml`, +plus older spellings. All three observed instances carry a leading +`@profile(id=a2ml/)` annotation line (AGENTIC/PLAYBOOK confirmed; +NEUROSYM confirmed as `a2ml/neurosym`) — handled in §3. Translator refuses +any field not tabulated below (frame fail-closed rule). + +== 2. Target form + +Clauses `(agentic …)`, `(neurosym …)`, `(playbook …)` on the repo's single +`_chora.deed` (same deed as families 1–2). + +== 3. Field tables + +=== The `@profile` line (all three files) + +[cols="2,3,4"] +|=== +| a2ml surface | deed path | transform + +| `@profile(id=a2ml/agentic)` etc. | `(profile :id "a2ml/agentic")` as FIRST clause inside the corresponding family clause | verbatim STRING. Kept as a string, not migrated into the BaseRecord `profileDecl` bridge — v0.1 conformance does not parse profileDecl through this surface, and silent re-homings are exactly the drift this campaign is against. Explicit revival decision rides with the typed-core bridge work, not this campaign. +|=== + +=== AGENTIC.a2ml → `(agentic …)` + +[cols="2,3,4"] +|=== +| a2ml surface | deed path | transform + +| `[metadata] version` / `last-updated` | `(agentic :version "…" :last-updated "…")` | verbatim STRINGs +| `[agent-permissions] can-edit-source/tests/docs/config/create-files` | `(agentic (permissions :source #t :tests #t :docs #t :config #t :create-files #t))` | BOOLEANs → `#t`/`#f` +| `[agent-constraints]` | `(constraints …)` if populated, else slot dropped | fail-closed if any unknown key (see §4) +| `[maintenance-integrity] fail-closed`, `require-evidence-per-step`, `allow-silent-skip`, `require-rerun-after-fix`, `release-claim-requires-hard-pass` | `(agentic (integrity :fail-closed #t :require-evidence-per-step #t :allow-silent-skip #f :require-rerun-after-fix #t :release-claim-requires-hard-pass #t))` | BOOLEANs → `#t`/`#f` — **including `#f` for `allow-silent-skip`**: the negative must survive verbatim, it is load-bearing security behaviour (a flipped "false" is how silent-skip escapes happen) +| `[automation-hooks]` | `(hooks …)` if populated, else dropped | fail-closed if unknown key shape +|=== + +=== NEUROSYM.a2ml → `(neurosym …)` + +[cols="2,3,4"] +|=== +| a2ml surface | deed path | transform + +| `[metadata] version` / `last-updated` | `(neurosym :version "…" :last-updated "…")` | verbatim STRINGs +| `[hypatia-config] scan-enabled` | `(neurosym (hypatia :scan-enabled #t))` | BOOLEAN → `#t`/`#f` +| `… scan-depth` | `(neurosym (hypatia :scan-depth standard))` | enum → SYMBOL; closed set `quick standard deep` +| `… report-format` | `(neurosym (hypatia :report-format "logtalk"))` | verbatim STRING +| `[symbolic-rules]`, `[neural-config]` | populated → fail-closed pending table rows; unpopulated → section dropped | — +|=== + +=== PLAYBOOK.a2ml → `(playbook …)` + +Observed instance: all five sections (`deployment`, `incident-response`, +`release-process`, `docs-format`, `maintenance-operations`) are empty. + +[cols="2,3,4"] +|=== +| a2ml surface | deed path | transform + +| `[metadata] version` / `last-updated` | `(playbook :version "0.1.0" :last-updated "…")` | verbatim STRINGs +| the five operational sections | **slot-preserved as empty clauses**: `(playbook (deployment)(incident-response)(release-process)(docs-format)(maintenance-operations))` | the family-1 slot doctrine applies: operations contracts exist to be greppable *as positions*, even before contents. Empty CLI with content-shaped fails-closed. +|=== + +== 4. Provenance & validation (extends P-1..P-8) + +* **P-9 (profile literal):** each emitted deed's profile string equals the + source `@profile(id=…)` payload byte-for-byte inside the quotes — the + conformance lane greps for exactly three values estate-wide + (`a2ml/agentic`, `a2ml/neurosym`, `a2ml/playbook`) and any FOURTH string in + that position is a propagation bug, flagged automatically. +* **P-2a (table-closed):** applies per the frame; PLAYBOOK populated + sections and NEUROSYM rule/config content fail closed for table + extension rather than translate by guess. +* Boolean transform is total here (14 of the boolean-carrying fields in + the recon): the checker asserts ZERO literal `true`/`false` tokens in + these three clauses. + +== 5. Acceptance greps + +* `grep -rn ':allow-silent-skip #f' --include='*_chora.deed'` returns the + same repo count as `grep -rln 'allow-silent-skip = false'` over the + old a2ml corpus. Same for `#t` fields — all five integrity axioms + count-preserved per repo. +* `@profile` strings: exactly three distinct `:id` values estate-wide. +*`scan-depth` symbols are exactly from the closed three-set (validator, + not eyeballs).