Skip to content

Commit 1d5047c

Browse files
hyperpolymathclaude
andcommitted
standards: add canonical lust contractile (Lustfile.a2ml + lust.ncl)
The lust/ directory previously held an `Intentfile.a2ml` whose body was Burble-specific (128 lines of voice-platform probes targeting server/lib/burble/**) — not a generic template. That content belonged in the Burble repo, not in standards master. This commit: - Removes lust/Intentfile.a2ml (the Burble-specific content was moved to burble/.machine_readable/contractiles/lust/Lustfile.a2ml in a companion change on the repos-monorepo side). - Adds lust/Lustfile.a2ml — generic aspirational template with three horizons (near / mid / far), distinct from intend/ (commitment). - Adds lust/lust.ncl — paired runner matching the shape of the other six contractile runners (must, intend, adjust, trust, dust, bust). Semantics clarified (per .machine_readable/contractiles/README.adoc and session 2026-04-17 discussion): intend — "we WILL do this; track progress" (commitment axis) lust — "we WISH this were true; revisit later" (aspiration axis) The 7 contractile verbs are now all consistent-shape: must / intend / adjust / trust / dust / bust / lust plus the parallel `k9/` service-validation layer (not a verb). Decisions deferred to user: - intend/Intentfile.a2ml filename (memory rule says Intendfile; current file is propagated as Intentfile to many derived repos — rename would require a second estate-wide sweep). - k9/ location (nested under contractiles/ currently; arguably belongs one level up at .machine_readable/k9/). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 5165ca6 commit 1d5047c

3 files changed

Lines changed: 109 additions & 127 deletions

File tree

.machine_readable/contractiles/lust/Intentfile.a2ml

Lines changed: 0 additions & 127 deletions
This file was deleted.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Lustfile (A2ML Canonical) — aspirational/roadmap contractile
3+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath)
4+
#
5+
# Paired runner: lust.ncl
6+
# Verb: lust
7+
# Semantics: what the project WANTS to become — aspirations, wishlist,
8+
# roadmap. NOT a commitment (that's `intend`). NOT a gate
9+
# (nothing ever "fails" a Lustfile). This contractile exists
10+
# so agents and humans can see the future horizon without
11+
# confusing it with declared next-action intent.
12+
#
13+
# Difference from `intend`:
14+
# intend — "we WILL do this; track progress" (commitment axis)
15+
# lust — "we WISH this were true; revisit later" (aspiration axis)
16+
#
17+
# CLI:
18+
# contractile lust run → dump the wishlist
19+
# contractile lust horizon → group by target-horizon (near / mid / far)
20+
21+
@abstract:
22+
Generic Lustfile template. Replace every [[wishes]] item with a project-
23+
specific aspiration. Items never block; they exist to make the aspiration
24+
axis visible.
25+
@end
26+
27+
## Near-horizon wishes (things you'd start tomorrow if you had time)
28+
29+
[[wishes]]
30+
id = "example-near-wish"
31+
description = "Describe one aspirational feature/property the project lusts after"
32+
horizon = "near"
33+
why = "Why this would matter; the value of it being true"
34+
status = "declared"
35+
notes = "Optional human notes; leave empty or delete"
36+
37+
## Mid-horizon wishes (next one-to-two releases out)
38+
39+
[[wishes]]
40+
id = "example-mid-wish"
41+
description = "Aspirational item on the one-to-two release horizon"
42+
horizon = "mid"
43+
why = "The impact of reaching it"
44+
status = "declared"
45+
46+
## Far-horizon wishes (multi-year dreams)
47+
48+
[[wishes]]
49+
id = "example-far-wish"
50+
description = "Multi-year dream state"
51+
horizon = "far"
52+
why = "Why we still bother pointing at it"
53+
status = "declared"
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Lust — aspirational/roadmap runner
3+
#
4+
# Pairs with: Lustfile.a2ml (same directory)
5+
# Verb: lust
6+
# Semantics: wishes / aspirations / horizon roadmap. NEVER gates. Distinct
7+
# from `intend` which tracks committed next-actions. `lust` is
8+
# where the project's unrealised desires live so humans and
9+
# agents can see the horizon without confusing it with
10+
# declared intent.
11+
# CLI: `contractile lust run` → print wishlist
12+
# `contractile lust horizon` → group by target-horizon
13+
#
14+
# Anything else in this directory is human-only notes/archive; machines ignore.
15+
16+
{
17+
pedigree = {
18+
schema_version = "1.0.0",
19+
contractile_verb = "lust",
20+
semantics = "aspirational / wishlist / horizon",
21+
security = {
22+
leash = 'Kennel,
23+
trust_level = "read-only reporting",
24+
allow_network = false,
25+
allow_filesystem_write = false,
26+
allow_subprocess = false, # pure reporting; no probes run
27+
},
28+
metadata = {
29+
name = "lust-runner",
30+
version = "1.0.0",
31+
description = "Reports project aspirations grouped by horizon. Non-gating. Distinct from intend (commitment) — lust is wish.",
32+
paired_xfile = "Lustfile.a2ml",
33+
author = "Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>",
34+
},
35+
},
36+
37+
schema = {
38+
wishes
39+
| Array {
40+
id | String,
41+
description | String,
42+
horizon | [| 'near, 'mid, 'far |] | default = 'mid,
43+
why | String | optional,
44+
status | [| 'declared, 'in_progress, 'achieved, 'abandoned |] | default = 'declared,
45+
notes | String | optional,
46+
},
47+
},
48+
49+
run = {
50+
on_pass = "continue",
51+
on_any_fail = "continue", # never blocks; it's a report
52+
report_format = "a2ml",
53+
emit_summary = true,
54+
emit_grouped_by_horizon = true,
55+
},
56+
}

0 commit comments

Comments
 (0)