-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0-AI-MANIFEST.a2ml
More file actions
163 lines (116 loc) · 6.68 KB
/
0-AI-MANIFEST.a2ml
File metadata and controls
163 lines (116 loc) · 6.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
159
160
161
162
163
# SPDX-License-Identifier: PMPL-1.0-or-later
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
# STOP - CRITICAL READING REQUIRED
**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS**
## WHAT IS THIS?
This is the AI manifest for **julianiser**. It declares:
- Canonical file locations (where things MUST be, and nowhere else)
- Critical invariants (rules that must NEVER be violated)
- Repository structure and organization
Julianiser analyses Python and R data science code, identifies
performance-critical array/dataframe operations, and generates
equivalent Julia modules that deliver 10-100x speedups via LLVM JIT.
## CANONICAL LOCATIONS (UNIVERSAL RULE)
### Machine-Readable Metadata: `.machine_readable/` ONLY
These 6 a2ml files MUST exist in `.machine_readable/6a2/` directory ONLY:
1. **STATE.a2ml** - Project state, progress, blockers
2. **META.a2ml** - Architecture decisions, governance
3. **ECOSYSTEM.a2ml** - Position in ecosystem, relationships
4. **AGENTIC.a2ml** - AI agent interaction patterns
5. **NEUROSYM.a2ml** - Neurosymbolic integration config
6. **PLAYBOOK.a2ml** - Operational runbook
**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR.
### Anchor File: `.machine_readable/anchors/ANCHOR.a2ml` ONLY
Canonical authority and semantic-boundary declaration MUST exist at:
` .machine_readable/anchors/ANCHOR.a2ml `
Do not place `ANCHOR.a2ml` at repository root.
### Maintenance Policies: `.machine_readable/policies/` ONLY
Canonical maintenance/governance files MUST exist under:
` .machine_readable/policies/ `
Minimum required files:
- `MAINTENANCE-AXES.a2ml`
- `MAINTENANCE-CHECKLIST.a2ml`
- `SOFTWARE-DEVELOPMENT-APPROACH.a2ml`
Do not place maintenance policy files in repository root.
### Bot Directives: `.machine_readable/bot_directives/` ONLY
Bot-specific instructions for your automated agents.
### Contractiles: `.machine_readable/contractiles/` ONLY
Policy enforcement contracts (k9, dust, lust, must, trust).
### AI Configuration & Guides: `.machine_readable/ai/` ONLY
- `AI.a2ml` - Language-specific or LLM-specific patterns
- `PLACEHOLDERS.adoc` - Bootstrap guide
### Community & Forge Metadata: `.github/` ONLY
- `CODEOWNERS` - Review assignments
- `MAINTAINERS` - Machine-readable contact list
- `SUPPORT` - Support channels
- `SECURITY.md` - Technical security policy
- `CONTRIBUTING.md` - Technical contribution manual
- `CODE_OF_CONDUCT.md` - Conduct rules
### Agent Instructions
- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point)
## PROJECT-SPECIFIC CONTEXT
### What Julianiser Does
1. Parses Python source (via AST) or R scripts (via R parser)
2. Identifies array operations, dataframe transformations, numeric hot paths
3. Generates Julia equivalents with type annotations and broadcasting
4. Creates a Zig FFI bridge for calling Julia from existing code
5. Benchmarks original vs. generated code to verify speedup
### Key Translation Patterns
- `pandas.DataFrame` -> `DataFrames.jl`
- `numpy` arrays -> native Julia arrays (with broadcasting)
- `scipy` -> Julia stdlib / Optim.jl
- R `data.frame` -> `DataFrames.jl`
- 0-based indexing -> 1-based indexing (formally verified remapping)
### Architecture
- **Rust CLI** (`src/main.rs`) — orchestration
- **Idris2 ABI** (`src/interface/abi/`) — SourceLanguage, DataFrameOperation, ArrayPattern, JuliaType, EquivalenceWitness
- **Zig FFI** (`src/interface/ffi/`) — C-ABI bridge with Python/R parse + Julia codegen
- **Codegen** (`src/codegen/`) — Julia code generation from typed IR
### Allowed Languages
Rust, Idris2, Zig, Julia, Scheme, Shell, Just, AsciiDoc, Markdown, Nickel
### Forbidden Languages
TypeScript, Node.js, npm, Python (as implementation language — Python is a *target* for parsing only), Go, Java
## CORE INVARIANTS
1. **No state file duplication** - Root must NOT contain STATE.a2ml, META.a2ml, etc.
2. **Single source of truth** - `.machine_readable/` is authoritative
3. **No stale metadata** - If root state files exist, they are OUT OF DATE
4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0
5. **Author attribution** - Always "Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"
6. **Container images** - MUST use Chainguard base (`cgr.dev/chainguard/wolfi-base:latest` or `cgr.dev/chainguard/static:latest`)
7. **Container runtime** - Podman, never Docker. Files are `Containerfile`, never `Dockerfile`
8. **Container orchestration** - `selur-compose`, never `docker-compose`
9. **Julia is the target, not the implementation** - Julianiser is written in Rust/Idris2/Zig; it *generates* Julia
## REPOSITORY STRUCTURE
```
julianiser/
├── 0-AI-MANIFEST.a2ml # THIS FILE (start here)
├── README.adoc # What julianiser does, supported patterns, architecture
├── ROADMAP.adoc # Phase 0-6 development plan
├── TOPOLOGY.md # Module map and data flow
├── CONTRIBUTING.adoc # Human contribution guide
├── Justfile # Task runner
├── Containerfile # OCI build
├── Cargo.toml # Rust dependencies
├── LICENSE # PMPL-1.0-or-later
├── src/ # Source code
│ ├── main.rs # CLI (init, validate, generate, build, run, info)
│ ├── lib.rs # Library API
│ ├── manifest/mod.rs # julianiser.toml parser
│ ├── codegen/mod.rs # Julia code generation engine
│ ├── abi/mod.rs # Rust-side ABI types
│ └── interface/ # Verified Interface Seams
│ ├── abi/ # Idris2 ABI (Types, Layout, Foreign)
│ ├── ffi/ # Zig FFI (parse, codegen, benchmark)
│ └── generated/ # Auto-generated C headers
├── container/ # Stapeln container ecosystem
├── verification/ # Proofs, benchmarks, fuzzing, safety cases
├── docs/ # Architecture, theory, governance, legal
└── .machine_readable/ # ALL machine-readable metadata
└── 6a2/ # STATE, META, ECOSYSTEM, AGENTIC, NEUROSYM, PLAYBOOK
```
## SESSION STARTUP CHECKLIST
Read THIS file (0-AI-MANIFEST.a2ml) first
Understand canonical location: `.machine_readable/`
State understanding of canonical locations
## ATTESTATION PROOF
**"I have read the AI manifest for julianiser. All machine-readable content (state files, anchors, policies, bot directives, contractiles, AI guides) is located in `.machine_readable/` ONLY, and community metadata is in `.github/`. I will not create duplicate files in the root directory."**