-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0-AI-MANIFEST.a2ml
More file actions
63 lines (53 loc) · 2.5 KB
/
Copy path0-AI-MANIFEST.a2ml
File metadata and controls
63 lines (53 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
; SPDX-License-Identifier: MPL-2.0
; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
;
; AI Manifest for Evidence Graph (bofig)
; Format: A2ML (AI Agent Markup Language)
(ai-manifest
(version "1.0.0")
(repository "hyperpolymath/bofig")
(canonical-name "Evidence Graph for Investigative Journalism")
(entry-points
(primary "CLAUDE.md")
(machine-readable ".machine_readable/")
(architecture "ARCHITECTURE.md")
(roadmap "ROADMAP.md"))
(canonical-locations
(scm-files ".machine_readable/ ONLY (never root)")
(elixir-source "lib/evidence_graph/ and lib/evidence_graph_web/")
(config "config/")
(tests "test/")
(assets "assets/")
(static "priv/static/")
(seeds "priv/repo/seeds.exs")
(deploy "deploy/ (nginx, systemd, env)")
(testing-docs "docs/testing/ (NUJ protocols)")
(well-known "priv/static/.well-known/ and .well-known/"))
(critical-invariants
(invariant "SCM files MUST be in .machine_readable/ directory ONLY")
(invariant "PROMPT scores have exactly 6 dimensions: provenance, replicability, objective, methodology, publication, transparency")
(invariant "Audience types are: researcher, policymaker, skeptic, activist, affected_person, journalist")
(invariant "ArangoDB collection 'evidence' is SINGULAR (not 'evidences')")
(invariant "Relationship edges use _from/_to format: 'claims/{key}' or 'evidence/{key}'")
(invariant "All files require SPDX-License-Identifier: MPL-2.0 header")
(invariant "PostgreSQL is for user auth ONLY — all domain data lives in ArangoDB")
(invariant "Never use Docker/Dockerfile — use Podman/Containerfile"))
(lifecycle-hooks
(on-enter
(read "0-AI-MANIFEST.a2ml")
(read ".machine_readable/STATE.scm")
(read "CLAUDE.md"))
(on-exit
(update ".machine_readable/STATE.scm"))))
<!-- BEGIN requires-initialisation -->
## PRIORITY ACTION — this repository is not fully initialised
8 substitution token(s) still have no value. **Read
`REQUIRES_INITIALISATION.md` in the repository root before doing anything
else here** — it lists every outstanding token, what it means, and which
files it belongs in.
Do not fabricate values for them, and do not delete the sections that
contain them to quiet a gate. They are unfilled because they need a
decision, not because they were overlooked. Resolve what you legitimately
can, leave the rest, and delete `REQUIRES_INITIALISATION.md` only when
nothing outstanding remains.
<!-- END requires-initialisation -->