// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>

= ARG-PROFILE — {LANGUAGE_NAME}
:toc: left
:toclevels: 2

[cols="1,3"]
|===
| Field | Value

| Language | {LANGUAGE_NAME}
| Repository | {REPO_URL}
| Current ARG Grade | {GRADE}  (X | F | E | D | C | B | A)
| Assessed | {YYYY-MM-DD}
| Assessor | {NAME <email>}
| ARG Spec Version | 1.0
| TRG Profile | spec/TRG-PROFILE.adoc
| FRG Profile | spec/FRG-PROFILE.adoc
|===

== About this profile

This profile applies the *ARG v1.0* baseline to {LANGUAGE_NAME} and
records the current honest grade, the evidence supporting it, the
language-specific tightening obligations, and the path to the next
grade. Per ARG §1.1, profiles may *tighten* the baseline but never
*loosen* it.

ARG = {GRADE}. The full chain of axes for this language:

* ARG: {GRADE}
* TRG: {TRG_GRADE}
* FRG: {FRG_GRADE}
* CRG: {CRG_GRADE} (worst-of any released component)
* RSR: {RSR_LEVEL}

Cross-axis rule: ARG ≤ TRG holds (currently TRG = {TRG_GRADE}, ARG = {GRADE}).

== Grade rationale (evidence for {GRADE})

[cols="2,1,4", options="header"]
|===
| Criterion | Met? | Evidence

| *D1 — Landing page / README*
| {YES/NO}
| {Path to README; one-line summary}

| *D2 — Elevator pitch*
| {YES/NO}
| {Quote the pitch; where it lives}

| *D3 — Provenance*
| {YES/NO}
| {Maintainer list, start date, current version}

| *Required TRG grade (≤ ARG-{GRADE} means TRG ≥ {GRADE})*
| {YES/NO}
| {TRG-PROFILE.adoc cite}

| *Onboarding O1 — 5-minute hello-world*
| {YES/NO/N/A}
| {Path to tutorial step; time-measured-by who, when}

| *Onboarding O2 — Tutorial covering distinctive features*
| {YES/NO/N/A}
| {Path to tutorial; named distinctive features covered}

| *Onboarding O3 — Playground*
| {YES/NO/N/A}
| {URL or just-command; last-verified date}

| *Onboarding O4 — Cookbook in ≥ 2 substantive domains*
| {YES/NO/N/A}
| {Cookbook path; domains enumerated}

| *Reference R1 — Reference manual*
| {YES/NO/N/A}
| {Path; coverage notes}

| *Reference R2 — Stdlib reference*
| {YES/NO/N/A}
| {Path; symbol-coverage estimate}

| *Reference R3 — Formal grammar*
| {YES/NO/N/A}
| {Path to .ebnf or equivalent}

| *Reference R4 — Operational/denotational semantics*
| {YES/NO/N/A}
| {Path; also referenced from TRG-PROFILE M5}

| *Reference R5 — Stable error-code index*
| {YES/NO/N/A}
| {Path; index entry count}

| *Community C1-C5*
| {YES/NO partial per item}
| {Issue tracker URL; CONTRIBUTING path; CoC path; venue URL; RFC list/count}

| *Distribution Δ1-Δ5*
| {YES/NO partial per item}
| {Release artefact URL; registry/install URL; versioning policy path; deprecation log; SECURITY.md path}

| *Education E1-E4 (grade-dependent)*
| {YES/NO partial per item}
| {Slide deck path; workshop materials; curriculum; external educator names}

| *Ecosystem X1-X4 (grade B+)*
| {YES/NO partial per item}
| {Library count + list URL; tool count + list; integrations enumerated; maintainer count beyond founder}

| *Diversity metrics (grade C+)*
| {YES/NO}
| {Tech / org / user / downstream breakdown}

| *VeriSimDB attestation (grade C+)*
| {YES/NO}
| {Attestation ID; last-ingested timestamp}

| *Founder bus-factor test (grade A only)*
| {YES/NO/N/A}
| {Signed-statement reference; X4 supporting evidence}

| *Unanimous 6+6 signoff (grade A only)*
| {YES/NO/N/A}
| {Signoff log reference}
|===

== Language-specific tightening (this profile only)

ARG §1.1 permits per-language tightening. For {LANGUAGE_NAME}, the
following additional obligations apply at the stated grades:

* *Grade C tightening:* {Language-specific obligation; e.g. "AffineScript:
  cookbook MUST include at least one borrow-check-rich example."}
* *Grade B tightening:* {e.g. "Ephapax: at least one external tutorial
  on dyadic-modality discipline by a non-maintainer."}
* *Grade A tightening:* {e.g. "VCL-total: registered Verisim instance
  addressable from a public example, with continuous green
  health-check."}

These tightenings are *additional* to the baseline — none of the
baseline evidence is waived.

== What is NOT yet met (honest gaps)

* {Bullet list of specific evidence the language does NOT currently
  produce, grouped by adoption surface}
* {Each gap should be specific enough that a reader can verify by
  inspection of the repo}

== Path to next grade ({NEXT_GRADE})

* {Specific next-step item 1, with estimated work}
* {Specific next-step item 2}
* {...}

*Realistic timeline estimate:* {N weeks/months}

== Path to grade beyond that ({GRADE_AFTER_NEXT})

* {Larger items that follow the immediate next grade}

== Demotion risk

* *Lowest:* {What would have to break for the grade to drop by one}
* *Medium:* {What would have to break for a multi-step demotion}
* *Catastrophic:* {What would force demotion to F}

== Iteration history

[cols="1,1,4", options="header"]
|===
| Date | Grade | Notes

| {YYYY-MM-DD} | {grade} | Initial assessment.
| {YYYY-MM-DD} | {grade} | {Reason for change.}
|===

== Review cycle

* *Routine:* Reassess on every release cycle (per ARG §6).
* *Immediate:* Reassess within 7 days of any demotion trigger per
  ARG-spec §4.8.
* *VeriSimDB drift alert:* Reassess within 24 hours of any drift alert
  from VeriSimDB on this language's attestations.

== Footer

Run `just arg-badge` in this repo to generate the shields.io badge for
the README.

This profile is itself a VCL-total proposition. Its content is
`DECLARE`'d to VeriSimDB on each commit. Drift between the claimed
grade above and the underlying evidence surfaces as a grade-stale alert.
