|
1 | 1 | # SPDX-License-Identifier: MPL-2.0 |
2 | | -# Intentfile (A2ML Canonical) — north-star contractile for rsr-template-repo |
| 2 | +# Intentfile (A2ML Canonical) — north-star contractile for hybrid-automation-router |
3 | 3 | # Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
4 | 4 | # |
5 | | -# Paired runner: intend.ncl |
6 | | -# Verb: intend |
| 5 | +# Verb: intend |
7 | 6 | # |
8 | 7 | # Semantics: North-star contractile. Declares BOTH concrete committed |
9 | 8 | # next-actions AND horizon aspirations the project wishes to |
|
20 | 19 | # contractile for hard gates. |
21 | 20 |
|
22 | 21 | @abstract: |
23 | | -North-star contractile for rsr-template-repo. This repository is the |
24 | | -canonical template for Rhodium Standard Repository compliance. It provides |
25 | | -the scaffold that all hyperpolymath repos should copy and customize. |
| 22 | +North-star contractile for hybrid-automation-router (HAR). HAR is a |
| 23 | +pluggable routing engine that dispatches automation events from sources to |
| 24 | +targets; its strategic direction (ADR-0002) is an automation interlingua — |
| 25 | +a tool-neutral meta-model carried on A2ML that doubles as an execution IR — |
| 26 | +letting heterogeneous automation estates hand off and resume across each |
| 27 | +other. |
26 | 28 | @end |
27 | 29 |
|
28 | 30 | ## Purpose |
29 | 31 |
|
30 | | -The rsr-template-repo serves as the master template for all hyperpolymath |
31 | | -repositories. It contains the complete set of contractile files, machine-readable |
32 | | -specifications, and governance documentation that define the Rhodium Standard. |
33 | | - |
34 | | -Every new repository in the hyperpolymath estate should be initialized by |
35 | | -copying this template and substituting the placeholder values with |
36 | | -repo-specific content. |
| 32 | +HAR routes automation events to the best target (rpa-elysium first-class) |
| 33 | +via composable strategies, and is growing a declarative surface: translate |
| 34 | +between desired routing state and ordered dispatch (Phase 2A), then |
| 35 | +generalise to cross-tool handoff and federation (Phase 2B), with software |
| 36 | +installation & package management as the first concrete resource domain |
| 37 | +(Phase 2C, ADR-0003 ladder). |
37 | 38 |
|
38 | 39 | ## Anti-Purpose |
39 | 40 |
|
40 | 41 | This repository is NOT: |
41 | | -- A general-purpose project scaffold for external use (hyperpolymath-only) |
42 | | -- A replacement for per-repo customization (all files must be bespoke) |
43 | | -- A static template that never changes (evolves with RSR spec) |
44 | | -- A runtime library or framework (build-time only) |
| 42 | +- A replacement for incumbent automation tools (Puppet/Salt/Terraform/ |
| 43 | + Ansible) — replacement is out of scope and sponsor-gated (ADR-0002) |
| 44 | +- An RPA engine — it routes to rpa-elysium, it does not drive UIs itself |
| 45 | +- A general message broker — queue semantics follow the proven-queueconn |
| 46 | + ABI; NATS is a feature-gated transport, not the product |
| 47 | +- A package manager — the 2C ladder subsumes install functionality behind |
| 48 | + the meta-model; incumbent managers are wrapped last, not rebuilt |
45 | 49 |
|
46 | 50 | ## If In Doubt |
47 | 51 |
|
48 | 52 | If you are unsure whether a change is in scope, ask. Sensitive areas: |
| 53 | +- src/abi/ (Idris2 + Ephapax normative specs — parallel-track discipline) |
49 | 54 | - .machine_readable/ contractile definitions |
50 | | -- RSR specification files |
51 | | -- Governance templates |
52 | | -- License policy documents |
| 55 | +- docs/decisions/ (ADRs record owner-ratified direction) |
| 56 | +- Routing strategy semantics (deterministic selection is load-bearing) |
53 | 57 |
|
54 | 58 | ## Committed Next-Actions |
55 | 59 |
|
56 | | -### repo-initialization |
57 | | -- description: Provide just copy-and-substitute template for new repos |
58 | | -- probe: test -f scripts/init-repo.sh |
59 | | -- status: done |
60 | | -- notes: Run with source scripts/init-repo.sh <new-repo-name> |
| 60 | +### phase-2a-meta-model-skeleton |
| 61 | +- description: Meta-model + A2ML interchange dialect + two-level IR (graph ⇄ plan) proven on HAR's own routing domain |
| 62 | +- probe: test -d crates/har-metamodel |
| 63 | +- status: declared |
| 64 | +- notes: The de-risking gate for everything downstream (ADR-0002); Idris2 spec and Rust IR as parallel tracks |
61 | 65 |
|
62 | | -### contractile-completeness |
63 | | -- description: Every RSR contractile has an a2ml and ncl implementation |
64 | | -- probe: ls .machine_readable/contractiles/*.a2ml | wc -l | grep -q "^6$" |
65 | | -- status: in_progress |
66 | | -- notes: Currently 6 contractile verbs: intend, must, trust, adjust, bust, dust |
| 66 | +### phase-2c-tier-1-managerless |
| 67 | +- description: Regularise package-manager-less installs (curl|sh, tarballs, make install) — issue #97 |
| 68 | +- probe: gh issue view 97 --json state -q .state | grep -q CLOSED |
| 69 | +- status: declared |
| 70 | +- notes: Gated on the 2A skeleton; flagship workload = prover/solver/toolchain centralisation (#106) |
67 | 71 |
|
68 | | -### automation-scripts |
69 | | -- description: All repetitive tasks have just recipes |
70 | | -- probe: grep -c "^# " Justfile | grep -q "^[6-9][0-9]*$" |
71 | | -- status: in_progress |
| 72 | +### routing-strategies-complete |
| 73 | +- description: All seven routing strategies implemented with deterministic selection |
| 74 | +- probe: cargo test -p har-router |
| 75 | +- status: done |
| 76 | +- notes: RoundRobin/WeightedRandom/LeastLoaded/Failover landed 2026-07-07; route() honours the configured strategy |
| 77 | + |
| 78 | +### cli-documented-surface |
| 79 | +- description: har-cli exposes the documented route-management surface (list, add, remove, inspect) with tests |
| 80 | +- probe: cargo test -p har-cli |
| 81 | +- status: done |
| 82 | +- notes: Config-backed list/add/remove/inspect + dry-run route/status landed 2026-07-07; 8 unit tests + e2e smoke |
72 | 83 |
|
73 | 84 | ## Wishes |
74 | 85 |
|
75 | 86 | ### Near Horizon |
76 | 87 |
|
77 | | -#### cross-repo-validation |
78 | | -- description: Tooling to validate all repos against RSR spec |
79 | | -- horizon: near |
80 | | -- status: declared |
81 | | - |
82 | | -#### automated-substitution |
83 | | -- description: Script to automate repo-specific substitution in template |
| 88 | +#### arghda-proof-pipeline-pilot |
| 89 | +- description: arghda-core as an estate-internal front-end adapter — ladder pipelines over proof obligations (issue #104) |
84 | 90 | - horizon: near |
85 | 91 | - status: declared |
| 92 | +- notes: Owner decisions D1–D3 pending; no meta-model extension required |
86 | 93 |
|
87 | 94 | ### Mid Horizon |
88 | 95 |
|
89 | | -#### formal-verification |
90 | | -- description: Idris2 proofs for all critical contractile invariants |
| 96 | +#### puppet-salt-flagship-handoff |
| 97 | +- description: Puppet-in → A2ML → Salt-out handoff of a partially-realised estate (Phase 2B flagship) |
| 98 | +- horizon: mid |
| 99 | +- status: declared |
| 100 | + |
| 101 | +#### formal-stack-load-bearing |
| 102 | +- description: Ephapax exactly-once ownership + proven-FSM lifecycle + Idris2 invariants wired end-to-end, not decorative |
91 | 103 | - horizon: mid |
92 | 104 | - status: declared |
93 | 105 |
|
94 | 106 | ### Far Horizon |
95 | 107 |
|
96 | | -#### ecosystem-visualization |
97 | | -- description: Interactive graph of all hyperpolymath repos and dependencies |
| 108 | +#### lingua-franca-surface-language |
| 109 | +- description: Human-authored router language over the meta-model; N front-ends + M back-ends replace N×M translators |
98 | 110 | - horizon: far |
99 | 111 | - status: declared |
0 commit comments