-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0-AI-MANIFEST.a2ml
More file actions
158 lines (129 loc) · 7.68 KB
/
0-AI-MANIFEST.a2ml
File metadata and controls
158 lines (129 loc) · 7.68 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# STOP - CRITICAL READING REQUIRED
**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS**
## WHAT IS THIS?
This is the AI manifest for **lcb-website** — the NUJ London Central Branch website (nuj-lcb.org.uk). It declares:
- Canonical file locations (where things MUST be, and nowhere else)
- Critical invariants (rules that must NEVER be violated)
- Repository structure and organization
## CANONICAL LOCATIONS (UNIVERSAL RULE)
### Machine-Readable Metadata: `.machine_readable/6a2/` ONLY
These 6 machine-readable files MUST exist in `.machine_readable/6a2/` directory ONLY:
1. **.machine_readable/6a2/STATE.a2ml** - Project state, progress, blockers
2. **.machine_readable/6a2/META.a2ml** - Architecture decisions, governance
3. **.machine_readable/6a2/ECOSYSTEM.a2ml** - Position in ecosystem, relationships
4. **.machine_readable/6a2/AGENTIC.a2ml** - AI agent interaction patterns
5. **.machine_readable/6a2/NEUROSYM.a2ml** - Neurosymbolic integration config
6. **.machine_readable/6a2/PLAYBOOK.a2ml** - Operational runbook
**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR.
### Bot Directives: `.bot_directives/` ONLY
Bot-specific instructions for the gitbot-fleet:
- rhodibot - Git operations and documentation
- echidnabot - Formal verification and fuzzing
- sustainabot - Dependency updates
- glambot - Documentation formatting
- seambot - Integration testing
- finishbot - Task completion
- robot-repo-automaton - Automated fixes
### Agent Instructions
- `.claude/CLAUDE.md` - Claude-specific patterns (if exists)
- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point)
## CORE INVARIANTS
1. **No SCM duplication** - Root must NOT contain .machine_readable/6a2/STATE.a2ml, .machine_readable/6a2/META.a2ml, etc.
2. **Single source of truth** - `.machine_readable/6a2/` is authoritative
3. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0
4. **Author attribution** - Always "Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"
5. **Container standards** - Chainguard wolfi-base images, Containerfile (never Dockerfile), Podman (never Docker)
6. **Security requirements** - Full crypto spec in `contractiles/trust/Trustfile.hs`
7. **AI bot blocking** - robots.txt MUST block training bots, .well-known/aibdp.json MUST enforce consent
## REPOSITORY STRUCTURE
```
lcb-website/
├── 0-AI-MANIFEST.a2ml # THIS FILE (start here)
├── README.md # Project overview + deployment quick-ref
├── TOPOLOGY.md # Architecture diagram + completion dashboard
├── Containerfile # Multi-stage Chainguard wolfi-base build
├── selur-compose.yml # Stapeln orchestration (svalinn+vordr)
├── docker-compose.yml # Local dev stack (run via podman-compose)
├── robots.txt # AI bot blocks
├── infra/
│ └── wordpress.ctp # Cerro Torre manifest (Ed25519+Dilithium5)
├── content/
│ ├── pages/ # Markdown source for WP pages
│ ├── posts/ # HTML seed posts (8 articles)
│ ├── images/ # Featured images for seed posts
│ ├── policies/ # AI usage policy, legal
│ └── mockups/ # HTML mockups
├── wp-content/
│ ├── themes/sinople/ # Sinople v2.0.0 theme (Newspaperup layout)
│ │ ├── assets/css/ # 18 CSS files + variables.css token system
│ │ ├── assets/js/ # 5 JS files (dark mode, offcanvas, search, swiper, nav)
│ │ ├── assets/fonts/ # Self-hosted WOFF2 (Lexend Deca, Outfit)
│ │ ├── assets/vendor/ # Font Awesome 6 subset, Swiper 11
│ │ ├── inc/ # 9 PHP includes (security, indieweb, variants, etc.)
│ │ ├── template-parts/ # 10 template partials (header/, footer/, cards, etc.)
│ │ └── page-templates/ # Full-width, sidebar-left page templates
│ └── mu-plugins/ # Must-use plugins
├── scripts/
│ └── wp-deploy.sh # WP-CLI deployment (menus, widgets, posts, images)
├── templates/
│ ├── wp-config-security.php # Security constants for wp-config
│ ├── htaccess-well-known # .well-known serving rules
│ └── htaccess-security # Security headers + CSP
├── .well-known/
│ ├── aibdp.json # AIBDP consent policy
│ ├── security.txt # Security contacts
│ └── ai.txt # AI/bot access rules
├── contractiles/
│ ├── must/Mustfile # Invariant checks (13 checks)
│ ├── trust/Trustfile.hs # Crypto verification + security spec
│ ├── dust/Dustfile # WordPress rollback/recovery
│ ├── lust/Intentfile # Future intent (stapeln pipeline)
│ └── k9/ # K9 self-validating config
├── .machine_readable/6a2/ # Machine-readable files (6 files)
│ ├── STATE.a2ml
│ ├── META.a2ml
│ ├── ECOSYSTEM.a2ml
│ ├── AGENTIC.a2ml
│ ├── NEUROSYM.a2ml
│ └── PLAYBOOK.a2ml
├── .bot_directives/ # Gitbot-fleet directives (8 bots)
├── .github/workflows/ # 17 CI/CD workflows
├── docs/ # AsciiDoc documentation
├── services/ # Service configs (mariadb, OLS, varnish)
└── hooks/ # Git hooks
```
## SINOPLE THEME v2.0.0 INVARIANTS
1. **Security headers managed by PhpAegis ONLY** — `functions.php` is authoritative for CSP; `inc/security.php` headers method is a no-op
2. **No CDN dependencies** — fonts, Font Awesome, Swiper are ALL self-hosted in `assets/`
3. **CSS variables in variables.css** — ALL colour/typography/spacing tokens defined there, not inline
4. **Dark mode via data-theme attribute** — `<html data-theme="dark">`, NOT body classes
5. **Colour scheme via data-scheme attribute** — `<html data-scheme="nuj-green">`, NOT body classes
6. **GPL-2.0-or-later** — WordPress theme requirement, overrides PMPL for theme files only
## SESSION STARTUP CHECKLIST
1. Read THIS file (0-AI-MANIFEST.a2ml) first
2. Understand canonical locations (.machine_readable/6a2/, .bot_directives/)
3. Know the invariants (no SCM duplication, Chainguard images, etc.)
4. Read `.machine_readable/6a2/STATE.a2ml` for current status
5. Read `TOPOLOGY.md` for architecture overview + completion dashboard
6. Read `.machine_readable/6a2/AGENTIC.a2ml` for interaction patterns
## LIFECYCLE HOOKS
### on-enter (Session Start)
1. Read and acknowledge this manifest
2. Read `.machine_readable/6a2/STATE.a2ml`
3. Check for blockers
4. State understanding of canonical locations
### on-exit (Session End)
1. Update `.machine_readable/6a2/STATE.a2ml` if changes made
2. Update `TOPOLOGY.md` completion dashboard if components changed
3. Document new blockers
4. Summarize outcomes
## ATTESTATION PROOF
After reading this file, demonstrate understanding by stating:
**"I have read the AI manifest. Machine-readable files are located in `.machine_readable/6a2/` ONLY, bot directives in `.bot_directives/`, and I will not create duplicate files in the root directory."**
## META
- **Format Version:** 1.2.0
- **Created:** 2026-01-19
- **Updated:** 2026-02-20
- **Maintained By:** Jonathan D.A. Jewell (hyperpolymath)
- **License:** PMPL-1.0-or-later
- **Protocol:** https://github.com/hyperpolymath/0-ai-gatekeeper-protocol